Linux

自動掛載 MDADM 創建的 RAID 陣列和創建 RAID 設備的問題

  • March 29, 2019

我正在編寫一個腳本,該腳本會自動檢測已添加的新驅動器,以便將它們格式化並轉換為 RAID-5 陣列。我已經能夠檢測到驅動器並輕鬆格式化它們,但是在創建(以及後來破壞)RAID 設備時遇到了問題。

一旦檢測到並格式化,我將檢測到的驅動器傳遞給以下命令,如下所示:

mdadm --create ${RAID_DEVICE} --level=5 --raid-devices=${COUNT} ${DEVICES}
mkfs.ext4 ${RAID_DEVICE}
mdadm --detail --scan >> /etc/mdadm.conf

UUID=$(cat /etc/mdadm.conf | grep ${RAID_DEVICE} | awk '{print $6}')
UUID=$(echo ${UUID:5})

echo "UUID=${UUID} ${MOUNT_LOCATION} ext4 defaults 0 0" >> /etc/fstab

mount -a

現在,出於測試目的,因為我目前還沒有將用於該項目的 SATA 驅動器,所以我已將其設置為專門檢測 USB 設備,並且正在使用 3 個 USB 設備。該腳本從 mdadm.conf 中正確辨識設備的 UUID,但從mount -a腳本執行時,它表示 UUID 未被辨識為設備。${RAID_DEVICE}但是,當我用, 通常替換 UUID 時/dev/md0,它可以正確安裝設備。

此外,安裝腳本(在多次測試腳本並手動解構和解除安裝 RAID 設備後)表示 USB 設備已經是 RAID 設備的一部分。我通過執行以下命令手動嘗試在測試之間撤消設備:

umount ${MOUNT_LOCATION}
mdadm ${RAID_DEVICE} --fail ${DEVICES}
mdadm ${RAID_DEVICE} --remove ${DEVICES}
mdadm --stop ${RAID_DEVICE}
mdadm --zero-superblock ${DEVICES}

但是,在重新創建 RAID 設備時,似乎仍將這些設備視為 md0 RAID 設備的一部分。我錯過了一步嗎?--remove在停止它後嘗試呼叫/dev/md0會導致它說沒有這樣的目錄。

那麼為什麼 UUID 不能作為 RAID 設備的標識符正常工作呢?為什麼之後我似乎無法從驅動器中正確刪除 RAID 資訊?這與它們是 USB 設備有什麼關係嗎?

我感謝任何有關正確使用該mdadm工具的指導。

您要放入 fstab 的 UUID 不是陣列的 UUID,而是您在陣列上創建的文件系統的 UUID。您可以使用該blkid實用程序來查找其值。如果您有與我相同的 udev 規則,您可能會發現有一個條目/dev/disk/by-id可以通過使用數組的 uuid 來間接實現,例如:

$ sudo blkid /dev/disk/by-id/md-uuid-${UUID}
/dev/disk/by-id/md-uuid-c6a65df0:6df343e6:bd3d6cfc:1349c37c: UUID="901e8907-8f74-4300-8410-654a9410b236" TYPE="xfs"

否則,您可以執行blkid ${RAID_DEVICE}.

引用自:https://serverfault.com/questions/960520