Proxmox можно установить через официальный образ, однако в этом случае у нас нет возможности самостоятельного создания RAID
массива, мы можем выбирать массив на основе ZFS
или Btrfs
:
Нам нужен RAID1
массив с произвольной файловой системой, например ext4
.
Однако, Proxmox можно установить не только из образа Proxmox, но и через установку пакетов в Debian, и здесь мы уже можем вручную создать нужный нам RAID
массив.
Ранее мы уже рассматривали создание RAID1 массива из дисков для хранения данных, понимание прошлого материала значительно облегчит применение нового.
Скачиваем образ Debian здесь.
Далее мы будем реализовывать примерно такую схему разметки на дисках, только swap
раздел делать не будем:
UEFI вымещает старый BIOS
, поэтому будем говорить только про установку в режиме UEFI
и создавать отдельный EFI
раздел в 500МБ. Загрузиться с флешки в режиме UEFI
можно намерено указав это в загрузчике BIOS
:
Загружаемся в установщик Debian
и доходим до этапа Partition disks
, который очень похож на fdisk
в том плане что все изменения накапливаюется и только при подтверждении применяются к диску.
В разделе Partition disks
выбираем Manual
(ручное разделение):
Здесь мы видим 2 наших диска одинакового объема:
Заходим в первый диск и создаем пустую таблицу раздедлов выбирая Yes
:
Во всех диалогах по умолчанию выбраны отрицательные ответы, которые приведут к отмене запрашиваемого действия - нужно обдуманно подходить к выбору ответа.
В итоге на первом диске будет пустая таблица разделов:
Заходим в нее и выбираем Create a new partition
:
Для EFI раздела необходимо выделить 500мб с самого начала диска (а вот и вот ссылки обсуждений на форумах):
После создания раздела, по умолчанию у него будут такие настройки:
Нужно сменить Use as
на EFI System Partition
:
После нажатия на Done settings up the partition
мы должны увидеть примерно такую картину:
Выбираем неразмеченное пространство и создаем новый раздел на весь объем Create a new partition
:
Use as
меняем на RAID
:
Применяем изменения. В конечном итоге наш первый диск должен иметь 2 раздела EFI
и RAID
:
Проделываем тоже самое со вторым диском и получаем такую картину:
Выбираем Configure software RAID
(на предыдущем скрине) и подтверждаем (Yes
):
Выбираем Create MD Device
:
Выбираем RAID1
, указываем количество дисков 2, а номер MD
устройства 0 чтобы в системе это устрйоство было доступно как /dev/md0
. Затем выбираем разделы на дисках которые хотим поместить в RAID
:
Выбираем Finish
и в итоге получаем такую структуру разделов на наших дисках:
Теперь нужно создать файловую систему на RAID
диске, выбираем ext4
(или другую подходящуюю) и обязательно указываем Mount point
в корень (/
). Должно получиться примерно так:
Все конфигурация дисков у нас должна быть примерно такой:
Теперь нужно выбрать Finish partitioning and write changes to disk
и мы получим такое сообщение:
Дело в том что мы не создали swap раздел. В моем случае достаточно ОЗУ чтобы игнорировать swap
, однако его можно создать также как мы создавали разделы выше, только в Use as
нужно выбрать swap
.
Выбираем No
и получаем финальный вопрос о подтверждении, выбираем Yes
и стартует установка ОС:
На сайте Proxmox есть исчерпывающая статья по установке Proxmox на Debian 12.
Некоторые утилиты будут недоступны, несмотря на то что они уже установленны, проблемы в переменной PATH
, в ней нет пути /usr/sbin
. Например при update-grub будет получена ошибка что такой пакет не найден.
Исправить проблему просто:
export PATH=$PATH:/usr/sbin
А еще лучше поместить эту строку в конец ~/.bashrc
чтобы не вводить эту команду каждый раз при входе под root
.
Раз уж содаем отказоустойчивую систему, то хочется чтобы она автоматически загружалась если один из дисков выходит из строя.
На хосте у нас уже смонтирована директория /boot/efi/
, это и есть тот самый EFI
раздел на первом диске, который мы делали в самом начале.
В директории
EFI
есть файл./EFI/debian/grub.cfg
который отсылает на конкретный диск за настройкамиgrub
. Ссылка на тему на форуме.
Нам нужно смонтировать EFI
раздел второго диска и скопировать на него все содержимое EFI
раздела первого диска.
Посмотрим вывод lsblk
:
$ sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 21.5G 0 disk
├─sda1 8:1 0 476M 0 part /boot/efi
└─sda2 8:2 0 21.0G 0 part
└─md1 9:1 0 19.95G 0 raid1 /
sdb 8:16 0 21.5G 0 disk
├─sdb1 8:17 0 476M 0 part
└─sdb2 8:18 0 21.0G 0 part
└─md1 9:1 0 19.95G 0 raid1 /
Видно что sda1
и sdb1
одно размера, первый монтируется в /boot/efi
, а второй никуда не монтируется. Монтируем sdb1
и копируем в него EFI
из первого диска:
$ sudo mkdir /mnt/sdb1
$ sudo mount /dev/sdb1 /mnt/sdb1
$ sudo cp -r /boot/efi/* /mnt/sdb1/
Отмонтируем /dev/sdb1
:
$ sudo umount /mnt/sdb1
Есть другие способы сделать почти тоже самое, например вот, здесь и там.
Если сейчас мы попытаемся убрать диск sda
, то к сожалению автоматической загрузки может не произойти. По крайней мере у меня не произошло: boot
настройки BIOS
слетели, пришлось выставить руками очередность загрузки.
Но даже теперь не получиться нормально загрузить ОС:
В настройках
/etc/fstab
указано автоматическое монтирование/dev/sda1
(EFI
раздела) при старте системы, а этот диск мы убрали.
Для исправления проблемы нужно добавить опцию nofail
:
При замене первого диска, с которого монтируется
/boot/efi
, нужно поменять/etc/fstab
чтобыEFI
раздел монтировался при старте системы с другого диска.UUID
диска можно узнать так:lsblk -o +uuid,name
.
Дополнительно почитать про fstab
можно на вики arch или на wiki debian. Разницу между опциями nobootwait
и nofail
можно узнать здесь.
На сайте Proxmox есть инструкция по настройке сети. В Proxmox 7 это сработало, но на Proxmox 8 упорно не хотело работать. К слову каждая новая инсталяция Proxmox вызывает у меня пробелмы с сетью, которые приходится как-то решать.
Нам нужна простая конфигурация с использованием bridge
, при этом хост и VPS
будут доступны из Интернета.
В нашем распоряжении роутер, который доступ из Интернета по публичному IP
, и который имеет локальный IP
. Его локальный IP
будет являться gateway
для vmbr0
:
IP
адреса раздает DHCP
роутера, и за хостом Proxmox закреплен статичный адрес в локальной сети 192.168.0.100
, это позволит прокинуть хост в интернет по некоторым портам через роутер.
Указываем статичный IP
адрес для нашей bridge
сети и адрес gateway
(роутера) в локальнйо сети:
auto lo
iface lo inet loopback
iface eno1 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.0.100/24
gateway 192.168.0.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
Предыдущий способ на Proxmox 8 не заработал. Можно указать в eno1
dhcp
, и в vmbr0
тоже dhcp
со ссылкой на eno1
, и это сработает:
auto lo
iface lo inet loopback
auto eno1
iface eno1 inet dhcp
auto vmbr0
iface vmbr0 inet dhcp
bridge-ports eno1
bridge-stp off
bridge-fd 0
Можно к старому Proxmox подключить новую директорию на отдельном смонтированном диске (не зря же мы в прошлый раз делали RAID1 массив на NVME дисках):
Выбрав сущности для хранения в этой диреткории:
Теперь можно забэкапить нужные VPS
в новую директорию хранения:
Таким же образом подключаем этот смонтированный диск к новому Proxmox и разворачиваем VPS из бэкапа.
Для первой инсталяции процедура достаточно утомительная, но последующие уже идут как по шаблону.
RAID1
желательно протестировать на работоспособность, например вынимая диски и проверяя загрузку ОС и ее работоспособность. Как минимум нужно проверить созданный RAID1
массив инстурментами мониторинга из этой статьи.