一.LVS调度方法
1.静态调度
1)rr:round robin,轮调;
2)wrr:weight round robin,加权轮调;
考虑了server本身的能力,引入了权重的概念;
3)sh:source hash,源地址hash,同个客户端发送请求调度到同一rs上,保存在hash表上;
不能很好地实现负载均衡,用该方法的目的是session addinity(会话绑定),能让用户之前建立的session还能使用,还可以对多台rs做一个session集群;
4)dh:destination hash,同一个IP地址发送给同一个server,类似于sh;
更多用在缓存服务器中;
2.动态调度
1)lc:least-connection,最少连接,根据rs连接数量来调度,挑选数量少的,active*256+inactive;
2)wlc:weight least-connection,加权最少连接,(active*256+inactive)/weight;
3)sed:最短期望延迟,忽略了非活动连接数,(active+1)*256/weight;
4)ne:never queue,和sed算法相同,只是在起始阶段对每个rs都先发送一个请求;
5)LBLC:Locality-Based Least-Connection,基于本地的最少连接;
根据请求的目标IP 地址找出该目标IP 地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用"最少链接"的原则选出一个可用的服务器,将请求发送到该服务器;
6)LBLCR:带复制功能的最少连接,可以通过内容共享协议实现缓存共享,缓存共享机制;
二.ipvsadm使用
1.管理集群服务
添加:-A -t|u|f service-address [-s schduler]
-t:tcp协议的集群,service-address:IP:port;
-u:udp协议的集群,service-address:IP:port;
-f:防火墙标记,service-address:标记号;
-s schduler:指定调度方法,默认使用wlc;
修改:-E -t|u|f service-address [-s schduler]
删除:-D -t|u|f service-address
2.管理集群服务中的rs
添加:-a -t|u|f service-address -r server-address [-g|i|m] [-w weight]
-t|u|f service-address:定义好的集群服务;
-r server-address:rs的地址,在NAT模型中,可使用IP:port实现端口映射;
-g|i|m:g:DR,-i:TUN,-m:NAT;
-w weight:当使用含有权重的调度方法时,指定权重;
修改:-e -t|u|f service-address -r server-address [-g|i|m] [-w weight]
删除:-d -t|u|f service-address -r server-address
3.查看
-L|l:查看;
-n:只显示数字格式的IP和端口;
--stats:显示统计数据;
--rate:显示速率信息;
--timeout:显示tcp、tcpfin和udp的会话超时时长;
--sort:对rs排序显示;-c:显示当前的ipvs连接状态;
4.清空所有集群服务
-C:清空ipvs规则,类似于iptables -F;
5.保存规则
ipvsadm -S > /path
6.载入规则
ipvsadm -R < /path
service ipvsadm save/restart