RAID

定義

獨立磁盤冗餘陣列(RAID,redundant array of independent disks)是把相同的數據存儲在多個硬盤的不同的地方(因此,冗餘地)的方法。通過把數據放在多個硬盤上,輸入輸出操作能以平衡的方式交疊,改良性能。因爲多個硬盤增加了平均故障間隔時間(MTBF),儲存冗餘數據也增加了容錯。


樣式

磁盤陣列其樣式有三種,一是外接式磁盤陣列櫃、二是內接式磁盤陣列卡,三是利用軟件來仿真。
外接式磁盤陣列櫃最常被使用大型服務器上,具可熱抽換(Hot Swap)的特性,不過這類產品的價格都很貴。
內接式磁盤陣列卡,因爲價格便宜,但需要較高的安裝技術,適合技術人員使用操作。

利用軟件仿真的方式,由於會拖累機器的速度,不適合大數據流量的服務器。


解決方案

RAID方案有兩種,一種是硬件RAID解決方案,一種是軟RAID解決方案。


硬件RAID解決方案

硬件RAID解決方案速度快、穩定性好,可以有效地提供高水平的硬盤可用性和冗餘度


RAID 0示意圖

RAID 0示意圖

1、RAID 0

RAID 0是最早出現的RAID模式,即Data Stripping數據分條技術。RAID 0是組建磁盤陣列中最簡單的一種形式,只需要2塊以上的硬盤即可,成本低,可以提高整個磁盤的性能和吞吐量。RAID 0沒有提供冗餘或錯誤修復能力,但實現成本是最低的。

RAID 0最簡單的實現方式就是把N塊同樣的硬盤用硬件的形式通過智能磁盤控制器或用操作系統中的磁盤驅動程序以軟件的方式串聯在一起創建一個大的卷集。在使用中電腦數據依次寫入到各塊硬盤中,它的最大優點就是可以整倍的提高硬盤的容量。如使用了三塊80GB的硬盤組建成RAID 0模式,那麼磁盤容量就會是240GB。其速度方面,各單獨一塊硬盤的速度完全相同。最大的缺點在於任何一塊硬盤出現故障,整個系統將會受到破壞,可靠性僅爲單獨一塊硬盤的1/N。
爲了解決這一問題,便出了RAID 0的另一種模式。即在N塊硬盤上選擇合理的帶區來創建帶區集。其原理就是將原先順序寫入的數據被分散到所有的四塊硬盤中同時進行讀寫。四塊硬盤的並行操作使同一時間內磁盤讀寫的速度提升了4倍。
在創建帶區集時,合理的選擇帶區的大小非常重要。如果帶區過大,可能一塊磁盤上的帶區空間就可以滿足大部分的I/O操作,使數據的讀寫仍然只侷限在少數的一、兩塊硬盤上,不能充分的發揮出並行操作的優勢。另一方面,如果帶區過小,任何I/O指令都可能引發大量的讀寫操作,佔用過多的控制器總線帶寬。因此,在創建帶區集時,我們應當根據實際應用的需要,慎重的選擇帶區的大小。
帶區集雖然可以把數據均勻的分配到所有的磁盤上進行讀寫。但如果我們把所有的硬盤都連接到一個控制器上的話,可能會帶來潛在的危害。這是因爲當我們頻繁進行讀寫操作時,很容易使控制器或總線的負荷超載。爲了避免出現上述問題,建議用戶可以使用多個磁盤控制器。最好解決方法還是爲每一塊硬盤都配備一個專門的磁盤控制器。

雖然RAID 0可以提供更多的空間和更好的性能,但是整個系統是非常不可靠的,如果出現故障,無法進行任何補救。所以,RAID 0一般只是在那些對數據安全性要求不高的情況下才被人們使用。


2、RAID 1
RA
RAID 1示意圖

RAID 1示意圖

ID 1稱爲磁盤鏡像,原理是把一個磁盤的數據鏡像到另一個磁盤上,也就是說數據在寫入一塊磁盤的同時,會在另一塊閒置的磁盤上生成鏡像文件,在不影響性能情況下最大限度的保證系統的可靠性和可修復性上,只要系統中任何一對鏡像盤中至少有一塊磁盤可以使用,甚至可以在一半數量的硬盤出現問題時系統都可以正常運行,當一塊硬盤失效時,系統會忽略該硬盤,轉而使用剩餘的鏡像盤讀寫數據,具備很好的磁盤冗餘能力。雖然這樣對數據來講絕對安全,但是成本也會明顯增加,磁盤利用率爲50%,以四塊80GB容量的硬盤來講,可利用的磁盤空間僅爲160GB。另外,出現硬盤故障的RAID系統不再可靠,應當及時的更換損壞的硬盤,否則剩餘的鏡像盤也出現問題,那麼整個系統就會崩潰。更換新盤後原有數據會需要很長時間同步鏡像,外界對數據的訪問不會受到影響,只是這時整個系統的性能有所下降。因此,RAID 1多用在保存關鍵性的重要數據的場合。
RAID 1主要是通過二次讀寫實現磁盤鏡像,所以磁盤控制器的負載也相當大,尤其是在需要頻繁寫入數據的環境中。爲了避免出現性能瓶頸,使用多個磁盤控制器就顯得很有必要。


3、RAID 0+1
從RA
RAID0+1示意圖

RAID0+1示意圖

ID 0+1名稱上我們便可以看出是RAID0與RAID1的結合體。在我們單獨使用RAID 1也會出現類似單獨使用RAID 0那樣的問題,即在同一時間內只能向一塊磁盤寫入數據,不能充分利用所有的資源。爲了解決這一問題,我們可以在磁盤鏡像中建立帶區集。因爲這種配置方式綜合了帶區集和鏡像的優勢,所以被稱爲RAID 0+1。把RAID0和RAID1技術結合起來,數據除分佈在多個盤上外,每個盤都有其物理鏡像盤,提供全冗餘能力,允許一個以下磁盤故障,而不影響數據可用性,並具有快速讀/寫能力。RAID0+1要在磁盤鏡像中建立帶區集至少4個硬盤。


4、RAID2:帶海明碼校驗
  從概念上講,RAID 2 同RAID 3類似, 兩者都是將數據條塊化分佈於不同的硬盤上, 條塊單位爲位或字節。然而RAID 2 使用一定的編碼技術來提供錯誤檢查及恢復。這種編碼技術需要多個磁盤存放檢查及恢復信息,使得RAID 2技術實施更復雜。因此,在商業環境中很少使用。下圖左邊的各個磁盤上是數據的各個位,由一個數據不同的位運算得到的海明校驗碼可以保存另一組磁盤上,具體情況請見下圖。由於海明碼的特點,它可以在數據發生錯誤的情況下將錯誤校正,以保證輸出的正確。它的數據傳送速率相當高,如果希望達到比較理想的速度,那最好提高保存校驗碼ECC碼的硬盤,對於控制器的設計來說,它又比RAID3,4或5要簡單。沒有免費的午餐,這裏也一樣,要利用海明碼,必須要付出數據冗餘的代價。輸出數據的速率與驅動器組中速度最慢的相等。


5、RAID3:帶奇偶校驗碼的並行傳送

它同RAID 2非常類似,都是將數據條塊化分佈於不同的硬盤上,區別在於RAID 3使用簡單的奇偶校驗,並用單塊磁盤存放奇偶校驗信息。如果一塊磁盤失效,奇偶盤及其他數據盤可以重

新產生數據;如果奇偶盤失效則不影響數據使用。RAID 3對於大量的連續數據可提供很好的傳輸率,但對於隨機數據來說,奇偶盤會成爲寫操作的瓶頸。


6、RAID4:帶奇偶校驗碼的獨立磁盤結構
  RAID4和RAID3很象,不同的是,它對數據的訪問是按數據塊進行的,也就是按磁盤進行的,每次是一個盤。在圖上可以這麼看,RAID3是一次一橫條,而RAID4一次一豎條。它的特點的RAID3也挺象,不過在失敗恢復時,它的難度可要比RAID3大得多了,控制器的設計難度也要大許多,而且訪問數據的效率不怎麼好。


7、RAID5:分佈式奇偶校驗的獨立磁盤結構

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




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