Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

8.2. Rimozione o aggiunta di un nodo

Questa sezione mostra come rimuovere ed aggiungere un nodo nel cluster. Per rimuovere un nodo dal cluster consultare Sezione 8.2.1, «Rimozione di un nodo dal cluster»; per aggiungere un nodo al cluster consultare Sezione 8.2.2, «Come aggiungere un nodo al cluster».

8.2.1. Rimozione di un nodo dal cluster

Il processo di rimozione del nodo dal cluster consiste nell'arrestare il software del cluster sul nodo che si desidera rimuovere ed aggiornare la configurazione del cluster in modo da riflettere la modifica apportata.

Importante

Se la rimozione del cluster causa una transizione da un cluster con più nodi ad uno con due nodi sarà necessario riavviare il software del cluster su ogni nodo dopo aver aggiornato il file di configurazione del cluster.
Per rimuovere un nodo dal cluster eseguire le fasi di seguito riportate:
  1. Su qualsiasi nodo usare l'utilità clusvcadm per riposizionare, migrare o arrestare ogni servizio HA in esecuzione sul nodo rimosso dal cluster. Per informazioni sull'uso di clusvcadm consultare la Sezione 8.3, «Gestione servizi ad elevata disponibilità».
  2. Sul nodo da rimuovere dal cluster arrestate il software consultando Sezione 8.1.2, «Arresto del software del cluster». Per esempio:
    [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. Su qualsiasi nodo nel cluster modificare /etc/cluster/cluster.conf in modo da rimuovere la sezione clusternode del nodo da cancellare. Per esempio, in Esempio 8.1, «Configurazione cluster a tre nodi», se node-03.example.com deve essere rimosso, allora cancellate la sezione clusternode per quel nodo. Se la rimozione di un nodo (o nodi) causerà la presenza di soli due nodi nel cluster, aggiungere la seguente riga al file di configurazione in modo da permettere ad un singolo nodo di mantenere il quorum (per esempio se un nodo fallisce):
    <cman two_node="1" expected_votes="1"/>
    Consultate Sezione 8.2.3, «Esempi di configurazione a due e tre nodi» per un confronto tra una configurazione a tre nodi ed una a due nodi.
  4. Aggiornare l'attributo config_version aumentando il proprio valore (per esempio, modificandolo da config_version="2" a config_version="3">).
  5. Salvare /etc/cluster/cluster.conf.
  6. (Opzionale) Convalidare il file aggiornato con lo schema del cluster (cluster.rng) eseguendo il comando ccs_config_validate. Per esempio:
    [root@example-01 ~]# ccs_config_validate 
    Configuration validates
    
  7. Eseguire il comando cman_tool version -r per diffondere la configurazione al resto dei nodi del cluster.
  8. Verificare che il file di configurazione aggiornato è stato diffuso.
  9. Se contando i nodi sarete in presenza di un cluster con solo due nodi, allora sarà necessario riavviare il software del cluster nel modo seguente:
    1. Su ogni nodo arrestate il software del cluster consultando Sezione 8.1.2, «Arresto del software del cluster». Per esempio:
      [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. Su ogni nodo avviate il software del cluster consultando Sezione 8.1.1, «Avvio del software del cluster». Per esempio:
      [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. Su ogni nodo del cluster eseguire cman_tool nodes per verificare che i nodi siano membri attivi del cluster (contrassegnati con "M" nella colonna dello stato, "Sts"). Per esempio:
      [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. Su qualsiasi nodo, utilizzando l'utilità clustat, verificate che i servizi HA siano in esecuzione come previsto. In aggiunta clustat mostra lo stato dei nodi del cluster. Per esempio:
      [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