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

·RAID 1 : RAID 1是磁盤鏡像,這意味著所有數(shù)據(jù)都被寫入兩個(gè)獨(dú)立的物理磁盤。磁盤本質(zhì)上是彼此的鏡像。如果一個(gè)磁盤出現(xiàn)故障,可以使用另一個(gè)磁盤來檢索數(shù)據(jù)。
磁盤鏡像有利于快速讀取操作,但寫入速度較慢,因?yàn)楸仨殞?shù)據(jù)寫入磁盤兩次。RAID1的另一個(gè)缺點(diǎn)是所需的磁盤空間增加了一倍,因?yàn)樗袛?shù)據(jù)都存儲(chǔ)了兩次。

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

·RAID 3 : RAID 3使用奇偶校驗(yàn)磁盤將RAID控制器生成的奇偶校驗(yàn)信息存儲(chǔ)在與實(shí)際數(shù)據(jù)磁盤分開的磁盤上,而不是像RAID 5中那樣用數(shù)據(jù)對(duì)磁盤進(jìn)行分段。
當(dāng)有大量數(shù)據(jù)請(qǐng)求時(shí),這種RAID類型的性能很差,比如在數(shù)據(jù)庫(kù)這樣的應(yīng)用程序中。RAID 3在需要長(zhǎng)時(shí)間連續(xù)數(shù)據(jù)傳輸?shù)膽?yīng)用程序(如視頻服務(wù)器)中表現(xiàn)良好。RAID 3至少需要三個(gè)物理磁盤。

·RAID 4 : RAID 4使用專用奇偶校驗(yàn)磁盤以及塊級(jí)別的磁盤條帶化。雖然它對(duì)于順序數(shù)據(jù)訪問很好,但是使用專用奇偶校驗(yàn)磁盤會(huì)導(dǎo)致寫操作的性能瓶頸。有了RAID 5等替代方案,RAID 4的使用并不多。

·RAID 5 : RAID 5使用奇偶校驗(yàn)磁盤條帶化。這些數(shù)據(jù)在RAID組中的所有磁盤上都有條帶,并帶有在磁盤故障時(shí)重建數(shù)據(jù)所需的奇偶性信息。
RAID 5是最常見的RAID方法,因?yàn)樗谛阅芎涂捎眯灾g取得了良好的平衡。RAID 5至少需要三個(gè)物理磁盤。

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

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