设为首页 收藏本站
查看: 1184|回复: 0

[经验分享] lvs十种调度策略+三种模式

[复制链接]

尚未签到

发表于 2019-1-6 06:55:07 | 显示全部楼层 |阅读模式
LVS负载均衡
负载均衡技术(模式):
1、lvs-DR(direct routing)直接路由模式:客户进来的请求先经过调度器,然后再丢给服务器,最后由服务器直接发送请求给客户端(不需要再次经过调度器,这个可以跟很多服务器,因为它回应请求不需要经过调度器)。一般是在公司,就是同一网络里用。 性能好,安全性差。但这个用的最多。
DSC0000.jpg
2、LVS-NAT(Network address translation):  客户进来的请求先经过调度器,然后再丢给服务器,接着服务器再把请求丢给调度器,从而最后是由调度器来回应给客户端。(这样的话,调度器比较忙,所以调度器后面不能跟太多服务器,3-5台即可,这个ddos***的时候相对来说更安全一些,因为服务器没有直接暴露在外面,是隐藏在调度器后面,相对性能会差一些)
   DSC0001.jpg

3、LVS-TUN(IP tunneling):隧道模式 :  起到备份或是cdn加速的功能。备份:例如有3台服务器,其中一台坏掉了,那么请求就会分给其他两台服务器。cdn加速:北京的请求就分给北京的服务器,上海的请求就分给上海的服务器,武汉的就分给武汉的服务器,这样来平均负载。用的最少
           lvs的IP地址类型
DSC0002.jpg
调度算法
lvs分为静态(四种)与动态(六种)
DSC0003.jpg



轮循调度(rr)
:将外部请求按顺序轮流分配到集群中的真实服务器上,它均衡的对待每一台服务器,而不管服务器上实际的连接数和负载数。
优点:速度快,将外部请求按顺序轮流分配到集群中的真实服务器上。
缺点:不管服务器上实际的连接数和负载数。权重无效,因为不管怎么设置,它总是均衡的将外部请求按顺序轮流分配到集群中的真实服务器上。
加权轮循(wrr):
数字越大,权重越高:调度算法根据真实服务器的不同处理能力来调度访问请求,这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的附载情况,并动态的调整其权重值。
优点:可根据服务器的性能来设置权重,从而达到负载。
缺点:不管服务器忙与不忙,都会按照你之前的权重来进行负载访问。
根据权重来判断。
DSC0004.jpg


目标地址散列(DH)
:根据请表求的目标ip地址,作为散列键(hash key) 从静态分配的散列表找出对应的服务器,若服务器是可用的且未超载,将请求发送到服务器,否则返回空。(相当于给wrr策略做了一次扩展)
优点:1、首先根据权重来访问哪一个服务器,然后第一个请求访问服务器后,接着只要是这个ip进行的访问,都会在这个服务器上,有缓存来进行加速访问。2、原客户端ip进行访问的同时,不会去跑到第二个服务器上。
缺点:不管你忙与不忙,都会按照你之前的权重来进行访问。后端所跟的服务器不会太多,否则director server的压力就会变得过大。
源地址散列(SH)
:根据请表求的源ip地址,作为散列键(hash key) 从静态分配的散列表找出对应的服务器,若服务器是可用的且未超载,将请求发送到服务器,否则返回空。(从哪个接口出去,再从哪个接口回来,相当于给rr做了次扩展)
Iptables里有个状态跟踪,必须从哪个网关(接口)出去,再从哪个网关(接口)回来,否则这个状态就会没有意义。这个也是一样,必须是从哪个接口出去,再从哪个接口回来。(目的保证)
静态的有缓存,而动态的没有,静态的比较笨一些,动态的智能一些。
DSC0005.jpg



1、最少链接:(LC):
根据活动连接数与非活动链接数的总和进行判断。
活动连接:请求服务访问,例如提交数据或是在往数据库里写东西的时候。
非活动连接:例如:已经建立起3次握手了。在访问网页的同时,停留在网页中,不提交数据或是不写数据的时候。
连接数=活动连接数+非活动连接数 来判断的
开销:最后计算请求书哪个最小就丢给谁
DSC0006.jpg


Server1:共有1000个请求(例如),900个变成非活动连接,100个活动连接,就是用100*256+900(非活动连接)
Server2:共有1000个请求,结果全部成为非活动连接(都走了)0*256+1000(非活动连接)
根据以上算法,来判断哪个请求较少,谁小就丢给谁。
2、加权最少链接:(WLC):
不设置调度算法,默认是wlc,(开销除以权重(100*256+900)/3),
还是拿上面的那个例子说
Server1:权重是3  (100*256+900)/3
Server2:权重是1   (0*256+1000)/1
谁少就丢给谁。



3、基于局部性的最少链接(LBLC):
在DH的基础上做微调,简单的说就是把DH做成动态调度算法。
DH:访问一个请求的时候,会一直在第一次访问时的那台服务器上。
而LBLC就是尽量让它在第一次访问的服务器上,但如果发现访问的原来第一次服务器上的数据过大时,它便会去其它的服务器上。
算发还是用的WLC的算法。
4、带复制的基于局部性最少链接(LBLCR):

简单说就是又在LBLC的基础上做的微调,把自己已有的缓存复制给别人(缓存共享)


5、最短的期望的延迟(SED):在WLC的基础之上做的微调。
不考虑非活动连接数,只考虑活动连接数。(这种指的是特殊情况下做的微调)
例如:活动连接请求都为0
Server1:权重是1   (0+1)*256/1=256
Server2:权重是10  (0+1)*256/10=25.6
当数据少的时候使用这个
活动连接+1(加1目的是为了让它有误差,当连接数少的时候会有突出)*256除以权重
这样的目录就是为了当一台服务器的权重过高时,为了减少权重高一些的服务器的压力,让权重低的服务器帮忙也分担一些出来。
6、最少队列调度(NQ):只要是服务器端活动链接数为零,就丢给活动链接数为零的那台服务器。(这种是特殊情况下做的微调)




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-659787-1-1.html 上篇帖子: RHEL6平台LVS实现负载均衡Load Balancer 下篇帖子: LVS基础详解和NAT/DR模型的实现
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表