一、核心概念
核心组合:LVS(四层负载均衡)+ Keepalived(高可用+健康检查),解决"单点故障"+"高并发分发"问题,企业级核心方案。
1. LVS(Linux Virtual Server)
- 定位:内核级四层(TCP/UDP)负载均衡,不处理应用层内容,仅做请求转发
- 核心优势:性能极高(内核态转发),吞吐量大,远优于Nginx/HAProxy(七层)
- 核心功能:按调度算法,将客户端请求分发到多台Real Server(RS,后端应用服务器)
2. Keepalived
- 定位:基于VRRP协议,实现LVS负载均衡器的高可用,同时管理LVS规则、检测RS健康状态
- 核心功能:① 主备切换(VIP漂移);② 后端RS健康检查;③ 集成ipvsadm,统一管理LVS转发规则
3. 关键术语
- Director(LB):负载均衡器,运行LVS+Keepalived,分主(MASTER)、备(BACKUP)两台
- VIP:虚拟IP,对外服务的统一入口,由主LB持有,故障时漂移到备LB
- Real Server(RS):后端真实应用服务器(如Web、API服务器)
二、LVS三种工作模式
|-----------------------|------------------------------------|----------|---------------------|
| 模式 | 核心特点 | 性能 | 适用场景 |
| DR(Direct Route,直接路由) | 调度器仅修改请求的目标MAC地址,响应由RS直接回客户端(不经LB) | 最高(企业首选) | 高并发、低延迟业务(如Web、API) |
| NAT | 请求、响应都经过调度器,需做地址转换 | 低(易成瓶颈) | 小规模集群、后端服务器不能直接访问公网 |
| TUN(IP隧道) | 通过IP隧道转发请求,支持跨网段部署 | 中等(配置复杂) | 跨机房、跨网段集群 |
三、典型架构
1. 架构组成(示例)
- LB主(MASTER):192.168.1.10(运行LVS+Keepalived)
- LB备(BACKUP):192.168.1.11(运行LVS+Keepalived)
- VIP:192.168.1.100(对外统一入口)
- RS1:192.168.1.12(Web服务器)
- RS2:192.168.1.13(Web服务器)
2. DR模式数据流(核心)
- 客户端 → VIP(192.168.1.100)→ 主LB(MASTER)
- 主LB根据调度算法,修改请求的目标MAC地址(改为某台RS的MAC),转发到内网
- RS接收请求,处理后直接响应客户端(不经过LB)→ 性能最优
四、部署步骤
1. LB节点(主备均操作)
- 安装软件:yum install -y keepalived ipvsadm
- 核心配置:/etc/keepalived/keepalived.conf(重点修改3部分)
- vrrp_instance:主备区分(state MASTER/BACKUP)、优先级(主>备)、VIP配置
- virtual_server:VIP+端口、调度算法(rr轮询)、工作模式(DR)
- real_server:后端RS的IP+端口、健康检查配置(TCP_CHECK)
- 启动服务:systemctl start keepalived; systemctl enable keepalived
2. RS节点(所有后端服务器)
DR模式必须配置(避免VIP冲突),两步核心操作:
- 绑定VIP到lo网卡(回环网卡):配置ifcfg-lo:0文件,IP为VIP,子网掩码255.255.255.255
- 抑制ARP广播:修改sysctl.conf,添加4行配置(arp_ignore=1、arp_announce=2),执行sysctl -p生效
3. 验证命令
- 查看VIP:ip addr show 物理网卡(如ens33)
- 查看LVS转发规则:ipvsadm -Ln
- 查看Keepalived状态:systemctl status keepalived
五、高可用故障切换(核心优势)
- LB主故障:主备心跳丢失(advert_int 1,每秒检测),备LB自动升级为MASTER,接管VIP,客户端无感知
- RS故障:Keepalived健康检查(delay_loop 6,每6秒检测),失败则自动从LVS规则中剔除,恢复后自动加回
六、重点总结
- LVS工作在四层,核心是转发,不处理应用层内容;Keepalived解决LVS的单点故障
- DR模式是企业首选,核心是"RS直接回客户端",性能最高
- RS节点必须配置"绑定VIP到lo+抑制ARP",否则会出现VIP冲突
- 企业常用组合:LVS+Keepalived(四层入口)→ Nginx(七层路由)→ 应用服务器