设为首页 收藏本站
查看: 1423|回复: 1

[经验分享] LVS:三种负载均衡方式比较

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-10-31 10:13:35 | 显示全部楼层 |阅读模式
在做lvs三种负载均衡方式比较前,先阐述一下LVS三种负载均衡的方法:


LVS/NAT:
wKiom1gVUWSw9vHAAACnqA4h99s922.jpg
  如上图,客户通过virtual IP (虚拟服务的IP地址,公网地址),访问网络服务时,请求报文到达调度器,调度器根据连接调度算法从一组真实服务器中选出一台服务器,将报文的目标地址VIP,改写成选定服务器的地址(RIP),报文的目标端口改写成选定服务器的相应端口,最后将修改后的报文发送给选出的服务器。
  同时,调度器在连接Hash表中记录这个连接,当这个连接的下一个报文到达时,从连接Hash表中可以得到原选定服务器的地址和端口,进行同样的改写操作,并将报文传给原选定的服务器。当来自真实服务器(Real server)的响应报文经过调度器时,调度器将报文的源地址和源端口改为VIP和相应的端口,再把报文发给用户。
  我们在连接上引入一个状态机,不同的报文会使得连接处于不同的状态,不同的状态有不同的超时值。在TCP连接中,根据标准的TCP有限状态机进行状态迁移;在UDP中,我们只设置一个UDP状态。不同状态的超时值是可以设置的,在缺省情况下,SYN状态的超时为1分钟,ESTABLISHED状态的超时为15分钟,FIN状态的超时为1分钟;UDP状态的超时为5分钟。当连接终止或超时,调度器将这个连接从连接Hash表中删除。
   小结:
    1、对外界可视的只有director,后端的真实服务器(real server)是不可见的;
    2、所有响应报文从real server发出后,必须再经由director才能转发到客户端

    3、director与real server,必须在同一IP网络内,且应该是私网内,real server的网关必须指向director,有测试报告显示,当后端real server在10到20台之间的时候,director容易成为整个集群系统的瓶颈,因此对大型站点来讲该方法并非最佳的负载均衡方法

    4、支持端口映射,可修改请求报文的目标PORT;
    5、vs必须是Linux系统,rs可以是任意系统;

LVS/DR:

wKioL1gVU1WCeOipAACzH2kj6gw977.jpg


   如上图,(备调用器zuhi,)在VS/DR中,调度器根据各个服务器的负载情况,动态地选择一台服务器,不修改也不封装IP报文,而是将数据帧的MAC地址改为选出服务器的MAC地址,再将修改后的数据帧在与服务器组的局域网上发送。
  因为数据帧的MAC地址是选出的服务器,所以服务器肯定可以收到这个数据帧,从中可以获得该IP报文。当服务器发现报文的目标地址VIP是在本地的网络设备上(将VIP设置在回环地址上Lo),服务器处理这个报文,然后根据路由表将响应报文直接返回给客户。由于是real server直接将相应报文经由回环地址发给客户端的,所以客户端既不知道real server的存在,也可以将nat模式中director瓶颈隐患处理了,适用范围较广


wKiom1gVU1WDsusbAAB3COOEII4892.jpg
  小结:
    1、确保前端路由器将目标IP为VIP的请求报文发往Director:
        (a) 在前端网关做静态绑定;
        (b) 在RS上使用arptables;
        (c) 在RS上修改内核参数以限制arp通告及应答级别;
            arp_announce
            arp_ignore
    2、RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经由Director;
    3、RS跟Director要在同一个物理网络;
    4、请求报文要经由Director,但响应不能经由Director,而是由RS直接发往Client;
    5、不支持端口映射;

   但是很多人都想,假如用real server直接将相应报文发给客户端,那么VIP与DIP和RIP需要在同一网段,这样的话就需要大量的公网地址IP了,大大增加了额外的开销,可否将VIP于DIP和RIP分别设置在两个网段中,VIP用公网地址,而DIP和RIP用私网地址?答案是可以的。
   假如将VIP与DIP和RIP设置在两个IP网络中,那么Real server就要将网关指向通往公网的IP,绝对不能指向director(指向director的话与lvs/net模式还有由什么区别?)



LVS/TUN(通过IP隧道实现虚拟服务器)


   IP隧道(IP tunneling)是将一个IP报文封装在另一个IP报文的技术,这可以使得目标为一个IP地址的数据报文能被封装和转发到另一个IP地址。IP隧道技术亦称为IP封装技术(IP encapsulation)。IP隧道主要用于移动主机和虚拟私有网络(Virtual Private Network),在其中隧道都是静态建立的,隧道一端有一个IP地址,另一端也有唯一的IP地址。

wKioL1gVX6ujysEcAAC0kcML3jE436.jpg



  如下图:

    它的连接调度和管理与VS/NAT中的一样,只是它的报文转发方法不同。调度器根据各个服务器的负载情况,动态地选择一台服务器,将请求报文封装在另一个IP报文中,再将封装后的IP报文转发给选出的服务器;服务器收到报文后,先将报文解封获得原来目标地址为VIP的报文,服务器发现VIP地址被配置在本地的IP隧道设备上,所以就处理这个请求,然后根据路由表将响应报文直接返回给客户。



wKiom1gVX6yiYOn1AABs_It74_Q396.jpg

   在这里,请求报文的目标地址为VIP,响应报文的源地址也为VIP,所以响应报文不需要作任何修改,可以直接返回给客户,客户认为得到正常的服务,而不会知道是哪一台服务器处理的。

  小结:
    1、DIP, VIP, RIP都只能是公网地址;
    2、RS的网关不能,也不可能指向DIP;
    3、请求报文要经由Director,但响应不能经由Director,而是real server直接用VIP响应客户端;
    4、不支持端口映射;
    5、RS的OS得支持隧道功能;



三种方法的优缺点比较:



三种IP负载均衡技术的优缺点归纳在下表中:

VS/NATVS/TUNVS/DR
ServeranyTunnelingNon-arp device
server networkprivateLAN/WANLAN
server numberlow (10~20)High (100)High (100)
server gatewayload balancerown routerOwn router

         注:以上三种方法所能支持最大服务器数目的估计是假设调度器使用100M网卡,调度器的硬件配置与后端服务器的硬件配置相同,而且是对一般Web服务。使用更高的硬件配置(如千兆网卡和更快的处理器)作为调度器,调度器所能调度的服务器数量会相应增加。当应用不同时,服务器的数目也会相应地改变。所以,以上数据估计主要是为三种方法的伸缩性进行量化比较。

大多数Internet服务都有这样的特点:
  请求报文较短而响应报文往往包含大量的数据。如果能将请求和响应分开处理,即在负载调度器中只负责调度请求而响应直接返回给客户,将极大地提高整个集群系统的吞吐量。

  所以适当的将请求报文与响应报文发散处理,是一种很好的集群对外服务性能向往扩展的思路





运维网声明 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-293726-1-1.html 上篇帖子: LVS-Fullnat之编译内核 将fullnat模块添加到内核 下篇帖子: lvs-DR模型
累计签到:50 天
连续签到:2 天
发表于 2016-11-1 08:35:11 | 显示全部楼层
一直搞不清楚这个几个模式

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

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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