下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

集群技术lvs的原理及调度算法详解

作者:课课家教育     来源: http://www.kokojia.com点击数:1122发布时间: 2019-01-23 20:28:33

标签: 集群技术LVSLinux

  本文主要讲的是lvs的原理以及调度算法,因此关于其他面的内容可能只是简单过一下,大家如果是和小编一样想要再进一步了解这两个lvs方面的内容可以仔细看看哦。

  lvs也就是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。

  LVS主要组成部分

  负载调度器(load balancer/ Director),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。

  服务器池(server pool/ Realserver),是一组真正执行客户请求的服务器,执行的服务一般有web、MAIL、FTP和DNS等。

  共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。

  LVS体系结构

      LVS虚拟服务器的体系如下图所示,一组服务器通过高速的局域网或者地理分布的广域网相互连接,在这组服务器之前有一个负载调度器(load balance)。负载调度器负责将客户的请求调度到真实服务器上。这样这组服务器集群的结构对用户来说就是透明的。客户访问集群系统就如只是访问一台高性能,高可用的服务器一样。客户程序不受服务器集群的影响,不做任何修改。

集群技术lvs的原理及调度算法详解_集群技术_LVS_Linux 

      LVS的基本工作原理

 LVS的基本工作原理 

  客户请发送向负载均衡服务器发送请求。负载均衡器接受客户的请求,然后先是根据LVS的调度算法(8种)来决定要将这个请求发送给哪个节点服务器。然后依据自己的工作模式(3种)来看应该如何把这些客户的请求如何发送给节点服务器,节点服务器又应该如何来把响应数据包发回给客户端。

  LVS的优缺点

  1.优点

  1开源,免费

  2在网上能找到一些相关技术资源

  3具有软件负载均衡的一些优点

  2.缺点

  1最核心的就是没有可靠的支持服务,没有人对其结果负责

  2功能比较简单,支持复杂应用的负载均衡能力较差,如算法较少等

  3开启隧道方式需重编译内核

  4配置复杂

  5主要应用于LINUX,目前没有专门用于Windows的版本,不过可以通过配置,使windows成为LVS集群中的real server(win2003、win2008中)

  LVS的三种工作模式

  1)VS/NAT模式(Network address translation)

  2)VS/TUN模式(tunneling)

  3)DR模式(Direct routing)

  LVS的调度算法

  LVS的调度算法共有十种,具体为以下:

  1.轮叫调度(Round Robin)(简称rr)

  调度器通过“轮叫”调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。

  2.加权最少链接(Weighted Least Connections)(WLC)

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

  3.最少链接(Least Connections)(LC)

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

  4.加权轮叫(Weighted Round Robin)(简称wrr)

  调度器通过“加权轮叫”调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器能处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

  5.基于局部性的最少链接(Locality-Based Least Connections)(LBLC)

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

  6.最短的期望的延迟(Shortest Expected Delay Scheduling SED)(SED)

  基于wlc算法。这个必须举例来说了

  ABC三台机器分别权重123 ,连接数也分别是123。那么如果使用WLC算法的话一个新请求进入时它可能会分给ABC中的任意一个。使用sed算法后会进行这样一个运算

  A(1+1)/1

  B(1+2)/2

  C(1+3)/3

  根据运算结果,把连接交给C 。

  7.带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)(LBLCR)

  “带复制的基于局部性最少链接”调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标 IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。

  8.源地址散列(Source Hashing)(SH)

  “源地址散列”调度算法根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

  9. 目标地址散列(Destination Hashing)(DH)

  “目标地址散列”调度算法根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

  10.最少队列调度(Never Queue Scheduling NQ)(NQ)

  无需队列。如果有台 realserver的连接数=0就直接分配过去,不需要在进行sed运算

  关于LVS的其他方面内容,比如其三种模式等,如果大家想看可以搜索来看,在我们课课家教育也有这方面的内容哦。本文就讲到这里了,感谢大家的支持!若是想要学习更多的内容,大家可以关注课课家教育的官方网站以及微信号【课课家IT精品】和【课课家】。

赞(18)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程