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


TAG:超能網 |