欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 基于LVS实现负载均衡,对NAT模式的介绍和使用案例

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

2025/5/8 18:39:26 来源:https://blog.csdn.net/ZHX2285/article/details/147748352  浏览:    关键词:基于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选项来查看当前负载均衡表的详细信息。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词