Linux系統上利用軟件實現RAID

RAID磁盤陣列

    RAID是英文Redundant Array of Independent Disks的縮寫,中文簡稱爲獨立冗餘磁盤陣列。簡單的說,RAID是一種把多塊獨立的硬盤(物理硬盤)按不同的方式組合起來形成一個硬盤組(邏輯硬盤),從而提供比單個硬盤更高的存儲性能和提供數據備份技術。組成磁盤陣列的不同方式稱爲RAID級別(RAID Levels)。在用戶看起來,組成的磁盤組就像是一個硬盤,用戶可以對它進行分區,格式化等等。總之,對磁盤陣列的操作與單個硬盤一模一樣。不同的是,磁盤陣列的存儲速度要比單個硬盤高很多,而且可以提供自動數據備份。數據備份的功能是在用戶數據一旦發生損壞後,利用備份信息可以使損壞數據得以恢復,從而保障了用戶數據的安全性。

        


規範


RAID技術主要包含RAID 0~RAID 7等數個規範,它們的側重點各不相同,常見的規範有如下幾種:

RAID 0:連續以位或字節爲單位分割數據,並行讀/寫於多個磁盤上,因此具有很高的數據傳輸率,但它沒有數據冗餘,因此並不能算是真正的RAID結構。RAID 0只是單純地提高性能,並沒有爲數據的可靠性提供保證,而且其中的一個磁盤失效將影響到所有數據。因此,RAID 0不能應用於數據安全性要求高的場合。

RAID 1:它是通過磁盤數據鏡像實現數據冗餘,在成對的獨立磁盤上產生互 爲備份的數據。當原始數據繁忙時,可直接從鏡像拷貝中讀取數據,因此RAID 1可以提高讀取性能。RAID 1是磁盤陣列中單位成本最高的,但提供了很高的數據安全性和可用性。當一個磁盤失效時,系統可以自動切換到鏡像磁盤上讀寫,而不需要重組失效的數據。

RAID 0+1: 也被稱爲RAID 10標準,實際是將RAID 0和RAID 1標準結合的產物,在連續地以位或字節爲單位分割數據並且並行讀/寫多個磁盤的同時,爲每一塊磁盤作磁盤鏡像進行冗餘。它的優點是同時擁有RAID 0的超凡速度和RAID 1的數據高可靠性,但是CPU佔用率同樣也更高,而且磁盤的利用率比較低。

RAID 2:將數據條塊化地分佈於不同的硬盤上,條塊單位爲位或字節,並使用稱爲“加重平均糾錯碼(海明碼)”的編碼技術來提供錯誤檢查及恢復。這種編碼技術需要多個磁盤存放檢查及恢復信息,使得RAID 2技術實施更復雜,因此在商業環境中很少使用。

RAID 3:它同RAID 2非常類似,都是將數據條塊化分佈於不同的硬盤上,區別在於RAID 3使用簡單的奇偶校驗,並用單塊磁盤存放奇偶校驗信息。如果一塊磁盤失效,奇偶盤及其他數據盤可以重新產生數據;如果奇偶盤失效則不影響數據使用。RAID 3對於大量的連續數據可提供很好的傳輸率,但對於隨機數據來說,奇偶盤會成爲寫操作的瓶頸。

RAID 4:RAID 4同樣也將數據條塊化並分佈於不同的磁盤上,但條塊單位爲塊或記錄。RAID 4使用一塊磁盤作爲奇偶校驗盤,每次寫操作都需要訪問奇偶盤,這時奇偶校驗盤會成爲寫操作的瓶頸,因此RAID 4在商業環境中也很少使用。

RAID 5:RAID 5不單獨指定的奇偶盤,而是在所有磁盤上交叉地存取數據及奇偶校驗信息。在RAID 5上,讀/寫指針可同時對陣列設備進行操作,提供了更高的數據流量。RAID 5更適合於小數據塊和隨機讀寫的數據。

RAID 3與RAID 5相比,最主要的區別在於RAID 3每進行一次數據傳輸就需涉及到所有的陣列盤;而對於RAID 5來說,大部分數據傳輸只對一塊磁盤操作,並可進行並行操作。在RAID 5中有“寫損失”,即每一次寫操作將產生四個實際的讀/寫操作,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息。

RAID 6:與RAID 5相比,RAID 6增加了第二個獨立的奇偶校驗信息塊。兩個獨立的奇偶系統使用不同的算法,數據的可靠性非常高,即使兩塊磁盤同時失效也不會影響數據的使用。但RAID 6需要分配給奇偶校驗信息更大的磁盤空間,相對於RAID 5有更大的“寫損失”,因此“寫性能”非常差。較差的性能和複雜的實施方式使得RAID 6很少得到實際應用。

RAID 7:這是一種新的RAID標準,其自身帶有智能化實時操作系統和用於存儲管理的軟件工具,可完全獨立於主機運行,不佔用主機CPU資源。RAID 7可以看作是一種存儲計算機(Storage Computer),它與其他RAID標準有明顯區別。除了以上的各種標準,我們可以如RAID 0+1那樣結合多種RAID規範來構築所需的RAID陣列,例如RAID 5+3(RAID 53)就是一種應用較爲廣泛的陣列形式。用戶一般可以通過靈活配置磁盤陣列來獲得更加符合其要求的磁盤存儲系統。

開始時RAID方案主要針對SCSI硬盤系統,系統成本比較昂貴。1993年,HighPoint公司推出了第一款IDE-RAID控制芯片,能夠利用相對廉價的IDE硬盤來組建RAID系統,從而大大降低了RAID的“門檻”。

從此,個人用戶也開始關注這項技術,因爲硬盤是現代個人計算機中發展最爲“緩慢”和最缺少安全性的設備,而用戶存儲在其中的數據卻常常遠超計算機的本身價格。在花費相對較少的情況下,RAID技術可以使個人用戶也享受到成倍的磁盤速度提升和更高的數據安全性,現在個人電腦市場上的IDE-RAID控制芯片主要出自HighPoint和Promise公司,此外還有一部分來自AMI公司。

面向個人用戶的IDE-RAID芯片一般只提供了RAID 0、RAID 1和RAID 0+1(RAID 10)等RAID規範的支持,雖然它們在技術上無法與商用系統相提並論,但是對普通用戶來說其提供的速度提升和安全保證已經足夠了。

隨着硬盤接口傳輸率的不斷提高,IDE-RAID芯片也不斷地更新換代,芯片市場上的主流芯片已經全部支持ATA 100標準,而HighPoint公司新推出的HPT 372芯片和Promise最新的PDC20276芯片,甚至已經可以支持ATA 133標準的IDE硬盤。在主板廠商競爭加劇、個人電腦用戶要求逐漸提高的今天,在主板上板載RAID芯片的廠商已經不在少數,用戶完全可以不用購置RAID卡,直接組建自己的磁盤陣列,感受磁盤狂飆的速度。


示例

下面我們以創建RAID5爲例,演示一下在Linux系統上如何利用軟件實現RAID

首先還是創建磁盤分區,當然也可以直接用整塊磁盤

wKiom1fGOHiDhL_3AALARp-DC8A839.png-wh_50

利用磁盤分區要記得修改systemid爲fd

wKioL1fGOHqR4nKHAAIEB9EbNDw339.png-wh_50

wKiom1fGOHyxTsNcAAICf8GJa6M019.png-wh_50

利用dd命令快速創建另外三個分區

wKioL1fGOH_DrvEoAAGzOeBzluQ243.png-wh_50

同步分區並查看

wKiom1fGOIHgWOSUAAK3nXSuuCM200.png-wh_50

創建RAID5

wKiom1fGOIajQHgvAACkmfF3CX0129.png-wh_50

查看過程

wKioL1fGOInyJHfWAAFUva391nw140.png-wh_50

wKiom1fGOIrhZhx4AAEZqhbuJrU774.png-wh_50

創建成功

wKioL1fGOI3BhJxlAAJah9coAVE103.png-wh_50

blkid查看分區的信息

wKioL1fGOJGibGpBAAU8uP8u9MM015.png-wh_50

生成配置文件

wKiom1fGOJKys5n4AADRQpibhoU948.png-wh_50

格式化

wKiom1fGOJbgNxwJAAJHaaCR8-8304.png-wh_50

修改fstab設置開機自動掛載

wKioL1fGOJeCDDfxAAKDLnxOxdo554.png-wh_50

掛載並查看

wKiom1fGOJiQzgzsAAIecduXyHM010.png-wh_50

常看當前狀態

wKioL1fGOJmRcR08AAI_ElqIwoE121.png-wh_50

模擬損壞

wKioL1fGOJmyy4MqAABkFJvT20Q846.png-wh_50

備用分區頂替

wKiom1fGOJrh-q-CAADGuUy0QxE379.png-wh_50

查看頂替過程

wKiom1fGOJrjWRTwAAFX1lDjfXI553.png-wh_50

頂替完成

wKioL1fGOJuhLPoIAAFJSxaSlvI865.png-wh_50

移除損壞磁盤

wKioL1fGOJ2zVOfUAABuZe1-u7U715.png-wh_50

wKioL1fGOJ6Tlu2oAACLqZUqUmc639.png-wh_50



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章