3

Я постараюсь сохранить это коротким.

У меня есть mdadm RAID 6 с 11 дисками. Это годами "просто работало" при переустановках и тому подобном, без каких-либо проблем. У меня даже не было необходимости настраивать mdadm.conf.

После выпуска 12.04 я больше не могу загружать машину без mdadm, который не может смонтировать массив, а затем бросить меня в оболочку initramfs. При загрузке mdadm берет 7 дисков и запускает их в /dev /md127, что, конечно, не удастся.

При загрузке я останавливаю, собираю все диски как md0, и все снова хорошо.

Вопрос в том, как заставить его вести себя даже во время загрузки?

После некоторого тестирования мой текущий mdadm.conf выглядит так:http://pastebin.com/SWx1nCNg

Состояние mdadm во время загрузки:http://pastebin.com/Ua9W3aj4

Обратите внимание, что ниже, на вставке выше, это команда, используемая для повторной сборки, которая работает просто отлично.

Помогите? :)

3 ответа3

2

Проблема в том, что /usr /share /initramfs-tools /scripts /mdadm-functions вызывается до инициализации всех дисков.

У меня есть 6 дисков в массиве RAID. 2 из них на плате SATA и 4 на карте mpt2sas (SAS2008).

Очевидно, mdadm пытается инициализировать массив до того, как все 6 дисков были подключены к системе.

Если я редактирую mdadm-функции для этого, все работает (безобразное исправление):

degraded_arrays()
   {
       sleep 15
   mdadm --misc --scan --detail --test >/dev/null 2>&1
   return $((! $?))
  }

Для меня эта ошибка была введена, когда я обновил с 10.04 LTS до 12.04.1 LTS сегодня!

1

Итак, после некоторых советов я понял, что проблема в том, что некоторые диски недостаточно быстро распознаются mdadm, поэтому он просто останавливается.

Кто-то предложил добавить rootdelay = 30 в качестве параметра ядра, но Ubuntu просто проигнорировал это. Вместо этого я добавил предварительный сценарий initramfs.

echo "sleep 60" > /etc/initramfs-tools/scripts/init-premount;
chmod +x /etc/initramfs-tools/scripts/init-premount;
update-grub; 
update-initramfs -u;

После перезагрузки загрузка занимает больше минуты, но потом я знаю, что mdadm обнаружил все диски.

1

Модификация ответов найдена в другом месте, которое работало на меня.

Симптомы, которые я видел:

RAID, который работал нормально в Lucid/10.04, прекратил автоматическую сборку, когда я обновился до Precise/12.04. RAID собирался как /dev /md127 в Precise. В оболочке initramfs следующее исправило проблему и позволило машине загрузиться.

mdadm --stop /dev /md127 mdadm - собрать /dev /md0

Решение, которое сработало:

Убедитесь, что mdadm.conf имеет правильную строку ARRAY. (Тот факт, что я мог собрать /dev /md0 правильно, предполагал, что mdadm.conf был правильным.)

Создайте скрипт в /usr /share /initramfs-tools /scripts /local-top (я назвал его mdfix)

#!/bin/sh
sleep 6
mdadm --stop /dev/md127
sleep 6
mdadm --assemble /dev/md0

затем

chmod +x mdfix
update-grub
update-initramfs -u

update-initramfs может генерировать "нет такого устройства" для /dev /md127. Положите полотенце на голову и не паникуйте. :)

Перезагрузитесь, и вы должны правильно подключить /dev /md0, если будете немного медленнее, чем раньше. (Сны могут не быть необходимыми, но лучше, чем потом сожалеть.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .