mdadm -- 設定RAID
mdadm7種模式
* Assemble:加入一個以前定義的陣列
* Build:創建一個沒有超級塊的陣列
* Create:創建一個新的陣列,每個設備具有超級塊
* Manage: 管理陣列(如添加和刪除)
* Misc:允許單獨對陣列中的某個設備進行操作(如停止陣列)
* Follow or Monitor:監控RAID的狀態
* Grow:改變RAID的容量或陣列中的設備數目
建立 RAID 0裝置
在/etc/mdadm.conf中最後面增加以下兩行
DEVICE /dev/sd[ab]1
ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1
接著輸入
mdadm -C /dev/md0 --level=raid0 --raid-devices=2 /dev/sda1 /dev/sdb1 Continue creating array? yes mdadm: array /dev/md0 started.
淡藍色字為系統顯示訊息
增加硬碟"sdc1"進入陣列中
mdadm --add /dev/md0 dev/sdc1
或是
mdadm –manage /dev/md0 –add /dev/sdc1
新建 RAID 裝置的另一種寫法
mdadm –create /dev/md0 –chunk=32 –level=0 –raid-devices=4 /dev/sd[ab]1
rebuild 一個 RAID
mdadm –build /dev/md0 –chunk=32 –level=0 –raid-devices=4 /dev/hd[ab]1
chunk-size是指寫進一個partition的大小,
例如RAID 0中把一個file同時寫進兩個或以上partition時,
會把file分成多大寫進其中一個partition
(系統記錄在/proc/mdstat)
檢視陣列細資訊
mdadm --detail /dev/md1
用mdadm -Ds來得到mdadm.conf文件需要的信息[1]
mdadm -Ds
過命令生成這個配置文件 mdadm.conf
mdadm --detail --scan > /etc/mdadm.conf用此方法生成的內容並不符合所規定的格式,須手動更正
檢視陣列運作情形
cat /proc/mdadstat
當開機找不到RAID時
sdb1為原本陣列中任一磁區
mdadm --examine /dev/sdb1
系統會列出"sdb1"所加入的RAID 資訊
包括"Version"、"UUID"、"Raid Level"、"Raid Devices"
在 /etc/mdadm/mdadm.conf 中, 加上 RAID 的設定如下:
ARRAY /dev/md0 level=raid0 num-devices=2 metadata=00.90 UUID=****
level= "Raid Level"
num-devices= "Raid Devices"
UUID= "UUID"
metadata= "Version"
因應系統開啟時可能會找不到RAID,而沒有自動啟動
mdadm --detail -s
mdadm: metadata format 00.90 unknown, ignored. ARRAY /dev/md0 level=raid0 num-devices=2metadata=>00.90UUID=***
將此系統訊息備份起來
清除已經建立的Raid記錄資料,重新開始
mdadm -C /dev/md0 -l5 -n3 /dev/sd{a,b,c}1 --assume-clean注意,如果沒有使用--assume-clean系統建立陣列後,會自動重建原有的內容!若要全新來過,一定要加此指令!
解除RAID裝置
mdadm -S /dev/md0
重新啟用Raid裝置
mdadm -A /dev/md0 /dev/sd[ab]1
使用配置檔中的設定啟動Raid
mdadm -As /dev/md0
做RAID "1+0" 的啟動
mdadm -As /dev/md0
mdadm -As /dev/md1
mdadm -A /dev/md2 /dev/md{0,1}
建立RAID 1
mdadm -Cv --level=1 /dev/md0 -n 2 /dev/hdc8 /dev/hdc9 -x1 /dev/hdc10
-x:指定備用的硬碟,當其中一個毀損時會自動備援
建立RAID 5
mdadm -C -l 5 /dev/md0 -n 3 /dev/hdc[123] -x 1 /dev/hdc4
可加入-c128的參數,代表chunk-size為128:可以增加raid的效能,
由於是軟體陣列所以是使用系統主記憶體來進行 chunk,
這個數值設大一點雖然對磁碟陣列效能有幫助,
但卻會耗掉系統資源,建議使用預設值就好了
更改磁碟陣列編號
mdadm -S /dev/md0 mdadm -A -U super-minor -m 6 /dev/md1
自動偵測所有磁碟陣列
mdadm -Es > /tmp/mdtmp mdadm -Asc /tmp/mdtmp rm -f /tmp/mdtmp
標記/dev/sda1損壞
mdadm /dev/md0 -f /dev/sda1
測試/dev/hdc9壞掉時,將/dev/hdc9標記為已損壞的設備
移除損壞的設備
mdadm /dev/md0 --remove /dev/sda1
查看當前陣列狀態[1]
more /proc/mdstat
Personalities : [raid5]
md0 : active raid5 sdd1[2] sde1[3] sdc1[1] sdb1[4](F)
75469842 blocks level 5, 128k chunk, algorithm 2 [3/2] [_UU]
[=>...................] recovery = 8.9% (3358407/37734912) finish=1.6min speed=9382K/sec
unused devices:
因為有備份設備,所以當陣列中出現設備損壞時,陣列能夠在短時間內實現重構和 資料的恢復。從當前的狀態可以看出,陣列正在重構,且運行在降級模式, sdb1[4]的後面已經標上了(F),活動設備數也降為2個。
清除磁碟陣列資料
mdadm --zero-superblock /dev/sda1
監控RAID
mdadm --monitor --mail=eric4ever@localhost --delay=300 /dev/md0
或是
nohup mdadm --monitor --mail=eric4ever@localhost --delay=300 /dev/md0 &
參考網站
[1][茫茫網海中的冷日,使用 mdadm 建立 RAID]
[2][Tommy碎碎念]
[3][鳥哥的Linux私房菜,Quota, RAID, LVM]
0 意見:
張貼留言