RAID最初是廉價磁盤冗余陣列(Redundant Array of Inexpensive Disks)的縮寫。如今,這個名詞的含義已更新為獨立磁盤冗余陣列(Redundant Array of Independent Disks),但是它的最終目的并沒有改變。
RAID是保護硬盤和固態(tài)硬盤上應用程序數據的常用方法,不同類型的RAID在保護級別和價格之間進行平衡。保護措施越多,成本就越高。隨著存儲的發(fā)展,RAID級別的數目也相應增加了。
RAID是一種將單個物理驅動器分組到一起以形成RAID組的方法。RAID組將所有物理驅動器表示為服務器上的一個邏輯磁盤。邏輯磁盤稱為邏輯單元號(LUN)。
RAID性能和可用性的改進使其在新技術可用的情況下仍在使用。要完全理解RAID及其好處,重要的是分解不同的RAID級別以及它們各自的優(yōu)勢。
RAID的好處
使用RAID的主要好處是能夠保存存儲在故障驅動器上的數據。RAID使用數據鏡像、條帶化和奇偶校驗,或這些技術的組合。在大多數情況下,性能或可靠性的提高會提高保護驅動器上數據的成本。
鏡像是將數據同時寫入多個驅動器,而條帶化意味著數據以塊的形式分布在驅動器上,奇偶校驗是一種確保數據在從一個驅動器移動到另一個驅動器時已成功寫入的方法。
奇偶校驗基本上是寫入磁盤的數據的校驗和,它與原始數據一起寫入。服務器在訪問基于硬件的RAID組上的數據時,不會知道RAID組中的某一個驅動器發(fā)生了故障?刂破魇褂么鎯υ赗AID組中幸存磁盤上的奇偶性信息,來重新創(chuàng)建磁盤損壞時丟失的數據。
標準與非標準RAID級別
RAID級別可以分為三類:標準級別、非標準級別和嵌套級別。RAID的標準級別由編號為0到6的RAID基本類型組成。
非標準RAID級別被設置為特定公司或開源項目的標準。非標準RAID包括RAID 7、Adaptive RAID、RAID S和Linux md RAID 10。
嵌套RAID是指RAID級別的組合,如RAID 01—RAID 0+1、RAID 03—RAID 0+3、RAID 50—RAID 5+0。
RAID級別解釋
使用的RAID級別應該取決于服務器上運行的應用程序的類型。RAID 0是最快的,RAID 1是最可靠的,RAID 5是兩者的良好結合。對于您的組織來說,哪個RAID級別最適合,取決于您所預期的冗余級別、保留期的長度、正在使用的磁盤數量以及您對數據保護與性能優(yōu)化的重視程度。
下面是存儲陣列中最常用的不同RAID級別的描述。并不是所有存儲陣列供應商都支持每種RAID類型,所以一定要檢查供應商的存儲系統(tǒng)中可用的RAID類型。
·RAID 0: RAID 0是簡單的磁盤條帶化。所有數據以塊的形式分布在RAID組中的所有磁盤上。RAID 0提供了很好的性能,因為您將存儲數據的負載分散到了更多的物理驅動器上。它的成本也是所有RAID類型中最低的,因為它只使用磁盤空間來存儲數據。因為沒有為RAID 0生成奇偶校驗,所以沒有向RAID 0磁盤寫入數據的開銷。
然而,RAID 0在所有RAID級別中數據保護能力是最差的。當磁盤發(fā)生故障時,該磁盤上的數據在可以從另一個驅動器重寫之前是不可用的。
RAID 1: RAID 1是磁盤鏡像,這意味著所有數據都被寫入兩個獨立的物理磁盤。磁盤本質上是彼此的鏡像。如果一個磁盤出現故障,可以使用另一個磁盤來檢索數據。
磁盤鏡像有利于快速讀取操作,但寫入速度較慢,因為必須將數據寫入磁盤兩次。RAID1的另一個缺點是所需的磁盤空間增加了一倍,因為所有數據都存儲了兩次。

RAID 1+0: RAID 1+0也稱為RAID 10,它使用磁盤鏡像和條帶化的組合。數據通常先鏡像,然后條帶化。先條帶化再鏡像也可以完成相同的任務,但它的容錯性不如前者。
如果在一個條帶組中丟失驅動器,則必須從另一個條帶組中訪問數據,因為條帶組沒有奇偶性。RAID 1+0至少需要4個物理磁盤。
·RAID 2: RAID 2通過使用漢明碼(Hamming code)在bit級別條帶化數據。目前,硬盤的糾錯碼已經使用了漢明碼,所以RAID 2不再被使用了。

·RAID 3: RAID 3使用奇偶校驗磁盤將RAID控制器生成的奇偶校驗信息存儲在與實際數據磁盤分開的磁盤上,而不是像RAID 5中那樣用數據對磁盤進行分段。
當有大量數據請求時,這種RAID類型的性能很差,比如在數據庫這樣的應用程序中。RAID 3在需要長時間連續(xù)數據傳輸的應用程序(如視頻服務器)中表現良好。RAID 3至少需要三個物理磁盤。

RAID 5: RAID 5使用奇偶校驗磁盤條帶化。這些數據在RAID組中的所有磁盤上都有條帶,并帶有在磁盤故障時重建數據所需的奇偶性信息。
RAID 5是最常見的RAID方法,因為它在性能和可用性之間取得了良好的平衡。RAID 5至少需要三個物理磁盤。

·RAID 6: RAID 6通過使用兩個奇偶校驗條帶來提高可靠性,這兩個奇偶校驗條帶在數據丟失之前允許RAID組中出現兩個磁盤故障。RAID 6通常用于部署用于存檔或基于磁盤的備份的大容量驅動器。RAID 6允許在同時發(fā)生磁盤故障時進行數據恢復,這在容量較大、重建時間較長的驅動器中更為常見。RAID 6至少需要4個驅動器。

Adaptive RAID:自適應RAID讓RAID控制器知道如何在磁盤上存儲奇偶校驗。它在RAID 3和RAID 5之間進行選擇,這取決于將數據類型寫入磁盤時哪種RAID組類型執(zhí)行得更好。
·RAID 7: RAID 7是非標準的RAID級別——基于RAID 3和RAID 4——需要專用硬件。這一RAID級別由現已倒閉的Storage Computer公司擁有并注冊了商標。
RAID組的最小驅動器數與RAID重建
RAID需要多個驅動器,所需磁盤的最小數量因RAID級別而異。但是超過這個數字有什么好處嗎?
如果您使用的驅動器數量超過了最低數量,您可以獲得更多可用的存儲空間和更多的驅動器供操作系統(tǒng)使用。然而,這并不意味著您應該盡可能多地增加驅動器。大多數RAID陣列在一個RAID組中最多使用16個驅動器,這是因為在超過這么多驅動器時,開銷更高,性能回報也在下降。對于RAID 5和RAID 10,最多8個驅動器似乎是一個很好的經驗法則。如果需要更多磁盤空間,可以使用其他磁盤創(chuàng)建另一個RAID組。
另一個經驗法則是,嘗試將不同的工作負載數據類型保存在不同的RAID集上。您可以在任何地方使用RAID 10來獲得最佳性能,但是大多數預算規(guī)定將RAID 5用于數據庫數據卷,而將RAID 1或RAID 10用于數據庫日志卷。數據庫卷可以是高度隨機的I/O,日志通常是順序的。
重建時間取決于您選擇的RAID類型。如果您使用的是基于軟件的RAID,那么組中的主軸數越多,意味著重建時間越長。如果您使用基于硬件的RAID,則重建時間通常由驅動器本身的大小決定,因為硬件通常在組內和組外進行節(jié)省。一個146 GB的驅動器比一個73 GB的驅動器需要更長的時間進行重建。
RAID的現狀
許多專家說,市場對RAID技術的需求已經減少。擦除編碼和固態(tài)硬盤提供了可靠(相對也更貴一些)的替代方案,而且隨著存儲容量的增加,RAID陣列錯誤的幾率也會增加。盡管如此,大型存儲供應商仍然在其存儲陣列中支持RAID。
原文作者:Erin Sullivan和Christopher Poelker 來源:TechTarget