根据不同的应用需求,Linux集群有三种类别的集群方案:高可用性集群方案、负载均衡集群方案、超级计算集群方案。
(一)高可用性集群方案
高可用性集群系统中不同的服务器承担不同的任务,当其中一个服务器发生故障时,系统根据设定的条件,将发生故障的服务器的任务转移给另外一台服务器,对最终用户来说,并没有反映出系统故障,系统的可用性将得到提高。
(二)负载均衡集群方案
1.负载均衡集群的架构
在负载均衡的解决方案中,若干台服务器做同样的工作。这样一来,以前由一台服务器来做的工作被分配给多个服务器来做,因而整个系统的处理能力得以提高。
(1)负载均衡器(Load Balancer)
Load Balancer是整个集群系统的前端,负责把客户的请求通过特定的调度算法转发到Real Server上。Backup是备份Load Balancer,当Load Balancer不可用时接替它,成为实际的Load Balancer。Load Balancer通过Idirectord监测各Real Server的健康状况,在Real Server不可用时把它从群中剔除,恢复时重新加入。
(2)真实服务器组(Server Array)
Server Array是一组运行实际应用服务的机器,如Web、Mail、FTP、DNS、Media等。在实际应用中,Load Balancer和Backup也可以兼任Real Server的职责。
(3)共享存储(Shared Storage)
Shared Storage为所有Real Server提供共享存储空间和一致的数据内容。
2.负载均衡集群的算法
目前,Linux平台下的集群软件有很多,其中Linux Virtual Server(LVS)最为流行。LVS安装在负载均衡器上,使用虚拟IP地址对外服务,当接收到客户请求后,根据特定的调度算法将客户请求转发到选择的真实服务器。LVS支持的调度算法如下。
(1)轮叫调度(RR)
调度器通过“轮叫”调度算法将外部请求按顺序轮流分配到集群中的真实服务器上。它均等地对待每一台服务器,而不管服务器上实际的链接数和系统负载。
(2)可调加权轮叫调度(WRR)(www.xing528.com)
调度器通过“加权轮叫”调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问数据。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
(3)最小连接(LC)
调度器通过“最小连接”调度算法,动态地将网络请求调度到已建立的链接数最小的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用“最小链接”调度算法可以较好地均衡负载。
(4)加权最小连接数(WLC)
在集群系统中的服务器性能差异较大的情况下,调度器采用“加权最小连接”调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
(5)基于局部性的最小连接调度(LBLC)
基于局部性的“最小连接”调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若该服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用“最小连接”的原则选出一个可用的服务器,将请求发送到该服务器。
(6)带复制的基于局部性最小连接调度(LBLCR)
带复制的基于局部性“最小连接”调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是,它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入服务器组,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。
(7)目标地址散列(DH)
目标地址散列调度算法,是以请求的目标IP地址作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
(8)源地址散列(SH)
源地址散列调度算法是以请求的源IP地址作为散列键从静态分配的散列表找出对应的服务器。若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
(三)超级计算集群方案
超级计算集群是并行计算的基础,以解决复杂的科学问题。它可以使集群系统通过高速链接来链接一组单处理器或双处理器微机,并且在公共消息传递层上进行通信以运行并行应用程序。因此,所谓廉价Linux超级计算机,实际是一个Linux计算机集群,其处理能力与真正的超级计算机相当,但Linux集群系统的价格比超级计算机便宜很多。支持Linux集群的软件及系统有 En Fuzion、Beowulf等。Beowulf软件的主要功能包括分发任务到各个计算节点、监测任务运行的情况、监测故障及故障恢复、控制任务队列等。
集群是在理论和实际应用上都有重大意义的技术,目前倍受各大IT厂商的关注,但现有集群系统在某些方面仍存在不少问题,在性能与可用性方面还不是十分理想,因此,人们仍在寻找更好的方法以使集群系统具有更高的性能与可用性,而Linux由于它的开源特性,必然会有更多的有志之士为它出谋划策。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。