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

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参数的精准调整、网络拓扑的严格遵循。

相关文章:

LVS-DR 负载均衡集群

目录 一、简介 1.1 LVS-DR工作原理核心特性 1.2 数据包流向深度解析 二、实验环境准备与规划 三、LVS调度器配置实战 3.1 绑定虚拟IP地址&#xff08;VIP&#xff09; 3.2 调整内核参数禁用重定向 3.3 配置负载均衡策略 四、真实服务器节点配置 4.1 绑定VIP到lo接口 …...

基于Java,SpringBoot,Vue,UniAPP宠物洗护医疗喂养预约服务商城小程序管理系统设计

摘要 随着宠物经济的快速发展&#xff0c;宠物主对宠物服务的便捷性、专业性需求日益增长。本研究设计并实现了一套宠物洗护医疗喂养预约服务小程序系统&#xff0c;采用 Java 与 SpringBoot 构建后端服务&#xff0c;结合 Vue 开发管理后台&#xff0c;通过 UniAPP 实现多端适…...

中车靶场,网络安全暑期实训营

不善攻防&#xff0c;何谈就业&#xff1f; 实训目的&#xff1a;提升实战能力&#xff0c;直通就业快道。 实训对象&#xff1a;面向计算机相关专业、有兴趣接触网络攻防、大专及以上学历的学员。 知识准备 为确保高效实训&#xff0c;学员需具备一定的实战基础。报名后&am…...

2.2.2 06年T1

成功的同化机器——美国&#xff1a;2006年考研英语&#xff08;一&#xff09;Text 1精析 本文解析2006年考研英语&#xff08;一&#xff09;第一篇文章&#xff0c;揭示美国社会强大的文化同化力及其表现。 一、原文与翻译 Paragraph 1&#xff1a;美国社会的同化本质 L1: …...

split_conversion将json转成yolo训练用的txt,在直接按照8:1:1的比例分成训练集,测试集,验证集

第一章 使用说明 类别自己在代码中改&#xff0c;其他四个参数 --json-folder:json文件夹路径 --txt-folder&#xff1a;转换成功后txt的存放路径 --images-dir&#xff1a;图片文件夹路径 --save-dir&#xff1a;转换完成分割后所有文件的路径 终端命令行&#xff1a;p…...

响应式系统与Spring Boot响应式应用开发

响应式系统概述 过去十年间,为应对移动和云计算的需求,软件行业通过改进开发流程来构建更稳定、健壮且灵活的软件系统。这种演进不仅服务于传统用户端(桌面/Web),还需支持多样化设备(手机、传感器等)。为应对这些挑战,多个组织共同制定了《响应式宣言》(2014年发布)…...

【第1章 基础知识】1.8 在 Canvas 中使用 HTML 元素

文章目录 前言示例-橡皮筋式选取框示例代码 前言 尽管我们可以说 Canvas 是 HTML5 之中最棒的功能&#xff0c;不过在实现网络应用程序时&#xff0c;很少会单独使用它。在绝大多数情况下&#xff0c;你都会将一个或更多的 canvas 元素与其他 HTML 控件结合起来使用&#xff0…...

c++流之sstream/堆or优先队列的应用[1]

目录 c流之sstream 解释 注意事项 215.数据流的第k大 问题分析 修正代码 主要修改点 优先队列的比较规则 代码中的比较逻辑 为什么这样能维护第 k 大元素&#xff1f; 举个例子 总结 Python 实现&#xff08;使用heapq库&#xff09; Java 实现&#xff08;使用P…...

SAR ADC 比较器噪声分析(二)

SAR ADC的比较器是非常重要的模块&#xff0c;需要仔细设计。主要考虑比较器的以下指标&#xff1a; 1)失调电压 2)输入共模范围 3)比较器精度 4)传输延时 5)噪声 6)功耗 这里主要讲一下动态比较器的noise。 动态比较器一般用于高速SAR ADC中&#xff0c;且精度不会超过12bit…...

c#与java的相同点和不同点

C# 和 Java 是两大主流的、面向对象的、托管型编程语言&#xff0c;它们共享许多相似的设计理念和语法&#xff0c;但也在细节、生态系统和运行平台上存在显著差异。以下是它们的相同点和不同点的详细对比&#xff1a; 一、相同点 (核心相似之处) 语法高度相似&#xff1a; 都源…...

phpmyadmin

安装PHPMyAdmin PHPMyAdmin通常可通过包管理器安装或手动部署。对于Linux系统&#xff08;如Ubuntu&#xff09;&#xff0c;使用以下命令安装&#xff1a; sudo apt update sudo apt install phpmyadmin安装过程中会提示选择Web服务器&#xff08;如Apache或Nginx&#xff0…...

机器学习Day5-模型诊断

实现机器学习算法的技巧。当我们训练模型或使用模型时&#xff0c;发现预测误差很 大&#xff0c;可以考虑进行以下优化&#xff1a; &#xff08;1&#xff09;获取更多的训练样本 &#xff08;2&#xff09;使用更少的特征 &#xff08;3&#xff09;获取其他特征 &#xff…...

如何将 WSL 的 Ubuntu-24.04 迁移到其他电脑

在使用 Windows Subsystem for Linux (WSL) 时&#xff0c;我们可能会遇到需要将现有的 WSL 环境迁移到其他电脑的情况。无论是为了备份、更换设备&#xff0c;还是在不同电脑之间共享开发环境&#xff0c;掌握迁移 WSL 子系统的方法都是非常有用的。本文将以 Ubuntu-24.04 为例…...

金融欺诈有哪些检测手段

金融欺诈检测是一个多层次的动态防御过程&#xff0c;需要结合技术手段、数据分析、人工智能和人工审核。以下是当前主流的检测手段和技术分类。 ### **一、核心技术手段** 1. **规则引擎&#xff08;Rule-Based Systems&#xff09;** - **原理**&#xff1a;预设基于历史…...

HTML5 全面知识点总结

一、HTML 基础概念 HTML&#xff1a;超文本标记语言&#xff0c;用于创建网页和 Web 应用的结构。 超文本&#xff1a;可以包含文字、图片、音频、视频、链接等多种媒体。 标记语言&#xff1a;通过标签标记网页的各个部分。 二、HTML5 的新特性&#xff08;区别于 HTML4&am…...

vscode一直连接不上虚拟机或者虚拟机容器怎么办?

1. 检查并修复文件权限 右键点击 C:\Users\20325\.ssh\config 文件&#xff0c;选择 属性 → 安全 选项卡。 确保只有你的用户账户有完全控制权限&#xff0c;移除其他用户&#xff08;如 Hena\Administrator&#xff09;的权限。 如果 .ssh 文件夹权限也有问题&#xff0c;同…...

初学c语言21(文件操作)

一.为什么使用文件 之前我们写的程序的数据都是存储到内存里面的&#xff0c;当程序结束时&#xff0c;内存回收&#xff0c;数据丢失&#xff0c; 再次运行程序时&#xff0c;就看不到上次程序的数据&#xff0c;如果要程序的数据一直保存得使用文件 二.文件 文件一般可以…...

数学复习笔记 21

4.15 稍微有点难啊。克拉默法则忘掉了&#xff0c;然后第二类数学归纳法是第一次见。行列式和矩阵&#xff0c;向量和方程组。这是前面四章。现在考研只剩下一个大题。所以就是考最后两章&#xff0c;特征值和二次型。感觉看网课的作用就是辅助理解&#xff0c;自己看书的话&am…...

华为OD机试真题——数据分类(2025B卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现

2025 B卷 100分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 本文收录于专栏:《2025华为OD真题目录+全流程解析/备考攻略/经验分享》 华为OD机试真题《数据…...

JavaWeb开发基础Servlet生命周期与工作原理

Servlet生命周期 Servlet的生命周期由Servlet容器(如Tomcat、Jetty等)管理&#xff0c;主要包括以下5个阶段&#xff1a; 加载Servlet类 创建Servlet实例 调用init方法 调用service方法 调用destroy方法 加载(Loading)&#xff1a; 当Servlet容器启动或第一次接收到对某个…...

三防平板科普:有什么特殊功能?应用在什么场景?

在数字化浪潮席卷全球的今天&#xff0c;智能设备已成为现代工业、应急救援、户外作业等领域的核心工具。然而&#xff0c;常规平板电脑在极端环境下的脆弱性&#xff0c;如高温、粉尘、水浸或撞击&#xff0c;往往成为制约效率与安全的短板。三防平板&#xff08;防水、防尘、…...

百度外链生态的优劣解构与优化策略深度研究

本文基于搜索引擎算法演进与外链建设实践&#xff0c;系统剖析百度外链的作用机制与价值模型。通过数据统计、案例分析及算法逆向工程&#xff0c;揭示不同类型外链在权重传递、流量获取、信任背书等维度的差异化表现&#xff0c;提出符合搜索引擎规则的外链建设技术方案&#…...

笔记: 在WPF中ContentElement 和 UIElement 的主要区别

一、目的&#xff1a;简要姐扫在WPF中ContentElement 和 UIElement 的主要区别 ContentElement 和 UIElement 是 WPF 中的两个基类&#xff0c;它们在功能和用途上有显著的区别。 二、主要区别 ContentElement 主要特点: • 没有视觉表示: ContentElement 本身不直接渲染任…...

项目中使用到了多个UI组件库,也使用了Tailwindcss,如何确保新开发的组件样式隔离?

在项目中使用多个组件库&#xff0c;同时使用 TailwindCSS&#xff0c;确保新开发的组件样式隔离是非常重要的。样式隔离可以避免样式冲突、全局污染以及意外的样式覆盖问题。以下是一些常见的策略和最佳实践&#xff1a; 1. 使用 TailwindCSS 的 layer 机制 TailwindCSS 提供…...

AI提示工程(Prompt Engineering)高级技巧详解

AI提示工程(Prompt Engineering)高级技巧详解 文章目录 一、基础设计原则二、高级提示策略三、输出控制技术四、工程化实践五、专业框架应用提示工程是与大型语言模型(LLM)高效交互的关键技术,精心设计的提示可以显著提升模型输出的质量和相关性。以下是经过验证的详细提示工…...

【速写】PPOTrainer样例与错误思考(少量DAPO)

文章目录 序言1 TRL的PPO官方样例分析2 确实可行的PPOTrainer版本3 附录&#xff1a;DeepSeek关于PPOTrainer示例代码的对话记录Round 1&#xff08;给定模型数据集&#xff0c;让它开始写PPO示例&#xff09;Round 2 &#xff08;指出PPOTrainer的参数问题&#xff09;关键问题…...

5.26 面经整理 360共有云 golang

select … for update 参考&#xff1a;https://www.cnblogs.com/goloving/p/13590955.html select for update是一种常用的加锁机制&#xff0c;它可以在查询数据的同时对所选的数据行进行锁定&#xff0c;避免其他事务对这些数据行进行修改。 比如涉及到金钱、库存等。一般这…...

中国移动咪咕助力第五届全国人工智能大赛“AI+数智创新”专项赛道开展

第五届全国人工智能大赛由鹏城实验室主办&#xff0c;新一代人工智能产业技术创新战略联盟承办&#xff0c;华为、中国移动、鹏城实验室科教基金会等单位协办&#xff0c;广东省人工智能与机器人学会支持。 大赛发布“AI图像编码”、“AI增强视频质量评价”、“AI数智创新”三大…...

模具制造业数字化转型:精密模塑,以数字之力铸就制造基石

模具被誉为 “工业之母”&#xff0c;是制造业的重要基石&#xff0c;其精度直接决定了工业产品的质量与性能。在工业制造向高精度、智能化发展的当下&#xff0c;《模具制造业数字化转型&#xff1a;精密模塑&#xff0c;以数字之力铸就制造基石》这一主题&#xff0c;精准点明…...

PECVD 生成 SiO₂ 的反应方程式

在PECVD工艺中&#xff0c;沉积氧化硅薄膜以SiH₄基与TEOS基两种工艺路线为主。 IMD Oxide&#xff08;USG&#xff09; 这部分主要沉积未掺杂的SiO₂&#xff0c;也叫USG&#xff08;Undoped Silicate Glass&#xff09;&#xff0c;常用于IMD&#xff08;Inter-Metal Diele…...