Обновление домашнего гипервизора затрагивает сразу несколько сервисов. Пока сервер перезагружается, недоступны виртуальные машины, которые на нём работают. А после загрузки нужно понять, всё ли вернулось в рабочее состояние.

Мы обновили домашний хост с Proxmox VE 8 до 9. Подготовка заняла заметную часть работы: проверили резервные копии, восстановили одну машину отдельно и сохранили настройки хоста. После обновления обнаружился нюанс, который проверка самого Proxmox не могла показать: Home Assistant попытался подключить сетевое хранилище раньше, чем NAS успел запуститься.

Сначала проверили резервные копии

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

Затем одну ВМ — контроллер домашней сети — восстановили в отдельное изолированное окружение. Гостевая система загрузилась, служба приложения запустилась. После проверки временную машину удалили.

Это дало более убедительный результат, чем сообщение об успешном завершении резервирования. При этом пробное восстановление провели только для одной ВМ. Для остальных подтвердили целостность архивов, но полный запуск из копии отдельно не проверяли.

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

Сохранили настройки самого хоста

Резервная копия виртуальной машины не содержит всю конфигурацию гипервизора. Поэтому отдельно сохранили настройки хоста, а перед обновлением сделали свежие снимки остановленных ВМ.

Особое внимание уделили загрузке и сети. После перезагрузки сервер должен не только запустить новое ядро, но и остаться доступным для управления.

Для физического сетевого интерфейса закрепили имя по MAC-адресу и проверили, что настройка попала в загрузочный образ. Старое ядро оставили как запасной вариант. Возможности ZFS в рамках этой работы не обновляли.

Это не гарантировало автоматический откат всей системы, но сохраняло дополнительные варианты восстановления при проблемах.

Обновляли хост, не смешивая задачи

Переход на Proxmox VE 9 связан с обновлением базовой системы до Debian 13. Эта основа указана в официальном сообщении Proxmox.

Сначала установили актуальные пакеты прежней версии. Затем подготовили репозитории для перехода и штатно остановили виртуальные машины.

Обновление выполняли в сессии tmux, чтобы процесс не зависел от открытого окна SSH. Приложения внутри ВМ в этой работе не обновляли: так после перезагрузки было проще отделить последствия изменения хоста от изменений самих сервисов.

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

Во время обновления пришлось разобраться с конфликтующим пакетом systemd-boot. Удалили именно конфликтующий метапакет, сохранив необходимые компоненты загрузчика.

Также потребовались перезагрузка настроек AppArmor, перезапуск службы времени и приведение службы локальной почты к актуальной схеме запуска.

Это детали конкретной установки. Повторять такие действия на другом сервере без проверки его конфигурации было бы неправильно: одинаковое название проблемы ещё не означает одинаковый способ исправления.

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

Первым проверили сам хост: состояние пакетов и служб, доступность хранилищ и результаты проверки перехода.

Команда pve8to9 --full завершилась без предупреждений и ошибок: 35 проверок прошли, семь были пропущены. Проверка пакетов не обнаружила незавершённых операций, служб в состоянии failed не осталось. Хранилища были доступны.

Затем проверили виртуальные машины. Все пять запустились автоматически.

Последним шагом стали приложения. Открывались панели Proxmox, контроллера сети, телефонии и NAS. В Home Assistant проверили состояние Supervisor и запуск основных компонентов.

Открытие панели не подтверждает каждую функцию приложения. Но такая проверка позволяет заметить больше, чем один статус «ВМ работает».

NAS загрузился позже Home Assistant

После общего запуска Home Assistant не смог сразу подключить сетевое хранилище. NAS ещё загружался, и SMB-ресурс не был готов.

Когда хранилище стало доступно, запустили существующее подключение повторно. Оно заработало, ошибка службы исчезла.

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

В рамках обновления порядок запуска не меняли. Поэтому подключение восстановили, а задачу согласования запуска NAS и Home Assistant оставили отдельно.

Когда работу можно считать законченной

После обновления хост загрузился, хранилища были доступны, пять виртуальных машин запустились, проверенные панели и службы отвечали.

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

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