LVS 概念、原理、工作模式和调度算法

本文详细介绍了LVS(Linux Virtual Server)的概念,包括DS、RS、Client和其IP类型。接着,阐述了LVS基于四层的工作原理,描述了LVS在INPUT Hook Funtion中的角色。文章重点讨论了LVS的三种工作模式:NAT、DR和TUN,包括各自的特点和要求。此外,还探讨了LVS的调度算法,如轮询、加权轮询、源端哈希、目标端哈希等,并简单介绍了动态算法如最少连接、加权最少连接等。
摘要由CSDN通过智能技术生成

一、LVS概念
DS,director server,LVS服务器
RS,real server,LVS后端提供服务的服务器
Client,客户端,指使用LVS的用户
CIP,client IP,客户端IP,即lvs使用者的IP
VIP,virtual IP,LVS服务器给客户端提供的连接IP
DIP,director IP,用于和real server通讯的IP地址
RIP,real IP,后端服务器的IP

二、LVS工作原理
LVS是工作在四层的负载均衡器,LVS工作在INPUT Hook Funtion 上,当客户端请求到达LVS服务器,经过PREROUTING链发往INPUT链时,LVS会将用户请求和自己后端的集群服务进行对比,如果是已定义的集群服务,会修改数据包里的IP地址、MAC地址、端口等,然后将数据包发给POSTROUTING链。最后POSTROUTING链将数据包转发到后端服务集群。

三、LVS工作模式
1.LVS-NAT
1)达到LVS服务器PREROUTING链时,假设数据包源IP是CIP,目标IP是VIP;
2)LVS将数据包目标IP改成RIP,改造后的数据包源IP是CIP,目标IP是RIP;
3)LVS服务器将数据包从POSTROUTING链转发给后端服务节点(real server);
4)后端服务器(real server)处理完成后,响应返回给LVS服务器(real server网关要指向director server),数据包源IP是RIP,目标IP是CIP;
5)LVS服务器将real server的响应数据包源IP改为VIP,继而返回给客户端。
在这里插入图片描述

LVS-NAT特点和要求:
1)后端服务节点和LVS服务器必须在同一网络;
2)real server网关必须指向director server(LVS服务器);
3)由于director server作为中转站,负责接收客户端请求和转发后端服务节点的响应,容易成为系统瓶颈;
4)支持端口映射。

2.LVS-DR
1)达到LVS服务器PREROUTING链时,假设数据包源IP是CIP,目标IP是VIP;
2)LVS将数据包源MAC改为LVS服务器的MAC,目标MAC改为后端服务节点的MAC,而源IP和目标IP都不变;
3)LVS服务器将数据包从POSTROUTING链转发给后端服务节点(real server);
4)由于DS和RS在同一个网络中,所以直接通过MAC来传输;而在DR模式中,后端服务节点同样拥有和LVS同样的VIP(但是服务节点的VIP并不会用于ARP响应,所以客户端并不会直接连接后端服务节点),所以当数据包达到服务节点时,数据包的目标MAC和目标IP(此时仍然是VIP)服务节点对应,于是服务节点就会认为此数据包是发给自己的;
5)后端服务器(real server)处理完成后,响应返回,此时响应数据包源IP是VIP,目标IP是CIP,即服务节点直接把响应数据包发给客户端。
在这里插入图片描述

LVS-DR特点和要求:
1)LVS服务器和后端服务节点必须在同一物理网络,需要通过二层(MAC)通讯;
2)不支持端口映射;
3)后端服务节点网关不能指向LVS服务器;
4)RS上的lo接口配置VIP的IP地址。

3.LVS-TUN
1)达到LVS服务器PREROUTING链时,假设数据包源IP是CIP,目标IP是VIP;
2)LVS服务器修改数据包原有的信息,而是使用IP隧道技术,在数据包基础上再加一层信息,以DIP为源地址,RIP为目标地址;
3)LVS服务器将数据包从POSTROUTING链转发给后端服务节点(real server);
4)后端服务节点接受到数据包之后,拆除最外层IP信息,发现还有一层IP信息,源IP是CIP,目标IP是VIP,而在TUN模式下与DR类似,后端服务节点同样拥有和LVS相同的VIP但不响应ARP,所以后端服务节点收下这个由LVS转发来的数据包;
5)后端服务节点响应时,数据包源IP是VIP,目标IP是CIP;
6)后端服务节点响应时直接将数据包发给客户端。
在这里插入图片描述

LVS-TUN特点和要求:
1)CIP,VIP,RIP都是公网地址;
2)Realserver只能使用支持隧道功能的操作系统;
3)不支持端口映射;
4)Realserver使用自己的网关而不是Director;
5)与DR类似,LVS只负责接收客户端请求和转发,服务节点直接向客户端响应。

四、LVS调度算法
在LVS如何选择后端服务节点的算法上,有以下这些。
1.静态算法
rr,round robin,轮询,在后端各个服务节点间轮流调度,将请求均衡分发;
wrr,weighted round robin,加权轮询,轮询时根据各服务节点的权重分配连接,权重越高的节点,分配的请求越多,如节点A权重为1,节点B权重为2,理论上分配给节点B的请求时节点A的2倍;
sh,source hash,源端哈希,根据客户端地址进行哈希运算,分配到特点的服务节点,来自相同客户端的请求将会固定分配到相同的服务节点;
dh,destination hash,目标端哈希,根据请求的目标地址进行哈希,分配到特点的服务节点。
2.动态算法
lc,least connected,最少连接,LVS根据overhead = active256 + inactive计算服务器的负载状态,每次选择 overhead 最小的服务器;
wlc,weighted least connected,加权最少连接,LVS根据 overhead = (active
256+inactive)/weight 来计算服务器负载,每次选择overhead最小的服务器,是 LVS的默认调度算法;
sed,shorted expected delay,最短延迟,此算法忽略服务节点上空闲的连接,根据 overhead = (active+1)*256/weight计算服务器负载,选择 overhead 最小的服务器进行调度;
nq,never queue,不排队,如果有空闲服务器则马上分配,如果没有,则按照sed算法来调度;
lblc,locality based least connection,基于本地的最少连接,相当于dh+wlc,正常请求下使用dh算法进行调度,如果服务器超载,则使用wlc算法调度至其他服务器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值