LVS调度方法

lvs scheduler:

    根据其调度时是否考虑后端主机的当前负载,可分为静态方法和动态方法

    静态方法:仅根据算法本身进行调度:

        RR:Round Ronin 轮询

        WRR:Weighted Round Ronin 加权轮询

        SH:Source Hash 将客户端的源IP和调度后的RS转换为hash值(key/value),保存在Director的会话表中,下一次连接时直接查找会话表进行转发,而不需要重新调度

           在用户使用NAT上网时,因一内网中不同用户使用的源IP都是NAT后的某个IP,SH的调度方式很粗糙(LVS无法基于COOKIE做负载均衡)

        DH:Destination Hash 将客户端请求的目标地址和调度后的RS转换为hash至,保存在Director的会话表中,下一次连接时直接查找会话表进行转发,而不需要重新调度

           通常用在正向web代理(缓存),负载均衡内网用户对外部服务器的请求

           哈希的是目标地址

     动态方法:根据算法及各RS当前的负载状态进行调度

         Overhead:RS当前的负载值

         Overhead相同的情况下,按可用RS列表进行轮询

         LC:least connections,最少连接

           Overhead=Active*256+Inactive   (活动连接*256+非活动连接)  非活动连接即服务器等待客户端发送请求,而客户端并不发送

           根据各RS的Overhead选择负载最小的服务器

         WLC:Weighted LC 加权最小连接     

           Overhead=(Active*256+Inactive)/weight

         SED:Shortest Expections Delay    主要用于解决在空闲状态下,连接能够被分配至权重最大的服务器

           Overhead=(Active+1)*256/weight

         NQ:Nerver Queue    优先保证每台服务器上均分配到连接,之后根据Overhead值进行分配

         LBLC:Locallity-Based LC  基于本地的最少连接

            动态DH算法:对同一个目前请求进行动态的负载均衡,损失命中率而提高了均衡性

         LBLCR:LBLC算法的改进,如在各web缓存RS服务器上可以相互同步缓存数据

            带复制功能的LBLC

         WLC动态算法是最为通常,而且是默认的动态算法

 负载均衡集群中保持会话一致的方式:

     (1)源地址哈希;

     (2)会话集群:适用于小规模RS集群场景,将多台RS组件一个Seesion cluster,保证每台服务器上的会话内容都一致

     (3)会话服务器:创建一个共享存储用于保持会话数据(需要支持KV类型的数据库,如redis、hbase等)

原创文章,作者:oranix,如若转载,请注明出处:http://www.178linux.com/66284

(0)
oranixoranix
上一篇 2017-01-10 13:18
下一篇 2017-01-10 13:20

相关推荐

  • 第三周练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次: who | cut -d” ” -f1 | uniq 2、取出最后登录到当前系统的用户的相关信息 id `last | head -1 | cut -d” ” -f1` 3、列出当前系统上被用户当作默认shell的最多的那个shell cut -d: -f7 /etc/p…

    Linux干货 2017-07-16
  • 再不自动化就晚啦!优云教你4步打造基于CentOS的产品镜像

    随着Linux程序的增多,软件的安装过程中经常出现如下问题: 1、硬件配置类似或者相同时,批量安装系统和软件,希望实现自动化安装,减少安装时间和人为出错。 2、工程实施人员在不同客户现场进行系统和软件安装(硬件配置不同),由于硬件有差别,不容易实现自动化。 笔者针对以上场景,从提高生产效率,减少误操作的立场,提出如下解决方案,希望能达到抛砖引玉的目的,并能与…

    系统运维 2016-07-16
  • N22-Dexter-第二周博客作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示?    Linux上的文件管理类命令有cp,rm,mv    cp命令:copy    常用选项:       -i:交互式复制,即覆盖之前提醒用户确认;     &nbsp…

    Linux干货 2016-08-24
  • bash的基础特性[更新中]

    2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
    3、请使用命令行展开功能来完成以下练习:
    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
    (2)、创建/tmp/mylinux目录下的:
    mylinux/
    ├── bin
    ├── boot
    │   └── grub
    ├── dev
    ├── etc
    │   ├── rc.d
    │   │   └── init.d
    │   └── sysconfig
    │   └── network-scripts
    ├── lib
    │   └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │   └── local
    │   ├── bin
    │   └── sbin
    └── var
    ├── lock
    ├── log
    └── run
    5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
    6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
    7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
    8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
    9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
    10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
    11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
    12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

    2018-03-17
  • Vim 末行模式 & crontab & scripts 练习

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;   ~]# cp /etc/rc.d/rc.sysinit /tmp     %s@^[[:space:]]\+\*@#&@g     (使用元字符 有几…

    Linux干货 2016-10-31
  • 在linux中创建虚拟网卡(网卡别名)的方法

    由于业务需要,要在单个物理网卡上建立多个虚拟网卡,操作如下:cd /etc/sysconfig/network-scripts/   #进入网卡目录cp ifcfg-eth0 ifcfg-eth0:1   # 复制出ifcfg-eth0:1虚拟网卡vim ifcfg-eth0:1    #配置ifcfg-eth0:1虚…

    Linux干货 2016-09-06