什麼是延伸型的磁碟陣列組態?差異何在?

文章日期:12/31/2007 01:02 pm
什麼是延伸型的磁碟陣列組態?差異何在? 文/張明德 (記者) 2008-02-21

磁碟陣列規格中,除了基本的RAID 0、1、5等外,像RAID 0+1、RAID 10、RAID 50這類延伸規格是怎樣構成與運作的?


為了滿足更高的性能或更好的可靠性等要求,除了RAID 0、1、2、3、4、5、6等基本的磁碟陣列組態外,還有一類是以前述基本RAID組態為基礎所組成的延伸RAID組態,由於這類RAID組態是以基本 RAID相互組合而成,因此又被稱為巢式或相互套疊式(Nesting)的RAID。

4種常見的延伸型RAID組態
RAID 0+1
RAID 0與RAID 1的組合,先作RAID 0,再作RAID 1,至少需要4臺或4以上偶數的硬碟,以最小的4臺硬碟為例,RAID 0+1是先把硬碟分成2組,每組的2臺硬碟先構成以Stripe方式存取資料的RAID 0,再讓兩組RAID 0構成鏡像的RAID 1。

RAID 0+1的優點是兼具效能與可靠性,由於硬碟在底層構成Stripe的RAID 0,每筆資料都會切成小區塊依序寫入所有硬碟,每次存取都會用到底層的所有硬碟,因此頻寬利用率通常較單純的RAID 1高。

比起單純的RAID 0,RAID 0+1在上層還有一層RAID 1的保護,除底層的兩組RAID 0同時各損壞1或2臺硬碟的情況以外,如果是某組RAID 0損毀1或2臺硬碟,系統都還能依靠另一組RAID 0維持運作。缺點則是容量利用率低,有效容量只有硬碟總容量的50%。

RAID 10
同樣是RAID 0與RAID 1的組合,但是先作RAID 1,再建立RAID 0,同樣也是需要4臺以上偶數的硬碟。以最小的4臺硬碟為例,RAID 10是先把硬碟分成2臺1組,每組的2臺硬碟先互相構成鏡像的RAID 1,然後兩組RAID 1再構成以Stripe存取資料的RAID 0。

RAID 10的優缺點與RAID 0+1類似,同樣都兼具RAID 0的高效能與RAID 1的高可靠性,但容量利用率低。不過,就可靠性來說,RAID 10較0+1略佳,除非底層兩組RAID 1發生其中1組的2臺硬碟同時損毀,才會完全失效。如果只是兩組RAID 1各損壞1臺硬碟,RAID 10還能維持正常運作。

RAID 50
RAID 5與RAID 0的組合,先作RAID 5,再作RAID 0,也就是對多組RAID 5彼此構成Stripe存取。由於RAID 50是以RAID 5為基礎,而RAID 5至少需要3臺硬碟,因此要以多組RAID 5構成RAID 50,至少需要6臺硬碟。以RAID 50最小的6臺硬碟組態為例,先把6臺硬碟分為2組,每組3臺構成RAID 5,如此就得到兩組RAID 5,然後再把兩組RAID 5構成RAID 0。

RAID 50在底層的任一組或多組RAID 5中出現1臺硬碟損壞時,仍能維持運作,不過如果任一組RAID 5中出現2臺以上硬碟損毀,整組RAID 50就會失效。

RAID 50由於在上層把多組RAID 5構成Stripe,效能比起單純的RAID 5高,而容量利用率則與RAID 5相同。

RAID 60
RAID 6與RAID 0的組合:先作RAID 6,再作RAID 0。換句話說,就是對兩組以上的RAID 6作Stripe存取。RAID 6至少需具備4臺硬碟,所以RAID 60的最小需求是8臺硬碟。

由於底層是以RAID 6組成,所以RAID 60可以容許任一組RAID 6中損毀最多2臺硬碟,而系統仍能維持運作;不過只要底層任一組RAID 6中損毀3臺硬碟,整組RAID 60就會失效,當然這種情況的機率相當低。

比起單純的RAID 6,RAID 60的上層透過結合多組RAID 6構成Stripe存取,因此效能較高。不過使用門檻高,而且容量利用率低是較大的問題。

 

3種較少見的延伸型RAID組態
前述幾種延伸型RAID都已經能在目前的磁碟陣列產品上看到,其中RAID 0+1、10、50等幾乎已經成為與RAID 0、1、5等併列的基本功能,至於RAID 60也有少數廠商的產品可以提供。

除這幾種外,還有幾種延伸型RAID組態,理論上存在,但實務中幾乎無人使用。

RAID 0+3
RAID 0與RAID 3的組合,先作RAID 0,再作RAID 3。由於RAID 0至少需要2臺硬碟,而RAID 3則需至少3組磁碟,所以RAID 30至少需由6臺硬碟組成。

RAID 30可在底層硬碟的RAID 0 Stripe存取外,上層的RAID 3也構成另一層的Stripe,同時還有1組專門負責記錄同位元(Parity)的RAID 0硬碟,所以效能與可靠性都比單純的RAID 3或RAID 0有所提高。底層任一組RAID 0損壞1臺硬碟時仍能維持運作,同時負責計算Parity的工作是由1組RAID 0的(至少2臺)硬碟負責,因此Parity計算較不會形成效能瓶頸。

 

RAID 30
RAID 3與RAID 0的組合:先作RAID 3,再作RAID 0。RAID 3最少必須由3臺硬碟組成,而RAID 30是以多組RAID 3組成,所以最少需要6臺硬碟。

以最小的6臺組態RAID 30為例,底層先把6臺硬碟分為兩組,每3臺硬碟構成1組RAID 3,然後上層再把兩組RAID 3構成Stripe,因此效能比單純的RAID 3好;不過也繼承了RAID 3的問題,底層的每組RAID 3中,校驗計算parity的工作都集中在陣列中的單一硬碟上,這臺硬碟也就形成效能上的瓶頸。

RAID 51
RAID 5與RAID 1的組合,先作RAID 5,再作RAID 1。與RAID 50相比,效能較差,但可靠性較好,即使底層有1組RAID 5完全損毀,系統仍能維持運作。

其他延伸RAID組態還有RAID 100,即以兩組以上的RAID 10構成Stripe;以及RAID 53,是由3組以上的RAID 5組成RAID 3等,不過這些就更少見到了。文⊙張明德