條帶化(Striping)

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15747463/viewspace-761350/,如需轉載,請註明出處,否則將追究法律責任。

相關文章