1 RAID0
■ 無冗餘
■ 無校驗
2 RAID1
■ 無數據劃分■ 每個磁盤都一個對應的完全鏡像(mirror)磁盤
3 RAID5
■ 採用數據劃分■ 奇偶校驗,最少3個磁盤
■ 同時,只能允許一個磁盤出故障
奇偶校驗算法原理:
RAID5 的算法其實就是數學裏面的XOR(即異或)的算法,是這樣表示的⊕,
1 ⊕ 1 = 0
1 ⊕ 0 = 1
0 ⊕ 1 = 1
0 ⊕ 0 = 0
多個數字XOR的時候,有兩個特點:
A)結果與運算順序無關。也就是 (a XOR b) XOR c = a XOR (b XOR c)。
B)各個參與運算的數字與結果循環對稱。如果 a XOR b XOR c = d,那麼a = b XOR c XOR d;b = a XOR c XOR d;c = a XOR b XOR d。
磁盤陣列中的RAID5之所以能夠容錯,就是利用了XOR運算的這些特點。上面例子中的a、b、c、d就可以看作是四顆磁盤上的數據,其中三個是應用數據,剩下一個是校驗。碰到故障的時候,甭管哪個找不到了,都可以用剩下的三個數字XOR一下算出來。
在實際應用中,陣列控制器一般要先把磁盤分成很多條帶(英文叫Stripe),然後再對每組條帶做XOR。
所以做RAID5 至少要有三個硬盤, 而實際存儲空間的大小 = 最小硬盤的存儲大小 * (總的硬盤數 – 1 ),即:(n-1)/n 它容許當中任意一個硬盤出錯, 這樣可以根據校驗位算出另外一個硬盤的數據。
注意:由於需要重新計算校驗碼,所以每次寫操作伴隨着2個磁盤塊的讀操作和2個磁盤塊的寫操作。
4 RAID10
■ 空間利用率爲50%
RAID5 與 RAID10的比較
1) 空間利用率 RAID5 > RAID10
2) 可靠性 RAID5 < RAID10
3) 讀性能 RAID5 < RAID10
4) 寫性能 RAID5> RAID10
參考:
http://raid5sf.jiaogen.com/2010/05/19/raid5%E7%9A%84%E7%AE%97%E6%B3%95/
http://www.thegeekstuff.com/2010/08/raid-levels-tutorial/