8.2.2. Добавление узла в кластер

При добавлении узла в кластер потребуется обновить конфигурацию кластера, скопировать ее на добавляемый узел и запустить кластерные программы. Порядок действий приведен ниже.
  1. Откройте файл /etc/cluster/cluster.conf на любом узле и добавьте секцию clusternode для добавляемого узла. Например, при добавлении node-03.example.com надо будет добавить соответствующую секцию clusternode (см. Пример 8.2, «Конфигурация с двумя узлами»). Если после добавления число узлов в кластере выросло с двух до трех и более, в /etc/cluster/cluster.conf удалите атрибуты cman:
    • cman two_node="1"
    • expected_votes="1"
    Раздел 8.2.3, «Примеры конфигураций с двумя и тремя узлами» выполняет сравнение структур с двумя и тремя узлами.
  2. Увеличьте значение config_version на единицу. Например, если исходное выражение выглядело как config_version="2", после изменения оно будет выглядеть так: config_version="3".
  3. Сохраните /etc/cluster/cluster.conf.
  4. Дополнительно можно выполнить проверку соответствия формата файла схеме в cluster.rng:
    [root@example-01 ~]# ccs_config_validate 
    Configuration validates
    
  5. Выполните cman_tool version -r, чтобы скопировать изменения на остальные узлы в кластере.
  6. Убедитесь, что конфигурация была скопирована.
  7. Скопируйте изменения в каталог /etc/cluster/ на всех добавляемых узлах. Это можно сделать с помощью scp:
  8. Если число узлов в кластере выросло с двух до трех и более, потребуется перезапустить кластерные программы:
    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 ~]#
      
  9. Запустите кластерные программы на добавляемых узлах:
    [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 ~]#
    
  10. Выполните clustat на любом узле, чтобы проверить результат добавления:
    [root@example-01 ~]#clustat
    Cluster Status for mycluster @ Wed Nov 17 05:40:00 2010
    Member Status: Quorate
    
     Member Name                             ID   Status
     ------ ----                             ---- ------
     node-03.example.com                         3 Online, rgmanager
     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
    
    Дополнительно можно выполнить cman_tool status для проверки приоритета узлов, кворума и числа узлов:
    [root@example-01 ~]#cman_tool status
    Version: 6.2.0
    Config Version: 19
    Cluster Name: mycluster 
    Cluster Id: 3794
    Cluster Member: Yes
    Cluster Generation: 548
    Membership state: Cluster-Member
    Nodes: 3
    Expected votes: 3
    Total votes: 3
    Node votes: 1
    Quorum: 2  
    Active subsystems: 9
    Flags: 
    Ports Bound: 0 11 177  
    Node name: node-01.example.com
    Node ID: 3
    Multicast addresses: 239.192.14.224 
    Node addresses: 10.15.90.58
    
  11. С помощью утилиты clusvcadm, которая может быть запущена на любом узле, можно осуществить перенос служб на добавленный узел, включить их и отключить (см. Раздел 8.3, «Управление службами высокой готовности»).