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