8.2. 删除或者添加节点


本小节论述了如何从集群中删除节点或者在集群中添加节点。您可以从集群中删除节点,如 第 8.2.1 节 “从集群中删除节点” 所述,或者在集群中添加节点,如 第 8.2.2 节 “在集群中添加节点” 所述。

8.2.1. 从集群中删除节点

从集群中删除节点包括在节点中关闭要删除的集群软件,并更新集群配置以反映此变化。

重要

如果从集群中删除节点让该集群中只剩下两个节点,则您必须在更新集群配置文件后在每个节点中重启该集群软件。
要从集群中删除节点,请按照以下步骤操作:
  1. 在任意节点中使用 clusvcadm 程序重新定位、迁移或者停止要从该集群删除的节点中的运行的所有 HA 服务。有关使用 clusvcadm 的详情请参考 第 8.3 节 “管理高可用性服务”
  2. 在您要从集群中删除的节点中停止集群软件,如 第 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 ~]#
    
  3. 在集群的任意节点中编辑 /etc/cluster/cluster.conf,删除要删除节点的 clusternode 部分。例如:在 例 8.1 “三节点配置” 中,如果要删除 node-03.example.com,则要删除该节点的 clusternode 部分。如果删除节点让该集群只剩下两个节点,则您可在配置文件中添加以下行以便单一节点可维护仲裁(例如:如果一个节点失败):
    <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. (可选),运行 ccs_config_validate 命令,验证根据集群方案(cluster.rng)更新的文件。例如:
    [root@example-01 ~]# ccs_config_validate 
    Configuration validates
    
  7. 运行 cman_tool version -r 命令在其他集群节点中推广该配置。
  8. 确认推广了更新的文件。
  9. 如果集群节点计数由大于 2 变为等于 2,则您必须重启集群软件,如下:
    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 以确认那些节点是作为集群的成员运行(在状态列 "Sts" 中被标记为 "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 程序确认那些 HA 服务正常运行。另外 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
      
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.