当前位置: 首页 > ops >正文

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负载均衡。

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

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

http://www.xdnf.cn/news/9388.html

相关文章:

  • Linux之守护进程
  • 无法删除/重装VirtualBox,提示缺少msi安装包
  • Jenkins+Docker 实现一键自动化部署项目
  • 学习STC51单片机18(芯片为STC89C52RCRC)
  • 干货|VR全景是什么?
  • 并发解析hea,转为pdf格式
  • Unity数字人开发笔记——讯飞超拟人语音
  • uniapp|实现多端图片上传、拍照上传自定义插入水印内容及拖拽自定义水印位置,实现水印相机、图片下载保存等功能
  • 实测!横屏影视素材转竖屏 无损转换 +参数可调 抖音 快手竖屏视频一键适配
  • C++ 复制构造函数:创建对象的 “拷贝大师”
  • Ajax(Asynchronous JavaScript and XML)
  • 无人机分布式协同算法解析!
  • 采用Bright Data+n8n+AI打造自动化新闻助手:每天5分钟实现内容日更
  • promptfoo:让语言模型评测不再“靠感觉”——一站式 LLM 自动化测评神器深度解读
  • C#学习26天:内存优化的几种方法
  • 【开源解析】基于PyQt5+Folium的谷歌地图应用开发:从入门到实战
  • 在 Ubuntu 22.04 LTS 上离线安装 Docker
  • 002 flutter基础 初始文件讲解(1)
  • 解码 Skate:打造链间可组合应用栈,构建跨越虚拟机的无状态未来
  • 使用 Selenium 进行自动化测试:入门指南
  • sl4j+log4j日志框架
  • 苍穹外卖 09 WebSocket来单提醒客户催单营业额统计
  • 【C++】string类的使用(万字详解)
  • ZYNQ-PS与PL端BRAM数据交互
  • Tesseract OCR 安装与中文+英文识别实现
  • RK3568DAYU开发板-平台驱动开发:I2C驱动(原理、源码、案例分析)
  • 中山大学无人机具身导航新突破!FlightGPT:迈向通用性和可解释性的无人机视觉语言导航
  • 概念流水账:PHY、PCS、PRBS
  • Vue 项目中 Sass 与 Less 的对比
  • 社区造数服务接入MCP|得物技术