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