8.2. Добавление и удаление узлов

Далее рассматривается порядок добавления (см. Раздел 8.2.2, «Добавление узла в кластер») и удаления узлов (см. Раздел 8.2.1, «Удаление узла из кластера»).

8.2.1. Удаление узла из кластера

При удалении узла из кластера необходимо остановить кластерные программы и обновить конфигурацию кластера, чтобы изменения вступили в силу.

Важно

Если после удаления число узлов в кластере уменьшится до двух, потребуется перезапустить кластерные программы на обоих узлах.
Порядок удаления узла из кластера:
  1. Сначала перенесите или удалите кластерные службы на удаляемом узле. Это можно сделать с помощью утилиты clusvcadm, которая может быть запущена на любом узле (см. Раздел 8.3, «Управление службами высокой готовности»).
  2. Остановите кластерные программы на подлежащем удалению узле:
    [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. Откройте файл /etc/cluster/cluster.conf на любом узле и удалите секцию clusternode для удаляемого узла. Например, при удалении node-03.example.com надо будет удалить соответствующую секцию clusternode (см. Пример 8.1, «Конфигурация с тремя узлами»). Если после удаления в кластере останется всего два узла, для поддержки кворума одним из узлов в /etc/cluster/cluster.conf можно добавить:
    <cman two_node="1" expected_votes="1"/>
    Раздел 8.2.3, «Примеры конфигураций с двумя и тремя узлами» выполняет сравнение структур с двумя и тремя узлами.
  4. Увеличьте значение config_version на единицу. Например, если исходное выражение выглядело как config_version="2", после изменения оно будет выглядеть так: config_version="3".
  5. Сохраните /etc/cluster/cluster.conf.
  6. Дополнительно можно выполнить проверку соответствия формата файла схеме в cluster.rng:
    [root@example-01 ~]# ccs_config_validate 
    Configuration validates
    
  7. Выполните cman_tool version -r, чтобы скопировать изменения на остальные узлы в кластере.
  8. Убедитесь, что конфигурация была скопирована.
  9. Если число узлов в кластере уменьшилось до двух, потребуется перезапустить кластерные программы:
    1. Остановите кластерные программы на всех узлах (см. Раздел 8.1.2, «Остановка кластерных программ»):
      [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. Запустите кластерные программы на всех узлах (см. Раздел 8.1.1, «Запуск кластерных программ»):
      [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. На любом узле выполните cman_tool nodes, чтобы убедиться, что все узлы входят в состав кластера, о чем сообщает значение "M" в столбце статуса:
      [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. На любом узле выполните clustat, чтобы проверить статус работы кластерных служб и узлов:
      [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