mdadm 主要命令說明模式(7種):
Assemble:加入一個以前定義的陣列
Build:創建一個沒有超級塊的陣列
Create:創建一個新的陣列,每個設備具有超級塊
Manage: 管理陣列(如添加和刪除)
Misc:允許單獨對陣列中的某個設備進行操作(如停止陣列)
Follow or Monitor:監控RAID的狀態
Grow:改變RAID的容量或陣列中的設備數目
選項:
-A, --assemble:加入一個以前定義的陣列
-B, --build:創建一個沒有超級塊的陣列(Build a legacy array without superblocks.)
-C, --create:創建一個新的陣列
-F, --follow, --monitor:選擇監控(Monitor)模式
-G, --grow:改變激活陣列的大小或形態
-I, --incremental:添加一個單獨的設備到合適的陣列,並可能啓動陣列
--auto-detect:請求內核啓動任何自動檢測到的陣列
-h, --help:幫助信息,用在以上選項後,則顯示該選項信息
--help-options:顯示更詳細的幫助
-V, --version:打印mdadm的版本信息
-v, --verbose:顯示細節
-b, --brief:較少的細節。用於 --detail 和 --examine 選項
-Q, --query:查看一個device,判斷它爲一個 md device 或是 一個 md 陣列的一部分
-D, --detail:打印一個或多個 md device 的詳細信息
-E, --examine:打印 device 上的 md superblock 的內容
-c, --config= :指定配置文件,缺省爲 /etc/mdadm.conf
-s, --scan:掃描配置文件或 /proc/mdstat以搜尋丟失的信息。配置文件/etc/mdadm.conf
-C 創建Raid (/dev/md0是我的raid名稱)
-n 磁盤陣列個數
-l raid的級別,-x hostspare,待機磁盤,
--size 指定每塊磁盤大小
--add -a : hotadd subsequent devices to the array
--remove -r : remove subsequent devices, which must not be active
--fail -f : mark subsequent devices a faulty
--set-faulty : same as --fail
--run -R : start a partially built array
--stop -S : deactivate array, releasing all resources
--readonly -o : mark array as readonly
--readwrite -w : mark array as readwrite
Options that are valid with management mode are:
--add -a : hotadd subsequent devices to the array
--remove -r : remove subsequent devices, which must not be active
--fail -f : mark subsequent devices a faulty
--set-faulty : same as --fail
--run -R : start a partially built array
--stop -S : deactivate array, releasing all resources
--readonly -o : mark array as readonly
--readwrite -w : mark array as readwrite
使用cat /proc/mdstat命令來查看一下RAID的狀態
配置完後,需mdadm -D --scan>/etc/mdadm.conf 進行配置更新
停止陣列前,需umount 執行mdadm -S /dev/mdX
重新啓動 執行 mdadm -As /dev/mdX
陣列組中移除硬盤 mdadm /dev/mdX -r /dev/sdX
陣列組中添加硬盤 mdadm /dev/mdX -a /dev/sdX
查看單個分區 mdadm -E /dev/sdX
熱備盤設置
[root@mail ~]# mdadm -C /dev/md5 -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1 mdadm: /dev/sdb1 appears to contain an ext2fs file system size=3132288K mtime=Thu Jun 13 17:39:02 2013 mdadm: /dev/sdb1 appears to be part of a raid array: level=raid5 devices=4 ctime=Thu Jun 13 19:41:15 2013 mdadm: /dev/sdc1 appears to contain an ext2fs file system size=3132288K mtime=Thu Jun 13 17:39:02 2013 mdadm: /dev/sdc1 appears to be part of a raid array: level=raid5 devices=4 ctime=Thu Jun 13 19:41:15 2013 mdadm: /dev/sdd1 appears to be part of a raid array: level=raid5 devices=4 ctime=Thu Jun 13 19:41:15 2013 mdadm: /dev/sde1 appears to be part of a raid array: level=raid5 devices=4 ctime=Thu Jun 13 19:41:15 2013 mdadm: largest drive (/dev/sdb1) exceed size (1044096K) by more than 1% Continue creating array? yes mdadm: array /dev/md5 started. [root@mail ~]# mdadm -C /dev/md1 -l 1 -n 2 /dev/sd{f,g}1 mdadm: /dev/sdf1 appears to contain an ext2fs file system size=2096448K mtime=Thu Jan 1 08:00:00 1970 mdadm: /dev/sdf1 appears to be part of a raid array: level=raid1 devices=2 ctime=Thu Jun 13 19:41:46 2013 mdadm: /dev/sdg1 appears to contain an ext2fs file system size=2096448K mtime=Thu Jan 1 08:00:00 1970 mdadm: /dev/sdg1 appears to be part of a raid array: level=raid1 devices=2 ctime=Thu Jun 13 19:41:46 2013 mdadm: largest drive (/dev/sdg1) exceed size (2096384K) by more than 1% Continue creating array? yes mdadm: array /dev/md1 started. [root@mail ~]# mdadm -Ds >> /etc/mdadm.conf [root@mail ~]# cat /etc/mdadm.conf ARRAY /dev/md5 level=raid5 num-devices=3 metadata=0.90 spares=1 UUID=1fb23f21:7be94495:e13cb744:a208b440 ARRAY /dev/md1 level=raid1 num-devices=2 metadata=0.90 UUID=9ae7eff0:81a98310:014c7156:78c847c7 [root@mail ~]# mdadm -Ds /dev/md5 /dev/md5: Version : 0.90 Creation Time : Thu Jun 13 21:03:51 2013 Raid Level : raid5 Array Size : 2088192 (2039.59 MiB 2138.31 MB) Used Dev Size : 1044096 (1019.80 MiB 1069.15 MB) Raid Devices : 3 Total Devices : 4 Preferred Minor : 5 Persistence : Superblock is persistent Update Time : Thu Jun 13 21:04:17 2013 State : clean Active Devices : 3 Working Devices : 4 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 64K UUID : 1fb23f21:7be94495:e13cb744:a208b440 Events : 0.4 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 33 1 active sync /dev/sdc1 2 8 49 2 active sync /dev/sdd1 3 8 65 - spare /dev/sde1 [root@mail ~]# mdadm /dev/md5 -f /dev/sdb1 mdadm: set /dev/sdb1 faulty in /dev/md5 [root@mail ~]# mdadm -Ds /dev/md5 /dev/md5: Version : 0.90 Creation Time : Thu Jun 13 21:03:51 2013 Raid Level : raid5 Array Size : 2088192 (2039.59 MiB 2138.31 MB) Used Dev Size : 1044096 (1019.80 MiB 1069.15 MB) Raid Devices : 3 Total Devices : 4 Preferred Minor : 5 Persistence : Superblock is persistent Update Time : Thu Jun 13 21:08:03 2013 State : clean, degraded, recovering Active Devices : 2 Working Devices : 3 Failed Devices : 1 Spare Devices : 1 Layout : left-symmetric Chunk Size : 64K Rebuild Status : 10% complete UUID : 1fb23f21:7be94495:e13cb744:a208b440 Events : 0.6 Number Major Minor RaidDevice State 3 8 65 0 spare rebuilding /dev/sde1 1 8 33 1 active sync /dev/sdc1 2 8 49 2 active sync /dev/sdd1 4 8 17 - faulty spare /dev/sdb1 [root@mail init.d]# cat /etc/mdadm.conf MAILADDR root@localhost //當一個磁盤壞了的話,就會發送郵件 ARRAY /dev/md5 level=raid5 num-devices=3 metadata=0.90 spares=1 UUID=1fb23f21:7be94495:e13cb744:a208b440 auto=yes spare-group=group1 ARRAY /dev/md1 level=raid1 num-devices=2 metadata=0.90 UUID=9ae7eff0:81a98310:014c7156:78c847c7 auto=yes spare-group=group1 [root@mail ~]# service mdmonitor start //啓動mdmonitor服務 Starting mdmonitor: [ OK ] 當md1的一個盤壞了的話,md5的磁盤的空閒盤就會飄逸過來
6個問題
1. Soft Raid 是否一定需要 mdadm.conf 的配置文件才能啓動(也就是重啓後怎麼自動啓動Raid)
答案是,不一定.
如下rc.sysinit,是Centos的系統,如果有mdadm.conf才能啓動raid.
1 2 3 | if [ -f /etc/mdadm .conf ]; then
/sbin/mdadm -A -s fi |
但是,你可以沒有配置文件,在啓動後,用下面的方法啓動
1 | mdadm -A /dev/md0 /dev/sd [bcde] |
另外,如果你的Soft Raid是在系統安裝時建的,那麼沒有mdadm.conf也能啓動raid.爲什麼啦,看日誌
kernel: md: Autodetecting RAID arrays.
在內核的編譯中有這麼一句"Autodetect RAID arrays during kernel boot",所以會自動的加載.所以重起系統後raid都需要有配置文件.但這個必須文件類型爲fd.也就是Linux raid auto.
2. Soft Raid 的本身的信息是記錄在什麼地方?
這個是建議在Raid的成員中,每個硬盤有一個叫超級塊(zero-superblock )的東西.記錄在這個上面.所以如果給raid成員恢復成普通硬盤時,記的刪除zero-superblock.
所以刪除RAID中的硬盤的方法如下
1 2 3 | mdadm --stop /dev/md0 mdadm --remove /dev/md0 mdadm --zero-superblock /dev/sda |
3. 重裝系統後, raid 是否還能使用?
答案一樣是不一定
當你給系統也做進來,當然那個有系統的不行,但你只做數據分區,基本都是沒有問題的.只要你重裝系統後,使用原來的啓動命令(配置文件也行),來啓動就可以了.
1 2 | mdadm -A /dev/md0 /dev/sd [bcde] mdadm -As /dev/md0 (有配置文件時) |
4. 軟 Raid 中,分區表中的分區類型是否一定要修改成 Linux raid auto?
答案一樣是不一定
在安裝系統時選擇raid時,一定要轉成raid的分區類型,但如果安裝完系統後自己使用命令來建,就不用.但最好是.
5. 是否一定要分區,才能建 Soft Raid?
答案一樣是不一定
和上面一樣,分爲安裝系統時建soft raid,和安裝後在建raid.在安裝系統時,一定是在分區上建的,但安裝完系統後手工建的raid,沒有分區也行.但最好分一下修改成linux raid auto,這樣可以不需要配置文件也能啓動
6. 在沒有同步完(rebuilding)成前是否能重起
在同步rebuilding的過程中,重起是沒有問題的,重起完,會從上次同步的地方起開始同步