Назад | Перейти на главную страницу

Как мне исправить мой сервер для правильной загрузки после удаления / добавления диска в мой программный RAID mdadm

Я настроил массив 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.

  • Удалите sde1 с устройства raid.
  • Полностью стереть метаданные 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.