8.2. Ajouter ou supprimer un nœud

Cette section décrit comment supprimer un nœud d'un cluster et comment ajouter un nœud à un cluster. Vous pouvez supprimer un nœud d'un cluster selon la Section 8.2.1, « Supprimer un nœud d'un cluster ». Vous pouvez ajouter un nœud à un cluster selon la Section 8.2.2, « Ajouter un nœud à un cluster ».

8.2.1. Supprimer un nœud d'un cluster

Supprimer un nœud d'un cluster consiste en la fermeture du logiciel du cluster sur le nœud à supprimer et en la mise à jour de la configuration du cluster pour refléter la modification.

Important

Si la suppression d'un nœud du cluster cause une transition de plus de deux nœuds à deux nœuds, vous devrez redémarrer le logiciel du cluster sur chaque nœud après avoir mis à jour le fichier de configuration du cluster.
Pour supprimer un nœud d'un cluster, procédez aux étapes suivantes :
  1. Sur n'importe quel nœud, utilisez l'utilitaire clusvcadm pour déplacer, migrer, ou arrêter chaque service HA en cours de suppression du cluster qui est exécuté sur le nœud. Pour obtenir plus d'informations sur l'utilisation de clusvcadm, reportez-vous à la Section 8.3, « Gérer les services High-Availability ».
  2. Sur le nœud à supprimer du cluster, arrêtez le logiciel du cluster selon la Section 8.1.2, « Arrêter un logiciel de cluster ». Par exemple :
    [root@example-01 ~]# service rgmanager stop
    Stopping Cluster Service Manager:                          [  OK  ]
    [root@example-01 ~]# service gfs2 stop
    Unmounting GFS2 filesystem (/mnt/gfsA):                    [  OK  ]
    Unmounting GFS2 filesystem (/mnt/gfsB):                    [  OK  ]
    [root@example-01 ~]# service clvmd stop
    Signaling clvmd to exit                                    [  OK  ]
    clvmd terminated                                           [  OK  ]
    [root@example-01 ~]# service cman stop
    Stopping cluster: 
       Leaving fence domain...                                 [  OK  ]
       Stopping gfs_controld...                                [  OK  ]
       Stopping dlm_controld...                                [  OK  ]
       Stopping fenced...                                      [  OK  ]
       Stopping cman...                                        [  OK  ]
       Waiting for corosync to shutdown:                       [  OK  ]
       Unloading kernel modules...                             [  OK  ]
       Unmounting configfs...                                  [  OK  ]
    [root@example-01 ~]#
    
  3. Sur n'importe quel nœud dans le cluster, modifiez /etc/cluster/cluster.conf pour supprimer la section clusternode du nœud à supprimer. Par exemple, dans l'Exemple 8.1, « Configuration d'un cluster à trois nœuds », si node-03.example.com est censé être supprimé, alors supprimez la section clusternode pour ce nœud. Si la suppression d'un (ou plusieurs) nœud(s) cause au cluster de devenir un cluster à deux nœuds, vous pouvez ajouter la ligne suivante au fichier de configuration afin de permettre à un nœud unique de maintenir le quorum (au cas où un nœud échoue) :
    <cman two_node="1" expected_votes="1"/>
    Reportez-vous à la Section 8.2.3, « Exemples de configurations à deux nœuds et à trois nœuds » pour une comparaison entre une configuration à deux nœuds et une configuration à trois nœuds.
  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 mis à jour 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.
  8. Vérifiez que le fichier de configuration mis à jour a été propagé.
  9. Si le décompte des nœuds du cluster est passé de plus de deux nœuds à deux nœuds, vous devrez redémarrer le logiciel du cluster comme suit :
    1. Sur chaque nœud, arrêtez le logiciel du cluster selon la Section 8.1.2, « Arrêter un logiciel de cluster ». Par exemple :
      [root@example-01 ~]# service rgmanager stop
      Stopping Cluster Service Manager:                          [  OK  ]
      [root@example-01 ~]# service gfs2 stop
      Unmounting GFS2 filesystem (/mnt/gfsA):                    [  OK  ]
      Unmounting GFS2 filesystem (/mnt/gfsB):                    [  OK  ]
      [root@example-01 ~]# service clvmd stop
      Signaling clvmd to exit                                    [  OK  ]
      clvmd terminated                                           [  OK  ]
      [root@example-01 ~]# service cman stop
      Stopping cluster: 
         Leaving fence domain...                                 [  OK  ]
         Stopping gfs_controld...                                [  OK  ]
         Stopping dlm_controld...                                [  OK  ]
         Stopping fenced...                                      [  OK  ]
         Stopping cman...                                        [  OK  ]
         Waiting for corosync to shutdown:                       [  OK  ]
         Unloading kernel modules...                             [  OK  ]
         Unmounting configfs...                                  [  OK  ]
      [root@example-01 ~]#
      
    2. Sur chaque nœud, démarrez le logiciel du cluster selon la Section 8.1.1, « Démarrer un logiciel de cluster ». Par exemple :
      [root@example-01 ~]# service cman start
      Starting cluster: 
         Checking Network Manager...                             [  OK  ]
         Global setup...                                         [  OK  ]
         Loading kernel modules...                               [  OK  ]
         Mounting configfs...                                    [  OK  ]
         Starting cman...                                        [  OK  ]
         Waiting for quorum...                                   [  OK  ]
         Starting fenced...                                      [  OK  ]
         Starting dlm_controld...                                [  OK  ]
         Starting gfs_controld...                                [  OK  ]
         Unfencing self...                                       [  OK  ]
         Joining fence domain...                                 [  OK  ]
      [root@example-01 ~]# service clvmd start
      Starting clvmd:                                            [  OK  ]
      Activating VG(s):   2 logical volume(s) in volume group "vg_example" now active
                                                                 [  OK  ]
      [root@example-01 ~]# service gfs2 start
      Mounting GFS2 filesystem (/mnt/gfsA):                      [  OK  ]
      Mounting GFS2 filesystem (/mnt/gfsB):                      [  OK  ]
      [root@example-01 ~]# service rgmanager start
      Starting Cluster Service Manager:                          [  OK  ]
      [root@example-01 ~]#
      
    3. Sur n'importe quel nœud de cluster, exécutez cman_tool nodes pour vérifier que les nœuds fonctionnent en tant que membres dans le cluster (décrit comme « M » dans la colonne du statut « Sts »). Par exemple :
      [root@example-01 ~]# cman_tool nodes
      Node  Sts   Inc   Joined               Name
         1   M    548   2010-09-28 10:52:21  node-01.example.com
         2   M    548   2010-09-28 10:52:21  node-02.example.com
      
    4. Sur tout nœud, vérifiez que les services HA fonctionnent bien comme prévu à l'aide de l'utilitaire clustat. En outre, clustat affiche le statut des nœuds du cluster. Par exemple :
      [root@example-01 ~]#clustat
      Cluster Status for mycluster @ Wed Nov 17 05:40:00 2010
      Member Status: Quorate
      
       Member Name                             ID   Status
       ------ ----                             ---- ------
       node-02.example.com                         2 Online, rgmanager
       node-01.example.com                         1 Online, Local, rgmanager
      
       Service Name                   Owner (Last)                   State         
       ------- ----                   ----- ------                   -----           
       service:example_apache         node-01.example.com            started       
       service:example_apache2        (none)                         disabled