Переход на soft raid с минимизацией простоя.
Система Ubuntu 12 но принципиальных отличий быть не может.
Сначала нужно подключить дополнительный HDD (возможно, нужна будет перезагрузка, если нет возможности подключить «на горячую»)
В моем случае второй винт определился как /dev/sdb
Создаю на втором hhd файловую систему:
# fdisk /dev/sdb
Там по пунктам все расписано. Если есть сомнения читаем man.
Основной раздел на весь диск.
Тип файловой системы fd Linux raid autodetect
Теперь устанавливаю сам soft-raid — madadm:
# apt-get install mdadm
Мой следующий шаг — создание деградированного массива из одного второго диска:
# mdadm --create /dev/md0 --metadata=1.2 --level=1 --raid-devices=2 missing /dev/sdb1
Для того, что бы загрузка с деградированного массива прошла без рукоприкладства к локальной консоли, надо посетить пару интересных мест.
- dpkg-reconfigure mdadm, отвечаю, что надо загружаться с деградированного массива
- опцию bootdegraded=true дописываю в опции загрузки в /etc/default/grub
Следующим пунктом создаю новую файловую систему на /dev/md0
# fdisk /dev/md0
Создаю аналогичные первому диску размреры разделов.
В моем случае это корень и swap.
Создаю разделы на RAID массиве:
# mkfs.ext4 /dev/md0p1
# mkswap /dev/md0p2
Монтирую корневой раздел RAID в /mnt
# mount /dev/md0p1 /mnt
В примонтированный корневой раздел заливаю данные с первого диска:
# rsync -axu / /mnt/
Теперь нужно сделать chroot в примонтированный корневой раздел:
# mount --bind /proc /mnt/proc && mount --bind /dev /mnt/dev && mount --bind /sys /mnt/sys && mount --bind /run /mnt/run
# chroot /mnt
В chroot правлю /etc/fstab для запуска с soft-raid:
/# ls -l /dev/disk/by-uuid |grep md >> /etc/fstab
/# vim /etc/fstab
Подставляю новые UUID
В chroot обновляю GRUB на RAID и устанавливаю GRUB на второй диск(тот, что в RAID)
/# update-grub
/# grub-install /dev/sdb.
exit — выход из chroot.
Еще раз сливаю изменения с / первого диска на примонтированый /, обновляю grub
# rsync -axu / /mnt/
# update-grub
В /etc/default/grub GRUB_DEFAULT=4 для загрузки с RAID по умолчанию
# update-grub
# reboot
Вот тут самый ответственный момент. После этого, если все прошло правильно, система запуститься с подготовленного soft-raid
Если не запустилась — значит ехать и смотреть что там происходит.. Либо не удалось запуститься со второго диска, либо система сообщила, что с массивом что-то не так и ждет нажатия enter.
Проверить это можно, например, по содержанию /etc/fstab (Предварительно запомнив/записав UUID’ы )
Запустившись с массива подготавливаю первый диск
# fdisk /dev/sda
# grub-install /dev/sda
# mdadm --manage /dev/md127 --add /dev/sda1
Наблюдаю за восстановлением массива
# watch cat /proc/mdstat
Не считая подключения винта, можно обойтись одной перезагрузкой с минимальной потерей данных.
В финале следует убедиться что, на обоих винтах актуальный grub.
Все действия крайне рекомендую протестировать в виртуальной среде!