mdadm software RAID ProxMox 5

Задача - сделать на хосте Proxmox 5.2.1 зеркальный mdadm RAID.
Хост - машина с загрузкой только через EFI.

Предполагаем, что на первый диск /dev/sda у нас установлен ProxMox. Он может даже иметь виртуальные машины на борту.
В итоге, в массиве RAID1 у нас будут только корень, своп и данные. Два раздела с загрузчиками Legacy BIOS и EFI будут вне массивов, однако это не страшно - содержимое этих разделов практически не меняется и обоих дисках эти разделы будут идентичны.

Устанавливаем компоненты:

apt-get update
apt-get install mdadm initramfs-tools screen

Переносим разметку на второй диск.

sfdisk -d /dev/sda | sfdisk --force /dev/sdb

Назначаем разделу номер 3 тип Linux RAID:

echo -e "\nt\n3\n29\nw\nx" | fdisk /dev/sdb

Чистим и стартуем массивы:

mdadm --zero-superblock /dev/sdb3
yes|mdadm --create /dev/md0 --level=1 --raid-devices=2 --metadata=0.90 /dev/sdb3 missing

Дальше нам предстоят длительные операции и, если мы не работаем на физической консоли, то, на всякий случай, запустим screen:

screen

Создаем Physycal Volume на /dev/md0, расширяем имеющуюся Volume Group новым томом, перемещаем данные с /dev/sda3 и изымаем /dev/sda3 из Volume Group:

pvcreate /dev/md0
vgextend pve /dev/md0
pvmove /dev/sda3 /dev/md0
vgreduce pve /dev/sda3

Чистим и добавляем /dev/sda3 в массив:

pvremove /dev/sda3
echo -e "\nt\n3\n29\nw\nx" | fdisk /dev/sda
mdadm --add /dev/md0 /dev/sda3

Сохраняем конфигурацию mdadm:

mdadm --detail --scan >> /etc/mdadm/mdadm.conf

Добавляем модули RAID в GRUB:

echo '' >> /etc/default/grub
echo '# RAID' >> /etc/default/grub
echo 'GRUB_PRELOAD_MODULES="part_gpt mdraid09 mdraid1x lvm"' >> /etc/default/grub

Обновляем GRUB и initrmfs:

update-grub
update-initramfs -u

Ставим GRUB

mkdir /mnt/efi-boot
mount /dev/sda2 /mnt/efi-boot
grub-install /dev/sda
grub-install --target x86_64-efi --efi-directory /mnt/efi-boot

Копируем разделы 1 и 2 с /dev/sda на /dev/sdb

dd if=/dev/sda1 of=/dev/sdb1
dd if=/dev/sda2 of=/dev/sdb2

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

Теперь нужно дождаться синхронизации массива и перезагрузиться.

cat /proc/mdstat