RAIDlinux
概述:將多塊磁盤組合成一塊邏輯磁盤,從而提升讀寫性能與安全性。
1. 實現方式
軟件實現:經過主機的RAID軟件實現,易於實施可是性能有限
硬件實現:RAID控制卡,基於主機的硬件RAID技術,將硬盤鏈接到控制卡上控制卡和硬盤之間經過PCI總線交互;外部RAID控制卡,基於存儲陣列的高級硬件RAID技術,想主機提供一個硬盤的接口界面,是主機看到一個普通的存儲卷,主機經過它支持的協議對捲進行管理。
2. 基本概念
條帶(strip):磁盤上一塊由若干地址連續的磁盤塊構成的,大小固定的區域
分條(stripe):位於RAID集上的全部磁盤相同位置的條帶(strip)組成的存儲區域
條帶尺寸:也叫分條深度,描述了構成條帶的磁盤塊的數目
分條尺寸:條帶尺寸與RAID集中硬盤數量的乘積,即條帶的容量。
數據鏡像:將同一數據寫入兩塊不一樣的磁盤,從而產生該數據的兩個副本。
奇偶校驗:對寫入的數據進行運算獲得一個校驗值用於數據恢復
3. RAID級別
RAID0
無容錯的條帶陣列。讀寫性能很好,可是無安全性可言。一個文件塊壞了真個檔案文件就失效了,一個塊磁盤壞了整個RAID集就失效了。建議使用相同大小的磁盤組建。若是1塊100G的與1塊200G的硬盤組建的話,前200G的數據是等量分別存儲在兩塊硬盤上的,後100G容量只能存在200G容量的那塊硬盤上。
軟件RAID能夠手工制定分條尺寸,硬件RAID由廠商設定分條尺寸
RAID1
磁盤鏡像。讀性能還能夠,寫性能相對較差,安全性很好。最好使用相同大小相同品牌的兩塊硬盤,若是容量不等的話,以容量較小的那塊爲準。寫入數據被I/O總線複製兩2份寫到各個磁盤,若是使用磁盤陣列RAID卡的話會複製一份而不用I/O總線。
RAID3
帶專用檢驗磁盤的並行訪問陣列。數據讀寫以整個條帶爲單位進行,從而全部磁盤可以併發的執行操做,而不存在更新同一條帶中某些存儲帶的部分寫操做(這樣存在一些磁盤空間浪費),即任何數據的讀寫操做都要訪問整個條帶。能夠這麼去理解,給RAID0加一個獨立的校驗磁盤。RAID3爲傳輸大量數據提供了很高的帶寬,於是經常使用於視頻流服務等設計大量數據數據訪問的場景中。
RAID4與RAID3惟一的差異就是支持數據磁盤的獨立訪問,也就是說某個數據單元能夠從單塊磁盤中讀寫而無需訪問整個條帶。RAID5相對於RAID4來講不一樣點在於它將校驗值分佈存儲在全部的磁盤上,這樣就避免了校驗磁盤成爲寫性能的瓶頸。RAID6與RAID5也是基本相似,不一樣的地方是引入了第二個校驗值,這樣當兩塊磁盤同時失效它仍然能夠恢復,所以最少須要四塊磁盤來組建。
RAID0+1與RAID1+0
結合RAID0的性能優點和RAID1的安全優點。
RAID0+1,將全部磁盤分紅兩個小組,小組內部作RAID0,小組之間作RAID1;RAID1+0,將全部磁盤兩個一組分開,小組內部作RAID1,小組之間作RAID0。
至少須要四塊磁盤才能組建。
4. 在linux上實現軟RAID
在linux上實現軟RAID只須要使用一個命令:mdadm
1. 檢測是否加載了mdadm
cat /proc/mdstat #還能夠用cat /proc/devices | grep md或者lsmld | grep md
2. 磁盤格式 FD
若是MD編譯進入了內核,那麼當內核調用MD驅動時會自動查找分區格式爲FD格式的磁盤。因此通常用fdisk將MD磁盤設置爲FD格式。
W保存退出後,使用partprobe命令強制內核刷新分區表,使得剛纔建立的分區生效可用。
3. 建立RAID
mdadm --create --auto=yes /dev/md0 --level=n --raid-devices=n1 --spare-devices=n3 /dev/sdb1 /dev/sdc1 /dev/sdd……
--auto=yes :決定創建後面接的軟件磁盤陣列裝置,即/dev/md0
--raid-devices :使用n1個磁盤做爲磁盤陣列
--spare-devices :使用n2個磁盤作熱備盤
--level :定義RAID級別,這裏也能夠直接寫,如-l0,-l5
最後跟的幾個磁盤是作RAID的磁盤,注意,也能夠是分區。可是跟分區的話其實作RAID並無什麼意義,一個分區壞了還能夠修復,一塊磁盤壞了就不能發揮RAID在安全上的優點。因此本例中限於實驗條件僅僅做爲一個演示。如/dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb5,或寫做/dev/sdb{1,2,3,5,}
4. 檢驗
cat /proc/mdstat
這條命令能夠查看大概的信息,陣列級別,磁盤對應號碼,塊大小等。
詳細信息可使用mdadm --detail /dev/md0。從這裏能夠看見RAID磁盤數,熱
備盤數,UUID,磁盤狀態等信息。
5. 建立文件系統並掛載
mkfs.ext3 /dev/md0
mount /dev/md0 /mnt/raid
6. 管理磁盤陣列
添加磁盤:mdadm --manage /dev/md0 --add /dev/sdb8 #新添加的磁盤的磁盤會成爲熱備盤
刪除磁盤:mdadm --manage /dev/md0 --remove /dev/sdb1
設置錯誤磁盤:mdadm --manage /dev/md0 --fail /dev/sdb2 #設置一個磁盤錯誤而後能夠換下這個磁盤
7. 開機自啓動並掛載RAID
編輯/etc/fstab文件
8. 關閉軟RAID
直接關閉:mdadm –stop /dev/md0