標籤:linux 檔案系統 raid 硬體raid 軟raid
從RAID0到RAID6,不同層級的RAID在效能、冗餘、價格等方面做了不同程度的折中。組合不同層級的RAID,目的是揚長避短,產生具有優勢特性的混合RAID層級。常用的組合RAID主要有RAID10,RAID01,RAID50和RAID05.
RAID10是先做1,再做0;而RAID01則是先做0,在做1,RAID50和RAID05同理。
一、RAID10和RAID01
RAID10結合RAID1和RAID0,先鏡像,再條帶化。比如現在有6塊硬碟,其中每兩塊形成一組鏡像——RAID1,然後將3組鏡像合起來做成RAID0。RAID10的磁碟利用率是50%,它允許同組鏡像陣列裡壞一塊,但是如果一組鏡像陣列裡兩塊都壞了,那麼整個鏡像都壞了,進而整個陣列都無法工作了。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/45/BA/wKioL1PqGPvTWgFtAAFebyrgILw044.jpg" title="1.png" alt="wKioL1PqGPvTWgFtAAFebyrgILw044.jpg" />
RAID10的特性
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/45/B9/wKiom1PqGB7g8hcBAABDjmJjhtM375.png" title="2.PNG" alt="wKiom1PqGB7g8hcBAABDjmJjhtM375.png" />
RAID01則是先將6塊磁碟分成兩份,形成鏡像,每一份中的三塊磁碟做成RAID0的形式。它允許一組鏡像壞掉,但不能兩組鏡像都壞。RAID01的風險大於RAID10,因為每組陣列各壞一塊磁碟的可能性,要大於一組磁碟鏡像裡同時壞多塊磁碟的情況。因此出於安全性和易用性的考慮,RAID10使用更為廣泛。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/45/BA/wKioL1PqGV-TQB84AAB-zXXtYok182.jpg" title="3.png" alt="wKioL1PqGV-TQB84AAB-zXXtYok182.jpg" />
二、RAID50和RAID05
RAID50是RAID5和RAID0的結合,先實現RAID5,再條帶化。它和RAID10的情況非常相似,假設也是6塊磁碟,每三塊做成RAID5,一共是兩組,合起來做成RAID0。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/45/BA/wKioL1PqGk2SoxiaAAF0kctiN4A163.jpg" title="4.png" alt="wKioL1PqGk2SoxiaAAF0kctiN4A163.jpg" />
RAID50的特性
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/45/BA/wKioL1PqGofjmGyxAABfwfanu1Y064.png" title="5.PNG" alt="wKioL1PqGofjmGyxAABfwfanu1Y064.png" />
RAID50的利用率要根據盤的數量來定,比如同樣是用12塊盤做RAID50,它可以使用的方案有3*4,4*3和6*2,而做成RAID5的盤中有一塊是冗餘的,故可能產生三種不同的冗餘數量,這就導致了總共冗餘數量可能是4,3和2,從而導致了最終的利用率可能是67%,75%和83%這三種情況。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/45/B9/wKiom1PqGZyDio2xAAHd19Mn2wA312.jpg" title="6.png" alt="wKiom1PqGZyDio2xAAHd19Mn2wA312.jpg" />
三、常用RAID層級的比較
常用的RAID層級主要有 RAID0,RAID1,RAID3,RAID5和RAID10,它們之間的差異見下表:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/45/B9/wKiom1PqGhPD-J58AACZX1Fpycs945.png" title="7.PNG" alt="wKiom1PqGhPD-J58AACZX1Fpycs945.png" />
RAID層級沒有高低上下之分,它們只有專註的特性差異。
四、硬體RAID和軟RAID概述
1. 硬體RAID
硬體RAID有專門的RAID控制處理器和I/O處理晶片來處理RAID任務,不需佔用主機CPU資源。有些RAID裝置還有專門的電池來供電,以防止突然斷電造成的資料丟失。正因為有這些附加元件,所以硬體RAID非常昂貴
硬體RAID的組件是在BOIS中完成的,當作業系統安裝完成時,RAID也就裝好了,電腦會將一組RAID裝置當成一個整體,而不是單獨的幾塊硬碟。通常作業系統會將其識別為/dev/sdb或/dev/sdc等等,之所以不識別為/dev/sda是因為/dev/sda常被預留為安裝作業系統的裝置,而RAID裝置是用來存資料的。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/45/B9/wKiom1PqGkyi72nNAAA-ylDSqR8231.png" title="8.PNG" alt="wKiom1PqGkyi72nNAAA-ylDSqR8231.png" />
2. 軟體RAID
上面介紹了硬體RAID的結構,如果RAID裝置沒有RAID晶片,作業系統看到的將不再是一個整體,而是多塊單獨的磁碟。但是現在希望仍將其視為一個整體,這就需要通過軟體來類比RAID硬體功能。因此在Linux的核心中提供了一個模組,用來將多個硬體裝置群組合成一個邏輯裝置,該裝置被稱為md(Multi Devices)模組。
比如現在一個作業系統上的硬體有以下三個裝置:
/dev/sdb1 /dev/sdc1 /dev/sdd1
現在使用md模組將這三個裝置類比成一個RAID(軟RAID),於是就形成了這樣的裝置:
/dev/md0 /dev/md1 /dev/md2 ......
有多少組RAID陣列,就會出現多少組/dev/md#裝置。而這裡的0,1,2......既不是/dev/sdb1中的1,也不代表RAID層級的編號,它僅代表使用軟體類比出來的RAID裝置的編號。
md模組需要配置一些參數才能正常工作。md是核心提供的模組,故這些配置也需要針對核心來完成,和核心進行互動的介面是/proc,故配置md需要修改/proc和/sys檔案中的參數。但修改這些參數是非常困難的,好在Linux中有專門針對md設定的系統調用,人們通過這些系統調用開發了專門的RAID管理工具——mdadm(Multi Device Administrator)。通過mdadm,可以定義多個磁碟裝置,將它們組裝成一個RAID裝置,並指定RAID層級、磁碟個數、冗餘磁碟、備份磁碟等等參數。但是要注意的是,真正其作用的是md,而不是mdadm這個命令。
本文出自 “重劍無鋒 大巧不工” 部落格,請務必保留此出處http://wuyelan.blog.51cto.com/6118147/1539146