Ставим Proxmox на чистый Debian (Bullseye)

В установке Proxmox на чистый Debian, а не с родного дистрибутива, есть свои преимущества. В первую очередь это возможность выбора стораджа на ext4. Родная установка предлагает только выбор из LVM или ZFS. LVM не люблю за его сложность и муторность. ZFS класная штука, я его использую на нескольких серверах, но не без недостатков… Самый большой это довольно тяжёлая работа с дисковой подсистемой. Даже на железном RIAD дисковые операции тормозят всю систему, что сказывается на работе виртуалок.

  1. Скачиваем последний релиз Debian. Записываем его на флэшку
    dd if=debian-11.4.0-amd64-netinst.iso of=/dev/sdb bs=4M status=progress
  2. Инсталлируем операционку в базовом варианте, т.е без дополнительных пакетов.
  3. После перезагрузки добавляем репозиторий proxmox:
    echo «deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription» > /etc/apt/sources.list.d/pve-install-repo.list
  4. Добаваляем ключ репозитория
    wget https://enterprise.proxmox.com/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg
    chmod +r /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg # optional, if you have a non-default umask
  5. Обновляем список пакетов с учетом добавленного репозитория
    apt update && apt full-upgrade
  6. Устанавливаем proxmox
    apt install proxmox-ve postfix open-iscsi
    reboot
  7. Убираем ненужные пакеты
    apt remove os-prober
    apt remove linux-image-amd64 ‘linux-image-5.10*’
    Апдейтим загрузчик
    update-grub
  8. Перегружаемся и видим банер proxmox с адресом машины и портом 8008

Для правильной установки необходимо настроить статический IP адрес и прописать соответствие адреса и hostname файле /etc/hosts.

В браузере заходим по указанному адресу и порту и попадаем в веб-итерфейс администратора proxmox. Настраиваем виртуальный мост vmbr0 и добавляем к нему первую сетевую карту. Далее создаем дисковое хранилище для образов виртуальных машин. Для этого заходим в Datacenter/Storage и создаем новое хранилище с типом DIR (вводим имя хранилища и полный путь к каталогу). Данное хранилище будет на ext4. Далее проходимся по остальным вкладкам и настраиваем что нужно.

Всё, можно поднимать виртуалки.

UPD

Как оказалось, без zfs не обойтись 🙂 У proxmox свои пакеты zfs, вот их и ставим:
apt install zfsutils zfs-initramfs
Создаём файл настройки /etc/modprobe.d/zfs.conf
##ZFS tuning for a proxmox machine that reserves 64GB for ZFS
##Don’t let ZFS use less than 32GB and more than 64GB
options zfs zfs_arc_min=34359738368
options zfs zfs_arc_max=68719476736

##disabling prefetch is no longer required
##options zfs l2arc_noprefetch=0
options zfs zfs_prefetch_disable=1

Создаём пул
zpool create -o ashift=12 -m none DSTPool sdb
zfs set sync=disabled rpool
zfs set sync=disabled DSTPool

И создаём место для хранения виртуалок
zfs create -o atime=off -o xattr=off -o exec=off -o utf8only=off -o compression=lz4 -o mountpoint=/Data/StorageVms DSTPool/StorageVms