本文围绕LVS+Keepalived 高可用集群展开,从 Keepalived 双机热备基础、双机热备配置、LVS 集成高可用集群搭建三大模块,系统讲解了基于 VRRP 协议的故障自动切换、健康检查、负载调度与集群高可用实现,适用于 Web、Nginx、MySQL 等服务的高可用架构,是企业生产环境解决单点故障、提升并发承载能力的经典方案。
一、Keepalived 双机热备基础
1. 核心定位
Keepalived 最初为 LVS 设计,用于故障切换 Failover 与健康检查 Health Checking,可实现主节点故障时自动切换到备节点,故障恢复后自动切回,保证业务不中断。非 LVS 环境下也可独立作为双机热备软件使用。
2. 核心原理:VRRP 虚拟路由冗余协议
- 多台服务器组成热备组,共用一个 ** 虚拟 IP(VIP)** 对外提供服务。
- 同一时刻只有主节点 MASTER 提供服务,备节点 BACKUP 处于冗余状态。
- 主节点故障后,备节点根据优先级自动抢占 VIP,实现秒级切换。
- VIP 由 Keepalived 自动管理,无需手动配置虚拟网卡。
3. 安装与基础控制
- 安装:
dnf install -y keepalived ipvsadm - 开机自启:
systemctl enable keepalived - 启停:
systemctl start/stop/restart keepalived
二、Keepalived 实现双机热备(通用高可用)
1. 典型架构
- 主节点:192.168.10.101
- 备节点:192.168.10.102
- VIP:192.168.10.100
- 用途:Web/Nginx 等服务高可用
2. 主节点配置(关键)
plaintext
global_defs {
router_id HA_TEST_R1
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 1
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.10.100
}
}
3. 备节点配置(仅修改三处)
- router_id 改为唯一名称
- state BACKUP
- priority 低于主节点(如 99)
4. 功能验证
- 连通性测试:ping VIP,主节点停机后丢 1--2 个包立即恢复。
- 服务切换测试:访问 VIP 对应的 Web,主节点停机自动切换到备节点。
- 日志查看:/var/log/messages 记录 MASTER/BACKUP 切换过程。
- 结论:实现无感知故障切换,达到高可用(HA)标准。
三、LVS+Keepalived 高可用集群(负载均衡 + 高可用)
1. 架构定位
- 主调度器 + 备调度器:实现 LVS 负载均衡器的高可用。
- 后端 Web 节点池:提供实际业务服务。
- NFS 共享:保证 Web 节点内容一致。
- 模式:LVS-DR(直接路由),性能最高。
2. 集群角色与 IP
- 主调度器 lb01:192.168.10.101
- 备调度器 lb02:192.168.10.102
- Web 节点:192.168.10.103、104
- NFS:192.168.10.105
- VIP:192.168.10.100
3. 主调度器配置(LVS+Keepalived 整合)
在热备基础上增加 virtual_server 配置,自动管理 LVS 规则:
plaintext
virtual_server 192.168.10.100 80 {
delay_loop 15
lb_algo rr # 轮询
lb_kind DR # 直接路由模式
protocol TCP
real_server 192.168.10.103 80 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
}
}
real_server 192.168.10.104 80 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
}
}
}
4. 备调度器配置
与主节点几乎一致,仅修改:
- router_id
- state BACKUP
- priority 更低
5. Web 节点配置(DR 模式必须)
- 配置 lo:0 绑定 VIP
- 调整 arp_ignore、arp_announce 抑制 ARP 响应
- 添加本地路由,使请求回到本机
- 提供脚本一键配置 VIP 与 ARP 参数
6. 集群验证
- 通过 VIP 访问 Web 服务,实现负载均衡。
- 主调度器停机,备调度器自动接管 VIP,服务不中断。
- 后端节点异常,Keepalived 自动剔除;恢复后自动加入。
- 可通过
ipvsadm -ln查看调度状态。
四、核心总结
-
Keepalived 价值 基于 VRRP 实现VIP 漂移,完成服务高可用,支持任意 TCP 服务(Web、MySQL、网关等)。
-
LVS+Keepalived 价值
- 解决 LVS 调度器单点故障
- 自动配置 LVS 规则,无需手动维护 ipvsadm
- 对后端节点做健康检查,自动剔除故障节点
- 实现 负载均衡 + 高可用 一体化
- 关键配置要点
- 同一热备组:virtual_router_id、认证、VIP 必须一致
- 主备区分:state、priority、router_id
- LVS-DR 模式:Web 节点必须配置 VIP + ARP 抑制
- 调度算法常用 rr 轮询,健康检查用 TCP_CHECK
- 适用场景 高并发 Web 站点、API 网关、电商平台、企业应用入口等需要7×24 小时不中断服务的场景。