Я настроил массив RAID-5 для раздела данных, установленного на /mnt/data
. Моя система не загружается на нем (/
и /boot
находится на выделенном диске не часть любого RAID-массива).
Я добавил 4-й диск к своему программному массиву RAID-5 из 3 дисков в Ubuntu 12.04 через mdadm (программный рейд). Мой RAID-массив содержал /dev/sdb1
, dev/sdc1
и /dev/sdd1.
Я использовал эту команду, чтобы добавить 4-й диск:
mdadm --add /dev/md0 /dev/sde
Затем я обновил массив, чтобы преобразовать его в рейд RAID-6, используя следующее:
mdadm --grow /dev/md0 --raid-devices 4 --level 6 --backup-file=backup/raid-backup-file
Он отлично работает. Сервер работал, и при загрузке проблем не было. Проблема только в том, что я увидел, что добавил 4-й диск целиком. Я должен был добавить /dev/sde1
вместо сдэ!
Чтобы очистить это, я удаляю диск и снова добавляю его, но на этот раз с разделом:
mdadm /dev/md0 --fail /dev/sde --remove --/dev/sde
mdadm --add /dev/md0 /dev/sde1
После миграции он работал (массив был доступен), за исключением того, что при следующей загрузке я получил сообщение о том, что RAID-массив деградировал из-за отсутствия / dev / sde (весь мой диск был помечен как запасной) и введен в приглашение initramfs. После выхода из этой оболочки сервер продолжил загрузку без монтирования раздела данных из моего RAID-массива.
После входа в систему я смог остановить массив RAID и повторно его воссоздать с помощью:
mdadm --stop /dev/md0
mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
а затем смонтируйте файловую систему. Все данные были там, и массив RAID был чистым.
Однако система больше не загружалась должным образом. Моя последняя попытка заключалась в том, чтобы удалить последний диск и снова изменить массив RAID-6 на RAID-5 с помощью:
mdadm /dev/md0 --remove /dev/sde1
mdadm --grow /dev/md0 --raid-devices 3 --level 5 --backup-file=backup/raid-backup-file
Но это не устранило проблему. При загрузке система сообщает, что массив деградировал и по-прежнему отсутствует диск sde.
После выхода из оболочки initramfs войдите в систему и снова соберите массив, как и раньше, массив чистый, см.
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdb1[0] sdd1[2] sdc1[1]
3907026816 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
Я также обнаружил в своих сообщениях ядра после обнаружения диска (sda, sdb, sdc, sde) и обнаружения сетевой карты эту странную строку :
md: bind<sde>
Откуда это взялось и как я могу это изменить?
Мой RAID-массив НЕ должен содержать никаких ссылок на / dev / sde.
Я не обновлял initramfs при первом изменении в моем массиве, я пробовал это после, но это ничего не изменило.
Кстати, вот мой /etc/mdadm.conf:
DEVICE partitions
CREATE owner=root group=disk mode=0660 auto=yes
HOMEHOST <system>
MAILADDR root
ARRAY /dev/md0 metadata=0.90 UUID=4d84e24c:e40f825f:3ba42e3c:267295e2
На устройстве sde должны оставаться некоторые метаданные md.
Полностью стереть метаданные sde md (используя dd и в зависимости от версии метаданных и их местоположения на диске), например:
dd if = / dev / zero of = / dev / sde bs = 4096 count = 1 seek = 1
или даже лучше:
mdadm --misc --zero-superblock / dev / sde
Повторно создайте свой sde1 и снова добавьте его на устройство md0 и обновите свой mdadm.conf, если вы все еще хотите, чтобы он содержал UUID (вы также можете восстановить предыдущий метадат, если вы сначала создали их резервную копию)
Вы пытались восстановить initrd после обновления устройства MD? попробуйте update-initramfs или инструмент, соответствующий вашему дистрибутиву. и, вероятно, неплохо также обновить свой бутлегер (update-grub2 для grub-pc)
также попробуйте указать uuid разделов в вашем mdadm.conf для md0.