Безопасное обновление 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
Откат на предыдущее ядро
Если новое ядро не загружается или вызывает проблемы:
- Откройте консоль.
- В меню загрузчика выберите предыдущее ядро.
- Загрузите систему.
- Проверьте
uname -r. - Проанализируйте журнал.
- Не удаляйте новое ядро до выяснения причины.
Для удалённого сервера резервная консоль обязательна.
Обновление кластера
В кластере узлы обновляют по очереди.
Общий порядок:
- Проверить quorum.
- Проверить миграцию VM.
- Переместить нагрузки с узла.
- Обновить один узел.
- Перезагрузить.
- Проверить кластер.
- Перейти к следующему узлу.
Не обновляйте все узлы одновременно.
Типичные проблемы
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
Безопасный порядок обновления
- Проверить резервный доступ к консоли.
- Проверить VM, LXC и storage.
- Проверить свободное место.
- Проверить репозитории.
- Создать backup критичных объектов.
- Выполнить
apt update. - Проверить
apt full-upgrade --dry-run. - Выполнить обновление.
- Проверить ошибки пакетов.
- Перезагрузить при необходимости.
- Проверить сеть, storage, VM и LXC.
- Только после проверки выполнить очистку старых пакетов.
Быстрый набор команд
Версия:
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 следует считать завершённым только после проверки всех сервисов, хранилищ и гостевых систем.