系统运维 LVS的四种模型和十种调度算法 LVS简介 LVS:Linux Virtual Server,负载调度器,内核集成,章文嵩(花名 正明) LVS的工作原理 VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS LVS集群类型的专业术语 VS:Virtual Server 虚拟的服务器 RS:Real Server(lvs) 真正提供服务的服务器 CIP:Client IP 客户端的IP VIP: Virtual serve IP LVS服务器针对互联网的客户端设置的IP,是虚拟IP DIP: Director IP 局域网内LVS服务器设置的IP RIP: Real server IP 真实服务器的IP LVS服务器,客户端访问流程图 LVS-NAT模式 本质是多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发 (1)RIP和DIP应在同一个IP网络,且应使用私网地址;RS的网关要指向DIP (2)请求报文和响应报文都必须经由Director转发,Director易于成为系统瓶颈 (3)支持端口映射,可修改请求报文的目标PORT (4)VS必须是Linux系统,RS可以是任意OS系统 LVS-NAT的实现逻辑 如上图所示,客户端通过路由去访问LVS对外开放的VIP,当LVS收到请求报文时,会将其拦截下来,通过自身的DIP将请求报文传给其中的一台RS服务器(DIP和RIP需要在同一个局域网,同一个网段)。RS服务器收到请求报文后,发送响应报文通过LVS服务器发送给客户端(相当于怎么来的就怎么回去)。在用户访问的过程中,LVS服务器实际上是对VIP进行了地址转换,转换成了正式服务器的IP,从而实现互相通讯。 NAT模式IP包调度过程 NAT模式内部的工作原理图 LVS服务器之所以能实现将发送给自己的数据包转交给其他主机,是因为LVS是潜伏在钩子函数INPUT这里,一旦发现有用户访问的数据包通过PREROUTING后发送给INPUT,LVS会将其截获下来,改变目标地址为真实服务器的地址,转而发给POSTROUTING,从而发送给真实服务器,实现调度转发的功能。 LVS-NAT模式的优缺点 1、NAT技术将请求的报文和响应的报文都需要通过LVS进行地址改写,因此网站访问量比较大的时候LVS负载均衡调度器有比较大的瓶颈,一般要求最多之能10-20台节点 2、只需要在LVS上配置一个公网IP地址就可以了。(也可以通过iptables规则实现NAT,这样私网地址也可以的) 3、每台内部的节点服务器的网关地址必须是调度器LB的内网地址。(如果LVS的DIP和RIP在同一个局域网并且在同一个网段,不需要指定网关) 4、NAT模式支持对IP地址和端口进行转换。即用户请求的端口和真实服务器的端口可以不一致 LVS-DR模式(直接路由) LVS-DR:Direct Routing,直接路由,LVS默认模式,应用最广泛,通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变 DR模型,请求报文,和响应报文走的不是同一个路径,请求报文经过LVS发送给RS,响应报文在回应的时候,不需要原路返回,它可以直接返回给客户端。 这种模型带来的最大的好处就是LVS服务i去的压力变小了。因为只有请求报文需要通过VS服务器发送给RS服务器,而RS服务器的响应报文是直接发送给客户端的,不需要经过LVS服务器。而且一般请求报文相对响应报文来说要小的多。这样就使得LVS的服务器的压力小了很多。 LVS-DR模式图解 因为RS服务器需要直接将请求报文发送给客户端,而客户端访问的IP是VIP,只有来自VIP的包客户端才会接收,所以我们需要在RS服务器上也配置VIP。但是这样的话LVS和RS都有了一样的IP,这样就会带来地址冲突的问题。我们需要解决地址冲突的问题。 我们需要在RS上修改内核参数以限制arp通告及应答级别 /proc/sys/net/ipv4/conf/all/arp_ignore /proc/sys/net/ipv4/conf/all/arp_announce DR模型特点:LVS的压力小,通过改变MAC地址来实现调度转发,不能映射端口号。 LVS-DR模式数据包流转的过程 LVS-TUN模式 转发方式:不修改请求报文的IP首部(源IP为CIP,目标IP为VIP),而在原IP报文之外再封装一个IP首部(源IP是DIP,目标IP是RIP),将报文发往挑选出的目标RS;RS直接响应给客户端(源IP是VIP,目标IP是CIP) (1) DIP, VIP, RIP都应该是公网地址 (2) RS的网关一般不能指向DIP (3) 请求报文要经由Director,但响应不经由Director (4) 不支持端口映射 (5) RS的OS须支持隧道功能 LVS-TUN体系结构 LVS-TUN的IP包调度过程 LVS-FULLNAT模式 lvs-fullnat:通过同时修改请求报文的源IP地址和目标IP地址进行转发 CIP –> DIP VIP –> RIP (1) VIP是公网地址,RIP和DIP是私网地址,且通常不在同一IP网络;因此,RIP的网关一般不会指向DIP (2) RS收到的请求报文源地址是DIP,因此,只需响应给DIP;但Director还要将其发往Client (3) 请求和响应报文都经由Director (4) 支持端口映射 LVS工作模式总结 LVS的十种调度模式 LVS的调度又分为静态方法和动态方法。 静态方法 静态方法:仅根据算法本身进行调度 1、RR:roundrobin,轮询,即按顺序分配请求,即使某个机器性能不好,或者宕机,也会将请求分配给这台主机 2、WRR:Weighted RR,加权轮询,跟RR的区别再于它可以通过对每个RS服务器去设置权重,来实现依照服务器性能的优略分配任务,性能好的分配任务多点,性能差的分配任务少点。也会存在RR一样的缺点 3、SH:Source Hashing,实现session sticky,源IP地址hash;将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定。 4、DH:Destination Hashing;目标地址哈希,第一次轮询调度至RS,后续将发往同一个目标地址的请求始终转发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡,如:宽带运营商。 动态方法 动态方法:主要根据每RS当前的负载状态及调度算法进行调度Overhead=value较小的RS将被调度 1、LC:least connections 适用于长连接应用 Overhead=activeconns*256 inactiveconns 2、WLC:Weighted LC,默认调度方法 复制 Overhead=(activeconns*256 inactiveconns)/weight 3、SED:Shortest Expection Delay,初始连接高权重优先 Overhead=(activeconns 1)*256/weight 4、NQ:Never Queue,第一轮均匀分配,后续SED 5、LBLC:Locality-Based LC,动态的DH算法,使用场景:根据负载状态实现正向代理 6、LBLCR:LBLC with Replication,带复制功能的LBLC,解决LBLC负载不均衡 问题,从负载重的复制到负载轻的RS Overhead 表示优先级、 activeconns 正处于连接的数量 inactiveconns 非活动连接的数量 weight 权重 LVS的优缺点 优点: Lvs属于内核级的功能,它的并发量是相当大的,能达到几百万的并发 缺点: 没有所谓的高可用功能,不能检查后端服务器的健康性,(后端服务器宕机了,lvs是没有办法去管理的) 更多关于云服务器,域名注册,虚拟主机的问题,请访问特网科技官网:www.56dr.com
更多资讯:更多资讯
本站发布的【LVS的四种模式和十种调度算法简介】内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场
如果涉及侵权请尽快告知,我们将会在第一时间立刻删除涉嫌侵权内容,本站原创内容未经允许不得转载,或转载时需注明出处。
Copyright © 2009-2024 56dr.com. All Rights Reserved. 特网科技 版权所有 珠海市特网科技有限公司 粤ICP备16109289号
域名注册服务机构:阿里云计算有限公司(万网) 域名服务机构:烟台帝思普网络科技有限公司(DNSPod) CDN服务:阿里云计算有限公司 百度云 中国互联网举报中心 增值电信业务经营许可证B2
建议您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流浏览器浏览本网站