Home » Виртуализация » Proxmox » Обновление Proxmox 7 до 8

Обновление Proxmox 7 до 8

22 июня 2023 года вышел очередной релиз популярной системы виртуализации Proxmox VE 8.0. Выждав небольшой срок, я решил провести обновление одного из своих серверов. Обычно это не вызывает каких-то особых проблем, потому что процесс проходит штатно, если следовать официальной инструкции. Так как у меня много серверов с Proxmox VE под управлением, решил сделать своё пошаговое руководство по обновлению с 7 на 8-ю версию.

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Что нового в 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.

Некоторые замечания перед обновлением:

  1. Убедитесь, что у вас есть бэкапы всего, что будет затронуто обновлением. Не забудьте проверить, что из них можно выполнить восстановление.
  2. У вас будет небольшой простой сервисов, так как во время обновления потребуется остановить все виртуальные машины и выполнить перезагрузку гипервизора.
  3. Варианта обновления Proxmox VE два: обновить текущий гипервизор или выполнить чистую установку новой версии и восстановить на неё бэкапы виртуальных машин.

Если вы хотите перенести всё на новую установку, то помимо бэкапа виртуальных машин, потребуется сохранить настройки в директории /etc/pve и системные файлы /etc/passwd, /etc/network/interfaces, /etc/resolv.conf. После установки новой версии, достаточно венуть эти файлы и восстановить бэкапы виртуальных машин.

Если вы будете обновлять текущую установку Proxmox VE, то проверьте следующие моменты:

  1. У вас версия Proxmox VE 7.4 на всех нодах кластера.
  2. Если используете Ceph, предварительно обновите его до версии Ceph 17.2 Quincy, прежде чем начнёте обновлять сам Proxmox. Для этого можно воспользоваться инструкциями: Ceph Octopus to Pacific и Ceph Pacific to Quincy.
  3. Если и спользуете Proxmox Backup Server, то обновите его до 3-й версии: Proxmox Backup Server 2 to 3 upgrade how-to.
  4. На всякий случай убедитесь, что у вас есть доступ к консоли сервера, помимо SSH доступа.
  5. Нужно будет как минимум 5G свободного места на корневом разделе /.

Обновление Proxmox 7 до 8

На всякий случай обновите саму систему:

# apt update && apt dist-upgrade

Запустите скрипт проверки готовности к обновлению:

# pve7to8

Обновление Proxmox 7 до 8

Убедитесь, что нет ошибок. Если есть, то их нужно исправить.

После обновления у вас может измениться 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 8.0

Ошибки во время обновления 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. Торопиться в таких делах нет никакого смысла. Можно вообще не обновляться, если вам не нужны нововведения. Никаких проблем не будет, если вы останетесь на старой версии, пока она еще поддерживается.

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

24 комментария

  1. Дмитрий К.

    Товарищи, прошу помочь: "Если обновление прервётся, то есть шанс получить неработающий сервер, хотя и не обязательно это случится" - вот это самое и произошло(( проксмокс загружается, выходит "Велком, можно коннектится по такому-то адресу" но вебка не доступна.
    На "systemctl start pveproxy" отвечает: Failed to start pveproxy.service: Unit pveproxy.service is masked. Как правильнее начать спасать данные, ну а лучше конечно это запустить обратно в работу

    • Посмотрите логи службы pveproxy. Возможно там будет подсказка проблемы. Вообще, веб интерфейс не связан напрямую с работой виртуальных машин. Они могут успешно работать при неработающем pveproxy. А управлять ими можно через консольные команды. И спокойно чинить веб интерфейс.

  2. Еще одно важное нововведение в 8 версии связанное с переходиом на новое ядро linux в котором улучшилась поддержка гибридных процессоров Intel начиная с 12 поколения.

    На NUC gen 12 из всех гипервизоров нармально заработал только Proxmox 8.
    На NUC gen 11 ставился любой гипервизор - там все ядра еще были одинаковые...

  3. Николай

    "До конца не понял, какую прикладную задачу это решает."
    Скорее всего для сценариев удаленной установки. Например когда консоль редиректится на com порт. или когда установка идет по подключению SSH.

  4. Vladyslav Honcharov

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

  5. Спасибо вам!

  6. Добрый день. Не совсем в тему, но что-то нагуглить не могу. Есть два физ. сервера с proxmox 7.4 объединённых в кластер. С каждого сервера идёт линк в свитч. Свитч 100Мбит/с. Добавили в каждый сервер по гигабитной сетевой, и соединили их пачкордом. Настроили, пинг ходит.
    В разделе Datacenter/Cluster добавил линк. Т.е. Link0 - пачкорд между гигабитными сетевыми; Link1 - через 100Мбитный свитч.
    Почему миграция ВМ с сервера на сервер идёт через Link1, а не через Link0. Где указывается этот приоритет ?

    • Иллинори

      Скорее всего уже поздно, но..

      Параметры миграции указываются или в теле команды (если запуск из консоли) или берутся из /etc/pve/datacenter.cfg.
      migration: network=XXX.XXX.XXX.XXX/XX,type=insecure
      где вместо XXX.XXX.XXX.XXX/XX указать CIDR нужной подсети. Внутри локальной сети не вижу особого смысла ставить secure, но всякое бывает, могут и по нешифрованным туннелям миграции идти.
      Полный перечень допустимых ключей:
      https://pve.proxmox.com/wiki/Manual:_datacenter.cfg

  7. Андрей

    "До конца не понял, какую прикладную задачу это решает."

    Проброс в виртуальную машину графического ускорителя, например.

    • Пробросы оборудования в виртуальную машину работают в Proxmox очень давно. С самых первых версий.

      • Андрей

        А проброс независимо от хоста?

        • А как это возможно? С одного хоста пробрасывается видеокарта в виртуалку на другом хосте? По-моему обновление не про это говорит. Да и технически разве это возможно? Я поэтому и написал, что не до конца понимаю, какое конкретно обновление функциональности сделали. Какую проблему решили.

          • Андрей

            Я не знаю как на Proxmox, но на VMware есть разные сценарии миграции виртуальных машин на хосты, включая только на те, на которых есть, например, поддержка vGPU. Ну, то есть, ты делаешь обслуживание хоста и у тебя виртуалки автоматически переехали на другой хост и весь нужный функционал продолжает работать. Например, твои пользователи работают с 3D моделированием в каких-то CAD программах и без vGPU ничего работать не будет. Возможно, здесь нечто похожее.

            • Да, судя по описанию, этот как раз такая же функциональность. Привязать к VM оборудование и сделать невозможным переезд на те хосты, где этого оборудования нет.

  8. Вдруг кому поможет.
    На одном серваке обновил по данной инструкции и все ок, а вот на втором словил описанную ошибку.
    Удаление всех linux-image-amd64 не помогло (у меня их было 3 шт). Ошибка осталась на месте.
    Заметил, что при apt update ругалось на bullseye.
    Полез на вики проксмокса и добавил оттуда
    echo "deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise" > /etc/apt/sources.list.d/pve-enterprise.list
    sed -i -e 's/bullseye/bookworm/g' /etc/apt/sources.list.d/pve-install-repo.list
    после этого процесс пошел и сервер обновился.

  9. Спасибо.
    Не упомянуто то, что в 8-ке есть проблемы с драйвером сетевых Реалтек - r8169
    Решение - использовать r8168.
    Весь офиц. форум гудит (

  10. Не находил пакетов в родных репозиториях. Пришлось докинуть зеркала яндекс.
    nano /etc/apt/sources.list.d

    deb http://ftp.ru.debian.org/debian bookworm main contrib
    deb http://mirror.yandex.ru/debian bookworm main contrib

    deb http://ftp.ru.debian.org/debian bookworm-updates main contrib
    deb http://mirror.yandex.ru/debian bookworm-updates main contrib

    # security updates
    deb http://security.debian.org bookworm-security main contrib

    deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription

    Но и сразу прописать бесплатные репы от прокса для проксмокс.
    После этого всё полетело как надо

    • Как это не находил в родных репах, если на яндексе их зеркала, то есть полные копии? Ни разу с таким не сталкивался.

      • Вот и мне показалось это странным. Делал по быстрому и ночью что бы минимальный простой... и к сожалению не записал чего он там не нашел в стандартных репах. Для проверки по быстрой закинул зеркало яндекс.. и по новой перечитал репы и запустил обновление и всё полетело. Блин посмотрел логи apt нет там каких пакетов он не находил.

  11. Не хватает echo "deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise" > /etc/apt/sources.list.d/pve-enterprise.list и sed -i -e 's/bullseye/bookworm/g' /etc/apt/sources.list.d/pve-install-repo.list

  12. Аноним

    Спасибо за пост

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar