22 июня 2023 года вышел очередной релиз популярной системы виртуализации Proxmox VE 8.0. Выждав небольшой срок, я решил провести обновление одного из своих серверов. Обычно это не вызывает каких-то особых проблем, потому что процесс проходит штатно, если следовать официальной инструкции. Так как у меня много серверов с Proxmox VE под управлением, решил сделать своё пошаговое руководство по обновлению с 7 на 8-ю версию.
Что нового в Proxmox VE 8
Полный список нововведений можно посмотреть в Press release. Обновления версий ядра и софта опускаю, отмечаю только новую функциональность бесплатной версии:
- Появилась автоматическая синхронизация пользователей и групп из LDAP хранилищ, в том числе Microsoft AD.
- Новый TUI (text-based user interface, то есть текстовый) интерфейс установщика. Стало как у Debian — два варианта установщика. Текстовый похож на дебиановский. Особо не понимаю, зачем на это тратить ресурсы разработки. Возможно GUI интерфейс в каких-то случаях не работает и спасает TUI.
- Сопоставление физических устройств (PCI и USB) и нод кластера. Можно создать виртуальное устройство, сопоставить его с реальными устройствами на конкретных нодах и добавить это устройство к VM. Теперь она сможет мигрировать только на те ноды, где есть сопоставление нужного устройства. До конца не понял, какую прикладную задачу это решает.
- Автоматическая блокировка учёток юзеров, которые попали на второй фактор аутентификации и не прошли его несколько раз. В общем, защита от брута второго фактора, когда первый пароль утёк злоумышленникам.
- Списки доступа (ACL) к сетевым ресурсам. Можно управлять доступом пользователей, например, к бриджам.
Навскидку нововведений как-то мало. Считай ничего значимого и нет, кроме сопоставления устройств. Это наиболее заметное улучшение функциональности.
Подготовка к обновлению
Если у вас версия Proxmox ниже 7-й, то последовательно обновите систему до последней. У меня есть инструкции на этот счёт:
Я не буду заниматься самодеятельностью, а выполню то, что указано в официальном руководстве по обновлению — https://pve.proxmox.com/wiki/Upgrade_from_7_to_8, опуская те моменты, что неактуальны в моём случае. Например, я не использую Ceph.
Некоторые замечания перед обновлением:
- Убедитесь, что у вас есть бэкапы всего, что будет затронуто обновлением. Не забудьте проверить, что из них можно выполнить восстановление.
- У вас будет небольшой простой сервисов, так как во время обновления потребуется остановить все виртуальные машины и выполнить перезагрузку гипервизора.
- Варианта обновления Proxmox VE два: обновить текущий гипервизор или выполнить чистую установку новой версии и восстановить на неё бэкапы виртуальных машин.
Если вы хотите перенести всё на новую установку, то помимо бэкапа виртуальных машин, потребуется сохранить настройки в директории /etc/pve и системные файлы /etc/passwd, /etc/network/interfaces, /etc/resolv.conf. После установки новой версии, достаточно венуть эти файлы и восстановить бэкапы виртуальных машин.
Если вы будете обновлять текущую установку Proxmox VE, то проверьте следующие моменты:
- У вас версия Proxmox VE 7.4 на всех нодах кластера.
- Если используете Ceph, предварительно обновите его до версии Ceph 17.2 Quincy, прежде чем начнёте обновлять сам Proxmox. Для этого можно воспользоваться инструкциями: Ceph Octopus to Pacific и Ceph Pacific to Quincy.
- Если и спользуете Proxmox Backup Server, то обновите его до 3-й версии: Proxmox Backup Server 2 to 3 upgrade how-to.
- На всякий случай убедитесь, что у вас есть доступ к консоли сервера, помимо SSH доступа.
- Нужно будет как минимум 5G свободного места на корневом разделе /.
Обновление Proxmox 7 до 8
На всякий случай обновите саму систему:
# apt update && apt dist-upgrade
Запустите скрипт проверки готовности к обновлению:
# pve7to8
Убедитесь, что нет ошибок. Если есть, то их нужно исправить.
После обновления у вас может измениться MAC адрес сетевого бриджа vmbr. Если для вас это недопустимо и приведёт к проблемам, то заранее укажите постоянный MAC. Для начала посмотрите текущие адреса:
# ip -c link
Затем укажите текущий MAC адрес бриджа в конфигурации сетевых интерфейсов /etc/network/interfaces.
auto vmbr0 iface vmbr0 inet static address 10.20.1.2/24 hwaddress ae:9d:46:49:4d:23 # ... остальные настройки
Обновите системный файл с репозиториями /etc/apt/sources.list. Так как кодовая база новой версии Proxmox базируется на Debian 12 bookworm, необходимо указать новую версию взамен прошлой bullseye.
# cp /etc/apt/sources.list /etc/apt/sources.list.bak # sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
Проверьте на всякий случай изменения:
# diff /etc/apt/sources.list /etc/apt/sources.list.bak
Обновляем список пакетов:
# apt update
Получится внушительный список. При желании, можете его посмотреть:
# apt list --upgradable
Теперь будем запускать непосредственно обновление пакетов. Тут важно убедиться, что есть доступ к консоли сервера. Если запускаете обновление по SSH, то убедитесь, что ваша сессия не прервётся в случае обрыва связи. Запустите её в screen или tmux. Если обновление прервётся, то есть шанс получить неработающий сервер, хотя и не обязательно это случится. Но в любом случае получите лишние проблемы и хлопоты. Лучше этого избежать.
# apt dist-upgrade
После загрузки всех пакетов, вам приведут подробную информацию по обновлению.
Нужно промотать список вниз и закрыть его, нажав клавишу q. Дальше могут появляться различные вопросы по поводу перезаписи конфигурационных файлов или перезапуска служб. Можно со всем соглашаться и выбирать варианты, которые предлагают по умолчанию.
После окончания обновления пакетов перезагрузите сервер с Proxmox и убедитесь, что обновление прошло успешно.
Ошибки во время обновления Proxmox VE
Очень частой ошибкой во время обновления Proxmox VE, причём не важно, какой версии, является следующая:
Upgrade wants to remove package ‘proxmox-ve’.
Вам пишут, что сейчас будет удалён пакет proxmox-ve. Сразу как-то обновляться не хочется, потому что не понятно, и не очевидно, к чему это приведёт. Подобная ошибка встречается у тех, кто ставил Proxmox не с установочного iso образа, а обновлением Debian.
Решить её можно следующим образом. Удаляем пакет linux-image-amd64 или похожий. Название пакета может немного различаться. К слову image могут быть добавлены какие-то цифры с версией. Точное имя пакета можно посмотреть через общий список пакетов, примерно так:
# dpkg -l | grep linux-image
Суть в том, что у этого пакета, который остался от оригинальной Debian, возникают конфликты зависимостей с proxmox-ve, поэтому последний предлагают удалить. Вместо этого удаляем ненужный пакет.
# apt remove linux-image-amd64
После этого обновление Proxmox VE должно пройти штатно.
Видео
Заключение
Я завершил обновление Proxmox VE до 8-й версии на тестовом гипервизоре. Никаких проблем в процессе не возникло. Тем не менее, не рекомендую обновлять прод, пока не выйдет хотя бы версия 8.1. Торопиться в таких делах нет никакого смысла. Можно вообще не обновляться, если вам не нужны нововведения. Никаких проблем не будет, если вы останетесь на старой версии, пока она еще поддерживается.