獨立磁盤冗餘陣列(RAID)

獨立磁盤冗餘陣列(Redundant Array of Independent Disk, RAID),具有更高的可靠性和更高的執行效率。通過引入冗餘提高可靠性,通過並行提高性能。

下面主要介紹一下各種RAID級別。

RAID0

將多個磁盤合成一個大的磁盤,使用塊級拆分,對於n張磁盤的陣列,塊級拆分將磁盤陣列邏輯上的第i個塊存儲到第 (i mod n)+1 張磁盤上。RAID0不具有冗餘,並行I/O,速度快。


RAID1

RAID1使用鏡像(這裏指不拆分)。RAID1可靠性最高。


RAID2

以漢明碼(Hamming Code)的方式將數據進行編碼後分區爲獨立的比特,並將數據分別寫入硬盤中。因爲在數據中加入了錯誤修正碼(ECC,Error Correction Code),所以數據整體的容量會比原始數據大一些,RAID2最少要三臺磁盤驅動器方能運作。實際中並不使用此級別。


RAID3

RAID3使用位交叉的奇偶校驗組織結構。數據內的比特分散在不同的硬盤上,每張磁盤都要參與I每個I/O請求,每秒鐘支持的I/O操作數較少,所以這種規格比較適於讀取大量數據時使用。如果一個扇區被破壞,系統能準確地知道是哪個扇區壞了,並且對扇區中的每一位,系統可以通過計算其他磁盤上的對應扇區的對應位的奇偶值來推斷出該位是1還是0。如果其餘位的奇偶校驗位等於存儲的奇偶校驗位,則丟失的位是0,反之爲1。


RAID4

RAID4使用塊交叉的奇偶校驗組織結構,而RAID3是位交叉奇偶校驗組織結構。它像RAID0一樣使用塊級拆分,此外在一張獨立的磁盤上爲其他N張磁盤上對應的塊保留一個奇偶校驗塊。它讀取一個塊只訪問一張磁盤,因此允許其他的請求在其他磁盤上執行,有較高的總I/O傳輸率。


RAID5

RAID5使用塊交叉的分佈奇偶校驗位的組織結構。RAID5在RAID4的基礎上進行了改進,將數據和奇偶校驗位都分佈到所有的N+1張磁盤中,而不是在N張磁盤上存儲數據並在一張磁盤上存儲奇偶校驗位。實際中一般用RAID5而不用RAID4。


RAID6

與RAID 5相比,RAID 6增加了第二個獨立的奇偶校驗信息塊。兩個獨立的奇偶系統使用不同的算法,數據的可靠性非常高,即使兩塊磁盤同時失效也不會影響數據的使用。但RAID 6需要分配給奇偶校驗信息更大的磁盤空間,相對於RAID 5有更大的“寫損失”,因此“寫性能”非常差。較差的性能和複雜的實作方式使得RAID 6很少得到實際應用。


RAID1+0

RAID 1+0是先鏡像再拆分數據,再將所有硬盤分爲兩組,視爲是RAID 0的最低組合,然後將這兩組各自視爲RAID 1運作。


RAID0+1

RAID 0+1則是跟RAID 1+0的程序相反,是先分區再將數據鏡射到兩組硬盤。它將所有的硬盤分爲兩組,變成RAID 1的最低組合,而將兩組硬盤各自視爲RAID 0運作。


性能上,RAID 0+1比RAID 1+0有着更快的讀寫速度。
可靠性上,當RAID 1+0有一個硬盤受損,其餘三個硬盤會繼續運作。RAID 0+1 只要有一個硬盤受損,同組RAID 0的另一隻硬盤亦會停止運作,只剩下兩個硬盤運作,可靠性較低。

RAID級別的選擇

RAID0級用於數據安全性不是很重要的高性能應用。因爲RAID2和RAID4被RAID3和RAID5所包含,所以RAID級別的選擇只限於在剩下的級別中進行。比特級拆分(RAID3)不如塊級拆分(RAID5),這是因爲塊級拆分對於大量數據的傳輸有與RAID3級同樣好的數據傳輸率,同時對於小量數據的傳輸使用更少的磁盤。對於小量數據傳輸,磁盤訪問時間佔主要地位,所以並行讀取並沒有好處。RAID6提供比RAID5更高的可靠性,可以用於數據安全十分重要的應用。在RAID1和RAID5中選擇十分困難。RAID1(包括RAID0+1和RAID1+0)提供最好的寫操作性能。RAID5與RAID1相比具有較低的存儲負載,但寫操作需要更高的時間開銷。對於經常進行讀操作而很少進行寫操作的應用,RAID5是首選。隨着磁盤存儲容量快速的發展,RAID1應用變廣。

參考資料:

1.《數據庫系統概率》第六版

2.維基百科,http://zh.wikipedia.org/zh-cn/RAID

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