Le présent document explique comment configurer une grappe très basique de deux noeuds à l'aide des scripts d'amorçage fournis par le paquetage ha-cluster-bootstrap
. Ce processus inclut la configuration d'une adresse IP virtuelle en tant que ressource de grappe et l'utilisation d'un détecteur de vues de grappe divergentes (SBD pour Split Brain Detector) sur un stockage partagé en tant que mécanisme d'isolation.
Les procédures décrites dans le présent document permettent de configurer une grappe de base à deux noeuds présentant les caractéristiques suivantes :
Deux noeuds: alice
(adresse IP: 192.168.1.1
) et bob
(adresse IP : 192.168.1.2
), connectés entre eux via le réseau.
Une adresse IP virtuelle flottante (192.168.2.1
), qui permet aux clients de se connecter au service quel que soit le noeud physique sur lequel il s'exécute.
Un périphérique de stockage partagé, utilisé comme mécanisme d'isolation SBD afin d'éviter les scénarios de vues de grappe 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).
Une fois la grappe configurée au moyen des scripts d'amorçage, nous la surveillerons à l'aide de l'interface graphique Hawk (HA Web Konsole), l'un des outils de gestion de grappe fournis avec SUSE® Linux Enterprise High Availability Extension. Pour tester le bon fonctionnement du basculement des ressources, nous mettrons simplement l'un des noeuds en mode veille et vérifierons si l'adresse IP virtuelle est migrée vers l'autre noeud.
La grappe à deux noeuds peut être utilisée à des fins de test ou comme une configuration de grappe minimale que vous pouvez étendre par la suite. Avant d'utiliser la grappe dans un environnement de production, modifiez-la en fonction de vos besoins.
Cette section décrit la configuration système minimale requise pour le scénario présenté dans la Section 1, « Scénario d'utilisation ». Si vous souhaitez adapter la grappe en vue de l'utiliser dans un environnement de production, consultez la liste complète des recommandations ainsi que la configuration système requises du Chapter 2, System Requirements and Recommendations.
Deux serveurs exécutant les logiciels spécifiés à la Configuration logicielle requise.
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.
Au moins deux médias de communication TCP/IP par noeud de grappe. L'équipement réseau doit prendre en charge le moyen de communication que vous souhaitez utiliser pour les communications au sein de la grappe, à savoir la multidiffusion ou la monodiffusion. Les médias de communication doivent prendre en charge un débit de données de 100 Mbit/s ou plus. La prise en charge d'une grappe requiert au moins deux chemins de communication redondants. Cette configuration peut être obtenue via :
La liaison de périphériques réseau (option à privilégier).
Un deuxième canal de communication dans Corosync.
La tolérance aux pannes réseau sur la couche d'infrastructure (par exemple, hyperviseur).
Pour éviter un scénario de « vues de grappe divergentes », les grappes ont besoin d'un mécanisme d'isolation de noeud. Dans un scénario de vues de grappe divergentes, les noeuds de grappe sont divisés en deux groupes ou plus qui ne se connaissent pas (en raison d'une défaillance matérielle ou logicielle, ou d'une interruption de la connexion réseau). Un mécanisme d'isolation isole le noeud en question (généralement en le réinitialisant ou en le mettant hors tension). Ce processus est également appelé STONITH (« Shoot the other node in the head »). Un mécanisme d'isolation de noeud peut être un dispositif physique (un bouton marche/arrêt) ou un mécanisme de type SBD (STONITH par disque) associé à un système de surveillance (watchdog). L'utilisation d'un SBD nécessite un stockage partagé.
Les logiciels ci-dessous doivent être installés sur tous les noeuds de la grappe.
SUSE® Linux Enterprise Server 12 SP5 (avec toutes les mises à jour en ligne disponibles)
SUSE Linux Enterprise High Availability Extension 12 SP5 (avec toutes les mises à jour en ligne disponibles)
Les noeuds de la grappe doivent se synchroniser avec un serveur NTP situé en dehors de la grappe. Pour plus d'informations, consultez le site https://documentation.suse.com/sles-12/html/SLES-all/cha-netz-xntp.html.
Si les noeuds ne sont pas synchronisés, il se peut que la grappe ne fonctionne pas correctement. En outre, les fichiers journaux et les rapports de grappe sont très difficiles à analyser en l'absence de synchronisation. Si vous utilisez les scripts d'amorçage, le système vous avertira si un service NTP n'est pas encore configuré.
Utilisez des adresses IP statiques.
Répertoriez tous les noeuds de la grappe, avec leur nom d'hôte complet et leur nom d'hôte abrégé, dans le fichier /etc/hosts
. Il est essentiel que les membres de la grappe puissent se trouver sur la base de leurs noms. Si les noms ne sont pas disponibles, la communication interne au sein de la grappe ne fonctionnera pas.
Tous les noeuds de la grappe doivent pouvoir accéder les uns aux autres via le protocole SSH. Des outils tels que les rapports CRM
(pour le dépannage) et l' de Hawk2 requièrent un accès SSH sans mot de passe entre les noeuds, faute de quoi ils peuvent uniquement collecter des données du noeud actif.
Si vous utilisez les scripts d'amorçage pour configurer la grappe, les clés SSH sont automatiquement créées et copiées.
Toutes les commandes du paquetage ha-cluster-bootstrap exécutent des scripts d'amorçage qui ne nécessitent qu'un minimum de temps et d'effort manuel.
Le script ha-cluster-init
permet de définir les paramètres de base nécessaires pour la communication au sein de la grappe. À ce moment-là, vous disposez d'une grappe opérationnelle comportant un seul noeud.
Le script ha-cluster-join
vous permet d'ajouter des noeuds à votre grappe.
Le script ha-cluster-remove
vous permet de supprimer des noeuds de votre grappe.
Tous les scripts d'amorçage consignent des données dans le fichier/var/log/ha-cluster-bootstrap.log
. Pour toute information à propos du processus d'amorçage, consultez ce fichier. Toutes les options définies au cours du processus d'amorçage peuvent être modifiées ultérieurement à l'aide du module de grappe YaST. Pour plus d'informations, reportez-vous au Section 3.1, “Manual Installation”.
Chaque script est fourni avec une page de manuel présentant les différentes fonctions, les options du script et les fichiers que ce dernier peut créer et modifier.
Le script d'amorçage ha-cluster-init
vérifie et configure les composants suivants :
Si un service NTP n'a pas été configuré pour se lancer au moment du démarrage, un message s'affiche.
Le script crée les clés SSH nécessaires pour que les noeuds de la grappe puissent accéder les uns aux autres sans mot de passe.
Le script configure Csync2 de manière à répliquer les fichiers de configuration sur tous les noeuds d'une grappe.
Le script configure le système de communication de la grappe.
Le script vérifie si un système de surveillance existe et vous demande si vous souhaitez configurer un SBD comme mécanisme d'isolation de noeud.
Le script vous demande si vous souhaitez configurer une adresse IP virtuelle pour l'administration de la grappe à l'aide de Hawk2.
Le script ouvre les ports du pare-feu qui sont nécessaires pour les communications de grappe.
Le script définit un nom pour la grappe. Par défaut, il s'agit de clusterNUMÉRO
. Ce nom est facultatif et principalement utile pour les grappes géographiques. En règle générale, le nom de la grappe reflète l'emplacement et facilite la distinction d'un site à l'intérieur d'une grappe géographique.
Les paquetages nécessaires pour configurer et gérer une grappe avec High Availability Extension sont inclus dans le modèle d'installation Haute disponibilité
. Ce modèle est disponible uniquement si SUSE Linux Enterprise High Availability Extension a été installé en tant qu'extension de SUSE® Linux Enterprise Server.
Pour plus d'informations sur l'installation des extensions, reportez-vous au SUSE Linux Enterprise 12 SP5 Deployment Guide (Guide de déploiement de SUSE Linux Enterprise 12 SP5) : https://documentation.suse.com/sles-12/html/SLES-all/cha-add-ons.html.
Si le modèle n'est pas encore installé, installez-le avec la commande zypper install -t pattern ha_sles
. Vous pouvez également installer le modèle avec YaST. Procédez de la façon suivante :
Démarrez YaST et sélectionnez
› .Cliquez sur l'onglet
et activez le modèle dans la liste des modèles.Cliquez sur
pour démarrer l'installation des paquetages.Installez le modèle Haute disponibilité sur toutes les machines qui feront partie de votre grappe.
Pour procéder à une installation automatisée de SUSE Linux Enterprise Server 12 SP5 et de SUSE Linux Enterprise High Availability Extension 12 SP5, utilisez AutoYaST pour cloner des noeuds existants. Pour plus d'informations, reportez-vous au Section 3.2, “Mass Installation and Deployment with AutoYaST”.
Enregistrez les machines sur le SUSE Customer Center. Pour plus d'informations, reportez-vous au site https://documentation.suse.com/sles-12/html/SLES-all/cha-update-offline.html#sec-update-registersystem.
Si vous disposez d'un stockage partagé, tel qu'un SAN (Storage Area Network), vous pouvez l'utiliser pour éviter des scénarios de vues de grappe divergentes en configurant un SBD en tant que mécanisme d'isolation de noeud. Un SBD utilise la prise en charge de la surveillance et l'agent de ressource STONITH external/sbd
.
Lors de la configuration du premier noeud à l'aide du script ha-cluster-init
, vous pouvez décider d'utiliser ou non un SBD. Si vous choisissez d'utiliser un SBD, vous devez spécifier le chemin d'accès au périphérique de stockage partagé. Par défaut, le script ha-cluster-init
crée automatiquement une petite partition sur le périphérique à utiliser pour le SBD.
Pour pouvoir utiliser un SBD, les conditions suivantes doivent être remplies :
Le chemin d'accès au périphérique de stockage partagé doit être persistant et cohérent sur tous les noeuds de la grappe. Utilisez des noms de périphérique stables, tels que /dev/disk/by-id/dm-uuid-part1-mpath-abcedf12345
.
Le périphérique SBD ne doit pas utiliser cLVM2 ou la technologie RAID basée sur un hôte, ni résider sur une instance DRBD*.
Pour plus d'informations sur la configuration d'un stockage partagé, reportez-vous au manuel Storage Administration Guide for SUSE Linux Enterprise Server 12 SP5 (Guide d'administration du stockage de SUSE Linux Enterprise Server 12 SP5) : https://documentation.suse.com/sles-12/html/SLES-all/stor-admin.html.
Dans SUSE Linux Enterprise Server (SLES), la prise en charge de la surveillance dans le kernel est activée par défaut : SLES inclut plusieurs modules de kernel qui fournissent des pilotes de surveillance propres au matériel. High Availability Extension utilise le daemon SBD comme composant logiciel pour « alimenter » le système de surveillance.
La procédure suivante utilise la surveillance softdog
.
Le pilote softdog part du principe qu'au moins un processeur est toujours en cours d'exécution. Si tous les processeurs sont bloqués, le code dans le pilote softdog qui devrait redémarrer le système ne sera jamais exécuté. En revanche, les systèmes de surveillance matérielle continuent à travailler même si tous les processeurs sont bloqués.
Avant d'utiliser la grappe dans un environnement de production, il est vivement recommandé de remplacer le module softdog
par le module matériel respectif qui correspond le mieux à votre matériel.
Toutefois, si aucun système de surveillance ne correspond à votre matériel, softdog
peut être utilisé en tant que module de surveillance de kernel.
Créez un stockage partagé persistant comme décrit dans la Section 5.1, « Configuration requise pour le SBD ».
Activez la surveillance logicielle :
root #
echo
softdog > /etc/modules-load.d/watchdog.confroot #
systemctl
restart systemd-modules-load
Vérifiez si le module de surveillance logicielle est chargé correctement :
root #
lsmod
| egrep "(wd|dog)" softdog 16384 1
Sur bob
, initialisez la partition du détecteur de vues de grappe divergentes (SBD) :
root #
sbd
-d /dev/SBDDEVICE create
Démarrez le SBD pour écouter sur le périphérique SBD :
root #
sbd
-d /dev/SBDDEVICE watch
Sur alice
, envoyez un message de test :
root #
sbd
-d /dev/SBDDEVICE message bob test
Sur bob
, vérifiez l'état à l'aide de la commande systemctl
et vous devriez voir le message reçu :
root #
systemctl
status sbd [...] info: Received command test from alice on disk SBDDEVICE
Arrêtez de surveiller le périphérique SBD sur bob
à l'aide de la commande ci-dessous :
root #
systemctl
stop sbd
Il est vivement recommandé de tester le bon fonctionnement du mécanisme d'isolation SBD en cas de vues de grappe divergentes. Ce type de test peut être exécuté en bloquant la communication de grappe Corosync.
Configurez le premier noeud à l'aide du script ha-cluster-init
. Cette opération ne nécessite qu'un minimum de temps et d'effort manuel.
alice
) à l'aide du script ha-cluster-init
#
Connectez-vous en tant qu'utilisateur root
à la machine physique ou virtuelle que vous souhaitez utiliser comme noeud de grappe.
Démarrez le script d'amorçage en exécutant la commande suivante :
root #
ha-cluster-init
--name CLUSTERNAME
Remplacez la marque de réservation NOM_GRAPPE par un nom pertinent, comme l'emplacement géographique de votre grappe (par exemple, amsterdam
). Cela est particulièrement utile si vous souhaitez créer une grappe géographique ultérieurement, car cela simplifie l'identification d'un site. Si vous exécutez la commande sans l'option --name
, le nom par défaut est hacluster
.
Si vous avez besoin de la monodiffusion plutôt que la multidiffusion (par défaut) pour la communication de votre grappe, utilisez l'option -u
. Après l'installation, recherchez la valeur udpu
dans le fichier /etc/corosync/corosync.conf
. Si ha-cluster-init
détecte un noeud en cours d'exécution sur Amazon Web Services (AWS), le script utilisera la monodiffusion automatiquement par défaut pour la communication de grappe.
Le script vérifie la configuration NTP et la présence d'un service de surveillance matérielle. Il génère les clés SSH publiques et privées utilisées pour l'accès SSH et la synchronisation Csync2, et démarre les services respectifs.
Configurez la couche de communication de grappe (Corosync) :
Spécifiez une adresse réseau pour la liaison. Par défaut, le script propose l'adresse réseau eth0
. Vous pouvez également spécifier une autre adresse réseau, par exemple bond0
.
Spécifiez une adresse de multidiffusion. Le script propose une adresse aléatoire que vous pouvez utiliser comme adresse par défaut. Bien entendu, votre réseau spécifique doit prendre en charge cette adresse de multidiffusion.
Spécifiez un port de multidiffusion. Par défaut, le script propose le port 5405
.
Enfin, le script démarre le service Pacemaker pour mettre en ligne la grappe à un noeud et activer Hawk2. L'URL à utiliser pour Hawk2 apparaît à l'écran.
Configurez le SBD comme mécanisme d'isolation de noeud :
Spécifiez y
pour confirmer que vous souhaitez utiliser le SBD.
Entrez un chemin d'accès persistant à la partition du périphérique de bloc que vous souhaitez utiliser pour le SBD (voir Section 5, « Utilisation d'un SBD comme mécanisme d'isolation »). Le chemin doit être cohérent sur tous les noeuds de la grappe.
Configurez une adresse IP virtuelle pour l'administration de la grappe avec Hawk2. (Nous utiliserons cette ressource IP virtuelle ultérieurement pour tester le bon fonctionnement du basculement).
Spécifiez y
pour confirmer que vous souhaitez configurer une adresse IP virtuelle.
Spécifiez une adresse IP inutilisée que vous souhaitez employer comme adresse IP d'administration pour Hawk2 : 192.168.2.1
.
Au lieu de vous connecter à un noeud de grappe individuel avec Hawk2, vous pouvez vous connecter à l'adresse IP virtuelle.
Vous disposez maintenant d'une grappe opérationnelle comportant un seul noeud. Pour visualiser son état, procédez comme suit :
Sur une machine, démarrez un navigateur Web et assurez-vous que JavaScript et les cookies sont activés.
Spécifiez comme URL l'adresse IP ou le nom d'hôte d'un noeud de grappe qui exécute le service Web Hawk. Vous pouvez également spécifier l'adresse IP virtuelle que vous avez configurée à l'Étape 6 de la Procédure 2, « configuration du premier noeud (alice
) à l'aide du script ha-cluster-init
» :
https://HAWKSERVER:7630/
Si un avertissement de certificat s'affiche la première fois que vous tentez d'accéder à l'URL, un certificat auto-signé est utilisé. Par défaut, les certificats auto-signés ne sont pas considérés comme fiables.
Demandez à votre opérateur de grappe de vous fournir les informations relatives au certificat afin de vérifier ce dernier.
Pour continuer, vous pouvez ajouter une exception dans le navigateur afin d'ignorer l'avertissement.
Dans l'écran de connexion de Hawk2, spécifiez le hacluster
, mot de passe : Linux
).
Remplacez dès que possible le mot de passe par défaut par un mot de passe sécurisé :
root #
passwd
hacluster
Cliquez sur
. Une fois que vous êtes connecté, l'interface Web Hawk2 affiche l'écran d'état par défaut, lequel permet de visualiser rapidement l'état actuel de la grappe :
Si vous disposez d'une grappe à un noeud opérationnelle, ajoutez-y le deuxième noeud à l'aide du script d'amorçage ha-cluster-join
, comme décrit dans la Procédure 4. 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, reportez-vous à la page de manuel relative au script ha-cluster-join
.
Les scripts d'amorçage prennent en charge la modification de la configuration spécifique à une grappe à deux noeuds, par exemple, SBD et Corosync.
bob
) à l'aide du script ha-cluster-join
#
Connectez-vous en tant qu'utilisateur root
à la machine physique ou virtuelle censée rejoindre la grappe.
Démarrez le script d'amorçage en exécutant la commande suivante :
root #
ha-cluster-join
Si un service NTP n'a pas été configuré pour se lancer au moment du démarrage, un message s'affiche. Le script vérifie également la présence d'un périphérique de surveillance matérielle (ce type de périphérique est important si vous souhaitez configurer un SBD) et vous avertit si aucun périphérique de ce type n'est présent.
Si vous décidez de continuer, le système vous invite à spécifier l'adresse IP d'un noeud existant. Spécifiez l'adresse IP du premier noeud (alice
, 192.168.1.1
).
Si vous n'avez pas déjà configuré un accès SSH sans mot de passe entre les deux machines, le système vous invite également à spécifier le mot de passe root
du noeud existant.
Une fois connecté au noeud spécifié, le script copie la configuration Corosync, configure SSH et Csync2, et met en ligne la machine actuelle en tant que nouveau noeud de grappe. Par ailleurs, le script démarre le service requis pour Hawk2.
Vérifiez l'état de la grappe dans Hawk2. Dans Figure 2, « État de la grappe à deux noeuds »).
› , vous devriez normalement voir deux noeuds présentant un état vert (voir
La Procédure 5, « test du basculement des ressources » est un test simple qui permet de vérifier si la grappe déplace l'adresse IP virtuelle vers l'autre noeud lorsque le noeud qui exécute actuellement la ressource est mis en mode veille
.
Toutefois, un test réaliste implique des cas et des scénarios d'utilisation spécifiques, notamment la vérification du bon fonctionnement du mécanisme d'isolation destiné à éviter une situation de vues de grappe divergentes. Si vous n'avez pas configuré votre mécanisme d'isolation correctement, la grappe ne fonctionnera pas convenablement.
Avant d'utiliser la grappe dans un environnement de production, testez-la scrupuleusement en fonction de l'utilisation que vous comptez en faire.
Ouvrez un terminal et exécutez une commande ping sur l'adresse 192.168.2.1
, autrement dit votre adresse IP virtuelle :
root #
ping
192.168.2.1
Connectez-vous à votre grappe, comme décrit dans la Procédure 3, « connexion à l'interface Web Hawk2 ».
Dans Hawk2 adresse_admin
). Supposons que la ressource s'exécute sur alice
.
Mettez alice
en mode (voir Figure 3, « Noeud alice
en mode veille »).
alice
en mode veille #
Cliquez sur adresse_admin
a été migrée vers bob
.
Pendant la migration, vous devriez normalement voir un flux continu de requêtes ping envoyées à l'adresse IP virtuelle. Cela montre que la configuration de grappe et l'adresse IP flottante fonctionnent correctement. Annulez la commande ping
en appuyant sur Ctrl–C.
Le site https://documentation.suse.com/sle-ha-12 fournit davantage d'informations à propos de ce produit. La documentation inclut également un manuel complet Administration Guide for SUSE Linux Enterprise High Availability Extension (Guide d'administration de SUSE Linux Enterprise High Availability Extension). Pour en savoir plus sur les tâches de configuration et d'administration, consultez ce manuel.
Copyright © 2006– 2024 SUSE LLC et contributeurs. Tous droits réservés.
Il est autorisé de copier, distribuer et/ou modifier ce document conformément aux conditions de la licence de documentation libre GNU version 1.2 ou (à votre discrétion) 1.3, avec la section permanente qu'est cette mention de copyright et la licence. Une copie de la version de licence 1.2 est incluse dans la section intitulée « Licence de documentation libre GNU ».
Pour les marques commerciales SUSE, consultez le site Web http://www.suse.com/company/legal/. Toutes les autres marques de fabricants tiers sont la propriété de leur détenteur respectif. Les symboles de marque commerciale (®,™, etc.) indiquent des marques commerciales de SUSE et de ses filiales. Des astérisques (*) désignent des marques commerciales de fabricants tiers.
Toutes les informations de cet ouvrage ont été regroupées avec le plus grand soin. Cela ne garantit cependant pas sa complète exactitude. Ni SUSE LLC, ni les sociétés affiliées, ni les auteurs, ni les traducteurs ne peuvent être tenus responsables des erreurs possibles ou des conséquences qu'elles peuvent entraîner.