首页 > 其他 > 详细

负载均衡集群

时间:2016-02-01 09:57:15      阅读:224      评论:0      收藏:0      [点我收藏+]

前言


集群:将多台主机组织起来统一调度,满足某一特定需求。


集群类型:

    1)LB:Load Balancing 负载均衡集群;

     2)HA:High Availability 高可用集群;

    3)HP:High Performance 高性能集群;

    4)DS:Distributed System 分布式系统;


LB集群的软件实现:lvs


lvs:Linux Virtual Server(四层交换,四层路由)

 根据调度算法将请求报文的目标IP和目标PORT转发至后端主机集群中的某台服务器;

lvs集群的术语:

    vs:Virtul Server

    rs:Real Server

    CIP:Client IP

    VIP:Director Virtual IP

    DIP:Director IP

    RIP:Real Server IP


lvs的实现:

    ipvsadm:用户空间的命令行工具,用于管理集群服务及集群服务上的RS等;

    ipvs:工作于内核上的netfilter INPUT钩子之上的程序代码;

 (其集群的功能依赖于ipvsadm定义的集群服务器规则)

技术分享



LVS-TYPE:

   (1)lvs-nat:MASQUERADE

    多目标的DNAT:通过将请求报文的目标地址和目标端口修改为挑选出的某RS的RIP和PORT来实现

    ①RIP和DIP应该使用私网地址,RS的网关应该指向DIP;

    ②请求和响应报文都要经由director转发;极高负载的场景中,Director可能会成为系统瓶颈

    ③支持端口映射;

    ④vs必须为Linux,RS可以为任意OS;

    ⑤RS的RIP与Director的DIP必须在同一IP网络中;

   (2)lvs-dr:GATEWAY

    通过修改请求报文的MAC地址进行转发,IP首部不会发生变化(源IP始终为CIP,目标IP始终为VIP);

    ①确保前端路由器将目标IP为VIP的请求报文一定会送给Director;

        解决方案:静态绑定;

             禁止RS响应VIP的ARP请求;

                a)arptables;

                b)修改各RS的内核参数,并把VIP配置在特定的接口上实现禁止其响应;

    ②RS的RIP可以使用私有地址,也可以使用公网地址;

    ③RS跟Director必须在同一物理网络中;

    ④请求报文必须由Director调度,但响应报文必须不能经过Director;

    ⑤不支持端口映射;

    ⑥各RS支持大多数的OS;

   (3) lvs-tun:IPIP

     不修改请求报文的ip首部,而是在原有的ip首部之外再次封装一个ip首部;

    ①RIP,DIP,VIP必须都是公网地址;

    ②RS网关不能指向DIP

    ③请求报文经由Director调度,但响应报文将直接发给CIP;

    ④不支持端口映射;

    ⑤RS的OS必须支持ip隧道功能;

   (4)lvs-fullnat

     通过同时修改请求报文的源ip和目标ip实现转发;

    ①VIP是公网地址;RIP和DIP是私网地址,且可以不在同一IP网络中,但需要通过路由互相通信;

    ②RS收到请求报文的源IP为DIP,因此其响应报文将发送给DIP;

    ③请求报文和响应报文都必须经由DIrector;

    ④支持端口映射;

    ⑤RS可使用任意OS;

       


lvs scheduler(lvs的调度方法):当用户请求到达时必须调度请求到后端的real server

    (1)静态方法:仅根据算法本身调度,而不考虑当前的RS的负载状态;

        1)RR:round robin,轮调;

         2)WRR:weighted rr,加权轮调;(根据RS负载能力进行调度,权重大的负载多;)

        3)SH:source ip hash,源地址哈希;(session绑定的方式,在director上维护一张键值对hash表,源ip地址为键,RS的IP为值,当请求到达时,可以根据hash表来查找源ip曾经到达的RSip,并将请求发往同一个RS,当请求到达时没有hash记录就使用加权轮调的算法调度RS;缺点:粒度过大,过于粗糙,久而久之会损坏负载均衡的效果)

        4)DH:desination ip hash,目标地址哈希;(正向web代理,负载内网用户对互联网的请求;Client-->Director-->Web Cache Server)

    (2)动态方法:根据算法及各RS当前的负载状态进行评估;    

        基于Overhead(负载值),值小的优先调度;

         1)LC:least connection(最少连接)

            Overhead=Active*256+Inactive

        2)WLC:weighted LC

            Overhead=(Active*256+Inactive)/weight   

        3)SED:Shortest Expection Delay(最短期望延迟)

            Overhead=(Active+1)*256/weight

        4)NQ:Nerver Queue(永不排队,SED算法的改进)

            先按照权重由高到低各调度一个请求,再使用SED算法进行统一调度

        5)LBLC:Locality-Based LC(基于本地的最少连接)           

            动态的DH算法;

            Client-->Director-->Web Cache Server(正向代理)

        6)LBLCR:LBLC with Replication,带复制功能的LBLC;

            

            (每个算法的出现都是为了弥补上一个算法的缺陷)


lvs persistence:持久连接

     功能:无论ipvs使用何种调度算法,其都能实现在指定时间范围内始终将来自于同一个ip地址的请求发往同一个RS;此功能是通过lvs持久连接模版(持久连接hash表)实现,其与调度算法无关;

    模式:

        每端口持久(ppc)

        每客户端持久(pcc)

        每FWM持久(PFWMC)
















负载均衡集群

原文:http://tz666.blog.51cto.com/10990100/1740266

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!