码迷,mamicode.com
首页 > 其他好文 > 详细

LVS介绍

时间:2018-04-12 18:36:47      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:LVS调度算法   LVS工作模式   ipvsadm使用   

LVS负载调度器

     根据请求报文的IP和目标协议以及端口进行调度;

         VIP:对外提供的一个虚拟IP地址;

         DIP:与后端服务器通讯的IP地址;

         CIP:客户端IP地址;

         RIP:后端服务器IP地址;

         RS:后端提供服务的服务器;

         VS:调度器服务器;

         CIP --> VIP == DIP --> RIP

    

LVS集群类型

    1 lvs-nat:修改请求报文的目标IP,多目标IP的DNAT,调度器发送到后方RS的时候会变化目标IP地址换为RS的IP地址;,返回的时候目标IP是CIP,到达VS服务器的时候源IP会变为VIP


    2 lvs-dr:封装新的MAC地址(默认模式),返回报文的时候走新的线路,这样的话VS压力会变小,并且VS服务器只有一个网卡,上面有VIP和DIP,RS服务器都要配置VIP地址,防止地址冲突所以配置以下内容

     RS服务器的内核中要更改以下配置:

     "/proc/sys/net/ipv4/conf/lo/arp_ignore"设置为1,配置在回环网卡和all上;

                 0:默认值,表示可使用本地任意接口上配置的任一地址进行响应

                 1:不给予回应

     "/proc/sys/net/ipv4/conf/lo/arp_announce"设置为2,配置在回环网卡和all上;

                 0:默认值,将本机所有接口的信息向每个接口的网络进行通告

                 1:尽量避免将接口信息向非直接连接网络进行通告

                 2:避免对外宣称接口信息

可以安装"kernel-doc"包来查看帮助

less /usr/share/doc/kernel-doc-3.10.0/Documention/networking/ip-sysctl.txt        #查看帮助搜索arp_ignore查看


        

    3 lvs-tun(隧道模型):在源请求IP头部添加一个新的IP头部(源地址为DIP,目标地址为RIP地址,RS服务器也要添加一个VIP,但不怕冲突因为新的报文与RS之间可以添加路由,跨网络DIP,VIP,RIP都应该是公网地址);

    

    4 lvs-fullnat:修改请求报文的源和目标IP;

             CIP --> DIP

             VIP --> RIP


调度算法:

     静态调度(不考虑后端服务器状态):

         1 RR(roundrobin):轮询算法

         2 WRR(Weighted RR):加权轮询

         3 SH(Source Hashing):实现session sticky,源IP地址hash;将来自于同一个IP地址的请求始终发往第一次挑中的RS,实现会话绑定

         4 DH(Destination Hashing):目标地址哈希,将发往同一个目标地址的请求始终转发至第一次挑中的RS,正向代理缓存比较常用


     动态调度(会考虑后端服务器状态):

         1 LC(least connections):将新的请求调度到负载少的机器上;

         负载量=当前活动连接x256+非活动连接

        

     2 WLC(Weighted LC):默认调度方法,也是调度到负载少的机器上;

         负载量=(当前活动连接x256+非活动连接)/weight

        

     3 SED(Shortest Expection Delay):初始化连接的时候,高权重优先;

         负载量=(当前活动连接+1)x256/weight

        

         4 NQ(Nver Queue):第一次请求均匀分配,之后使用SED;

        

         5 LBLC(Locality-Based LC):动态DH算法,根据负载的状态实现正向代理;

        

         6 LBLCR(LBLC with Replication):将负载重的相应的信息复制到新的服务器上,每个机器都有了之后就有可能调度到后端其他主机上;



LVS工具

     ipvsadm/ipvs

                     ipvs:

                grep -i ipvs -A 15 /boot/config-xxxxxxxxxxxxx                 #查看调度算法

    ipvsadm

             程序包:ipvsadm

             安装:yum install ipvsadm

             查看:yum info ipvsadm

             含带工具:/usr/sbin/ipvsadm              #进行操作的工具

             /etc/sysconfig/ipvsadm-config            #ipvsadm工具的配置文件

             /usr/lib/systemd/system/ipvsadm.service    #ipvsadm服务

             /usr/sbin/ipvsadm-restore    #负责将文件中的规则加载到内存中的工具


        功能以及用法:

            对VS服务器做管理:增、删、改、查

                                 ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p[timeout]]

                                 -A:增加

                                 -E:更改                               

                  ipvsadm -D -t|u|f service-address

                                 -D:删除

                                 service-address(服务地址格式按照后方格式写)VIP:TCP_PORT

                                      -t|u|f:

                                           -u:UDP协议的端口 VIP:UDP_PORT

                                      -f:firewall MARK(防火墙标签iptables的mangel表当中修改数据包,比如可以将http与https打一个标签儿就相当于认为是一个服务了)

                       [-s scheduler]:指定调度算法,不写的话默认是wlc;

            对RS服务器的管理:增、删、改、查

                                 增、改:ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight]

                                 选项:

                                 lvs类型:

                                 -g:gateway,dr类型(默认)

                                 -i:ip,tun类型

                                 -m:masquerade,nat类型

                                 -w weight:权重

                                 删:ipvsadm -d -t|u|f service-address -r server-address

                                 server-address:

                                 rip[:port]:如果省略port,则不做端口映射

       ipvsadm查看:

                         ipvsad -L | l [options]  

                             options:

                                 --numeric,-n:以数字的形式输出地址和端口号,一般情况与l一起用(ipvsadm -ln)

                                 --exact:扩展信息

                                 --connection,-c:当前IPVS连接输出

                                 --stats:统计信息

                                        Conns   :总的连接数

                                       InPkts  :进来的数据包

                                        OutPkts :出去的数据包

                                        InBytes :进来的字节数

                                        OutBytes:出去的字节数

                                 --rate:输出速率信息

                                        CPS    :每秒的连接数

                                        InPPS  :每秒进来的数据包

                                        OutPPS :每秒出去的数据包

                                        InBPS  :每秒进来的字节数

                                        OutBPS :每秒出去的字节数

                       

              ipvs规则:

                                     cat /proc/net/ip_vs

                                     当前连接的ipvs情况:

                                     cat /proc/net/ip_vs_conn

                                     清零当前计数器中的信息:

                                     ipvsadm -Z

                                     将所有规则清空:

                                     ipvsadm -C




LVS介绍

标签:LVS调度算法   LVS工作模式   ipvsadm使用   

原文地址:http://blog.51cto.com/kaikai0720/2097542

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!