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