LVS-DR(Linux Virtual Server - Direct Routing)是一种高性能的负载均衡集群架构,通过直接路由技术将请求分发到后端真实服务器(Real Server),并允许响应数据直接返回客户端(不经过负载均衡器)。以下是其核心原理、配置要点和注意事项:
一、LVS-DR 工作原理
请求流程:
客户端发送请求到虚拟IP(VIP)。
负载均衡器(Director)通过IPVS(IP Virtual Server)修改请求的目标MAC地址,将请求转发给选中的Real Server。
Real Server 处理请求后,直接使用VIP作为源IP将响应返回给客户端(绕过Director)。
关键技术:
ARP抑制:Real Server需配置为不响应VIP的ARP请求,避免IP冲突。
VIP绑定:VIP需配置在Real Server的
lo
接口(回环接口)上,仅用于响应数据包。
二、LVS-DR 配置步骤
1. 负载均衡器(Director)配置
# 添加VIP到网卡(如eth0) ifconfig eth0:0 192.168.1.100 netmask 255.255.255.255 broadcast 192.168.1.100 up # 启用IP转发 echo 1 > /proc/sys/net/ipv4/ip_forward # 使用ipvsadm配置规则 ipvsadm -A -t 192.168.1.100:80 -s rr # 创建TCP服务,使用轮询调度 ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2:80 -g # 添加Real Server,-g表示DR模式 ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.3:80 -g
2. 真实服务器(Real Server)配置
# 在每台Real Server上配置VIP到lo接口 ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 broadcast 192.168.1.100 up # 抑制ARP响应(关键!) echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
三、LVS-DR 优缺点
优点
高性能:响应数据不经过Director,吞吐量高。
低延迟:Real Server直接响应客户端。
可扩展性强:支持大量Real Server。
缺点
网络限制:Director和Real Server必须在同一物理网络(不能跨路由)。
ARP问题:需严格配置ARP抑制,否则可能引发IP冲突。
四、常见问题与解决
Real Server无法响应请求:
检查VIP是否绑定到
lo
接口。验证
arp_ignore
和arp_announce
参数配置是否正确。
客户端收到重复响应:
确保只有Director和Real Server绑定VIP,其他设备未占用该IP。
跨网段不可用:
LVS-DR要求所有节点在同一二层网络,跨网段需改用NAT或TUN模式。
五、应用场景
高并发Web服务:如HTTP/HTTPS负载均衡。
视频流媒体:需要高吞吐量的场景。
数据库读负载均衡:适用于只读查询的分发。