Proxmox VE 4.0 установка корневого раздела на неподдерживаемый установщиком soft raid1
Начиная с версии 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
Перезагружаемся и пользуемся.