管理集群服务
systemd 管理的集群服务 corosync 和 Pacemaker 需要在集群节点上运行才能加入该节点所属的集群。
在运行 pcsd 的经过身份验证的集群节点上,可以使用 pcs 控制集群服务。
启动和停止集群服务
pcs cluster start 和 pcs cluster stop 命令分别启动和停止集群服务。
这些命令支持在本地节点、作为参数提供的远程节点或者所有带有 -all 开关的节点上启动或者停止集群服务。
要在本地节点上启动集群服务,请执行:
# pcs cluster start
要停止远程节点 onitroad.example.com 上的集群服务,请执行:
# pcs cluster stop onitroad.example.com
pcs cluster start -all 和 pcs cluster stop -all 命令启动或者停止与本地节点位于同一集群中的所有节点。
要停止与本地节点位于同一集群中的所有节点上的集群服务,请执行:
# pcs cluster stop --all
启用和禁用集群服务
pcs cluster enable 和 pcs cluster disable 命令启用或者禁用 systemd 管理的集群服务 corosync 和起搏器自动启动或者停止。
当集群节点启动时。
如果节点上启用了集群服务,则节点每次启动时都会自动加入集群。
这两个命令都控制本地节点、作为参数提供的远程节点上的服务,或者使用 -all 开关控制与本地节点位于同一集群中的所有节点上的服务。
要在本地节点上启用集群服务的自动启动,请执行:
# pcs cluster enable
要在远程节点 onitroad.example.com 上禁用集群服务,请执行:
# pcs cluster disable onitroad.exarnple.com
pcs cluster enable -all 和 pcs cluster disable -all 命令分别启用和禁用与本地节点在同一集群中的所有节点上的集群服务。
要禁用与本地节点位于同一集群中的所有节点上的集群服务,请执行:
# pcs cluster disable --all
查看集群状态
对于系统管理员来说,能够检索集群的当前状态、集群节点和集群资源非常重要。
pcs status 提供了集群状态、corosync 状态、配置的资源组、资源和集群节点状态的详细概述。
可以使用以下参数之一限制 pcs 状态输出:
命令 | 作用 |
---|---|
pcs status cluster | 仅显示与集群状态相关的信息。 |
pcs status groups | 仅显示配置的资源组及其资源。 |
pcs status resources | 仅显示资源组及其在集群中的各个资源的状态。 |
pcs status nodes | 仅显示已配置集群节点的状态。 |
pcs status corosync | 仅显示 corosync 的状态。 |
pcs status pcsd | 仅显示所有已配置集群节点上 pcsd 的状态。 |
pcs status 命令是一个强大的实用程序,它使系统管理员能够确定集群节点成员资格的状态并显示与集群和集群节点相关的所有信息:
# pcs status Cluster name: cluster Last updated: Fri Sep 26 05:47:40 2014 Last change: Wed Sep 24 06:19:49 2014 via cibadmin on nodea.private.example.com Stack: corosync Current DC: nodeb.private.example.com (2) - partition with quorum Version: 1.1.10-29.el7-368c726 4 Nodes configured 6 Resources configured Node nodeb.private.example.com (2): standby Online: [ nodea.private.example.com nodec.private.example.com] OFFLINE: [ noded.private.example.com] Full list of resources: fence_nodea (stonith:fence_rht): Started nodea.private.example.com fence_nodeb (stonith:fence_rht}: Started nodeb.private.example.com fence_nodec (stonith:fence_rht): Started nodec.private.example.com fence_noded (stonith:fence_rht): Started noded.private.example.com Resource Group: web floatingip (ocf::heartbeat:IPaddr2): Started nodea.private.example.com website (ocf::heartbeat:apache) : Started nodea.private.example.com PCSD Status: nodea.private.example.com: Online nodeb.private.example.com: Online nodec.private.example.com: Online noded.private.example.com: Online Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled
在前面的示例中,集群由四个集群节点组成,其状态如下:
- 集群节点 nodeb.private.example.com 处于待机模式。
- 集群节点 nodea.private.example.com。和 nodec.private.example.com 已完全运行并参与集群,因此标记为 Online。
- 集群节点noded。私有的。例子。 com 正在运行,因为 pcsd 的状态为 Online。群集节点被标记为 OFFLINE,因为群集服务已在此群集节点上停止或者无法与群集的仲裁部分进行通信。
添加和删除集群节点
Red Hat High Availability Add-on 允许动态添加和删除集群节点。
这允许扩展集群或者更换集群节点,而无需集群上的服务停机。
pcs 配置实用程序允许系统管理员添加或者删除集群节点。
使用 pcs cluster node add node.fqdn ,一个新节点被添加到集群中,使用 pcs cluster node remove node.fqdn ,一个节点被永久删除。
向集群添加新节点
向现有集群添加新节点需要多个配置步骤:
- 将加入集群的新节点必须配置为满足以下要求:
- 新集群节点上的防火墙配置为允许集群通信。
- 安装了 pcs 和 fence-agents-all 软件包及其依赖项。在课堂环境中,需要使用包fence-agents-rht 代替fence-agents-all 包。
- pcsd 服务已启动并启用。
- 更改 hacluster 用户的密码以匹配现有节点上该用户的密码。
- 新集群节点已通过所有现有集群成员的身份验证。这需要从现有集群节点运行 pcs cluster auth newnode.fqdn。除非使用 -local,否则身份验证令牌将自动分布在所有集群节点上。
- 配置完成后,可以将新集群节点作为集群成员添加到现有集群中,然后使用之前存在的集群节点进行身份验证。
- 要将准备好的集群节点添加到现有集群,请执行:
# pcs cluster node add newnode.fqdn oldnode1.fqdn: Corosync updated oldnode2.fqdn: Corosync updated oldnode3.fqdn: Corosync updated newnode.fqdn: Succeeded
- 现有节点需要从新节点授权。 pcs cluster auth 命令从本地节点授权所有集群成员。
# pcs cluster auth Username: hacluster Password: redhat oldnode1.fqdn: Authorized oldnode2.fqdn: Authorized oldnode3.fqdn: Authorized newnode.fqdn: Already authorized
节点添加和授权成功后,系统管理员可以在新节点上启用和启动集群服务。
在任何服务可以安全地迁移到新集群节点之前,必须为新集群节点配置和操作防护。
注意:除非使用 pcs cluster start newnode.fqdn 和/或者 pcs cluster enable newnode.fqdn,否则新节点不会成为集群的活动成员。
Red Hat High Availability Add-on 为系统管理员提供了不同的方式来控制集群节点的成员资格:
- 启动和停止集群服务控制集群节点是否在运行时参与集群。
- 启用和禁用集群服务控制集群节点是否在启动时自动启动集群服务并加入集群。
- 在集群中添加和删除集群节点会永久更改该节点是否为集群成员。
- 待机和非待机模式控制是否允许集群节点托管集群中的资源。