6-го июля 2021 года вышел релиз популярной системы управления виртуализацией Proxmox Virtual Environment 7.0 (Proxmox VE 7). Я решил, не откладывая в долгий ящик, выполнить обновление своего гипервизора на базе Proxmox 6 до 7-й версии. Как это традиционно бывает для продуктов этого вендора, весь процесс хорошо документирован и в целом выглядит простым. С серьезными проблемами обычно не сталкиваешься.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Что нового в Proxmox 7
Не хочется в рамках данной статьи подробно останавливаться на всех нововведениях 7-й версии, так как это всё можно посмотреть в официальном документе - https://forum.proxmox.com/threads/proxmox-ve-7-0-released.92007/. Плюс, было много переводов на популярных IT порталах. Скажу только, что каких-то кардинальных и революционных изменений в функционале не было. Обновление больше техническое. Вот краткий список основного, что поменялось:
- Proxmox 7 перешел на кодовую базу Debian 11. Немного странно, что сделано это раньше выхода релиза 11-й версии Дебиан.
- Обновилась версия Цеф - Ceph Pacific 16.2, обновилась QEMU до 6.0, LXC до 4.0.
- Появилась встроенная поддержка файловой системы btrfs. По мне, это наиболее интересное изменение.
- Следом за добавлением btrfs изменился и установщик.
- Появилась новая панель в веб интерфейсе для управления репозиториями.
- Добавлена поддержка авторизации с помощью OpenID Connect.
Там еще много менее значительных обновлений. Не стану все перечислять. Переходим лучше к самому обновлению.
Подготовка к обновлению
Для начала информация для тех, у кого всё ещё 5-я версия. Обновите её по моей статье - Обновление Proxmox 5 до 6. После того, как сделаете это, возвращайтесь сюда. А мы готовимся обновить Proxmox 6 до 7. Я не буду заниматься самодеятельностью, а выполню то, что указано в официальном руководстве по обновлению - https://pve.proxmox.com/wiki/Upgrade_from_6.x_to_7.0. Если хорошо читаете по-английски, можете сразу переходить туда и делать по нему.
Перед обновлением важно ознакомиться со всеми нюансами:
- Версия Proxmox должна быть 6.4.
- Перед обновлением Proxmox нужно обязательно обновить Ceph до версии 15.2.
- Если используете Proxmox Backup Server, то не обновляйтесь до тех пор, пока не выйдет версия 2.0.
- У вас должны быть доступны все хранилища на момент обновления.
- На всякий случай должны быть сделаны бэкапы всех виртуальных машин и контейнеров.
- Должно быть доступно не менее 4GiB свободного места на корневом разделе.
- У вас изменится MAC адрес на сетевых бриджах vmbr. Подготовьтесь к этому заранее.
Перед обновлением обновим систему и перезагрузимся. Перезагружаться не обязательно, но я на всякий случай делаю это.
# apt update && apt dist-upgrade # reboot
Теперь запускаем утилиту pve6to7, чтобы проверить готовность вашего гипервизора к обновлению.
# pve6to7
Я получил одно предупреждение. У одного контейнера отсутствует указанный в конфигурации диск. Это очень старый контейнер, который не нужен. Я просто удалил его. Запустил еще раз утилиту, предупреждений не было. После этого можно двигаться дальше.
Как я уже сказал ранее, после обновления у вас изменится 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 # ... остальные настройки
Обновление Proxmox 6 до 7
Переходим непосредственно к обновлению. Нам нужно изменить основные системные репозитории. Можете это сделать вручную, заменив buster на bullseye в файле репозиториев /etc/apt/sources.list. Либо сделайте это же автоматически:
# cp /etc/apt/sources.list /etc/apt/sources.list.bak # sed -i 's/buster\/updates/bullseye-security/g;s/buster/bullseye/g' /etc/apt/sources.list
Проверяем, появились ли изменения:
# diff /etc/apt/sources.list /etc/apt/sources.list.bak
Всё в порядке. Можно запускать обновление Proxmox 6 до 7-й версии.
# apt update
К обновлению предлагается 741 пакет. Список внушительный, так что на первый взгляд мы всё делаем правильно. Обновляемся.
# apt dist-upgrade
В процессе вас спросят, точно ли вы уверены, что хотите обновить proxmox ve 6.4 до 7.0. Надо согласиться :)
Далее будет еще несколько вопросов на тему обновления конфигов. Можно ничего не менять и принимать дефолтное значение. После установки всех пакетов на всякий случай еще раз перезагрузитесь. После этого в веб интерфейсе увидите новую версию Proxmox VE 7.0. Поздравляю, обновление прошло успешно.
Видео
Заключение
Я выполнил обновление Proxmox VE до 7-й версии на своем домашнем тестовом гипервизоре. Никаких проблем в процессе не возникло. Тем не менее, не рекомендую обновлять прод, пока не выйдет хотя бы версия 7.1. Торопиться в таких делах нет никакого смысла. Можно вообще не обновляться, если вам не нужны нововведения. Никаких проблем не будет, если вы останетесь на старой версии, пока она еще поддерживается.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
для тех у кого LXC контейнеры с древней centos (после обновления до 7ки или 8ки у вас они работать не будут). нужно обновить systemd:
-> заходим в контейнер pct enter ID
-> запускаем сеть ifup eth0
-> wget https://copr.fedorainfracloud.org/coprs/jsynacek/systemd-backports-for-centos-7/repo/epel-7/jsynacek-systemd-backports-for-centos-7-epel-7.repo -O /etc/yum.repos.d/jsynacek-systemd-centos-7.repo
-> yum update systemd
-> перезапускаем контейнер
Спасибо за важную и полезную информацию.
если используется Open vSwitch перед обновлением с 6 на 7 нужно поставить ifupdown2. без него сеть не поднялась, спасло монтирование iso c proxmox7 через ilo и установка пакета /dists/bullseye/pve/binary-amd64/ifupdown2_3.1.0-1+pmx3_all.deb
Спасибо за информацию. А для чего может понадобиться Open vSwitch?
После обновления с 6 до 7 ноды не загружаются, висят на Starting PVE guest
start job is running for PVE guest бесконечно , ни на что не реагирует.
Как это исправить
Я про "Решение прописать в "/etc/network/interfaces" для бриджа MAC адрес сетевой карты."
Ребят, а ни у кого не было приколов при использовании ZRAID в ProxMox? Если создавать ZRAID из нескольких дисков, то у вас часть свободного пространства отводится под контрольные суммы. Так и должно быть. Но при этом в последних версиях при записи данных они занимают больший объём на диске примерно в 1,8 раза. Т.е. при создании виртуалки на 1 Тб, она занимает на диске 1,8 Тб. Это как-то не очень хорошо)
Вышел 7.1. Работает замечательно. Но проблема со сломанным io_uring никуда не делась, только усугубилась. Виснут машины, умирают данные на дисках. Чтобы этого не было, диски необходимо подключать к SCSI и писать aio=threads (если включено кеширование) или aio=native (если выключено кеширование).
Да, всё верно. Проблема не ушла. Сегодня как раз знакомый написал. Он обновил 6 до 7.1 и получил зависание VM при нагрузке на диски. Помогло описанное вами решение. Я сам неоднократно делал заметки в телеграм канале по этому поводу. Лично тоже столкнулся.
Я не вполне понимаю, почему они там в Proxmox так уперлись и не хотят отключить эту опцию глобально, хотя-бы до появления работоспособного ядра. Мы смогли (между зависаниями) сравнить скорость работы виртуальных машин с включенным и выключенным uring. На массиве Huawei Dorado 3000 V6 разницы в скорости вообще нет. Похоже, что в нынешнем состоянии io_uring не дает никакого прироста производительности, не нужно бояться его выключать.
После обновления на 7.0 перестал монтироваться том на ocfs2
Обновил несколько серверов. Везде был V6, работал как часы. С V7 куча проблем. Самое неприятное - он гад без каких-либо объявлений и логов иногда выключает сильно загруженные виртуальные машины. Если в виртуалке база 50Gb+ и по этой базе много чтения/записи - виртуалка гаснет, база дохнет. Не обновляйтесь, ждите стабильной версии.
Да, тоже хапнул проблем. Делал несколько заметок в telegram по этой теме. Мне от зависона виртуалок при повышенных i/o помог возврат к aio=native вместо нового параметра io_uring. Подробнее тут - https://t.me/srv_admin/1066 и тут - https://t.me/srv_admin/1088.
Там, где возможно, я сделал zfs и на нем диски raw. Эти машины с включенным юрингом еще ни разу не зависли и работают весьма шустро.
на ZFS ТОЛЬКО raw - др. не завезли.
База на ssd ?
Добрый день, пишу о проблеме с которой столкнулся сам. После обновления рабочего сервера не запустился один контейнер на котором стоит Centos 7, запуск происходил, но он не загружался, зависал как-будто. Перечитал кучу форумов и нашел такой нюанс. в pve7 используется cgroupv2 по умолчанию.
"https://pve.proxmox.com/pve-docs/chapter-pct.html#pct_cgroup" из рекомендаций было обновить Centos до 8 или откатиться или ждать обновления pve.
Простым решением оказалось следующее:
1) редактируем /etc/default/grub
2) ищем
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
и меняем на
GRUB_CMDLINE_LINUX_DEFAULT="systemd.unified_cgroup_hierarchy=0 quiet"
3) пишем update-grub
4) перезагружаем
И потом запускается без проблем наш LXC контейнер со старыми ОС
Дома я тож сразу обновляюсь, а на работе перехожу с задержкой, начинаю с тестового хоста кластера, иногда случались нюансы. Кластер обновлять не пробовали? (ha, nfs)
Ну а в целом переход pve6to7 кроме MAC адреса всё работает отлично? аномалий нет?
На моем тестовом сервере нет. Все прошло штатно. По опыту предыдущих обновлений проблем никогда не было, если обновление прошло нормально. Ошибки были во время самих обновлений.
О вкусностях в 7-ке.
Одна из самых существенных - появление IO_uring https://www.phoronix.com/scan.php?page=news_item&px=KVM-IO-uring-Passthrough-LF2020
Зы. Кому интересна тема Proxmox, ZFS etc - forum.netgate.com/topic/163435/proxmox-ceph-zfs-pfsense-%D0%B8-%D0%B2%D1%81%D0%B5-%D0%B2%D1%81%D0%B5-%D0%B2%D1%81%D0%B5-%D1%87%D0%B0%D1%81%D1%82%D1%8C-2/
Спасибо.
Лучше pve6to7 --full
Маленькое уточнение pve6to7 из коробки отсутствует (присутствует старый скрипт pve5to6), нужна платная подписка или выкачайте обновления из репозитория без подписки.
Не отсутствует. У меня нет платной подписки. Скрипт прилетел сам с каким-то обновлением.
Подтвержу слова комментатора выше, у меня 6.4-4 и тоже нет в нет pve6to7
# pve6to7
-bash: pve6to7: command not found
# ls /usr/bin/pv*
/usr/bin/pve5to6
Отвечу сам себе )
Не долго искал и нашел в чем косяк…
Был указан репозиторий (бесплатный) для stretch версии debian, хотя по факту работает он на buster (видимо что-то когда-то не поменяли)
$ cat /etc/os-release
…
VERSION="10 (buster)"
$ cat /etc/apt/sources.list.d/pve-enterprise.list
#deb https://enterprise.proxmox.com/debian/pve buster pve-enterprise
deb http://download.proxmox.com/debian stretch pve-no-subscription
Всё поправил, обновил и pve6to7 появился
Есть еще один нюанс: если в сорцы добавляли репозиторий "pve-no-subscription", то там тоже надо заменить имя дистрибутива на bullseye.
В противном случае обновление может произойти не полностью и pve будет не работоспособен.
Чинится не сложно: меняем таки на bullseye pve-no-subscription, apt update, apt upgrade, apt install proxmox-ve.
Тоже хотел глянуть на Prox 7, запустил в Vmware Player, но видимо из-за слишком нового ядра 5.11 там ни в какую не стартует сеть. Обидно. Попробовал на Virtualbox, там всё норм.
Так то там смотреть особо не на что. Можно просто видюху глянуть. Изменений не очень много.
А на каком железе у вас всё заработало на виртуал боксе? вчера весь вечер пробовал на 2-х компьютерах на 1155 сокете VirtualBox-6.1.22-144080-Win, результат одинаковый как после чистой установки 7.0-1 так и после обновления (возможно кривого) с 6.4 до 7.0,
Пробовал как разные типы соединения (адаптер хоста и бридж), так и разные типы сетевых карт (virtio-net и intel pro 1000), результат один доступа на машину по сети нет, при том DHCP клиент работаете, arp запись мака бриджа я вижу, но обмена трафиком нет.
Снимаю свой вопрос, в ProxMox VE 7.0-1 из коробки не работает сеть, а именно если MAC адрес бриджа не совпадает с мак адресом сетевой карты (после новой установки они не совпадают по умолчанию), сеть работать не будет,
Решение прописать в "/etc/network/interfaces" для бриджа MAC адрес сетевой карты.
p.s.: если вы обновляете proxmox и не сделали фиксацию MAC адреса бриджа проблема повторится, так что фиксация мак адреса бриджа не желательна, а !обязательна!.
Благодарю, вы сэкономили мне кучу времени ))
У меня видимо случайно получилось на Virtualbox-6.1.22 на Mint19.3 , потому что я ничего не делал в настройках.
Надо вкл. Nested virtualization для работы PVE на VB.
Извиняюсь за вопрос - а как это правильно сделать?