LVS的多种调度模式

[root@k8s02 ~]# ipvsadm -h
--scheduler -s scheduler(ˈskejələr调度) one of rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq, the default scheduler is wlc.

-s rr 轮循法
-s wrr 带权重的循环法
-s lc 最少连接法
-s wlc 带权重的最少连接法
-s lblc 基于本地的最少连接法
-s dh 目标散列法
-s sh 源散列法
-s sed 最短预期延迟法
-s nq 永不排队法
注:调度算法配置后立即生效,就像iptables配置规则一样。

2.3.1 每个调度算法详细说明:

1、rr  -  round robin 
--- 在服务器池中无穷的循环中遍历
2、wrr - Weighted Round Robin
--- 基于集群节点可以处理多少来分配给每个节点一个权重值。权重值为2的服务器将收到权重值为1的服务器的两倍的连接数量。如果服务器的权重为0 ,则不会收到新的连接请求(但当前活动的已经建立的连接将不会丢失)。
3、lc - Least-Connection
--- 当新的请求到达director时,director查看活动和非活动的连接数量,以确定把请求分发给哪个服务器。
director将集群节点目前的活动连接数量x256 再加上不活动的连接数量,得到节点的开 销值。最低开销值的节点胜出,被分发给新的入站请求。(如果开销一样,则第一个节点被选中)
4、wlc - Weighted Least-Connection
--- 先如上算出集群节点的开销值,然后除以分配给其的权重值,最小值节点胜出,将入站请求分发给它。
5、lblc - Locality-Based Least-Connection
--- 基于局部的最小连接,当real server是缓存服务器时用得比较多
6、lblcr - Locality-Based Least-Connection with Replication
--- 带复制的基于局部的最小连接,当real server是缓存服务器时用得比较多
7、dh - Destination Hashing
8、sh - Source Hashing
--- 同一个ip的客户端总是分发给同一个real server。
让客户端总是能访问到自己的会话信息,这种机制叫会话保持。
基于ip地址标识客户端的缺点:很多内网用户会伪装成公网ip,来访问服务器,不能人为的控制负载均衡。

比较高级的方法是基于客户端提供我们的session id来实现会话保持。
haproxy(做负载均衡的软件)可以实现基于会话信息来判断保持会话。
扩展:
如何保持会话一致:
1、如果总是保持和一个RS会话,这台RS如果故障了,要确定另一个RS也有会话信息,所有的RS保持数据同步。
会话同步的方法:
1、所有的RS把自己的会话信息保存到数据库当中(memcached软件)。

9、sed - Shortest Expected Delay最短延时预测 (Ci+1)/Ui Ci连接数 Ui权重值
--- 在wlc方法上做了轻微改进,这些服务使用tcp,而且当群节点在处理每个请求时保持
在活动状态。
计算方法: 每个休群节点的开销值是通过将活动的连接数加1计算的。然后开销值除以
分配 给每个节点的权重,以取得SED值,具有最低SED值的集群节点胜出。

10、nq - Never Queue没有队列,分配请求给空闲的服务器,没有空闲的就找响应最快的,
--- 如果集群节点中没有活动的连接 ,不管每个集群节点SED计算值的结果,它始终被
分配置服务的新入站请求。

HTTP的会话(session)信息:
cookies客户端(client)自己保存缓存
会话(session)服务器(server)端保存

2.3.2 实例:

发表评论

相关文章