RIAD工作原理

Raid舊稱Redundant Array of Inexpensive Disks,即廉價磁盤冗餘陣列;現稱Redundant Array of Independent Disks,即獨立磁盤冗餘陣列,簡稱爲磁盤陣列。其基本的思想是把多個相對廉價的磁盤進行組合成爲一個磁盤陣列組,以達到甚至超越一個價格相對昂貴,容量相對大的磁盤。根據Raid版本的不同,Raid相對於散列的磁盤可以提供多方面的優勢:更強的容錯功能、更快的讀寫速度、更高的資料整合度等等……

簡單來說,Raid的效果是把多個磁盤組成一個邏輯區域,因此係統只會將其視作一塊磁盤。以往,Raid主要出現在服務器領域,而隨着技術的不斷髮展,Raid也逐漸進入了玩家的世界。

Raid實現

  • 純軟件Raid :指程序運行在操作系統中且沒有其他額外硬件參與的Raid模式。在這種模式下磁盤通常直接連接至計算機的I/O接口或是沒有經過處理器的HBA。這樣只有在操作系統加載了Raid驅動軟件之後,整個陣列纔會變成活動對象。這樣的Raid模式通常被當作操作系統的一項額外附加值贈送給用戶,其最大的特色就是低廉的成本。

  • 半軟件半硬件Raid:指通過一些硬件幫助Raid軟件完成其薄弱環節的模式。在這種模式下通常會有一些額外的硬件參與其中(比如帶有Raid BIOS的HBA或直接在主板上加入Raid BIOS芯片等)。這顆額外的BIOS可以使得系統通電後陣列就能成爲活動對象,在啓動的過程中提供冗餘。除此以外,大多數的類似方案還提供一個BIOS軟件使得維護陣列可以不用啓動操作系統。而且,這種硬件輔助的Raid通常都擁有跨平臺的驅動,因此其相比於純軟件Raid更不依賴於操作系統。
    .

  • 純硬件Raid:指一張獨立的Raid卡或者基於RoC(Raid on Chip)技術的硬件方案。Raid卡通常內置了Raid處理器(I/O)處理器並且擁有自己的驅動接口(I/O控制器)。比較常見的是通過主板上的PCI或者PCI-e接口與系統進行連接。Raid卡通常是非常昂貴的,但也是最靈活和高效的解決方案。在這種情況下Raid的運行是完全獨立於操作系統的。這樣Raid處理器將可以提供最好的磁盤性能並且完全釋放計算機硬件的負擔。在RoC方案中,Raid控制器,緩存控制器,I/O面板甚至緩存都被聚集在一塊芯片上。這樣的芯片可以是整體安裝在主板上或者安裝在一塊獨立的PCB上,其中最常見於服務器主板上。

Raid版本

Raid 0

Raid 0是將多個磁盤直接合併成一個大的磁盤,並行I/O,沒有冗餘。在存放數據的時候,控制器將數據按照磁盤個數進行分段,並同時將這些分段寫入相對應的磁盤之中。這樣做的好處是Raid 0在所有的陣列之中擁有最快的讀寫速率,然而由於Raid 0並不具有冗餘功能,只要有任意一塊磁盤發生損壞,那麼所有磁盤上的數據都會丟失。理論上Raid 0的效能就是單磁盤效能與磁盤數的乘積,但受制於I/O瓶頸以及環境影響,其實際效能也會遵從邊際效應。也就是說,隨着磁盤數的增加,帶來的效能提升會逐漸減小。其工作原理如下:

enter description here

Raid 1

Raid 1是將多個磁盤進行互相鏡像。在數據寫入的時候,控制器將數據同時寫入所有磁盤,因此只有在所有的磁盤都發生損壞的情況下才會丟失數據。另外,由於所有的磁盤中都寫有相同的數據,因此在讀取數據的時候可以通過多線程達到很好的讀取速度。當主磁盤發生損壞時,鏡像磁盤可以直接代替主磁盤繼續工作,故Raid 1擁有所有Raid中最好的安全性。但是無論用多少磁盤組建Raid 1,都只有一塊磁盤的容量,且實際可用空間是所有磁盤中容量最小的尺寸,因此Raid 1也是所有Raid中磁盤利用率最低的一個級別。其工作原理如下:

enter description here
### Raid 2
Raid 2是Raid 0的改良版,在Raid 0的基礎上增加了基於Hamming Code的錯誤修正碼(ECC,Error Correction Code)。磁盤組中序號爲2的冪的磁盤(第1個、第2個、第4個、第8個……)爲校驗盤,用於存儲校驗信息。從這個特徵中我們很容易就可以得到一個結論:陣列中的磁盤總數越多,校驗磁盤所佔的比例越低,磁盤空間利用率越高。組建Raid 2需要至少3個磁盤,其工作原理如下:

enter description here

Raid 3

Raid 3與Raid 2非常類似,其區別在於完全使用一個磁盤存儲校驗信息,實際可用容量是所有磁盤容量的總和減去一塊磁盤。這樣做的好處是,當某塊數據磁盤發生損壞時,可以通過其他數據磁盤和校驗磁盤算出損失的數據;而當校驗磁盤發生損壞時,數據磁盤也依舊可以進行工作並可以重新生成校驗數據。而Raid 3的性能主要由容錯算法和分塊大小所決定。組建Raid 3至少需要3塊磁盤,其工作原理如下:

enter description here

Raid 4

Raid 4是一種思路與Raid 3非常相似的方案。其與Raid 3的不同就在於,Raid 4是將數據按區塊爲單位進行分割的,每次的數據讀寫過程中都必須從校驗磁盤中取出相應的校驗進行覈對,這樣可能帶來的隱患是,校驗磁盤會由於過度頻繁的使用導致損耗率提高。Raid 4的工作原理如下:

enter description here

Raid 5

Raid 5是一種兼顧存儲效能、安全性以及利用率的存儲方案,主要是建立在Disk Striping技術上實現的。Raid 5在存儲時把數據和相應的奇偶校驗信息存儲到Raid 5的各個磁盤上,並且把奇偶校驗信息和數據分別存於不同的磁盤上。這樣當Raid 5中發生一個磁盤損壞的時候,可以利用剩下的磁盤和奇偶校驗數據計算恢復損壞的數據。Raid 5可以理解成Raid 0和Raid 1的折中方案,Raid 5提供了接近Raid 0的磁盤讀取性能且比Raid 0更高的安全保障。然而由於Raid 5中數據都擁有校驗信息,當更改數據時校驗會嚴重影響磁盤的寫入性能。Raid 5的寫入過程非常繁雜:當新數據進入時,控制器會先讀取需要更新扇區上的數據,讀出校驗數據,寫入新數據,寫入新校驗數據。也就是說,寫入新數據這一步需要通過4個動作完成。這個問題通過Raid控制器的緩存可以得到有效改善。其工作原理如下:

enter description here

Raid 6

Raid 6是一種與Raid 5思路非常相似的方案。其與Raid 5的不同點在於,Raid 6增加了第二個獨立的效驗盤,兩個獨立的奇偶校驗使用不同的算法,相比Raid 5而言進一步提高了數據安全性,允許最多兩塊磁盤同時發生損壞。然而相比於Raid 5,其缺點也是非常明顯的:由於多了一個獨立的奇偶校驗,磁盤利用率相比Raid 5更低;且兩種不同的校驗算法同時存在導致磁盤的寫入性能進一步降低,這也是其極少被實際應用的原因。建立Raid 6需要至少4個磁盤,Raid 6的工作原理如下:

enter description here

Raid 10

Raid 10,亦稱Raid 1+0,是將所有的磁盤分成兩組,每組先進行Raid 1陣列,然後將兩個Raid 1陣列再進行Raid 0陣列。其工作原理如下:

enter description here

Raid 01

Raid 01,亦稱Raid 0+1,與Raid 10恰恰相反,是將每組磁盤先進行Raid 0陣列再進行Raid 1陣列。由於Raid 10相較於其有更好的安全性和適用性,通常主板只會支持Raid 10而不支持Raid 01。Raid 01的工作原理如下:

enter description here

Raid 50

Raid 50,亦稱Raid 5+0,類似於Raid 10和Raid 01,是將磁盤分爲幾組,每組磁盤先進行Raid 5陣列,再進行Raid 0陣列。這樣做的目的在於提高Raid 5的寫入性能。Raid 50的工作原理如下:

enter description here

常見Raid的一些主要信息對比:

enter description here
RAID的選擇

enter description here

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