linux高可用架构需部署pacemaker+corosync集群,配置stonith防脑裂,定义虚拟ip与nfs资源并设置共置/顺序约束,定期维护状态并执行故障转移测试。

如果您需要在 Linux 环境中构建具备故障自动转移与服务持续可用能力的系统,则需围绕集群资源管理、心跳检测、共享存储及服务监控等核心组件进行协同配置。以下是实现 Linux 高可用架构部署与维护的关键操作步骤:
一、部署 Pacemaker + Corosync 集群
Pacemaker 是开源的集群资源管理器,Corosync 提供底层消息传递与成员资格管理,二者组合构成主流高可用基础平台。该方案依赖于节点间可靠的心跳通信与统一的资源配置策略。
1、在所有节点上安装 pacemaker 和 corosync 软件包,例如在 CentOS/RHEL 系统中执行 yum install -y pacemaker corosync pcs。
2、使用 pcs cluster auth node1 node2 -u hacluster -p password 完成节点间认证,其中 hacluster 是默认管理用户。
3、执行 pcs cluster setup --name mycluster node1 node2 初始化集群配置并生成 corosync.conf。
4、启动集群服务:依次运行 pcs cluster start --all 与 pcs cluster enable --all。
二、配置 STONITH 设备防止脑裂
STONITH(Shoot The Other Node In The Head)机制通过强制关闭异常节点保障数据一致性,是避免双主写入导致文件系统损坏的必要防护手段。
1、确认已安装对应 Fencing 插件,如使用 IPMI 则需安装 fence-agents-ipmilan 包。
2、在集群中添加 fence 设备:执行 pcs stonith create myfence fence_ipmilan ipaddr=192.168.1.100 login=admin passwd=secret pcmk_host_list="node1 node2"。
3、启用 STONITH 并验证状态:运行 pcs property set stonith-enabled=true 后,使用 pcs stonith show 检查设备注册情况。
三、定义并管理高可用资源
资源定义决定哪些服务由集群调度控制,包括 IP 地址、文件系统挂载点、数据库实例等。Pacemaker 依据资源约束与顺序规则确保服务按预期启动与迁移。
1、添加虚拟 IP 资源:执行 pcs resource create virtual_ip IPaddr2 ip=192.168.1.100 cidr_netmask=24 op monitor interval=30s。
2、添加 NFS 共享存储资源:使用 pcs resource create nfs_fs Filesystem device="/dev/sdb1" directory="/srv/nfs" fstype=xfs op monitor interval=60s。
ShopNC单用户商城系统是面向独立卖家而开发的B2C商城系统。系统运行稳定高效,功能强大,突出个性化配置要求,可以根据不同的营销策略,从模板、栏目、功能上进行调整,满足各类客户的需要。系统部署快捷方便,减轻了使用者的技术负担,简单的维护操作免去了用户的后顾之忧。本系统前台开放源码,后台加密的。产品特点快速安装,维护简单 分布提示安装,即使不熟悉技术的用户也可以自主安装系统。后台融合数据库等功能管
3、设置资源共置约束,使虚拟 IP 与 NFS 文件系统始终运行在同一节点:pcs constraint colocation add virtual_ip with nfs_fs INFINITY。
4、设定启动顺序,确保文件系统先于 IP 地址上线:pcs constraint order nfs_fs then virtual_ip。
四、维护集群健康状态
日常维护聚焦于日志审查、配置同步、资源状态校验及节点在线性确认,以提前识别潜在故障点并维持集群稳定性。
1、查看集群整体状态:运行 pcs status 获取当前节点状态、资源分配及最近失败事件摘要。
2、检查 Corosync 成员列表:执行 corosync-quorumtool -s 验证法定人数是否满足,输出中 expected 和 actual 值应一致。
3、定位资源异常原因:使用 pcs resource debug-start
4、同步配置至全部节点:修改任意节点上的集群配置后,执行 pcs cluster sync 推送 corosync.conf 至其他成员。
五、执行手动故障转移测试
定期触发受控的服务迁移可验证资源约束有效性、Fencing 可靠性及应用恢复能力,是保障高可用设计落地的关键实践环节。
1、查询当前资源所在节点:pcs status resources,记录 virtual_ip 所在主机名。
2、将资源强制迁移到另一节点:pcs resource move virtual_ip node2,该命令会自动生成位置约束。
3、等待资源完成迁移后,清除临时约束:pcs resource clear virtual_ip,恢复原始调度逻辑。
4、模拟节点宕机场景:在 node1 上执行 pcs cluster stop node1,观察 pcs status 输出中资源是否自动漂移至 node2 并保持 active 状态。









