lvs单点故障需通过keepalived实现主备高可用:利用vrrp协议虚拟vip,主节点宕机时备节点秒级接管;通过组播地址224.0.0.18同步状态与会话;结合多层健康检查动态剔除异常rs;优选dr模式提升性能与稳定性。

LVS 本身作为调度器,若单机部署就是典型的单点故障点。要真正提升集群稳定性,必须让 LVS 自身具备高可用能力,核心方法是引入 Keepalived 实现主备切换,配合 VRRP 协议和组播通信完成状态同步与自动接管。
用 Keepalived 构建主备调度器
Keepalived 是为 LVS 量身设计的高可用组件,它通过 VRRP 协议在多台 LVS 调度器之间虚拟出一个浮动 VIP(Virtual IP)。正常情况下,优先级高的节点作为 MASTER 绑定 VIP 并转发流量;当它宕机或服务异常时,BACKUP 节点在几秒内自动抢占有 VIP,客户端无感知地继续访问,从而消除 LVS 层面的单点风险。
依赖组播报文同步会话与状态
集群内各 LVS 节点需要共享关键运行状态,比如当前会话表、后端服务器健康检查结果等。这种同步不靠四层或七层转发,而是通过组播报文实现:
- Keepalived 默认使用组播地址 224.0.0.18 发送 VRRP 包,所有节点监听该地址
- 主节点定期发送组播报文宣告“我还活着”,备节点持续监听
- 若备节点连续收不到组播心跳(默认 3 秒 × 3 次),即触发角色切换
- 会话同步也复用该通道,确保接管时已有最新连接映射信息
结合健康检查剔除后端异常节点
单点故障不仅来自调度器自身,后端真实服务器(Real Server)宕机同样影响整体可用性。Keepalived 支持多层级探测:
- 网络层:发 ICMP ping 判断主机是否存活
- 传输层:尝试 TCP 握手检测指定端口(如 80、443)是否可连
- 应用层:发起 HTTP GET 请求,校验返回码和内容
- 任一检查失败,自动从 IPVS 规则中移除该 RS,流量不再分发过去
选择 DR 模式兼顾性能与稳定性
在 LVS 三种工作模式中,DR(Direct Routing)最适合高可用集群:
- 请求由 LVS 修改 MAC 地址转发,响应由 RS 直接返回客户端,不经过 LVS,吞吐更高
- 对网络要求是同网段,便于 Keepalived 组播通信稳定可靠
- 相比 NAT 模式,避免了 LVS 成为响应路径瓶颈,进一步降低单点压力











