24 июня стала доступна первая бета-версия популярной системы виртуализации с открытым исходным кодом Proxmox 7.0. Сегодня посмотрим, какие кардинальные изменения будут представлены в будущем релизе.

Разумеется, мы ни в коем случае не пытаемся заменить полный changelog, его можно в любой момент посмотреть на официальном сайте Proxmox VE. Но нам было важно рассмотреть ключевые изменения, так что добро пожаловать под кат — мы все изучили и излагаем результаты собственных наблюдений.

Инсталлятор


Для начала взглянем на изменения в инсталляторе. Визуально он никак не изменился, все те же привычные действия и значения. Главное изменение — функциональное, это переход с chroot на switch_root. Оно улучшает загрузку модулей и прошивок, а также слегка снижает потребление ОЗУ во время установки.

Теперь инсталлятор лучше распознает HiDPI-дисплеи и делает шрифт консоли и масштабирование соответствующим такому оборудованию. В предыдущих версиях инсталлятор иногда отображал элементы неправильно: например, кнопки могли «уехать» за край экрана.

Временная файловая система initrd и образы squashfs используют механизм сжатия без потерь Zstandard, а набор утилит BusyBox обновлен до версии 1.33.1. Небольшому тюнингу подверглась система работы с ISO-образами, в частности улучшена поддержка ISO-образов с флешек USB3, а также увеличено время распознавания медленных устройств (таймаут увеличен с 20 до 45 секунд).

Веб-интерфейс


Главное окно веб-интерфейса Proxmox VE 7.0 beta 1

Серьезным изменениям подвергся и веб-интерфейс, в частности:

  • в заметках теперь можно использовать Markdown, который будет правильно отображаться и позволит лучше структурировать все заносимые данные;
  • при создании бэкапов вручную появилась возможность задавать ограничения для политик хранения резервных копий на целевом хранилище;
  • на экране обзора хранилища используется международная система единиц СИ (по основанию 10) и теперь цифры соответствуют генерируемым графикам;
  • появилась возможность применять аппаратные ключи безопасности, такие как YubiKey в качестве ключей SSH при создании контейнеров или cloud-init образов;
  • корректное отображение групп IOMMU при добавлении устройств PCI в гостевые машины с QEMU;
  • улучшен перевод интерфейса на арабский, французский, немецкий и польский языки.

Пример заметки, отформатированной в Markdown

Базовая система


Переходим к тому, что изменилось внутри системы виртуализации. Самым значимым изменением новой версии Proxmox станет переход на Debian 11 «Bullseye» на ядре 5.11, стабильный релиз которого выйдет в конце 2021 года. Задействуется актуальная версия QEMU 6.0, о которой мы рассказывали здесь, на Хабре, пару месяцев назад, так что теперь для всех вновь запущенных или мигрированных гостевых систем будет применяться фича io_uring (асинхронный механизм IO).

Если же для диска требуется вернуть предыдущий режим работы, то исправить это можно командой:

qm set VMID --DRIVE EXISTING-DRIVE-OPTS,aio=native

Обновился и набор инструментов для контейнеризации приложений — LXC теперь имеет версию 4.0, с полной поддержкой cgroups2, механизма для иерархической организации процессов и распределения системных ресурсов. Разумеется, не обошли стороной и активно продвигаемую файловую систему ZFS — ее версия обновлена до 2.0.4.


Хорошая новость для тех, кто по случайности терял диски виртуальных машин, которые не имели ссылок в конфигурации и были уничтожены опцией очистки неиспользуемых образов — теперь система не будет автоматически стирать такие диски.

Впервые это нововведение появилось в версии 6.4, но было доступно только из веб-интерфейса. Сейчас же это реализовано как в CLI, так и в API. Хранилища будут сканироваться на предмет неиспользуемых дисковых томов, но они не будут уничтожаться автоматически. Это отличное решение, защищающее от человеческой ошибки, например, при случайном добавлении одного и того же резервного хранилища дважды, что создает перекрывающийся набор типов содержимого. Система очистки при этом может сработать некорректно и вызвать непреднамеренную потерю данных.

Еще одно изменение логики касается состояний снапшотов виртуальных машин. Теперь при удалении ВМ состояния снапшотов также будут очищены, что следует обязательно учитывать системным администраторам при разработке DRP. Кстати, vzdump также поменял логику работы и теперь сохраняет все резервные копии, а не только последнюю.

Еще из важных изменений: теперь не потребуется устанавливать вручную ifupdown2, требуемый при применении сетевых параметров без перезагрузки хоста. В Proxmox 7 beta 1 этот пакет устанавливается «из коробки». При всем этом первая версия пока также поддерживается, но, вероятно, будет удалена в будущих релизах.

Проблемы бета-версии


Разумеется, у бета-версии уже есть список известных проблем, которые скорее всего будут решены до релиза:

  • непреднамеренное изменение имен сетевых интерфейсов, в частности на сетевых картах Mellanox;
  • генерация MAC-адресов на основе имени интерфейса и machine-id системы может привести к тому, что в рамках одной сети могут возникнуть коллизии, связанные с появлением одинаковых MAC-адресов, поскольку хосты с Proxmox VE (с версии 4.0 и до версии 5.4) могут иметь неуникальные machine-id.

Поскольку это бета-версия, возникающих багов может быть гораздо больше. Если хотите сделать свой вклад, то не ленитесь сообщать о них разработчикам.

Исходя из текущих данных пока можно сделать однозначный вывод о том, что после релиза при переходе на новую версию потребуется соблюдать особую внимательность и осторожность. В частности, перед апгрейдом с версий ниже 6.4 потребуется сначала обновиться до 6.4 и только потом выполнять переход на версию 7.0.

Пара советов от Капитана Очевидность


Обязательно организуйте резервный канал управления серверами, например посредством IPMI или IP-KVM, так как возможна ситуация с потерей доступа к SSH-консоли. Перед выполнением апгрейда обязательно проверьте текущие политики резервного копирования и восстановления, приведите их в соответствие с изменившейся логикой поведения гипервизора.

Не используйте бета-версии в продакшне, ничем хорошим это не кончится. Мы предупредили :)