Procédure d'exploitation

Ajouter un noeud à un cluster existant

La commande d'adhésion tient sur une ligne. Tout ce qui décide de la réussite se règle avant : parité du quorum, homogénéité du matériel et symétrie du réseau.

Niveau intermédiaire  ·  Lecture 12 min  ·  Base Proxmox VE 8 et 9

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.

AvantAprèsPannes toléréesVerdict
341, comme avantCapacité gagnée, résilience non
352Le bon saut, si le budget suit
452Excellent, rétablit l'imparité
231Le QDevice devient superflu
Si vous n'ajoutez qu'un noeud à un cluster de trois

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.
Comparer le processeur avec un noeud existant
# 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 hosts de tous les noeuds, pas seulement du nouveau.
Contrôles avant adhésion, sur le nouveau noeud
# 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'
Aucune machine virtuelle avant l'adhésion

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.

Vérifier la symétrie avec un noeud existant
# 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
Les liens corosync se déclarent à l'adhésion

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

Depuis le nouveau noeud
# 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.

Vérifications immédiates
# 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/
Si l'adhésion échoue sur une empreinte SSH

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.

Mettre à jour les stockages concernés
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.

Paquets, puis services
# 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
Le compte de moniteurs reste impair

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.

Ajouter les OSD sans étouffer la production
# 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
Étaler le rééquilibrage

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.

Remise en service
# 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.

Les quatre tests
# 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
ÉtapeVérificationEn cas d'échec
Version et dépôts alignéspveversion -vMettre à jour avant d'aller plus loin
Réseau symétriquePonts, VLAN, MTU identiquesCorriger avant l'adhésion
AdhésionVoix attendues +1, deux liens actifsEmpreintes SSH, certificats
Stockagespvesm status sur le noeudListe des noeuds autorisés
CephHEALTH_OK, OSD dans l'arbreAttendre la fin du rééquilibrage
Migration à chaudAller-retour réussiType de processeur, pont manquant
RedémarrageCluster stable, noeud revenu seulDémarrage automatique des services
Marge N+1Recalculée avec le nouveau noeudMettre à jour l'indicateur
Le test que l'on saute toujours

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.