Linux Keepalived高可用配置教程 双机热备实战指南
配置Keepalived实现双机热备,一个常见的误解是认为软件装上就能自动实现高可用。实际上,真正的稳定运行,关键在于VRRP配置、健康检查绑定以及网络层对齐这三者必须严丝合缝。任何一个环节出错,比如virtual_router_id不一致,或者健康检查脚本失效,都可能导致虚拟IP(VIP)无法正常漂移,服务依然中断。

确认网卡名和VIP网段是否真实可达
很多部署后的问题,根源在于“以为网络是通的,但实际上不通”。这需要从最底层开始确认:首先,VIP必须与两台服务器的物理IP处于同一个子网。其次,配置文件中指定的网卡名称,必须与系统内实际名称完全匹配(例如是ens33还是eth0,不同CentOS版本差异可能很大)。
- 第一步,在两台服务器上执行
ip -br a命令,确认目标网卡状态为UP,并且已经分配了同网段的IP地址(例如192.168.100.11/24)。 - 规划的VIP地址(如
192.168.100.107)不能与现有物理IP、网关地址或广播地址冲突。 - 防火墙必须放行VRRP协议通信。VRRP默认使用组播地址
224.0.0.18和协议号112。以firewalld为例,可以执行命令:firewall-cmd --add-rich-rule='rule protocol value="vrrp" accept' --permanent,然后重载配置。 - 如果系统启用了SELinux,需要确保Keepalived进程有权限读取自定义脚本,可以执行
setsebool -P keepalived_read_etc 1来设置。
state、priority和virtual_router_id必须成对校验
在vrrp_instance配置块中,state、priority和virtual_router_id这三个参数是主备节点相互识别的核心,任何一项不匹配都可能导致脑裂或状态异常。
state参数:主节点配置应设为MASTER,备节点必须设为BACKUP。如果写反了,配置本身不会报错,但VIP将无法按预期漂移。priority参数:主节点的优先级应高于备节点。通常主节点设为100,备节点设为90,保持至少10的差值可以在网络轻微抖动时避免误切换。virtual_router_id参数:同一个VRRP实例在两台机器上的这个ID必须完全相同(取值范围1-255),并且在同一局域网内,不同的VRRP组必须使用不同的ID,否则会相互干扰。
健康检查脚本必须返回正确的exit code并可执行
依靠自定义脚本(如killall -0 nginx或curl -s https://127.0.0.1/health)来检测应用状态是标准做法,但脚本本身常常成为故障点。
- 脚本路径必须与
vrrp_script中定义的完全一致(例如/etc/keepalived/check_nginx.sh),并且确保其具有可执行权限(chmod 755),属主为root。 - 脚本的退出码必须明确:健康时返回
exit 0,异常时返回exit 1(或其他非零值)。返回其他特定值(如exit 2)可能会被Keepalived忽略。 - 在脚本中,避免使用依赖完整系统环境的命令,例如
systemctl is-active nginx。因为Keepalived的子进程可能无法加载全部systemd环境变量。改用pgrep -x nginx这类命令会更可靠。 - 检查间隔
interval建议设置为2秒左右。间隔太短会增加系统负载,间隔太长(如超过5秒)则会延长故障发现时间,影响服务可用性。
切记:Keepalived不同步数据,只管VIP漂移
这是一个至关重要的认知:Keepalived只负责IP地址的高可用,它不负责数据同步。有人配置好后以为高枕无忧,结果主服务器宕机后,VIP虽然漂移到了备机,但备机上的数据库却是空的——因为Keepalived从不复制磁盘数据、不同步文件、也不处理数据库日志。
- 它的核心工作非常单一:当通过健康检查判断本地服务异常时,自动降低自身优先级,触发备节点升为主节点并接管VIP。
- 对于Nginx静态资源,需要通过
rsync或分布式存储等方式保证文件一致。对于MySQL、PostgreSQL等数据库,必须单独配置主从复制或流复制。 - 如果使用
corosync + pacemaker这类集群栈来同时管理数据库服务和VIP,必须正确配置colocation约束,否则可能出现VIP和数据库服务分别运行在不同节点上的情况,服务依然不可用。
说到底,要让双机热备真正稳定运行,最常遇到的障碍往往不是配置文件的语法错误,而是网络层组播通信是否畅通、健康检查脚本是否存在静默失败,以及是否清晰理解了“VIP切换”并不等同于“服务全自动恢复”这个根本逻辑。
相关攻略
在 Kali Linux 系统中安装 OpenClaw 时,如果直接使用 sudo 权限或默认安装方式,大概率会遇到因权限和网络环境导致的安装失败问题。本教程将提供一套完整的解决方案,通过三个关键步骤彻底解决这些常见错误,确保你的 OpenClaw 安装过程顺畅无阻。 第一步:解决权限问题(配置 n
如果你正准备在生产环境部署Ansible AWX,那么有一个关键信息必须首先明确:官方早已不再推荐,甚至可以说废弃了通过Linux原生包管理器(如apt或yum)的直接安装方式。当前唯一获得官方支持的路径,就是容器化部署。 这意味着,任何试图通过apt install awx或yum install
在Linux系统中准确判断其运行于32位还是64位架构,是系统管理和软件部署中的一项基础但至关重要的任务。许多用户在实际操作中容易混淆不同命令的输出含义,导致误判。本文将深入解析几种核心查询方法的原理与应用场景,帮助您精准把握系统位数信息。 使用 getconf LONG_BIT 精准判断当前运行环
SSH连接频繁中断是运维工作中常见的困扰,许多用户误以为是网络波动导致,实际上多数情况源于服务端或客户端对空闲连接的主动断开机制。因此,解决问题的核心并非简单延长超时阈值,而是正确配置SSH连接的“保活”策略,确保远程会话稳定不中断。 服务端配置:修改 sshd_config 启用 ClientAl
在Linux系统中终止进程,很多用户的第一反应是使用kill -9命令,并将其视为万能解决方案。然而,kill命令的本质是一个进程间通信机制,它向目标进程发送特定的信号。进程本身有权决定如何响应这些信号:它可以优雅地处理、选择忽略,甚至捕获并执行自定义操作。因此,终止操作能否成功,很大程度上取决于目
热门专题
热门推荐
陆瑾是《异人之下》手游中操作门槛较高的角色,主打中近距离压制。其核心在于普攻攒炁,并衔接常技【太冲震恚】与【曲泉交忿】进行输出。关键技能【五雷符】可攻可守,成功防御反击可重置冷却。连招依赖“反手”逻辑与精准预判,形成攻防循环。投技【双龙探爪】与【戾走急脉】则需把握时机,分别用于破防与针。
投资策略需要明确目标与风险偏好,合理分配资金。通过研究项目基本面、关注市场周期与情绪,建立多元化组合。执行中需设定清晰的买卖规则,利用工具辅助决策,并保持长期视角与纪律性,避免情绪化操作。定期复盘与调整是策略持续有效的关键。
巴伦是《异人之下》手游中的近战压制型角色,核心玩法在于追击与倒地连招。其技能“破势突击”衔接流畅,“极速连斩”可追击倒地目标,“飞身十字固”抓取伤害高,“逆势突围”用于防守反击。角色操作上限高,需练习掌握连招循环,但对战远程角色时较为吃力。
谷歌宣布Gemini3 5Pro模型下月发布,已在内部广泛使用且进步显著。具体技术细节、性能参数及开放计划尚未公布,更多信息将于下月揭晓。
谷歌在2026年I O大会上推出月费100美元的新AI订阅计划,旨在填补其现有20美元与250美元两档服务之间的市场空白。该计划面向需要更多资源的高级用户和小型团队,提供比基础版更强的性能,同时避免企业级的高昂成本,以竞争中高端市场。





