8.2. 删除或者添加节点
本小节论述了如何从集群中删除节点或者在集群中添加节点。您可以从集群中删除节点,如 第 8.2.1 节 “从集群中删除节点” 所述,或者在集群中添加节点,如 第 8.2.2 节 “在集群中添加节点” 所述。
8.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 ~]# - 在集群的任意节点中编辑
/etc/cluster/cluster.conf
,删除要删除节点的clusternode
部分。例如:在 例 8.1 “三节点配置” 中,如果要删除 node-03.example.com,则要删除该节点的clusternode
部分。如果删除节点让该集群只剩下两个节点,则您可在配置文件中添加以下行以便单一节点可维护仲裁(例如:如果一个节点失败):<cman two_node="1" expected_votes="1"/>
有关三节点配置和双节点配置对比请参考 第 8.2.3 节 “三节点和双节点配置示例”。 - 增加
config_version
属性参数即可更新该参数(例如:从config_version="2"
改为config_version="3">
)。 - 保存
/etc/cluster/cluster.conf
。 - (可选),运行
ccs_config_validate
命令,验证根据集群方案(cluster.rng
)更新的文件。例如:[root@example-01 ~]#
ccs_config_validate
Configuration validates - 运行
cman_tool version -r
命令在其他集群节点中推广该配置。 - 确认推广了更新的文件。
- 如果集群节点计数由大于 2 变为等于 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 ~]# - 在每个节点中如 第 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 ~]# - 在任意集群节点中运行
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 - 在任意节点中使用
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