documentation.suse.com / Installation d'une grappe High Availability de base à trois noeuds
SUSE Linux Enterprise High Availability 16.0

Installation d'une grappe High Availability de base à trois noeuds

Date de publication : 03 nov 2025
CONTENU

Procédure pour la configuration d'une grappe High Availability de base à trois noeuds avec un périphérique de traitement par blocs STONITH (SBD) sans disque et un système de surveillance (watchdog) logiciel.

MOTIF

Cette grappe peut être utilisée à des fins de test ou comme une configuration de grappe minimale qui peut être étendue par la suite.

EFFORT

La configuration d'une grappe High Availability de base prend environ 15 minutes, en fonction de la vitesse de votre connexion réseau.

OBJECTIF

Démarrez rapidement et facilement avec SUSE Linux Enterprise High Availability.

1 Scénario d'utilisation

Ce guide décrit la configuration d'une grappe High Availability minimale avec les propriétés suivantes :

  • Trois noeuds de grappe avec un accès SSH sans mot de passe les uns aux autres. Cette configuration nécessite trois noeuds pour que le SBD sans disque puisse gérer des scénarios de grappes divergentes sans l'aide de QDevice.

  • Une adresse IP virtuelle flottante, qui permet aux clients de se connecter à l'outil de gestion graphique Hawk, quel que soit le noeud sur lequel le service s'exécute.

  • Un périphérique de traitement par blocs STONITH (SBD) et un système de surveillance (watchdog) logiciel utilisé comme mécanisme d'isolation de noeud pour éviter les scénarios de grappes divergentes.

  • Un système de basculement des ressources d'un noeud vers l'autre en cas de défaillance de l'hôte actif (configuration active/passive).

Il s'agit d'une configuration de grappe simple avec des exigences externes minimales. Vous pouvez utiliser cette grappe à des fins de test ou comme une configuration de grappe de base que vous pouvez étendre par la suite pour un environnement de production.

2 Présentation de l'installation

Pour installer la grappe High Availability décrite à la Section 1, « Scénario d'utilisation », vous devez effectuer les tâches suivantes :

  1. Passez en revue la Section 3, « Configuration système requise » pour vous assurer de disposer de tout ce dont vous avez besoin.

  2. Installez SUSE Linux Enterprise High Availability sur les noeuds de la grappe selon les instructions de la Section 4, « Activation de l'extension High Availability ».

  3. Initialisez la grappe sur le premier noeud selon les instructions de la Section 5, « Configuration du premier noeud ».

  4. Ajoutez des noeuds à votre grappe selon les instructions de la Section 6, « Ajout des deuxième et troisième noeuds ».

  5. Connectez-vous à l'interface Web Hawk pour surveiller la grappe selon les instructions de la Section 7, « Connexion à Hawk ».

  6. Effectuez les tests de base selon les instructions de la Section 8, « Test de la grappe » pour vous assurer que la grappe fonctionne comme prévu.

  7. Passez en revue la section Section 9, « Étapes suivantes » pour des conseils sur l'expansion de la grappe dans un environnement de production.

3 Configuration système requise

Cette section décrit la configuration système requise pour une configuration minimale de SUSE Linux Enterprise High Availability.

3.1 Configuration matérielle requise

Serveurs

Trois serveurs pour agir en tant que noeuds de grappe.

Ces serveurs peuvent être des machines virtuelles ou sans système d'exploitation. Ils ne nécessitent pas une configuration matérielle identique (mémoire, espace disque, etc.), mais doivent avoir la même architecture. Les grappes multi plate-forme ne sont pas prises en charge.

Consultez la section System Requirements sur la page https://www.suse.com/download/sle-ha/ pour plus de détails sur le matériel serveur.

Cartes d'interface réseau (NIC)

Au moins deux cartes d'interface réseau par noeud de grappe. Cela vous permet de configurer deux canaux de communication ou plus pour la grappe, à l'aide de l'une des méthodes suivantes :

  • Combinez les cartes d'interface réseau en une liaison réseau (de préférence). Dans ce cas, vous devez configurer le périphérique lié sur chaque noeud avant d'initialiser la grappe.

  • Créez un deuxième canal de communication dans Corosync. Vous pouvez le configurer à l'aide du script d'installation de grappe. Dans ce cas, les deux cartes d'interface réseau doivent se trouver sur des sous-réseaux différents.

STONITH (isolation de noeuds)

Pour être prises en charge, toutes les grappes SUSE Linux Enterprise High Availability doivent disposer d'au moins un périphérique d'isolation de noeuds (STONITH) pour éviter les scénarios de grappes divergentes. Il peut s'agir d'un périphérique physique (un commutateur) ou d'un SBD associé à un watchdog. Le mécanisme SBD peut être utilisé avec un stockage partagé ou en mode sans disque.

La configuration minimale décrite dans ce guide utilise un watchdog logiciel et un SBD sans disque, de sorte qu'aucun matériel supplémentaire n'est requis. Avant d'utiliser cette grappe dans un environnement de production, remplacez le watchdog logiciel par un watchdog matériel.

3.2 Configuration logicielle requise

Système d'exploitation

SUSE Linux Enterprise Server doit être installé et enregistré sur tous les noeuds.

Extension High Availability

L'extension SUSE Linux Enterprise High Availability nécessite un code d'enregistrement supplémentaire.

Cette extension peut être activée lors de l'installation de SLES ou ultérieurement sur un système en cours d'exécution. Ce guide explique comment activer et enregistrer l'extension sur un système en cours d'exécution.

3.3 Configuration réseau

Synchronisation horaire

Tous les systèmes doivent se synchroniser avec un serveur NTP situé en dehors de la grappe. SUSE Linux Enterprise Server utilise chrony pour NTP. Lorsque vous initialisez la grappe, vous êtes averti si chrony n'est pas en cours d'exécution.

Même si les noeuds sont synchronisés, les fichiers journaux et les rapports de grappe peuvent devenir difficiles à analyser si les noeuds ont des fuseaux horaires différents configurés.

Nom d'hôte et adresse IP

Tous les noeuds de la grappe doivent pouvoir se trouver les uns les autres à l'aide du nom. Utilisez les méthodes suivantes pour une résolution de nom fiable :

  • Utilisez des adresses IP statiques.

  • Répertoriez tous les noeuds dans le fichier /etc/hosts avec leur adresse IP, leur nom de domaine complet et leur nom d'hôte court.

Seule l'adresse IP principale de chaque carte d'interface réseau est prise en charge.

SSH

Tous les noeuds de la grappe doivent pouvoir accéder les uns aux autres via le protocole SSH. Certaines opérations de grappe nécessitent également une authentification SSH sans mot de passe. Lorsque vous initialisez la grappe, le script de configuration vérifie les clés SSH existantes et les génère si elles n'existent pas.

Important
Important : accès SSH root sous SUSE Linux Enterprise 16

Sous SUSE Linux Enterprise 16, la connexion SSH root avec un mot de passe est désactivée par défaut.

Sur chaque noeud, créez un utilisateur doté des privilèges sudo ou configurez l'authentification SSH sans mot de passe pour l'utilisateur root avant d'initialiser la grappe.

Si vous initialisez la grappe sous l'identité d'un utilisateur sudo, certaines commandes crmsh nécessitent également une autorisation sudo sans mot de passe.

4 Activation de l'extension High Availability

Cette procédure explique comment installer SUSE Linux Enterprise High Availability sur un serveur SUSE Linux Enterprise Server (SLES) existant. Vous pouvez ignorer cette procédure si vous avez déjà installé l'extension et les paquets High Availability lors de l'installation de SLES avec Agama.

Configuration requise
  • SUSE Linux Enterprise Server est installé et enregistré auprès du SUSE Customer Center.

  • Vous disposez d'un code d'enregistrement supplémentaire pour SUSE Linux Enterprise High Availability.

Effectuez cette procédure sur toutes les machines que vous avez l'intention d'utiliser comme noeuds de grappe :

  1. Connectez-vous soit en tant qu'utilisateur root, soit en tant qu'utilisateur disposant de privilèges sudo.

  2. Vérifiez si l'extension High Availability est déjà activée :

    > sudo SUSEConnect --list-extensions
  3. Vérifiez si les paquets High Availability sont déjà installés :

    > zypper search ha_sles
  4. Activez l'extension SUSE Linux Enterprise High Availability :

    > sudo SUSEConnect -p sle-ha/16.0/x86_64 -r HA_REGCODE
  5. Installez les paquets High Availability :

    > sudo zypper install -t pattern ha_sles

5 Configuration du premier noeud

SUSE Linux Enterprise High Availability inclut des scripts de configuration pour simplifier l'installation d'une grappe. Pour configurer la grappe sur le premier noeud, utilisez le script crm cluster init.

5.1 Présentation du script crm cluster init

La commande crm cluster init démarre un script qui définit les paramètres de base nécessaires à la communication de la grappe, ce qui permet d'obtenir une grappe à un noeud en cours d'exécution.

Le script vérifie et configure les composants suivants :

NTP

Vérifie si chrony est configuré pour se lancer au moment du démarrage. Si ce n'est pas le cas, un message apparaît.

SSH

Détecte ou génère les clés SSH nécessaires pour que les noeuds de la grappe puissent se connecter les uns aux autres sans mot de passe.

Pare-feu

Ouvre les ports du pare-feu qui sont nécessaires pour les communications de grappe.

Csync2

Configure Csync2 de manière à répliquer les fichiers de configuration sur tous les noeuds d'une grappe.

Corosync

Configure le système de communication de la grappe.

SBD/surveillance

Vérifie s'il existe un watchdog et demande si le SBD doit être configuré comme mécanisme d'isolation de noeud.

Administration de grappe Hawk

Active le service Hawk et affiche l'URL de l'interface Web Hawk.

Adresse IP virtuelle flottante

Demande s'il faut configurer une adresse IP virtuelle pour l'interface Web Hawk.

QDevice/QNetd

Demande s'il faut configurer QDevice et QNetd pour participer aux décisions de quorum. Cela est recommandé pour les grappes comportant un nombre pair de noeuds, et en particulier pour les grappes à deux noeuds.

Note
Note : paramètres par défaut de Pacemaker

Les options définies par le script crm cluster init peuvent ne pas être les mêmes que les paramètres par défaut de Pacemaker. Vous pouvez vérifier les paramètres modifiés par le script dans le fichier /var/log/crmsh/crmsh.log. Toutes les options définies au cours du processus d'amorçage peuvent être modifiées ultérieurement à l'aide de crmsh.

Note
Note : configuration de grappe pour différentes plates-formes

Le script crm cluster init détecte l'environnement système (par exemple, Microsoft Azure) et ajuste certains paramètres de grappe en fonction du profil de cet environnement. Pour plus d'informations, reportez-vous au fichier /etc/crm/profiles.yml.

5.2 Initialisation de la grappe sur le premier noeud

Configurez la grappe sur le premier noeud à l'aide du script crm cluster init. Le script vous invite à fournir des informations de base sur la grappe et configure les paramètres et services requis. Pour plus d'informations, exécutez la commande crm cluster init --help.

Configuration requise
  • SUSE Linux Enterprise High Availability est installé et à jour.

  • Tous les noeuds comportent au moins deux interfaces réseau ou une liaison réseau, avec des adresses IP statiques répertoriées dans le fichier /etc/hosts avec le nom de domaine complet et le nom d'hôte court de chaque noeud.

Effectuez cette procédure sur un seul noeud :

  1. Connectez-vous au premier noeud soit en tant qu'utilisateur root, soit en tant qu'utilisateur disposant de privilèges sudo.

  2. Lancez le script crm cluster init :

    > sudo crm cluster init

    Le script vérifie si chrony est en cours d'exécution, ouvre les ports de pare-feu requis, configure Csync2 et vérifie les clés SSH. Si aucune clé SSH n'est disponible, le script les génère.

  3. Configurez Corosync pour la communication de la grappe :

    1. Entrez une adresse IP pour le premier canal de communication (ring0). Par défaut, le script propose l'adresse de la première interface réseau disponible. Il peut s'agir d'une interface individuelle ou d'un périphérique lié. Acceptez cette adresse ou saisissez-en une autre.

    2. Si le script détecte plusieurs interfaces réseau, il vous demande si vous souhaitez configurer un deuxième canal de communication (ring1). Si vous avez configuré le premier canal avec un périphérique lié, vous pouvez refuser en spécifiant n. Si vous devez configurer un deuxième canal, confirmez avec y et entrez l'adresse IP d'une autre interface réseau. Les deux interfaces doivent se trouver sur des sous-réseaux différents.

    Le script configure les ports de pare-feu par défaut pour la communication Corosync.

  4. Indiquez si vous souhaitez configurer le SBD comme mécanisme d'isolation de noeud :

    1. Spécifiez y pour confirmer que vous souhaitez utiliser le SBD.

    2. Lorsque vous êtes invité à indiquer le chemin d'accès à un périphérique de traitement par blocs, entrez none pour configurer le SBD sans disque.

    Le script configure le SBD, y compris les paramètres de timeout appropriés. Contrairement à un SBD sur disque, un SBD sans disque ne nécessite pas de ressource de grappe STONITH.

    Si aucun watchdog matériel n'est disponible, le script configure le watchdog logiciel softdog.

  5. Configurez une adresse IP virtuelle pour l'administration de la grappe avec l'interface Web Hawk :

    1. Spécifiez y pour confirmer que vous souhaitez configurer une adresse IP virtuelle.

    2. Saisissez une adresse IP inutilisée à employer comme adresse IP d'administration pour Hawk.

    Au lieu de vous connecter à Hawk sur un noeud de grappe individuel, vous pouvez vous connecter à l'adresse IP virtuelle.

  6. Indiquez si vous souhaitez configurer QDevice et QNetd :

    Pour la configuration minimale décrite dans ce document, refusez en spécifiant n.

Le script démarre les services de grappe pour mettre en ligne la grappe et activer Hawk. L'URL à utiliser pour Hawk apparaît à l'écran. Vous pouvez également vérifier le statut de la grappe à l'aide de la commande crm status.

Important
Important : mot de passe sécurisé pour hacluster

Le script crm cluster init crée un utilisateur et un mot de passe de grappe par défaut. Remplacez dès que possible le mot de passe par défaut par un mot de passe sécurisé :

> sudo passwd hacluster

6 Ajout des deuxième et troisième noeuds

Ajoutez des noeuds à votre grappe à l'aide du script crm cluster join. Le script nécessite uniquement un accès à un noeud de grappe existant et procède automatiquement à la configuration de base sur la machine actuelle. Pour plus d'informations, exécutez la commande crm cluster join --help.

Configuration requise
  • SUSE Linux Enterprise High Availability est installé et à jour.

  • Une grappe existante s'exécute déjà au moins sur un noeud.

  • Tous les noeuds comportent au moins deux interfaces réseau ou une liaison réseau, avec des adresses IP statiques répertoriées dans le fichier /etc/hosts avec le nom de domaine complet et le nom d'hôte court de chaque noeud.

  • Si vous vous connectez en tant qu'utilisateur sudo : le même utilisateur doit exister sur tous les noeuds. Cet utilisateur doit disposer d'une autorisation sudo sans mot de passe.

  • Si vous vous connectez en tant qu'utilisateur root : l'authentification SSH sans mot de passe doit être configurée sur tous les noeuds.

Effectuez cette procédure sur chaque noeud supplémentaire :

  1. Connectez-vous à ce noeud sous l'identité du même utilisateur avec lequel vous avez configuré le premier noeud.

  2. Lancez le script crm cluster join :

    • Si vous configurez le premier noeud en tant qu'utilisateur root, vous pouvez lancer le script sans paramètres supplémentaires :

      # crm cluster join
    • Si vous configurez le premier noeud en tant qu'utilisateur sudo, vous devez spécifier cet utilisateur avec l'option -c :

      > sudo crm cluster join -c USER@NODE1

    Le script vérifie si chrony est en cours d'exécution, ouvre les ports de pare-feu requis et configure Csync2.

  3. Si vous n'avez pas encore spécifié le premier noeud avec l'option -c, vous êtes invité à saisir son adresse IP ou son nom d'hôte.

  4. Si vous n'avez pas encore configuré l'authentification SSH sans mot de passe entre les noeuds, vous êtes invité à saisir les mots de passe de chacun des noeuds existants.

  5. Configurez Corosync pour la communication de la grappe :

    1. Le script propose une adresse IP pour ring0. Cette adresse IP doit se trouver sur le même sous-réseau que l'adresse IP utilisée pour ring0 sur le premier noeud. Si ce n'est pas le cas, entrez l'adresse IP correcte.

    2. Si la grappe dispose de deux canaux de communication Corosync configurés, le script vous invite à entrer une adresse IP pour ring1. Cette adresse IP doit se trouver sur le même sous-réseau que l'adresse IP utilisée pour ring1 sur le premier noeud.

Le script copie la configuration de grappe à partir du premier noeud, ajuste les paramètres de timeout pour prendre en compte le nouveau noeud et met le nouveau noeud en ligne.

Vous pouvez vérifier le statut de la grappe à l'aide de la commande crm status.

Important
Important : mot de passe sécurisé pour hacluster

Le script crm cluster join crée un utilisateur et un mot de passe de grappe par défaut. Sur chaque noeud, remplacez dès que possible le mot de passe par défaut par un mot de passe sécurisé :

> sudo passwd hacluster

7 Connexion à Hawk

Hawk vous permet de surveiller et d'administrer une grappe High Availability à l'aide d'un navigateur Web graphique. Vous pouvez également configurer une adresse IP virtuelle qui permet aux clients de se connecter à Hawk quel que soit le noeud sur lequel il s'exécute.

Configuration requise
  • La machine cliente doit pouvoir se connecter aux noeuds de la grappe.

  • La machine cliente doit disposer d'un navigateur Web graphique avec JavaScript et les cookies activés.

Vous pouvez effectuer cette procédure sur n'importe quelle machine qui peut se connecter aux noeuds de la grappe :

  1. Ouvrez un navigateur Web et entrez l'URL suivante :

    https://HAWKSERVER:7630/

    Remplacez HAWKSERVER par l'adresse IP ou le nom d'hôte d'un noeud de la grappe, ou l'adresse IP virtuelle de Hawk si elle est configurée.

    Note
    Note : avertissement de certificat

    Si un avertissement de certificat s'affiche la première fois que vous accédez à l'URL, un certificat auto-signé est utilisé. Pour vérifier le certificat, demandez à votre opérateur de grappe de vous fournir les informations relatives à ce certificat. Pour continuer, vous pouvez ajouter une exception dans le navigateur afin d'ignorer l'avertissement.

  2. Sur l'écran de connexion Hawk, entrez le Nom d'utilisateur et le Mot de passe de l'utilisateur hacluster.

  3. Cliquez sur Se connecter. L'interface Web Hawk affiche l'écran Statut par défaut.

L'écran Statut affiche une seule ressource configurée : l'adresse IP virtuelle admin-ip s'exécutant sur un noeud appelé alice.
Figure 1 : Écran Statut de Hawk

8 Test de la grappe

Les tests suivants peuvent vous aider à identifier les problèmes de base liés à la configuration de la grappe. Cependant, des tests réalistes impliquent des cas d'utilisation et des scénarios spécifiques. Avant d'utiliser la grappe dans un environnement de production, testez-la scrupuleusement en fonction de l'utilisation que vous comptez en faire.

8.1 Test du basculement des ressources

Vérifiez si la grappe déplace les ressources vers un autre noeud si le noeud actuel est défini sur standby. Cette procédure utilise des exemples de noeuds appelés alice et bob, et une ressource IP virtuelle appelée admin-ip avec l'exemple d'adresse IP 192.168.1.10.

  1. Ouvrez deux terminaux.

  2. Sur le premier terminal, envoyez une requête ping à l'adresse IP virtuelle :

    > ping 192.168.1.10
  3. Sur le deuxième terminal, connectez-vous à l'un des noeuds de la grappe.

  4. Vérifiez sur quel noeud l'adresse IP virtuelle s'exécute :

    > sudo crm status
    [..]
    Node List:
      * Online: [ alice bob ]
    
    Full List of Resources:
      * admin-ip  (ocf:heartbeat:IPaddr2):    Started alice
  5. Mettez alice en mode standby (veille) :

    > sudo crm node standby alice
  6. Vérifiez à nouveau le statut de la grappe. La ressource admin-ip devrait avoir migré vers bob :

    > sudo crm status
    [...]
    Node List:
      * Node alice: standby
      * Online: [ bob ]
    
    Full List of Resources:
      * admin-ip  (ocf:heartbeat:IPaddr2):    Started bob
  7. Sur le premier terminal, vous devriez voir un flux continu de requêtes ping envoyées à l'adresse IP virtuelle pendant la migration. Cela montre que la configuration de grappe et l'adresse IP flottante fonctionnent correctement.

  8. Annulez la commande ping en appuyant sur CtrlC.

  9. Sur le deuxième terminal, remettez alice en ligne :

    > sudo crm node online alice

8.2 Test des échecs de grappe

La commande crm cluster crash_test simule des échecs de grappe et signale les résultats.

La commande prend en charge les contrôles suivants :

--split-brain-iptables

Simule un scénario de grappes divergentes en bloquant le port Corosync et vérifie si un noeud peut être isolé comme prévu. Vous devez installer iptables avant de pouvoir exécuter ce test.

--kill-sbd/--kill-corosync/ --kill-pacemakerd

Supprime les daemons pour le SBD, Corosync ou Pacemaker. Après avoir exécuté l'un de ces tests, vous pouvez trouver un rapport dans le répertoire /var/lib/crmsh/crash_test/. Le rapport comprend une description de cas de test, une consignation des opérations et une explication des résultats possibles.

--fence-node NODE

Ce test isole le noeud spécifique transmis par la ligne de commandes.

Pour plus d'informations, exécutez la commande crm cluster crash_test --help.

L'exemple suivant utilise des noeuds appelés alice et bob, et teste l'isolation de bob. Pour surveiller le changement de statut de bob au cours du test, vous pouvez vous connecter à Hawk et accéder à Statut › Noeuds.

Exemple 1 : Test de la grappe : isolation des noeuds
> sudo crm status
[...]
Node List:
  * Online: [ alice bob ]

Active Resources:
  * admin-ip     (ocf:heartbeat:IPaddr2):    Started alice

> sudo crm cluster crash_test --fence-node bob

==============================================
Testcase:          Fence node bob
Fence action:      reboot
Fence timeout:     95

!!! WARNING WARNING WARNING !!!
THIS CASE MAY LEAD TO NODE BE FENCED.
TYPE Yes TO CONTINUE, OTHER INPUTS WILL CANCEL THIS CASE [Yes/No](No): Yes
INFO: Trying to fence node "bob"
INFO: Waiting 71s for node "bob" reboot...
INFO: Node "bob" will be fenced by "alice"!
INFO: Node "bob" was successfully fenced by "alice"

9 Étapes suivantes

Ce guide décrit une grappe High Availability de base qui peut être utilisée à des fins de test. Pour étendre cette grappe afin de l'utiliser dans des environnements de production, il est recommandé d'effectuer des étapes supplémentaires :

Ajout de noeuds supplémentaires

Ajoutez des noeuds à la grappe à l'aide du script crm cluster join.

Activation d'une surveillance (watchdog) matérielle

Avant d'utiliser la grappe dans un environnement de production, remplacez softdog par un watchdog matériel.

Ajout de périphériques STONITH supplémentaires

Pour les charges de travail critiques, nous vous recommandons vivement de disposer de deux ou trois périphériques STONITH utilisant des périphériques STONITH physiques ou un SBD sur disque.

Configuration de QDevice

QDevice et QNetd participent aux décisions de quorum. Avec l'aide de l'arbitre QNetd, QDevice fournit un nombre de voix configurable. Cela permet aux grappes de supporter davantage d'échecs de noeud que ne le permettent les règles de quorum standard. Il est recommandé de déployer QDevice et QNetd sur les grappes avec un nombre pair de noeuds, et en particulier sur les grappes à deux noeuds.