вторник, 22 апреля 2014 г.

Как реанимировать RAID на Centos при использовании Partitionable RAID1

Есть в Centos механизм создания программного рейда при котором зеркалируются не отдельные разделы, а весь диск целиком (что вроде бы облегчает процедуру восстановления после замены диска). Описана она здесь: http://wiki.centos.org/HowTos/Install_On_Partitionable_RAID1
Однако, после выполнения всех действий по инструкции, система отказывается загружаться с одного диска, появляется сообщение: Kernel panic - not syncing: Attempted to kill init!
После изучения этого обсуждения сформировался такой алгоритм действий в подобной ситуации.
1. Если в grub.conf изначально, в параметрах загрузки ядра, не был указан аргумент rdshell, на экране выбора операционной системы при запуске нажимаем "a" и дописываем его ручками.
2. Когда процесс загрузки доходит до подключения корневой файлововй системы, ядро уже не вываливается, а появляется урезанная командная оболочка загрузчика.
3. Выводим состояние массивов cat /proc/mdstat и видим, что наш массив не активен.
4. Принудительно его запускаем: mdadm --run /dev/md_d0 (или как он у вас называется)
5. Проверяем, что он перешел в состояние active, так же через cat /proc/mdstat.
6. Выходим из оболочки загрузчка (Ctrl+D), и наблюдаем успешный процесс загрузки системы.
Причем, после однократного выполнения этих действий, последующие перезагрузки проходят успешно, пока не будет установлен второй диск и не собрано зеркало.
Зеркало собирается командой mdadm --add /dev/md_d0 /dev/sdb, если добавленный диск определился системой как sdb. Процесс синхронизации можно так же наблюдать через cat /proc/mdstat