Pacemaker+Corosync是Linux高可用主流开源组合,Corosync负责节点通信与成员管理,Pacemaker负责资源调度,需配合使用;配置上Corosync有独立配置文件,Pacemaker配置存于CIB;启动须先corosync后pacemaker;双节点Web高可用需完成装包、认证、建集群、添加VIP及服务资源四步;必须启用qdevice仲裁和fencing机制防脑裂;运维需结合corosync-quorumtool、日志分析及故障模拟验证。
Linux服务器高可用(HA)项目中,Pacemaker + Corosync 是目前最主流、生产环境验证最充分的开源组合。它不依赖商业软件,能实现服务自动故障转移、资源隔离、多节点状态同步,适用于数据库、Web集群、文件共享等关键业务场景。
Corosync 负责底层通信和集群成员管理——它让节点知道“谁在线、谁掉线”,并保证消息可靠传递;Pacemaker 是资源管理器——它根据策略决定“哪个节点运行哪项服务、出问题时怎么切、切之前要不要先停旧实例”。两者必须配合使用,不能只装一个。
以双节点 Web 服务(Apache)为例,实现访问 IP 自动漂移、服务自动重启或迁移:
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
pcs resource create vip ocf:heartbeat:IPaddr2 ip=192.168.10.100 cidr_netmask=24 op monitor interval=30s
pcs resource create webserver systemd:httpd op monitor interval=60s
pcs constraint colocation add webserver with vip INFINITY
pcs
constraint order vip then webserver
两节点集群最容易因网络闪断导致“各说各话”,必须靠仲裁和 fencing 控制局面:
pcs quorum device add model qnetd host=qnetd.example.com algorithm=ffsplit
fence_virt(KVM)、fence_ipmilan(iDRAC/iLO)或 fence_pcmk(基于 Pacemaker 自身)。没 fencing 的集群等于裸奔,故障时可能双活写数据pcs property set stonith-enabled=false,生产环境必须开启,并确保 fence 设备真实可用别只盯着 pcs status,真正定位问题得交叉验证:
corosync-quorumtool -s 看投票结果、corosync-cfgtool -s 看节点连通性/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 触发
# linux
# transition
# 数据库
# debian
# 开源
# 双节
# 适用于
# 盯着
# 为例
# 所有资源
# 要先
# 只剩
# var
# Property
# centos
# node
# go
# apache
# ipad
# ubuntu
# ai
# 资源管理器
# 配置文件
# Resource
# Error
# 它不