Mise à jour majeure de PVE7 à PVE8

Logo Proxmox
Logo Proxmox PVE8

Intro

Je partage ici le parcours effectué pour la mise à jour Proxmox en PVE8, à partir de la version 7 de Proxmox Virtuel Environment.
N’hésitez pas à laisser un commentaire ou poser une question, je m’efforcerai d’y répondre.

Architecture

A date, je possède un cluster 3 nœuds physiques (PVE1 à PVE3) à base de NUC Intel en Core I5 Gen4 et Core I3 Gen7) avec 16Go de RAM et 128 ou 256Go de stockage local SSD.

La sauvegarde est assurée par un PBS en VM à base de 2Sockets-1Core, le stockage de la sauvegarde repose sur un disque HDD 1To en USB2. Le tout sur le nœud PVE1.

Stratégie retenue

  • Commencer par le PVE3 seul,
  • Déplacer les VM de PVE3 sur le nœud PVE2,
  • Procéder à l’upgrade PBS plus tard, afin d’assurer le retour arrière,
  • Suivre à la lettre la partie « In-place upgrade » du wiki Proxmox : https://pve.proxmox.com/wiki/Upgrade_from_7_to_8

Dans les grandes lignes :

  • Déplacer les VM de PVE3,
  • Réaliser les upgrades à la dernière version PVE v7,
  • Utiliser l’utilitaire pve7topve8 mis gracieusement(consciencieusement) par la communauté Promox 🙂 ,
  • Mettre à jour,
  • Enchaîner sur le nœud suivant.

Premier nœud

Lancer l’utilitaire pve7topve8 qui nous donne un résultat plutôt positif, comme par exemple :

root@pve3:~#  pve7to8 --full
= CHECKING VERSION INFORMATION FOR PVE PACKAGES =

Checking for package updates..
PASS: all packages up-to-date

Checking proxmox-ve package version..
PASS: proxmox-ve package has version >= 7.4-1

Checking running kernel version..
PASS: running kernel '5.15.116-1-pve' is considered suitable for upgrade.

= CHECKING CLUSTER HEALTH/SETTINGS =

PASS: systemd unit 'pve-cluster.service' is in state 'active'
PASS: systemd unit 'corosync.service' is in state 'active'
PASS: Cluster Filesystem is quorate.

Analzying quorum settings and state..
INFO: configured votes - nodes: 3
INFO: configured votes - qdevice: 0
INFO: current expected votes: 3
INFO: current total votes: 3

Checking nodelist entries..
PASS: nodelist settings OK

Checking totem settings..
PASS: totem settings OK

INFO: run 'pvecm status' to get detailed cluster status..

= CHECKING HYPER-CONVERGED CEPH STATUS =

SKIP: no hyper-converged ceph setup detected!

= CHECKING CONFIGURED STORAGES =

PASS: storage 'PBS1' enabled and active.
PASS: storage 'isos' enabled and active.
PASS: storage 'local' enabled and active.
PASS: storage 'local-lvm' enabled and active.
SKIP: storage 'usbdata' disabled.
INFO: Checking storage content type configuration..
PASS: no storage content problems found
PASS: no storage re-uses a directory for multiple content types.

= MISCELLANEOUS CHECKS =

INFO: Checking common daemon services..
PASS: systemd unit 'pveproxy.service' is in state 'active'
PASS: systemd unit 'pvedaemon.service' is in state 'active'
PASS: systemd unit 'pvescheduler.service' is in state 'active'
PASS: systemd unit 'pvestatd.service' is in state 'active'
INFO: Checking for supported & active NTP service..
PASS: Detected active time synchronisation unit 'chrony.service'
INFO: Checking for running guests..
PASS: no running guest detected.
INFO: Checking if the local node's hostname 'pve3' is resolvable..
INFO: Checking if resolved IP is configured on local node..
PASS: Resolved node IP 'xxx.xxx.xxx.3' configured and active on single interface.
INFO: Check node certificate's RSA key size
PASS: Certificate 'pve-root-ca.pem' passed Debian Busters (and newer) security level for TLS connections (4096 >= 2048)
PASS: Certificate 'pve-ssl.pem' passed Debian Busters (and newer) security level for TLS connections (2048 >= 2048)
INFO: Checking backup retention settings..
PASS: no backup retention problems found.
INFO: checking CIFS credential location..
PASS: no CIFS credentials at outdated location found.
INFO: Checking permission system changes..
INFO: Checking custom role IDs for clashes with new 'PVE' namespace..
PASS: no custom roles defined, so no clash with 'PVE' role ID namespace enforced in Proxmox VE 8
INFO: Checking if LXCFS is running with FUSE3 library, if already upgraded..
SKIP: not yet upgraded, no need to check the FUSE library version LXCFS uses
INFO: Checking node and guest description/note length..
PASS: All node config descriptions fit in the new limit of 64 KiB
PASS: All guest config descriptions fit in the new limit of 8 KiB
INFO: Checking container configs for deprecated lxc.cgroup entries
PASS: No legacy 'lxc.cgroup' keys found.
INFO: Checking if the suite for the Debian security repository is correct..
NOTICE: found unusual suites that are neither old 'bullseye' nor new 'bookworm':
    found suite bullseye/ at in /etc/apt/sources.list.d/netdata.list:1
  Please ensure these repositories are shipping compatible packages for the upgrade!
NOTICE: found no suite mismatches, but found at least one strange suite
INFO: Checking for existence of NVIDIA vGPU Manager..
PASS: No NVIDIA vGPU Service found.
INFO: Checking bootloader configuration...
SKIP: not yet upgraded, no need to check the presence of systemd-boot

= SUMMARY =

TOTAL:    36
PASSED:   30
SKIPPED:  4
WARNINGS: 0
FAILURES: 0
root@pve3:~# 

NB : la remarque sur la supervision Netdata (qui est installée) et que l’on risque d’avoir besoin d’intervenir sur les sources des dépôts concernées.
En ce qui me concerne, il faudra effectivement vérifier si la version Bookworm (Debian 12) est bien disponible et modifier la source en conséquence :

deb http://repo.netdata.cloud/repos/stable/debian/ bullseye/ 

Comme on peut le vérifier, Netdata dispose bien d’une version Debian 12 sur ses repos : https://repo.netdata.cloud/repos/stable/debian/bookworm/

Modifier les sources des dépôts

Pour Promox et une installation « standard », suivre le wiki : https://pve.proxmox.com/wiki/Upgrade_from_7_to_8#Update_the_configured_APT_repositories

Pour Netdata, une simple mise à jour de /etc/apt/sources.list.d/netdata.list suffit :

deb http://repo.netdata.cloud/repos/stable/debian/ bookworm/ 

Lancer un update :

root@pve3:/etc/apt# apt update
Hit:1 http://security.debian.org bookworm-security InRelease
Hit:2 http://ftp.fr.debian.org/debian bookworm InRelease                           
Hit:3 http://ftp.fr.debian.org/debian bookworm-updates InRelease                   
Get:4 http://repo.netdata.cloud/repos/stable/debian bookworm/ InRelease [1,299 B]  
Hit:5 http://download.proxmox.com/debian/pve bookworm InRelease           
Get:6 http://repo.netdata.cloud/repos/stable/debian bookworm/ Packages [55.6 kB]
Fetched 56.9 kB in 1s (79.4 kB/s)   
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
597 packages can be upgraded. Run 'apt list --upgradable' to see them.
root@pve3:/etc/apt# 

C’est là que l’on voit qu’il y a un peu de boulot 😉

A priori, on est prêt pour la mise à jour Proxmox en PVE8 !

On passe aux choses sérieuses, upgrade !

apt dist-upgrade

Ça se passe bien… jusqu’à ceci :

...
Get:682 http://download.proxmox.com/debian/pve bookworm/pve-no-subscription amd64 zfs-initramfs all 2.1.12-pve1 [24.7 kB]
Get:683 http://download.proxmox.com/debian/pve bookworm/pve-no-subscription amd64 zfsutils-linux amd64 2.1.12-pve1 [489 kB]
Get:684 http://download.proxmox.com/debian/pve bookworm/pve-no-subscription amd64 zfs-zed amd64 2.1.12-pve1 [65.3 kB]
Fetched 575 MB in 14s (40.9 MB/s)
E: Failed to fetch http://ftp.fr.debian.org/debian/pool/main/c/cpio/cpio_2.13%2bdfsg-7.1_amd64.deb Undetermined Error [IP: 212.27.32.66 80]
E: Failed to fetch http://ftp.fr.debian.org/debian/pool/main/i/isc-dhcp/isc-dhcp-client_4.4.3-P1-2_amd64.deb Error reading from server - read (104: Connection reset by peer) [IP: 212.27.32.66 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
root@pve3:/etc/apt#

On pourrait croire que les dépôts Debian sont en RTT… Et bien, non !
Cela semble être lié aux changement de liens vers les dépôts.

Il suffit de relancer un apt dist-upgrade et là c’est OK 🙂

Un gros changelog est à lire, il suffit de naviguer vers le bas, avec le pavé flèches, pour arriver à cela :

...
Regular expressions with stray backslashes now cause warnings, as
their unspecified behavior can lead to unexpected results.
For example, '\a' and 'a' are not always equivalent
https://bugs.gnu.org/39678. Similarly, regular expressions or
subexpressions that start with a repetition operator now also cause
warnings due to their unspecified behavior; for example, *a(+b|{1}c)
now has three reasons to warn. The warnings are intended as a
transition aid; they are likely to be errors in future releases.

Regular expressions like [:space:] are now errors even if
POSIXLY_CORRECT is set, since POSIX now allows the GNU behavior.

-- Santiago Ruano Rincón santiago@debian.org Tue, 06 Sep 2022 15:29:49 +0200
(press q to quit)

On quitte donc.

Certaines questions seront posées pendant la mise à jour, tel que décrit sur le wiki : https://pve.proxmox.com/wiki/Upgrade_from_7_to_8#Upgrade_the_system_to_Debian_Bookworm_and_Proxmox_VE_8.0

A moins d’avoir modifié certains fichiers de configurations en toute connaissance de cause, on peut accepter de remplacer par la version du mainteneur, quand cela est demandé.
Cela permet de ne pas « traîner » des paramètres obsolètes d’une version à l’autre, et qui mènent immanquablement à des failles de sécurité !
Finalement, cela revient aussi à s’approcher d’une installation « fraîche », comme à partir d’une source ISO.

NB :En cas de doute, il préférable de verifier les différences entre les 2 versions des fichiers, à chaque fois.

Et de toutes façons, en cas de besoin plus tard, les fichiers précédents sont sauvegardés en .bak dans le dossier d’origine.

Accepter aussi le redémarrage des services pour ne pas rester devant l’écran à valider chaque demande 🙂 )

L’installation prendra environ 10mn et rend la main à la fin, on est en version 8 de PVE !!

Cependant, la version du noyau en cours est toujours la même (5.15.xx), un redémarrage s’impose donc pour passer à la vérification de tous les services.

root@pve3~# pveversion
pve-manager/8.0.4/d258a813cfa6b390 (running kernel: 5.15.116-1-pve)
root@pve3~#

Redémarrage


Après un :

root@pve3~# reboot

et un court moment…

Linux pve3 6.2.16-12-pve #1 SMP PREEMPT_DYNAMIC PMX 6.2.16-12 (2023-09-04T13:21Z) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Sep 10 15:14:03 CEST 2023 from xxx.xxx.xxx.99 on pts/0
root@pve3:~#

PVE8 est Up and Running !!

Recette

Système

  • Migration d’une VM dans l’autre sens,
  • VABF,
  • Test de sauvegarde de cette VM,
  • Test de restauration,
  • VABF,
  • Migrations des VM restantes.
  • VABF.

Réseau

Vérification des ports en écoute :

lsof -nP -iTCP -sTCP:LISTEN

Une navigation vers Netdata (sur le port 19999 en http, par défaut) nous donnes un magnifiiiiique tableau de bord, tout neuf :

Tableau de bord Netdata
Tableau de bord Netdata utilisé sur mon serveur Proxmox

Les nœuds suivants

Après des vérifications approfondies, on pourra procéder de la même manière pour les 2 autres nœuds du cluster.

Un prochain article traitera de la mise à jour de PBS (Proxmox Backup Server) de la v2 à la V3.

Sources

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.