raid 詳解
RAID 0
- RAID 0亦稱為帶區(qū)集鸭轮。它將兩個(gè)以上的磁盤并聯(lián)起來齿诉,成為一個(gè)大容量的磁盤。在存放數(shù)據(jù)時(shí)顶猜,分段后分散存儲(chǔ)在這些磁盤中沧奴,因?yàn)樽x寫時(shí)都可以并行處理,所以在所有的級(jí)別中长窄,RAID 0的速度是最快的扼仲。但是RAID 0既沒有冗余功能,也不具備容錯(cuò)能力抄淑,如果一個(gè)磁盤(物理)損壞屠凶,所有數(shù)據(jù)都會(huì)丟失,危險(xiǎn)程度與JBOD相當(dāng)肆资。
RAID 1
兩組以上的N個(gè)磁盤相互作鏡像矗愧,在一些多線程操作系統(tǒng)中能有很好的讀取速度,理論上讀取速度等于硬盤數(shù)量的倍數(shù),與RAID 0相同唉韭。另外寫入速度有微小的降低夜涕。只要一個(gè)磁盤正常即可維持運(yùn)作,可靠性最高属愤。其原理為在主硬盤上存放數(shù)據(jù)的同時(shí)也在鏡像硬盤上寫一樣的數(shù)據(jù)女器。當(dāng)主硬盤(物理)損壞時(shí),鏡像硬盤則代替主硬盤的工作住诸。因?yàn)橛戌R像硬盤做數(shù)據(jù)備份驾胆,所以RAID 1的數(shù)據(jù)安全性在所有的RAID級(jí)別上來說是最好的。但無論用多少磁盤做RAID 1贱呐,僅算一個(gè)磁盤的容量丧诺,是所有RAID中磁盤利用率最低的一個(gè)級(jí)別。
如果用兩個(gè)不同大小的磁盤建RAID 1奄薇,可用空間為較小的那個(gè)磁盤驳阎,較大的磁盤多出來的空間也可以分區(qū)成一個(gè)區(qū)來使用,不會(huì)造成浪費(fèi)馁蒂。
\begin{aligned}Size&=\min \left(S_{1},S_{2},S_{3}\dots \right)\end{aligned}
RAID2
這是RAID 0的改良版呵晚,以漢明碼(Hamming Code)的方式將數(shù)據(jù)進(jìn)行編碼后分區(qū)為獨(dú)立的比特,并將數(shù)據(jù)分別寫入硬盤中沫屡。因?yàn)樵跀?shù)據(jù)中加入錯(cuò)誤修正碼(ECC饵隙,Error Correction Code),所以數(shù)據(jù)整體的容量會(huì)比原始數(shù)據(jù)大一些谁鳍。
RAID 2最少要三臺(tái)磁盤驅(qū)動(dòng)器方能運(yùn)作癞季。
RAID 3
- 采用Bit-interleaving(數(shù)據(jù)交錯(cuò)存儲(chǔ))技術(shù),它需要通過編碼再將數(shù)據(jù)比特分割后分別存在硬盤中倘潜,而將同比特檢查后單獨(dú)存在一個(gè)硬盤中绷柒,但由于數(shù)據(jù)內(nèi)的比特分散在不同的硬盤上,因此就算要讀取一小段數(shù)據(jù)資料都可能需要所有的硬盤進(jìn)行工作涮因,所以這種規(guī)格比較適于讀取大量數(shù)據(jù)時(shí)使用废睦。
RAID 4
- 它與RAID 3不同的是它在分區(qū)時(shí)是以區(qū)塊為單位分別存在硬盤中,但每次的數(shù)據(jù)訪問都必須從同比特檢查的那個(gè)硬盤中取出對(duì)應(yīng)的同比特?cái)?shù)據(jù)進(jìn)行核對(duì)养泡,由于過于頻繁的使用嗜湃,所以對(duì)硬盤的損耗可能會(huì)提高。(塊交織技術(shù)澜掩,Block interleaving)
RAID 5
RAID Level 5是一種儲(chǔ)存性能购披、數(shù)據(jù)安全和存儲(chǔ)成本兼顧的存儲(chǔ)解決方案。它使用的是Disk Striping(硬盤分區(qū))技術(shù)肩榕。
RAID 5至少需要三個(gè)硬盤刚陡,RAID 5不是對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行備份,而是把數(shù)據(jù)和相對(duì)應(yīng)的奇偶校驗(yàn)信息存儲(chǔ)到組成RAID5的各個(gè)磁盤上,并且奇偶校驗(yàn)信息和相對(duì)應(yīng)的數(shù)據(jù)分別存儲(chǔ)于不同的磁盤上筐乳。當(dāng)RAID5的一個(gè)磁盤數(shù)據(jù)發(fā)生損壞后歌殃,可以利用剩下的數(shù)據(jù)和相應(yīng)的奇偶校驗(yàn)信息去恢復(fù)被損壞的數(shù)據(jù)。RAID 5可以理解為是RAID 0和RAID 1的折衷方案蝙云。RAID 5可以為系統(tǒng)提供數(shù)據(jù)安全保障氓皱,但保障程度要比鏡像低而磁盤空間利用率要比鏡像高。RAID 5具有和RAID 0相近似的數(shù)據(jù)讀取速度勃刨,只是因?yàn)槎嗔艘粋€(gè)奇偶校驗(yàn)信息波材,寫入數(shù)據(jù)的速度相對(duì)單獨(dú)寫入一塊硬盤的速度略慢,若使用“回寫緩存”可以讓性能改善不少朵你。同時(shí)由于多個(gè)數(shù)據(jù)對(duì)應(yīng)一個(gè)奇偶校驗(yàn)信息各聘,RAID 5的磁盤空間利用率要比RAID 1高揣非,存儲(chǔ)成本相對(duì)較便宜抡医。
\begin{aligned}Size&=(N-1)\times \min \left(S_{1},S_{2},\dots ,S_{N}\right)\end{aligned}
RAID 6
與RAID 5相比,RAID 6增加第二個(gè)獨(dú)立的奇偶校驗(yàn)信息塊早敬。兩個(gè)獨(dú)立的奇偶系統(tǒng)使用不同的算法忌傻,數(shù)據(jù)的可靠性非常高,任意兩塊磁盤同時(shí)失效時(shí)不會(huì)影響數(shù)據(jù)完整性搞监。RAID 6需要分配給奇偶校驗(yàn)信息更大的磁盤空間和額外的校驗(yàn)計(jì)算水孩,相對(duì)于RAID 5有更大的IO操作量和計(jì)算量,其“寫性能”強(qiáng)烈取決于具體的實(shí)現(xiàn)方案琐驴,因此RAID 6通常不會(huì)通過軟件方式來實(shí)現(xiàn)俘种,而更可能通過硬件方式實(shí)現(xiàn)。
同一數(shù)組中最多容許兩個(gè)磁盤損壞绝淡。更換新磁盤后宙刘,數(shù)據(jù)將會(huì)重新算出并寫入新的磁盤中。
依照設(shè)計(jì)理論牢酵,RAID 6必須具備四個(gè)以上的磁盤才能生效悬包。可使用的容量為硬盤總數(shù)減去2的差馍乙,乘以最小容量布近,公式為:
\begin{aligned}Size&=(N-2)\times \min \left(S_{1},S_{2},S_{3},\dots ,S_{N}\right)\end{aligned}
同理,數(shù)據(jù)保護(hù)區(qū)域容量則為最小容量乘以2丝格。
RAID 6在硬件磁盤陣列卡的功能中撑瞧,也是最常見的磁盤陣列檔次。
混合RAID
JBOD
JBOD( Just a Bunch Of Disks)在分類上显蝌,JBOD并不是RAID的檔次预伺。由于并沒有規(guī)范,市場(chǎng)上有兩類主流的做法
使用單獨(dú)的鏈接端口如SATA、USB或1394同時(shí)控制多個(gè)各別獨(dú)立的硬盤扭屁,使用這種模式通常是較高階的設(shè)備算谈,還具備有RAID的功能,不需要依靠JBOD達(dá)到合并邏輯扇區(qū)的目的料滥。
只是將多個(gè)硬盤空間合并成一個(gè)大的邏輯硬盤然眼,沒有錯(cuò)誤備援機(jī)制。
數(shù)據(jù)的存放機(jī)制是由第一顆硬盤開始依序往后存放葵腹,即操作系統(tǒng)看到的是一個(gè)大硬盤(由許多小硬盤組成的)高每。但如果硬盤損毀,則該顆硬盤上的所有數(shù)據(jù)將無法救回践宴。若第一顆硬盤損壞鲸匿,通常無法作救援(因?yàn)榇蟛糠治募到y(tǒng)將磁盤分區(qū)表(partition table)存在磁盤前端,即第一顆)阻肩,失去磁盤分區(qū)表即失去一切數(shù)據(jù)带欢,若遭遇磁盤陣列數(shù)據(jù)或硬盤出錯(cuò)的狀況,危險(xiǎn)程度較RAID 0更劇烤惊。它的好處是不會(huì)像RAID乔煞,每次訪問都要讀寫全部硬盤。但在部分的JBOD數(shù)據(jù)恢復(fù)實(shí)踐中柒室,可以恢復(fù)未損毀之硬盤上的數(shù)據(jù)渡贾。同時(shí),因?yàn)槊看巫x寫操作只作用于單一硬盤雄右,JBOD的傳輸速率與I/O表現(xiàn)均與單顆硬盤無異空骚。
\begin{aligned}{\text{Size}}&={\text{sum of all discs}}\end{aligned}
RAID 7
- RAID 7并非公開的RAID標(biāo)準(zhǔn),而是Storage Computer Corporation的專利硬件產(chǎn)品名稱擂仍,RAID 7是以RAID 3及RAID 4為基礎(chǔ)所發(fā)展囤屹,但是經(jīng)過強(qiáng)化以解決原來的一些限制。另外防楷,在實(shí)現(xiàn)中使用大量的高速緩存以及用以實(shí)現(xiàn)異步數(shù)組管理的專用即時(shí)處理器牺丙,使得RAID 7可以同時(shí)處理大量的IO要求,所以性能甚至超越了許多其他RAID標(biāo)準(zhǔn)的實(shí)做產(chǎn)品复局。但也因?yàn)槿绱顺宀荆趦r(jià)格方面非常的高昂。[3]
RAID 10/01
RAID 10是先鏡射再分區(qū)數(shù)據(jù)亿昏,再將所有硬盤分為兩組峦剔,視為是RAID 0的最低組合,然后將這兩組各自視為RAID 1運(yùn)作角钩。
RAID 01則是跟RAID 10的程序相反吝沫,是先分區(qū)再將數(shù)據(jù)鏡射到兩組硬盤呻澜。它將所有的硬盤分為兩組,變成RAID 1的最低組合惨险,而將兩組硬盤各自視為RAID 0運(yùn)作羹幸。
當(dāng)RAID 10有一個(gè)硬盤受損,其余硬盤會(huì)繼續(xù)運(yùn)作辫愉。RAID 01只要有一個(gè)硬盤受損栅受,同組RAID 0的所有硬盤都會(huì)停止運(yùn)作,只剩下其他組的硬盤運(yùn)作恭朗,可靠性較低屏镊。如果以六個(gè)硬盤建RAID 01,鏡射再用三個(gè)建RAID 0痰腮,那么壞一個(gè)硬盤便會(huì)有三個(gè)硬盤離線而芥。因此,RAID 10遠(yuǎn)較RAID 01常用膀值,零售主板絕大部分支持RAID 0/1/5/10棍丐,但不支持RAID 01。