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