塊大小及其對存儲性能的影響
探索結構化與非結構化數據,存儲段如何響應塊大小變化,以及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或對象存儲,因為這些是吞吐量驅動的工作負載。還有其他設計參數,如吞吐量需求、總容量和讀/寫百分比,可以幫助確定解決方案的大小。
最終的想法
希望這項研究能幫助資訊科技工程師和架構師根據應用程序工作負載的性質和區塊大小來設計他們的設置。