故障转移实战指南:如何利用 Keepalived 实现虚拟 IP 漂移

大枫酱_9937

大枫酱_9937

2026-06-21

996人浏览

原创

keepalived vip漂移依赖vrrp协议协商,故障切换1–3秒内完成;关键配置virtual_router_id、authentication、advert_int、interface必须主备完全一致;state仅初始标识,vip归属由priority决定;健康检查须端到端curl探测;需关闭防火墙、selinux并同步时间。

故障转移实战指南:如何利用 keepalived 实现虚拟 ip 漂移

Keepalived 实现虚拟 IP(VIP)漂移,核心是让主备节点通过 VRRP 协议协商 VIP 归属,故障检测与切换通常在 1–3 秒内完成。它不依赖服务进程是否“存在”,而取决于优先级、心跳通信和健康状态的真实反馈。配得对,VIP 就能秒级响应;配错一个参数,就可能“日志显示切换了,但 IP 始终不出现”。

关键配置项必须完全一致

主备节点若有一处不匹配,VRRP 报文会被静默丢弃,VIP 根本无法协商:

  • virtual_router_id:取值 0–255,同一局域网内必须唯一且两端相同;重复会导致报文被拒
  • authentication:auth_type(通常 PASS)和 auth_pass(明文密码)必须逐字一致,大小写敏感
  • advert_int:建议设为 1(即每秒发一次心跳),这是实现秒级响应的基础间隔
  • interface:绑定的物理网卡名(如 ens160、eth0)需真实存在,且两节点尽量统一命名;填错网卡名会导致 Keepalived 启动成功但不发包

state 和 priority 的真实逻辑

state(MASTER/BACKUP)只是初始状态标识,不是角色锁定开关。VIP 归属由 priority 比较结果决定:

ShareGPT
ShareGPT

一款AI开发辅助工具,主要用于ShareGPT是一个Chrome扩展,可以让你一键分享你的ChatGPT对话,适合需要提升相关任务效率的用户。

下载
  • 主节点 priority 设为 101,备节点设为 99(差值 ≥2 更稳妥,避免网络抖动误切)
  • 两台都配 state BACKUP 是更安全的做法,可降低脑裂风险
  • 若主恢复后需自动抢回 VIP,必须在 vrrp_instance 块外层显式写入 nopreempt(不是注释掉它);默认行为就是抢占

健康检查不能只看进程是否存活

单纯用 pgrep 检查 httpd 或 nginx 进程,会漏判“进程活着但服务不可用”的典型场景(如卡在 graceful shutdown、端口监听异常、返回 503):

  • 改用 curl 端到端探测:curl -f --max-time 2 http://127.0.0.1/health,-f 确保非 2xx 状态直接失败,--max-time 防止脚本 hang 住
  • /health 路径需真实存在并返回 200 OK(例如 echo "ok" > /var/www/html/health)
  • Apache/Nginx 必须监听 *:80 或 127.0.0.1:80,不能仅绑定内网 IP
  • vrrp_script 中 weight 建议设为 -5 或 -10,避免一次误判就触发切换

环境准备常被忽略但至关重要

很多 VIP 不漂移的问题,根源不在 Keepalived 配置本身:

  • 关闭防火墙:systemctl stop firewalld && systemctl disable firewalld(或放行 UDP 112 端口)
  • 禁用 SELinux:setenforce 0 并修改 /etc/sysconfig/selinux 中 SELINUX=disabled
  • 开启 IP 转发(尤其用于代理或 LVS 场景):echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf && sysctl -p
  • 确保时间同步:chronyd 或 ntpd 必须运行,两节点时间差建议控制在 1 秒内

验证要分层看,不能只信 service status

启动后务必结合多层信息交叉确认:

  • 查 VIP 是否绑定:ip addr show dev ens160 | grep 192.168.1.200
  • 盯实时日志:tail -f /var/log/messages | grep Keepalived_vrrp,观察是否出现 Entering MASTER STATE 或 Transition to MASTER STATE
  • 手动模拟故障:systemctl stop keepalived,观察 Backup 是否在 1–2 秒内获得 VIP 并响应 ping/HTTP 请求
  • 注意 vrrp_strict:若部署在单播或复杂网络中,建议注释掉该行,否则可能拒绝合法 VRRP 报文

相关文章

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

2712

5

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

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

2023.10.09

916

5

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

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

2023.10.17

809

5

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

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

2023.10.17

414

3

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

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

2023.10.18

2456

4

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

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

2023.10.20

4532

4

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

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

2023.10.20

727

5

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Linux负载均衡视频教程
Linux负载均衡视频教程

共7课时 | 2万人学习