RAID全稱為廉價磁盤冗余陣列(Redundant Arrays of Independent Disk),其原理就是:將多個便宜的磁盤組合成一個磁盤陣列組。提升了磁盤的讀寫性能,通常用在服務器上。RAID分為不同的級別,不同的級別在數據可靠性以及讀寫性能都不一樣。可以根據自己的生產環境來使用不同的級別。常用的RAID有:RAID0,RAID1,RAID5,RAID6,RAID1+0,RAID0+1等等。
RAID0
RAID0又叫條帶卷(strip)將數據分段存儲于各個磁盤中,讀寫操作可以并行執行。因此其讀寫速率為單個磁盤的N倍(N為組成RAID0的磁盤個數),但是卻沒有數據冗余,單個磁盤的損壞會導致數據的不可修復。在RAID0中,數據以chunk方式存儲。大多數striping的實現允許管理者通過調節兩個關鍵的參數來定義數據分段及寫入磁盤的 方式,這兩個參數對RAID0的性能有很重要的影響。
STRIPE WIDTH
stripe width是指可被并行寫入的 stripe 的個數,即等于磁盤陣列中磁盤的個數。
STRIPE SIZE
也可稱為block size(chunk size,stripe length,granularity),指寫入每個磁 盤的數據塊大小。以塊分段的RAID通常可允許選擇的塊大小從 2KB 到 512KB不等,也有更 高的,但一定要是2的指數倍。以字節分段的(比如RAID3)一般的stripe size為1字節或者 512字節,并且用戶不能調整。 stripe size對性能的影響是很難簡單估量的,最好在實際應用中依自己需求多多調整并 觀察其影響。通常來說,減少stripe size,文件會被分成更小的塊,傳輸數據會更快,但 是卻需要更多的磁盤來保存,增加positioning performance,反之則相反。應該說,沒有 一個理論上的最優的值。很多時候,也要考慮磁盤控制器的策略,比如有的磁盤控制器會等 等到一定數據量才開始往磁盤寫入。
特點:
讀、寫性能提升;
可用空間:N*min(S1,S2,...)
無容錯能力
最少磁盤數:2, N
不建議存放重要的數據
RAID 1
鏡像存儲(mirroring),沒有數據校驗。數據被同等地寫入兩個或多個磁盤中,可想而知,寫入速度會比較 慢,但讀取速度會比較快。讀取速度可以接近所有磁盤吞吐量的總和,寫入速度受限于最慢 的磁盤。 RAID1也是磁盤利用率最低的一個。如果用兩個不同大小的磁盤建立RAID1,可以用空間較小 的那一個,較大的磁盤多出來的部分可以作他用,不會浪費。
特點
讀性能提升、寫性能略有下降;
可用空間:1*min(S1,S2,...)
有冗余能力
最少磁盤數:2, 2N
適合存儲重要的數據
RAID 5
奇偶校驗(XOR),數據以塊分段條帶化存儲。校驗信息交叉地存儲在所有的數據盤上。
RAID5把數據和相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上,并且奇偶校驗信息和 相對應的數據分別存儲于不同的磁盤上,其中任意N-1塊磁盤上都存儲完整的數據,也就是 說有相當于一塊磁盤容量的空間用于存儲奇偶校驗信息。因此當RAID5的一個磁盤發生損壞 后,不會影響數據的完整性,從而保證了數據安全。當損壞的磁盤被替換后,RAID還會自動 利用剩下奇偶校驗信息去重建此磁盤上的數據,來保持RAID5的高可靠性。
RAID 5可以理解為是RAID 0和RAID 1的折衷方案。RAID 5可以為系統提供數據安全保障,但 保障程度要比鏡像低而磁盤空間利用率要比鏡像高。RAID 5具有和RAID 0相近似的數據讀取 速度,只是因為多了一個奇偶校驗信息,寫入數據的速度相對單獨寫入一塊硬盤的速度略慢。
特點
讀、寫性能提升
可用空間:(N-1)*min(S1,S2,...)
有容錯能力:允許最多1 塊磁盤損壞
最少磁盤數:3, 3+
RAID6
類似RAID5,但是增加了第二個獨立的奇偶校驗信息塊,兩個獨立的奇偶系統使用不同的算法, 數據的可靠性非常高,即使兩塊磁盤同時失效也不會影響數據的使用。但RAID 6需要分配給 奇偶校驗信息更大的磁盤空間,相對于RAID 5有更大的“寫損失”,因此“寫性能”非常差。
由圖所知,每個硬盤上除了都有同級數據XOR校驗區外,還有一個針對每個數據 塊的XOR校驗區。當然,當前盤數據塊的校驗數據不可能存在當前盤而是交錯存儲的。從數 學角度來說,RAID 5使用一個方程式解出一個未知變量,而RAID 6則能通過兩個獨立的線性 方程構成方程組,從而恢復兩個未知數據。
伴隨著硬盤容量的增長,RAID6已經變得越來越重要。TB級別的硬盤上更容易造成數據丟失, 數據重建過程(比如RAID5,只允許一塊硬盤損壞)也越來越長,甚至到數周,這是完全不可接受的。而RAID6允許兩 塊硬盤同時發生故障,所以漸漸受到人們的青睞。
伴隨CD,DVD和藍光光盤的問世,存儲介質出現了擦除碼技術,即使媒介表面出現劃痕,仍然可以播放,大多數常見的擦除碼算法已經演變為上世紀60年代麻省理工學院林肯實驗室開 發的Reed-Solomon碼。實際情況中,多數RAID6實現都采用了標準的RAID5教校驗比特和Reed-Solomon碼 。而純擦除碼算法的使用使得RAID 6陣列可以失效兩塊以上的硬盤,保護力度更強,有些實現方法提供了多種級別的保護,甚至允許用戶(或存儲管理員)指定保護級別。
特點
讀、寫性能提升
可用空間:(N-2)*min(S1,S2,...)
有容錯能力:允許最多2 塊磁盤損壞
最少磁盤數:4, 4+
RAID1+0
RAID1+0與RAID0+1相似,但是先做鏡像(1),再做條帶(0)
二者在讀寫性能上沒有什么差別。但是在安全性上RAID10要好于 RAID01。如圖中所示,假設DISK0損壞,在RAID10中,在剩下的3塊盤中,只有當DISK1故障, 整個RAID才會失效。但在RAID01中,DISK0損壞后,左邊的條帶將無法讀取,在剩下的3快盤 中,只要DISK2或DISK3兩個盤中任何一個損壞,都會導致RAID失效。
RAID10和RAID5也是經常用來比較的兩種方案,二者都在生產實踐中得到了廣泛的應用。 RAID10安全性更高,但是空間利用率低。至于讀寫性能,與cache有很大關聯,最好根據實 際情況測試比較選擇。
特點
讀、寫性能提升
可用空間:N*min(S1,S2,...)/2
有容錯能力:每組鏡像最多只能壞一塊
最少磁盤數:4, 4+
RAID0+1
RAID0+1是RAID0和RAID1的結合。先做條帶(0),再做鏡像(1)
以四個磁盤組成的RAID 0+1為例,其數據存儲方式如圖所示:RAID 0+1是存儲性能和數據安全兼顧的方案。它在提供與RAID 1一樣的數據安全保障的同時,也提供了與RAID 0近似的存儲性能。
由于RAID 0+1也通過數據的100%備份功能提供數據安全保障,因此RAID 0+1的磁盤空間利用率與RAID 1相同,存儲成本高。