Пользуюсь проксмоксом, честно говоря от безысходности. Нужна хоть какая-нибудь интеграция с zfs и web-консоль с адекватным разграничением доступа, чтобы можно было дать доступ виртуалкам для не очень квалифицированного специалиста.Я пропущу достоинства, думаю, маркетологи справятся за меня, давайте поговорим о проблемах.
1. Если мы создаем диск виртуальной машине в пуле zfs, как вы думаете, будем ли мы использовать снимки? Вопрос риторический, ради это все и делается. Если есть снимок, то любая запись в диск будет расходовать место в пуле. Что произойдёт, если в пуле кончится место, как вы думаете?
Например во всех системах, основанных на libvirt все виртуальные машины, зависимые от пула окажутся в состоянии paused и можно их запустить заново, после освобождения пространства. А в proxmox - сюрприз, в виртуалку прилетит WriteError, при этом линаксы, как правило, сами заблокируют операции записи, не позволив испортить файловую систему, но сервисы могут попадать. А винда молча порушит ntfs. Можно вручную, в конфиги дописать флаг werror=stop, но способа запустить виртуалку после его сработки я не нашёл, в доках, само собой, в такие дебри даже никто и не лезет.
2. У них анонсирована killer-фича - ZFSoverISCI. Это когда виртуальная машина использует диск, размещенный в zfs на другой машине, и при этом proxmox должен управлять, например, согласованным создание снимков виртуальной машины, несмотря на то что пул не на этой машине. Почему я пишу машине, а не ноде? А потому, что нет никакой возможности управлять iscsi-target в современном linux, только ietd который давно уже выпилен из ядра. В списках рассылки, разработчики никакой проблемы не видят. Сказали, не располагайте zfs пуля на нодах proxmox. Но дело, в том, что похоже, этот механизм, ничем кроме старого линакс управлять и не умеет. Так как прикажете это использовать?
3. По сети, там теперь выпилили пакет vlan, и, если не рассматривать OpenVSwitch, то очень удобно использовать их фичу VLAN-aware bridge. Но адекватных примеров построения сложной сети нет. Мне например нужно пробросить тегированный трафик через l2-vpn, но при этом нужно чтобы сам гипервизор, тоже имел ip в некоторых vlan-ах. Выше спращивал как это сделать. Для vlan-awere так:
ifconfig tap0 up
ip link set dev tap0 master vmbr0
bridge vlan del vid 1 dev tap0 PVID Egress Untagged
for i in $(seq 10 255); do
bridge vlan add vid ${i} dev tap0
done
# Например, мы хотим, чтобы у гипервизора был ip в 55-ом VLAN
ip link add link vmbr0 name vlan55 type vlan id 55
bridge vlan add dev vmbr0 vid 55 self
ifconfig vlan55 inet 192.168.55.200/24 up
Как это вставить в конфиг дебиана, я не знаю. У меня это стабильно не заработало, но vpn имеет хуки, и сам выполняет эти команды при поднятии tap-интерфейса.
Ну и в целом, какое-то неоднозначное впечатление. Что-то хорошо сделано, где-то даже замысел не понятен и ни доков, ни примеров.