配置一个基本的高可用集群

1. 安装节点软件

安装Red Hat High Availability Add-On后,需要安装所需的软件包集、配置防火墙和对节点进行认 证。

redhat Enterprise Linux 8和redhat Enterprise Linux 7集群节点不兼容。Pacemaker集群中的 所有节点必须使用相同的主版本。

Red Hat Enterprise Linux 8 Pacemaker集群使用Corosync 3.x Red Hat Enterprise Linux 7 Pacemaker集群使用Corosync 2.x。

集群配置软件由pcs包提供。pcs软件包需要corosync和pacemaker软件包,如果使用yum进行安装,则会自 动将其作为依赖项安装。需要在每个集群节点上安装fecning代理。fence-agents-all包拉入所有可用的 fence代理包。管理员还可以选择只安装fence-agents-XXX包,其中XXX是他们打算使用的fencing代理。 需要在所有集群节点上安装pcs和fence-agents-all包。

教室环境包括一个基板管理控制器(BMC),你可以使用它通过IPMI over LAN来关闭、打开或重新启动机器。 如果要在集群中使用BMC,请使用fence-agents-ipmilan包需要安装在所有集群节点上。

1
yum install pcs fence-agents-all

2. 配置防火墙用于集群通信

需要在所有集群节点上允许通过防火墙进行集群通信。Red Hat Enterprise Linux 8系统的标准防火墙服 务为“firewall”。防火墙守护进程附带一个称为high-availability的标准服务,以允许集群通信。要激 活每个集群节点上的高可用性防火墙服务,以允许通过防火墙进行集群通信,请执行以下命令:

1
2
firewall-cmd --permanent --add-service=high-availability
firewall-cmd --reload

3. 开启节点上的Pacemkaer和Corosync

pcsd服务提供集群配置同步和集群配置的web前端。集群中所有节点都需要该服务。使用systemctl命令在集 群所有节点上启动并启用pcsd服务。

1
systemctl enable --now pcsd

pcsd使用系统用户hacluster进行集群通信和配置。Red Hat建议在集群的所有节点上使用相同的hcluster 用户密码。需要在集群所有节点上设置“hcluster system”用户的密码。以设置集群用户密码 为“redhat”为例。

1
echo redhat | passwd --stdin hacluster

你需要使用用户集群和为该用户设置的密码对pcsd服务中的集群节点进行身份验证。只需在一个节点上执行 pcs host auth命令,即可对集群中所有节点进行身份验证。集群节点node1.example.comnode2.example.comnode3.example.comnode1.example.com上进行认证。

image.png

出于自动化的目的,也可以使用-u 和-p 选项。

4. 配置基本的集群通信

在为集群设置准备好三个节点之后,pcs cluster setup命令创建集群。该命令以集群名称和集群节点的 FQDN或IP地址为参数。可选的--start参数在所有提供的集群节点上启动集群。

image-20240825213505716

默认情况下,重新启动的集群节点不会自动重新加入集群。可使用pcs cluster enable --all命令开启集 群服务自动启动功能。--all选项允许在每个集群成员上自动启动集群服务。下面的命令允许所有集群节点启动 集群服务并自动加入在其中一个集群节点上执行时的集群。

image-20240825213730168

Red Hat建议你验证集群是否按预期工作。pc cluster status命令用于查询集群的当前状态。

image-20240825213747152

5. 配置集群节点的Fencing

Fencing是任何高可用性集群的必要条件。它可以防止错误节点造成的数据损坏,并且在节点未能加入集群且 其余集群成员仍然形成quorum时隔离并重新启动集群成员。根据所使用的硬件,集群可以通过关闭与共享存储 的网络连接或对节点进行电源循环来隔离节点。

设置Fencing的第一步是设置物理Fencing设备。不同的硬件设备能够隔离集群节点,例如:

不间断电源(UPS)
配电单元(PDU)
刀片电源控制装置

带外管理的设备

需要将Fencing设备添加到集群中。对于虚拟机Fencing,每个集群节点都需要自己的Fencing设备。这是通 过pcs的stoneith create命令完成的。该命令需要Fencing代理所需的一组参数和值对,以便能够 Fencing集群节点。使用fencing agent fence_ipmilan时,需要输入pcmk_host_list、username、 password和ip。pcmk_host_list参数列出集群所知道的相应主机。ip参数要求fencing设备的ip地址或 主机名。

image-20240825214000381

pcs stonith status命令用来显示连接到集群的fence设备的状态。所有的fence_ipmilan围栏设备应该 显示为启动状态。

image-20240825214143226

如果一个或多个Fencing设备的状态为Stopped,则Fencing代理和Fencing服务器之间的通信很可能出现问题。使用pcs stonith config fence_device命令验证fence设备的设置。可以使用pcs stonith update命令更新设置。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!