使用mdadm管理RAID陣列
mdadm 是多磁盤和設備管理 的縮寫。它是一個命令行工具,可用于管理 Linux 上的軟件 RAID 陣列。本文概述了使用它的基礎知識。
以下 5 個命令是你使用 mdadm 的基礎功能:
- 創(chuàng)建 RAID 陣列:
mdadm --create /dev/md/test --homehost=any --metadata=1.0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 - 組合(并啟動)RAID 陣列:
mdadm --assemble /dev/md/test /dev/sda1 /dev/sdb1 - 停止 RAID 陣列:
mdadm --stop /dev/md/test - 刪除 RAID 陣列:
mdadm --zero-superblock /dev/sda1 /dev/sdb1 - 檢查所有已組合的 RAID 陣列的狀態(tài):
cat /proc/mdstat
功能說明
mdadm –create
上面的創(chuàng)建命令除了 -create 參數(shù)自身和設備名之外,還包括了四個參數(shù):
1、–homehost:
默認情況下,mdadm 將你的計算機名保存為 RAID 陣列的屬性。如果你的計算機名與存儲的名稱不匹配,則陣列將不會自動組合。此功能在共享硬盤的服務器群集中很有用,因為如果多個服務器同時嘗試訪問同一驅動器,通常會發(fā)生文件系統(tǒng)損壞。名稱 any 是保留字段,并禁用 -homehost 限制。
2、 –metadata:
-mdadm 保留每個 RAID 設備的一小部分空間,以存儲有關 RAID 陣列本身的信息。 -metadata 參數(shù)指定信息的格式和位置。1.0 表示使用版本 1 格式,并將元數(shù)據(jù)存儲在設備的末尾。
3、–level:
-level 參數(shù)指定數(shù)據(jù)應如何在底層設備之間分布。級別 1 表示每個設備應包含所有數(shù)據(jù)的完整副本。此級別也稱為磁盤鏡像。
4、–raid-devices:
-raid-devices 參數(shù)指定將用于創(chuàng)建 RAID 陣列的設備數(shù)。
通過將 -level=1(鏡像)與 -metadata=1.0 (將元數(shù)據(jù)存儲在設備末尾)結合使用,可以創(chuàng)建一個 RAID1 陣列,如果不通過 mdadm 驅動訪問,那么它的底層設備會正常顯示。這在災難恢復的情況下很有用,因為即使新系統(tǒng)不支持 mdadm 陣列,你也可以訪問該設備。如果程序需要在 mdadm 可用之前以只讀訪問底層設備時也很有用。例如,計算機中的 UEFI 固件可能需要在啟動 mdadm 之前從 ESP 讀取引導加載程序。
mdadm –assemble
如果成員設備丟失或損壞,上面的組合命令將會失敗。要強制 RAID 陣列在其中一個成員丟失時進行組合并啟動,請使用以下命令:
# mdadm --assemble --run /dev/md/test /dev/sda1
其他重要說明
避免直接寫入底層是 RAID1 的設備。這導致設備不同步,并且 mdadm 不會知道它們不同步。如果你訪問了在其他地方被修改了設備的某個 RAID1 陣列,則可能導致文件系統(tǒng)損壞。如果你在其他地方修改 RAID1 設備并需要強制陣列重新同步,請從要覆蓋的設備中刪除 mdadm 元數(shù)據(jù),然后將其重新添加到陣列,如下所示:
# mdadm --zero-superblock /dev/sdb1# mdadm --assemble --run /dev/md/test /dev/sda1# mdadm /dev/md/test --add /dev/sdb1
以上用 sda1 的內(nèi)容完全覆蓋 sdb1 的內(nèi)容。
要指定在計算機啟動時自動激活的 RAID 陣列,請創(chuàng)建 /etc/mdadm.conf 配置。
有關詳細信息,請查看手冊頁:
$ man mdadm$ man mdadm.conf
本系列的下一篇文章將展示如何將現(xiàn)有的單磁盤 Linux 系統(tǒng)變?yōu)殓R像磁盤安裝,這意味著即使其中一個硬盤突然停止工作,系統(tǒng)仍將繼續(xù)運行!




















