【硬盤】RAID

RAID是英文Redundant Array of Independent Disks(獨立磁盤冗餘陣列),簡稱磁盤陣列。下面將各個級別的RAID介紹以下。算法

 

1、爲何使用Raid?安全

 

一、對磁盤高速存取(提速): RAID將普通硬盤組成一個磁盤陣列,在主機寫入數據,RAID控制器把主機要寫入的數據分解爲多個數據塊,而後並行寫入磁盤陣列;主機讀取數據時,RAID控制器並行讀取分散在磁盤陣列中各個硬盤上的數據,把它們從新組合後提供給主機。因爲採用並行讀寫操做,從而提升了存儲系統的存取速度。服務器

 

二、擴容。分佈式

 

三、數據冗餘。工具

 

2、分類性能

 

RAID可分爲級別0到級別6,一般稱爲:RAID0,RAID1,RAID2,RAID3,RAID4,RAID5,RAID6。大數據

 

RAID0:RAID0並非真正的RAID結構,沒有數據冗餘,RAID0連續地分割數據並並行地讀/寫於多個磁盤上。所以具備很高的數據傳輸率,但RAID0在提升性能的同時,並無提供數據可靠性,若是一個磁盤失效,將影響整個數據。所以RAID0不可應用於須要數據高可用性的關鍵應用。編碼

 

RAID0的優勢:最快的讀寫性能,若是每塊硬盤擁有獨立的控制器性能將會更好。操作系統

 

RAID0的缺點:任何一塊硬盤出現故障全部的數據都會丟失,大部分的控制器都是經過軟件實現的,因此效能並很差。設計

 

-----------------------------------------------------------------------

 

RAID1:RAID1經過數據鏡像實現數據冗餘,在兩對分離的磁盤上產生互爲備份的數據。RAID1能夠提升讀的性能,當原始數據繁忙時,可直接從鏡像中讀取數據。RAID1是磁盤陣列中費用最高的,但提供了最好的數據可用性。當一個磁盤失效,系統能夠自動地交換到鏡像磁盤上,而不須要重組失效的數據。

 

RAID1的優勢:數據高可靠性,易於實現,設計簡單。

 

RAID1的缺點:比RAID0相比速度較慢,特別是寫入速度,另外就是咱們僅僅能使用一半的硬盤容量。

 

-----------------------------------------------------------------------

 

RAID0+1

 

這種RAID模式實際上是RAID0和RAID1模式的組合,至少須要4塊硬盤。其中任何兩塊組成一個RAID0磁盤陣列,而後兩個RAID0磁盤陣列能夠當作兩個容量更大、速度更快的硬盤,它們再組成一個RAID1磁盤陣列。這樣的系統保證了較高的磁盤性能和較高的數據安全性。固然缺點也是顯而易見的就是成本較高,構造比較複雜。RAID0+1在容錯性能方面僅次於RAID5,通常用於文件服務器等方面。

 

-----------------------------------------------------------------------

 

RAID2:從概念上講,RAID2同RAID3相似,二者都是將數據條塊化分佈於不一樣的硬盤上,條塊單位爲位或字節。然而RAID2使用稱爲「加劇平均糾錯碼」的編碼技術來提供錯誤檢查及恢復。這種編碼技術須要多個磁盤存放檢查及恢復信息,使得RAID2技術實施更復雜。所以,在商業環境中不多使用。

 

RAID2的優勢:數據安全性高,只要存放校驗碼的硬盤沒有故障就能恢復數據。

 

RAID2的缺點:昂貴、須要專門的硬盤存放校驗碼、效率不高、沒有商業應用的支持。

 

-----------------------------------------------------------------------

 

RAID3:不一樣於RAID2,RAID3使用單塊磁盤存放奇偶校驗信息。若是一塊磁盤失效,奇偶盤及其餘數據盤能夠從新產生數據。若是奇偶盤失效,則不影響數據使用。RAID3對於大量的連續數據可提供很好的傳輸率,但對於隨機數據,奇偶盤會成爲寫操做的瓶頸。

 

RAID3的優勢:比較適合視頻編輯等須要大數據量調用的場合。

 

RAID3的缺點:實現各個驅動器的轉速同步很是困難(目前大部分的硬盤都不支持這個功能),須要複雜的控制器。

 

-----------------------------------------------------------------------

 

RAID4:RAID4和RAID5一樣將數據條塊化並分佈於不一樣的磁盤上,但條塊單位爲塊或記錄。RAID4使用一塊磁盤做爲奇偶校驗盤,每次寫操做都須要訪問奇偶盤,成爲寫操做的瓶頸。在商業應用中不多使用。

 

RAID4的優勢:除了RAID3的優勢以外,它並不須要同步驅動器轉速。

 

RAID4的缺點:寫入性能不好,控制器的要求較高。

 

-----------------------------------------------------------------------

 

RAID5:RAID5沒有單獨指定的奇偶盤,而是交叉地存取數據及奇偶校驗信息於全部磁盤上。在RAID5上,讀/寫指針可同時對陣列設備進行操做,提供了更高的數據流量。RAID5更適合於小數據塊,隨機讀寫的數據。RAID3與RAID5相比,重要的區別在於RAID3每進行一次數據傳輸,需涉及到全部的陣列盤。而對於RAID5來講,大部分數據傳輸只對一塊磁盤操做,可進行並行操做。在RAID5中有「寫損失」,即每一次寫操做,將產生四個實際的讀/寫操做,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息。

 

RAID5的優勢:不須要專門的校驗碼磁盤,讀取速度快,並且解決了寫入速度相對較慢的問題。

 

RAID5的缺點:寫入性能依然不盡如人意。

 

-----------------------------------------------------------------------

 

RAID6:RAID6與RAID5相比,增長了第二個獨立的奇偶校驗信息塊。兩個獨立的奇偶系統使用不一樣的算法,數據的可靠性很是高。即便兩塊磁盤同時失效,也不會影響數據的使用。但須要分配給奇偶校驗信息更大的磁盤空間,相對於RAID5有更大的「寫損失」。RAID6的寫性能很是差,較差的性能和複雜的實施使得RAID6不多使用。

 

RAID6的優勢:快速的讀取性能,更高的容錯能力。 RAID6的缺點:很慢的寫入速度,RAID控制器在設計上更加複雜,成本更高。

 

詳細介紹

 

RAID0 

條帶化(Stripe)存儲。理論上說,有N個磁盤組成的RAID0是單個磁盤讀寫速度的N倍。RAID 0連續以位或字節爲單位分割數據,並行讀/寫於多個磁盤上,所以具備很高的數據傳輸率,但它沒有數據冗餘,所以並不能算是真正的RAID結構。

 

RAID1 

鏡象(Mirror)存儲。它是經過磁盤數據鏡像實現數據冗餘,在成對的獨立磁盤上產生互 爲備份的數據。當原始數據繁忙時,可直接從鏡像拷貝中讀取數據,所以RAID 1能夠提升讀取性能。RAID 1是磁盤陣列中單位成本最高的,但提供了很高的數據安全性和可用性。當一個磁盤失效時,系統能夠自動切換到鏡像磁盤上讀寫,而不須要重組失效的數據。

 

 

RAID2 

海明碼(Hamming Code)校驗條帶存儲。將數據條塊化地分佈於不一樣的硬盤上,條塊單位爲位或字節,使用稱爲海明碼來提供錯誤檢查及恢復。這種編碼技術須要多個磁盤存放檢查及恢復信息,使得RAID 2技術實施更復雜,所以在商業環境中不多使用。

 

RAID3 

奇偶校驗(XOR)條帶存儲,共享校驗盤,數據條帶存儲單位爲字節。它同RAID 2很是相似,都是將數據條塊化分佈於不一樣的硬盤上,區別在於RAID 3使用簡單的奇偶校驗,並用單塊磁盤存放奇偶校驗信息。若是一塊磁盤失效,奇偶盤及其餘數據盤能夠從新產生數據;若是奇偶盤失效則不影響數據使用。RAID 3對於大量的連續數據可提供很好的傳輸率,但對於隨機數據來講,奇偶盤會成爲寫操做的瓶頸。

 

 

RAID4 

奇偶校驗(XOR)條帶存儲,共享校驗盤,數據條帶存儲單位爲塊。RAID 4一樣也將數據條塊化並分佈於不一樣的磁盤上,但條塊單位爲塊或記錄。RAID 4使用一塊磁盤做爲奇偶校驗盤,每次寫操做都須要訪問奇偶盤,這時奇偶校驗盤會成爲寫操做的瓶頸,所以RAID 4在商業環境中也不多使用。

 

 

RAID5 

奇偶校驗(XOR)條帶存儲,校驗數據分佈式存儲,數據條帶存儲單位爲塊。RAID 5不單獨指定的奇偶盤,而是在全部磁盤上交叉地存取數據及奇偶校驗信息。在RAID 5上,讀/寫指針可同時對陣列設備進行操做,提供了更高的數據流量。RAID 5更適合於小數據塊和隨機讀寫的數據。RAID 3與RAID 5相比,最主要的區別在於RAID 3每進行一次數據傳輸就需涉及到全部的陣列盤;而對於RAID 5來講,大部分數據傳輸只對一塊磁盤操做,並可進行並行操做。在RAID 5中有「寫損失」,即每一次寫操做將產生四個實際的讀/寫操做,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息。

當進行恢復時,好比咱們須要須要恢復下圖中的A0,這裏就必須須要B0、C0、D0加0 parity才能計算並得出A0,進行數據恢復。因此當有兩塊盤壞掉的時候,整個RAID的數據失效。

 

RAID6 

奇偶校驗(XOR)條帶存儲,兩個分佈式存儲的校驗數據,數據條帶存儲單位爲塊。與RAID 5相比,RAID 6增長了第二個獨立的奇偶校驗信息塊。兩個獨立的奇偶系統使用不一樣的算法,數據的可靠性很是高,即便兩塊磁盤同時失效也不會影響數據的使用。但RAID 6須要分配給奇偶校驗信息更大的磁盤空間,相對於RAID 5有更大的「寫損失」,所以「寫性能」很是差。較差的性能和複雜的實施方式使得RAID 6不多獲得實際應用。

 

 

RAID7 

這是一種新的RAID標準,其自身帶有智能化實時操做系統和用於存儲管理的軟件工具,可徹底獨立於主機運行,不佔用主機CPU資源。RAID 7能夠看做是一種存儲計算機(Storage Computer),它與其餘RAID標準有明顯區別。

RAID 7等級是至今爲止,理論上性能最高的RAID模式,由於它從組建方式上就已經和以往的方式有了重大的不一樣。基本成形式見圖,以往一個硬盤是一個組成陣列的「柱子」,而在RAID 7中,多個硬盤組成一個「柱子」,它們都有各自的通道,也正由於如此,你能夠把這個圖分解成一個個硬盤鏈接在主通道上,只是比之前的等級更爲細分了。這樣作的好處就是在讀/寫某一區域的數據時,能夠迅速定位,而不會由於以往因單個硬盤的限制同一時間只能訪問該數據區的一部分,在RAID 7中,之前的單個硬盤至關於分割成多個獨立的硬盤,有本身的讀寫通道。

 

RAID10RAID01的比較 

- RAID10是先作鏡象,而後再作條帶。

- RAID01則是先作條帶,而後再作鏡象。

好比以6個盤爲例,RAID10就是先將盤分紅3組鏡象,而後再對這3個RAID1作條帶。RAID01則是先利用3塊盤作RAID0,而後將另外3塊盤作爲RAID0的鏡象。下面以4塊盤爲例來介紹安全性方面的差異:

一、RAID10的狀況 

這種狀況中,咱們假設當DISK0損壞時,在剩下的3塊盤中,只有當DISK1一個盤發生故障時,纔會致使整個RAID失效,咱們可簡單計算故障率爲1/3。

 

二、RAID01的狀況

這種狀況下,咱們仍然假設DISK0損壞,這時左邊的條帶將沒法讀取。在剩下的3塊盤中,只要DISK2,DISK3兩個盤中任何一個損壞,都會致使整個RAID失效,咱們可簡單計算故障率爲2/3。

 

所以RAID10比RAID01在安全性方面要強。

從數據存儲的邏輯位置來看,在正常的狀況下RAID01和RAID10是徹底同樣的,並且每個讀寫操做所產生的IO數量也是同樣的,因此在讀寫性能上二者沒什麼區別。而當有磁盤出現故障時,好比前面假設的DISK0損壞時,咱們也能夠發現,這兩種狀況下,在讀的性能上面也將不一樣,RAID10的讀性能將優於RAID01。

相關文章
相關標籤/搜索