區塊大小及其對儲存效能的影響

2024.07.07

探索結構化與非結構化數據,儲存段如何響應區塊大小變化,以及I/o驅動和吞吐量驅動工作負載之間的差異。

本文分析了區塊大小及其對儲存效能的影響之間的相關性。本文討論了結構化資料與非結構化資料的定義和理解,不同的儲存段對區塊大小變化的反應,以及I/o驅動和吞吐量驅動工作負載之間的差異。它還強調了吞吐量的計算和基於工作負載類型的儲存產品的選擇。

塊大小及其重要性

在計算中,實體記錄或資料儲存區塊是稱為區塊的位元/位元組序列。系統或儲存裝置中單一區塊中處理或傳輸的資料量稱為區塊大小。它是決定儲存效能的因素之一。區塊大小是對儲存產品進行效能基準測試和將產品分類為區塊、檔案和物件段的關鍵因素。

結構化資料與非結構化資料

結構化資料以標準化格式組織,通常在有行和列的表中,使人和軟體易於存取。它通常是定量數據,這意味著它可以被計數或測量,並且可以包括數字、短文本和日期等數據類型。結構化資料非常適合用於分析,並且可以與其他資料集組合在一起儲存在關聯式資料庫中。

非結構化只是指不以結構化資料庫格式儲存的資料集(典型的大型檔案集合)。非結構化資料具有內部結構,但它不是透過資料模型預先定義的。它可以是人工生成的,也可以是機器生成的,採用文字或非文字格式。

通常,結構化資料的區塊大小在4KB到128KB之間,在某些情況下,它也可以達到512KB。相反,非結構化資料的區塊大小範圍要大得多,可以輕鬆達到MB範圍。

結構化和非結構化資料的區塊大小

OLTP或線上事務處理是一種資料處理類型,它包括執行並發發生的多個事務—線上銀行、購物、訂單輸入或發送文字訊息—而OLAP是一種線上分析處理軟體技術,您可以使用它從不同的角度分析業務數據。組織從多個數據來源收集和儲存數據,例如網站、應用程式、智慧電錶和內部系統。

大多數OLTP工作負載遵循結構化數據,而大多數OLAP工作負載遵循非結構化資料模式,它們之間的主要差異在於區塊大小。

基於區塊大小的吞吐量/IOPS公式

儲存吞吐量(也稱為資料傳輸速率)衡量每秒向儲存裝置傳輸和從儲存裝置傳輸的資料量。通常,吞吐量以MB/s為單位進行測量。吞吐量與IOPS和區塊大小密切相關。

IOPS(每秒輸入/輸出運算元)是對不連續儲存位置的最大讀/寫次數的標準度量單位。

在上面的公式中,KB/IO是區塊大小。因此,根據區塊大小,每個工作負載是io驅動的還是吞吐量驅動的。如果任何工作負載的IOPS都更高,則表示區塊大小更小,如果任何工作負載的吞吐量都更高,則區塊大小偏大。

基於區塊大小的儲存效能

儲存技術會根據區塊大小做出回應,因此,根據區塊大小和回應時間會有不同的儲存建議。區塊儲存更適合較小區塊大小的應用程序,而檔案層級和物件儲存更適合較大區塊大小的應用程式。

儲存技術及其範圍是基於區塊大小的

區塊儲存一直是區塊大小較小的生產工作負載的選擇,這些應用程式具有更高的IOPS限制。每個區塊儲存發布說明中都包含了每個儲存盒能夠達到的IOPS的效能數字。同時,檔案級儲存或任何NFS儲存更適合大於1MB的區塊大小。

物件儲存是市場上相對較新的產品,它是為跨多個網站儲存檔案和資料夾而引入的,其效能範圍與NFS類似。

物件儲存將需要負載平衡器來跨儲存系統分配區塊,這也有助於提高效能。與區塊儲存相比,NFS和物件儲存都具有較高的回應時間,因為I/O必須透過網路到達磁碟並返回以完成I/O週期。 NFS和物件儲存的平均回應時間在10毫秒以上。

檔案系統儲存可以滿足更大範圍的區塊大小。可以調整檔案系統儲存的體系結構,以處理大多數區塊大小的條帶化,並提高整體效能。通常,檔案系統儲存用於實現資料湖、分析工作負載和高效能運算。大多數檔案系統儲存也使用安裝在伺服器上的代理級軟體,以便透過網路更好地分發資料並提高效能。

對於資料湖或HPC系統的大規模部署,InfiniBand設定是首選的檔案系統存儲,這些系統的工作負載是吞吐量驅動的,並且預計在短時間內會攝取大量資料。

VSAN是作為VMware工作負載的區塊儲存產品引入的,並且在OLTP工作負載上非常成功。最近,VSAN也被用於具有較大區塊大小的工作負載,特別是回應時間需求可能不是很關鍵的備份工作負載。對VSAN有利的是新改進的體系結構和叢集大小,這有助於提高整體效能。

工作負載、區塊大小和適合的存儲

由於儲存產品對於不同的區塊大小具有不同的效能水平,如何根據工作負載的區塊大小選擇儲存?下面是一些這樣的例子:

以工作負載及其各自的區塊大小為例。此圖有助於根據工作負載區塊大小和整體效能需求選擇合適的儲存產品。

對於小於256KB的區塊大小,大多數區塊儲存都可以表現良好,而不考慮供應商公司,因為區塊儲存架構最適合小塊大小的工作負載。類似地,RMAN或Veeam備份軟體等較大的區塊大小的工作負載更適合NFS或物件存儲,因為這些是吞吐量驅動的工作負載。還有其他設計參數,如吞吐量需求、總容量和讀/寫百分比,可以幫助確定解決方案的大小。

最終的想法

希望這項研究能幫助資訊科技工程師和架構師根據應用程式工作負載的性質和區塊大小來設計他們的設定。