LVS

1、LVS-NAT, DNAT(多目标)

 

2、LVS-DR(Direct Routing) 

返回报文不经过Direct

real server  不能跨越路由

调度算法:Scheduling

  静态方法:仅根据算法本身调度,不考虑realserver承载更多的请求
    rr:轮循

    wrr:分配权重进行轮循分配

    sh:原地址hash, 反均衡(也可以使用cookie调度,但是需要基于7层hash,lvs不能实现)

    dh:目标地址hash, 

  动态方法:根据算法及realserver上当前负载状况

  •     活动链接,正传输数据。
  •     非活动链接,数据传输完毕,但是未断开的。

    活动链接与非活动链接的资源比例:

    思考一个情况,如果长连接的请求,权重为3的只推出了1个请求,权重为1的推出了100个请求,此时基于轮询的算法,心情求还会按照设定的权重分配给权重为3的多一些,所以有了动态方法

    lc:最少链接,后台的realserver那个链接的少,就分发那个。

      负载 = 活动连接数*256 + 非活动链接数,结果中小者胜出。但是不考虑权重,开始就会轮询的发送。当所有的realserver都有链接以后开始计算负载

    wlc:给予权重的最少链接

      负载 = ( 活动链接数*256 + 非活动连接数 )/权重 , 结果中小者胜出。

    sed:(改进版wlc) 最少期望延迟shortest expect delay :谁延迟最短,

      负载 = (活动链接数+1)*256 /权重

        例子: 权重 300   20  1 

         (0+1*256)/300 = 0.85 . 这里有限分配

               (0+1*256)/20 = 12.8

                          (0+1*256)/1 =  256

    nq:基于sed改进,上面的算法得出的计算算法小肯定是不会给别人调度的。就算性能再差,也可以接受一些请求,不想让他们限制了。

       刚刚开局的时候上来先基于权重轮流一下,然后再按照sed算法继续分配

    lblc:基于本地最少链接。

        后端服务器是缓存服务器,将同一个请求都定向至同一个缓存服务器。

        dh+lc 

      lblcr:复制的基于本地的最少链接

        后端服务器是缓存服务器,将同一个请求都定向至同一个缓存服务器。

                   

 

 

3、LVS-TUN (IPIP)

基于隧道,实现跨路由

 

4.LVS-FULLNAT

 

session持久机制

  1、session绑定,时钟将同一个请求者的链接定向至同一个RS(第一次请求时仍有调度算法算则)

  2、session复制,基于单播,多播广播复制session信息,(量大管理起来不便)

  3、session共享,利用单独部署的服务器来统一管理session

 

 

 

 

 

lvs  realserver 机制:

  路由器在转发的时候回广播谁是vip,此时realserver 需要隐藏

  

/proc/sys/net/ipv4/conf/lo/arp_ignore  默认是0 ,不隐藏,被动工作模式默认会响应vip, 1,只响应接入口的ip地址,也就是只响应rip的地址。

  

  director : vip 向外发布,接受cip请求

  

    director 收到cip报文想后端转发,转发前如果缓存内没有realserver地址会广播

  realserver修改配置文件

    2个ip地址:vip,rip

    正常realserver 向外通告时会将vip和rip一起通告

 

 /proc/sys/net/ipv4/conf/all/arp_announce 向外通告,默认值 0, 通告所有ip,主动工作模式不响应vip, 

  

  eth0能否转发rip和路由要能通信,才取决于lo:0回复给cip的包

 

posted @ 2016-12-22 14:56  wawahan  阅读(163)  评论(0编辑  收藏  举报