Pacemaker+Corosync是Linux高可用主流开源组合,Corosync负责节点通信与成员管理,Pacemaker负责资源调度,需配合使用;配置上Corosync有独立配置文件,Pacemaker配置存于CIB;启动须先corosync后pacemaker;双节点Web高可用需完成装包、认证、建集群、添加VIP及服务资源四步;必须启用qdevice仲裁和fencing机制防脑裂;运维需结合corosync-quorumtool、日志分析及故障模拟验证。

Linux服务器高可用(HA)项目中,Pacemaker + Corosync 是目前最主流、生产环境验证最充分的开源组合。它不依赖商业软件,能实现服务自动故障转移、资源隔离、多节点状态同步,适用于数据库、Web集群、文件共享等关键业务场景。
核心组件分工要搞清
Corosync 负责底层通信和集群成员管理——它让节点知道“谁在线、谁掉线”,并保证消息可靠传递;Pacemaker 是资源管理器——它根据策略决定“哪个节点运行哪项服务、出问题时怎么切、切之前要不要先停旧实例”。两者必须配合使用,不能只装一个。
- Corosync 配置文件是 /etc/corosync/corosync.conf,重点设 bindnetaddr(监听网段)、quorum(法定票数策略)和 totem 参数(超时与重传)
- Pacemaker 本身不存独立配置文件,所有资源、约束、属性都通过 crmsh 或 pcs 命令实时写入集群CIB(Cluster Information Base)
- 启动顺序固定:先启 corosync,再启 pacemaker;停机则相反
基础高可用服务搭建四步走
以双节点 Web 服务(Apache)为例,实现访问 IP 自动漂移、服务自动重启或迁移:
自定义设置的程度更高可以满足大部分中小型企业的建站需求,同时修正了上一版中发现的BUG,优化了核心的代码占用的服务器资源更少,执行速度比上一版更快 主要的特色功能如下: 1)特色的菜单设置功能,菜单设置分为顶部菜单和底部菜单,每一项都可以进行更名、选择是否隐 藏,排序等。 2)增加企业基本信息设置功能,输入的企业信息可以在网页底部的醒目位置看到。 3)增加了在线编辑功能,输入产品信息,企业介绍等栏
-
装包统一用发行版源:CentOS/RHEL 用
yum install pcs pacemaker corosync fence-agents-all;Ubuntu/Debian 用apt install pacemaker corosync pcs -
初始化集群前先认证:执行
pcs cluster auth node1 node2 -u hacluster -p 密码,账号密码需一致,hacluster 是默认管理用户 -
创建并启动集群:运行
pcs cluster setup --name mycluster node1 node2,再pcs cluster start --all -
添加 VIP 和 Apache 资源:
pcs resource create vip ocf:heartbeat:IPaddr2 ip=192.168.10.100 cidr_netmask=24 op monitor interval=30spcs resource create webserver systemd:httpd op monitor interval=60spcs constraint colocation add webserver with vip INFINITYpcs constraint order vip then webserver
避免脑裂和误切换的关键设置
两节点集群最容易因网络闪断导致“各说各话”,必须靠仲裁和 fencing 控制局面:
-
启用 qdevice(推荐):部署一个独立的仲裁节点(qnetd),让集群在只剩一节点时仍能判断是否该继续提供服务,命令:
pcs quorum device add model qnetd host=qnetd.example.com algorithm=ffsplit -
务必配 fencing(隔离机制):如使用
fence_virt(KVM)、fence_ipmilan(iDRAC/iLO)或fence_pcmk(基于 Pacemaker 自身)。没 fencing 的集群等于裸奔,故障时可能双活写数据 -
禁用 STONITH 的后果很严重:不要为了“测试方便”执行
pcs property set stonith-enabled=false,生产环境必须开启,并确保 fence 设备真实可用
日常运维和排错看这三处
别只盯着 pcs status,真正定位问题得交叉验证:
-
查 Corosync 状态:运行
corosync-quorumtool -s看投票结果、corosync-cfgtool -s看节点连通性 -
看 Pacemaker 日志细节:重点翻
/var/log/cluster/corosync.log和/var/log/cluster/pacemaker.log,搜索 WARN、ERROR、fence、transition -
模拟故障快速验证:用
pcs resource move webserver node2手动迁移;用pcs cluster stop node1测试自动接管;拔网线后观察pcs status是否显示 fencing 触发









