RAID 0:無(wú)差錯(cuò)控制的帶區(qū)組
要實(shí)現(xiàn)RAID0必須要有兩個(gè)以上硬盤驅(qū)動(dòng)器,RAID0實(shí)現(xiàn)了帶區(qū)組,數(shù)據(jù)并不是保存在一個(gè)硬盤上,而是分成數(shù)據(jù)塊保存在不同驅(qū)動(dòng)器上。因?yàn)閷?shù)據(jù)分布在不同驅(qū)動(dòng)器上,所以數(shù)據(jù)吞吐率大大提高,驅(qū)動(dòng)器的負(fù)載也比較平衡。如果剛好所需要的數(shù)據(jù)在不同的驅(qū)動(dòng)器上效率最好。它不需要計(jì)算校驗(yàn)碼,實(shí)現(xiàn)容易。它的缺點(diǎn)是它沒(méi)有數(shù)據(jù)差錯(cuò)控制,如果一個(gè)驅(qū)動(dòng)器中的數(shù)據(jù)發(fā)生錯(cuò)誤,即使其它盤上的數(shù)據(jù)正確也無(wú)濟(jì)于事了。不應(yīng)該將它用于對(duì)數(shù)據(jù)穩(wěn)定性要求高的場(chǎng)合。如果用戶進(jìn)行圖象(包括動(dòng)畫(huà))編輯和其它要求傳輸比較大的場(chǎng)合使用RAID0比較合適。同時(shí),RAID可以提高數(shù)據(jù)傳輸速率,比如所需讀取的文件分布在兩個(gè)硬盤上,這兩個(gè)硬盤可以同時(shí)讀取。那么原來(lái)讀取同樣文件的時(shí)間被縮短為1/2。在所有的級(jí)別中,RAID 0的速度是最快的。但是RAID 0沒(méi)有冗余功能的,如果一個(gè)磁盤(物理)損壞,則所有的數(shù)據(jù)都無(wú)法使用。
RAID0又稱為Stripe或Striping,它代表了所有RAID級(jí)別中最高的存儲(chǔ)性能。RAID 0提高存儲(chǔ)性能的原理是把連續(xù)的數(shù)據(jù)分散到多個(gè)磁盤上存取,這樣,系統(tǒng)有數(shù)據(jù)請(qǐng)求就可以被多個(gè)磁盤并行的執(zhí)行,每個(gè)磁盤執(zhí)行屬于它自己的那部分?jǐn)?shù)據(jù)請(qǐng)求。這種數(shù)據(jù)上的并行操作可以充分利用總線的帶寬,顯著提高磁盤整體存取性能。
如圖所示:系統(tǒng)向三個(gè)磁盤組成的邏輯硬盤(RADI 0 磁盤組)發(fā)出的I/O數(shù)據(jù)請(qǐng)求被轉(zhuǎn)化為3項(xiàng)操作,其中的每一項(xiàng)操作都對(duì)應(yīng)于一塊物理硬盤。我們從圖中可以清楚的看到通過(guò)建立RAID 0,原先順序的數(shù)據(jù)請(qǐng)求被分散到所有的三塊硬盤中同時(shí)執(zhí)行。
從理論上講,三塊硬盤的并行操作使同一時(shí)間內(nèi)磁盤讀寫(xiě)速度提升了3倍。 但由于總線帶寬等多種因素的影響,實(shí)際的提升速率肯定會(huì)低于理論值,但是,大量數(shù)據(jù)并行傳輸與串行傳輸比較,提速效果顯著顯然毋庸置疑。
RAID 0的缺點(diǎn)是不提供數(shù)據(jù)冗余,因此一旦用戶數(shù)據(jù)損壞,損壞的數(shù)據(jù)將無(wú)法得到恢復(fù)。
RAID 0具有的特點(diǎn),使其特別適用于對(duì)性能要求較高,而對(duì)數(shù)據(jù)安全不太在乎的領(lǐng)域,如圖形工作站等。對(duì)于個(gè)人用戶,RAID 0也是提高硬盤存儲(chǔ)性能的絕佳選擇。
RAID 1:鏡象結(jié)構(gòu)
對(duì)于使用這種RAID1結(jié)構(gòu)的設(shè)備來(lái)說(shuō),RAID控制器必須能夠同時(shí)對(duì)兩個(gè)盤進(jìn)行讀操作和對(duì)兩個(gè)鏡象盤進(jìn)行寫(xiě)操作。通過(guò)下面的結(jié)構(gòu)圖您也可以看到必須有兩個(gè)驅(qū)動(dòng)器。因?yàn)槭晴R象結(jié)構(gòu)在一組盤出現(xiàn)問(wèn)題時(shí),可以使用鏡象,提高系統(tǒng)的容錯(cuò)能力。它比較容易設(shè)計(jì)和實(shí)現(xiàn)。每讀一次盤只能讀出一塊數(shù)據(jù),也就是說(shuō)數(shù)據(jù)塊傳送速率與單獨(dú)的盤的讀取速率相同。因?yàn)?/span>RAID1的校驗(yàn)十分完備,因此對(duì)系統(tǒng)的處理能力有很大的影響,通常的RAID功能由軟件實(shí)現(xiàn),而這樣的實(shí)現(xiàn)方法在服務(wù)器負(fù)載比較重的時(shí)候會(huì)大大影響服務(wù)器效率。當(dāng)您的系統(tǒng)需要極高的可靠性時(shí),如進(jìn)行數(shù)據(jù)統(tǒng)計(jì),那么使用RAID1比較合適。而且RAID1技術(shù)支持“熱替換”,即不斷電的情況下對(duì)故障磁盤進(jìn)行更換,更換完畢只要從鏡像盤上恢復(fù)數(shù)據(jù)即可。當(dāng)主硬盤損壞時(shí),鏡像硬盤就可以代替主硬盤工作。鏡像硬盤相當(dāng)于一個(gè)備份盤,可想而知,這種硬盤模式的安全性是非常高的,RAID 1的數(shù)據(jù)安全性在所有的RAID級(jí)別上來(lái)說(shuō)是最好的。但是其磁盤的利用率卻只有50%,是所有RAID級(jí)別中最低的。
RAID1又稱為Mirror或Mirroring,它的宗旨是最大限度的保證用戶數(shù)據(jù)的可用性和可修復(fù)性。 RAID 1的操作方式是把用戶寫(xiě)入硬盤的數(shù)據(jù)百分之百地自動(dòng)復(fù)制到另外一個(gè)硬盤上。
當(dāng)讀取數(shù)據(jù)時(shí),系統(tǒng)先從RAID 0的源盤讀取數(shù)據(jù),如果讀取數(shù)據(jù)成功,則系統(tǒng)不去管備份盤上的數(shù)據(jù);如果讀取源盤數(shù)據(jù)失敗,則系統(tǒng)自動(dòng)轉(zhuǎn)而讀取備份盤上的數(shù)據(jù),不會(huì)造成用戶工作任務(wù)的中斷。當(dāng)然,我們應(yīng)當(dāng)及時(shí)地更換損壞的硬盤并利用備份數(shù)據(jù)重新建立Mirror,避免備份盤在發(fā)生損壞時(shí),造成不可挽回的數(shù)據(jù)損失。
由于對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行百分之百的備份,在所有RAID級(jí)別中,RAID 1提供最高的數(shù)據(jù)安全保障。同樣,由于數(shù)據(jù)的百分之百備份,備份數(shù)據(jù)占了總存儲(chǔ)空間的一半,因而,Mirror的磁盤空間利用率低,存儲(chǔ)成本高。
Mirror雖不能提高存儲(chǔ)性能,但由于其具有的高數(shù)據(jù)安全性,使其尤其適用于存放重要數(shù)據(jù),如服務(wù)器和數(shù)據(jù)庫(kù)存儲(chǔ)等領(lǐng)域。
RAID 0+1
RAID 0+1:正如其名字一樣RAID 0+1是RAID 0和RAID 1的組合形式,也稱為RAID 10。
以四個(gè)磁盤組成的RAID 0+1為例,其數(shù)據(jù)存儲(chǔ)方式如圖所示:RAID 0+1是存儲(chǔ)性能和數(shù)據(jù)安全兼顧的方案。它在提供與RAID 1一樣的數(shù)據(jù)安全保障的同時(shí),也提供了與RAID 0近似的存儲(chǔ)性能。
由于RAID 0+1也通過(guò)數(shù)據(jù)的100%備份提供數(shù)據(jù)安全保障,因此RAID 0+1的磁盤空間利用率與RAID 1相同,存儲(chǔ)成本高。
RAID 0+1的特點(diǎn)使其特別適用于既有大量數(shù)據(jù)需要存取,同時(shí)又對(duì)數(shù)據(jù)安全性要求嚴(yán)格的領(lǐng)域,如銀行、金融、商業(yè)超市、倉(cāng)儲(chǔ)庫(kù)房、各種檔案管理等。
RAID2:帶海明碼校驗(yàn)
從概念上講,RAID 2 同RAID 3類似, 兩者都是將數(shù)據(jù)條塊化分布于不同的硬盤上, 條塊單位為位或字節(jié)。然而RAID 2 使用一定的編碼技術(shù)來(lái)提供錯(cuò)誤檢查及恢復(fù)。這種編碼技術(shù)需要多個(gè)磁盤存放檢查及恢復(fù)信息,使得RAID 2技術(shù)實(shí)施更復(fù)雜。因此,在商業(yè)環(huán)境中很少使用。下圖左邊的各個(gè)磁盤上是數(shù)據(jù)的各個(gè)位,由一個(gè)數(shù)據(jù)不同的位運(yùn)算得到的海明校驗(yàn)碼可以保存另一組磁盤上,具體情況請(qǐng)見(jiàn)下圖。由于海明碼的特點(diǎn),它可以在數(shù)據(jù)發(fā)生錯(cuò)誤的情況下將錯(cuò)誤校正,以保證輸出的正確。它的數(shù)據(jù)傳送速率相當(dāng)高,如果希望達(dá)到比較理想的速度,那最好提高保存校驗(yàn)碼ECC碼的硬盤,對(duì)于控制器的設(shè)計(jì)來(lái)說(shuō),它又比RAID3,4或5要簡(jiǎn)單。沒(méi)有免費(fèi)的午餐,這里也一樣,要利用海明碼,必須要付出數(shù)據(jù)冗余的代價(jià)。輸出數(shù)據(jù)的速率與驅(qū)動(dòng)器組中速度最慢的相等。
RAID3:帶奇偶校驗(yàn)碼的并行傳送
這種校驗(yàn)碼與RAID2不同,只能查錯(cuò)不能糾錯(cuò)。它訪問(wèn)數(shù)據(jù)時(shí)一次處理一個(gè)帶區(qū),這樣可以提高讀取和寫(xiě)入速度,它像RAID 0一樣以并行的方式來(lái)存放數(shù)據(jù),但速度沒(méi)有RAID 0快。校驗(yàn)碼在寫(xiě)入數(shù)據(jù)時(shí)產(chǎn)生并保存在另一個(gè)磁盤上。需要實(shí)現(xiàn)時(shí)用戶必須要有三個(gè)以上的驅(qū)動(dòng)器,寫(xiě)入速率與讀出速率都很高,因?yàn)樾r?yàn)位比較少,因此計(jì)算時(shí)間相對(duì)而言比較少。用軟件實(shí)現(xiàn)RAID控制將是十分困難的,控制器的實(shí)現(xiàn)也不是很容易。它主要用于圖形(包括動(dòng)畫(huà))等要求吞吐率比較高的場(chǎng)合。不同于RAID 2,RAID 3使用單塊磁盤存放奇偶校驗(yàn)信息。如果一塊磁盤失效,奇偶盤及其他數(shù)據(jù)盤可以重新產(chǎn)生數(shù)據(jù)。如果奇偶盤失效,則不影響數(shù)據(jù)使用。RAID 3對(duì)于大量的連續(xù)數(shù)據(jù)可提供很好的傳輸率,但對(duì)于隨機(jī)數(shù)據(jù),奇偶盤會(huì)成為寫(xiě)操作的瓶頸。利用單獨(dú)的校驗(yàn)盤來(lái)保護(hù)數(shù)據(jù)雖然沒(méi)有鏡像的安全性高,但是硬盤利用率得到了很大的提高,為(n-1)/n。
RAID4:帶奇偶校驗(yàn)碼的獨(dú)立磁盤結(jié)構(gòu)
RAID4和RAID3很象,不同的是,它對(duì)數(shù)據(jù)的訪問(wèn)是按數(shù)據(jù)塊進(jìn)行的,也就是按磁盤進(jìn)行的,每次是一個(gè)盤。在圖上可以這么看,RAID3是一次一橫條,而RAID4一次一豎條。它的特點(diǎn)的RAID3也挺象,不過(guò)在失敗恢復(fù)時(shí),它的難度可要比RAID3大得多了,控制器的設(shè)計(jì)難度也要大許多,而且訪問(wèn)數(shù)據(jù)的效率不怎么好。
RAID5:分布式奇偶校驗(yàn)的獨(dú)立磁盤結(jié)構(gòu)
從它的示意圖上可以看到,它的奇偶校驗(yàn)碼存在于所有磁盤上,其中的p0代表第0帶區(qū)的奇偶校驗(yàn)值,其它的意思也相同。RAID5的讀出效率很高,寫(xiě)入效率一般,塊式的集體訪問(wèn)效率不錯(cuò)。因?yàn)槠媾夹r?yàn)碼在不同的磁盤上,所以提高了可靠性,允許單個(gè)磁盤出錯(cuò)。RAID 5也是以數(shù)據(jù)的校驗(yàn)位來(lái)保證數(shù)據(jù)的安全,但它不是以單獨(dú)硬盤來(lái)存放數(shù)據(jù)的校驗(yàn)位,而是將數(shù)據(jù)段的校驗(yàn)位交互存放于各個(gè)硬盤上。這樣,任何一個(gè)硬盤損壞,都可以根據(jù)其它硬盤上的校驗(yàn)位來(lái)重建損壞的數(shù)據(jù)。硬盤的利用率為n-1。 但是它對(duì)數(shù)據(jù)傳輸?shù)牟⑿行越鉀Q不好,而且控制器的設(shè)計(jì)也相當(dāng)困難。RAID 3 與RAID 5相比,重要的區(qū)別在于RAID 3每進(jìn)行一次數(shù)據(jù)傳輸,需涉及到所有的陣列盤。而對(duì)于RAID 5來(lái)說(shuō),大部分?jǐn)?shù)據(jù)傳輸只對(duì)一塊磁盤操作,可進(jìn)行并行操作。在RAID 5中有“寫(xiě)損失”,即每一次寫(xiě)操作,將產(chǎn)生四個(gè)實(shí)際的讀/寫(xiě)操作,其中兩次讀舊的數(shù)據(jù)及奇偶信息,兩次寫(xiě)新的數(shù)據(jù)及奇偶信息。 RAID-5的話,優(yōu)點(diǎn)是提供了冗余性(支持一塊盤掉線后仍然正常運(yùn)行),磁盤空間利用率較高(N-1/N),讀寫(xiě)速度較快(N-1倍)。RAID5最大的好處是在一塊盤掉線的情況下,RAID照常工作,相對(duì)于RAID0必須每一塊盤都正常才可以正常工作的狀況容錯(cuò)性能好多了。因此RAID5是RAID級(jí)別中最常見(jiàn)的一個(gè)類型。RAID5校驗(yàn)位即P位是通過(guò)其它條帶數(shù)據(jù)做異或(xor)求得的。計(jì)算公式為P=D0xorD1xorD2…xorDn,其中p代表校驗(yàn)塊,Dn代表相應(yīng)的數(shù)據(jù)塊,xor是數(shù)學(xué)運(yùn)算符號(hào)異或。
RAID5校驗(yàn)位算法詳解
P=D1 xor D2 xor D3 … xor Dn (D1,D2,D3 … Dn為數(shù)據(jù)塊,P為校驗(yàn),xor為異或運(yùn)算)
XOR(Exclusive OR)的校驗(yàn)原理如下表:
A值 |
B值 |
Xor結(jié)果 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
這里的A與B值就代表了兩個(gè)位,從中可以發(fā)現(xiàn),A與B一樣時(shí),XOR(非或又稱"非異或")結(jié)果為0,A與B不一樣時(shí),XOR結(jié)果就是1,如果知道XOR結(jié)果,A和B中的任何兩個(gè)數(shù)值,就可以反推出剩下的一個(gè)數(shù)值。比如A為1,XOR結(jié)果為1,那么B肯定為0,如果XOR結(jié)果為0,那么B肯定為1。這就是XOR編碼與校驗(yàn)的基本原理。
RAID 5是一種存儲(chǔ)性能、數(shù)據(jù)安全和存儲(chǔ)成本兼顧的存儲(chǔ)解決方案。 以四個(gè)硬盤組成的RAID 5為例,其數(shù)據(jù)存儲(chǔ)方式如下圖所示:
圖中,P0為D0,D1和D2的奇偶校驗(yàn)信息,其它以此類推。
由圖中可以看出,RAID 5不對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行備份,而是把數(shù)據(jù)和相對(duì)應(yīng)的奇偶校驗(yàn)信息存儲(chǔ)到組成RAID5的各個(gè)磁盤上,并且奇偶校驗(yàn)信息和相對(duì)應(yīng)的數(shù)據(jù)分別存儲(chǔ)于不同的磁盤上。當(dāng)RAID5的一個(gè)磁盤數(shù)據(jù)發(fā)生損壞后,利用剩下的數(shù)據(jù)和相應(yīng)的奇偶校驗(yàn)信息去恢復(fù)被損壞的數(shù)據(jù)。
RAID 5可以理解為是RAID 0和RAID 1的折衷方案。RAID 5可以為系統(tǒng)提供數(shù)據(jù)安全保障,但保障程度要比Mirror低而磁盤空間利用率要比Mirror高。RAID 5具有和RAID 0相近似的數(shù)據(jù)讀取速度,只是多了一個(gè)奇偶校驗(yàn)信息,寫(xiě)入數(shù)據(jù)的速度比對(duì)單個(gè)磁盤進(jìn)行寫(xiě)入操作稍慢。同時(shí)由于多個(gè)數(shù)據(jù)對(duì)應(yīng)一個(gè)奇偶校驗(yàn)信息,RAID 5的磁盤空間利用率要比RAID 1高,存儲(chǔ)成本相對(duì)較低。
數(shù)據(jù)恢復(fù)
一旦RAID陣列出現(xiàn)故障,硬件服務(wù)商只能給客戶重新初始化或者REBUILD,這樣客戶數(shù)據(jù)就會(huì)無(wú)法挽回。出現(xiàn)故障以后只要不對(duì)陣列作初始化操作,就有機(jī)會(huì)恢復(fù)出故障RAID磁盤陣列的數(shù)據(jù)。
由于RAID數(shù)據(jù)恢復(fù)的復(fù)雜性和技術(shù)難度較高,在RAID陣列出現(xiàn)故障時(shí),一定要找有經(jīng)驗(yàn)的專業(yè)數(shù)據(jù)恢復(fù)中心提供數(shù)據(jù)恢復(fù)幫助。判斷專業(yè)數(shù)據(jù)恢復(fù)中心的標(biāo)準(zhǔn)包括數(shù)據(jù)恢復(fù)中心所使用的RAID數(shù)據(jù)恢復(fù)工具、數(shù)據(jù)恢復(fù)工程師從業(yè)經(jīng)驗(yàn)等。因?yàn)?/span>RAID陣列中存儲(chǔ)的數(shù)據(jù)一般都比較重要,一旦被徹底損壞,將造成無(wú)法挽回的損失。
目前常用的RAID陣列數(shù)據(jù)恢復(fù)工具包括效率源HD Doctor、數(shù)據(jù)恢復(fù)指南針Data Compass、硬盤復(fù)制機(jī)Data Copy King等。