進存儲行業第一個要掌握的技術

RAID技術

前言

Raid技術是進存儲行業必須瞭解的一門基礎知識,我也不例外。剛開始學的時候對Raid技術也處於朦朧狀態,一直看了好多遍纔有些明白(寒自己一個)。進存儲行業已經快2個年頭了,這些基礎知識我也有些淡忘,所以今天開始重新理一下頭緒,把這些基石打紮實了纔有更廣的前景。下面就來說說這個基礎的東東。

RAID技術的由來

RAID的初衷主要是爲了大型服務器提供高端存儲功能和冗餘的數據安全。在系統裏,RAID被看作是一個邏輯分區,但它其實是由多個硬盤組成的,至少兩塊。它通過在多個硬盤上面同時存儲和讀取數據來大幅提高從存儲系統的數據吞吐量,而且在很多RAID等級裏面都有較完善的校驗、恢復措施,從來大大提高了RAID系統的容錯度,實現系統的穩定冗餘性。

以前RAID技術一直是SCSI領域的獨有產品,主要是因爲它當時的成本和技術限制了其在低端市場的發展。今天,隨着RAID技術的日益成熟與硬盤廠商的努力,我們已經可以享受到成本相對低廉的IDE-RAID系統,也許穩定性與可靠性方面還不能與SCSI-RAID相比,但它相對於單個硬盤的性能優勢對愛好者來說是一個不小的誘惑。事實上,對於日常的低強度的操作,IDE-RAID已經足能勝任了。

RAID的三種實現方式

一、         全軟:

全軟的RAID就是指RAID的所有功能都是操作系統與CPU來完成的,沒有第三方的控制器。所以這樣有關RAID的所有任務的處理都是由CPU獨自擔當,那麼可想而知這樣的方式是效率最低的。配置方面也相對比較容易理解,只要把需要做RAID磁盤分配成動態磁盤後就可以進行相應的等級劃分。

二、         半軟半硬:

半軟半硬的RAID主要缺乏自己的I/O處理芯片,所以這方面工作仍然需要CPU與驅動程序來完成,而且所採用的RAID控制、處理芯片能力一般比較弱,不能支持高等級的RAID級別。在今天實際環境中很少採用這種方式。

三、         全硬:

全硬的RAID則全面具備了自己的RAID控制、處理與I/O處理芯片,有的甚至還有陣列緩衝,這樣的結構對CPU的佔有率以及整體性能是三種類型中最具有優勢的,但設備的成本也是三種類型中最高的。在如今的主流品牌服務器中都具備獨立的RAID卡。配置的話一般都是開機自檢後按CTRL+A(IBM X系列)進入卡里面進行RAID配置。

 

RAID等級介紹

RADI等級基本上分爲RAID 0,RAID1, RAID 2, RAID3, RAID4, RAID5, RAID6, RAID5E, RAID5EE, RAID10, RAID50幾種。

這裏我們就不一一介紹每一種RAID等級的原理,尤其是常見RAID等級的原理這裏就不細說了,在這裏我們說說接觸的比較少的的RAID等級,首先根據IT界的特色,我們先介紹下新技術RAID6

RAID6技術:

RAID5已經提供了一定程度的可靠性,然而也犧牲了一定的讀取速度。特別是在RAID重構作業中,大量的數據讀寫操作增加硬盤的負擔,舊的硬盤更容易發生故障。

RAID5的侷限性還表現在RAID5僅能在一塊硬盤發生故障的情況下修復數據,如果2塊硬盤同時發生故障,RAID5則無能爲力。

以前,兩塊盤同時壞的情況是小概率事件,幾乎不可能發生。但是近來隨着光纖(FC)盤和SATA盤的容量和密度不斷增加,使得RAID 5的重建時間也不斷增加。兩塊硬盤同時損壞的概率也大幅增加,在企業級存儲上,這種風險必須得到重視。所以RAID6應需誕生了。

根據本人瞭解RAID6實現原理大致分爲兩種,一種叫RAID6 P+Q,另外一種是RAID6DP

首先來說說第一種P+QPQ其實代表兩個獨立的校驗值,既它們的計算是互不干擾的,都是其他數據磁盤上的數據根據不同的算法而來的。具體的算法可以根據下面的公式來表示:

P=D0+D1+D2……..Dn

Q=(A0*D0)+ (A1*D1)+ (A2*D2)….. (An*Dn)   A表示數學上的一種變換系數

那麼如果其中一塊硬盤上數據丟失,這種情況和RAID5發生故障是一樣的,使用P校驗值做恢復即可。如果兩塊磁盤同時故障,這裏就需要用到上面的方程組了,其實也就是用到了我們初中裏面解方程的原理一樣。

我們舉個例子:比如有六塊硬盤做一個RAID6那麼校驗的方程應該是

P=D0+D1+D2+D3

Q=(A0*D0)+ (A1*D1)+ (A2*D2)+ (A3*D3)       A都是已知數

這時我們同時壞了D0,D1兩塊硬盤的話,我們就根據上面的方程式,因爲PQD3A是已知的數所以我們可以得出D0D1的值。同理任何兩個數損壞的話我們都可以根據上面的方程得出。同理下面說講的DP也是一樣。

瞭解了P+Q的校驗原理,理解RAID6DP的原理就簡單多了,DP校驗值分爲兩種,一種是P,一種是DP。其中P就是橫向的校驗值,如上一種的P一樣,DP這個校驗值比較特殊,它是指斜向校驗的值。還有一點就是PDP是單獨放在一塊硬盤上面的,這個和P+Q也是一個區分點。

RAID6RAID5數據安全性比較:

RAID6是在RAID5的改進,RAID6不僅能在一個磁盤離線的情況下將數據恢復(使用和RAID5一樣的異或校驗),而且由於用了兩個盤作爲糾錯盤,所以能應付兩個磁盤同時離線的情況。由於目前磁盤的容量越來越大等因素,在大型的關鍵數據庫中(如商業銀行大型的數據庫等)出現兩個磁盤同時出錯的概率也在上升,這也使得RAID6技術越來越被看好。

RAID6的數據安全級別是相當高的。當然RAID5的安全性也相當好了。從上面數據看起來,兩者相差不大。但是對於出現故障的概率RAID50.118371%, RAID60.005393%.這樣看來,提高還是很大的。隨着磁盤的容量越來越大導致數據出錯概率 的增大。兩者的差距還會進一步加大,RAID6的優勢就更明顯了。而當磁盤容量增至20TB的時候,RAID6的安全性比RAID5已經高出1000倍左右。

RAID6做一下總結如下:

在使用大數據塊的情況下,RAID6的隨機讀取性能很好;因爲不但要在每硬盤上寫入校驗數據而且要在專門的校驗硬盤上寫入數據,RAID6的隨機寫入性能很差。RAID6的持續寫入性能一般,在使用小數據塊時表現很好。總體而言,RAID6擁有更快速的讀取性能,更高的容錯能力。但同時,RAID6也存在寫入速度很慢的缺點,RAID控制器在設計上更加複雜,成本更高。

RAID6是一項很有吸引力的技術,它允許一個陣列中的兩塊磁盤同時出現故障而不會丟失數據。現在的磁盤可靠性已經很高,尤其是高端的光纖通道磁盤,那麼有必要對兩塊磁盤同時出現故障的情況進行設防嗎?答案是肯定的,目前的磁盤容量已經很大,如果一塊磁盤出現故障,那麼整個RAID組中的磁盤都需要進行數據重構,磁盤容量越大需要的時間越長,在數據重構的時間內如果再發生磁盤故障,那麼所有的數據都將丟失。因此RAID6技術將可靠性提高了1000倍以上。

可以看到,RAID更加註重的是數據的安全性,而且由於成本之高,所以並不適合所有的企業,對於一般安全性的數據而言,RAID5還是比較合適的,只有高安全性數據,才需要RAID6技術。

 

 

RAID 2:

它採用了早期的錯誤檢測與修正技術漢明碼校驗技術爲基礎的一種校驗技術。在RAID2中,一個硬盤在一個時間只存取一位的信息,如上圖所示左邊的是數據陣列,右邊的是3個漢明碼的校驗硬盤。硬盤的數量取決於所設定的數據存儲寬度,如果是4位的數據寬度,那麼就需要4個數據硬盤和3個漢明碼校驗硬盤。在寫入數據位的同時還要計算出漢明碼並寫入校驗陣列,讀取時也要對數據進行校驗,再發向系統。但RAID2也只能允許一個硬盤出錯。

RAID 3:

RAID3是在RAID2基礎上發展而來的,它是採用相對簡單的異或邏輯運算校驗代替了相對複雜的漢明碼校驗,,從而也大幅降低了成本,XOR的校驗原理如下圖:

我們可以發現校驗盤只有一個,而數據和RAID0一樣是分成條帶的存儲到陣列中,數據寫入時,數據陣列中處於同一等級的條帶的XOR校驗碼也被寫入校驗盤中相對應的位置,所以彼此不會干擾混亂。讀取時,則在調出條帶上數據的同時檢查校驗盤中相應的編碼,進行即時的ECC。因爲讀寫和RAID0比較相似,所以RAID3具有很高的數據傳輸率。

 

RAID 4:

RAID4RAID3相比來說,較大的差別就是RAID4是按數據塊爲單位進行存儲的。所謂的數據塊其實也就是一個完整的數據集合。比如一個文件就是一個完整的數據集合,這樣的存儲可以保證數據的完整性,不受因分條帶存儲在其他硬盤上而產生其他多塊硬盤損壞導致數據丟失的情況。在不同的硬盤上的同級數據塊也要通過XOR進行校驗,結果保存在單獨的校驗盤中。這裏指的同級數據塊的概念是:硬盤中同一柱面、同一扇區的位置就是指同級。因爲RAID4在寫入時要等一個硬盤同級寫完後再寫入下一塊中,所以它的寫的效率是相當低的。讀取也是一樣,因此RAID4不是爲速度而設計的。

 

RAID5E:

在新的陣列卡產品中,加入了對一個新的 RAID 級別的支持——RAID 5EE。以前,我們可能聽的比較多的是RAID 0RAID 1RAID 5 以及 RAID 5E,下面,我們將介紹一下RAID 5EE與其它幾種常用RAID級別的不同。

 RAID 5E(RAID 5 Enhencement): RAID 5E是在 RAID 5級別基礎上的改進,與RAID 5類似,數據的校驗信息均勻分佈在各硬盤上,但是,在每個硬盤上都保留了一部分未使用的空間,這部分空間沒有進行條帶化,最多允許兩塊物理硬盤出現故障。看起來,RAID 5ERAID 5加一塊熱備盤好象差不多,其實由於RAID 5E是把數據分佈在所有的硬盤上,性能會與RAID5 加一塊熱備盤要好。當一塊硬盤出現故障時,有故障硬盤上的數據會被壓縮到其它硬盤上未使用的空間,邏輯盤保持RAID 5級別。


RAID 5EE:

RAID 5E相比,RAID 5EE的數據分佈更有效率,每個硬盤的一部分空間被用作分佈的熱備盤,它們是陣列的一部分,當陣列中一個物理硬盤出現故障時,數據重建的速度會更快。

圖中,D代表數據,P代表校驗信息,S是指的熱備的空間,可以看到,被預留出來的熱備空間是均勻分佈在硬盤上的。

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章