7.4. Configurer les domaines de basculement

Un domaine de basculement est un sous-ensemble nommé de nœuds d'un cluster qui sont capables d'exécuter un service cluster dans le cas d'un échec de nœud. Un domaine de basculement peut posséder les caractéristiques suivantes :
  • Unrestricted — Ceci vous permet de spécifier qu'un sous-ensemble de membres est préféré, mais qu'un service cluster assigné à ce domaine peut s'exécuter sur n'importe quel membre disponible.
  • Restricted — Ceci vous permet de restreindre les membres pouvant exécuter un service cluster en particulier. Si aucun des membres dans un domaine de basculement restricted n'est disponible, le service cluster ne pourra pas être lancé (manuellement ou par le logiciel du cluster).
  • Unordered — Lorsqu'un service cluster est assigné à un domaine de basculement unordered, le membre sur lequel le service cluster est exécuté est choisi parmi les membres disponibles du domaine de basculement sans ordre de priorité.
  • Ordered — Ceci vous permet de spécifier un ordre de préférence parmi les membres d'un domaine de basculement. Les domaines de basculement ordered sélectionnent le nœud avec le numéro de priorité le plus bas en premier. Autrement dit, le nœud dans un domaine de basculement avec un numéro de priorité de "1" spécifie la priorité la plus haute, il est ainsi le nœud préféré dans le domaine de basculement. Après ce nœud, le nœud préféré suivant sera le nœud avec le numéro de priorité le plus haut qui suit, et ainsi de suite.
  • Failback — Ceci vous permet de spécifier si un service dans le domaine de basculement devrait être restauré sur le nœud sur lequel il était initialement exécuté avant que ce nœud tombe en panne. La configuration de cette caractéristique est utile dans des circonstances où un nœud tombe en panne de manière répétitive et fait partie d'un domaine de basculement ordered. Dans ces circonstances, si un nœud est le nœud préféré dans un domaine de basculement, il est possible qu'un service tombe en panne puis se restaure de manière répétitive entre le nœud préféré et un autre nœud, affectant sévèrement la performance.

    Note

    La caractéristique failback est uniquement applicable si le basculement ordered est configuré.

Note

Modifier la configuration d'un domaine de basculement n'a aucun effet sur les services en cours d'exécution.

Note

Les domaines de basculement ne sont pas requis pour les opérations.
Par défaut, les domaines de basculement sont unrestricted et unordered.
Dans un cluster possédant plusieurs membres, l'utilisation d'un domaine de basculement restricted peut minimiser le travail de paramétrage du cluster pour qu'il exécute un service cluster (comme httpd), qui requiert que vous paramétriez la configuration de manière identique sur tous les membres exécutant le service cluster. Au lieu de paramétrer le cluster entier afin qu'il exécute le service cluster, il vous est possible de paramétrer uniquement les membres dans le domaine de basculement restricted que vous associerez au service cluster.

Note

Pour configurer un membre préféré, vous pouvez créer un domaine de basculement unrestricted comprenant uniquement un membre du cluster. Faire ceci cause au service cluster de s'exécuter sur ce membre du cluster en premier (le membre préféré), mais permet au service cluster de basculer sur tout autre membre.
Pour configurer un domaine de basculement, utilisez les procédures suivantes :
  1. Ouvrez /etc/cluster/cluster.conf sur n'importe quel nœud dans le cluster.
  2. Ajoutez la section squelette suivante dans l'élément rm pour chaque domaine de basculement à utiliser :
    
            <failoverdomains>
                <failoverdomain name="" nofailback="" ordered="" restricted="">
                    <failoverdomainnode name="" priority=""/>
                    <failoverdomainnode name="" priority=""/>
                    <failoverdomainnode name="" priority=""/>
                </failoverdomain>
            </failoverdomains>
    
    

    Note

    Le nombre d'attributs failoverdomainnode dépend du nombre de nœuds dans le domaine de basculement. La section squelette failoverdomain dans le texte précédent affiche trois éléments failoverdomainnode (sans aucun nom de nœud spécifié), signifiant ainsi qu'il y a trois nœuds dans le domaine de basculement.
  3. Dans la section failoverdomain, fournissez les valeurs des éléments et attributs. Pour des descriptions des éléments et attributs, reportez-vous à la section failoverdomain du schéma de clusters annoté. Le schéma de clusters annoté est disponible sur /usr/share/doc/cman-X.Y.ZZ/cluster_conf.html (par exemple, /usr/share/doc/cman-3.0.12/cluster_conf.html) dans n'importe quel nœud de cluster. Pour voir un exemple de section failoverdomains, reportez-vous à l'Exemple 7.8, « Domaine de basculement ajouté à cluster.conf ».
  4. Mettez à jour l'attribut config_version en incrémentant sa valeur (par exemple, en la modifiant de config_version="2" à config_version="3">).
  5. Enregistrez /etc/cluster/cluster.conf.
  6. (Optional) Validez le fichier sur le schéma du cluster (cluster.rng) en exécutant la commande ccs_config_validate. Par exemple :
    [root@example-01 ~]# ccs_config_validate 
    Configuration validates
    
  7. Exécutez la commande cman_tool version -r pour propager la configuration au reste des nœuds de cluster.
L'Exemple 7.8, « Domaine de basculement ajouté à cluster.conf » propose un exemple de configuration avec un domaine de basculement ordered et unrestricted.

Exemple 7.8. Domaine de basculement ajouté à cluster.conf


<cluster name="mycluster" config_version="3">
   <clusternodes>
     <clusternode name="node-01.example.com" nodeid="1">
         <fence>
            <method name="APC">
              <device name="apc" port="1"/>
             </method>
         </fence>
     </clusternode>
     <clusternode name="node-02.example.com" nodeid="2">
         <fence>
            <method name="APC">
              <device name="apc" port="2"/>
            </method>
         </fence>
     </clusternode>
     <clusternode name="node-03.example.com" nodeid="3">
         <fence>
            <method name="APC">
              <device name="apc" port="3"/>
            </method>
         </fence>
     </clusternode>
   </clusternodes>
   <fencedevices>
         <fencedevice agent="fence_apc" ipaddr="apc_ip_example" login="login_example" name="apc" passwd="password_example"/>
   </fencedevices>
   <rm>
       <failoverdomains>
           <failoverdomain name="example_pri" nofailback="0" ordered="1" restricted="0">
               <failoverdomainnode name="node-01.example.com" priority="1"/>
               <failoverdomainnode name="node-02.example.com" priority="2"/>
               <failoverdomainnode name="node-03.example.com" priority="3"/>
           </failoverdomain>
       </failoverdomains>
   </rm>
</cluster>

La section failoverdomains contient une section failoverdomain pour chaque domaine de basculement dans le cluster. Cet exemple possède un domaine de basculement. Sur la ligne failoverdomain, le nom (name) est spécifié en tant que example_pri. En outre, il ne spécifie aucune restauration « failback » (failback="0"), il spécifie que le basculement est ordered (ordered="1") et que le domaine de basculement est unrestricted (restricted="0").