В этой статье мы рассмотрим, как правильно обновить гипервизор Proxmox Virtual Environment (PVE) до последней версии. Будут рассмотрены сценарии использования бесплатных репозиториев для установки, обновления мажорной версии (например, с 7.x до 8.x), обновление релиза между минорными версиями (с 8.3 до 8.4) и обновление Proxmox с локального ISO образа (для изолированной среды без доступа в Интернет).
Текущая версия Proxmox VE отображается в веб интерфейсе. Версии конкретных пакетов можно посмотреть в разделе Host -> Summary -> Package versions.
Или выведите текущие версии пакетов PVE из консоли:
# pveversion -v
Требования к обновлению:
- Перед установкой обновлений на хосте Proxmox, нужно с мигрировать с него все активные виртуальные машины и LXC контейнеры, или выключить их.
- Для standalone хостов желательно выполнить бэкап ВМ и контейнеров. Сохраните базовые конфигурационный файлы
/etc/passwd
,/etc/network/interfaces
,/etc/resolv.conf
, и директорию/etc/pve
) - Не используйте для обновления веб-терминал в интерфейсе гипервизора. При потере связи с хостом, обновление может завершиться с ошибками.
- Проверьте, что в корневом разделе достаточно свободного места (как минимум 5 Гб:
# df -h
). См. как изменить размер корневого LVM раздела в Proxmox. - Убедитесь, что у вас есть физический доступ на консоль хоста PVE (через IPMI, ILO, KVM, iDRAC и т.д.) помимо SSH доступа
- В кластере Proxmox хост, который вы обновляете нежно перевести в режим облуживания:
# ha-manager crm-command node-maintenance enable NODENAME
Вывести статус кластера:
# ha-manager status
Обновляем Proxmox VE
Сначала рассмотрим, как выполнить обновление до следующей минорной версии Proxmox. В этом случае с 8.3 до версии 8.4.
Запустить обновление Proxmox можно из веб интерфейса (Updates -> Upgrade).
Но обновление из веб интерфейса PVE не самый правильный путь, т.к. если при обновлении возникнут проблемы, вы рискуете просто не увидеть их, если веб интерфейс отвалится.
Подключаемся к хосту Proxmox по SSH и обновляем список доступных в репозитории пакетов:
# apt update
Если у вас нет активной подписки на Proxmox, то при проверке обновлений на enterprise репозиториях появится ошибка:
Failed to fetch https://enterprise.proxmox.com/debian/pve/dists/bookworm/InRelease 401 Unauthorized
Для получения обновлений на бесплатной версии Proxmox без покупки подписки, нужно переключиться на репозиторий pve-no-subscription.
(для Proxmox 8), отредактиуруйте файлы с репозиториями источниками. Закомментируйте строки с enterprise репозиториями и добавьте другие источники:
# nano /etc/apt/sources.list.d/pve-enterprise.list
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription deb http://security.debian.org/debian-security bookworm-security main contrib
# nano /etc/apt/sources.list.d/ceph.list
deb http://download.proxmox.com/debian/ceph-quincy bookworm no-subscription deb http://download.proxmox.com/debian/ceph-reef bookworm no-subscription
После этого обновите репозитории и выполните обновление окружения:
# apt update
Вывести список пакетов, для которых доступны обновления:
# apt list --upgradable
Запускаем обновление пакетов:
# apt dist-upgrade
При обновлении некоторые пакеты могут запрашивать подтверждение на перезапись файлов и/или перезапуск служб. После завершения установки обновлений, перезагрузите хост Proxmox.
Апгрейд между мажорными версиям Proxmox PVE (с 7 до 8)
Рассмотрим сценария обновления с версии Proxmox 7.x до 8. Переда началом апгрейда версии PVE нужно обновить версии всех пакетов в системе:
# apt update -y && apt upgrade -y
Затем запустите специальный скрипт, который проверит сервер Proxmox и пакеты на совместимость с новой версией:
# pve7to8 --full
Скрипт выполняет несколько проверок на возможность обновления. Ошибки, выделенные красным, нужно исправить. Предупреждения можно игнорировать, но желательно изучить на их критичность для вашей конфигурации.
В нашем примере старая нода Proxmox запущена на Debian 11 (кодовое имя bullseye). Нужно заменить старые репозитории на версии актуальные для Debian 12 (bookworm):
# sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
(если применимо) Добавьте в файл sources.list репозиторий для бесплатной версии PVE:
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription
Также обновите репозитории для Ceph.
Можно использовать простой однострочный скрипт, который заменит репозиторий на bookworm во всех файлах:
# find /etc/apt/ -type f -name "*.list" -exec sed -i 's/bullseye/bookworm/g' {} +
При обновлении Proxmox может быть изменен MAC адрес, назначенный сетевому бриджу vmbr. Если это для вас важно, получите текущий MAC адрес:
# ip -c link
И зафиксируйте его в файле /etc/network/interfaces:
auto vmbr0 iface vmbr0 inet static address xxx.xxx.xxx.xxx hwaddress aa:bb:11:22:33:4
После этого нужно обновить источники пакетов и запустите обновление:
# apt update
# apt dist-upgrade
Дождитесь окончания обновления, перезагрузите хост. Если PVE обновился успешно, очистите кэш apt:
# apt autoremove
# apt clean
Офлайн обновление версии Proxmox
В изолированной среде (без доступа в интернет) можно выполнить офлайн обновление версии Proxmox с скачанного ISO образа.
Монтируем в Linux ISO образ с последней версией Proxmox:
# mkdir /media/iso
# mount /mnt/pve/datastore2/template/iso/proxmox-ve_8.4-1.iso /media/iso -t iso9660 -o loop
Теперь добавляем путь к локальному ISO образу в качестве репозитория в файл sources.list:
# nano /etc/apt/sources.list
##Proxmox Version update to 8.4.0 deb [trusted=yes] file:/media/iso/ bookworm pve deb [trusted=yes] file:/media/iso/proxmox/packages/ / deb [trusted=yes] file:/media/iso/ bookworm main
Обновляем список пакетов:
# apt update
Смотрим список пакетов, которые будут обновлены:
# apt list --upgradable
Запускаем обновление версии Proxmox:
# apt upgrade
# apt dist-upgrade
Перезапустите хост Proxmox:
# systemctl reboot
Проверяем, что версия Proxmox обновилась.