獨立磁盤冗余陣列(RAID,redundant array of independent disks)是把相同的數(shù)據(jù)存儲在多個硬盤的不同地方的方法。
RAID技術(shù)主要包含RAID 0~RAID 50等數(shù)個規(guī)范,常見的規(guī)范有RAID 0、RAID 1、RAID 3、RAID 5、RAID 6、RAID 10和RAID 50等。
RAID 0又稱為條帶化(Stripe)或分條(Striping),它代表了所有RAID級別中最高的存儲性能。RAID 0提高存儲性能的原理是把連續(xù)的數(shù)據(jù)分散到多個硬盤上存取。這樣,系統(tǒng)有數(shù)據(jù)請求就可以被多個硬盤并行的執(zhí)行,每個硬盤執(zhí)行屬于它自己的那部分數(shù)據(jù)請求。這種數(shù)據(jù)上的并行操作可以充分利用總線的帶寬,顯著提高硬盤整體讀寫性能。
如圖1-1所示,系統(tǒng)向三塊硬盤組成的邏輯硬盤(RAID 0硬盤組)發(fā)出的I/O數(shù)據(jù)請求被轉(zhuǎn)化為同時對三塊硬盤進行I/O操作。通過建立RAID 0,原先順序的數(shù)據(jù)請求被分散到所有的三塊硬盤中同時執(zhí)行。三塊硬盤的并行操作在理論上使同一時間內(nèi)硬盤讀寫速度提升了3倍。雖然由于總線帶寬等多種因素的影響,實際的提升速率會低于理論值,但是大量數(shù)據(jù)并行傳輸與串行傳輸比較,提速效果顯著。
RAID 1又稱為鏡像(Mirror或Mirroring),它能最大限度的保證用戶數(shù)據(jù)的可用性和可修復性。RAID 1的操作方式是把用戶寫入硬盤的數(shù)據(jù)百分之百地自動復制到另外一個硬盤上。
如圖1-2所示,系統(tǒng)向兩塊硬盤組成的邏輯硬盤(RAID 1硬盤組)發(fā)出I/O數(shù)據(jù)請求。通過建立RAID 1,向硬盤Disk 0寫入數(shù)據(jù)時,系統(tǒng)會同時把用戶寫入Disk 0的數(shù)據(jù)自動復制到Disk 1上。讀取數(shù)據(jù)時,系統(tǒng)先從源盤Disk 0讀取數(shù)據(jù),如果讀取數(shù)據(jù)成功,則系統(tǒng)不去讀取鏡像盤Disk 1上的數(shù)據(jù);如果讀取源盤數(shù)據(jù)失敗,系統(tǒng)自動轉(zhuǎn)而讀取鏡像盤上的數(shù)據(jù)。這種情況下不會造成用戶工作任務的中斷。
RAID 5是一種存儲性能、數(shù)據(jù)安全和存儲成本兼顧的存儲解決方案。為保障存儲數(shù)據(jù)的可靠性,采用循環(huán)冗余校驗方式,并將校驗數(shù)據(jù)分散存儲在RAID組的各成員盤上。當RAID組的某個成員盤出現(xiàn)故障時,通過其他成員盤上的數(shù)據(jù)可以重新構(gòu)建故障硬盤上的數(shù)據(jù)。
如圖1-3所示,P0為D0、D1和D2的奇偶校驗信息,P1為D3、D4和D5的奇偶校驗信息,以此類推。RAID 5不對存儲的數(shù)據(jù)進行備份,而是把數(shù)據(jù)和相對應的奇偶校驗信息存儲到組成RAID 5的成員盤上,并且奇偶校驗信息和相對應的數(shù)據(jù)分別存儲于不同的硬盤上。當RAID 5的一個硬盤數(shù)據(jù)發(fā)生損壞后,利用剩下的數(shù)據(jù)和相應的奇偶校驗信息可以恢復被損壞的數(shù)據(jù)。
RAID 10是將鏡像和條帶進行兩級組合的RAID級別,即RAID 0+RAID 1的組合形式,第一級是RAID 1,第二級是RAID 0。RAID 10是存儲性能和數(shù)據(jù)安全兼顧的方案。它在提供與RAID 1一樣的數(shù)據(jù)安全保障的同時,也提供了與RAID 0近似的存儲性能。
如圖1-4所示,Disk 0和Disk 1組成一個子組0,Disk 2和Disk 3組成一個子組1,子組內(nèi)的硬盤互為鏡像。系統(tǒng)向硬盤發(fā)出I/O數(shù)據(jù)請求時,原先順序的數(shù)據(jù)請求按照RAID 0的方式,被分散到兩個子組中并行執(zhí)行,同時通過RAID 1的方式,系統(tǒng)在向硬盤Disk 0寫入數(shù)據(jù)的同時把數(shù)據(jù)自動復制到硬盤Disk 1上,向硬盤Disk 2寫入數(shù)據(jù)的同時把數(shù)據(jù)自動復制到硬盤Disk 3上。
在進行RAID級別選擇時,需考慮到以下三點:
不同RAID級別的可靠性、讀寫性能和硬盤利用率不同。各RAID級別的對比分析如表1-1所示。
RAID級別 |
冗余及數(shù)據(jù)恢復能力 |
讀性能 |
寫性能 |
硬盤利用率 |
最多允許壞的盤數(shù) |
---|---|---|---|---|---|
RAID 0 |
不提供數(shù)據(jù)冗余,損壞的數(shù)據(jù)將無法得到恢復。 |
高 |
高 |
硬盤利用率為100%。 |
0 |
RAID 1 |
高,數(shù)據(jù)全冗余。當CHUNK故障時,可以使用對應鏡像CHUNK進行恢復。 |
較高 |
較低 |
|
最多可以容許N-1個硬盤同時損壞(N個硬盤組成的RAID 1陣列)。 |
RAID 3 |
較高,CKG中的一個CHUNK作為校驗塊。任意一塊數(shù)據(jù)CHUNK故障都可以通過校驗CHUNK進行恢復。如果出現(xiàn)兩個及以上CHUNK故障,則整個RAID級別故障。 |
高 |
低 |
RAID 3支持靈活配置,即支持2D+1P~13D+1P配置,下面列舉RAID 3幾種通用配置的硬盤利用率:
|
1 |
RAID 5 |
較高,校驗數(shù)據(jù)分散在不同的CHUNK上,每個CKG中的校驗數(shù)據(jù)占用一個CHUNK的空間,允許任意一個數(shù)據(jù)CHUNK故障。如果出現(xiàn)兩個及以上CHUNK故障,則整個RAID級別故障。 |
較高 |
較高 |
RAID 5支持靈活配置,即支持2D+1P~13D+1P配置,下面列舉RAID 5幾種通用配置的硬盤利用率:
|
1 |
RAID 6 |
較高,兩組校驗數(shù)據(jù)分散在不同的CHUNK上,每個CKG中的校驗數(shù)據(jù)占用兩個CHUNK的空間,允許任意兩個CHUNK故障。如果出現(xiàn)三個及以上CHUNK故障,則整個RAID級別故障。 |
中 |
中 |
RAID 6支持靈活配置,即支持2D+2P~26D+2P配置,下面列舉RAID 6幾種通用配置的硬盤利用率:
|
2 |
RAID 10 |
高,允許多個CHUNK故障。當某個CHUNK故障時,可以使用對應的鏡像CHUNK進行恢復。如果存儲相同數(shù)據(jù)的CHUNK和鏡像CHUNK同時故障,則整個RAID級別故障。 |
較高 |
較高 |
硬盤利用率為50%。 |
最多可以容許N個硬盤同時損壞(2N個硬盤組成的RAID 10陣列)。 |
RAID 50 |
較高,每個RAID 5子組中的校驗數(shù)據(jù)分散在不同的CHUNK上,每個RAID 5子組中只允許一個CHUNK失效。如果某個RAID 5子組中有2個及以上CHUNK同時失效,則整個RAID級別故障。 |
較高 |
較高 |
|
1 |
a:“D”指數(shù)據(jù)塊。 b:“P”指校驗塊。 說明: 對于靈活配置xD+yP的RAID策略,硬盤利用率=[x/(x+y)] ×100%。 |
RAID策略配置可參考以下意見: