Exercice 1 — Former le cluster d'Aria Airlines¶
Durée : ~30 min · En équipe · Théorie associée : Le cluster Proxmox et le stockage partagé
Le mandat¶
Votre équipe devient le service informatique d'Aria Airlines, une petite compagnie aérienne montréalaise qui dessert Paris, Reykjavik, Oslo et Copenhague. Deux de ses logiciels ne doivent jamais s'arrêter : le site de vente de billets en ligne, et le poste des commis qui enregistrent les passagers à l'aéroport.
Aujourd'hui, ces logiciels tourneraient chacun sur un seul serveur. Le premier serveur qui tombe arrête la vente ou bloque l'embarquement. Vous allez donc réunir les serveurs de l'équipe en un seul cluster, première étape vers une infrastructure qui survit à une panne.
Objectif¶
Les trois serveurs de l'équipe forment un cluster nommé aria, avec le quorum, et se gèrent depuis une seule interface web.
Prérequis¶
- Les serveurs de l'équipe ont été réinitialisés : Proxmox répond sur
https://10.70.44.#:8006et aucun nœud ne contient de VM. - Le numéro de chaque serveur de l'équipe, noté
#. Dans ce document, serveur 1, serveur 2 et serveur 3 désignent les serveurs de l'équipe, dans l'ordre de leur numéro. - Le mot de passe
rootdu serveur 1.
Note
Si votre équipe n'a que deux serveurs, avisez l'enseignant avant de commencer. Un cluster de deux nœuds se forme sans problème, mais il perd le quorum dès qu'un nœud tombe : l'exercice 6 serait impossible.
Étape 1 — Vérifier que les nœuds sont vides¶
Ouvrez le Shell du serveur 2 et listez ses VM.
La commande ne doit rien afficher. Faites la même vérification sur le serveur 3.
Un nœud qui contient une VM ne peut pas joindre un cluster : son identifiant pourrait entrer en conflit avec une VM du cluster. Le serveur 1, lui, a le droit d'en contenir, puisque c'est lui qui crée le cluster.
Étape 2 — Vérifier l'heure des nœuds¶
Dans le Shell de chaque serveur :
La ligne System clock synchronized doit afficher yes sur les trois serveurs. Corosync compare l'heure des messages entre les nœuds, et un nœud qui dérive de quelques minutes est rejeté.
Étape 3 — Vérifier que les nœuds se joignent¶
Depuis le Shell du serveur 1, envoyez un ping au serveur 2, puis au serveur 3. Remplacez # par leur numéro.
Les trois réponses doivent arriver, en général en moins d'une milliseconde ; la première peut prendre quelques millisecondes de plus. Corosync passera par ce réseau, et il exige une latence sous 5 ms.
Étape 4 — Créer le cluster sur le serveur 1¶
Dans l'interface web du serveur 1, sélectionnez Datacenter, puis Cluster, et cliquez sur Create Cluster.
| Champ | Valeur |
|---|---|
| Cluster Name | aria |
| Cluster Network, Link 0 | l'adresse 10.70.44.# du serveur 1 |
Cliquez sur Create. La fenêtre de tâche se termine sur TASK OK.
Le nom du cluster ne pourra plus jamais changer. Le serveur 1 forme maintenant un cluster d'un seul nœud.
Étape 5 — Copier les informations de jonction¶
Toujours sur le serveur 1, dans Datacenter > Cluster, cliquez sur Join Information, puis sur Copy Information.
Le bloc copié contient l'adresse du serveur 1 et l'empreinte de son certificat. L'empreinte permet au nouveau nœud de vérifier qu'il parle bien au serveur 1, et non à une machine qui se ferait passer pour lui.
Étape 6 — Joindre le serveur 2¶
Ouvrez l'interface web du serveur 2. Dans Datacenter > Cluster, cliquez sur Join Cluster.
| Champ | Valeur |
|---|---|
| Information | le bloc copié à l'étape 5 |
| Password | le mot de passe root du serveur 1 |
| Link 0 | l'adresse 10.70.44.# du serveur 2 |
Cliquez sur Join 'aria'. Au bout de quelques secondes, la page affiche une erreur de connexion.
Cette erreur est normale. Le serveur 2 vient de recevoir les certificats du cluster, et votre navigateur ne reconnaît plus sa connexion. Rechargez la page et reconnectez-vous.
Étape 7 — Joindre le serveur 3¶
Recommencez l'étape 6 depuis l'interface web du serveur 3, avec le même bloc d'information et le même mot de passe. Seule la ligne Link 0 change : l'adresse du serveur 3.
Étape 8 — Voir les trois nœuds¶
Rechargez l'interface web du serveur 1.
L'arborescence affiche maintenant Datacenter (aria) et les trois nœuds. Ouvrez l'interface du serveur 3 : elle affiche exactement la même chose. Peu importe l'adresse que vous tapez dans le navigateur, vous gérez désormais les trois serveurs.
Étape 9 — Lire l'état du quorum¶
Dans le Shell de n'importe quel nœud :
Lisez quatre lignes. Quorate: Yes : ce nœud fait partie de la majorité. Expected votes: 3 : le cluster connaît trois nœuds. Total votes: 3 : les trois sont présents. Quorum: 2 : il faut deux nœuds pour décider, et le cluster survivra donc à la perte d'un seul.
Étape 10 — Voir la configuration partagée¶
Dans le Shell du serveur 3 :
Il y a un dossier par nœud du cluster, y compris les deux autres. C'est dans ces dossiers que seront rangés les fichiers de configuration des VM.
Étape 11 — Lire la liste des nœuds de corosync¶
Toujours dans le Shell du serveur 3 :
La section nodelist énumère les trois nœuds et leur adresse. Ce fichier est identique sur les trois serveurs : pmxcfs le recopie à chaque modification.
Vérification finale¶
- L'arborescence affiche
Datacenter (aria)et trois nœuds avec une coche verte - L'interface du serveur 2 et celle du serveur 3 affichent la même arborescence
-
pvecm statusafficheQuorate: YesetTotal votes: 3 -
/etc/pve/nodescontient un dossier par nœud
Question 1¶
Un coéquipier a cliqué sur Create Cluster sur le serveur 2 au lieu de Join Cluster. Que faut-il en conclure ?
- a) Rien de grave : le serveur 2 rejoindra automatiquement le cluster du serveur 1, puisqu'il porte le même nom.
- b) Le serveur 2 forme son propre cluster d'un nœud. Il ne peut plus joindre
ariatant qu'il n'a pas été retiré de ce cluster, ce qui demande en pratique une réinstallation. - c) Le serveur 2 devient le maître du cluster
aria.
Voir la réponse
**b) Le serveur 2 forme son propre cluster d'un nœud.** Un cluster est identifié par sa configuration corosync et ses clés, pas par son nom. Deux clusters nommés `aria` sont deux clusters différents qui s'ignorent. Un nœud déjà membre d'un cluster ne peut pas en joindre un autre. Le choix a) est tentant parce que le nom est le même, mais Proxmox ne s'en sert jamais pour regrouper des nœuds. Seule la procédure de jonction, avec l'empreinte du certificat et le mot de passe, fait entrer un nœud dans un cluster.En cas de problème¶
| Symptôme | Cause probable | Correction |
|---|---|---|
this host already contains virtual guests |
Une VM ou un conteneur existe encore sur le nœud qui joint | Supprimer la VM, ou demander à l'enseignant de réinitialiser le nœud |
cluster not ready - no quorum? à la jonction |
Jonction lancée quelques secondes après la création du cluster, avant qu'il soit prêt | Attendre une minute, puis cliquer de nouveau sur Join 'aria' |
authentication failure à la jonction |
Mot de passe du nœud qui joint, au lieu de celui du serveur 1 | Reprendre l'étape 6 avec le mot de passe root du serveur 1 |
| La page du serveur 2 reste en erreur après la jonction | Ancien certificat en cache dans le navigateur | Fermer l'onglet, en ouvrir un nouveau sur https://10.70.44.#:8006 |
| Un nœud apparaît avec un point d'interrogation gris | Corosync ne le joint pas, ou son heure dérive | Étapes 2 et 3 sur ce nœud, puis systemctl status corosync |
Quorate: No |
Moins de deux nœuds présents | Vérifier que les trois serveurs sont allumés et joignables |










