Proxmox : Upgrade de 8 vers 9 sur le Homelab
Bonjour à tous,
Cet article sera joint à une vidéo https://www.youtube.com/watch?v=Dt2s3jrYOUU expliquant comment faire une mise à niveau d'un PVE 8 existant vers la version 9. C'est ce qu'on appelle une upgrade Inplace.
Un certain nombre d'entre vous m'a demandé de réaliser une vidéo sur le sujet, voici donc l'artique qui l'accompagne.
Je n'invente rien, tout est décrit dans le wiki officiel de proxmox en sources de cet article.
J'ai réalisé avec succès les montées en version sur ma plateforme de test Proxmox et la vidéo a montré la montée en version sur 1 des 3 noeuds du cluster de mon homelab.
On veillera à respecter les prérequis indiqué dans le wiki de Proxmox, qui sont pour moi :
- 10Go d'espace libre sur la racine
- Avoir un noeud à jour
- Avoir un cluster sain
- Avoir des backups testés et vérifiés des VMS.
Première chose, PVE doit être en version 8.4, donc être complètement à jour :
S'il y à une mise à jour du noyau, on redémarrera la machine :
On exécute ensuite le script de vérification d'upgrade :
Le script a renvoyé ceci :
Il est essentiel de n'avoir aucun "FAILURES" et préférable de n'avoir aucun WARNING.
Chez moi, 2 points d'attention:
Pour le WARNING : J'ai migré les VMs en cours d'exécutuion sur un autre noeud. Si vous n'avez qu'un noeud, éteignez les VMS et conteneurs.
Pour le FAILURE, c'est documenté, j'ai supprimé systemd-boot. PVE utilise GRUB2 comme chargeur de démarrage. Je n'ai pas eu cette erreur sur tous les noeuds.
Pour vérifier que tout est bon, on relance le pve8to9 :
Tout est OK.
On remplace ensuite le nom de code de Debian dans les sources via un p'tit sed :
N'ayant pas le dépôt enterprise actif, et n'utilisant pas ceph, je supprime les fichiers .list :
On rafraichit les sources :
On a une indication qu'on a une grosse mise à jour :
On lance l'upgrade :
Comme pour la mise à niveau de Debian 12 vers 13, apt nous offre de la lecture sur les mises à jour (apt changelog), on quitte la vue avec q.
Durant la mise à niveau, on est amené à valider :
- La nouvelle disposition du clavier : Je valide le français
- Le redémarrage automatique des services lors de la mise à jour : Je réponds Yes car toutes les VMS sont migrées ou éteintes donc pas d'impact.
On est questionné sur plusieurs fichiers :
- /etc/issue : On rémond N, on garde les modifs de Proxmox
- /etc/default/zramswap : J'utilise zram sur ce noeud, je répond N, je garde ma configuration
- /etc/zabbix/zabbix_agentd.conf : Je supervise mon noeud avec Zabbix, je garde mon fichier de conf original
- /etc/lvm/lvm.conf : Je n'ai pas fait de modifs dedans, donc je réponds Y et prend le fichier modifié
Une fois la MàJ terminée, on vérifie qu'on est en version 9 via :
Il est retourné :
Le noyau est encore le 6.8.12, on reboot la machine :
Au redémarrage on vérifie :
Qui renvoie :
Il ne reste plus qu'à moderniser les sources de Debian :
Deux fichiers sont créés, un pour Debian et un pour Proxmox :
Et voilà !
Je n'ai plus qu'à désactiver le dépôt PVE Enterprise dans l'interface graphique, car il s'est réactivé mais j'utilise le pve-no-subscription.
Une mise à niveau rondement menée !
Cet article sera joint à une vidéo https://www.youtube.com/watch?v=Dt2s3jrYOUU expliquant comment faire une mise à niveau d'un PVE 8 existant vers la version 9. C'est ce qu'on appelle une upgrade Inplace.
Un certain nombre d'entre vous m'a demandé de réaliser une vidéo sur le sujet, voici donc l'artique qui l'accompagne.
Je n'invente rien, tout est décrit dans le wiki officiel de proxmox en sources de cet article.
J'ai réalisé avec succès les montées en version sur ma plateforme de test Proxmox et la vidéo a montré la montée en version sur 1 des 3 noeuds du cluster de mon homelab.
On veillera à respecter les prérequis indiqué dans le wiki de Proxmox, qui sont pour moi :
- 10Go d'espace libre sur la racine
- Avoir un noeud à jour
- Avoir un cluster sain
- Avoir des backups testés et vérifiés des VMS.
Première chose, PVE doit être en version 8.4, donc être complètement à jour :
Code BASH :
apt update && apt full-upgrade
S'il y à une mise à jour du noyau, on redémarrera la machine :
Code BASH :
reboot
On exécute ensuite le script de vérification d'upgrade :
Code BASH :
pve8to9
Le script a renvoyé ceci :
Code TEXT :
= 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 >= 8.4-0 Checking running kernel version.. PASS: running kernel '6.8.12-14-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 'ISO' enabled and active. PASS: storage 'PBS' enabled and active. PASS: storage 'VMS' enabled and active. SKIP: storage 'local' disabled. INFO: Checking storage content type configuration.. PASS: no storage content problems found PASS: no storage re-uses a directory for multiple content types. INFO: Check for usage of native GlusterFS storage plugin... PASS: No GlusterFS storage found. INFO: Checking whether all external RBD storages have the 'keyring' option configured SKIP: No RBD storage configured. = VIRTUAL GUEST CHECKS = INFO: Checking for running guests.. WARN: 1 running guest(s) detected - consider migrating or stopping them. 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 for VirtIO devices that would change their MTU... 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 VM configurations for outdated machine versions PASS: All VM machine versions are recent enough = 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 if the local node's hostname 'pve242' is resolvable.. INFO: Checking if resolved IP is configured on local node.. PASS: Resolved node IP '192.168.21.242' 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) PASS: Certificate 'pveproxy-ssl.pem' passed Debian Busters (and newer) security level for TLS connections (4096 >= 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 PASS: no custom roles defined INFO: Checking node and guest description/note length.. PASS: All node config descriptions fit in the new limit of 64 KiB INFO: Checking if the suite for the Debian security repository is correct.. PASS: found no suite mismatch INFO: Checking for existence of NVIDIA vGPU Manager.. PASS: No NVIDIA vGPU Service found. INFO: Checking bootloader configuration... FAIL: systemd-boot meta-package installed. This will cause problems on upgrades of other boot-related packages. Remove 'systemd-boot' See https://pve.proxmox.com/wiki/Upgrade_from_8_to_9#sd-boot-warning for more information. INFO: Check for dkms modules... SKIP: could not get dkms status INFO: Check for legacy 'filter' or 'group' sections in /etc/pve/notifications.cfg... INFO: Check for legacy 'notification-policy' or 'notification-target' options in /etc/pve/jobs.cfg... PASS: No legacy 'notification-policy' or 'notification-target' options found! INFO: Check for LVM autoactivation settings on LVM and LVM-thin storages... PASS: No problematic volumes found. INFO: Checking lvm config for thin_check_options... PASS: Check for correct thin_check_options passed INFO: Check space requirements for RRD migration... PASS: Enough free disk space for increased RRD metric granularity requirements, which is roughly 188.42 MiB. INFO: Checking for IPAM DB files that have not yet been migrated. PASS: No legacy IPAM DB found. PASS: No legacy MAC DB found. INFO: Checking if the legacy sysctl file '/etc/sysctl.conf' needs to be migrated to new '/etc/sysctl.d/' path. PASS: Legacy file '/etc/sysctl.conf' exists but does not contain any settings. INFO: Checking if matching CPU microcode package is installed. PASS: Found matching CPU microcode package 'intel-microcode' installed. SKIP: NOTE: Expensive checks, like CT cgroupv2 compat, not performed without '--full' parameter = SUMMARY = TOTAL: 48 PASSED: 40 SKIPPED: 6 WARNINGS: 1 FAILURES: 1 ATTENTION: Please check the output for detailed information! Try to solve the problems one at a time and then run this checklist tool again.
Il est essentiel de n'avoir aucun "FAILURES" et préférable de n'avoir aucun WARNING.
Chez moi, 2 points d'attention:
Code TEXT :
WARN: 1 running guest(s) detected - consider migrating or stopping them. FAIL: systemd-boot meta-package installed. This will cause problems on upgrades of other boot-related packages. Remove 'systemd-boot' See https://pve.proxmox.com/wiki/Upgrade_from_8_to_9#sd-boot-warning for more information.
Pour le WARNING : J'ai migré les VMs en cours d'exécutuion sur un autre noeud. Si vous n'avez qu'un noeud, éteignez les VMS et conteneurs.
Pour le FAILURE, c'est documenté, j'ai supprimé systemd-boot. PVE utilise GRUB2 comme chargeur de démarrage. Je n'ai pas eu cette erreur sur tous les noeuds.
Code BASH :
apt remove systemd-boot
Pour vérifier que tout est bon, on relance le pve8to9 :
Code TEXT :
= SUMMARY = TOTAL: 48 PASSED: 42 SKIPPED: 6 WARNINGS: 0 FAILURES: 0
Tout est OK.
On remplace ensuite le nom de code de Debian dans les sources via un p'tit sed :
Code BASH :
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
N'ayant pas le dépôt enterprise actif, et n'utilisant pas ceph, je supprime les fichiers .list :
Code BASH :
rm /etc/apt/sources.list.d/pve-enterprise.list rm /etc/apt/sources.list.d/ceph.list
On rafraichit les sources :
Code BASH :
apt update
On a une indication qu'on a une grosse mise à jour :
Code TEXT :
743 packages can be upgraded. Run 'apt list --upgradable' to see them.
On lance l'upgrade :
Code BASH :
apt full-upgrade
Comme pour la mise à niveau de Debian 12 vers 13, apt nous offre de la lecture sur les mises à jour (apt changelog), on quitte la vue avec q.
Durant la mise à niveau, on est amené à valider :
- La nouvelle disposition du clavier : Je valide le français
- Le redémarrage automatique des services lors de la mise à jour : Je réponds Yes car toutes les VMS sont migrées ou éteintes donc pas d'impact.
On est questionné sur plusieurs fichiers :
- /etc/issue : On rémond N, on garde les modifs de Proxmox
- /etc/default/zramswap : J'utilise zram sur ce noeud, je répond N, je garde ma configuration
- /etc/zabbix/zabbix_agentd.conf : Je supervise mon noeud avec Zabbix, je garde mon fichier de conf original
- /etc/lvm/lvm.conf : Je n'ai pas fait de modifs dedans, donc je réponds Y et prend le fichier modifié
Une fois la MàJ terminée, on vérifie qu'on est en version 9 via :
Code BASH :
pveversion
Il est retourné :
Code TEXT :
pve-manager/9.0.6/49c767b70aeb6648 (running kernel: 6.8.12-14-pve)
Le noyau est encore le 6.8.12, on reboot la machine :
Code BASH :
reboot
Au redémarrage on vérifie :
Code BASH :
pveversion
Qui renvoie :
Code TEXT :
pve-manager/9.0.6/49c767b70aeb6648 (running kernel: 6.14.11-1-pve)
Il ne reste plus qu'à moderniser les sources de Debian :
Code BASH :
apt modernize-sources
Deux fichiers sont créés, un pour Debian et un pour Proxmox :
Code TEXT :
The following files need modernizing: - /etc/apt/sources.list Modernizing will replace .list files with the new .sources format, add Signed-By values where they can be determined automatically, and save the old files into .list.bak files. This command supports the 'signed-by' and 'trusted' options. If you have specified other options inside [] brackets, please transfer them manually to the output files; see sources.list(5) for a mapping. For a simulation, respond N in the following prompt. Rewrite 1 sources? [Y/n] Modernizing /etc/apt/sources.list... - Writing /etc/apt/sources.list.d/debian.sources - Writing /etc/apt/sources.list.d/proxmox.sources
Et voilà !
Je n'ai plus qu'à désactiver le dépôt PVE Enterprise dans l'interface graphique, car il s'est réactivé mais j'utilise le pve-no-subscription.
Une mise à niveau rondement menée !