Ajouter un noeud à un cluster Proxmox VE est une opération courante, et c'est précisément ce qui la rend risquée : la commande d'adhésion tient sur une ligne, et tout ce qui compte se joue avant. Un noeud rejoint sans difficulté avec un plan d'adressage approximatif, une version de paquets décalée ou un processeur d'une autre génération. Les conséquences arrivent plus tard, le jour d'une migration à chaud ou d'une bascule.
Cette procédure est le symétrique de celle du retrait d'un noeud. Les deux se lisent ensemble lors d'un remplacement de matériel.
Renseignez vos noms de noeuds : toute la page s'adapte, blocs de commande compris. Les valeurs restent dans votre navigateur et ne nous sont jamais transmises.
01Ce qu'il faut décider avant
La parité, d'abord
Le quorum repose sur une majorité stricte. Passer de trois à quatre noeuds n'améliore pas la tolérance aux pannes : on supporte toujours la perte d'un seul noeud, pour un serveur de plus à entretenir. C'est le piège le plus fréquent de l'extension de cluster.
| Avant | Après | Pannes tolérées | Verdict |
|---|---|---|---|
| 3 | 4 | 1, comme avant | Capacité gagnée, résilience non |
| 3 | 5 | 2 | Le bon saut, si le budget suit |
| 4 | 5 | 2 | Excellent, rétablit l'imparité |
| 2 | 3 | 1 | Le QDevice devient superflu |
C'est parfaitement légitime quand le besoin est la capacité et non la résilience. Ajoutez alors un QDevice pour revenir à un nombre impair de voix, ce qui vous rend la tolérance perdue par la parité. C'est quelques minutes de travail pour une machine légère hébergée ailleurs.
L'homogénéité du matériel
- Génération de processeur. La migration à chaud exige que le jeu d'instructions exposé aux machines soit disponible sur la cible. Un noeud plus récent ne pose pas de problème ; un noeud plus ancien impose de dégrader le type de processeur de toutes les machines qui devront y migrer, ce qui se fait machine éteinte.
- Mémoire. Un noeud plus petit que les autres limite la marge N+1 réelle : la règle se calcule toujours sur la perte du plus gros noeud.
- Disques. Sur un cluster Ceph, des disques d'une classe différente ne se mélangent pas dans un même pool. Deux classes signifient deux règles CRUSH et deux pools.
- Réseau. Mêmes débits et mêmes cartes que les autres noeuds, sans quoi le nouveau venu devient le maillon lent de toutes les reconstructions.
# sur pve-01 puis sur pve-04, et comparer
lscpu | grep -E 'Model name|Flags' | cut -c1-120
pveversion -v | head -3
02Préparer la machine
Le noeud s'installe exactement comme les autres, en suivant le chapitre d'installation du guide cluster. Quatre points doivent être réglés avant l'adhésion, car ils sont pénibles à corriger après.
- La version. Le noeud doit être à la même version majeure et, idéalement, au même niveau de paquets que le cluster. Un cluster ne doit pas rester durablement mélangé.
- Les dépôts. Les mêmes que sur les autres noeuds, entreprise ou sans abonnement, au format deb822 sur Proxmox VE 9.
- Le nom du pool ZFS. Les entrées de stockage désignent un pool par son nom. Un pool nommé autrement rend le stockage invisible pour ce noeud, sans message d'erreur explicite.
- Le nom d'hôte et l'adresse, conformes au plan d'adressage, et déclarés
dans le fichier
hostsde tous les noeuds, pas seulement du nouveau.
# meme version majeure que le cluster pveversion -v | head -3 # le pool porte bien le nom attendu zpool status zfs list # chaque noeud du cluster est resolu sans DNS externe grep -E 'pve-0' /etc/hosts ping -c1 pve-01 && ping -c1 pve-02 # horloge alignee sur les memes sources chronyc sources chronyc tracking | grep -E 'System time|Leap'
Un noeud qui rejoint un cluster voit sa configuration locale remplacée par celle du cluster. Toute machine créée avant l'adhésion disparaît de la configuration, ses disques restant orphelins sur le stockage. Rejoignez d'abord, créez ensuite.
03Le réseau, à l'identique
Les noms de ponts doivent être identiques d'un noeud à l'autre. Une machine qui migre vers un
noeud où vmbr1 n'existe pas ne démarre pas, et le message ne désigne pas toujours la
bonne cause.
# meme liste de ponts, memes VLAN acceptes ip -br link show type bridge bridge vlan show dev vmbr1 # MTU coherent de bout en bout sur le reseau Ceph ping -M do -s 8972 -c 3 10.10.4.11 # les deux reseaux corosync repondent depuis le nouveau noeud ping -c3 10.10.1.11 && ping -c3 10.10.2.11
Comme à la création du cluster, les deux liens doivent être indiqués au moment où le noeud rejoint. Les ajouter après coup impose de modifier la configuration corosync à la main sur un cluster en production, opération délicate dont on se passe volontiers.
04Rejoindre le cluster
# l'adresse visee est celle d'un noeud existant, sur le lien 0
pvecm add 10.10.1.11 \
--link0 10.10.1.14 \
--link1 10.10.2.14
La commande demande le mot de passe root du noeud de référence, échange les certificats et raccroche le nouveau venu au système de fichiers du cluster. Elle prend une poignée de secondes.
# le nombre de voix attendues a augmente de 1 pvecm status pvecm nodes # les deux liens sont connectes, sur tous les noeuds corosync-cfgtool -s # le systeme de fichiers partage est monte ls /etc/pve/nodes/
C'est le symptôme d'une ancienne clé conservée, typiquement quand le nom ou l'adresse a déjà
servi. Retirez l'entrée obsolète des fichiers d'empreintes des noeuds existants, relancez
pvecm updatecerts -f, puis réessayez. Si le nom a appartenu à un noeud retiré,
vérifiez aussi que son répertoire a bien disparu de /etc/pve/nodes/.
05Donner accès aux stockages
Un stockage restreint à une liste de noeuds ignore le nouveau venu tant qu'il n'y figure pas. C'est l'oubli classique : le noeud est visible dans l'interface, mais aucune machine ne peut y démarrer.
cat /etc/pve/storage.cfg pvesm status # ajouter le noeud aux stockages qui le concernent pvesm set local-zfs --nodes pve-01,pve-02,pve-04 # verification depuis le nouveau noeud pvesm status --storage local-zfs
06Intégrer le noeud à Ceph
Cette section ne concerne pas les clusters en ZFS local. Sur une plateforme Ceph, l'ajout de disques déclenche un rééquilibrage : des données se déplacent vers les nouveaux OSD, et ce déplacement consomme du réseau et des entrées-sorties pendant des heures.
# meme version de Ceph que le reste du cluster, l'assistant l'aligne seul pveceph install --repository no-subscription # un moniteur seulement si cela preserve un nombre impair pveceph mon create # un gestionnaire supplementaire en attente ne coute rien pveceph mgr create
Trois moniteurs sur un cluster de quatre ou cinq noeuds est une configuration parfaitement saine. Ajouter un quatrième moniteur ne renforce rien et introduit une parité. Ne créez un moniteur sur le nouveau noeud que si vous passez délibérément de trois à cinq.
# limiter l'agressivite du reequilibrage avant de commencer ceph config set osd osd_max_backfills 1 ceph config set osd osd_recovery_max_active 2 # un OSD a la fois, en attendant le retour a HEALTH_OK entre chaque pveceph osd create /dev/nvme0n1 watch ceph -s pveceph osd create /dev/nvme1n1 # la topologie doit montrer le nouvel hote et ses OSD ceph osd tree ceph osd df
Sur une plateforme chargée, créer tous les OSD d'un coup provoque un déplacement massif de données. Deux approches : créer un OSD par jour en heures creuses, ou créer les OSD avec un poids CRUSH nul puis l'augmenter par paliers. La première suffit dans la plupart des cas et demande moins de surveillance.
07Remettre le noeud au travail
Le noeud fait partie du cluster, il reste à le réintégrer dans tout ce qui pilote la plateforme. Cette liste est la réciproque exacte de celle du retrait.
# haute disponibilite : rendre le noeud eligible ha-manager rules config ha-manager rules set node-affinity prod-critique \ --nodes "pve-01:2,pve-02:1,pve-04:1" # replication ZFS : nouvelles cibles possibles pvesr create-local-job 101-0 pve-04 --schedule "*/15" --rate 100 pvesr list # agent de metriques, comme sur les autres noeuds systemctl status telegraf
- Sauvegardes : vérifier que les travaux portant sur l'ensemble du cluster prennent bien en compte les machines qui arriveront sur ce noeud.
- Supervision : le noeud doit apparaître dans les tableaux de bord et dans les règles d'alerte, sinon il tombera en silence.
- Pare-feu : les règles de centre de données s'appliquent automatiquement, les particularités de noeud non.
- Documentation : plan d'adressage, schéma, inventaire matériel et contrat de maintenance.
08La recette d'intégration
Un noeud visible dans l'interface n'est pas un noeud validé. Ces quatre tests prennent un quart d'heure et évitent de découvrir le problème pendant un incident.
# 1. migration a chaud aller-retour qm migrate 101 pve-04 --online qm migrate 101 pve-01 --online # 2. redemarrage du noeud, cluster stable pendant l'absence reboot pvecm status # 3. sauvegarde reussie d'une machine hebergee sur le noeud vzdump 101 --storage pbs --mode snapshot # 4. sur Ceph, retour a HEALTH_OK apres reequilibrage complet ceph -s
| Étape | Vérification | En cas d'échec |
|---|---|---|
| Version et dépôts alignés | pveversion -v | Mettre à jour avant d'aller plus loin |
| Réseau symétrique | Ponts, VLAN, MTU identiques | Corriger avant l'adhésion |
| Adhésion | Voix attendues +1, deux liens actifs | Empreintes SSH, certificats |
| Stockages | pvesm status sur le noeud | Liste des noeuds autorisés |
| Ceph | HEALTH_OK, OSD dans l'arbre | Attendre la fin du rééquilibrage |
| Migration à chaud | Aller-retour réussi | Type de processeur, pont manquant |
| Redémarrage | Cluster stable, noeud revenu seul | Démarrage automatique des services |
| Marge N+1 | Recalculée avec le nouveau noeud | Mettre à jour l'indicateur |
Le redémarrage. Un noeud fraîchement installé démarre correctement une première fois, puis
révèle au deuxième démarrage un service non activé, un montage absent du fichier
fstab ou une interface qui ne remonte pas. Mieux vaut le découvrir maintenant, en
journée, que lors d'une coupure électrique un dimanche.
Une plateforme Proxmox a exploiter sereinement
Nous exploitons des clusters Proxmox VE et Ceph en production pour des PME, des structures reglementees et des collectivites. Remplacement de noeud, montee de version, reprise d'une plateforme existante : nous intervenons au forfait comme en astreinte.