關於硬體及軟體實現條帶化的問題

tolywang發表於2010-07-12
-----------------------------------------------------------------------------------------------------------------------

條帶化(Striping):是把連續的資料分割成相同大小的資料塊,把每段資料分別寫入到陣列中的不同磁碟
上的方法,比單個磁碟所能提供的速度要快很多,由於現在儲存技術成熟,大多數系統都採用條帶化來實
現系統的I/O負載分擔,如果OS有LVM軟體或者硬體條帶裝置,決定因素是條帶深度(stripe depth)和條帶
寬度(stripe width):
條帶深度: 指的是條帶的大小,也叫做條帶單元。
條頻寬度: 指的是條帶深度的產量或者一個條帶幾種的驅動數。


系統對IO的要求及IO的併發不同,條帶大小的設定也不一樣。例如在高併發度且IO請求的大小都比較小的
情況下(如OLTP), 需要考慮比較大的條帶深度,使條帶深度大於IO大小就稱為粗粒度條帶,在高併發度
系統中,條帶深度為 n*db_block_size, 其中n為大於1的整數。粗粒度條帶能實現最大的吞吐量(一次物
理IO可以響應多個併發的邏輯IO),大的條帶深度(大小)能夠使像全表掃描那樣的多資料塊操作由一個磁碟
驅動來響應,提高多資料塊讀操作的效能。  

在併發度低的DSS系統中,IO請求相對序列化,為避免出現熱點磁碟,需要避免邏輯IO只由一塊磁碟處理。
這時候粗粒度條帶就不適合了。這時需要選擇小的條帶大小(深度),使一個邏輯IO分佈在多個磁碟上,實現
IO負載均衡,這就是細粒度條帶,大小 n*db_block_size , n為小於多資料塊讀引數db_file_multiblock_
read_count 大小的整數 。

在OLTP系統中,為了避免一個邏輯IO請求由多個物理IO操作完成,條頻寬度需要設定為2倍或以上Oracle
資料塊的大小。 不過,無論如何,我們需要保證:  條頻寬度 >= IO請求的大小/條帶深度 。

-----------------------------------------------------------------------------------------------------------------------


問題

1.  大多數情況下,硬體條帶裝置是否是指RAID ?    LVM 邏輯卷管理也可以單獨實現硬體條帶化之外的條帶化 ?
還是說必須要有硬體條帶化的協助 。

2.  讓系統管理員在我們的EMC CX-480 裝置中查詢條帶大小設定的引數,他說是預設的,然後找出一個值
element size ,   128 ,  是否代表的是條帶深度(大小)  ?  其他硬體裝置比如HP EVA4000等是否引數名稱又
不一樣 ?  

3.  在併發度高且IO請求小的情況下,需要考慮比較大的條帶深度(大小),使條帶深度大於IO大小(粗粒度條帶),
粗粒度條帶能實現最大的吞吐量(一次物理IO可以響應多個併發的邏輯IO),大的條帶深度(大小)能夠使像全表掃描
那樣的多資料塊操作由一個磁碟驅動來響應,提高多資料塊讀操作的效能。   不太理解紅色部分的意思。  一個磁碟
驅動指的是“一個物理的磁碟驅動器”?   條帶深度大於IO大小,一次物理IO可以響應多個併發的邏輯IO 如何理解


併發的不同的IO請求分佈在不同磁碟驅動器上應該會更快吧  ?




原文參考  

[ 本帖最後由 tolywang 於 2010-7-12 18:08 編輯 ]

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

相關文章