RAID全稱為廉價(jià)磁盤(pán)冗余陣列(Redundant Arrays of Independent Disk),其原理就是:將多個(gè)便宜的磁盤(pán)組合成一個(gè)磁盤(pán)陣列組。提升了磁盤(pán)的讀寫(xiě)性能,通常用在服務(wù)器上。RAID分為不同的級(jí)別,不同的級(jí)別在數(shù)據(jù)可靠性以及讀寫(xiě)性能都不一樣??梢愿鶕?jù)自己的生產(chǎn)環(huán)境來(lái)使用不同的級(jí)別。常用的RAID有:RAID0,RAID1,RAID5,RAID6,RAID1+0,RAID0+1等等。
RAID0

RAID0又叫條帶卷(strip)將數(shù)據(jù)分段存儲(chǔ)于各個(gè)磁盤(pán)中,讀寫(xiě)操作可以并行執(zhí)行。因此其讀寫(xiě)速率為單個(gè)磁盤(pán)的N倍(N為組成RAID0的磁盤(pán)個(gè)數(shù)),但是卻沒(méi)有數(shù)據(jù)冗余,單個(gè)磁盤(pán)的損壞會(huì)導(dǎo)致數(shù)據(jù)的不可修復(fù)。在RAID0中,數(shù)據(jù)以chunk方式存儲(chǔ)。大多數(shù)striping的實(shí)現(xiàn)允許管理者通過(guò)調(diào)節(jié)兩個(gè)關(guān)鍵的參數(shù)來(lái)定義數(shù)據(jù)分段及寫(xiě)入磁盤(pán)的 方式,這兩個(gè)參數(shù)對(duì)RAID0的性能有很重要的影響。
STRIPE WIDTH
stripe width是指可被并行寫(xiě)入的 stripe 的個(gè)數(shù),即等于磁盤(pán)陣列中磁盤(pán)的個(gè)數(shù)。
STRIPE SIZE
也可稱為block size(chunk size,stripe length,granularity),指寫(xiě)入每個(gè)磁 盤(pán)的數(shù)據(jù)塊大小。以塊分段的RAID通??稍试S選擇的塊大小從 2KB 到 512KB不等,也有更 高的,但一定要是2的指數(shù)倍。以字節(jié)分段的(比如RAID3)一般的stripe size為1字節(jié)或者 512字節(jié),并且用戶不能調(diào)整。 stripe size對(duì)性能的影響是很難簡(jiǎn)單估量的,最好在實(shí)際應(yīng)用中依自己需求多多調(diào)整并 觀察其影響。通常來(lái)說(shuō),減少stripe size,文件會(huì)被分成更小的塊,傳輸數(shù)據(jù)會(huì)更快,但 是卻需要更多的磁盤(pán)來(lái)保存,增加positioning performance,反之則相反。應(yīng)該說(shuō),沒(méi)有 一個(gè)理論上的最優(yōu)的值。很多時(shí)候,也要考慮磁盤(pán)控制器的策略,比如有的磁盤(pán)控制器會(huì)等 等到一定數(shù)據(jù)量才開(kāi)始往磁盤(pán)寫(xiě)入。
特點(diǎn):
讀、寫(xiě)性能提升;
可用空間:N*min(S1,S2,...)
無(wú)容錯(cuò)能力
最少磁盤(pán)數(shù):2, N
不建議存放重要的數(shù)據(jù)
RAID 1

鏡像存儲(chǔ)(mirroring),沒(méi)有數(shù)據(jù)校驗(yàn)。數(shù)據(jù)被同等地寫(xiě)入兩個(gè)或多個(gè)磁盤(pán)中,可想而知,寫(xiě)入速度會(huì)比較 慢,但讀取速度會(huì)比較快。讀取速度可以接近所有磁盤(pán)吞吐量的總和,寫(xiě)入速度受限于最慢 的磁盤(pán)。 RAID1也是磁盤(pán)利用率最低的一個(gè)。如果用兩個(gè)不同大小的磁盤(pán)建立RAID1,可以用空間較小 的那一個(gè),較大的磁盤(pán)多出來(lái)的部分可以作他用,不會(huì)浪費(fèi)。
特點(diǎn)
讀性能提升、寫(xiě)性能略有下降;
可用空間:1*min(S1,S2,...)
有冗余能力
最少磁盤(pán)數(shù):2, 2N
適合存儲(chǔ)重要的數(shù)據(jù)
RAID 5

奇偶校驗(yàn)(XOR),數(shù)據(jù)以塊分段條帶化存儲(chǔ)。校驗(yàn)信息交叉地存儲(chǔ)在所有的數(shù)據(jù)盤(pán)上。
RAID5把數(shù)據(jù)和相對(duì)應(yīng)的奇偶校驗(yàn)信息存儲(chǔ)到組成RAID5的各個(gè)磁盤(pán)上,并且奇偶校驗(yàn)信息和 相對(duì)應(yīng)的數(shù)據(jù)分別存儲(chǔ)于不同的磁盤(pán)上,其中任意N-1塊磁盤(pán)上都存儲(chǔ)完整的數(shù)據(jù),也就是 說(shuō)有相當(dāng)于一塊磁盤(pán)容量的空間用于存儲(chǔ)奇偶校驗(yàn)信息。因此當(dāng)RAID5的一個(gè)磁盤(pán)發(fā)生損壞 后,不會(huì)影響數(shù)據(jù)的完整性,從而保證了數(shù)據(jù)安全。當(dāng)損壞的磁盤(pán)被替換后,RAID還會(huì)自動(dòng) 利用剩下奇偶校驗(yàn)信息去重建此磁盤(pán)上的數(shù)據(jù),來(lái)保持RAID5的高可靠性。
RAID 5可以理解為是RAID 0和RAID 1的折衷方案。RAID 5可以為系統(tǒng)提供數(shù)據(jù)安全保障,但 保障程度要比鏡像低而磁盤(pán)空間利用率要比鏡像高。RAID 5具有和RAID 0相近似的數(shù)據(jù)讀取 速度,只是因?yàn)槎嗔艘粋€(gè)奇偶校驗(yàn)信息,寫(xiě)入數(shù)據(jù)的速度相對(duì)單獨(dú)寫(xiě)入一塊硬盤(pán)的速度略慢。
特點(diǎn)
讀、寫(xiě)性能提升
可用空間:(N-1)*min(S1,S2,...)
有容錯(cuò)能力:允許最多1 塊磁盤(pán)損壞
最少磁盤(pán)數(shù):3, 3+
RAID6

類似RAID5,但是增加了第二個(gè)獨(dú)立的奇偶校驗(yàn)信息塊,兩個(gè)獨(dú)立的奇偶系統(tǒng)使用不同的算法, 數(shù)據(jù)的可靠性非常高,即使兩塊磁盤(pán)同時(shí)失效也不會(huì)影響數(shù)據(jù)的使用。但RAID 6需要分配給 奇偶校驗(yàn)信息更大的磁盤(pán)空間,相對(duì)于RAID 5有更大的“寫(xiě)損失”,因此“寫(xiě)性能”非常差。
由圖所知,每個(gè)硬盤(pán)上除了都有同級(jí)數(shù)據(jù)XOR校驗(yàn)區(qū)外,還有一個(gè)針對(duì)每個(gè)數(shù)據(jù) 塊的XOR校驗(yàn)區(qū)。當(dāng)然,當(dāng)前盤(pán)數(shù)據(jù)塊的校驗(yàn)數(shù)據(jù)不可能存在當(dāng)前盤(pán)而是交錯(cuò)存儲(chǔ)的。從數(shù) 學(xué)角度來(lái)說(shuō),RAID 5使用一個(gè)方程式解出一個(gè)未知變量,而RAID 6則能通過(guò)兩個(gè)獨(dú)立的線性 方程構(gòu)成方程組,從而恢復(fù)兩個(gè)未知數(shù)據(jù)。
伴隨著硬盤(pán)容量的增長(zhǎng),RAID6已經(jīng)變得越來(lái)越重要。TB級(jí)別的硬盤(pán)上更容易造成數(shù)據(jù)丟失, 數(shù)據(jù)重建過(guò)程(比如RAID5,只允許一塊硬盤(pán)損壞)也越來(lái)越長(zhǎng),甚至到數(shù)周,這是完全不可接受的。而RAID6允許兩 塊硬盤(pán)同時(shí)發(fā)生故障,所以漸漸受到人們的青睞。
伴隨CD,DVD和藍(lán)光光盤(pán)的問(wèn)世,存儲(chǔ)介質(zhì)出現(xiàn)了擦除碼技術(shù),即使媒介表面出現(xiàn)劃痕,仍然可以播放,大多數(shù)常見(jiàn)的擦除碼算法已經(jīng)演變?yōu)樯鲜兰o(jì)60年代麻省理工學(xué)院林肯實(shí)驗(yàn)室開(kāi) 發(fā)的Reed-Solomon碼。實(shí)際情況中,多數(shù)RAID6實(shí)現(xiàn)都采用了標(biāo)準(zhǔn)的RAID5教校驗(yàn)比特和Reed-Solomon碼 。而純擦除碼算法的使用使得RAID 6陣列可以失效兩塊以上的硬盤(pán),保護(hù)力度更強(qiáng),有些實(shí)現(xiàn)方法提供了多種級(jí)別的保護(hù),甚至允許用戶(或存儲(chǔ)管理員)指定保護(hù)級(jí)別。
特點(diǎn)
讀、寫(xiě)性能提升
可用空間:(N-2)*min(S1,S2,...)
有容錯(cuò)能力:允許最多2 塊磁盤(pán)損壞
最少磁盤(pán)數(shù):4, 4+
RAID1+0

RAID1+0與RAID0+1相似,但是先做鏡像(1),再做條帶(0)
二者在讀寫(xiě)性能上沒(méi)有什么差別。但是在安全性上RAID10要好于 RAID01。如圖中所示,假設(shè)DISK0損壞,在RAID10中,在剩下的3塊盤(pán)中,只有當(dāng)DISK1故障, 整個(gè)RAID才會(huì)失效。但在RAID01中,DISK0損壞后,左邊的條帶將無(wú)法讀取,在剩下的3快盤(pán) 中,只要DISK2或DISK3兩個(gè)盤(pán)中任何一個(gè)損壞,都會(huì)導(dǎo)致RAID失效。
RAID10和RAID5也是經(jīng)常用來(lái)比較的兩種方案,二者都在生產(chǎn)實(shí)踐中得到了廣泛的應(yīng)用。 RAID10安全性更高,但是空間利用率低。至于讀寫(xiě)性能,與cache有很大關(guān)聯(lián),最好根據(jù)實(shí) 際情況測(cè)試比較選擇。
特點(diǎn)
讀、寫(xiě)性能提升
可用空間:N*min(S1,S2,...)/2
有容錯(cuò)能力:每組鏡像最多只能壞一塊
最少磁盤(pán)數(shù):4, 4+
RAID0+1

RAID0+1是RAID0和RAID1的結(jié)合。先做條帶(0),再做鏡像(1)
以四個(gè)磁盤(pán)組成的RAID 0+1為例,其數(shù)據(jù)存儲(chǔ)方式如圖所示:RAID 0+1是存儲(chǔ)性能和數(shù)據(jù)安全兼顧的方案。它在提供與RAID 1一樣的數(shù)據(jù)安全保障的同時(shí),也提供了與RAID 0近似的存儲(chǔ)性能。
由于RAID 0+1也通過(guò)數(shù)據(jù)的100%備份功能提供數(shù)據(jù)安全保障,因此RAID 0+1的磁盤(pán)空間利用率與RAID 1相同,存儲(chǔ)成本高。