主备切换 怎么配置主备双机心跳脚本防止脑裂

夏静吖_1073

夏静吖_1073

2026-10-10

817人浏览

原创

防止脑裂需构建多层判断机制:网络连通性+服务可用性+仲裁确认;必须结合keepalived的vrrp协议、独立心跳通道及qdevice等外部仲裁,辅以应用层健康检查与物理隔离。

主备切换 怎么配置主备双机心跳脚本防止脑裂

主备切换中防止脑裂,核心不是只靠“心跳脚本”,而是构建多层判断机制:网络连通性 + 服务可用性 + 仲裁确认。单纯一个 ping 或 curl 脚本无法规避脑裂,必须配合 Keepalived 的 VRRP 协议约束、独立心跳通道和外部仲裁(如 qdevice 或第三方监控)才能真正可靠。

用 Keepalived 做基础 VRRP 心跳

VRRP 本身已是标准化心跳协议,主备通过组播/单播交换通告报文,无需额外写“ping 脚本”替代它:

  • 确保 virtual_router_id 在主备配置中完全一致(如 51),否则视为不同组,互不感知
  • 主节点设 state MASTER、priority 150;备节点设 state BACKUP、priority 100
  • 启用 authentication(auth_type PASS + auth_pass),防非法节点冒充
  • 防火墙放行 VRRP 协议:firewall-cmd --add-protocol=vrrp --permanent && firewall-cmd --reload

加应用层健康检查脚本(防“假活”)

Keepalived 默认只检测进程或端口存活,Nginx 进程在但 502 大量返回时不会切换。需主动探测业务健康:

  • 写检测脚本 /etc/keepalived/nginx_check.sh:
#!/bin/bash
# 检查 Nginx 是否能返回 200 且响应时间 
  • 在 keepalived.conf 中定义:
vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh"
    interval 2
    weight -30     # 失败一次,优先级降 30,低于备机即触发切换
    fall 2         # 连续失败 2 次才判定异常
    rise 2         # 连续成功 2 次才恢复权重
}
  • 在 vrrp_instance 块中引用:track_script { chk_nginx }

防脑裂:必须引入仲裁或隔离机制

两节点集群天然易脑裂。仅靠心跳线或脚本无法解决“双方都收不到对方包”的对称故障:

  • 推荐启用 qdevice(如 qnetd 仲裁服务器):它作为第三方投票节点,打破双节点平票局面
  • 若无第三方服务器,至少配置 two_node: 1 + auto_tie_breaker: 1(Corosync/Pacemaker 场景),但可靠性仍弱于 qdevice
  • 物理层面:使用独立网卡+直连网线跑心跳(如 ens224),与业务网络(ens160)彻底隔离,避免交换机故障引发误判
  • 禁用非必要干扰:关闭主备间可能干扰 VRRP 的 iptables 规则(特别是 DROP vrrp)、禁用 NetworkManager 对 VIP 网卡的接管

辅助监控脚本(用于告警,不用于决策)

这类脚本不参与切换逻辑,只做事后发现与人工干预提示:

  • 在备机上定时检查是否意外持有 VIP:
#!/bin/bash
VIP="192.168.1.100"
if ip a | grep -q "$VIP"; then
    echo "ALERT: Backup node holds VIP — possible split-brain or failover occurred" | logger -t keepalived-monitor
    # 可在此调用短信/钉钉接口告警
fi
  • 部署到 cron 每 30 秒执行一次,配合 Zabbix 或 Prometheus 报警更佳
PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

900

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2812

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

936

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

849

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

434

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2536

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4712

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

747

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习