對于RAID這個詞玩電腦的人其實(shí)應(yīng)該都聽過,然而好像對自己來說又不太會接觸到的東西,其實(shí)隨著SSD的普及,RAID這個東西離普通個人消費(fèi)者好像越來越遠(yuǎn)了, 因?yàn)楝F(xiàn)在SSD的性能對絕大多數(shù)人來說已經(jīng)足夠快了,而且嫌棄SATA SSD不夠快的話還有更快的PCI-E NVMe可選,現(xiàn)在部分高端OEM主機(jī)或游戲筆記本會使用兩個SSD組RAID 0應(yīng)該是最常見RAID組合了。 然而這對于注重?cái)?shù)據(jù)安全的企業(yè)、工作站和數(shù)據(jù)中心來說RAID是相當(dāng)重要的,也會有個人用戶為了保護(hù)重要數(shù)據(jù)也會選擇組建RAID 1陣列,多盤位NAS也會自動或者推薦用戶組RAID來保護(hù)數(shù)據(jù),今天的超能課堂就來說說這個RAID是什么東西。 RAID的全稱是Redundant Array of Independent Disks獨(dú)立硬盤冗余陣列,簡稱磁盤陣列,基本上就是把多個 相對便宜的硬盤組合起來,讓他們變成一個 硬盤陣列組,使性能和容量達(dá)到甚至超過那些更為昂貴、巨大的硬盤,組建磁盤陣列的多個物理硬盤會被組合成一個邏輯扇區(qū),在操作系統(tǒng)里面看只會被識別成一個硬盤。 另外RAID有多個不同的等級,不同等級的RAID的組建方式與功能都不同,較單一硬盤相比會有以下一個或多個方面的好處:更大的容量,更強(qiáng)的容錯能力,更快的速度與更大的吞吐量。 標(biāo)準(zhǔn)RAID有:RAID 0、RAID 1、RAID 2、RAID 3、RAID 4、RAID 5、RAID 6,此外還有混合RAID包括:RAID 10/01、RAID 30、RAID 50、RAID 53、RAID 60,其中較為常見的有RAID 0、RAID 1、RAID 5、RAID 6和RAID 10,其他的都比較少用,本文只會介紹這幾個常用的,其他的簡單帶過。 常用的RAID等級對比 首先要說明一下的是JBOD其實(shí)并不算RAID, 它只是簡單的把幾個硬盤的空間合并變成一個大的邏輯硬盤,容量等于所有硬盤之和,數(shù)據(jù)的存放與寫入是從第一個硬盤開始按硬盤的順序來進(jìn)行的,每次讀寫操作只是作用與數(shù)據(jù)所在的硬盤,所以并沒有增強(qiáng)讀寫性能的作用,讀寫性能和單一硬盤無異,而且也沒有錯誤備份的機(jī)制,一旦出現(xiàn)錯誤那么這塊硬盤上的數(shù)據(jù)就將丟失,如果是第一顆硬盤損壞的話那么整個陣列的數(shù)據(jù)可能都會丟失,因?yàn)橥ǔ碚f磁盤分區(qū)表就在第一個硬盤上,不過對未損壞硬盤進(jìn)行數(shù)據(jù)恢復(fù)的話那些數(shù)據(jù)是有可能恢復(fù)的。 RAID 0 圖片取自維基百科RAID條目 RAID 0是最早出現(xiàn)的RAID模式,也稱為Striping(條帶)存儲,實(shí)現(xiàn)起來的方式也非常簡單,只需要兩塊或以上的硬盤就可組建,它將磁盤并列起來組成一個大容量磁盤,數(shù)據(jù)是分段后分散存儲在各個磁盤之中,讀寫操作都會涉及到各個硬盤,讀寫性能等于所有硬盤性能之和,所以RAID 0的速度是最快的,而且沒有任何容錯備份,所以磁盤可用空間也是最大的,空間利用率達(dá)到100%,然而就是因?yàn)闆]有容錯能力這使得整個陣列變得非常不靠譜,如果有一個硬盤損壞的話所有數(shù)據(jù)都會丟失,而且因?yàn)镽AID 0的數(shù)據(jù)是分散布置的,所有數(shù)據(jù)恢復(fù)幾乎是不可能的。RAID 0主要應(yīng)用在對性能有要求然而對數(shù)據(jù)安全性沒要求的場合,比如個人電腦的系統(tǒng)盤,視頻制作的系統(tǒng)盤和緩存盤等,重要數(shù)據(jù)不要保存在RAID 0的陣列組里面。 RAID 1 RAID 1又稱為mirroring(鏡像)存儲,與RAID 0這種要性能不要安全的方式不同,RAID 1的原理是把一個硬盤里的數(shù)據(jù)完全鏡像到另一個硬盤上,兩個硬盤保持完全一樣的數(shù)據(jù),RAID 1的數(shù)據(jù)安全性是最好的,只要有一個硬盤還健在數(shù)據(jù)就安全,然而空間利用率也是最低的,無論你拿多少個硬盤來組RAID 1,磁盤陣列組的容量也只等于容量最小的那個硬盤,其他硬盤空余的空間可以分區(qū)獨(dú)立使用不會浪費(fèi),寫入速度也等于寫入速度最慢那個硬盤,數(shù)據(jù)讀取速度倒是等于硬盤數(shù)量的倍數(shù)。RAID 1主要應(yīng)用在保存關(guān)鍵性重要數(shù)據(jù)的場合,或者NAS盤位不足夠組RAID 5的場合,對,就是指那些雙盤位NAS。 RAID 5 RAID 1雖然對數(shù)據(jù)有良好的保護(hù)性,但是磁盤空間利用率太低了,不適合組建大容量的磁盤陣列,這時候就需要RAID 5出場了,RAID 5是一種儲存性能、數(shù)據(jù)安全和存儲成本兼顧的存儲解決方案。組建RAID 5至少需要三塊硬盤,它使用的是Disk Striping(硬盤分區(qū))技術(shù) ,并不是對存儲數(shù)據(jù)進(jìn)行備份,而是把數(shù)據(jù)和對應(yīng)的奇偶校驗(yàn)信息分散存放到各個硬盤上,當(dāng)陣列組里面的一個硬盤發(fā)生故障后,可以利用剩下的數(shù)據(jù)和奇偶校驗(yàn)信息去恢復(fù)損壞的數(shù)據(jù)。 RAID 5可以說是RAID 0與RAID 1的折中方案,假設(shè)用n個硬盤組建RAID 5陣列,讀寫性能和磁盤可用空間都等于n-1個硬盤之和,性能和空間利用率相對RAID 0來說是要低一點(diǎn),數(shù)據(jù)安全性也沒RAID 1那么高,然而綜合來說RAID 5應(yīng)該來說是最好的,而且存儲成本相對便宜。 RAID 6 RAID 6與RAID 5其實(shí)是比較相似的,它增加了第二個獨(dú)立的奇偶校驗(yàn)信息塊,兩個獨(dú)立的奇偶校驗(yàn)系統(tǒng)使用不同的算法,數(shù)據(jù)的可靠性比RAID 5更高,可容許兩塊硬盤故障而保持?jǐn)?shù)據(jù)的完整性,不過由于RAID 6需要比RAID 5更多的磁盤空間去存儲另一個奇偶校驗(yàn)系統(tǒng)的數(shù)據(jù),所以需要N+2個硬盤,組建RAID 6至少得4個硬盤才行,另外RAID 6陣列的數(shù)據(jù)傳輸需要大量的I/O和計(jì)算量,所以基本上不會去用軟件實(shí)現(xiàn)的,現(xiàn)在的主板也很少支持RAID 6,通常都需要專用RAID卡來實(shí)現(xiàn),另外由于寫入操作時需要進(jìn)行大量的奇偶校驗(yàn)計(jì)算,所以寫入性能也不算好。 基本上就只有那些對數(shù)據(jù)安全要求的應(yīng)用才會用到RAID 6,比如數(shù)據(jù)中心、信息中心等,其他大多數(shù)情況下用RAID 5就已經(jīng)足夠了。 RAID 10 RAID 1+0是一種混合RAID,現(xiàn)在都簡稱成RAID 10,它是RAID 0與RAID 1的混合體,繼承了RAID 0的性能與RAID 1的安全,然而也繼承了RAID 1的低磁盤可用空間,組建RAID 1+0至少需要4個硬盤,磁盤空間可用率最高只有50%,RAID 1+0是先把硬盤分成兩組分別組建RAID 1陣列,然后在把這兩組RAID 1陣列組建RAID 0,也就是組建了兩層RAID,它的讀取性能基本就是陣列組內(nèi)硬盤總數(shù)n,寫入速度則是n/2,數(shù)據(jù)的安全性也很好,即使陣列組內(nèi)的一個硬盤故障整個陣列組也可以正常工作,只要不是整組RAID 1掛掉數(shù)據(jù)就是安全的。 當(dāng)需要更換RAID 10中硬盤的時候,只需要直接更換損壞的那個硬盤就可以了,然后把那組RAID 1陣列中的另一個硬盤上的數(shù)據(jù)恢復(fù)過去就行了,在數(shù)據(jù)恢復(fù)的過程中整個RAID 10陣列依然是可以運(yùn)作的。 另外還有一個RAID 0+1的組合,就是先組建RAID 0再組建RAID 1,然而這種組合的可靠性比RAID 1+0要低,因?yàn)橹灰幸粋€硬盤出現(xiàn)故障同組的RAID 0就會整體停止工作,只剩下另一組單獨(dú)工作,當(dāng)然了數(shù)據(jù)還是安全的,實(shí)際應(yīng)用中RAID 1+0也比RAID 0+1更為常用,現(xiàn)在的主板基本都是支持RAID 1+0而不是支持RAID 0+1。 介紹完RAID 10/01之后大家應(yīng)該都能推理出其他的復(fù)合RAID如:RAID 50、RAID 53這些結(jié)構(gòu)是怎么樣的了,數(shù)字在前的那個就是低層磁盤陣列,在后面的就是高層磁盤陣列,所以其他的復(fù)合RAID就不展開說了。 那些不太常用的RAID: RAID 2:是RAID 0的改良版,其實(shí)就是帶漢明碼校驗(yàn)的RAID 0,將數(shù)據(jù)條塊分布在不同的硬盤上,條塊以位或者字節(jié)為單位,并使用漢明碼技術(shù)來提供錯誤檢查及恢復(fù),由于這一技術(shù)的加入使得磁盤陣列能允許一個硬盤的故障并保持?jǐn)?shù)據(jù)完整,由于需漢明碼的加入使得數(shù)據(jù)的整體數(shù)據(jù)會比原來的大一些,組建RAID 2至少需要3個硬盤,而且由于漢明碼的特性導(dǎo)致系統(tǒng)花銷過大。 RAID 3:它采用Bit-interleaving(數(shù)據(jù)交錯存儲)技術(shù),RAID 3可以理解為帶奇偶校驗(yàn)的RAID 0,組建RAID 3至少需要三個硬盤,其中兩個的運(yùn)行方式其實(shí)就是RAID 0,另外一個是用來存放奇偶校驗(yàn)數(shù)據(jù)的,就是RAID 0外加一個奇偶校驗(yàn)盤,RAID 3容許單盤出錯,損壞硬盤里的數(shù)據(jù)可以根據(jù)奇偶校驗(yàn)盤和其他硬盤里的信息進(jìn)行恢復(fù),如果壞掉的是存放奇偶校驗(yàn)數(shù)據(jù)的盤的話,其實(shí)不會對數(shù)據(jù)有任何影響,其實(shí)它和RAID 5很像,只不過RAID 3是把奇偶校驗(yàn)數(shù)據(jù)單獨(dú)存放在一個硬盤里,而RAID 5是把奇偶校驗(yàn)數(shù)據(jù)分散在各個硬盤里。 RAID 4:結(jié)構(gòu)與RAID 3類似,也帶有獨(dú)立的奇偶校驗(yàn)盤,不過所用技術(shù)是Block interleaving(塊交織技術(shù)),在數(shù)據(jù)分割上RAID 3對數(shù)據(jù)的訪問是按位進(jìn)行的,RAID 4是以數(shù)據(jù)塊為單位(可以把一個文件理解成一個數(shù)據(jù)塊),RAID 4的好處就是讀取數(shù)據(jù)時不同硬盤可以執(zhí)行不同的讀取命令,不像其他RAID 0/3/5那樣讀取一個文件都要動用到全部硬盤,然而寫入文件時會受制于奇偶校驗(yàn)盤的性能,同一時間只能做一次寫入操作,另外數(shù)據(jù)恢復(fù)也比RAID 3大得多。 上面這三種RAID現(xiàn)在基本上都被RAID 5所取代了,不過RAID 4在某些商用設(shè)備上還能見得到,比如NetApp公司的NAS。 RAID 7:它并非公開的RAID標(biāo)準(zhǔn),現(xiàn)已經(jīng)成為Storage Computer Corporation專利硬件產(chǎn)品的名稱,它其實(shí)是一套獨(dú)立的存儲計(jì)算機(jī)系統(tǒng),自帶操作系統(tǒng)和管理工具,能夠獨(dú)立運(yùn)行,性能上超越了其他RAID標(biāo)準(zhǔn)的產(chǎn)品,然而價格也相當(dāng)?shù)馁F。 |
|