Я работаю над сценарием, который автоматически определяет новые добавленные диски, чтобы их можно было отформатировать и превратить в массив 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-устройства. Скрипт правильно определяет UUID устройства из mdadm.conf, но при запуске mount -a
из скрипта сказано, что UUID не распознается как устройство. Однако, когда я заменяю UUID на ${RAID_DEVICE}
, обычно /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 кажется, что устройства все еще являются частью устройства RAID md0. Я пропустил шаг? Пытаюсь позвонить --remove
на /dev/md0
после остановки он говорит, что такого каталога нет.
Так почему же UUID не работает правильно как идентификатор устройства RAID? И почему я не могу после этого должным образом удалить информацию RAID с дисков? Имеет ли это какое-то отношение к тому, что они USB-устройства?
Я ценю любые советы по правильному использованию mdadm
инструмент.
UUID, который вы хотите поместить в fstab, - это не 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}
.