Remplacer son serveur Proxmox pour passer de PVE 8 à PVE 9

J’utilise Proxmox Virtual Environment 8 pour héberger mes services. Cette version arrive à terme le 31/08/2026, si sous l’utilisez vous n’avez pas pu rater le message dans l’interface d’administration.

J’ai une configuration un peu particulière qui fait que je préfère ne pas faire de montée en version classique. Puisque j’ai un second serveur identique ma solution est d’installer un nouveau PVE, créer un cluster contenant les deux serveurs, migrer les machines virtuelles puis retirer l’ancien serveur du cluster.

Pourquoi cet article? Parce que la documentation manque parfois de détails qui m’auraient aidé à ne pas perdre du temps (réinstallations >_<). Et les tutos sur Internet racontent des bêtises. Il y a des étapes que j’omets parce qu’elles sont présentes dans la documentation de Proxmox. Lisez cette documentation avant d’entreprendre la migration.

Avertissement: Toute opération de maintenance et d’administration comporte des risques. Préparez des sauvegardes, testez-les, et soyez prêts à refaire une installation si quelque chose tournait mal.

Mon datacenter.

Petit avertissement: une fois qu’un cluster est configuré sur un serveur, il est très compliqué de retirer le cluster de ce serveur. Assurez-vous de faire les opérations dans l’ordre.

J’ai deux serveurs, le vieux srv1 et le nouveau srv2, qui sont connectés au même réseau.

Première question: est-ce qu’on peut créer un cluster avec des machines qui n’ont pas la même version de PVE? La documentation de Proxmox ne dit rien à ce sujet, donc a priori c’est bon.

Le principe est simple: on crée un cluster sur un serveur et on intègre l’autre serveur à ce cluster. Une subtilité: pour rejoindre un cluster, un serveur ne doit pas contenir de machine virtuelle (il doit être frais!) et il ne peut pas déjà appartenir à un autre cluster. Il faut donc créer le cluster depuis srv1 puis intégrer srv2 à celui-ci.

Pour créer le cluster: depuis la console Web de srv1, allez dans Datacenter > Cluster et cliquez sur Create Cluster. Maintenant cliquez sur Join Information et copiez les informations dans le presse-papier.

Dans l’interface de srv2, au même endroit cliquez sur Join Cluster et collez les informations précédemment copiées. Il reste à donner le mot de passe root de srv1, valider, et le cluster est prêt!

Vous devriez voir apparaître les deux serveurs dans le menu de gauche, comme dans l’image d’en-tête. Vérifiez en ligne de commande depuis les deux serveurs:

root@srv2:~# pvecm nodes

Membership information
----------------------
    Nodeid      Votes Name
         1          1 srv1
         2          1 srv2 (local)

Je considère ici que vous n’utilisez pas Ceph. Dans ce cas rien de compliqué ici, ça se fait depuis l’interface web en cliquant-droit sur la VM à migrer. Vous pouvez le faire depuis l’interface web de n’importe quel serveur: ils ont chacun accès à la configuration de l’ensemble du cluster. La durée de la migration dépendra de votre réseau, sur un vieux réseau domestique ça peut valoir le coup de relier les deux machines sur un switch qui est plus rapide.

Les VM garderont leurs configurations: elles auront la même adresse IP et seront accessibles comme si elles étaient encore sur srv1. Avant d’aller plus loin assurez-vous qu’elles peuvent être relancées et qu’elles fonctionnent.

Si vous vous contentez de débrancher srv1, le cluster ne pourra pas fonctionner correctement. En effet, Proxmox a besoin de savoir qu’une majorité de nœuds (le quorum) du cluster est joignable avant d’effectuer des actions comme le lancement d’une VM ou même pour retirer un nœud du cluster. Vous pouvez voir l’état du cluster avec cette commande:

root@srv2:~# pvecm status
Cluster information
-------------------
Name:             cluster1
Config Version:   2
Transport:        knet
Secure auth:      on

Quorum information
------------------
Date:             Sun Aug 23 13:23:56 2026
Quorum provider:  corosync_votequorum
Nodes:            2
Node ID:          0x00000001
Ring ID:          1.2c
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   2
Highest expected: 2
Total votes:      2
Quorum:           2  
Flags:            Quorate 

Membership information
----------------------
    Nodeid      Votes Name
0x00000001          1 192.168.1.10
0x00000002          1 192.168.1.11 (local)

On voit que les deux serveurs sont en marche et que le quorum est atteint (il est fixé à 2 et il y a 2 votes disponibles). À partir de maintenant, je considère que vos VM ont toutes été migrées et que vous n’avez plus aucun service sur SRV1.

Éteignez le serveur srv1. Assurez-vous qu’il ne puisse plus se rallumer sur ce réseau sous peine d’avoir un état de cluster incohérent et potentiellement des pertes de données (pour faire simple: débranchez-le).

Connectez-vous en SSH sur srv2.

root@srv2:~# pvecm nodes

Membership information
----------------------
    Nodeid      Votes Name
         2          1 srv2 (local)

La commande ci-dessus ne montre que les nœuds actifs. Il ne reste que srv2. Dans l’interface web de Proxmox vous voyez toujours srv1 mais il est noté comme hors-ligne.

On va retirer srv1 du cluster:

root@srv2:~# pvecm delnode srv1
cluster not ready - no quorum?

Ça ne fonctionne pas. La commande pvecm status nous confirme le problème:

Votequorum information
----------------------
Expected votes:   2
Highest expected: 2
Total votes:      1
Quorum:           2 Activity blocked
Flags:            

Il n’est pas possible d’exécuter cette commande parce que le quorum n’est pas atteint. Nous allons donc modifier la valeur du quorum de 2 à 1 puis relancer la commande:

root@srv2:~# pvecm expected 1
root@srv2:~# pvecm delnode srv1
Could not kill node (error = CS_ERR_NOT_EXIST)
Killing node 1

Il y a un message d’alerte parce que le nœud 1 est hors ligne, c’est normal. Maintenant dans l’interface web il ne reste plus que srv2, vous devriez pouvoir lancer ou éteindre les VM sans problème.

Il reste un peu de ménage à faire pour retirer les références à srv1 comme expliqué dans le wiki de Proxmox. Rappel: ne rebranchez pas srv1 sur ce réseau sans l’avoir réinstallé au préalable.