点击这里获取免费大流量卡

LVS集群介绍

三种运作方式

  • VS-NAT (Virtual Server via NAT)
  • VS-DR(Virtual Server via Direct Routing)
  • VS-TUN (Virtual Server via IP Tunneling)

    LVS运作方式的比较

    / VS-NAT VS-DR VS-TUN
    外送连线的处理方式 以虚拟服务器为所有对外和对内连线的通讯闸道 真实服务器使用网络原有通讯闸直接回应使用者 真实服务器使用网络原有通讯闸直接回应使用者
    节点间的连线,要求 内部网路,可不同网段.真实机网关需要指向调度机,所有输入输出进过调度机 单一网段的区域网络,所有响应真实机自行处理,返回用户 任何区域网络和Internet网络,所有响应真实机自行处理,返回用户
    真实服务器理论上的最大数量 10-20 >100 >100
    群集的最大效率 最佳
    对于真实服务器的要求 不拘 必须支援封包过滤或是能够忽略ARP封包 必须支援IP Tunneling技术

    十种调度算法介绍
    1. 轮叫调度(Round Robin)(简称rr)
    2. 加权轮叫(Weighted Round Robin)(简称wrr)
    3. 最少链接(Least Connections)(LC)
    4. 加权最少链接(Weighted Least Connections)(WLC)
    5. 基于局部性的最少链接(Locality-Based Least Connections)(LBLC)
    6. 带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)(LBLCR)
    7. 目标地址散列(Destination Hashing)(DH)
    8. 源地址散列(Source Hashing)(SH)
    9. 最短的期望的延迟(Shortest Expected Delay Scheduling SED)(SED)
    10. 最少队列调度(Never Queue Scheduling NQ)(NQ)

    LVS解决方案

    (环境:两台调度机,N台真实机)
    一
    1、heartbeat高可用
    2、ipvsadm负载均衡
    3、heartbeat-ldirectord真实服务器健康检测
    二
    1、Keepalived高可用(VRRP Stack功能,vrrp子进程)与真实服务器健康检测(Checkers功能,checkers子进程)
    2、ipvsadm负载均衡
    

    运维

    watch ipvsadm -L -n //动态监控连接情况
    ipvsadm -C
    ipvsadm -L -n --stats
    ipvsadm -L -n --rate
    ipvsadm -L -n -c
    参数备忘
    -L|-l --list 显示内核虚拟服务器表
    -Z --zero 虚拟服务表计数器清零(清空当
    前的连接数量等)
    -C --clear 清除内核虚拟服务器表中的所有
    记录。
    --stats 显示统计信息
    --rate 显示速率信息
    -c --connection 显示LVS 目前的连接
    调度机tcp连接优化
    1、增加以下内容到/etc/sysctl.conf末尾
    kernel.core_uses_pid = 1
    net.ipv4.ip_forward = 1
    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_fin_timeout = 30
    net.ipv4.tcp_keepalive_time = 300
    net.ipv4.tcp_window_scaling = 0
    net.ipv4.tcp_sack = 0
    net.ipv4.tcp_timestamps = 0
    net.ipv4.tcp_syncookies = 1
    net.ipv4.icmp_echo_ignore_broadcasts = 1
    net.ipv4.icmp_ignore_bogus_error_responses = 1
    net.ipv4.conf.all.log_martians = 1
    net.ipv4.tcp_max_syn_backlog = 4096
    net.ipv4.tcp_max_tw_buckets = 1440000
    net.ipv4.ip_local_port_range = 1024 65536
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216
    net.ipv4.tcp_rmem = 4096 87380 16777216
    net.ipv4.tcp_wmem = 4096 65536 16777216
    net.ipv4.tcp_keepalive_intvl = 15
    net.ipv4.tcp_retries2 = 5
    fs.file-max = 655360
    net.core.somaxconn = 4096
    执行:
    sysctl -p
    使之生效
    2、加大可允许打开的文件句柄数
    echo "* soft nofile 65536" >>/etc/security/limits.conf
    echo "* hard nofile 65536" >>/etc/security/limits.conf
    ==========================20170608=============
    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_fin_timeout = 30
    net.core.rmem_max = 67108864
    net.core.wmem_max = 67108864
    net.core.netdev_max_backlog = 250000
    net.core.somaxconn = 4096
    net.ipv4.tcp_mem = 25600 51200 102400
    net.ipv4.tcp_rmem = 4096 87380 67108864
    net.ipv4.tcp_wmem = 4096 65536 67108864
    net.ipv4.tcp_max_syn_backlog = 8192
    net.ipv4.tcp_keepalive_time=1800
    =======================================
    缺省的FIN_WAIT超时是120秒。如果你的服务都是非常短的连接,可以考虑减少FIN_WAIT的超时时间,例如60秒或者30秒。
    # ipvsadm -Lcn |awk '{print $3}'|sort  |uniq -c |sort -rn
    548 FIN_WAIT
    456 NONE
     80 ESTABLISHED
      9 SYN_RECV
      2 CLOSE
      1 state
      1 entries
    TCP状态为NONE的是持久性模板,它是记录来自同一IP地址的访问调度到同一服务器。
    TCP状态为CLOSE的是已关闭连接。
    # ipvsadm -L --timeout
    Timeout (tcp tcpfin udp): 900 120 300
    默认FIN_WAIT是120秒
    修改成60
    # ipvsadm --set 900 60 300
    # ipvsadm -Lcn |awk '{print $3}'|sort  |uniq -c |sort -rn
    327 NONE
    279 FIN_WAIT
     62 ESTABLISHED
      4 SYN_RECV
      1 state
      1 entries
    如果是用长连接的话:
    lvs的设置:
    # ipvsadm --list --timeout
    Timeout (tcp tcpfin udp): 7200 5 60
    表明tcp session的timeout时间是7200秒。
    设置timeout:
    ipvsadm --set 7200 5 60
    这个值如果设置太小,client将会收到 connection reset by peer此类的错误提示。
    刷新MAC地址:
    /sbin/arping -f -q -c 5 -w 5 -I eth0 -s $WEB_VIP -U $GW
    keealived方案切换的时候会内置自动发送send_arp命令
    清空ARP表
    arp -n|awk '/^[1-9]/{system("arp -d "$1)}'
    清空某网卡的ARP表
    ip neigh flush  dev eth0 
    

点击这里获取免费大流量卡

如果您喜欢本站,点击这儿可以捐赠本站
这些信息可能会帮助到你: 联系作者 | 报毒说明
修改版本软件,加群提示等均为修改者自留,非本站信息,注意鉴别