Lvs之Linux集群类型、系统扩展方式及调度方法

2018-05-16  本文已影响0人  小尛酒窝

Linux集群

Linux cluster,Linux集群系统是一种计算机系统, 它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。一个集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群,用户是不会意识到集群系统底层的节点的。在他们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系统的节点。
Linux 集群系统的优点在于:

1、高扩展性,管理员可自行增加或删除集群系统中的节点。
2、高可用性,当集群中某一个节点失效时,其负责的任务可以传递给其他节点,因此能够有效防止单点失效。
3、高性能,负载均衡的集群系统能够同时接入更多的用户。
4、高性价比,可以使用廉价的硬件构造出高性能的系统。

1、负载均衡集群(Load Balancing),其实现方式分为硬件和软件两种方式,硬件上通常以F5 BIG IP、Cirtix Netscaler、A10等厂商较为著名,而软件则以lvs、nginx、haproxy等较为常见。
2、高可用性集群(High Availability)
3、高性能集群(High Performance)

scale up(纵向扩展):利用现有的硬件资源,通过增加硬件资源来满足日益增长的性能消耗的需求。但是此方式通常来说能提升的性能有限。
scale out(横向扩展):通过硬件或软件的方式,将以往由单一服务器负责的业务需求分配到其他节点的服务器上进行处理,但是从用户的视角来看,这些服务器是单一的系统。而lvs集群的扩展方式正是属于scale out。

常见的lvs集群的调度算法分为静态调度算法和动态调度算法。
静态调度算法:根据算法本身进行调度;

rr:roundrobin,轮询,调度器将外部请求轮流分配到集群中的节点中。
wrr:Weighted RR,加权轮询,调度器根据事先设置的权重来分配外部请求到集群中的节点。
sh:Source Hashing,实现session sticky,源IP地址hash;将来自于同一个IP地址的请求始终发往第一次挑中的真实服务器Ip,从而实现会话绑定;
dh:Destination Hashing;目标地址哈希,将发往同一个目标地址的请求始终转发至第一次挑中的真实服务器IP,典型使用场景是正向代理缓存场景中的负载均衡;

动态调度算法:根据真实服务器当前的负载状态及调度算法进行调度。

lc:least connections,调度器通过lc调度算法动态地将网络请求调度到已建立连接最少的服务器上。
wlc:Weighted Least Connections,调度器通过wlc调度算法根据事先设置的权重优化负载均衡型男。具有较高权重的服务器将承受较大比例的连接请求。
sed:Shortest Expection Delay,在WLC基础上改进,Overhead = (activeconns+1)*256/权重,不再考虑非活动状态,把当前处于活动状态的数目+1来实现,数目最小的,接受下次请求,+1的目的是为了考虑加权的时候,非活动连接过多缺陷:当权重过大的时候,会倒置空闲服务器一直处于无连接状态。
NQ:Never Queue Scheduling NQ,如果有台 realserver的连接数=0就直接分配过去,不需要再进行sed运算,保证不会有一个主机很空闲。
lblc:基于地址的最小连接数调度(locality-based least-connection):将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。
LBLCR:Locality-Based Least Connections with Replication,带复制的基于局部性最少链接”调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按”最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。

上一篇下一篇

猜你喜欢

热点阅读