軟件raid配置

轉自:http://opkeep.com/system/linux/linux_raid.html

安裝程序實現軟件RAID代替硬件RAID的方法,今天再進一步談談手動創建軟RAID和日常維護的方法。
mdadm使用的也是md驅動,由於其擁有多種模式,而且單一工具,不依賴任何配置文件,是替代raidtools的好工具。目前幾乎所有發行版本使用的都是該工具。

一、安裝和編譯
源碼下載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包,所以還是以該版本爲例。

二、模式
mdadm有6種模式,前兩種模式:Create、Assemble用於配置和激活陣列;Manage模式用於操作在活動陣列中的設備;Follow或Monitor模式允許管理員對活動陣列配置事件提醒和動作;Build模式用於對舊陣列使用舊版本的md驅動;還有Grow模式可以擴展陣列;剩下的是Misc模式,它包括對多種內部的任務和沒有指定特殊模式的一些操作。

系統平臺: 紅旗 DC Server for x86
硬件平臺: Intel Xeon 3.0G DP、1個系統硬盤,3個組成陣列磁盤

三、部署
1、準備磁盤
只能使用Sofware RAID格式的磁盤才能組成陣列,所以,首先我們要把做好磁盤格式。正如上面提到的,除了系統盤sda外,我們需要對sdb、sdc、sdd進行操作
a)對sdb進行分區
fdisk /dev/sdb

點擊在新窗口中瀏覽此圖片

分區前狀態:

點擊在新窗口中瀏覽此圖片
n,劃分區:

點擊在新窗口中瀏覽此圖片
t,修改分區格式爲fd:

點擊在新窗口中瀏覽此圖片
w,保存:

點擊在新窗口中瀏覽此圖片
b)同樣的方法,對sdc、sdd進行分區和保存
最後狀態如下:
點擊在新窗口中瀏覽此圖片

2、創建陣列
mdadm可以支持LINEAR、RAID0 (striping)、 RAID1(mirroring)、 RAID4、RAID5、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)

3、配置文件
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

4、格式化陣列
後續,只要你把/dev/md0作爲一個單獨的設備來進行操作即可:
mkfs.ext3 /dev/md0
mkdir /mnt/test
mount /dev/md0 /mnt/test
5、若要開機自動掛載,請加入/etc/fstab中:
/dev/md0 /mnt/tes auto defaults 0 0
四、監控和管理
mdadm可以非常方便的對陣列進行監控和管理的操作,也包括了停止和啓動陣列等常用維護。
1、查看

cat /proc/mdstat

可以查看所有使用md驅動的陣列的狀態:
點擊在新窗口中瀏覽此圖片
mdadm –detail /dev/md0
查看指定陣列的詳細信息(-D):
點擊在新窗口中瀏覽此圖片
2、停止

mdadm -S /dev/md0

停止指定陣列,並釋放磁盤(–stop):
點擊在新窗口中瀏覽此圖片
※注意:停止後,原組成陣列的磁盤將處於空閒狀態,一旦吾操作這些磁盤,將不能再重啓激活原陣列。
3、啓動

mdadm -A /dev/md0 /dev/sd[bcd]1

啓動指定的陣列,也可理解爲講一個新陣列裝配到系統中(–assemble):
點擊在新窗口中瀏覽此圖片
若你已經在上面配置了/etc/mdadm.conf文件,也可用-s查找:

mdadm -As /dev/md0

點擊在新窗口中瀏覽此圖片
4、測試
如果你沒有配置/etc/mdadm.conf文件,而且又忘了某磁盤屬於那個陣列,則你可以使用檢測:(–examine)

mdadm -E /dev/sdb1

點擊在新窗口中瀏覽此圖片
獲得UUID後,也可以這樣激活陣列:

mdadm -Av /dev/md0 –uuid=8ba81579:e20fb0e8:e040da0e:f0b3fec8 /dev/sd*

可以看到,只要磁盤沒有損壞,這樣裝配是非常方便的:
點擊在新窗口中瀏覽此圖片
5、添加及刪除磁盤
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的。
6、監控

在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中,而不需要人工干預。(請注意,能實現這樣工作的,只有在該陣列支持冗餘的情況下才能實現,如raid1、raid5等。而對於raid0等陣列模式,是無效的)

五、其他
1、增加spare磁盤
可以通過在創建的時候指定冗餘磁盤:

mdadm -Cv /dev/md0 -l1 -n2 -x1 /dev/sd[bcd]1

-x(–spare-devices)參數用於指定冗餘磁盤的數量,結果:
點擊在新窗口中瀏覽此圖片
另外,對於full的陣列(例如已經有2個磁盤的RAID1),則直接使用-add參數,mdadm會自動把冗餘的磁盤作爲spare disk。
2、刪除陣列

mdadm -S /dev/md0

rm /dev/md0

修改/etc/mdadm.conf、/etc/fstab等配置文件,把相關的地方去掉;
最後,用fdisk對磁盤進行重新分區即可。
3、重建陣列
我們也可以在沒有fdisk的情況下把使用過,但目前沒有屬於任何陣列的磁盤劃分到新陣列中:
點擊在新窗口中瀏覽此圖片
確認後即可。

發佈了35 篇原創文章 · 獲贊 4 · 訪問量 30萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章