22 июня 2023 года вышел очередной релиз популярной системы виртуализации Proxmox VE 8.0. Выждав небольшой срок, я решил провести обновление одного из своих серверов. Обычно это не вызывает каких-то особых проблем, потому что процесс проходит штатно, если следовать официальной инструкции. Так как у меня много серверов с Proxmox VE под управлением, решил сделать своё пошаговое руководство по обновлению с 7 на 8-ю версию.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Что нового в 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.
Некоторые замечания перед обновлением:
- Убедитесь, что у вас есть бэкапы всего, что будет затронуто обновлением. Не забудьте проверить, что из них можно выполнить восстановление.
- У вас будет небольшой простой сервисов, так как во время обновления потребуется остановить все виртуальные машины и выполнить перезагрузку гипервизора.
- Варианта обновления Proxmox VE два: обновить текущий гипервизор или выполнить чистую установку новой версии и восстановить на неё бэкапы виртуальных машин.
Если вы хотите перенести всё на новую установку, то помимо бэкапа виртуальных машин, потребуется сохранить настройки в директории /etc/pve и системные файлы /etc/passwd, /etc/network/interfaces, /etc/resolv.conf. После установки новой версии, достаточно венуть эти файлы и восстановить бэкапы виртуальных машин.
Если вы будете обновлять текущую установку Proxmox VE, то проверьте следующие моменты:
- У вас версия Proxmox VE 7.4 на всех нодах кластера.
- Если используете Ceph, предварительно обновите его до версии Ceph 17.2 Quincy, прежде чем начнёте обновлять сам Proxmox. Для этого можно воспользоваться инструкциями: Ceph Octopus to Pacific и Ceph Pacific to Quincy.
- Если и спользуете Proxmox Backup Server, то обновите его до 3-й версии: Proxmox Backup Server 2 to 3 upgrade how-to.
- На всякий случай убедитесь, что у вас есть доступ к консоли сервера, помимо SSH доступа.
- Нужно будет как минимум 5G свободного места на корневом разделе /.
Обновление Proxmox 7 до 8
На всякий случай обновите саму систему:
# apt update && apt dist-upgrade
Запустите скрипт проверки готовности к обновлению:
# pve7to8
Убедитесь, что нет ошибок. Если есть, то их нужно исправить.
После обновления у вас может измениться 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
Очень частой ошибкой во время обновления 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.
Во время обновления возникла ошибка:
E: Sub-process /usr/share/proxmox-ve/pve-apt-hook returned an error code (1)
E: Failure running script /usr/share/proxmox-ve/pve-apt-hook
Как решил,
переименовал файл /usr/share/proxmox-ve/pve-apt-hook в /usr/share/proxmox-ve/pve-apt-hook.bak
создал пустой файл /usr/share/proxmox-ve/pve-apt-hook
дал ему права на запуск, после этого обновление прошло успешно.
mv /usr/share/proxmox-ve/pve-apt-hook /usr/share/proxmox-ve/pve-apt-hook.bak
nano /usr/share/proxmox-ve/pve-apt-hook
chmod u+x /usr/share/proxmox-ve/pve-apt-hook
Я решился обновиться до 8, но как назло что-то пошло не так))) сервер обновился, но был нежданчик https://forum.proxmox.com/threads/kernel-panics-after-6-8-8-2-pve-upgrade.150084/
на старом ядре загрузилось, потом еще танцы с бубном чтобы заработал veeam
Интересный квест получился )))
Не совсем понял, а в чём причина проблем?
На ядре 6.8.8-2-pve сервер не загружается.
Это я понял. А почему не загружался, в чём причина, удалось выяснить?
Спасибо за мануал. Все отлично обновилось.
Товарищи, прошу помочь: "Если обновление прервётся, то есть шанс получить неработающий сервер, хотя и не обязательно это случится" - вот это самое и произошло(( проксмокс загружается, выходит "Велком, можно коннектится по такому-то адресу" но вебка не доступна.
На "systemctl start pveproxy" отвечает: Failed to start pveproxy.service: Unit pveproxy.service is masked. Как правильнее начать спасать данные, ну а лучше конечно это запустить обратно в работу
Посмотрите логи службы pveproxy. Возможно там будет подсказка проблемы. Вообще, веб интерфейс не связан напрямую с работой виртуальных машин. Они могут успешно работать при неработающем pveproxy. А управлять ими можно через консольные команды. И спокойно чинить веб интерфейс.
При обновлении получил точно такую же ситуацию с такой же ошибкой . Вылечилось apt-get install proxmox-ve
Еще одно важное нововведение в 8 версии связанное с переходиом на новое ядро linux в котором улучшилась поддержка гибридных процессоров Intel начиная с 12 поколения.
На NUC gen 12 из всех гипервизоров нармально заработал только Proxmox 8.
На NUC gen 11 ставился любой гипервизор - там все ядра еще были одинаковые...
Спасибо за информацию.
"До конца не понял, какую прикладную задачу это решает."
Скорее всего для сценариев удаленной установки. Например когда консоль редиректится на com порт. или когда установка идет по подключению SSH.
Добрый день, поправьте очепятку в самом начале с датой , год не правильный
Спасибо вам!
Добрый день. Не совсем в тему, но что-то нагуглить не могу. Есть два физ. сервера с 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
"До конца не понял, какую прикладную задачу это решает."
Проброс в виртуальную машину графического ускорителя, например.
Пробросы оборудования в виртуальную машину работают в Proxmox очень давно. С самых первых версий.
А проброс независимо от хоста?
А как это возможно? С одного хоста пробрасывается видеокарта в виртуалку на другом хосте? По-моему обновление не про это говорит. Да и технически разве это возможно? Я поэтому и написал, что не до конца понимаю, какое конкретно обновление функциональности сделали. Какую проблему решили.
Я не знаю как на Proxmox, но на VMware есть разные сценарии миграции виртуальных машин на хосты, включая только на те, на которых есть, например, поддержка vGPU. Ну, то есть, ты делаешь обслуживание хоста и у тебя виртуалки автоматически переехали на другой хост и весь нужный функционал продолжает работать. Например, твои пользователи работают с 3D моделированием в каких-то CAD программах и без vGPU ничего работать не будет. Возможно, здесь нечто похожее.
Да, судя по описанию, этот как раз такая же функциональность. Привязать к VM оборудование и сделать невозможным переезд на те хосты, где этого оборудования нет.
Вдруг кому поможет.
На одном серваке обновил по данной инструкции и все ок, а вот на втором словил описанную ошибку.
Удаление всех 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
после этого процесс пошел и сервер обновился.
Спасибо.
Не упомянуто то, что в 8-ке есть проблемы с драйвером сетевых Реалтек - r8169
Решение - использовать r8168.
Весь офиц. форум гудит (
С этим драйвером вроде и раньше проблемы были. Я когда-то сталкивался с проблемами Реалтек, но не помню версии.
Пробую установить 8ку на пром. ПК с двумя портами ethernet.
Один порт отключил в BIOS.
Как раз у меня показывает установщик r8169.
Нет вебморды.
Написал подробнее тут https://serveradmin.ru/forum/proxmox/ustanovka-proxmox-ve-8-1-2-net-web-mordy-realtek-rtl8111-8168-8411/
Не находил пакетов в родных репозиториях. Пришлось докинуть зеркала яндекс.
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 нет там каких пакетов он не находил.
Не хватает 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
Спасибо за пост