Linux服务器高可用项目教程_PacemakerCorosyncHA实践

5次阅读

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

Linux 服务器高可用项目教程_PacemakerCorosyncHA 实践

Linux 服务器高可用(HA)项目中,Pacemaker + Corosync 是目前最主流、生产环境验证最充分的开源组合。它不依赖商业软件,能实现服务自动故障转移、资源隔离、多节点状态同步,适用于数据库、Web 集群、文件共享等关键业务场景。

核心组件分工要搞清

Corosync 负责底层通信和集群成员管理——它让节点知道“谁在线、谁掉线”,并保证消息可靠传递;Pacemaker 是 资源管理器——它根据策略决定“哪个节点运行哪项服务、出问题时怎么切、切之前要不要先停旧实例”。两者必须配合使用,不能只装一个。

  • Corosync 配置文件 /etc/corosync/corosync.conf,重点设 bindnetaddr(监听网段)、quorum(法定票数策略)和 totem 参数(超时与重传)
  • Pacemaker 本身不存独立配置文件,所有资源、约束、属性都通过 crmshpcs 命令实时写入集群 CIB(Cluster Information Base)
  • 启动顺序固定:先启 corosync,再启 pacemaker;停机则相反

基础高可用服务搭建四步走

以双节点 Web 服务(Apache)为例,实现访问 IP 自动漂移、服务自动重启或迁移:

  • 装包统一用发行版源: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=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 控制局面:

  • 启用 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,搜索 WARNERRORfencetransition
  • 模拟故障快速验证:用 pcs resource move webserver node2 手动迁移;用 pcs cluster stop node1 测试自动接管;拔网线后观察 pcs status 是否显示 fencing 触发
text=ZqhQzanResources