DR模式 LVS负载均衡群集
LVS DR模式工作原理(Direct Routing)
数据包流向分析
1.客户端 → Director(负载均衡器)
客户端发送请求到 VIP(虚拟IP),数据包到达 Director Server 内核空间。
2.Director → Real Server(真实服务器)
Director 判断数据包目标IP为VIP,是集群服务请求,修改
- 目标MAC:Real Server MAC
- 源MAC:Director Server MAC
IP地址保持不变,发送到 Real Server
3.Real Server 处理请求
- 接收报文(目标MAC为自身),通过 lo 接口配置 VIP 处理请求。
- 响应报文源IP为 VIP,目标IP为客户端(CIP),直接发送给客户端。
4.客户端接收响应
响应报文不经过 Director Server
DR模式特点
- Director Server 与 Real Server 必须在同一物理网络
- Real Server 可以使用私有或公网地址。
- Director 仅作为请求入口,不作为网关。
- 所有请求经过 Director,响应直接由 Real Server 发送。
- Real Server 的网关不能指向 Director Server。
- Real Server 的 lo 接口配置 VIP。
DR模式部署步骤
服务器规划
- DR 服务器:192.168.10.23
- Web 服务器1:192.168.10.16
- Web 服务器2:192.168.10.17
- vip:192.168.10.180
配置负载调度器(Director Server)
环境部署
- IP: 192.168.10.23
- VIP: 192.168.10.180
1.系统配置
systemctl stop firewalld.servicesetenforce 0modprobe ip_vsyum -y install ipvsadm
2.配置虚拟IP
cd /etc/sysconfig/network-scripts/cp ifcfg-ens33 ifcfg-ens33:0vim ifcfg-ens33:0# 内容
DEVICE=ens33:0ONBOOT=yesIPADDR=192.168.10.180NETMASK=255.255.255.255ifup ens33:0ifconfig ens33:0
vim /etc/sysctl.conf# 添加
net.ipv4.ip_forward = 0net.ipv4.conf.all.send_redirects = 0net.ipv4.conf.default.send_redirects = 0net.ipv4.conf.ens33.send_redirects = 0sysctl -p
4.配置 LVS 服务及调度
ipvsadm -Cipvsadm -A -t 192.168.10.180:80 -s rripvsadm -a -t 192.168.10.180:80 -r 192.168.10.16:80 -gipvsadm -a -t 192.168.10.180:80 -r 192.168.10.17:80 -gipvsadm -ln # 查看节点状态,Route代表DR模式
配置节点服务器(Real Server)
IP: 192.168.10.16 、 192.168.10.17
1.配置 VIP 到 lo 接口
cd /etc/sysconfig/network-scripts/cp ifcfg-lo ifcfg-lo:0vim ifcfg-lo:0# 内容DEVICE=lo:0ONBOOT=yesIPADDR=192.168.10.180NETMASK=255.255.255.255ifup lo:0ifconfig lo:0route add -host 192.168.10.180 dev lo:0
2.ARP 参数调整,避免MAC冲突
vim /etc/sysctl.conf#内容net.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.lo.arp_announce = 2net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2#刷新sysctl -p
3.安装 Web 服务
# 192.168.10.16echo 'this is 192.168.10.16 web01!' > /var/www/html/index.html# 192.168.10.17echo 'this is 192.168.10.17 web02!' > /var/www/html/index.html
测试 LVS 群集
- 在客户端浏览器访问:
http://192.168.10.180/ - 轮询显示不同节点页面内容。
注意:LVS-DR 用户访问 http://192.168.10.180/ 下次刷新时 延迟50秒
LVS三种工作模式
| 模式 | 原理 | 优缺点 |
|---|---|---|
| NAT(VS/NAT) | Director 改变数据包目标IP并转发, RS响应包回到Director再发客户端 | 优点:节点可任意OS;缺点: Director是瓶颈 |
| DR(VS/DR) | Director 改变目标MAC地址,RS直接 响应客户端 | 优点:Director不处理响应;缺 点:节点需与Director同网段 |
| TUN(VS/TUN) | Director 封装IP包到隧道,RS解封直 接响应客户端 | 优点:Director不处理响应;缺 点:节点需支持IP隧道 |
LVS调度算法
- 固定调度:rr、wrr、dh、sh
- 动态调度:lc、wlc、lblc
| 算法 | 描述 |
|---|---|
| rr | 轮询,每个RS均摊 |
| wrr | 加权轮询,权重高的分配多 |
| dh | 目的地址哈希分配 |
| sh | 源地址哈希分配 |
| lc | 最少连接数 |
| wlc | 加权最少连接 |
| lblc | 基于地址的最少连接 |
Nginx vs LVS vs HAProxy 区别
| 特 性 | Nginx | LVS (Linux Virtual Server) | HAProxy |
|---|---|---|---|
| 定 位 | Web 服务器 + 反向代理 + 负载均衡 | 内核级四层负载均衡 | 专业负载均衡器(四层 +七层) |
| 工 作 层 级 | 四层(TCP)+ 七层 (HTTP/HTTPS) | 四层(TCP/UDP,传输层) | 四层 + 七层 |
| 性 能 | 高(软件级,单机可达 十万级并发) | 极高(内核态,百万级并发) | 高(接近 Nginx,但更专 注负载均衡) |
| 功 能 特 点 | 静态资源服务- 反向代 理- 缓存- 支持 HTTP/HTTPS 负载均衡 | 高性能转发- 调度算法丰富 (RR、LC、SH…)- 内核态转 发,几乎无性能损耗 | 专注于负载均衡- 健康检 查更强大- 支持会话保 持、SSL 卸载等 |
| 健 康 检 查 | 简单(TCP/HTTP) | 依赖 Keepalived 或其他工具 | 强大(多协议、多方式) |
| 配 置 复 杂 度 | 简单 | 较复杂(需 ipvsadm/keepalived 配合) | 中等(配置文件灵活) |
| 适 用 场 景 | Web 代理、动静分离、 中小型集群 | 超大规模集群、核心四层调度 | 高可用集群、对健康检查 要求高的业务 |
| 优 缺 点 | 优点:功能多,易上手 缺点:七层性能不如 LVS/HAProxy | 优点:性能最强,稳定缺点:只 能四层,配置偏复杂 | 优点:专业负载均衡,健 康检查强缺点:不自带 Web 服务 |
总结:
- Nginx:轻量、全能,适合 Web 服务和中小型负载均衡。
- LVS:极致性能,适合四层超大规模集群,但功能单一。
- HAProxy:专业负载均衡器,四层+七层都行,健康检查能力最强。
