LVS-DR群集

LVS-DR(Linux Virtual Server - Direct Routing)是一种高性能的负载均衡集群架构,通过直接路由技术将请求分发到后端真实服务器(Real Server),并允许响应数据直接返回客户端(不经过负载均衡器)。以下是其核心原理、配置要点和注意事项:


一、LVS-DR 工作原理

  1. 请求流程

    • 客户端发送请求到虚拟IP(VIP)。

    • 负载均衡器(Director)通过IPVS(IP Virtual Server)修改请求的目标MAC地址,将请求转发给选中的Real Server。

    • Real Server 处理请求后,直接使用VIP作为源IP将响应返回给客户端(绕过Director)。

  2. 关键技术

    • 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冲突。


四、常见问题与解决

  1. Real Server无法响应请求

    • 检查VIP是否绑定到lo接口。

    • 验证arp_ignorearp_announce参数配置是否正确。

  2. 客户端收到重复响应

    • 确保只有Director和Real Server绑定VIP,其他设备未占用该IP。
  3. 跨网段不可用

    • LVS-DR要求所有节点在同一二层网络,跨网段需改用NAT或TUN模式。

五、应用场景

  • 高并发Web服务:如HTTP/HTTPS负载均衡。

  • 视频流媒体:需要高吞吐量的场景。

  • 数据库读负载均衡:适用于只读查询的分发。

相关推荐
云飞云共享云桌面8 小时前
无需配置传统电脑——智能装备工厂10个SolidWorks共享一台工作站
运维·服务器·前端·网络·算法·电脑
福尔摩斯张8 小时前
《C 语言指针从入门到精通:全面笔记 + 实战习题深度解析》(超详细)
linux·运维·服务器·c语言·开发语言·c++·算法
虚伪的空想家8 小时前
arm架构服务器使用kvm创建虚机报错,romfile “efi-virtio.rom“ is empty
linux·运维·服务器·javascript·arm开发·云原生·kvm
火车头-1109 小时前
【docker 部署nacos1.4.7】
运维·docker·容器
深藏bIue9 小时前
linux服务器mysql目录下的binlog文件删除
linux·服务器·mysql
虾..9 小时前
Linux 进程状态
linux·运维·服务器
测试者家园9 小时前
DevOps 到底改变了测试什么?
运维·自动化测试·软件测试·devops·持续测试·智能化测试·软件测试和开发
只想安静的写会代码10 小时前
网卡信息查询、配置、常见故障排查
linux·服务器·windows
jiayong2310 小时前
多子系统架构下的Nginx部署策略与最佳实践
运维·nginx·系统架构
皮糖小王子10 小时前
Docker打开本地镜像
运维·docker·容器