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

LVS-DR 负载均衡集群

目录

一、简介

1.1 LVS-DR工作原理核心特性

1.2 数据包流向深度解析

二、实验环境准备与规划

三、LVS调度器配置实战

3.1 绑定虚拟IP地址(VIP)

3.2 调整内核参数禁用重定向

3.3 配置负载均衡策略

四、真实服务器节点配置

4.1 绑定VIP到lo接口

4.2 调整ARP响应参数

4.3 部署Web服务与NFS挂载

五、集群功能验证与性能测试

5.1 负载均衡效果验证

5.2 客户端访问测试

六、LVS-DR模式应用场景

6.1 应用场景

6.2 生产环境优化建议

总结


一、简介

在互联网高并发场景下,负载均衡技术是保障系统稳定性的核心组件。LVS(Linux Virtual Server)作为Linux平台下的高性能负载均衡解决方案,其DR(Direct Routing)模式因其"请求进、响应出"的高效数据路径设计,成为生产环境的首选方案。

1.1 LVS-DR工作原理核心特性
  • 流量分发机制:调度器(Director Server)仅处理入站请求,响应数据由真实服务器(Real Server)直接返回客户端,避免流量回环
  • 网络拓扑要求:调度器与真实服务器需位于同一二层网络(VLAN或物理网段),依赖MAC地址重写实现数据转发
  • VIP共享机制:调度器与真实服务器均需配置虚拟IP(VIP),但真实服务器通过lo接口绑定VIP,避免ARP冲突
1.2 数据包流向深度解析
  1. 请求阶段:客户端发送​​CIP→VIP​​的数据包到调度器
  2. 调度处理:调度器修改数据包MAC地址(源MAC→调度器MAC,目标MAC→真实服务器MAC),IP地址保持不变
  3. 响应阶段:真实服务器通过lo接口封装​​VIP→CIP​​的响应包,直接返回客户端

这种设计使得LVS-DR模式的吞吐量可达NAT模式的3-5倍,尤其适合静态资源服务场景。

二、实验环境准备与规划

主机角色

操作系统

物理IP地址

配置职责

LVS调度器

openEuler 24.03

192.168.10.101

负载分发、VIP绑定

Web服务器节点1

openEuler 24.03

192.168.10.102

提供Web服务、绑定VIP

Web服务器节点2

openEuler 24.03

192.168.10.103

提供Web服务、绑定VIP

NFS共享服务器

openEuler 24.03

192.168.10.104

存储共享Web内容

网络规划关键点

  • VIP地址:192.168.10.100/32(主机路由模式,避免广播)
  • 所有节点网关不可指向调度器IP,确保响应直接回客户端
  • 真实服务器通过lo:0接口绑定VIP,防止ARP冲突

三、LVS调度器配置实战

3.1 绑定虚拟IP地址(VIP)
# 进入网络配置目录
cd /etc/sysconfig/network-scripts/# 复制物理网卡配置文件创建虚拟接口配置
cp ifcfg-ens33 ifcfg-ens33:0# 编辑虚拟接口配置文件
vim ifcfg-ens33:0
# 配置内容说明:
# NAME=ens33:0        # 接口名称
# DEVICE=ens33:0      # 设备名称
# ONBOOT=yes          # 开机自启
# IPADDR=192.168.10.100  # VIP地址
# NETMASK=255.255.255.255  # 全1子网掩码,指定为单播主机地址# 重启网络服务使配置生效
systemctl restart NetworkManager# 验证接口配置(示例输出)
ifconfig ens33:0
# 输出说明:
# inet 192.168.10.100  # VIP地址
# netmask 255.255.255.255  # 子网掩码
# ether 00:0c:29:93:80:05  # 物理网卡MAC地址
3.2 调整内核参数禁用重定向
# 编辑系统参数配置文件
vim /etc/sysctl.conf
# 添加以下配置:
net.ipv4.conf.all.send_redirects=0      # 禁用所有接口重定向
net.ipv4.conf.default.send_redirects=0  # 禁用默认接口重定向
net.ipv4.conf.ens33.send_redirects=0    # 禁用物理网卡重定向# 使配置立即生效
sysctl -p

配置意义:DR模式下调度器与真实服务器共享VIP,禁用重定向可避免内核尝试将响应包转发回调度器,导致路由混乱。

3.3 配置负载均衡策略
# 清除原有策略(首次配置可跳过)
ipvsadm -C# 添加集群服务(TCP协议,VIP:80端口)
ipvsadm -A -t 192.168.10.100:80 -s rr
# 参数说明:
# -A:添加集群服务
# -t:指定TCP协议
# -s rr:使用轮询(Round Robin)调度算法# 添加真实服务器节点1(-g表示DR模式)
ipvsadm -a -t 192.168.10.100:80 -r 192.168.10.102 -g -w 1
# 参数说明:
# -a:添加真实服务器
# -r:真实服务器IP
# -g:DR模式
# -w 1:权重1(可根据服务器性能调整)# 添加真实服务器节点2
ipvsadm -a -t 192.168.10.100:80 -r 192.168.10.103 -g -w 1# 保存策略到配置文件
ipvsadm-save > /etc/sysconfig/ipvsadm# 配置开机自启
systemctl enable ipvsadm

四、真实服务器节点配置

4.1 绑定VIP到lo接口
# 定义VIP变量(便于批量部署)
vip='192.168.10.100'# 临时添加VIP到lo:0接口(重启失效)
ip addr add $vip/32 dev lo label lo:0
# 说明:/32子网掩码指定为单播主机,仅本地生效# 临时添加本地路由(重启失效)
ip route add local $vip/32 dev lo
# 说明:确保访问VIP的数据包仅在本地处理,不参与网络路由# 配置永久生效(通过rc.local)
echo "ip addr add $vip/32 dev lo label lo:0" | tee -a /etc/rc.local
echo "ip route add local $vip/32 dev lo" | tee -a /etc/rc.local
chmod +x /etc/rc.local
4.2 调整ARP响应参数
# 编辑系统参数配置文件
vim /etc/sysctl.conf
# 添加以下配置:
net.ipv4.conf.all.arp_ignore=1        # 忽略非本地接口的ARP请求
net.ipv4.conf.all.arp_announce=2      # 限制ARP公告只使用本地接口地址
net.ipv4.conf.default.arp_ignore=1
net.ipv4.conf.default.arp_announce=2
net.ipv4.conf.lo.arp_ignore=1         # 特别配置lo接口
net.ipv4.conf.lo.arp_announce=2# 使配置立即生效
sysctl -p

核心作用

  • ​arp_ignore=1​​:当请求的IP地址不是本接口绑定的地址时,忽略ARP请求
  • ​arp_announce=2​​:强制使用指定接口的IP地址作为ARP响应源,避免真实服务器响应VIP的ARP请求,防止MAC地址冲突
4.3 部署Web服务与NFS挂载
# 安装HTTP服务
yum -y install httpd# 挂载NFS共享目录(示例路径)
mount 192.168.10.104:/opt/wwwroot /var/www/html
# 说明:共享存储确保多节点内容一致性# 创建测试网页
vim /var/www/html/index.html
# 内容示例:
<h1>LVS负载均衡群集--节点1测试网页</h1>
# 注意:节点2可修改为"节点2测试网页"用于区分# 启动HTTP服务并设置开机自启
systemctl start httpd
systemctl enable httpd

五、集群功能验证与性能测试

5.1 负载均衡效果验证
# 在调度器上查看当前负载分配状态
ipvsadm -ln
# 输出示例:
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.10.100:80 rr-> 192.168.10.102:80            Route   1      0          1-> 192.168.10.103:80            Route   1      0          1
# 关键指标说明:
# ActiveConn:当前活动连接数
# InActConn:非活动连接数
# Weight:节点权重
5.2 客户端访问测试
  1. 在浏览器中访问​​http://192.168.10.100​​,刷新页面观察内容是否在"节点1"与"节点2"测试页间切换
  2. 使用​​ab​​压力测试工具验证负载均衡效果:
ab -n 1000 -c 100 http://192.168.10.100/
# 参数说明:
# -n 1000:发送1000个请求
# -c 100:并发100个连接

六、LVS-DR模式应用场景

6.1 应用场景
  • 高并发静态资源服务(如图片、文件下载服务器集群)
  • 流量峰值明显的电商促销活动支撑
  • 对响应延迟敏感的API服务集群
6.2 生产环境优化建议
  1. 健康检查机制:结合keepalived实现调度器高可用,添加real server健康检查
  2. TCP参数优化:调整​​net.ipv4.tcp_fin_timeout​​等参数提升连接回收效率
  3. 网络优化:启用RSS(Receive Side Scaling)多队列技术,提升多核CPU处理能力
  4. 日志与监控:部署Prometheus+Grafana监控集群负载、连接数等核心指标

总结

LVS-DR模式通过二层转发设计,实现了"请求进、响应出"的高效流量路径,在不增加网络复杂度的前提下显著提升集群吞吐量。其核心配置要点在于:VIP共享机制的正确实现、ARP参数的精准调整、网络拓扑的严格遵循。

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

相关文章:

  • Spring Boot 整合 Spring Security
  • 后端项目中静态文案国际化语言包构建选型
  • 华为云Flexus+DeepSeek征文 | 基于Dify和DeepSeek-R1开发企业级AI Agent全流程指南
  • 什么是Docker容器?
  • 【Linux 基础知识系列】第三篇-Linux 基本命令
  • 探索C++模板STL
  • Vert.x学习笔记-EventLoop工作原理
  • AI赋能开源:如何借助MCP快速解锁开源项目并提交你的首个PR
  • 机房网络设备操作安全管理制度
  • 历年中国农业大学计算机保研上机真题
  • 深入详解DICOMweb:WADO与STOW-RS的技术解析与实现
  • 如何安全地清洁 Windows10/11PC上的SSD驱动器
  • 系统思考:经营决策沙盘
  • 知识图谱增强的大型语言模型编辑
  • 【Linux】vim编辑器
  • 服务器如何配置防火墙管理端口访问?
  • Ubuntu20.04服务器开启路由转发让局域网内其他电脑通过该服务器连接外网
  • 【仿muduo库实现并发服务器】实现时间轮定时器
  • 戴尔AI服务器订单激增至121亿美元,但传统业务承压
  • 24核32G,千兆共享:裸金属服务器的技术原理与优势
  • VRRP 原理与配置:让你的网络永不掉线!
  • Dify运行本地和在线模型
  • Oracle数据库性能优化的最佳实践
  • 【appium】环境安装部署问题记录
  • 达梦数据库——修改、删除物化视图
  • 腾讯云开发者社区文章内容提取免费API接口教程
  • TDengine 运维——巡检工具(安装工具)
  • TDengine 运维——巡检工具(安装前预配置)
  • 【QT】理解QT机制之“元对象系统”
  • Java 注解与反射(超详细!!!)