在原先的時候,我們能使用的磁盤容量都不大,幾十GB的容量就已經算大硬盤了。但是某些情況下,我們需要很大容量的存儲空間,當我們磁盤容量不夠了該怎么辦?其實我們可以用一種存儲機制,即磁盤陣列(RAID)。這種機制的功能是什么?它有哪些級別?什么是硬件、軟件磁盤陣列?Linux支持什么樣的磁盤陣列?下面我們就來談談
RAID概念
磁盤陣列RAID的全名是(Redundant Arrays of Inexpensive Disk),有獨立冗余磁盤陣列之稱。RAID可以通過軟件(RAID卡)或硬件(MDADM)將多個較小的磁盤整合成一個較大的磁盤設備,形成一個巨大容量的磁盤組,而這個磁盤組可不僅僅是存儲容量大而已,它還具有數據保護的功能,利用個別磁盤提供數據所產生加成效果提升整個磁盤系統效能。利用這項技術,將數據切割成許多區段,分別存放在各個硬盤上。
整個RAID由於選擇的級別(level)不同,而是而使得整合后的磁盤具有不同的功能,常見的level有這幾種
RAID 0 (等量模式,stripe):性能最佳
RAID 0
條帶 (strping),也是我們最早出現的RAID模式也是最簡單的一種形式
組成:需磁盤數量:2塊以上(最好由相同型號與容量的磁盤來組成),越多的塊磁盤組成的RAID 0 的性能越好,因為每一塊負責的數據量變得更低,而且總容量會變得更大。
優點:成本低、速度快,可以提高整個磁盤的性能,而且磁盤利用率為100%。
缺點:要自行承擔數據損壞的風險,任何一個磁盤的損壞將損壞全部數據;並且不提供冗余或錯誤修復能力。
RAID 1 (鏡像模式, mirror):完整備份
組成:mirroring(鏡像卷),需要磁盤兩塊以上,最好是一模一樣的硬盤,如果不同容量的硬盤組成RAID 1 時,那么總容量將會以容量小的那一塊為主
原理:是把一個磁盤的數據鏡像到另一個磁盤上,也就是說數據在寫入一塊磁盤的同時,會在另一塊閑置的磁盤上生成鏡像文件,(同步)簡單來說就是讓同一份數據,完整的保存在兩塊硬盤上
優點:最大的優點在於數據的備份,任何的一塊硬盤損壞時,數據可以完整的保存下來
缺點:磁盤利用率為50%,即2塊100G的磁盤構成RAID1只能提供100G的可用空間,讀寫速度一般沒有RAID 0 那么快。
RAID 5 :性能與數據備份的均衡考慮
帶奇偶校驗的條帶卷
組成:需要三塊以上的磁盤才能組成
原理:每個循環寫入時,都會有部分的奇偶校驗值被記錄下來,並且每次都記錄在不同的9磁盤,因此,任何一個磁盤損壞時都能借由其他的磁盤檢查碼來重建原本磁盤內的數據
特點:由於有奇偶校驗值,所以RAID 5 的總容量是整體磁盤數量減一塊。所以利用率是 (n-1)/n,讀寫速度也還不錯
RAID 10
嵌套RAID級別——鏡像 + 條帶
RAID 10是將鏡像和條帶進行兩級組合的RAID級別,第一級是RAID1鏡像對,第二級為RAID 0。比如我們有8塊盤,它是先兩兩做鏡像,形成了新的4塊盤,然后對這4塊盤做RAID0;當RAID10有一個硬盤受損其余硬盤會繼續工作,這個時候受影響的硬盤只有2塊
RAID 硬盤失效處理
一般兩種處理方法:熱備和熱插拔
熱備:HotSpare
定義:當冗余的RAID組中某個硬盤失效時,在不干擾當前RAID系統的正常使用的情況下,用RAID系統中另外一個正常的備用硬盤自動頂替失效硬盤,及時保證RAID系統的冗余性
全局式:備用硬盤為系統中所有的冗余RAID組共享
專用式:備用硬盤為系統中某一組冗余RAID組專用
如下圖所示:是一個全局熱備的示例,該熱備盤由系統中兩個RAID組共享,可自動頂替任何一個RAID中的一個失效硬盤
熱插拔:HotSwap
定義:在不影響系統正常運轉的情況下,用正常的物理硬盤替換RAID系統中失效硬盤。