Hi all,
I'm working on a production cluster, got a trouble migrating from 6.3-3 to 6.4-13, and found a (very simple) solution.
I post it here for further notice and help, to get it crawled by search engines.
Material: 3 nodes, Threadripper 2950X - 128Go ECC DDR4, 4x2To SSD SATA, 10G-BaseT links, 25 VMs.
As a production cluster, I tested this behavior on a test cluster before deploying.
The purpose is to upgrade a v6.3-3 cluster to v6.4, to end on a mature v7 one.
Question: Why keeping the cluster on a so old v6.3-3 version ?
Response: To keep the production server as functionnal as possible. As it is working very well, keep it working as is.
NOTICE: Please migrate all your VMs/containers before upgrading any node.
So, as you can figure out, if you try to upgrade a buster proxmox node in late september, you will get an error at "apt-get update" level as stable is Bullseye now.
So, let's update, knowing that stable changed, allways with an "apt-get update", but with the "--allow-releaseinfo-change" option
So, let's try an upgrade in "pretend" mode.
Everything seems OK, so, let's download all these packages, to get them available.
Ok, then, time to upgrade them (and get an error, and workaround it).
Mama ! There is a problem! Let's try the "systemctl status pvedaemon.service"
As you can figure, pve-daemon, pve-proxy, and pve-manager are not working.
No web GUI interface, big stress.
So the workaround. We have to end the upgrade. Let's dist-upgrade.
We can check if pvedaemon is working
Web GUI is fonctionnal, node is upgraded to 6.4-13, more easyly upgradable to v7
Everything is back to production.
Hey ! There were a lot of removable packages !
Mainly kernel packages.
So let's remove them.
Thanks to the Proxmox people, for this exceptional work.
Thanks to Fabrice Bellard, for creating qemu. Fabrice Bellard homepage. QEMU homepage
I'm working on a production cluster, got a trouble migrating from 6.3-3 to 6.4-13, and found a (very simple) solution.
I post it here for further notice and help, to get it crawled by search engines.
Material: 3 nodes, Threadripper 2950X - 128Go ECC DDR4, 4x2To SSD SATA, 10G-BaseT links, 25 VMs.
As a production cluster, I tested this behavior on a test cluster before deploying.
The purpose is to upgrade a v6.3-3 cluster to v6.4, to end on a mature v7 one.
Question: Why keeping the cluster on a so old v6.3-3 version ?
Response: To keep the production server as functionnal as possible. As it is working very well, keep it working as is.
NOTICE: Please migrate all your VMs/containers before upgrading any node.
So, as you can figure out, if you try to upgrade a buster proxmox node in late september, you will get an error at "apt-get update" level as stable is Bullseye now.
This error is normal, as stable is Bullseye now.~# apt-get update
Get:1 http://security.debian.org buster/updates InRelease [65.4 kB]
Get:2 http://ftp.fr.debian.org/debian buster InRelease [122 kB]
Get:3 http://ftp.fr.debian.org/debian buster-updates InRelease [51.9 kB]
Hit:4 http://download.proxmox.com/debian buster InRelease
Hit:5 http://download.proxmox.com/debian/ceph-nautilus buster InRelease
Reading package lists... Done
E: Repository 'http://security.debian.org buster/updates InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
E: Repository 'http://ftp.fr.debian.org/debian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
E: Repository 'http://ftp.fr.debian.org/debian buster-updates InRelease' changed its 'Suite' value from 'stable-updates' to 'oldstable-updates'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
So, let's update, knowing that stable changed, allways with an "apt-get update", but with the "--allow-releaseinfo-change" option
This time, there are juste notifications, and no errors.~# apt-get update --allow-releaseinfo-change
Get:1 http://ftp.fr.debian.org/debian buster InRelease [122 kB]
Get:2 http://security.debian.org buster/updates InRelease [65.4 kB]
Get:3 http://ftp.fr.debian.org/debian buster-updates InRelease [51.9 kB]
Get:4 http://security.debian.org buster/updates/main amd64 Packages [305 kB]
Hit:5 http://download.proxmox.com/debian buster InRelease
Hit:6 http://download.proxmox.com/debian/ceph-nautilus buster InRelease
Get:7 http://security.debian.org buster/updates/main Translation-en [160 kB]
Get:8 http://ftp.fr.debian.org/debian buster-updates/main amd64 Packages.diff/Index [8,116 B]
Get:9 http://ftp.fr.debian.org/debian buster-updates/main amd64 Packages 2021-09-18-2009.26.pdiff [1,110 B]
Get:9 http://ftp.fr.debian.org/debian buster-updates/main amd64 Packages 2021-09-18-2009.26.pdiff [1,110 B]
Fetched 596 kB in 0s (1,283 kB/s)
Reading package lists... Done
N: Repository 'http://security.debian.org buster/updates InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
N: Repository 'http://ftp.fr.debian.org/debian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
N: Repository 'http://ftp.fr.debian.org/debian buster-updates InRelease' changed its 'Suite' value from 'stable-updates' to 'oldstable-updates'
So, let's try an upgrade in "pretend" mode.
:~# apt-get -s upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
pve-kernel-5.0.21-1-pve pve-kernel-5.0.21-2-pve pve-kernel-5.0.21-3-pve pve-kernel-5.0.21-4-pve pve-kernel-5.3.10-1-pve pve-kernel-5.3.13-1-pve
pve-kernel-5.3.13-3-pve pve-kernel-5.3.18-1-pve pve-kernel-5.3.18-2-pve pve-kernel-5.4.41-1-pve
Use 'apt autoremove' to remove them.
The following packages have been kept back:
libproxmox-acme-perl libpve-storage-perl pve-container pve-kernel-5.4 qemu-server zfs-initramfs zfs-zed zfsutils-linux
The following packages will be upgraded:
(...)
Everything seems OK, so, let's download all these packages, to get them available.
~# apt-get -d upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
pve-kernel-5.0.21-1-pve pve-kernel-5.0.21-2-pve pve-kernel-5.0.21-3-pve pve-kernel-5.0.21-4-pve pve-kernel-5.3.10-1-pve pve-kernel-5.3.13-1-pve
pve-kernel-5.3.13-3-pve pve-kernel-5.3.18-1-pve pve-kernel-5.3.18-2-pve pve-kernel-5.4.41-1-pve
Use 'apt autoremove' to remove them.
The following packages have been kept back:
libproxmox-acme-perl libpve-storage-perl pve-container pve-kernel-5.4 qemu-server zfs-initramfs zfs-zed zfsutils-linux
The following packages will be upgraded:
(...)
117 upgraded, 0 newly installed, 0 to remove and 8 not upgraded.
Need to get 207 MB of archives.
After this operation, 22.8 MB of additional disk space will be used.
Do you want to continue? [Y/n]
(...)
Fetched 207 MB in 22s (9,290 kB/s)
Download complete and in download only mode
Ok, then, time to upgrade them (and get an error, and workaround it).
~# apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
pve-kernel-5.0.21-1-pve pve-kernel-5.0.21-2-pve pve-kernel-5.0.21-3-pve pve-kernel-5.0.21-4-pve pve-kernel-5.3.10-1-pve pve-kernel-5.3.13-1-pve
pve-kernel-5.3.13-3-pve pve-kernel-5.3.18-1-pve pve-kernel-5.3.18-2-pve pve-kernel-5.4.41-1-pve
Use 'apt autoremove' to remove them.
The following packages have been kept back:
libproxmox-acme-perl libpve-storage-perl pve-container pve-kernel-5.4 qemu-server zfs-initramfs zfs-zed zfsutils-linux
The following packages will be upgraded:
(...)
117 upgraded, 0 newly installed, 0 to remove and 8 not upgraded.
Need to get 0 B/207 MB of archives.
After this operation, 22.8 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Reading changelogs... Done
Extracting templates from packages: 100%
Preconfiguring packages ...
(...)
Setting up pve-manager (6.4-13) ...
Job for pvedaemon.service failed.
See "systemctl status pvedaemon.service" and "journalctl -xe" for details.
dpkg: error processing package pve-manager (--configure):
installed pve-manager package post-installation script subprocess returned error exit status 1
Setting up dnsutils (1:9.11.5.P4+dfsg-5.1+deb10u5) ...
Setting up ceph (14.2.22-pve1) ...
dpkg: dependency problems prevent configuration of proxmox-ve:
proxmox-ve depends on pve-manager; however:
Package pve-manager is not configured yet.
dpkg: error processing package proxmox-ve (--configure):
dependency problems - leaving unconfigured
Processing triggers for pve-ha-manager (3.1-1) ...
Processing triggers for mime-support (3.62) ...
Processing triggers for libc-bin (2.28-10) ...
Processing triggers for systemd (241-7~deb10u8) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for dbus (1.12.20-0+deb10u1) ...
Processing triggers for initramfs-tools (0.133+deb10u1) ...
update-initramfs: Generating /boot/initrd.img-5.4.78-2-pve
Running hook script 'zz-proxmox-boot'..
Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace..
No /etc/kernel/proxmox-boot-uuids found, skipping ESP sync.
Errors were encountered while processing:
pve-manager
proxmox-ve
E: Sub-process /usr/bin/dpkg returned an error code (1)
Mama ! There is a problem! Let's try the "systemctl status pvedaemon.service"
~# systemctl status pvedaemon.service
● pvedaemon.service - PVE API Daemon
Loaded: loaded (/lib/systemd/system/pvedaemon.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-02-26 09:48:20 CET; 6 months 27 days ago
Main PID: 1991 (pvedaemon)
Tasks: 8 (limit: 154381)
Memory: 242.7M
CGroup: /system.slice/pvedaemon.service
├─ 1991 pvedaemon
├─1036176 pvedaemon worker
├─1045514 pvedaemon worker
├─1523990 pvedaemon worker
├─1545278 task UPIDx2:0017943E:6C413E5D:614DD7B0:vncproxy:114:root@pam:
├─1545280 /usr/bin/ssh -e none -o BatchMode=yes -o HostKeyAlias=px1 -T root@192.168.1.101 /usr/sbin/qm vncproxy 114
├─1569940 task UPIDx2:0017F494:6C446C34:614DDFD4:vncproxy:113:root@pam:
└─1569942 /usr/bin/ssh -e none -o BatchMode=yes -o HostKeyAlias=px1 -T root@192.168.1.101 /usr/sbin/qm vncproxy 113
Sep 24 16:24:48 px2 pvedaemon[1561078]: BEGIN failed--compilation aborted at /usr/share/perl5/PVE/API2.pm line 15.
Sep 24 16:24:48 px2 pvedaemon[1561078]: Compilation failed in require at /usr/share/perl5/PVE/Service/pvedaemon.pm line 8.
Sep 24 16:24:48 px2 pvedaemon[1561078]: BEGIN failed--compilation aborted at /usr/share/perl5/PVE/Service/pvedaemon.pm line 8.
Sep 24 16:24:48 px2 pvedaemon[1561078]: Compilation failed in require at /usr/bin/pvedaemon line 11.
Sep 24 16:24:48 px2 pvedaemon[1561078]: BEGIN failed--compilation aborted at /usr/bin/pvedaemon line 11.
Sep 24 16:24:48 px2 systemd[1]: pvedaemon.service: Control process exited, code=exited, status=2/INVALIDARGUMENT
Sep 24 16:24:48 px2 systemd[1]: Reload failed for PVE API Daemon.
As you can figure, pve-daemon, pve-proxy, and pve-manager are not working.
No web GUI interface, big stress.
So the workaround. We have to end the upgrade. Let's dist-upgrade.
~# apt-get dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
pve-kernel-5.0.21-1-pve pve-kernel-5.0.21-2-pve pve-kernel-5.0.21-3-pve pve-kernel-5.0.21-4-pve pve-kernel-5.3.10-1-pve pve-kernel-5.3.13-1-pve
pve-kernel-5.3.13-3-pve pve-kernel-5.3.18-1-pve pve-kernel-5.3.18-2-pve pve-kernel-5.4.41-1-pve
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
libnvpair1linux libuutil1linux libzfs2linux libzpool2linux
The following NEW packages will be installed:
libnvpair3linux libproxmox-acme-plugins libuutil3linux libzfs4linux libzpool4linux proxmox-backup-file-restore proxmox-backup-restore-image
pve-kernel-5.4.140-1-pve
The following packages will be upgraded:
libproxmox-acme-perl libpve-storage-perl pve-container pve-kernel-5.4 qemu-server zfs-initramfs zfs-zed zfsutils-linux
8 upgraded, 8 newly installed, 4 to remove and 0 not upgraded.
2 not fully installed or removed.
Need to get 78.2 MB of archives.
After this operation, 338 MB of additional disk space will be used.
Do you want to continue? [Y/n]
(...)
We can check if pvedaemon is working
~# systemctl status pvedaemon.service
● pvedaemon.service - PVE API Daemon
Loaded: loaded (/lib/systemd/system/pvedaemon.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-02-26 09:48:20 CET; 6 months 27 days ago
Main PID: 1991 (pvedaemon)
Tasks: 8 (limit: 154381)
Memory: 306.6M
CGroup: /system.slice/pvedaemon.service
├─ 1991 pvedaemon
├─1545278 task UPIDx2:0017943E:6C413E5D:614DD7B0:vncproxy:114:root@pam:
├─1545280 /usr/bin/ssh -e none -o BatchMode=yes -o HostKeyAlias=px1 -T root@192.168.1.101 /usr/sbin/qm vncproxy 114
├─1569940 task UPIDx2:0017F494:6C446C34:614DDFD4:vncproxy:113:root@pam:
├─1569942 /usr/bin/ssh -e none -o BatchMode=yes -o HostKeyAlias=px1 -T root@192.168.1.101 /usr/sbin/qm vncproxy 113
├─1582516 pvedaemon worker
├─1582517 pvedaemon worker
└─1582518 pvedaemon worker
Sep 24 16:34:02 px2 pvedaemon[1991]: starting 3 worker(s)
Sep 24 16:34:02 px2 pvedaemon[1991]: worker 1582516 started
Sep 24 16:34:02 px2 pvedaemon[1991]: worker 1582517 started
Sep 24 16:34:02 px2 pvedaemon[1991]: worker 1582518 started
Sep 24 16:34:07 px2 pvedaemon[1036176]: worker exit
Sep 24 16:34:07 px2 pvedaemon[1523990]: worker exit
Sep 24 16:34:07 px2 pvedaemon[1045514]: worker exit
Sep 24 16:34:07 px2 pvedaemon[1991]: worker 1036176 finished
Sep 24 16:34:07 px2 pvedaemon[1991]: worker 1523990 finished
Sep 24 16:34:07 px2 pvedaemon[1991]: worker 1045514 finished
Web GUI is fonctionnal, node is upgraded to 6.4-13, more easyly upgradable to v7
Everything is back to production.
Hey ! There were a lot of removable packages !
Mainly kernel packages.
So let's remove them.
# apt-get autoremove
Thanks to the Proxmox people, for this exceptional work.
Thanks to Fabrice Bellard, for creating qemu. Fabrice Bellard homepage. QEMU homepage