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

基于LVS实现负载均衡,对NAT模式的介绍和使用案例

一.LVS介绍【如果不去指定调度算法,那么LVS默认的调度算法就是wlc算法。】

LVS  linux虚拟服务

由国内章博士研发,在红帽5的时代发布。

作为Linux内核模块,基于内核工作。

LVS的调度算法:

1.rr轮询算法【优点:负载均衡的效果好,缺点:面对后端性能不同的服务器,会造成资源浪费。】

2.wrr基于权重的轮询 ,权重值就是阿拉伯数字,【缺点就是,给服务器大的权重值,虽然服务器的配置好,但是此时服务器的CPU使用率已经达到了百分之90多,并且此时其他的服务器的CPU还有大量空余。如果此时还使用基于权重的轮询,将大量的客户端请求转发到这个服务器,这个服务器会变得非常卡。】

会话保持方案:

a.会话共享存储,

b.换调度算法

3.lc最少连接, 哪个服务器的连接数最少,就将新的客户端请求交给哪个服务器进行处理。

4.wlc基于权重的最少连接:默认的调度算法。【即考虑服务器的配置,同时考虑服务器处理连接的连接数。】在接收客户端新请求的时候,挑选配置相对高,连接数量相对少的服务器来处理客户端请求。

5.sh  源地址hash【在一段时间之内将同一个客户端的请求,转交给同一个服务器进行处理,能够帮助我们廉价的解决会话保持问题。会很严重的破坏负载均衡效果。对客户端IP地址进行哈希运算。 】

6.dh算法,目的地址哈希hash,会对数据中的目的IP地址做哈希运算,【对服务器的IP地址进行哈希运算。能够很有效的提升缓存的命中率,客户端的访问效率也就高了,如果不同客户端请求的哈希运算结果一致的话,就将运算结果一致的客户端请求交给同一个服务器进行处理。】【主要用在后端服务器是缓存服务器的场景下。】

二.LVS工作模式

根据内部工作原理:

1.NAT模式

2.DR模式

3.TUN模式

NAT模式和DR模式的区别?【重点】

如上图所示,这是LVS的NAT模式的工作流程,这是一个负载均衡集群的结构,随后是两个调取器,调度器之后是一些servers服务器,接收请求是客户端到调度器到服务器,响应请求是服务器到调度器到客户端。

如上图所示,这是LVS的DR模式,接收请求是客户端到调度器到后端服务器,响应请求是服务器直接给客户端进行响应。【此时只有请求是经过调度器的,响应是直接给客户端的。】

以NAT模式构建负载均衡集群的时候,不建议后端的服务器的数量过多,如果后端的服务器的数量过多,请求和响应都要经过调度器,此时调度器的性能就会成为访问速度的瓶颈,造成客户端的访问效率降低。

以DR模式构建负载均衡集群的时候,请求是经过调度器的,响应是服务器直接返回给客户端的。

相对而言,后端服务器的数量可以比NAT模式的后端服务器的数量多一些。

1.LVS中的NAT模式

服务器的IP地址在整个集群中成为RIP地址。

调度器上面要有一个IP地址,用来和后端服务器进行通信,

调度器上面要有一个VIP地址,调度器基于这个VIP地址来提供虚拟服务,

客户端上面的IP地址成为CIP

客户端联系的是VIP地址,调度器通过DIP联系后端服务器来转发客户端请求。

核心要素:【重点,】

1.请求,响应都要经过调度器

2.调度器上的VIP和DIP需要分属于不同的网络。

 3.调度器要开启路由转发功能,实现两个网段之间的通信。

4.所有real  server  的网关地址需要指向调度器的DIP地址。

5.不建议后端服务器的数量过多。

此时有一个问题?

在响应客户端数据的时候,是服务器将数据返回给调度器,调度器再将数据返回给客户端,那么怎么使得服务器先把响应数据交给调度器?

需要把后端服务器的网关指定为调度器的DIP地址,那么之后服务器再往外发送数据的时候,需要先经过网关地址,此时后端服务器的网关地址就是调度器的DIP地址。

以LVS的NAT模式构建集群的话,建议后端的服务器的数量在20以内。

NAT模式的工作原理【重点,】

如上图所示,蓝色的是请求数据,黄色的是响应数据。

来自客户端的请求,目的IP地址会从VIP地址替换成服务器的RIP,

返回给客户端的响应,源IP地址会从RIP地址替换成调度器的VIP地址。

请求经过调度器时,目的IP会被转换为RIP

响应经过调度器时,源IP会被转换为VIP

FULLNAT【改进的NAT模式,但是Linux内核不支持,需要手动修改服务器内核代码。使得Linux操作系统支持这个FULLNAT模式。】

蓝色的还是客户端的请求,黄色的是返回给客户端的响应。

2.NAT模式案例

1.配置调度器地址【一个vip地址,一个DIP地址,不同网段。两块网卡】

2.配置real server地址,注意网关【指定为调度器的DIP地址。】

3.在后端real server 安装httpd,建立测试网页。

4.安装ipvsadm工具。【在调度器上。对LVS软件进行管理。】

5.开启调度器的路由转发功能。

如上图所示,将这个net.ipv4.ip_forward = 0的值改为1

想要体现出负载均衡的效果,可以给后端服务器不同的测试页面。当显示出不同的测试页面的时候,就证明负载均衡成功。

如上图所示,这是永久修改系统参数,开启调度器的路由转发功能。

6.添加虚拟服务,创建集群

如上图所示,这就是创建了一个虚拟服务,一个调度器上面是可以启用多个虚拟服务的。

-A 向LVS配置中新增一个虚拟服务。

-t指定虚拟服务类型是TCP类型,并且绑定这个虚拟服务与后续的IP地址和端口。

-s定义负载均衡算法,控制请求分发到后端服务器的策略。

功能:在 LVS 集群中创建一个 TCP 虚拟服务,监听 192.168.146.100:80,并采用轮询(rr)算法实现负载均衡。
使用场景:当客户端访问 192.168.146.100:80 时,LVS 会根据轮询策略将请求依次转发到后端的真实服务器(需额外配置真实服务器列表)。

如上图所示,这是用来查看负载均衡表,查看调度器上有哪些虚拟服务,以及后端的real  server

如果要修改轮询的算法的话,将-A选项修改为-E选项就是修改

7.添加real  server信息

如上图所示,这是给这个调度器上的虚拟服务添加real  server信息,随后查看负载均衡表,可以看到当前负载均衡集群的信息。

也就是说,将来当这个192.168.149.100:80这个虚拟服务接收到请求后,会按照轮询算法,向后端的real server转发服务。

这里的-m代表的是以NAT模式创建负载均衡集群。

可以使用-w来给后端的real server服务器添加权重。

8.测试访问

这个负载均衡集群搭建好之后,测试访问需要使用调度器的VIP地址来访问服务。

如上图所示,这是访问vip地址的80端口服务,此时出现web01和web02轮询出现,代表按照轮询算法的负载均衡集群搭建成功。

如上图所示,我们可以到调度器上使用-c选项来查看当前负载均衡表的详细信息。

相关文章:

  • 模型中台建设全流程指南
  • 体育培训的实验室管理痛点 质检LIMS如何重构体育检测价值链
  • 经典密码学算法实现
  • [20250507] AI边缘计算开发板行业调研报告 ​​(2024年最新版)​
  • STM32的看门狗
  • C/C++ Python绑定工具: nanobind 使用指南与示例
  • 如何用命令行判断一个exe是不是c#wpf开发的
  • 金融企业如何借力运维监控强化合规性建设?
  • Linux系列:如何用perf跟踪.NET程序的mmap泄露
  • 点云采集学习个人记录
  • Mkdocs文档引用相对地址的一些问题
  • 从D盘分配空间为C盘扩容?利用工具1+1>2
  • uni-app实现完成任务解锁拼图功能
  • MySQL OCP和Oracle OCP怎么选?
  • POI处理EXCEL
  • 51camera将参加第九届沥青路面论坛暨新技术新成果展示会
  • LeetCode 347 前 K 个高频元素
  • Word如何制作三线表格
  • HDMI布局布线
  • AI大模型基础设施:NVIDIA GPU和AMD MI300系列的区别
  • 数说母亲节|全球11亿女性进入更年期,“不是忍忍就好”
  • 理财经理泄露客户信息案进展:湖南省检受理申诉,证监会交由地方监管局办理
  • 江西暴雨强对流明显,专家:落雨区高度重叠,地质灾害风险高
  • 习近平出席俄罗斯纪念苏联伟大卫国战争胜利80周年庆典
  • 开局良好,我国第一季度广告业务收入保持较快增速
  • 习近平同俄罗斯总统普京举行会谈