磁盤陣列RAID原理、種類及性能優缺點對比
磁盤陣列(Redundant Arrays of Independent Disks,RAID)
1. 存儲的數據一定分片;
2. 分基于軟件的軟RAID(如mdadm)和基于硬件的硬RAID(如RAID卡);
3. RAID卡如同網卡一樣有集成板載的也有獨立的(PCI-e),一般獨立RAID卡性能相對較好,淘寶一搜便可看到他們的原形;
4. 現在基本上服務器都原生硬件支持幾種常用的RAID;
5. 當然還有更加高大上的專用于存儲的磁盤陣列柜產品,有專用存儲技術,規格有如12/24/48盤一柜等,盤可選機械/固態,3.5/2.5寸等。
近來想建立一個私有云系統,涉及到安裝使用一臺網絡存儲服務器。對于服務器中硬盤的連接,選用哪種RAID模式能準確滿足需求收集了資料,簡單整理后記錄如下:
一、RAID模式優缺點的簡要介紹
目前被運用較多的RAID模式其優缺點大致是這樣的:
1、RAID0模式
優點:在RAID 0狀態下,存儲數據被分割成兩部分,分別存儲在兩塊硬盤上,此時移動硬盤的理論存儲速度是單塊硬盤的2倍,實際容量等于兩塊硬盤中較小一塊硬盤的容量的2倍。
缺點:任何一塊硬盤發生故障,整個RAID上的數據將不可恢復。
備注:存儲高清電影比較適合。
2、RAID1模式
優點:此模式下,兩塊硬盤互為鏡像。當一個硬盤受損時,換上一塊全新硬盤(大于或等于原硬盤容量)替代原硬盤即可自動恢復資料和繼續使用,移動硬盤的實際容量等于較小一塊硬盤的容量,存儲速度與單塊硬盤相同。RAID 1的優勢在于任何一塊硬盤出現故障是,所存儲的數據都不會丟失。
缺點:該模式可使用的硬盤實際容量比較小,僅僅為兩顆硬盤中最小硬盤的容量。
備注:非常重要的資料,如數據庫,個人資料,是萬無一失的存儲方案。
3、RAID 0+1模式
RAID 0+1是磁盤分段及鏡像的結合,采用2組RAID0的磁盤陣列互為鏡像,它們之間又成為一個RAID1的陣列。硬盤使用率只有50%,但是提供最佳的速度及可靠度。
4、RAID 3模式
RAID3是把數據分成多個“塊”,按照一定的容錯算法,存放在N+1個硬盤上,實際數據占用的有效空間為N個硬盤的空間總和,而第N+1個硬盤存儲的數據是校驗容錯信息,當這N+1個硬盤中的其中一個硬盤出現故障時,從其它N個硬盤中的數據也可以恢復原始數據。
5、RAID 5模式
RAID5不對存儲的數據進行備份,而是把數據和相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上,并且奇偶校驗信息和相對應的數據分別存儲于不同的磁盤上。當RAID5的一個磁盤數據發生損壞后,利用剩下的數據和相應的奇偶校驗信息去恢復被損壞的數據。
6、RAID 10模式
RAID10最少需要4塊硬盤才能完成。把2塊硬盤組成一個RAID1,然后兩組RAID1組成一個RAID0。雖然RAID10方案造成了50%的磁盤浪費,但是它提供了200%的速度和單磁盤損壞的數據安全性。
二、另外三種硬件快速硬件設置模式簡介
在收集資料時看到有的硬件設備提供快速磁盤模式設置,也很方便大家的使用,具體情況如下:
1、Clone模式
克隆模式,磁盤全部數據一樣,以最小硬盤的為準。
2、Large模式
硬盤容量簡單相加,將幾個硬盤變成一個硬盤,容量為幾個硬盤容量之和,此模式下可以獲得最大的硬盤空間。
3、Normal模式
硬盤分別處于正常、獨立的狀態,可以分別獨立的寫入或讀取資料,能使用的實際容量分別為4個硬盤的容量。如果其中一個硬盤受損,其他幾個硬盤不會受影響。
三、RAID使用簡明注意事項
★使用前請先備份硬盤的資料,一旦進行RAID設定或是變更RAID模式,將會清除硬盤里的所有資料,以及無法恢復;
★建立RAID時,建議使用相同品牌、型號和容量的硬盤,以確保性能和穩定;
★請勿隨意更換或取出硬盤,如果取出了硬盤,請記下硬盤放入兩個倉位的順序不得更改,以及請勿只插入某一塊硬盤使用,以避免造成資料損壞或丟失;
★如果舊硬盤曾經在RAID模式下使用,請先進清除硬盤RAID信息,讓硬盤回復至出廠狀態,以免RAID建立失敗;
★RAID0模式下,其中一個硬盤損壞時,其它硬盤所有資料都將丟失;
★RAID1模式下,如果某一塊硬盤受損,可以用一塊大于或等于受損硬盤容量的新硬盤替換壞硬盤然后開機即可自動恢復和修復資料以及RAID模式。此過程需要一定時間,請耐心等待
四、細數RAID模式
1、概念
磁盤陣列(Redundant Arrays of Inexpensive Disks,RAID),有“價格便宜且多余的磁盤陣列”之意。原理是利用數組方式來作磁盤組,配合數據分散排列的設計,提升數據的安全性。磁盤陣列是由很多便宜、容量較小、穩定性較高、速度較慢磁盤,組合成一個大型的磁盤組,利用個別磁盤提供數據所產生加成效果提升整個磁盤系統效能。同時利用這項技術,將數據切割成許多區段,分別存放在各個硬盤上。磁盤陣列還能利用同位檢查(Parity Check)的觀念,在數組中任一顆硬盤故障時,仍可讀出數據,在數據重構時,將數據經計算后重新置入新硬盤中。
2、規范
RAID技術主要包含RAID 0~RAID 50等數個規范,它們的側重點各不相同,常見的規范有如下幾種:
RAID 0:RAID 0連續以位或字節為單位分割數據,并行讀/寫于多個磁盤上,因此具有很高的數據傳輸率,但它沒有數據冗余,因此并不能算是真正的RAID結構。RAID 0只是單純地提高性能,并沒有為數據的可靠性提供保證,而且其中的一個磁盤失效將影響到所有數據。因此,RAID 0不能應用于數據安全性要求高的場合。
RAID 1:它是通過磁盤數據鏡像實現數據冗余,在成對的獨立磁盤上產生互為備份的數據。當原始數據繁忙時,可直接從鏡像拷貝中讀取數據,因此RAID 1可以提高讀取性能。RAID 1是磁盤陣列中單位成本最高的,但提供了很高的數據安全性和可用性。當一個磁盤失效時,系統可以自動切換到鏡像磁盤上讀寫,而不需要重組失效的數據。
RAID 0+1: 也被稱為RAID 10標準,實際是將RAID 0和RAID 1標準結合的產物,在連續地以位或字節為單位分割數據并且并行讀/寫多個磁盤的同時,為每一塊磁盤作磁盤鏡像進行冗余。它的優點是同時擁有RAID 0的超凡速度和RAID 1的數據高可靠性,但是CPU占用率同樣也更高,而且磁盤的利用率比較低。
RAID 2:將數據條塊化地分布于不同的硬盤上,條塊單位為位或字節,并使用稱為“加重平均糾錯碼(海明碼)”的編碼技術來提供錯誤檢查及恢復。這種編碼技術需要多個磁盤存放檢查及恢復信息,使得RAID 2技術實施更復雜,因此在商業環境中很少使用。
RAID 3:它同RAID 2非常類似,都是將數據條塊化分布于不同的硬盤上,區別在于RAID 3使用簡單的奇偶校驗,并用單塊磁盤存放奇偶校驗信息。如果一塊磁盤失效,奇偶盤及其他數據盤可以重
新產生數據;如果奇偶盤失效則不影響數據使用。RAID 3對于大量的連續數據可提供很好的傳輸率,但對于隨機數據來說,奇偶盤會成為寫操作的瓶頸。
RAID 4:RAID 4同樣也將數據條塊化并分布于不同的磁盤上,但條塊單位為塊或記錄。RAID 4使用一塊磁盤作為奇偶校驗盤,每次寫操作都需要訪問奇偶盤,這時奇偶校驗盤會成為寫操作的瓶頸,因此RAID 4在商業環境中也很少使用。
RAID 5:RAID 5不單獨指定的奇偶盤,而是在所有磁盤上交叉地存取數據及奇偶校驗信息。在RAID 5上,讀/寫指針可同時對陣列設備進行操作,提供了更高的數據流量。RAID 5更適合于小數據塊和隨機讀寫的數據。RAID 3與RAID 5相比,最主要的區別在于RAID 3每進行一次數據傳輸就需涉及到所有的陣列盤;而對于RAID 5來說,大部分數據傳輸只對一塊磁盤操作,并可進行并行操作。在RAID 5中有“寫損失”,即每一次寫操作將產生四個實際的讀/寫操作,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息。
RAID 6:與RAID 5相比,RAID 6增加了第二個獨立的奇偶校驗信息塊。兩個獨立的奇偶系統使用不同的算法,數據的可靠性非常高,即使兩塊磁盤同時失效也不會影響數據的使用。但RAID 6需要分配給奇偶校驗信息更大的磁盤空間,相對于RAID 5有更大的“寫損失”,因此“寫性能”非常差。較差的性能和復雜的實施方式使得RAID 6很少得到實際應用。
RAID 7:這是一種新的RAID標準,其自身帶有智能化實時操作系統和用于存儲管理的軟件工具,可完全獨立于主機運行,不占用主機CPU資源。RAID 7可以看作是一種存儲計算機(Storage Computer),它與其他RAID標準有明顯區別。除了以上的各種標準(如表1),我們可以如RAID 0+1那樣結合多種RAID規范來構筑所需的RAID陣列,例如RAID 5+3(RAID 53)就是一種應用較為廣泛的陣列形式。用戶一般可以通過靈活配置磁盤陣列來獲得更加符合其要求的磁盤存儲系統。
RAID 5E(RAID 5 Enhencement): RAID 5E是在RAID 5級別基礎上的改進,與RAID 5類似,數據的校驗信息均勻分布在各硬盤上,但是,在每個硬盤上都保留了一部分未使用的空間,這部分空間沒有進行條帶化,最多允許兩塊物理硬盤出現故障。看起來,RAID 5E和RAID 5加一塊熱備盤好象差不多,其實由于RAID 5E是把數據分布在所有的硬盤上,性能會比RAID5 加一塊熱備盤要好。當一塊硬盤出現故障時,有故障硬盤上的數據會被壓縮到其它硬盤上未使用的空間,邏輯盤保持RAID 5級別。
RAID 5EE: 與RAID 5E相比,RAID 5EE的數據分布更有效率,每個硬盤的一部分空間被用作分布的熱備盤,它們是陣列的一部分,當陣列中一個物理硬盤出現故障時,數據重建的速度會更快。
RAID 50:RAID50是RAID5與RAID0的結合。此配置在RAID5的子磁盤組的每個磁盤上進行包括奇偶信息在內的數據的剝離。每個RAID5子磁盤組要求三個硬盤。RAID50具備更高的容錯能力,因為它允許某個組內有一個磁盤出現故障,而不會造成數據丟失。而且因為奇偶位分部于RAID5子磁盤組上,故重建速度有很大提高。優勢:更高的容錯能力,具備更快數據讀取速率的潛力。需要注意的是:磁盤故障會影響吞吐量。故障后重建信息的時間比鏡像配置情況下要長。
3、優點
提高傳輸速率。RAID通過在多個磁盤上同時存儲和讀取數據來大幅提高存儲系統的數據吞吐量(Throughput)。在RAID中,可以讓很多磁盤驅動器同時傳輸數據,而這些磁盤驅動器在邏輯上又是一個磁盤驅動器,所以使用RAID可以達到單個磁盤驅動器幾倍、幾十倍甚至上百倍的速率。這也是RAID最初想要解決的問題。因為當時CPU的速度增長很快,而磁盤驅動器的數據傳輸速率無法大幅提高,所以需要有一種方案解決二者之間的矛盾。RAID最后成功了。
通過數據校驗提供容錯功能。普通磁盤驅動器無法提供容錯功能,如果不包括寫在磁盤上的CRC(循環冗余校驗)碼的話。RAID容錯是建立在每個磁盤驅動器的硬件容錯功能之上的,所以它提供更高的安全性。在很多RAID模式中都有較為完備的相互校驗/恢復的措施,甚至是直接相互的鏡像備份,從而大大提高了RAID系統的容錯度,提高了系統的穩定冗余性。
4、實現
磁盤陣列有兩種方式可以實現,那就是“軟件陣列”與“硬件陣列”。
軟件陣列是指通過網絡操作系統自身提供的磁盤管理功能將連接的普通SCSI卡上的多塊硬盤配置成邏輯盤,組成陣列。軟件陣列可以提供數據冗余功能,但是磁盤子系統的性能會有所降低,有的降低幅度還比較大,達30%左右。
硬件陣列是使用專門的磁盤陣列卡來實現的。硬件陣列能夠提供在線擴容、動態修改陣列級別、自動數據恢復、驅動器漫游、超高速緩沖等功能。它能提供性能、數據保護、可靠性、可用性和可管理性的解決方案。陣列卡專用的處理單元來進行操作,它的性能要遠遠高于常規非陣列硬盤,并且更安全更穩定。
磁盤陣列其實也分為軟陣列 (Software Raid)和硬陣列 (Hardware Raid) 兩種. 軟陣列即通過軟件程序并由計算機的 CPU提供運行能力所成. 由于軟件程式不是一個完整系統故只能提供最基本的 RAID容錯功能. 其他如熱備用硬盤的設置, 遠程管理等功能均一一欠奉. 硬陣列是由獨立操作的硬件提供整個磁盤陣列的控制和計算功能. 不依靠系統的CPU資源.
由于硬陣列是一個完整的系統, 所有需要的功能均可以做進去. 所以硬陣列所提供的功能和性能均比軟陣列好. 而且, 如果你想把系統也做到磁盤陣列中, 硬陣列是唯一的選擇. 故我們可以看市場上 RAID 5 級的磁盤陣列均為硬陣列. 軟 陣列只適用于 Raid 0 和 Raid 1. 對于我們做鏡像用的鏡像塔, 肯定不會用 Raid 0或 Raid 1。作為高性能的存儲系統,已經得到了越來越廣泛的應用。RAID的級別從RAID概念的提出到現在,已經發展了六個級別,其級別分別是0、1、2、3、4、5等。但是最常用的是0、1、3、5四個級別。
五、個人用戶該選那種RAID模式
首先要分析清楚,我們需要存儲的文件有什么樣的屬性。這其中需要大量存儲的和占用存儲量大的文件是兩回事兒。
從使用角度粗略分,個人需要存儲的文件大致有文本文件、照片錄像、影音文件、應用程序等。
1、文本文件:大量長期存放,階段性更新,但其占用空間小,安全性要求個別較高,大部分一般;
2、照片錄像:大量長期存放,永久性記錄,占用空間大,安全性要求高,一旦損失很難彌補;
3、影音文件:一部分大量長期存放,一部分大量短期存放,階段性更新,占用空間大,安全性要求一般,即便損失了,也可以再從網絡上下載恢復;
4、應用程序:這其中包括一些軟件和硬件的驅動等,對于軟件,目前基本可以從網絡上獲得,驅動程序有時需要預先備份,安裝設備時隨時可用,屬于量少但要長期存放的,階段性更新,安全性要求一般。
看看自己需要對哪種類型的文件進行存儲,再選擇自己需要的RAID模式即可。