两台服务器互为备份:openEuler高可用集群把故障接管自动化
关键业务只跑在一台服务器上,等于把业务命门押在一块主板的良率上。加一台备机不难,难的是"主机挂了备机自动顶上"这件事——靠人盯巡检,半夜的故障照样停业到天亮。openEuler 官方文档收录了完整的高可用(HA)方案:用 Pacemaker 加 Corosync 把两台机器编成集群,资源(VIP、服务、存储挂载)由集群统一调度,故障发生时自动在节点间漂移。本文按官方文档把最小可用集群讲清。
机制:心跳、仲裁与资源调度
Corosync 负责集群通信层:节点之间周期性互发心跳,谁失联了立刻知道。Pacemaker 在其上做资源调度:把 IP 地址、systemd 服务、文件系统挂载定义为"资源",绑定成资源组,整组只能同时在某一个节点上运行。主机故障时,幸存节点接管资源组——VIP 漂过来、服务拉起来,客户端几乎无感。两节点集群还要处理"脑裂"(两台都活着但互相看不见,各抢资源)风险:靠 fencing(stonith)机制,接管前先把故障节点电源或存储访问强制隔离,确保资源只被一方持有。
搭建最小集群
两台 openEuler 机器(例:192.168.10.11/12),安装组件并启用服务:
dnf install pcs pacemaker fence-agents-all
systemctl enable --now pcsd
初始化集群并创建资源组(以 hapasswd 认证的 pcs 为例):
pcs host auth node1 node2
pcs cluster setup mycluster node1 node2
pcs cluster start --all
pcs resource create cluster-vip ocf:heartbeat:IPaddr2 ip=192.168.10.100 op monitor interval=10s
pcs resource create myapp systemd:myapp op monitor interval=30s
pcs resource group add app-group cluster-vip myapp
192.168.10.100 是对外服务的 VIP,应用服务以 systemd 单元接入。配完 pcs status 看资源组落在哪个节点,pcs cluster stop 掉主节点再 status,资源组整体漂到幸存节点即验证通过。
运维三提醒
一是 fencing 不是可选项:两节点集群跳过 stonith 配置等于留着脑裂隐患,按实际环境配电源或存储层隔离代理。二是监控巡检要接 pcs 状态而不是只看服务进程——资源"在哪个节点"本身就是运维事实。三是接管是降级运行:单节点扛全量,容量与备份窗口要按接管后状态预估,别让接管成功变成过载开始。
高可用集群是"备份机买了就要真顶上"的最后一公里:心跳、仲裁、自动接管全自动化之后,故障恢复时间从小时级压到分钟级。贵州诚鑫致达科技为中小企业交付关键业务系统时,两节点 HA 加接管演练是标准验收动作——冗余架构的价值,要靠一次真实的拔电来证明。
企业存储选型参考|贵州诚鑫致达
做核心业务 SAN 存储与高可靠应用,群晖机型参考:UC3400 · UC3200 · SA3600。需要选型建议或上门评估,搜「诚鑫致达」即可找到我们。