Accéder au contenuNavigation Accéder à la page : page précédente [raccourci clavier p] / page suivante [raccourci clavier n]
documentation.suse.com / Documentation de SUSE Linux Enterprise High Availability Extension / Quick Start Guides / Démarrage rapide de Geo Clustering
SUSE Linux Enterprise High Availability Extension 15 SP5

Démarrage rapide de Geo Clustering

Date de publication : 11 décembre 2023

Geo Clustering protège les charges de travail au sein des centres de données distribués au niveau international. Le présent document explique la configuration de base d'une grappe Geo, à l'aide des scripts d'amorçage Geo fournis par le shell crm.

Copyright © 2006–2023 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 marques commerciales de fabricants tiers appartiennent à leur propriétaire respectif. Les symboles de marque commerciale (®, ™, etc.) désignent des marques de SUSE et de ses sociétés affiliées. 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.

1 Présentation conceptuelle

Les grappes Geo basées sur SUSE® Linux Enterprise High Availability Extension peuvent être considérées comme des grappes de « superposition », dans lesquelles chaque site de grappe correspond à un noeud d'une grappe traditionnelle. La grappe de superposition est gérée par le gestionnaire de ticket de grappe booth (appelé ci-après booth). Chacune des parties impliquées dans une grappe Geo exécute un service, le boothd. Celui-ci se connecte aux daemons booth en cours d'exécution sur les autres sites et échange des informations de connectivité. Pour rendre les ressources de grappe hautement disponibles entre les sites, le booth s'appuie sur les objets de grappe appelés tickets. Un ticket donne le droit d'exécuter certaines ressources sur un site de grappe spécifique. Le booth garantit que chaque ticket est accordé à un seul site à la fois.

En cas d'interruption de la communication entre deux instances de booth, cela peut provenir d'une défaillance du réseau entre les sites de grappe ou d'une indisponibilité d'un site de grappe. Dans ce cas, vous avez besoin d'une instance supplémentaire (un troisième site de grappe ou un arbitrator) pour parvenir à un consensus sur les décisions (par exemple, le basculement des ressources entre les sites). Les arbitres sont des machines uniques (hors des grappes) qui exécutent une instance de booth dans un mode particulier. Chaque grappe Geo peut avoir un ou plusieurs arbitres.

Grappe à deux sites—2x2 noeuds + arbitre (facultatif)
Figure 1 : Grappe à deux sites—2x2 noeuds + arbitre (facultatif)

Il est également possible d'exécuter une grappe Geo à deux sites sans arbitre. Dans ce cas, un administrateur de grappe Geo doit gérer manuellement les tickets. Si un ticket doit être accordé à plusieurs sites en même temps, le booth affiche un avertissement.

Pour plus de détails sur le concept, les composants et la gestion des tickets pour les grappes Geo, reportez-vous au Administration Guide.

2 Scénario d'utilisation

Dans l'exemple suivant, nous allons configurer une grappe Geo de base avec deux sites de grappe et un arbitre :

  • Supposons que les sites de grappe soient nommés amsterdam et berlin.

  • Supposons que chaque site se compose de deux noeuds. Les noeuds alice et bob appartiennent à la grappe amsterdam. Les noeuds charlie et doro appartiennent à la grappe berlin.

  • Le site amsterdam recevra l'adresse IP virtuelle suivante : 192.168.201.100.

  • Le site berlin recevra l'adresse IP virtuelle suivante : 192.168.202.100.

  • Supposons que l'arbitre a l'adresse IP suivante : 192.168.203.100.

Avant de poursuivre, assurez-vous que les conditions suivantes sont remplies :

Configuration requise
Deux grappes existantes

Vous avez au moins deux grappes existantes que vous souhaitez combiner dans une grappe Geo. (Si vous devez configurer deux grappes d'abord, suivez les instructions du manuel Démarrage rapide de l'installation et de la configuration.)

Noms de grappe pertinents

Chaque grappe possède un nom pertinent défini dans le fichier /etc/corosync/corosync.conf qui reflète son emplacement.

Arbitre

Vous avez installé une troisième machine qui ne fait partie d'aucune grappe existante et doit être utilisée en tant qu'arbitre.

Pour plus de détails sur chaque élément, reportez-vous également à la Section 3, « Configuration requise ».

3 Configuration requise

Toutes les machines (noeuds de grappe et arbitres) destinées à faire partie de la grappe doivent disposer au minimum des modules et extensions suivants :

  • Basesystem Module 15 SP5

  • Server Applications Module 15 SP5

  • SUSE Linux Enterprise High Availability Extension15 SP5

Lors de l'installation des machines, sélectionnez HA GEO Node en tant que system role. Cela entraîne l'installation d'un système minimal dans lequel les paquets du modèle Geo Clustering for High Availability (ha_geo) sont installés par défaut.

Configuration réseau
  • Les adresses IP virtuelles à utiliser pour chaque site de grappe doivent être accessibles dans la grappe Geo.

  • Les sites doivent être accessibles sur un port UDP et un port TCP par instance de booth. En d'autres termes, les éventuels pare-feux ou tunnels IPsec intermédiaires doivent être configurés en conséquence.

  • D'autres décisions de configuration peuvent nécessiter l'ouverture de ports supplémentaires (par exemple, pour la réplication de base de données ou DRBD).

Autres conditions requises et recommandations
  • Tous les noeuds de grappe sur tous les sites doivent être synchronisés avec un serveur NTP en dehors de la grappe. Pour plus d'informations, reportez-vous au manuel Administration Guide for SUSE Linux Enterprise Server 15 SP5.

    Si les noeuds ne sont pas synchronisés, les fichiers journaux et les rapports de grappe sont très difficiles à analyser.

  • Utilisez un nombre impair de sites dans votre grappe Geo. En cas d'interruption de la connexion réseau, cela permet de garantir qu'il y a toujours une majorité de sites (afin d'éviter les scénarios de grappes divergentes). Si vous disposez d'un nombre pair de sites de grappe, utilisez un arbitre pour la gestion du basculement automatique des tickets. Si vous n'utilisez pas d'arbitre, vous devez gérer le basculement des tickets manuellement.

  • La grappe sur chaque site a un nom pertinent, par exemple : amsterdam et berlin.

    Les noms de grappe pour chaque site sont définis dans leur fichier /etc/corosync/corosync.conf respectif :

    totem {
        [...]
        cluster_name: amsterdam
        }

    Modifiez le nom à l'aide de la commande crmsh suivante :

    # crm cluster rename NEW_NAME

    Arrêtez et démarrez les services de grappe pour appliquer les modifications :

    # crm cluster restart
  • Les architectures mixtes au sein d'une grappe ne sont pas prises en charge. En revanche, pour les grappes Geo, chaque membre de la grappe Geo peut avoir une architecture différente, qu'il s'agisse d'un site de grappe ou d'un arbitre. Par exemple, vous pouvez exécuter une grappe Geo avec trois membres (deux sites de grappe et un arbitre), dans laquelle un seul site de grappe est exécuté sur IBM Z, l'autre fonctionnant sur x86 et l'arbitre sur POWER.

4 Présentation des scripts d'amorçage Geo

  • À l'aide du script crm cluster geo_init, configurez une grappe en tant que premier site d'une grappe Geo. Le script utilise des paramètres tels que les noms des grappes, l'arbitre et un ou plusieurs tickets pour créer le fichier /etc/booth/booth.conf. Il copie la configuration booth sur tous les noeuds du site de grappe actuel. Il configure également les ressources de grappe nécessaires pour le booth sur le site de grappe actuel.

    Pour plus de détails, reportez-vous à la Section 6, « Configuration du premier site d'une grappe Geo ».

  • À l'aide du script crm cluster geo_join, ajoutez la grappe actuelle à une grappe Geo existante. Le script copie la configuration booth d'un site de grappe existant et l'écrit dans le fichier /etc/booth/booth.conf sur tous les noeuds du site de grappe actuel. Il configure également les ressources de grappe nécessaires pour le booth sur le site de grappe actuel.

    Pour plus de détails, reportez-vous au Section 7, « Ajout d'un autre site à une grappe Geo ».

  • À l'aide du script crm cluster geo_init_arbitrator, configurez la machine actuelle en tant qu'arbitre pour la grappe Geo. Le script copie de la configuration booth d'un site de grappe existant et l'écrit dans le fichier /etc/booth/booth.conf.

    Pour plus de détails, reportez-vous à la Section 8, « Ajout de l'arbitre ».

Tous les scripts d'amorçage consignent des données dans le fichier /var/log/crmsh/crmsh.log. Pour toute information à propos du processus d'amorçage, consultez le fichier journal. Toutes les options définies lors du processus d'amorçage peuvent être modifiées ultérieurement (en changeant les paramètres booth, les ressources, etc). Pour plus de détails, reportez-vous à la Administration Guide.

5 Installation des paquets Haute disponibilité et Geo Clustering

Les paquets permettant de configurer et de gérer une grappe Geo sont inclus dans les modèles d'installation High Availability et Geo Clustering for High Availability. Ces modèles ne sont disponibles qu'après l'installation de SUSE Linux Enterprise High Availability Extension.

Vous pouvez vous enregistrer auprès du SUSE Customer Center et installer High Availability Extension pendant l'installation de SUSE Linux Enterprise Server ou ultérieurement. Pour plus d'informations, reportez-vous au manuel Deployment Guide pour SUSE Linux Enterprise Server.

Procédure 1 : installation des modèles Haute disponibilité et Geo Clustering
  1. Installez les modèles Haute disponibilité et Geo Clustering à partir de la ligne de commande :

    # zypper install -t pattern ha_sles ha_geo
  2. Installez les modèles Haute disponibilité et Geo Clustering sur toutes les machines qui feront partie de votre grappe.

    Note
    Note : installation des paquets logiciels sur tous les noeuds

    Pour procéder à une installation automatisée de SUSE Linux Enterprise Server 15 SP5 et de High Availability Extension, utilisez AutoYaST afin de cloner des noeuds existants. Pour plus d'informations, reportez-vous au Section 3.2, “Mass installation and deployment with AutoYaST”.

6 Configuration du premier site d'une grappe Geo

Utilisez la commande crm cluster geo_init pour configurer une grappe existante en tant que premier site d'une grappe Geo.

Procédure 2 : Configuration du premier site (amsterdam) avec la commande crm cluster geo_init
  1. Définissez une adresse IP virtuelle par site de grappe qui peut être utilisée pour accéder au site. Supposons que nous utilisons 192.168.201.100 et 192.168.202.100 à cet effet. Vous ne devez pas encore configurer les adresses IP virtuelles en tant que ressources de grappe. Les scripts d'amorçage s'en chargeront.

  2. Définissez le nom d'au moins un ticket qui accordera les droits pour l'exécution de certaines ressources sur un site de grappe. Utilisez un nom pertinent qui reflète les ressources qui dépendront du ticket (par exemple, ticket-nfs). Les scripts d'amorçage ont uniquement besoin du nom de ticket, vous pouvez définir les détails restants (dépendances de ticket des ressources) plus tard, comme décrit à la Section 10, « Étapes suivantes ».

  3. Connectez-vous à un noeud d'une grappe existante (par exemple, au noeud alice de la grappe amsterdam).

  4. exécutez crm cluster geo_init. Par exemple, utilisez les options suivantes :

    # crm cluster geo_init \
      --clusters "amsterdam=192.168.201.100 berlin=192.168.202.100" \1
      --tickets ticket-nfs \2
      --arbitrator 192.168.203.1003

    1

    Les noms des sites de grappe (comme définis dans le fichier /etc/corosync/corosync.conf) et les adresses IP virtuelles que vous souhaitez utiliser pour chaque site de grappe. Dans ce cas, nous avons deux sites de grappe (amsterdam et berlin) avec une adresse IP virtuelle pour chacun.

    2

    Le nom d'un ou de plusieurs tickets.

    3

    Le nom d'hôte ou l'adresse IP d'une machine en dehors des grappes.

Le script d'amorçage crée le fichier de configuration booth et le synchronise pour les différents sites de grappe. Il crée également les ressources de grappe de base nécessaires pour le booth. L'Étape 4 de la Procédure 2 conduirait à la configuration booth et aux ressources de grappe suivantes :

Exemple 1 : Configuration booth créée par le script crm cluster geo_init
# The booth configuration file is "/etc/booth/booth.conf". You need to
# prepare the same booth configuration file on each arbitrator and
# each node in the cluster sites where the booth daemon can be launched.

# "transport" means which transport layer booth daemon will use.
# Currently only "UDP" is supported.
transport="UDP"
port="9929"

arbitrator="192.168.203.100"
site="192.168.201.100"
site="192.168.202.100"
authfile="/etc/booth/authkey"
ticket="ticket-nfs"
expire="600"
Exemple 2 : Ressources de grappe créées par le script crm cluster geo_init
primitive1 booth-ip IPaddr2 \
  params rule #cluster-name eq amsterdam ip=192.168.201.100 \
  params rule #cluster-name eq berlin ip=192.168.202.100 \
primitive2 booth-site ocf:pacemaker:booth-site \
  meta resource-stickiness=INFINITY \
  params config=booth \
  op monitor interval=10s
group3 g-booth booth-ip booth-site \
meta target-role=Stopped4

1

Une adresse IP virtuelle pour chaque site de grappe. Elle est requise par les daemons booth qui ont besoin d'une adresse IP persistante sur chaque site de grappe.

2

Une ressource primitive pour le daemon booth. Elle communique avec les daemons booth sur les autres sites de grappe. Le daemon peut être démarré sur n'importe quel noeud du site. Pour que la ressource reste sur le même noeud, si possible, la permanence de la ressource doit être définie sur INFINITY.

3

Un groupe de ressources de grappe pour les deux primitives. Avec cette configuration, chaque daemon de booth sera disponible sur son adresse IP individuelle, indépendamment du noeud sur lequel le daemon est exécuté.

4

Le groupe de ressources de grappe n'est pas démarré par défaut. Après vérification de la configuration de vos ressources de grappe (et l'ajout des ressources nécessaires pour terminer votre configuration), vous devez démarrer le groupe de ressources. Pour plus de détails, reportez-vous à la section Étapes requises pour terminer la configuration d'une grappe Geo.

7 Ajout d'un autre site à une grappe Geo

Après avoir initialisé le premier site de votre grappe Geo, ajoutez la deuxième grappe avec le script crm cluster geo_join, comme décrit dans la Procédure 3. Le script doit avoir un accès SSH à un site de grappe déjà configuré et ajoutera la grappe actuelle à la grappe Geo.

Procédure 3 : ajout du deuxième site (berlin) avec le script crm cluster geo_join
  1. Connectez-vous à un noeud du site de grappe que vous souhaitez ajouter (par exemple, au noeud charlie de la grappe berlin).

  2. Exécutez la commande crm cluster geo_join. Par exemple :

    # crm cluster geo_join \
      --cluster-node 192.168.201.100\1
      --clusters "amsterdam=192.168.201.100 berlin=192.168.202.100"2

    1

    Indique à partir de quel emplacement le système doit copier la configuration booth. Utilisez l'adresse IP ou le nom d'hôte d'un noeud d'un site de grappe Geo déjà configuré. Vous pouvez également utiliser l'adresse IP virtuelle d'un site de grappe existant (comme dans cet exemple). Vous pouvez aussi utiliser l'adresse IP ou le nom d'hôte d'un arbitre déjà configuré pour votre grappe Geo.

    2

    Les noms des sites de grappe (comme définis dans le fichier /etc/corosync/corosync.conf) et les adresses IP virtuelles que vous souhaitez utiliser pour chaque site de grappe. Dans ce cas, nous avons deux sites de grappe (amsterdam et berlin) avec une adresse IP virtuelle pour chacun.

La commande crm cluster geo_join copie la configuration booth à partir de l'emplacement 1 (voir Exemple 1). En outre, il crée les ressources de grappe nécessaires pour le booth (voir Exemple 2).

8 Ajout de l'arbitre

Une fois que vous avez configuré tous les sites de votre grappe Geo avec les scripts crm cluster geo_init et crm cluster geo_join, définissez l'arbitre avec le script crm cluster geo_init_arbitrator.

Procédure 4 : configuration de l'arbitre avec le script crm cluster geo_init_arbitrator
  1. Connectez-vous à la machine que vous souhaitez utiliser en tant qu'arbitre.

  2. Exécutez la commande suivante. Par exemple :

    # crm cluster geo_init_arbitrator --cluster-node 192.168.201.1001

    1

    Indique à partir de quel emplacement le système doit copier la configuration booth. Utilisez l'adresse IP ou le nom d'hôte d'un noeud d'un site de grappe Geo déjà configuré. Vous pouvez également utiliser l'adresse IP virtuelle d'un site de grappe déjà existant (comme dans cet exemple).

Le script crm cluster geo_init_arbitrator copie la configuration booth à partir de 1 (voir Exemple 1). Il active et démarre également le service de booth sur l'arbitre. Ainsi, l'arbitre est prêt à communiquer avec les instances de booth sur les sites de grappe lorsque les services de booth y sont aussi en cours d'exécution.

9 Surveillance des sites de grappe

Pour afficher les deux sites de grappe avec les ressources et le ticket que vous avez créés au cours du processus d'amorçage, utilisez Hawk2. L'interface Web Hawk2 vous permet de surveiller et de gérer plusieurs grappes (indépendantes) et grappes Geo.

Conditions préalables
  • Toutes les grappes à surveiller à partir du Tableau de bord de Hawk2 doivent exécuter SUSE Linux Enterprise High Availability Extension 15 SP5.

  • Si vous n'avez pas encore remplacé le certificat auto-signé pour Hawk2 par votre propre certificat (ou un certificat signé par une autorité de certification officielle) sur chaque noeud de grappe, effectuez l'opération suivante : connectez-vous à Hawk2 sur chaque noeud dans chaque grappe au moins une fois. Vérifiez le certificat (ou ajoutez une exception dans le navigateur afin d'ignorer l'avertissement). Sans cela, Hawk2 ne peut pas se connecter à la grappe.

Procédure 5 : utilisation du tableau de bord Hawk2
  1. Démarrez un navigateur Web et entrez l'adresse IP virtuelle de votre premier site de grappe, amsterdam :

    https://192.168.201.100:7630/

    Vous pouvez également utiliser l'adresse IP ou le nom d'hôte du noeud alice ou bob. Si vous avez configuré les deux noeuds avec les scripts d'amorçage, le service hawk doit s'exécuter sur les deux noeuds.

  2. Connectez-vous à l'interface Web de Hawk2.

  3. Dans la barre de navigation de gauche, sélectionnez Tableau de bord.

    Hawk2 affiche une vue d'ensemble des noeuds et ressources sur le site de grappe actuel. En outre, il indique les tickets qui ont été configurés pour la grappe Geo. Si vous avez besoin d'informations sur les icônes utilisées dans cette vue, cliquez sur Legend (Légende).

    tableau de bord Hawk2 avec un site de grappe (amsterdam)
    Figure 2 : tableau de bord Hawk2 avec un site de grappe (amsterdam)
  4. Pour ajouter un tableau de bord pour le deuxième site de grappe, cliquez sur Ajouter une grappe.

    1. Entrez le nom de grappe permettant d'identifier la grappe dans le Tableau de bord. Dans ce cas, il s'agit de berlin.

    2. Entrez le nom d'hôte complet de l'un des noeuds de la grappe (dans ce cas, charlie ou doro).

    3. Cliquez sur Ajouter. Hawk2 affiche un deuxième onglet pour le site de grappe nouvellement ajouté avec une vue d'ensemble de ses noeuds et ressources.

      tableau de bord Hawk2 avec deux sites de grappe
      Figure 3 : tableau de bord Hawk2 avec deux sites de grappe
  5. Pour afficher plus de détails sur un site de grappe ou sur sa gestion, basculez vers l'onglet du site et cliquez sur l'icône de la chaîne.

    Hawk2 ouvre la vue État de ce site dans une nouvelle fenêtre de navigateur ou un nouvel onglet. Cette vue vous permet d'administrer cette partie de la grappe Geo.

10 Étapes suivantes

Les scripts d'amorçage Geo Clustering constituent un moyen rapide pour configurer une grappe Geo de base qui peut être utilisée à des fins de test. Toutefois, pour convertir la grappe Geo résultante en une grappe Geo opérationnelle pouvant être utilisée dans des environnements de production, d'autres étapes sont requises.

Étapes requises pour terminer la configuration d'une grappe Geo
Démarrage des services de booth sur des sites de grappe

Après le processus d'amorçage, le service de booth de l'arbitre ne peut pas encore communiquer avec les services de booth des sites de grappe, car ils ne sont pas démarrés par défaut.

Le service de booth pour chaque site de grappe est géré par le groupe de ressources de booth g-booth (voir Exemple 2, « Ressources de grappe créées par le script crm cluster geo_init »). Pour démarrer une instance du service de booth par site, démarrez le groupe de ressources de booth respectif sur chaque site de grappe. Cela permet à toutes les instances de booth de communiquer entre elles.

Configuration des dépendances de tickets et des contraintes d'ordre

Pour faire dépendre des ressources du ticket que vous avez créé au cours du processus d'amorçage de grappe Geo, configurez des contraintes. Pour chaque contrainte, définissez une loss-policy qui définit ce qu'il arriverait aux ressources respectives si le ticket était révoqué d'un site de grappe.

Pour plus de détails, reportez-vous au Chapter 6, Configuring cluster resources and constraints.

Octroi initial d'un ticket à un site

Avant que le booth puisse gérer un certain ticket au sein de la grappe Geo, vous devez d'abord l'attribuer à un site manuellement. Pour accorder un ticket, vous pouvez utiliser l'outil de ligne de commande du client de booth ou Hawk2.

Pour plus de détails, reportez-vous au Chapter 8, Managing Geo clusters.

Les scripts d'amorçage créent les mêmes ressources de booth sur les deux sites de grappe et les mêmes fichiers de configuration booth sur tous les sites, y compris l'arbitre. Si vous étendez la configuration de grappe Geo (pour passer à un environnement de production), vous devrez probablement affiner la configuration booth et modifier la configuration des ressources de grappe liées au booth. Ensuite, vous devez synchroniser les modifications sur les autres sites de votre grappe Geo pour qu'elles soient prises en compte.

Note
Note : synchronisation des modifications entre les différents sites de grappe
  • Pour synchroniser les modifications de la configuration booth sur tous les sites de grappe (y compris l'arbitre), utilisez Csync2. Pour plus d'informations, reportez-vous au Chapter 5, Synchronizing configuration files across all sites and arbitrators.

  • Le CIB (base d'informations de la grappe) n'est pas synchronisé automatiquement entre les différents sites d'une grappe Geo. Cela signifie que toutes les modifications de la configuration des ressources requises sur tous les sites de grappe doivent être transférées vers les autres sites manuellement. Pour ce faire, ajoutez des balises aux ressources respectives, exportez-les à partir du CIB actuel, puis importez-les dans le CIB sur les autres sites de grappe. Pour plus de détails, reportez-vous au Section 6.4, “Transferring the resource configuration to other cluster sites”.

11 Pour en savoir plus