• LVS-net


    一、LVS基本情况

       lvs:Linux Virtual Server,是一种负载均衡集群,其主要是由工作在内核的ipvs与用户空间的命令行工具ipvsadm组成。支持TCP,UDP,AH,EST,AH_EST,SCTP等诸多协议。

       lvs-type:

          lvs-nat

         ​ lvs-dr(direct routing)

        ​  lvs-tun(ip tunneling)

        ​  lvs-fullnat

       

       lvs scheduler:

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

    RR:round robin,轮调

        ​    ​WRR:weighted rr,加权轮调

        ​    SH:source hash,源地址hash,实现session保持的机制,将来自于同一个IP的请求始终调度至同一RS

        ​    ​DH:destination hash,将对同一个目标的请求始终发往同一个RS

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

        ​    ​LC:Least Connection   最少连接数

        ​    ​Overhead=Active×256+Inactive

        ​    ​WLC:Weighted LC    加权最少连接数

        ​    ​Overhead=(Active×256+Inactive)/weight

        ​    ​SED:Shortest Expect Delay  最短期望延迟,WLC算法的改进

        ​    ​Overhead=(Active+1)×256/weight

        ​    ​NQ:Never Queue

        ​    ​SED的算法改进

        ​    ​LBLC:Locality-Based LC,即为动态的DH算法,基于本地的最少连接数

    正向代理情形下的cache server调度;

        ​LBLCR:Locality-Based Least Connection with Replication,带复制功能的LBLC算法

    二、命令行管理工具ipvsadm的用法

    ipvsadm的用法:
        管理集群服务
        增加,修改
        ipvsadm -A|E -t|u|f service-address [-s scheduler]
        删除
        ipvsadm -D -t|u|f service-address
                        
            service-address:
            tcp:-t ip:port
            udp:-u ip:port
            fwm:-f mark(防火墙标记)
                            
            -s scheduler:
            默认为wlc算法
                            
        管理集群服务的RS
        增加,修改
            ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight] [-x upper] [-y lower]
        删除
            ipvsadm -d -t|u|f service-address -r server-address
                        
            server-address:
            ip[:port]
                            
            lvs-type:
                -g:gateway,dr
            -i:ipip,tun
            -m:masquerade,nat
                        
        清空所有和查询
        ipvsadm -C
        ipvsadm -L|l [options]
            -n:numeric,基于数字格式显示地址和端口
            -c:connection,显示当前已建立的ipvs连接
            --stats:显示统计数据
            --rate:速率
            --sort:排序
            --exact:显示精确值,不做单位换算
                    
        保存和重载:
        ipvsadm -R        重载
        ipvsadm -S [-n]      保存
                        
        置零计数器:
        ipvsadm -Z [-t|u|f service-address]

    三、实验环境

    Client:本机windows7
    Director:CentOS 7.1
    RealServer:node1,node2均为CentOS6.7
    其中vip为公网地址(实验为内网),dip与rip为内网地址

    拓扑如下:

        wKioL1ggQJ2zYiuMAABf_G8yJdU723.png-wh_50

    确保node1,与node2的web服务正常

    [root@192 ~]# curl http://192.168.20.7
    <h1>this is node1 <h1>
    [root@192 ~]# curl http://192.168.20.8
    <h1>this is node2 <h1>

    四、定义ipvsadm

    #定义集群服务
    [root@192 ~]# ipvsadm -A -t 192.168.101.130:80 -s rr
    [root@192 ~]# ipvsadm -L -n
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  192.168.101.130:80 rr
    
    #定义RS
    [root@192 ~]# ipvsadm -a -t 192.168.101.130:80 -r 192.168.20.7 -m
    [root@192 ~]# ipvsadm -a -t 192.168.101.130:80 -r 192.168.20.8 -m
    [root@192 ~]# ipvsadm -L -n
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  192.168.101.130:80 rr
      -> 192.168.20.7:80              Masq    1      0          0         
      -> 192.168.20.8:80              Masq    1      0          0
      
    #在定义RS是IP后加PORT,可做端口映射

    五、测试

    [root@192 ~]# ipvsadm -L -n
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  192.168.101.130:80 rr
      -> 192.168.20.7:80              Masq    1      0          3         
      -> 192.168.20.8:80              Masq    1      0          2

    可以看到,轮询的结果。

    六、保存配置,清空,并恢复

    [root@192 ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
    [root@192 ~]# ipvsadm -C
    [root@192 ~]# ipvsadm -L -n
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    [root@192 ~]# ipvsadm -R < /etc/sysconfig/ipvsadm

    七、其他配置实例

    #改变调度算法为sh
    [root@192 ~]# ipvsadm -E -t 192.168.101.130:80 -s sh
    #做端口地址转换
    [root@192 ~]# ipvsadm -e -t 192.168.101.130 -r 192.168.20.7:8080 -m
    #删除集群中的RS
    [root@192 ~]# ipvsadm -d -t 192.168.101.130 -r 192.168.20.7:8080 
    #删除集群服务
    [root@192 ~]# ipvsadm -D -t 192.168.101.130:80
  • 相关阅读:
    Tools
    Python
    Python
    Python
    Python
    Python
    linux下搭建SVN服务器完全手册【摘抄】
    XPath学习:轴(14)——总结
    XPath学习:parent,child
    使用Xpath对XML进行模糊查询
  • 原文地址:https://www.cnblogs.com/jym1/p/8073125.html
Copyright © 2020-2023  润新知