4. 安装与配置RHEL HA Add-On

RHEL HA Add-On 并不是 RHEL 基础安装介质中的默认组件,它是一组以“高可用附加仓库”形式提供的软件包集合。要在两台或更多节点上搭建 Pacemaker/Corosync 集群,第一步不是急着敲 pcs cluster setup,而是把“仓库—软件包—服务—认证—互信”这条基础链路打通。本章围绕这条链路展开,重点说明订阅仓库如何启用、核心软件包如何安装、pcsd 服务如何启动、hacluster 用户如何认证,以及节点之间如何建立互信。

一、启用高可用订阅仓库

在 RHEL 中,HA Add-On 的软件包位于独立的仓库中,通常名为 rhel-9-for-x86_64-highavailability-rpms(RHEL 8 为 rhel-8-for-x86_64-highavailability-rpms)。如果系统使用 Red Hat Subscription Manager 注册,需要先确认订阅已附加,再启用该仓库。典型操作如下:

# 查看当前已附加的订阅
subscription-manager list --consumed

# 启用高可用仓库
subscription-manager repos --enable=rhel-9-for-x86_64-highavailability-rpms

# 确认仓库已启用
subscription-manager repos --list-enabled | grep -i highavailability

如果系统使用本地 ISO 或内部镜像源,则需要在 /etc/yum.repos.d/ 下配置对应的 baseurl 与 gpgcheck。无论哪种方式,判断仓库是否可用的标准是:dnf repolist 中能看到 highavailability 仓库,并且 dnf makecache 不报错。仓库不可用时,后续安装会直接失败,因此这一步必须先行确认。

二、安装 pacemaker、corosync、pcs 与 fence-agents

HA Add-On 的核心软件包分工明确:pacemaker 是集群资源管理器,负责决策与调度;corosync 是集群消息层,负责节点间心跳与成员关系;pcs 是命令行与 Web 管理工具;fence-agents 提供各类隔离设备代理。安装命令如下:

dnf install -y pacemaker corosync pcs fence-agents-all

其中 fence-agents-all 会安装全部隔离代理,便于后续根据实际硬件选择。安装完成后,可用 rpm -q pacemaker corosync pcs fence-agents-all 核对版本。需要特别注意的是,所有集群节点的软件包版本应保持一致,否则可能出现协议或功能不兼容。若节点数量较多,建议先在模板机或一台节点上验证安装,再统一分发。

三、启动 pcsd 服务并设置开机自启

pcsd 是 pcs 的守护进程,它监听 2224 端口,负责接收 pcs 命令、执行集群操作,并对外提供 Web 界面。安装 pcs 后必须启动并启用它:

systemctl enable --now pcsd
systemctl status pcsd

状态应为 active (running)。如果启用了 firewalld,需要放行 2224 端口,否则节点间无法通过 pcsd 通信:

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

这里放行的是 high-availability 服务,它包含 pcsd 的 2224/tcp、Corosync 的 5405/udp 以及相关端口。若使用自定义端口或额外资源,还需单独放行。

四、设置 hacluster 用户认证

pcs 通过 hacluster 系统用户进行节点间认证。安装 pcs 时会自动创建该用户,但默认没有密码,必须为每个节点设置统一密码:

passwd hacluster

建议在所有节点上设置相同密码,这样后续 pcs host auth 时只需一次输入即可完成多节点认证。密码应满足系统复杂度要求,并妥善保管。认证的本质是:pcs 使用 hacluster 凭据登录远端节点的 pcsd,从而获得管理权限。若密码不一致,认证会失败并提示 Unable to authenticate。

五、配置集群节点互信

节点互信包含两个层面:一是 pcsd 层面的认证,二是系统层面的 SSH 互信。pcsd 认证通过 pcs host auth 完成:

pcs host auth node1 node2 node3 -u hacluster -p 'YourPassword'

执行成功后会显示各节点 Authorized。这一步建立了 pcs 管理通道的信任关系。系统层面的 SSH 互信则用于运维便利,例如分发配置文件、收集日志。可使用 ssh-keygen 与 ssh-copy-id 建立:

ssh-keygen -t rsa -b 4096
ssh-copy-id node2
ssh-copy-id node3

需要强调的是,SSH 互信不是 Pacemaker 集群运行的强制前提,Pacemaker 依赖的是 Corosync 消息层与 pcsd 认证。但 SSH 互信能显著简化日常运维,因此生产环境中通常一并配置。

RHEL HA Add-On 安装配置链路 仓库 → 软件包 → pcsd → hacluster 认证 → 节点互信 ① 订阅仓库 highavailability-rpms subscription-manager ② 安装软件包 pacemaker / corosync pcs / fence-agents-all ③ 启动 pcsd systemctl enable --now 2224/tcp 放行 ④ hacluster passwd hacluster 统一密码 ⑤ 集群节点互信建立 node1 pcsd: 2224 corosync: 5405/udp hacluster 已设密码 SSH 互信(可选) pcs host auth 已通过 node2 pcsd: 2224 corosync: 5405/udp hacluster 已设密码 SSH 互信(可选) pcs host auth 已通过 node3 pcsd: 2224 corosync: 5405/udp hacluster 已设密码 SSH 互信(可选) pcs host auth 已通过 pcs host auth 建立 pcsd 管理信任;SSH 互信用于运维便利,非集群运行强制前提

六、验证与常见问题

完成上述步骤后,可用以下命令做一次整体验证:

pcs host auth node1 node2 node3 -u hacluster -p 'YourPassword'
pcs cluster setup --name mycluster node1 node2 node3
pcs cluster start --all
pcs status

若 pcs host auth 报认证失败,优先检查三件事:hacluster 密码是否一致、pcsd 是否在所有节点运行、2224 端口是否被防火墙拦截。若 pcs cluster setup 报 Corosync 通信失败,则检查 5405/udp 是否放行、节点主机名解析是否正确。主机名解析建议通过 /etc/hosts 或 DNS 保证正向与反向均可解析,否则 Corosync 可能无法建立成员关系。

建议在正式搭建前,先在一台节点上完成仓库启用与软件包安装,确认版本与依赖无误后,再通过脚本或配置管理工具批量分发到其余节点,减少人为差异。
hacluster 密码属于集群管理凭据,不应使用弱密码,也不应明文写入脚本或版本库。生产环境中建议结合 Ansible Vault、HashiCorp Vault 等工具管理。

至此,HA Add-On 的安装与基础配置链路已经打通:仓库可用、软件包齐全、pcsd 运行、hacluster 认证通过、节点互信建立。这是后续执行 pcs cluster setup 并真正创建集群的前提。下一阶段将进入集群资源与约束的配置。