Raid5和Raid6的數據安全性比較

raid5raid6的數據安全性比較
磁盤陣列(disk array)可以有效的提高存儲系統的可靠性和性能,同時也存在顯著的缺點,那就是由於多個設備(磁盤)同時使用,導致了可靠性降低(從概率的角度來講:N個設備的可靠性是一個設備的1/N)。
    RAID(Redundant array of inexpensive disk)就是爲了解決這個問題而產生的,RAID通過給磁盤陣列增加冗餘磁盤提高了磁盤陣列的可靠性。所謂冗餘磁盤,即該磁盤不用於存放實際數據,而用來存放一些冗餘信息,而這些冗餘信息可用來在必要的時候進行有效數據恢復,從而增加磁盤陣列的可靠性,翻譯成中文應該叫廉價磁盤冗餘陣列。
在RAID6出現之前,RAID已經有了從RAID0~RAID5六個版本。那麼我們已經有了這麼多的RAID方式,提供了相當級別的可靠性保護,爲什麼我們還需要RAID6?在這裏,我們這裏先比較研究一下幾種比較有代表性的RAID方式:
磁盤冗餘家族概覽
目前應用最廣泛,支持設備最多的RAID方式主要是RAID0,RAID1和RAID5
(1)無冗餘(RAID0):RAID0實際上不能算做真正的RAID技術,它只是實現了磁盤陣列存放數據的帶狀分佈。雖然提高了大規模數據訪問的性能,但是RAID0並沒有冗餘容錯的功能,因爲它本身並無冗餘,所以可以說這裏的RAID0是個誤稱。
(2)鏡像(RAID1):RAID1同樣實現了數據的帶狀分佈,與RAID0所不同的是,在數據寫入一個磁盤的時候,同時在另一個磁盤做相應的鏡象。因此,RAID1雖然有數據容錯功能,但是其對磁盤的利用率實在比較底,僅爲50%。
數據分佈示意圖(以4塊磁盤組成的陣列爲例):
clip_image001
註釋:其中d1,d2等表示存放的數據,d1’, d2’分別表示了數據d1和d2的備份。
    (3)奇偶校驗(RAID5):相對於RAID1比較,RAID5也是僅僅實現了單個磁盤的冗餘糾錯功能,但是卻大大提高了磁盤的有效利用率。以RAID5(4D+P)爲例子來講,使用4塊磁盤存放數據位,使用1塊磁盤存放校驗位。其基本原理是這樣的:根據條帶化的數據4D(使用四位數據)生成一位的校驗信息,存放在第五塊磁盤中。
生成P校驗位的公式一般是這樣的:
    P = D1 ⊕ D2 ⊕ D3 ⊕ D4
    P爲校驗位,D1~D4分別代表四個數據位,⊕表示異或操作。
可以看到,當D1,D2,D3,D4中其餘的一個數據丟失的時候,可以利用其餘的三個數據位和校驗位P進行恢復,具體的恢復公式如下:
例如,當D1丟失的時候,D1 = D2 ⊕ D3 ⊕ D4 ⊕ P
同時可以看到,當兩快磁盤出現故障的時候,RAID5無法恢復。
數據分示意布圖(以4D+1P爲例):
clip_image002
其中,P1爲數據位d0,d1,d2,d3的校驗信息,P2爲數據位d4,d5,d6,d7的校驗信息等等。可以看到,校驗信息並非存放在一塊固定的磁盤上的,而是存放在不同的磁盤的,這樣可以平衡各個磁盤的讀寫次數,從而平衡各個磁盤的使用頻率(因爲校驗位的讀寫要相對頻繁一點)。
   RAID5已經提供了一定程度的可靠性,然而也犧牲了一定的讀取速度。特別是在RAID重構作業中,大量的數據讀寫操作增加硬盤的負擔,舊的硬盤更容易發生故障。RAID5的侷限性還表現在RAID5僅能在一塊硬盤發生故障的情況下修復數據,如果2塊硬盤同時發生故障,RAID5則無能爲力。
以前,兩塊盤同時壞的情況是小概率事件,幾乎不可能發生。但是近來隨着光纖(FC)盤和SATA盤的容量和密度不斷增加,使得RAID 5的重建時間也不斷增加。兩塊硬盤同時損壞的概率也大幅增加,在企業級存儲上,這種風險必須得到重視。所以RAID6應需誕生了。
    RAID6同RAID5最大的區別就是在RAID5的基礎上除了具有P校驗位以外,還加入了第2個校驗位Q位。以RAID6(6D+1P+1Q)爲例子,這個系統需要8塊硬盤,其中6塊用於存放數據,1塊用於存放P校驗位,1塊用於存放Q校驗位。當然,我得又一次強調,並非某個具體的獨立的盤全部用來存放 P校驗信息,另外一個Q校驗信息。而是對於某個位組(6個數據位+P位+Q位)來說,採用某種原則,6塊盤上存放數據位,1塊盤存放P位,1塊盤用來存放 Q位。
其數學原理如下:
校驗位的生成:
    P = D1 ⊕ D2 ⊕ D3 ⊕ D4 ⊕ D5 ⊕ D6
    Q = GF(D1) ⊕ GF(D2) ⊕ GF(D3) ⊕ GF(D4) ⊕ GF(D5) ⊕ GF(D6)
    D1~D6:條帶化的數據
    P:P校驗位
    Q:Q校驗位
⊕:異或操作
    GF(D1):對D1位進行Galois Field變換。
當一塊磁盤出現數據錯誤或者丟失的時候,恢復方法同RAID5,無須使用Q校驗位。當兩塊磁盤上的數據出現錯誤或者丟失的時候,恢復方法爲:利用上邊給出的P,Q的生成公式,聯立方程組,無論受損的數據是否包括P或者Q,總是能夠解出損失的兩位的數據。數據分佈示意圖(以6D+P+Q位例):
clip_image003
同樣可以看到,每個位組(6D+1P+1Q)的P,Q位是位於不同的磁盤上的。
    RAID6是在RAID5的改進,RAID6不僅能在一個磁盤離線的情況下將數據恢復(使用和RAID5一樣的異或校驗),而且由於用了兩個盤作爲糾錯盤,所以能應付兩個磁盤同時離線的情況。由於目前磁盤的容量越來越大等因素,在大型的關鍵數據庫中(如商業銀行大型的數據庫等)出現兩個磁盤同時出錯的概率也在上升,這也使得RAID6技術越來越被看好。
筆者針對同樣是8個磁盤,數據利用率同樣是75%,但分別用RAID5RAID6進行構建的磁盤陣列情況進行比較。一個用兩個獨立的RAID5(3D+ 1P)構建;另一個用RAID6(6D+1P+1Q)構建,應用伯努利(Bernoulli)概率分佈分析如下(假設單個磁盤在10年內出現故障的概率是clip_image004):
兩個獨立的RAID5(3D+1P)構建的系統數據安全的概率分析:
在三種情況下,該系統的數據是安全的:
    1. 8個磁盤都沒有損壞的情況,概率是clip_image005
    2. 8個磁盤只有一個損壞的情況,概率是clip_image006
    3. 兩個獨立RAID5(3D+1P)系統中,各損壞一個磁盤的情況,概率是clip_image007
所以,兩個獨立的RAID5(3D+1P)構建的系統數據安全的總概率是 clip_image008
? 一個RAID6(6D+1P+1Q)構建的系統數據安全的概率分析:
    1. 8個磁盤都沒有損壞的情況,概率是clip_image005[1] [與上個系統相同]
    2. 8個磁盤只有一個損壞的情況,概率是clip_image009 [與上個系統相同]
    3. 8個磁盤中有兩個損壞的情況,概率是clip_image010
所以,一個RAID6(6D+1P+1Q)構建的系統數據安全的總概率是clip_image011
實際一點,假設單個磁盤在10年內出現故障的概率是,則用RAID5構建的系統,十年內不出故障的安全概率爲99.881629%;對比用RAID6構建的系統,十年內不出故障的安全概率爲99.994607%。
可見,RAID6數據安全級別是相當高的。當然RAID5的安全性也相當好了。從上面數據看起來,兩者相差不大。但是對於出現故障的概率RAID5是 0.118371%, RAID6是0.005393%.這樣看來,提高還是很大的。隨着磁盤的容量越來越大導致數據出錯概率的增大。兩者的差距還會進一步加大,RAID6優勢就更明顯了。而當磁盤容量增至20多TB的時候,RAID6安全性比RAID5已經高出1000倍左右。
對RAID6做一下總結如下:
在使用大數據塊的情況下,RAID6隨機讀取性能很好;因爲不但要在每硬盤上寫入校驗數據而且要在專門的校驗硬盤上寫入數據,RAID6隨機寫入性能很差。RAID6持續寫入性能一般,在使用小數據塊時表現很好。總體而言,RAID6擁有更快速的讀取性能,更高的容錯能力。但同時,RAID6也存在寫入速度很慢的缺點,RAID控制器在設計上更加複雜,成本更高。
    RAID6是一項很有吸引力的技術,它允許一個陣列中的兩塊磁盤同時出現故障而不會丟失數據。現在的磁盤可靠性已經很高,尤其是高端的光纖通道磁盤,那麼有必要對兩塊磁盤同時出現故障的情況進行設防嗎?答案是肯定的,目前的磁盤容量已經很大,如果一塊磁盤出現故障,那麼整個RAID組中的磁盤都需要進行數據重構,磁盤容量越大需要的時間越長,在數據重構的時間內如果再發生磁盤故障,那麼所有的數據都將丟失。因此RAID6技術將可靠性提高了1000倍以上。
可以看到,RAID更加註重的是數據的安全性,而且由於成本之高,所以並不適合所有的企業,對於一般安全性的數據而言,RAID5還是比較合適的,只有高安全性數據,才需要RAID6技術。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章