Безопасное обновление Proxmox VE

Пошаговое обновление Proxmox VE: проверка репозиториев, создание резервных копий, обновление пакетов, перезагрузка и диагностика после обновления.

Регулярное обновление Proxmox VE необходимо для установки исправлений безопасности, обновлений ядра, QEMU, LXC и компонентов веб-интерфейса.

Обновление гипервизора требует более осторожного подхода, чем обычного Linux-сервера: ошибка может затронуть все виртуальные машины и контейнеры на узле.

В этой инструкции рассматривается только безопасное обновление одного узла Proxmox VE без перехода на новую основную версию.

Подходит для: Proxmox VE 8 и 9
Уровень сложности: средний
Время выполнения: около 20–40 минут
Требуемый доступ: root-доступ и резервный доступ к консоли

Важное предупреждение

Перед обновлением необходимо иметь:

  • свежие резервные копии критичных VM и LXC;
  • доступ к локальной консоли, IPMI, iDRAC, iLO или панели провайдера;
  • достаточное окно обслуживания;
  • проверенное свободное место на корневом разделе;
  • понимание текущей конфигурации репозиториев.

Не обновляйте production-узел без возможности восстановить доступ после перезагрузки.

Что будет рассмотрено

После выполнения инструкции можно будет:

  • проверить версию Proxmox VE;
  • проверить репозитории;
  • проверить состояние узла;
  • создать контрольные резервные копии;
  • обновить пакеты;
  • определить необходимость перезагрузки;
  • проверить VM, LXC, сеть и хранилища после обновления;
  • диагностировать типичные ошибки.

Проверка текущей версии

Покажите версии компонентов:

pveversion -v

Краткий вывод:

pveversion

Проверьте ядро:

uname -r

Сохраните вывод:

pveversion -v   > /root/pveversion-before-update.txt

Проверка состояния узла

Проверьте сервисы Proxmox VE:

systemctl --failed

Проверьте основные службы:

systemctl status   pveproxy   pvedaemon   pvestatd   pvescheduler   --no-pager

Проверьте кластерную файловую систему:

systemctl status pve-cluster --no-pager

Для одиночного узла служба pve-cluster всё равно используется.

Проверка VM и LXC

Покажите виртуальные машины:

qm list

Покажите контейнеры:

pct list

Сохраните списки:

qm list > /root/qm-list-before-update.txt
pct list > /root/pct-list-before-update.txt

Проверка хранилищ

pvesm status

Убедитесь, что все требуемые хранилища имеют статус:

active

Проверьте свободное место:

df -h

Для LVM:

lvs

Для ZFS:

zpool status
zpool list

Проверка свободного места

Особенно проверьте:

/

и:

/boot

Команды:

df -h /
df -h /boot 2>/dev/null

Проверьте inode:

df -i

Недостаток места может привести к незавершённому обновлению пакетов.

Проверка состояния APT

Проверьте незавершённые операции:

dpkg --audit

Проверьте блокировки:

ps aux |
grep -E 'apt|dpkg' |
grep -v grep

Исправить незавершённую конфигурацию пакетов:

dpkg --configure -a

Используйте эту команду только если dpkg --audit показывает проблему.

Проверка репозиториев

Покажите основные источники:

grep -RhsE '^[^#].*deb '   /etc/apt/sources.list   /etc/apt/sources.list.d/*.list   2>/dev/null

Для нового формата .sources:

grep -RhsE '^(Types|URIs|Suites|Components):'   /etc/apt/sources.list.d/*.sources   2>/dev/null

Убедитесь, что репозитории соответствуют текущему выпуску Debian и установленной версии Proxmox VE.

Enterprise и no-subscription

Для системы с активной подпиской используется enterprise-репозиторий.

Без подписки обычно используют no-subscription-репозиторий.

Не включайте одновременно конфликтующие репозитории для одной и той же ветки без необходимости.

Проверьте:

grep -RniE 'enterprise|no-subscription|pve'   /etc/apt/sources.list   /etc/apt/sources.list.d   2>/dev/null

Создание резервной копии конфигурации

Создайте каталог:

mkdir -p /root/proxmox-pre-update

Скопируйте конфигурацию:

cp -a /etc/pve   /root/proxmox-pre-update/etc-pve-$(date +%F-%H%M%S)

Скопируйте сетевую конфигурацию:

cp -a /etc/network/interfaces   /root/proxmox-pre-update/interfaces-$(date +%F-%H%M%S)

Сохраните репозитории:

cp -a /etc/apt/sources.list   /etc/apt/sources.list.d   /root/proxmox-pre-update/

Резервное копирование VM и LXC

Проверьте наличие свежих backup:

ls -lht /var/lib/vz/dump/ 2>/dev/null |
head

Для внешнего storage:

pvesm list STORAGE_ID

При необходимости создайте backup критичной VM:

vzdump VM_ID   --storage STORAGE_ID   --mode snapshot   --compress zstd

Для LXC:

vzdump CT_ID   --storage STORAGE_ID   --mode snapshot   --compress zstd

Не начинайте обновление, пока backup не завершился с:

TASK OK

Проверка доступных обновлений

Обновите индекс пакетов:

apt update

Покажите доступные обновления:

apt list --upgradable

Проверьте предполагаемые действия:

apt full-upgrade --dry-run

Обратите внимание на:

  • удаляемые пакеты;
  • новое ядро;
  • обновления pve-manager;
  • обновления QEMU;
  • обновления LXC;
  • обновления ZFS;
  • удерживаемые пакеты.

Проверка held-пакетов

apt-mark showhold

Если список не пуст, выясните, почему пакеты удерживаются.

Не снимайте hold без понимания причины.

Запуск обновления

Выполните:

apt full-upgrade

Внимательно прочитайте список изменений перед подтверждением.

Для автоматического подтверждения можно использовать:

apt full-upgrade -y

На production-узле лучше сначала просмотреть план вручную.

Вопросы о конфигурационных файлах

Во время обновления APT может спросить, какую версию конфигурационного файла оставить.

Возможные варианты:

  • оставить локальную версию;
  • установить версию сопровождающего;
  • показать различия;
  • открыть shell.

Для изменённых конфигураций сначала посмотрите diff.

Не заменяйте автоматически:

/etc/network/interfaces
/etc/hosts
/etc/ssh/sshd_config
/etc/pve/*

без проверки.

Проверка завершения обновления

После завершения:

dpkg --audit

Проверьте зависимости:

apt --fix-broken install

Эту команду следует запускать только при наличии ошибок зависимостей.

Проверьте версию:

pveversion -v

Проверка необходимости перезагрузки

test -f /var/run/reboot-required   && cat /var/run/reboot-required   || echo "Перезагрузка не требуется"

Проверьте установленное ядро:

dpkg -l |
grep -E 'pve-kernel|proxmox-kernel'

Проверьте текущее ядро:

uname -r

Если установлено новое ядро, для его загрузки требуется перезагрузка.

Проверка загрузчика

Для систем с GRUB:

update-grub

Для Proxmox Boot Tool:

proxmox-boot-tool status

Не выполняйте ручные изменения загрузчика без необходимости.

Подготовка к перезагрузке

Проверьте активные задачи:

ps aux |
grep -E 'vzdump|qmigrate|pct migrate' |
grep -v grep

Проверьте tasks в веб-интерфейсе.

Корректно остановите критичные сервисы внутри VM при необходимости.

Для одиночного узла перезагрузка вызовет простой всех VM и LXC.

Перезагрузка узла

reboot

Не отключайте питание во время загрузки.

Подключитесь через консоль, если SSH или GUI не возвращаются вовремя.

Проверка после перезагрузки

Проверьте ядро:

uname -r

Проверьте версию:

pveversion -v

Проверьте failed units:

systemctl --failed

Проверьте основные службы:

systemctl status   pveproxy   pvedaemon   pvestatd   pvescheduler   pve-cluster   --no-pager

Проверка веб-интерфейса

Локально:

curl -kI https://127.0.0.1:8006/

Удалённо:

https://PROXMOX_IP:8006

Проверьте:

  • вход;
  • дерево Datacenter;
  • состояние узла;
  • задачи;
  • storage;
  • VM и LXC.

Проверка сети

ip -br addr
ip route

Проверьте шлюз:

ping -c 3 GATEWAY_IP

Проверьте DNS:

getent hosts example.com

Проверьте bridge:

bridge link

Проверка хранилищ

pvesm status

Для NFS:

mount |
grep /mnt/pve

Для ZFS:

zpool status

Для LVM:

lvs

Проверка VM и LXC

qm list
pct list

Проверьте автозапущенные объекты.

Для конкретной VM:

qm status VM_ID

Для контейнера:

pct status CT_ID

Проверка журналов загрузки

Критические ошибки:

journalctl -b -p err --no-pager

Предупреждения:

journalctl -b -p warning --no-pager

Журнал ядра:

journalctl -k -b --no-pager

Очистка старых пакетов

После проверки работоспособности:

apt autoremove

Сначала посмотрите список удаляемых пакетов.

Не удаляйте старое рабочее ядро сразу после обновления.

Оставьте хотя бы одно предыдущее ядро для аварийной загрузки.

Очистка кэша APT

apt clean

Проверьте свободное место:

df -h

Откат на предыдущее ядро

Если новое ядро не загружается или вызывает проблемы:

  1. Откройте консоль.
  2. В меню загрузчика выберите предыдущее ядро.
  3. Загрузите систему.
  4. Проверьте uname -r.
  5. Проанализируйте журнал.
  6. Не удаляйте новое ядро до выяснения причины.

Для удалённого сервера резервная консоль обязательна.

Обновление кластера

В кластере узлы обновляют по очереди.

Общий порядок:

  1. Проверить quorum.
  2. Проверить миграцию VM.
  3. Переместить нагрузки с узла.
  4. Обновить один узел.
  5. Перезагрузить.
  6. Проверить кластер.
  7. Перейти к следующему узлу.

Не обновляйте все узлы одновременно.

Типичные проблемы

apt update возвращает ошибку 401

Обычно включён enterprise-репозиторий без действующей подписки.

Проверьте:

grep -Rni enterprise   /etc/apt/sources.list   /etc/apt/sources.list.d

Настройка репозиториев должна соответствовать вашей подписке.

Ошибка Release file

Проверьте:

  • кодовое имя Debian;
  • URL репозитория;
  • дату и время;
  • DNS;
  • поддержку текущей версии.

После обновления не работает GUI

Проверьте:

systemctl status pveproxy --no-pager
journalctl -u pveproxy -n 100 --no-pager

Проверьте локально:

curl -kI https://127.0.0.1:8006/

После перезагрузки нет сети

Используйте локальную консоль.

Проверьте:

cat /etc/network/interfaces
ip -br addr
ip route

Сравните с резервной копией.

VM не запустились автоматически

Проверьте:

qm list
pct list

Проверьте параметр onboot.

Для VM:

qm config VM_ID |
grep onboot

Для LXC:

pct config CT_ID |
grep onboot

Хранилище стало inactive

Проверьте:

pvesm status

Для NFS проверьте сеть и mount.

Для ZFS:

zpool status

dpkg был прерван

Проверьте:

dpkg --audit

Завершите конфигурацию:

dpkg --configure -a

Затем:

apt --fix-broken install

Безопасный порядок обновления

  1. Проверить резервный доступ к консоли.
  2. Проверить VM, LXC и storage.
  3. Проверить свободное место.
  4. Проверить репозитории.
  5. Создать backup критичных объектов.
  6. Выполнить apt update.
  7. Проверить apt full-upgrade --dry-run.
  8. Выполнить обновление.
  9. Проверить ошибки пакетов.
  10. Перезагрузить при необходимости.
  11. Проверить сеть, storage, VM и LXC.
  12. Только после проверки выполнить очистку старых пакетов.

Быстрый набор команд

Версия:

pveversion -v

Обновление индекса:

apt update

Предварительная проверка:

apt full-upgrade --dry-run

Обновление:

apt full-upgrade

Проверка после:

dpkg --audit
systemctl --failed
pvesm status
qm list
pct list

Итог

После выполнения инструкции:

  • проверены версия и состояние узла;
  • проверены репозитории;
  • созданы резервные копии конфигурации и гостевых систем;
  • выполнено обновление пакетов;
  • проверена необходимость перезагрузки;
  • проверены сеть, storage, VM и LXC после запуска;
  • рассмотрены типичные проблемы и базовый откат.

Обновление Proxmox VE следует считать завершённым только после проверки всех сервисов, хранилищ и гостевых систем.

← Предыдущая статья Базовая настройка Proxmox Firewall Следующая статья → Мониторинг ресурсов узла Proxmox VE