Proxmox VE 4 установка корневого раздела на неподдерживаемый установщиком soft raid1 +6



Начиная с версии 3.6 в установщике Proxmox появилась опция установки на различные варианты ZFS Raid, но так и не появилась, используемая многими, конфигурация с расположением корня и области хранения дисков виртуальных машин на программном рейд массиве.
На хабре и в сети есть множество аналогичных статей, но они актуальны для версии 3,6, а в версии 4.0 появилось несколько интересных нюансов. Кроме это в данной инструкции я подойду к решению этой задачи совершенно другим путем.


Нюансы


1.Установщик Proxmox 4-й версии ставит нам efi загрузчик и я не вижу способа как его резервировать при помощи софт рейда — если кто-то знает — поделитесь.
2.Proxmox 4.0 собран на Debian 8, а в нем есть известный баг — при старте системы не собираются массивы если в нем вылетел один из дисков. Совсем не собираются и не действует опция «bootdegraded=1»
3.Рассмотрев пункты 1 и 2 мне подумалось, а зачем нам править что-то за инстялляторм Proxmox, когда мы можем спокойно поставить Debian 8 так как нам надо, а уже поверх установить Proxmox. Вот этот расклад и будет рассмотрен в инструкции.

Ставим Debian 8


Я думаю с установкой Debian 8 minimal с neinst диска вы справитесь.
Все настройки делаем как вам надо, рассмотрим только разбивку дисков:
— диски у меня с таблицей разделов в GPT
— выделяем раздел 1 Мб и отмечаем его как bios boot
— выделяем оставшееся место в раздел под массив
— собираем массив md0
— поверх массива пускаем LVM
— создаем LV под корень и своп

Проверяем баг — выдергиваем любой из дисков, членов массива, и загружаемся. Вернее не загружаемся, потому-как загрузчик не может найти LVM с корневым разделом, потому что не собрался массив на котором этот самый LVM и лежит.

Чиним сборку массива при загрузке


Я ставил grub на оба раздела при установке, если вы этого не сделали:
# dpkg-reconfigure grub-pc


Накладываем патч:
cd /etc/initramfs-tools/scripts/local-top
cp /usr/share/initramfs-tools/scripts/local-top/mdadm .
patch --verbose --ignore-whitespace <<'EndOfPatch'
--- mdadm
+++ mdadm
@@ -76,7 +76,15 @@
   if $MDADM --assemble --scan --run --auto=yes${extra_args:+ $extra_args}; then
     verbose && log_success_msg "assembled all arrays."
   else
-    log_failure_msg "failed to assemble all arrays."
+    log_warning_msg "failed to assemble all arrays...attempting individual starts"
+    for dev in $(cat /proc/mdstat | grep md | cut -d ' ' -f 1); do
+      log_begin_msg "attempting mdadm --run $dev"
+      if $MDADM --run $dev; then
+        verbose && log_success_msg "started $dev"
+      else
+        log_failure_msg "failed to start $dev"
+      fi
+    done
   fi
   verbose && log_end_msg

EndOfPatch

Обновляем конфиг:
update-initramfs -u


Внимание: если вы будете проверять как работает патч и загружаться с выдернутым диском — на забудьте потом его вернуть обратно в массив:
# mdadm --add /dev/md0 /dev/sda2


Ставим Proxmox


Приводим /etc/hosts к виду:
127.0.0.1       localhost.localdomain localhost
123.456.789.1   myproxmox.mydomain.ru  myproxmox pvelocalhost


Добавляем в /etc/apt/sources.list
deb http://download.proxmox.com/debian jessie pve-no-subscription


Добавляем цифровую подпись:
# wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -


Обновляемся:
# apt-get update && apt-get dist-upgrade


Устанавливаем Proxmox:
# apt-get install proxmox-ve ntp ssh postfix ksm-control-daemon open-iscsi


При установке в /etc/apt/sources.list.d/pve-enterprise.list пропишется коммерческий репозиторий, если нет подписки — закомментируем его.

Перезагружаемся и пользуемся.




К сожалению, не доступен сервер mySQL