什么是RAID?RAID有什么用?RAID原理


什么是RAID

硬盤是個很脆弱的東西,它經常會壞掉。所以,為了保證服務器可靠耐用,硬盤必須時時刻刻保持可用。所以有了RAID這個東西。它的目的是將好幾個硬盤合並在一起,就算硬盤壞了一個,剩下還有好幾個硬盤是正常的,這樣服務器才不會掛掉。

當然,保證服務高可用只是RAID其中的一個功能。它還能提升儲存容量、加快存取速度等能力。

RAID分為0~6級,另外還有RAID 1+0,簡稱RAID 10。下面分別介紹這幾種RAID實現原理。

下圖就是一個RAID實物圖:

下圖是RAID示意圖:

它跟插線板是相似的概念。區別在於,插線板是為了擴展電源插孔,RAID是為了擴展硬盤插槽。

RAID-0

RAID 0沒有數據冗余、沒有奇偶校驗。因此,如果一個硬盤壞掉了,整個RAID陣列的數據都沒法正常使用了。它存在的意義在於加快讀寫速度,提升硬盤容量。通常在數據可靠性要求不高的情況下才會使用RAID 0。比如游戲、科學計算。

因為每個硬盤都可以獨立讀寫,如果硬盤有n塊,那么讀寫速度提升是n倍。

下圖是RAID 0的數據分布方式:

RAID-1

RAID 1模式下,如果有n塊硬盤,那么會把數據保存n份一模一樣的。這樣即使一份數據壞掉了,剩下的備份可以正常工作。性能方面,隨機存取速度相當於所有硬盤的總和,寫入性能和原來單個硬盤的性能一樣。

RAID-1E

這種模式跟RAID 1的區別在於,當硬盤數量大於2時,RAID 1E對於同一份數據最多保存兩份一模一樣的。這樣可以充分的利用硬盤空間。下圖說明了這種儲存方式。

RAID-1+0

這種模式全稱是RAID-1加上RAID-0。它實現的原理如下圖所示:

用幾句話來描述吧。它相當於先把這些硬盤成對成對的用RAID-1方式組合起來,然后再把這些組合結果用RAID-0方式組合起來。這種模式下它支持高可用,又能有很好的讀寫性能。這種方式,由於需要存兩份一模一樣的數據,因此容量會損失一半。

這種方式是目前最常用的。

RAID-2

這種模式現在已經不太常用了。它把每個數據位都打散,然后均勻的放到各個硬盤上。使用了Hamming代碼來做糾錯,將Hamming代碼放到專門的幾個硬盤里面。下圖可以看到這種模式的數據分布:

RAID-3

這種模式現在也已經不太常用了。它把每個數據字節都打散,然后均勻的分散到各個硬盤。然后將奇偶校驗的數據放到專門的硬盤里。關於奇偶校驗的數據在后面會提到。這種模式下,由於每個數據都分散到各個硬盤的不同地方,因此每次操作都需要所有硬盤來參與。所以,對於隨機存取的場景下,這種模式的性能是很差的。對於特別長的順序讀寫是非常合適的,比如視頻監控數據。

RAID-4

這種模式把每個數據塊打散,然后均勻的分散到各個硬盤。另外還設置了專門的硬盤用來儲存奇偶校驗的數據。這種模式下,隨機讀取的性能非常好。但是隨機寫入的性能卻不行。因為需要將所有奇偶校驗的數據全部寫到專門的硬盤里面。

RAID-5

這種模式把每個數據塊打散,然后均勻分布到各個硬盤。與RAID-4不同的是,它將奇偶校驗的數據均勻的分散到不同的硬盤。這樣如果有一個硬盤壞掉了,丟失的數據可以從奇偶校驗里面計算出來。

通常RAID-5的容量會損失1/3,用來儲存奇偶校驗信息。

這種模式兼顧了成本、性能,也是比較常用的一種模式。

RAID-6

這種模式與其他模式的區別在於,它支持兩塊硬盤同時損壞,並且仍然能夠正常工作。它有這般神奇的能力,是因為它保存了兩種奇偶校驗。一種是普通的XOR方式,跟RAID-5一樣。另外一種比較復雜,需要消耗比較多的CPU。這種奇偶校驗方式在后面再講。

參考資料

https://en.wikipedia.org/wiki/RAID

https://en.wikipedia.org/wiki/Standard_RAID_levels


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM