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