條帶

條帶

條帶(stripe)是把連續的數據分割成相同大小的數據塊,把每段數據分別寫入到陣列中的不同磁碟上的方法。簡單的說,條帶是一種將多個磁碟驅動器合併為一個卷的方法。許多情況下,這是通過硬體控制器來完成的。

基本介紹


當多個進程同時訪問一個磁碟時,可能會出現磁碟衝突。大多數磁碟系統都對訪問次數(每秒的 I/O 操作,IOPS)和數據傳輸率(每秒傳輸的數據量,TPS)有限制。當達到這些限制時,後面需要訪問磁碟的進程就需要等待,這時就是所謂的磁碟衝突。避免磁碟衝突是優化 I/O 性能的一個重要目標,而 I/O 性能的優化與其他資源(如CPU和內存)的優化有著很大的區別 ,I/O 優化最有效的手段是將 I/O 最大限度的進行平衡。
條帶化技術就是一種自動的將 I/O 的負載均衡到多個物理磁碟上的技術,條帶化技術就是將一塊連續的數據分成很多小部分並把他們分別存儲到不同磁碟上去。這就能使多個進程同時訪問數據的多個不同部分而不會造成磁碟衝突,而且在需要對這種數據進行順序訪問的時候可以獲得最大程度上的 I/O 并行能力,從而獲得非常好的性能。由於條帶化在 I/O 性能問題上的優越表現,以致於在應用系統所在的計算環境中的多個層次或平台都涉及到了條帶化的技術,如操作系統和存儲系統這兩個層次中都可能使用條帶化技術。
條帶化后,條帶卷所能提供的速度比單個盤所能提供的速度要快很多,由於現在存儲技術成熟,大多數系統都採用條帶化來實現系統的I/O負載分擔,如果OS有LVM軟體或者硬體條帶設備,決定因素是條帶深度(stripe depth)和條帶寬度(stripe width)。
條帶深度:指的是條帶的大小,也叫條帶大小。有時也被叫做block size, chunk size, stripe length 或者 granularity。這個參數指的是寫在每塊磁碟上的條帶數據塊的大小。RAID的數據塊大小一般在2KB到512KB之間(或者更大),其數值是2的次方,即2KB,4KB,8KB,16KB這樣。
條帶大小對性能的影響比條帶寬度難以量化的多。
• 減小條帶大小: 由於條帶大小減小了,則文件被分成了更多個,更小的數據塊。這些數據塊會被分散到更多的硬碟上存儲,因此提高了傳輸的性能,但是由於要多次尋找不同的數據塊,磁碟定位的性能就下降了。
• 增加條帶大小: 與減小條帶大小相反,會降低傳輸性能,提高定位性能。
根據上邊的論述,我們會發現根據不同的應用類型,不同的性能需求,不同驅動器的不同特點(如SSD硬碟),不存在一個普遍適用的"最佳條帶大小"。所以這也是存儲廠家,文件系統編寫者允許我們自己定義條帶大小的原因。
條帶寬度:是指同時可以併發讀或寫的條帶數量。這個數量等於RAID中的物理硬碟數量。例如一個經過條帶化的,具有4塊物理硬碟的陣列的條帶寬度就是4。增加條帶寬度,可以增加陣列的讀寫性能。道理很明顯,增加更多的硬碟,也就增加了可以同時併發讀或寫的條帶數量。在其他條件一樣的前提下,一個由8塊18G硬碟組成的陣列相比一個由4塊36G硬碟組成的陣列具有更高的傳輸性能。