需完成软件包安装、corosync通信配置、stonith禁用与策略设置、资源定义管理及qdevice仲裁部署五步操作。依次执行:安装pacemaker/pcs/corosync等组件;通过pcs host auth和cluster setup配置集群通信;禁用stonith-enabled并设no-quorum-policy=ignore;创建vip和webserver资源并配置顺序与位置约束;最后部署qnetd并加入quorum设备。

如果您需要在Linux系统中部署Pacemaker以构建高可用集群,则需完成软件包安装、集群通信配置、资源管理初始化等一系列关键操作。以下是具体实施步骤:
一、安装Pacemaker及相关依赖组件
Pacemaker本身不提供底层通信能力,需依赖Corosync作为消息层,同时需安装pcs(Pacemaker Configuration System)工具进行集群管理。不同发行版的安装命令略有差异,以下分别列出主流系统操作方式。
1、在RHEL/CentOS 8或Rocky Linux 8上执行:
yum install -y pacemaker pcs corosync fence-agents-all
2、在RHEL/CentOS 7上执行:
yum install -y pacemaker pcs corosync fence-agents-all
3、在Debian 12或Ubuntu 22.04上执行:
apt update && apt install -y pacemaker pcs corosync crmsh fence-agents
4、安装完成后验证pcs服务状态:
systemctl status pcsd
5、启用并启动pcsd服务:
systemctl enable pcsd && systemctl start pcsd
6、设置hacluster用户密码(该用户为集群默认管理账户):
passwd hacluster
二、配置Corosync通信密钥与集群认证
Corosync要求所有节点使用相同的认证密钥以确保集群内消息传输的安全性,该密钥由pcs自动生成并同步分发,必须在首次配置前完成初始化。
1、在任一节点上生成并同步认证密钥:
pcs host auth node1 node2 node3 -u hacluster -p your_password
2、创建集群并指定节点列表:
pcs cluster setup --name mycluster node1 node2 node3
3、启用并启动集群服务:
pcs cluster start --all && pcs cluster enable --all
4、确认集群状态是否正常:
pcs status
5、检查Corosync运行状态:
corosync-quorumtool -s
三、禁用STONITH并配置资源约束策略
STONITH(Shoot The Other Node In The Head)机制用于防止脑裂时数据损坏,但在测试环境或无 fencing 设备支持时需临时禁用;同时需明确资源配置策略以避免资源争抢。
1、禁用STONITH功能:
pcs property set stonith-enabled=false
2、允许资源在任意节点上启动(忽略quorum限制):
pcs property set no-quorum-policy=ignore
3、禁止资源自动迁移(避免因短暂网络抖动引发不必要的切换):
pcs resource defaults migration-threshold=INFINITY
4、设置资源粘性值为全局最高优先级:
pcs resource defaults resource-stickiness=100
5、查看当前集群属性配置:
pcs property list --all
四、定义并管理集群资源
Pacemaker通过资源代理(Resource Agent)管理服务生命周期,常见资源类型包括IP地址、Web服务器、数据库等;需明确定义资源类型、参数及启动顺序。
1、添加虚拟IP资源(VIP),绑定至eth0接口:
pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.10.100 cidr_netmask=24 nic=eth0 op monitor interval=30s
2、添加Apache Web服务资源:
pcs resource create WebServer systemd:httpd op monitor interval=60s
3、设置资源启动顺序:VIP必须先于WebServer启动:
pcs constraint order VirtualIP then WebServer
4、设置资源位置约束:强制WebServer始终运行在拥有VIP的节点上:
pcs constraint colocation WebServer with VirtualIP
5、验证资源配置是否生效:
pcs resource show
五、启用QDevice仲裁设备增强集群健壮性
当集群节点数为偶数或存在网络分区风险时,QDevice可作为第三方投票节点参与quorum决策,避免因单点故障导致整个集群停止服务。
1、在独立服务器(qnetd主机)上安装并启动qnetd服务:
yum install -y corosync-qnetd && systemctl enable --now corosync-qnetd
2、在集群任一节点上初始化QNetd连接:
pcs qdevice setup model net --host-name qnetd.example.com
3、将QDevice加入集群配置:
pcs quorum device add model net host=qnetd.example.com
4、确认QDevice状态已上线:
pcs quorum status
5、检查QNetd日志确认握手成功:
journalctl -u corosync-qnetd -n 20










