- 高可扩展性:如上所述。
- 高可用性:集群中的一个节点失效,它的任务可以传递给其他节点。可以有效防止单点失效。
- 高性能:负载平衡集群允许系统同时接入更多的用户。
- 高性价比:可以采用廉价的符合工业标准的硬件构造高性能的系统。
集群类型 :
最常见的三种集群类型包括:
负载均衡集群: LB: load balancing
高可用性集群: HA:High Availability
高性能也叫科学集群:HP : High Performance
负载均衡集群 (LB:load balancing)
负载均衡集群为企业需求提供了更实用的系统。如名称所暗示的,该系统使负载可以在计算机集群中尽可能平均地分摊处理。该负载可能是需要均衡的应用程序处理负载或网络流量负载。这样的系统非常适合于运行同一组应用程序的大量用户。每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载,以实现平衡。对于网络流量也是如此。通常,网络服务器应用程序接受了太多入网流量,以致无法迅速处理,这就需要将流量发送给在其它节点上运行的网络服务器应用。还可以根据每个节点上不同的可用资源或网络的特殊环境来进行优化。
高可用性集群 (HA:High Availability)
高可用性集群的出现是为了使集群的整体服务尽可能可用,以便考虑计算硬件和软件的易错性。如果高可用性集群中的主节点发生了故障,那么这段时间内将由次节点代替它。次节点通常是主节点的镜像,所以当它代替主节点时,它可以完全接管其身份,并且因此使系统环境对于用户是一致的。
在集群的这三种基本类型之间,经常会发生混合与交杂。于是,可以发现高可用性集群也可以在其节点之间均衡用户负载,同时仍试图维持高可用性程度。同样,可以从要编入应用程序的集群中找到一个并行集群,它可以在节点之间执行负载均衡。尽管集群系统本身独立于它在使用的软件或硬件,但要有效运行系统时,硬件连接将起关键作用。
高性能集群 (HP :High Performance )
通常,第一种涉及为集群开发并行编程应用程序,以解决复杂的科学问题。这是并行计算的基础,尽管它不使用专门的并行超级计算机,这种超级计算机内部由十至上万个独立处理器组成。但它却使用商业系统,如通过高速连接来链接的一组单处理器或双处理器 PC,并且在公共消息传递层上进行通信以运行并行应用程序。因此,您会常常听说又有一种便宜的 Linux 超级计算机问世了。但它实际是一个计算机集群,其处理能力与真的超级计算机相等,通常一套象样的集群配置开销要超过 $100,000。这对一般人来说似乎是太贵了,但与价值上百万美元的专用超级计算机相比还算是便宜的。
|
2、代理服务器负载均衡 使用代理服务器,可以将请求转发给内部的服务器,使用这种加速模式显然可以提升静态网页的访问速度。然而,也可以考虑这样一种技术,使用代理服务器将请求均匀转发给多台服务器,从而达到负载均衡的目的。
3、地址转换网关负载均衡 支持负载均衡的地址转换网关,可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。
4、协议内部支持负载均衡 除了这三种负载均衡方式之外,有的协议内部支持与负载均衡相关的功能,例如HTTP协议中的重定向能力等,HTTP运行于TCP连接的最高层。
5、NAT负载均衡 NAT(Network Address Translation 网络地址转换)简单地说就是将一个IP地址转换为另一个IP地址,一般用于未经注册的内部地址与合法的、已获注册的Internet IP地址间进行转换。适用于解决Internet IP地址紧张、不想让网络外部知道内部网络结构等的场合下。
6、反向代理负载均衡 普通代理方式是代理内部网络用户访问internet上服务器的连接请求,客户端必须指定代理服务器,并将本来要直接发送到internet上服务器的连接请求发送给代理服务器处理。反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。反向代理负载均衡技术是把将来自internet上的连接请求以反向代理的方式动态地转发给内部网络上的多台服务器进行处理,从而达到负载均衡的目的。
7、混合型负载均衡 在有些大型网络,由于多个服务器群内硬件设备、各自的规模、提供的服务等的差异,我们可以考虑给每个服务器群采用最合适的负载均衡方式,然后又在这多个服务器群间再一次负载均衡或群集起来以一个整体向外界提供服务(即把这多个服务器群当做一个新的服务器群),从而达到最佳的性能。我们将这种方式称之为混合型负载均衡。此种方式有时也用于单台均衡设备的性能不能满足大量连接请求的情况下。
首先是贵,这个贵不仅是体现在一台设备上,而且体现在冗余配置上.很难想象后面服务器做一个集群,但最关键的负载均衡设备却是单点配置,一旦出了问题就全趴了.
第二是对服务器及应用状态的掌握:硬件负载均衡,一般都不管实际系统与应用的状态,而只是从网络层来判断,所以有时候系统处理能力已经不行了,但网络可能还来得及反应(这种情况非常典型,比如应用服务器后面内存已经占用很多,但还没有彻底不行,如果网络传输量不大就未必在网络层能反映出来)。
所以硬件方式更适用于一大堆设备、大访问量、简单应用。
·1.轮叫(Round Robin)
调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。
·2.加权轮叫(Weighted Round Robin)
调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
·3.最少链接(Least Connections)
调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用"最小连接"调度算法可以较好地均衡负载。
·4.加权最少链接(Weighted Least Connections)
在集群系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
·5.基于局部性的最少链接(Locality-Based Least Connections)
"基于局部性的最少链接" 调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用"最少链接"的原则选出一个可用的服务器,将请求发送到该服务器。
·6.带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)
"带复制的基于局部性最少链接"调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按"最小连接"原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器,若服务器超载;则按"最小连接"原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。
·7.目标地址散列(Destination Hashing)
"目标地址散列"调度算法根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
·8.源地址散列(Source Hashing)
"源地址散列"调度算法根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
|
可用比例
(Percent Availability) |
年停机时间
(downtime/year) |
可用性分类
|
99.5
|
3.7天
|
常规系统(Conventional)
|
99.9
|
8.8小时
|
可用系统(Available)
|
99.99
|
52.6分钟
|
高可用系统(Highly Available)
|
99.999
|
5.3分钟
|
Fault Resilient
|
99.9999
|
32秒
|
Fault Tolerant
|
应用系统
|
每分钟损失(美元)
|
呼叫中心(Call Center)
|
27000
|
企业资源计划(ERP)系统
|
13000
|
供应链管理(SCM)系统
|
11000
|
电子商务(eCommerce)系统
|
10000
|
客户服务(Customer Service Center)系统
|
27000
|
Linux平台常见的高可用集群 有这些:
linux-HA 项目历史悠久, 很多linux 发行附带的HA集群都是采用了linux-HA 的heartbeat系统和相关的组件.需要构建完全的开源,自由而且免费的高可用集群的用户可以选择.
2 RedHat 公司 的 开放源代码RedHat Cluster Suite, 简称RHCS . (产品介绍http://www.redhat.com/solutions/clustersuite/)
- RHCS实际上是一个套件,除了现在提到的高可用集群软件,还包含了一个基于LVS的负载均衡软件.
- RHCS包含的集群软件,是GPL协议下开放源代码的集群系统.
- RHCS目前的版本有 RHCS v3和 v4,分别对应于RedHat 企业版Linux的 3.0家族和4.0家族.
- RHCS是一个独立的产品,不包括在RedHat Enterprise Linux当中,无论是购买还是下载,都是单独存在的.(其实就是heartbeat的改进版,改个名,加入了些东西)
3. Novell 公司 的 开放源代码高可用集群HA套件
Novell 公司并购了欧洲Linux第一大厂SuSE之后,成为全球能够抗衡RedHat的主要力量.
SuSE企业版Linux 带有一套开放源代码的HA集群软件,包括 HA project的heartbeat, heartbeat-ldirectord, heartbeat-pils, heartbeat-stonith, 集群关联的存储软件drbd, 虚拟IP的 src_vipa软件.和RHCS不同的是,SuSE/Novell 企业版Linux自带的 HA集群软件并非一个独立的软件,如上介绍,而是由不同的开放源代码项目提供的不同部分的程序。
4. Novell 公司的Novell Cluster Service
Novell 在败落前,曾经是一家非常伟大的公司,有着非常雄厚的技术力量。 早在10多年前,Novell公司就在集群领域独树一帜,是当时唯一能够在PC服务器上构建出32节点集群的厂商.
Novell收购SuSE公司之后,将原来在Novell netware操作系统上的大量企业级应用移植和整合到了SuSE Linux Enterprise Linux平台, Novell 当时名震集群领域的Novell Cluster Service 也被整合移植到了Linux平台.
Novell Cluster Service是一个商业系统,并非开放源代码产品
这里可以看到细节
http://www.novell.com/products/openenterpriseserver/ncs.html
5. Steeleye Lifekeeper for linux (产品介绍http://www.steeleye.com/)
steeleye 公司是集群行业非常著名的公司,他们的集群系统最早是AT&T 贝尔实验室开发的,后来被卖给了金融行业的著名IT公司NCR公司。(不少朋友到ATM取钱的时候也许会看到NCR制造的ATM机). lifekeeper集群的历史非常悠久,后来steeleye又得到了几个从当时的巨头DEC跳槽来的核心开发人员.因此lifekeeper的构架和品质是有非常好的口碑的.
6. HP MC/Service Guard for linux (http://h71028.www7.hp.com/enterprise/cache/6468-0-0-0-121.aspx)
HP在和Compaq合并之前,在HP-UX平台有一套旗舰级的高可用集群系统(MC/SG for HP-UX),被广泛部署在各种关键业务计算领域。比如银行,电信,金融等等。主要的硬件平台是PA-RISC架构的小型机和中型机系统.
Compaq在和HP合并之前,在Alpha 平台有一套旗舰级的高可用集群,叫做(TruCluster).被广泛部署在各种关键业务计算领域,比如国防,航天,制造等等。主要的硬件平台是Alpha架构的小型机和中型机.
随着两个公司的合并,两套著名的集群系统也完成了合并,新的产品仍旧叫做MC/SG,但是可以跑在PA-RISC, IA, IA64平台.
5年前,HP将MC/SG集群系统移植到了linux平台,并发展至今. HP MC/SG for linux有着非常高的品质和长期在高度关键业务要求的领域发展的背景。
7. Turbolinux 高可用集群系统
Turbolinux 这几年发展的颇不顺利,从创始人走人到公司在日本的股权变动. 颇让人担忧。
TurboLinux 的高可用集群软件有两个.
a. TurboLinux Cluster HA 3.1
b. TurboLinux8 ClusterPro
因为都没有在具体的项目中深入用过,不做更多解释.
从上图中可以看出,Heartbeat内部结构由三大部分组成。
计算结点:用于执行用户程序的结点服务器。
存储结点:是挂接存储设备、向系统中的其它结点提供存储服务的服务器。
监控结点:用来监控系统各部分的运行状态、进行远程电源管理和事件告警服务等工作。
存储交换网络:用来连接存储结点和磁盘阵列。
计算网:计算结点在运行程序时的通信设施。由高速的通信网络构成,如Infiniband网络。
管理网:用于集群系统管理的网络,一般采用千兆以太网。
视频切换系统:通过它可以将选定结点机的keyboard、video和mouse重定向到监控台上,从而可以在监控台上对结点进行各种终端的操作
结点系统软件层:结点操作系统及其核心扩展,如操作系统、设备驱动程序、文件系统扩展等
集群系统软件层:集群单一映象的操作管理软件。包括集群管理系统、集群监控系统、作业调度系统等
应用程序层:科学工程计算类的实际应用。