LVS 十种算法

LVS虚拟服务器是章文嵩在国防科技大学就读博士期间创建的,LVS可以实现高可用的、可伸缩的网络服务。

LVS集群组成:

前端:负载均衡层  (一台或多台负责调度器构成)

中间:服务器群组层  (由一组实际运行应用服务的服务器组成)

底层:数据共享存储层  (提供共享存储空间的存储区域)

Director Server:调度服务器

Real Server:真是服务器

VIP:虚拟IP地址

RIP:真实IP地址

DIP:调度器连接节点服务器的IP地址

LVS工作模式

NAT模式: 通过网络地址转换实现的虚拟服务器,重点在于调度器进调度器出,在大并发访问时,调度器的性能成为瓶颈。

DR模式: 直接使用路由技术实现虚拟服务器,节点服务器需要配置VIP,需要控制MAC地址广播(后端真实服务器不宣告不回应)相对于NAT模式来说较麻烦。

TUN隧道模式: 通过隧道方式实现虚拟服务器。

 

LVS目前实现了10种调度算法:

常用算法有五种:轮询(Round Robin),加权轮询(Weighted Round Robin),最少连接(Least Connections),加权最少连接(Weighted Least Connections),源地址散列(Source Hashing)

轮询(Round Robin)RR: 将客户端请求平均分发到Real Server。

加权轮询(Weighted Round Robin)WRR:根据Real Server 权重值进行轮询的调度。

最少连接(Least Connections)LC:选择连接最少的服务器。

,加权最少连接(Weighted Least Connections)WLC:根据Real Server 权重值,选择连接数最少的服务器。

源地址散列(Source Hashing)SH:根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器。

目标地址散列调度(Destination Hashing ) DH:与SH相反的是,DH根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器。

其他调度算法:

基于局部性的最少链接(Locality-Based Least Connections)LBLC:主要是针对请求报文的目标IP地址的负载均衡调度,目前主要使用Cache集群系统。LBLC调度算法先根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器时可以用的且没有超载,将请求发送到该服务器,若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则使用“LC最少连接”的原则选出一个可用的服务器,将请求发送到服务器。

带复制的基于局部性的最少连接(Locality-Based Least Connections with Replication)LBLCR:算法也是针对目标IP地址的负载均衡,目前也主要用于Cache集群系统。它与LBLC算法不通之处时它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。

最短的期望的延迟调度(Shortest Expected Delay) SED:SED基于WLC算法,将请求以最短的期望的延迟方式到服务器,计算当前realserver 的负载情况计算方法:(active+1)*256/weight=overhead。

最少队列调度(Never Queue)NQ:如果realserver的连接数等于0就直接分配到该服务器,但是此服务器并不一定是最快的那台,如果所有服务器都是繁忙状态,它采取最短的期望延迟分配请求。

posted @ 2019-10-06 14:22  不愿透露姓名的先生  阅读(762)  评论(0编辑  收藏  举报