Partager via


Configurer Pacemaker pour les groupes de disponibilité Always On et les instances de cluster de basculement

S’applique à : SQL Server - Linux

Quand un groupe de disponibilité Always On ou une instance de cluster de basculement (FCI) s’étend sur plusieurs sites, chaque site dispose généralement de son propre réseau, ce qui signifie souvent que chaque site a son propre adressage IP.

Par exemple, les adresses du site A commencent par 192.168.1.<x>, et les adresses du site B par 192.168.2.<x>, où <x> est la partie de l’adresse IP qui est unique sur le serveur. Sans une sorte de routage mis en place au niveau de la couche de mise en réseau, ces serveurs ne peuvent pas communiquer entre eux.

Il existe deux manières de gérer cette situation :

  • configurer un réseau qui fait le lien entre les deux sous-réseaux différents (appelé VLAN)
  • configurer le routage entre les sous-réseaux.

Solution basée sur un réseau local virtuel

Condition préalable : Dans le cas d’une solution basée sur un réseau local virtuel, chaque serveur participant à un groupe de disponibilité ou à une instance de cluster de basculement (FCI) a besoin de deux cartes réseau (NIC) pour une disponibilité appropriée (une carte réseau à deux ports est un point de défaillance unique sur un serveur physique), afin qu’il soit possible d’attribuer des adresses IP sur son sous-réseau natif ainsi que d’une sur le réseau local virtuel. Cette exigence s’ajoute à tout autre réseau nécessaire tel qu’iSCSI, qui a également besoin de son propre réseau.

La création d’adresses IP pour le groupe de disponibilité ou l’instance de cluster de basculement (FCI) est effectuée sur le réseau local virtuel. Dans l’exemple suivant, le réseau local virtuel a un sous-réseau 192.168.3.<x>, si bien que l’adresse IP créée pour le groupe de disponibilité ou pour l’instance de cluster de basculement (FCI) est 192.168.3.104. Il n’y a rien de plus à configurer, car une seule adresse IP est attribuée au groupe de disponibilité ou à l’instance de cluster de basculement (FCI).

Diagramme montrant comment configurer plusieurs sous-réseaux avec un réseau local virtuel (VLAN).

Configuration avec Pacemaker

Dans Windows, un cluster de basculement Windows Server (WSFC) prend en charge en mode natif plusieurs sous-réseaux et gère plusieurs adresses IP via une dépendance OU sur l’adresse IP. Dans Linux, il n’y a pas de dépendance OR, mais il existe un moyen d’obtenir un sous-réseau multi-sous-réseau approprié en mode natif avec Pacemaker, bien que vous ne puissiez pas utiliser la ligne de commande Pacemaker normale. Vous devez modifier la base d’informations du cluster (CIB). La base d’informations de cluster est un fichier XML avec la configuration Pacemaker.

Diagramme montrant comment configurer plusieurs sous-réseaux avec Pacemaker.

Mettez à jour la base d’informations de cluster

  1. Exportez la base d’informations de cluster.

    sudo pcs cluster cib <filename>
    

    <filename> est le nom que vous souhaitez donner à la base d’informations de cluster.

  2. Modifiez le fichier qui a été créé. Recherchez la section <resources>. Vous voyez les différentes ressources qui ont été créées pour le groupe de disponibilité ou pour l’instance de cluster de basculement (FCI). Trouvez celle associée à l'adresse IP. Ajoutez une section <instance_attributes> avec les informations relatives à la deuxième adresse IP, soit avant, soit après l’adresse existante, mais avant <operations>. Cela ressemble à la syntaxe suivante :

    <instance_attributes id="<NameForAttribute>">
        <nvpair id="<NameForIP>" name="ip" value="<IPAddress>"/>
    </instance_attributes>
    

    <NameForAttribute> est le nom unique de cet attribut, <NameForIP> est le nom associé à l’adresse IP, et <IPAddress> est l’adresse IP du deuxième sous-réseau.

    Consultez l’exemple ci-dessous.

    <instance_attributes id="virtualip-instance_attributes">
        <nvpair id="virtualip-instance_attributes-ip" name="ip" value="192.168.1.102"/>
    </instance_attributes>
    

    Par défaut, il n’y a qu’une seule <instance_attributes /> dans le fichier XML CIB exporté. S’il existe deux sous-réseaux, vous avez besoin de deux entrées <instance_attributes />.

    Voici un exemple avec des entrées pour deux sous-réseaux :

    <instance_attributes id="virtualip-instance_attributes1">
        <rule id="Subnet1-IP" score="INFINITY" boolean-op="or">
            <expression id="Subnet1-Node1" attribute="#uname" operation="eq" value="Node1" />
            <expression id="Subnet1-Node2" attribute="#uname" operation="eq" value="Node2" />
        </rule>
        <nvpair id="IP-In-Subnet1" name="ip" value="192.168.1.102"/>
    </instance_attributes>
    <instance_attributes id="virtualip-instance_attributes2">
        <rule id="Subnet2-IP" score="INFINITY">
            <expression id="Subnet2-Node1" attribute="#uname" operation="eq" value="Node3" />
        </rule>
        <nvpair id="IP-In-Subnet2" name="ip" value="192.168.2.102"/>
    </instance_attributes>
    

    Vous utilisez boolean-op="or" lorsque le sous-réseau possède plusieurs serveurs.

  3. Importez le CIB modifié et reconfigurez Pacemaker.

    sudo pcs cluster cib-push <filename>
    

    <filename> est le nom du fichier CIB avec les informations d’adresse IP modifiées.

Vérifier le basculement

  1. Une fois que le CIB est appliqué avec la configuration mise à jour, effectuez un test Ping du nom DNS associé à la ressource d’adresse IP dans Pacemaker. Il doit refléter l’adresse IP associée au sous-réseau qui héberge actuellement le groupe de disponibilité ou l’instance de cluster de basculement (FCI).

  2. Faites basculer le groupe de disponibilité ou l’instance de cluster de basculement (FCI) sur l’autre sous-réseau.

  3. Une fois que le groupe de disponibilité ou l’instance de cluster de basculement (FCI) est entièrement en ligne, effectuez un test Ping du nom DNS associé à l’adresse IP. Il doit refléter l’adresse IP dans le deuxième sous-réseau.

  4. Si vous le souhaitez, vous pouvez faire basculer à nouveau le groupe de disponibilité ou l’instance de cluster de basculement (FCI) vers le sous-réseau d’origine.