且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

LVS三种模式与八种调度算法

更新时间:2022-05-12 23:05:01

三种LVS负载均衡模式

1.NAT模式
网络地址转换,工作在网络层(三层),只有VIP是公网IP,其余都是私网IP,Real Server指定LVS为网关,LVS开启路由转发,
源和目标地址转换,数据的进出期间,无论是进来的流量,还是出去的流量,都必须经过DR,产生一种瓶颈,适合小网络,规模10台左右。

LVS三种模式与八种调度算法

工作原理:

1>.用户发送请求报文到LVS的VIP上,VIP选择一个Real Server,并记录连接信息到hash表中,然后修改用户的请求报文的目的IP地址为Real Server的地址,将请求发给Real Server;

2>.Real Server收到请求报文包后,发现目的IP是自己的IP,于是处理请求,然后发送reply给LVS;

3>.LVS收到reply包后,修改reply包的的源地址为VIP,发送给用户;

4>.从用户来的属于本次连接的包,查hash表,然后发给对应的Real Server。

5>.当用户发送完毕,此次连接结束或者连接超时,那么LVS自动从hash表中删除此条记录。

2.DR模式

直接路由模式,工作TCP/IP数据链路层(二层),必须都是公网ip,要求是同网段(因为DR是转发给RS的,是在数据链路层实现的,DR要对二层包头进行改换,所以DRReal Server必须在一个广播域下)。不需要路由转发。需要关闭arp解析(抑制arp帧),客户请求处理后直接返回给客户。规模几十台左右。

LVS三种模式与八种调度算法

工作原理:

1>.当一个用户发送一个WEB请求到VIP;

2>.LVS服务器根据VIP选择对应的Real Server的Pool,根据算法,在Pool中选择一台Real Server,并将这台Real Server的MAC地址作为目的MAC地址,重新将IP包封装成帧转给Real Server,LVS在hash表中记录该次连接;

3>.然后将用户的请求包发给选择的Real Server;

4>.最后选择的Real Server把应答包直接传给用户;

5>.当用户继续发包过来时,LVS根据更才记录的hash表的信息,将属于此次连接的请求直接发到刚才选择的Real Server上;当连接中止或者超时,hash表中的记录将被删除。

3.IP隧道模式

ip-tun模式,工作在网络层(三层),网卡需要具备tun隧道协议网卡,系统支持ip隧道,增加了数据传输时间,必须都是公网ip,可以是不同网段,跨路由,分散互联网不同位置,不需要路由转发。规模几十台左右。

LVS三种模式与八种调度算法

工作原理:

1>用户发送请求报文包到LVS服务器的VIP上。

2>.VIP按照算法选择后端的一个Real Server,将用户的请求报文包封装到一个新的IP包里,新IP包的目的IP是Real Server的IP,然后转发给Real Server,并将记录一条消息到hash表中。

3>.Real Server收到包后,解封装,取出用户的请求报文包,发现他的目的地址是VIP,而Real Server发现在自己的lo:0口上有这个IP地址,于是处理用户的请求,然后将relpy这个请求报文包直接发给用户。

4>.该用户的后面的请求报文包,LVS直接按照hash表中的记录直接转发给Real Server,当传输完毕或者连接超时,那么将删除hash表中的记录。


LVS负载均衡的八种调度算法

1.轮叫rr(Round-RobinScheduling)
将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。

2.加权轮叫wrr(WeightedRound-RobinScheduling)
根据真实服务器的不同处理能力来调度访问请求这样可以保证处理能力强的服务器处理更多的访问流量调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

3.最小连接lc(Least-ConnectionScheduling)
动态地将网络请求调度到已建立的链接数最少的服务器上,如果集群系统的真实服务器具有相近的系统性能,采用"最小连接"调度算法可以较好地均衡负载。

4.加权最小连接wlc(WeightedLeast-ConnectionScheduling)
在集群系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

5.基于局部性的最少链接(Locality-BasedLeastConnectionsScheduling)
针对目标IP地址的负载均衡,将请求的目标IP地址找到离其最近的服务器进行使用,如果服务器不存在或者满载的话,就会继续寻找下一个服务器。

6.带复制的基于局部性最少链接(Locality-BasedLeastConnectionswithReplicationScheduling)
针对目标IP地址的负载均衡,根据请求的目标IP地址找出该地址所对应的服务器,如果服务器不存在或者满载的话,就会继续寻找下一个服务器。当服务器有一段时间没有被修改,则会从最忙的服务器组中删除。

7.目标地址散列(DestinationHashingScheduling)
根据请求的目标IP地址从静态分配的散列表中超出对应的服务器,如果找到可用的服务器且没有满载,则返回空。

8.源地址散列(SourceHashingScheduling)

根据请求的源IP地址从静态分配的散列表中超出对应的服务器,如果找到可用的服务器且没有满载,则返回空。