安裝程式實現軟件RAID代替硬件RAID的方法,今天再進一步談談手動建立軟RAID和平常維護的方法。
mdadm使用的也是md驅動,因爲其擁有多種模式,並且單一工具,不依賴全部設置文件,是替代raidtools的好工具。目前幾乎全部發行版本使用的都是該工具。
1、安裝和編譯
×××:
http://www.cse.unsw.edu.au/~neilb/source/mdadm/
編譯:
tar xzvf ./mdadm-1.6.0.tgz
cd mdadm-1.6.0
make install
rpm安裝:
rpm -ivh mdadm-1.6.0-3.rpm
※源碼最新版本是2.5,因爲我使用的1.6.0的rpm包,因此仍是以該版本爲例。
2、模式
mdadm 有6種模式,前兩種模式:Create、Assemble用於設置和激活陣列;Manage模式用於操做在活動陣列中的設備;Follow或 Monitor模式容許管理員對活動陣列設置事件提醒和動做;Build模式用於對舊陣列使用舊版本的md驅動;更有Grow模式能擴展陣列;剩下的是 Misc模式,他包括對多種內部的任務和沒有指定特別模式的一些操做。
系統平臺: 紅旗 DC Server for x86
硬件平臺: Intel Xeon 3.0G DP、1個系統硬盤,3個組成陣列磁盤
3、部署
一、準備磁盤
只能使用Sofware RAID格式的磁盤才能組成陣列,因此,首先咱們要把作好磁盤格式。正如上面提到的,除了系統盤sda外,咱們須要對sdb、sdc、sdd進行操做
a)對sdb進行分區
fdisk /dev/sdb
分區前狀態:
n,劃分區:
t,修改分區格式爲fd:
w,保存:
b)一樣的方法,對sdc、sdd進行分區和保存
最後狀態以下:
二、建立陣列
mdadm能支持LINEAR、RAID0 (striping)、 RAID1(mirroring)、 RAID四、RAID五、RAID6和MULTIPATH的陣列模式。
建立命令格式以下:
mdadm [mode] [options]
例如:建立一個RAID 0設備:
mdadm --create --verbose /dev/md0 --level=0 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
--level表示建立的陣列模式,--raid-devices表示參和陣列的磁盤數量。
也能這樣表達,意思是相同的:
mdadm -Cv /dev/md0 -l0 -n3 /dev/sd[bcd]1
還能增長-c128參數,指定chunk size爲128K(默認64K)
三、設置文件
mdadm不採用/etc/mdadm.conf做爲主要設置文件,他能徹底不依賴該文件而不會影響陣列的正常工做。
該設置文件的主要做用是方便跟蹤軟RAID的設置。對該設置文件進行設置是有好處的,但不是必須的。推薦對該文件進行設置。
一般能這樣來創建:
echo DEVICE /dev/sd[bcd]1 > /etc/mdadm.conf
mdadm -Ds >> /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf
四、格式化陣列
後續,只要你把/dev/md0做爲一個獨立的設備來進行操做便可:
mkfs.ext3 /dev/md0
mkdir /mnt/test
mount /dev/md0 /mnt/test
五、若要開機自動掛載,請加入/etc/fstab中:
/dev/md0 /mnt/tes auto defaults 0 0
4、監視和管理
mdadm能很是方便的對陣列進行監視和管理的操做,也包括了中止和啓動陣列等經常使用維護。
一、查看
cat /proc/mdstat
能查看全部使用md驅動的陣列的狀態:
mdadm --detail /dev/md0
查看指定陣列的周詳信息(-D):
二、中止
mdadm -S /dev/md0
中止指定陣列,並釋放磁盤(--stop):
※注意:中止後,原組成陣列的磁盤將處於空閒狀態,一旦吾操做這些磁盤,將不能再重啓激活原陣列。
三、啓動
mdadm -A /dev/md0 /dev/sd[bcd]1
啓動指定的陣列,也可理解爲講一個新陣列裝配到系統中(--assemble):
若你已在上面設置了/etc/mdadm.conf文件,也可用-s查找:
mdadm -As /dev/md0
四、測試
若是你沒有設置/etc/mdadm.conf文件,並且又忘了某磁盤屬於那個陣列,則你能使用檢測:(--examine)
mdadm -E /dev/sdb1
得到UUID後,也能這樣激活陣列:
mdadm -Av /dev/md0 --uuid=8ba81579:e20fb0e8:e040da0e:f0b3fec8 /dev/sd*
能看到,只要磁盤沒有損壞,這樣裝配是很是方便的:
五、添加及刪除磁盤
mdadm能在Manage模式下,對運行中的陣列進行添加及刪除磁盤。經常使用於標識failed磁盤,增長spare(冗餘)磁盤,及替換磁盤等。
例如:原來狀態是:
則能使用--fail指定壞磁盤,並--remove走:
mdadm /dev/md0 --fail /dev/sdc1 --remove /dev/sdc1
等待同步完成後,結果:
※須要注意的是,對於某些陣列模式,如RAID0等,是不能用--fail和--remove的。
增長一個新的陣列用磁盤
mdadm /dev/md0 --add /dev/sdc1
※須要注意的是,對於某些陣列模式,如RAID0等,是不能用--add的。
六、監視
在Follow或Monitor狀態下,能使用mdadm對陣列進行監視,例如當陣列出現問題的時候,發送郵件給管理員;或當磁盤出現問題的時候進行自動的磁盤替換。
nohup mdadm --monitor --mail=sysadmin --delay=300 /dev/md0 &
上述定義:沒300秒監視一次,當陣列出現錯誤,會發送郵件給sysadmin用戶。因爲monitor啓動後是不會自動退出的,因此須要加上nohup和&,使之持續在後臺運行。
在Follow模式下,是容許共享冗餘磁盤的。
例如,咱們有兩個陣列:/dev/md0、/dev/md1,而/dev/md0裏面有一個spare磁盤。當咱們在/etc/mdadm.conf中定義相似:
DEVICE /dev/sd*
ARRAY /dev/md0 level=raid1 num-devices=3 spare-group=database
UUID=410a299e:4cdd535e:169d3df4:48b7144a
ARRAY /dev/md1 level=raid1 num-device=2 spare-group=database
UUID=59b6e564:739d4d28:ae0aa308:71147fe7
也就是定義一個spare-group組。並運行上面的monitor模式命令。這樣,當組成/dev/md1的其中一個磁盤出現問題的時候,mdadm會自動從/dev/md0上移走spare磁盤,並加入/dev/md1中,而沒必要人工干預。(請注意,能實現這樣工做的,只有在該陣列支持冗餘的狀況下才能實現,如raid一、raid5等。而對於raid0等陣列模式,是無效的)
5、其餘
一、增長spare磁盤
能經過在建立的時候指定冗餘磁盤:
mdadm -Cv /dev/md0 -l1 -n2 -x1 /dev/sd[bcd]1
-x(--spare-devices)參數用於指定冗餘磁盤的數量,結果:
另外,對於full的陣列(例如已有2個磁盤的RAID1),則直接使用-add參數,mdadm會自動把冗餘的磁盤做爲spare disk。
二、刪除陣列
mdadm -S /dev/md0
或
rm /dev/md0
修改/etc/mdadm.conf、/etc/fstab等設置文件,把相關的地方去掉;
最後,用fdisk對磁盤進行從新分區便可。
三、重建陣列
咱們也能在沒有fdisk的狀況下把使用過,但目前沒有屬於全部陣列的磁盤劃分到新陣列中:
確認後便可。ide