keepalived启动失败主因是keepalived.conf语法错误,需用keepalived -t -f校验;vrrp/lvs配置需顶格与缩进规范,dr模式须正确配置real server的lo接口、arp参数及防火墙规则,并确保vrrp组播通信正常。

keepalived 启动失败:/etc/keepalived/keepalived.conf 语法错误
配置 LVS 高可用时,keepalived 启动失败最常见原因就是 /etc/keepalived/keepalived.conf 里写错了关键字或缩进。它不报具体哪一行错,只在日志里显示 "Configuration file '/etc/keepalived/keepalived.conf' syntax error"。
实操建议:
- 用
keepalived -t -f /etc/keepalived/keepalived.conf手动校验语法,它会输出真实报错行号 -
vrrp_instance和virtual_server块必须顶格写,内部参数要缩进(空格或 tab 皆可,但同一文件内别混用) -
virtual_server的delay_loop、lb_algo、lb_kind这几个参数不能少;lb_kind必须是DR、NAT或TUN,拼错(比如写成dr小写)也会挂 - 检查
real_server下的weight是否为整数,TCP_CHECK块里的connect_port是否和后端服务监听端口一致
DR 模式下 real server 回环接口没配好,请求全丢
LVS DR 模式要求所有 real server 把 VIP 绑定到本地回环接口(lo),并禁用 ARP 响应,否则客户端发来的包会被 real server 自己吃掉,不转发给后端应用。
实操建议:
- 在 real server 上执行:
ip addr add 192.168.10.100/32 dev lo(把 VIP 替换成你实际的virtual_ipaddress) - 加两条 sysctl 配置:
net.ipv4.conf.lo.arp_ignore = 1和net.ipv4.conf.lo.arp_announce = 2,然后sysctl -p - 别只配
lo,还要确认net.ipv4.conf.all.arp_ignore是 0 —— 设成 1 会导致其他正常网卡也收不到 ARP,反而断连 - 验证方式:在 real server 上
ip addr show lo看 VIP 是否存在;再从 client ping VIP,抓包看 reply 是否来自 real server 而非 LVS 调度器
iptables 丢掉了 LVS 的转发包
很多系统默认开了 iptables 或 firewalld,而 LVS 在内核 netfilter 的 PREROUTING 链之后做转发,如果规则顺序不对,包可能在到达 LVS 前就被 DROP 了。
iWebShop基于iWebSI框架开发,在获得iWebSI技术平台库支持的条件下,iWebShop可以轻松满足用户量级百万至千万级的大型电子商务网站的性能要求。站点的集群与分布式技术(分布式计算与存储/高可用性/负载均衡)被屏蔽在SI 平台之内,基于iWebShop并且按照SI平台库扩展规范开发的新增功能模块,也将同时获得这种超级计算与处理的能力。作为开源的LAMP电子商务系统,iWebShop
实操建议:
- 先临时关掉防火墙:
systemctl stop firewalld或iptables -F,确认是否是它导致不通 - 若必须开防火墙,确保放行 VIP 的入向流量:
iptables -I INPUT -d 192.168.10.100 -j ACCEPT(VIP 替换为你自己的) - DR 模式下 real server 不需要开放调度器端口,但必须允许本机访问自己绑定的 VIP(即
lo接口上的 VIP),否则健康检查会失败 - 注意
iptables规则持久化方式:CentOS 7+ 默认用firewalld,直接改iptables命令不生效;Debian/Ubuntu 则常用iptables-persistent
keepalived 主备切换后 VIP 不漂移
主节点宕机,备节点没接管 VIP,常见于 VRRP 广播收不到、优先级配置冲突、或网络隔离。
实操建议:
- 用
tcpdump -i eth0 vrrp在两台机器上同时抓包,看主是否还在发VRRP Advertisement,备是否收到 - 检查
vrrp_instance下的state:主必须是MASTER(大写),备是BACKUP;priority主要比备高(如 100 vs 90),且差值 ≥ 5 更稳 - 确认两节点在同一个二层网络,中间交换机没开 IGMP snooping 或 VLAN 隔离——VRRP 依赖组播地址
224.0.0.18,跨三层需额外配置 - 备节点启动后,
ip addr show看 VIP 是否出现;没出现就查journalctl -u keepalived -n 50,重点找"VRRP_Instance(xxx) Entering MASTER STATE"是否有
DR 模式下 VIP 漂移本身很快,但 real server 的 ARP 缓存更新慢,客户端可能还要等几十秒才恢复;这个延迟不是配置问题,而是网络层固有行为。









