16-го июля 2019 года вышло обновление популярной системы виртуализации Proxmox VE 6.0. Я решил, не откладывая в долгий ящик, выполнить обновление Proxmox с версии 5 до 6. Испытуемым выступил мой тестовый гипервизор для домашней лаборатории.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Содержание:
Изменения в Proxmox 6.0
Подробно об изменениях в Proxmox ve 6.0 можно посмотреть в официальном Roadmap. На opennet сделан перевод основных нововведений. Я внимательно все прочитал, но особо не заметил кардинальных изменений, которые обычно ждешь от новой ветки. Из основных изменений там вот что:
- Перешли на кодовую базу Debian 10 Buster.
- Все компоненты (QEMU, LXC, ZFS, Ceph и т.д.) обновили до более свежих версий.
- Небольшие изменения в gui и некоторого функционала.
Тем не менее, я решил обновить proxmox, чтобы сильно не отставать по версиям. Обычно, если отстаешь по обновлениям, потом все труднее и ленивее наверстывать. Больше шанс, что будут проблемы, если прыгаешь в обновлениях с большей разницей в версиях. Лучше все делать своевременно.
Обновление 5-й версии Proxmox до 6-й
Процесс обновления Proxmox c 5-й версии на 6-ю практически тривиален и подробно описан на официальном сайте - https://pve.proxmox.com/wiki/Upgrade_from_5.x_to_6.0. Я обновлял одиночный сервер, все получилось без проблем. В конце покажу видео, где человек обновляет кластер и у него тоже все получилось с первого раза по предложенной инструкции.
Обновлять буду следующий сервер - Proxmox 5.4-13.
Первым делом нужно обновить гипервизор до самой последней версии. Можно это сделать как через web интерфейс, так и через консоль командами:
# apt update && apt dist-upgrade
Дальше в консоли запускаем утилиту pve5to6. Она ничего не изменяет, просто проверяет proxmox на возможность обновления и выводит информацию.
Я запустил уже на обновленном сервере, так как забыл сохранить вывод до обновления. Но у вас будет примерно то же самое. У меня были 2 предупреждения:
- Система не обновлена до последней версии
- Работали виртуалки
Я запустил обновление, выключил виртуалки. Утилита написала, что все в порядке, можно обновляться. Дальше в файле с репозиториями /etc/apt/sources.list заменяем все упоминания stretch на buster. Можно это сделать вручную, либо автоматически через sed.
# sed -i 's/stretch/buster/g' /etc/apt/sources.list
У меня не были подключены никакие сторонние репозитории, плюс отключен репозиторий enterprise, так что мне больше ничего не пришлось делать.
После изменения списка репозиториев, обновляем кэш пакетов и ставим обновление proxmox 6.0.
# apt update && apt dist-upgrade
Если делаете удаленно по ssh, обязательно запускайте команду в screen или tmux. Если этого не сделать и оборвется связь, получите неработающий сервер, который хоть и можно будет починить, но придется повозиться. Я обновлял через ssh, все прошло без проблем.
После запуска обновления получил предупреждение.
В процессе обновления был еще вопрос на разрешение перезапуск служб. Я ответил положительно.
Еще было несколько вопросов про изменение конфигурационных файлов. Я везде ответил Not, то есть оставил старые конфиги, не заменил новыми. После завершения обновления получил новую версию Proxmox 6.
На глаз никаких изменений не заметил. Полез внимательно читать changelog, нашел там некоторые изменения в gui. Например, просмотр syslog изменился. Есть изменения по ceph, но я его не использую.
На этом все по обновлению proxmox до 6-й версии.
Заключение
В конце, как и обещал, видео с обновлением кластера Proxmox. Мне понравился формат и подача автора. С интересом посмотрел. Там же наглядно показано, как выполняется живая миграция виртуальных машин с одной ноды на другую. В итоге, весь кластер обновился до 6-й версии вообще без простоя. Отличный результат.
Видео обновления кластера proxmox
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.httpv://www.youtube.com/watch?v=-izPmkID0dI
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
И corosync обновили до 3ей версии, очень большое изменение. Как это не заметить?)
Попробовал обновить свой proxmox, в итоге отвалился веб-интерфейс, службы проксы не стартуют, пишет ошибку Unit pveproxy.service is masked. Смотрел на форуме похожу тему, но представленое там решение не помогло
Это какая-то у вас локальная проблема. Я полно серверов с proxmox 5 до 6 обновил и везде штатно все прошло. Вам надо в логах разбираться теперь и смотреть, в чем там проблемы.
Хочу поделиться одним неприятным баном.
Стоит proxmox 5.4.3 крутятся на нем один контейнер и две виртуалки под виндой.
Виртуалки были включены и решил проверить командой pve5to6 но ее не оказалось.
Через веб интерфейс обновил пакеты.
Подключены стандартные репы, откл Энтерпрайз и получена репа проксмокса no_subscribe.
Пакеты встали, все норм.
Понадобилось выключать одну виртуалки, а после включить, а она не стартует вообще. Нажимая старт, ошибка.
Поиски привели в багтрекер проксмокса. Обновляя пакет pve-qemu-kvm со 2.х версий до 3.х можно словить баг. Полная виртуализация квм не работает. А контейнер работает и после выключения, включается.
Поэтому сначало бэкап, потом выключайте все вм, обновляете пакеты и сам проксмок. Тогда всё работает.
Багом.
Без выключения виртуалок обновление не должно запускаться. По крайней мере у меня было так. Сначала все виртуалки выключил, потом запустил обновление.
Обновление самого proxmox'a да! Я имел ввиду обновление пакетов apt update && apt dist-upgrade
Добрый день. Обновился с 5 на 6-ку и получил непонятную проблему. Стали обрываться ssh-сессии. Раньше без tmux обходился, сейчас только с ним. Сесии обрываются как при работе с самим Proxmox, так и при использовании проброса ssh в виртуальную машину. При этом на сервере остаются зависшие ssh сеансы. С tmux никаких разрывов. Вот роюсь в инете на предмет похожего, поку ничего не нашел. Как у Вас с этим, не столкнулись?
Обычно непонятные глюки с сетью это проблемы с mtu. Как раз в первую очередь это замечаешь по проблемам с ssh. Еще бывает, что виртуалки клонируешь, забываешь mac поменять. Тоже начинаются непонятные проблемы с сетью, в том числе дисконнекты ssh.
Ну вот, а я надеялся. :) Значит это мои персональные грабли, но mtu - это точно не мой случай. И каналы у меня хорошие и потерь нет и mtu нигде не менялся. Все началось после обновления. Даже на провайдера подумать не могу - их у меня два и с обоими идентичная картина.
Спасибо Вам за ответ и успехов.
Добрый день.
Не могу понять, откуда берётся утилита pve5to6. Специально установил для теста предыдущий дистрибутив 5.4-3. Отключил платный репозиторий. Сделал apt update && apt dist-upgrade, получил:
After this operation, 225 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
W: (pve-apt-hook) !! WARNING !!
W: (pve-apt-hook) You are attempting to remove the meta-package 'proxmox-ve'!
W: (pve-apt-hook)
W: (pve-apt-hook) If you really want to permanently remove 'proxmox-ve' from your system, run the following command
W: (pve-apt-hook) touch '/please-remove-proxmox-ve'
W: (pve-apt-hook) run apt purge proxmox-ve to remove the meta-package
W: (pve-apt-hook) and repeat your apt invocation.
W: (pve-apt-hook)
W: (pve-apt-hook) If you are unsure why 'proxmox-ve' would be removed, please verify
W: (pve-apt-hook) - your APT repository settings
W: (pve-apt-hook) - that you are using 'apt full-upgrade' to upgrade your system
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
Нода одна, виртуалок нет.
Вообще, pve5to6 ставилась в одном из обновлений версии 5. Отдельно ее точно ставить не нужно было. А вот приведенная вами ошибка мне уже встречалась как-то раз. Я так с ней и не разобрался, потому что не было подменного гипервизора, я не стал рисковать и что-то делать. Попробуйте сделать, что предлагают в предупреждении и проверить, что в итоге получится после обновления.
# touch ‘/please-remove-proxmox-ve’
Вот и продолжил обновление и столкнулся с этой ошибкой выше.
В указанных репах было так:
deb http://ftp.debian.org/debian buster main contrib
deb http://ftp.debian.org/debian buster-updates main contrib
# security updates
deb http://security.debian.org buster/updates main contrib
и я добавил ещё репу и получилось так:
deb http://ftp.debian.org/debian buster main contrib
deb http://ftp.debian.org/debian buster-updates main contrib
# PVE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve buster pve-no-subscription
# security updates
deb http://security.debian.org buster/updates main contrib
И после снова apt update && apt dist-upgrade и всё пошло как надо.
Спасибо за подсказку! Такая же ошибка вылазила при обновлении пока не добавил репозиторий download.proxmox.com
У меня была ошибка (pve-apt-hook) You are attempting to remove the meta-package ‘proxmox-ve’!
Помогла команда touch ‘/please-remove-proxmox-ve’
После неё выполнил apt dist-upgrade и обновление пошло.
Было то же самое и так же поступил. Но было стремно так делать на проде. Сначала на тесте воспроизвел и убедился, что обновляется без проблем. Само сообщение выглядит так, как будто apt пытается удалить гипервизор зачем-то. Какое-то неочевидное действие. И ошибка эта у меня была не на всех серверах. Закономерность не понял.
А причина банальньна.
По умолчанию в документации сказано что что для установки прописывать информацию о репозитории в /etc/apt/source.list.d/pve-install-repo.list и в нем остается после выполнения # sed -i 's/stretch/buster/g' /etc/apt/sources.list
остается stretch. По этому и он предлагает удалить pve. так что надо подправлять pve-install-repo.list
Спасибо добрый человек. Я так и не узнал сам, в чем была причина.
У меня другая причина была может и у вас такая, проксмокс ставился поверх дебиана и был не удален пакет
решило проблему apt remove linux-image-amd64
Вышел на это так, сделал apt update потом apt upgrade а на full upgrade осталось ядро проксмокса и ядро линукса, т.к. второе очевидно не надо т.к. содержится в первом убил всё ок.
Вот тут не соглашусь. У меня ни одного упоминания о stretch не осталось нигде, а при apt dist-upgrade он всё равно пытался удалить pve пакеты. И такая ерунда на трёх на трёх серверах. Вместо apt dist-upgrade надо выполнить команду apt full-upgrade и всё установится корректно.
Для тех кто пользуется DRBD на proxmox. После обновления до 6той вресии, надо обновить пакеты DRBD.
Добавляем в sources.list файл libnit.list, в него пишем:
deb [trusted=yes] http://packages.linbit.com/proxmox/ proxmox-6 drbd-9.0
Сохраняем, apt update.
Далее ставим pve-headers под ваше новое ядро, обновляем пакеты drbd-dkms drbd-utils drbdtop. Перезагружаемся.
Добавлю от себя причину. В статье указано sed -i 's/stretch/buster/g' /etc/apt/sources.list но здесь не учитываются файлы в sources.list.d/
я выполнил после ошибки sed -i 's/stretch/buster/g' /etc/apt/sources.list.d/* и обновление пошло без всяких проблемм.
Попробовал перенести LXC контейнер из кластера (2 сервера proxmox5) на одиночный сервер proxmox6. Делал через резервирование на внешнее хранилище по NFS. Не получилось! Про восстановлении из резерва даёт ошибку. Такой перенос с младших выпусков на старшие в принципе невозможен? Получится ли "безболезненно" добавить новый сервер в кластер, сделать на него миграцию, а потом обновить остальные узлы до последней версии?
Какие буду соображения?
Разобрался....
На официальном сайте заявлен способ переноса с 5 на 6 через резервную копию. У меня была проблема именно с контейнером. В нём был установлен в том числе и DNS, работающий из под chroot. Вот логи с моими комментариями:
==================================
Неудачное восстановление:
Formatting '/var/lib/vz/images/204/vm-204-disk-0.raw', fmt=raw size=17179869184
mke2fs 1.44.5 (15-Dec-2018)
Discarding device blocks: 4096/4194304 done
Creating filesystem with 4194304 4k blocks and 1048576 inodes
Filesystem UUID: eaee2362-f672-4cc4-b5ed-182a8b77a8d1
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: 0/128 done
Writing inode tables: 0/128 done
Creating journal (32768 blocks): done
Multiple mount protection is enabled with update interval 5 seconds.
Writing superblocks and filesystem accounting information: 0/128 done
extracting archive '/mnt/pve/nfs-voip/dump/vzdump-lxc-204-2019_09_28-21_32_13.tar.gz'
tar: ./var/named/chroot/dev/random: Cannot mknod: Operation not permitted
tar: ./var/named/chroot/dev/zero: Cannot mknod: Operation not permitted
tar: ./var/named/chroot/dev/null: Cannot mknod: Operation not permitted
Total bytes read: 2036193280 (1.9GiB, 31MiB/s)
tar: Exiting with failure status due to previous errors
TASK ERROR: unable to restore CT 204 - command 'lxc-usernsexec -m u:0:100000:65536 -m g:0:100000:65536 -- tar xpf - -z --totals --one-file-system -p --sparse --numeric-owner --acls --xattrs '--xattrs-include=user.*' '--xattrs-include=security.capability' '--warning=no-file-ignored' '--warning=no-xattr-write' -C /var/lib/lxc/204/rootfs --skip-old-files --anchored --exclude './dev/*'' failed: exit code 2
=============================================
Удачное восстановление другого контейнера:
WARNING: ext4 signature detected on /dev/raid1-md2/vm-100-disk-0 at offset 1080. Wipe it? [y/n]: [n]
Aborted wiping of ext4.
Logical volume "vm-100-disk-0" created.
1 existing signature left on the device.
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 4194304 4k blocks and 1048576 inodes
Filesystem UUID: 020146d1-f6f4-475a-9263-7d5e17b7f7ec
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: 0/128 done
Writing inode tables: 0/128 done
Creating journal (32768 blocks): done
Multiple mount protection is enabled with update interval 5 seconds.
Writing superblocks and filesystem accounting information: 0/128 done
extracting archive '/mnt/pve/nfs-voip/dump/vzdump-lxc-100-2019_09_29-20_39_34.tar.gz'
Total bytes read: 1106708480 (1.1GiB, 40MiB/s)
Detected container architecture: amd64
TASK OK
=================================================
В контейнере был в том числе DNS сервер, установленный и работающий из под chroot. Видимо возникли проблемы с ним.
При восстановлении снял "галочку" - "непривилегированный контейнер"
Logical volume "vm-101-disk-0" created.
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 4194304 4k blocks and 1048576 inodes
Filesystem UUID: 8b318d0d-8af8-4df4-b85b-1e4bfababfc2
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: 0/128 done
Writing inode tables: 0/128 done
Creating journal (32768 blocks): done
Multiple mount protection is enabled with update interval 5 seconds.
Writing superblocks and filesystem accounting information: 0/128 4/128 done
extracting archive '/mnt/pve/nfs-voip/dump/vzdump-lxc-204-2019_09_29-21_18_27.tar.gz'
Total bytes read: 2036193280 (1.9GiB, 118MiB/s)
Detected container architecture: amd64
TASK OK
Может кому то пригодиться...
Обновил по Вашей инструкции. Все завелось, спасибо, но версия ядра пишет proxmox 5.0.21-1-pve
А как ядро обновить?
Так это у вас свежее ядро. Версия ядра не совпадает с версией самого proxmox. Это разные сущности.
Лично меня в версии 6 больше всего обрадовала возможность миграции ВМ, когда диск локальный. Раньше только для сетевых было. Вот уж и правда полезная штука для кластера в 2-3 бюджетных сервера.
Это все понятно а как вот ceph обновить?
Для этого отдельная инструкция - https://pve.proxmox.com/wiki/Ceph_Luminous_to_Nautilus
Я лично не знаю, насколько оправданно в проде делать такие обновления. Я бы не стал, сидел бы на стабильных старых версиях до последнего. Не имея подменного кластера, куда можно переехать в случае проблем, я бы не делал обновлений, особенно если нет достаточного опыта в ceph.
Не заметили ничего нового? Серьезно? Нативное шифрование ZFS не новое? А возможность установить Proxmox на пару NVME накопителей - тоже не ново? SSD Trim?
А что в этом удивительного? Вы считаете, что человек, использующий proxmox, обязательно должен использовать шифрование zfs и nvme накопители? И заметить эти изменения? Написал как есть.