以往,集群系统主要都是基于商业操作系统的。例如COMPAQ基于TRUE64 UNIX的集群产品TruCluster
Server;NOVELL的NetWare Cluster Services
(NCS)等。这类产品价格十分昂贵,并且留给用户的选择余地十分有限。
由于LINUX本身是基于GPL的,完全开放的,而INTEL-BASE的硬件平
台又具有很高的性价比,因此,将多台LINUX服务器组成集群系统以提供具有高可用性的企业应用平台应运而生,这给大家提供了一种用低廉的价格构建具有高可用性的企业应用平台的可能,从而大大推动了以前很少人用得起的昂贵的集群系统普及的进程。
1999年,市场上还很少看见LINUX集群产品。但对LINUX集群产品的关注迅速升温,到目前为止,Apptime
Technology, Legato Systems,Lineo, Mission Critical Linux, Motorola,
PolyServe, Red Hat, SGI, SteelEye Technology,和
TurboLinux都发布了他们的LINUX集群产品,并且HP在2001年也加入了这个行列。
这些产品被广泛地应用在各种领域,包括嵌入式LINUX应用、具有负载均衡功能的WEB应用、以及一些要求具有高可用性的关键企业应用当中。并且还可以结合NAS或SAN在数据存储方面的优点,构成完整的企业应用解决方案。
市场的领导者
目前,在高可用性集群技术上有三位领导者:
SteelEye的 LifeKeeper for Linux
Mission Critical Linux的 Convolo
Legato Cluster
LifeKeeper for Linux是私有的,具有自己的版权;Convolo是开放源码的;
Legato Cluster也是私有的。三家公司都具有专门的集群产品开发团队,并具有在LINUX及其它操作系统下开发集群系统的经验。它们的集群产品在市场上比其它公司的产品更受欢迎。
LifeKeeper for
Linux起源于NCR的基于UNIX的LifeKeeper。1999年,SteelEye收购了NCR,并保留了LifeKeeper的几个核心开发
人员。随后,SteelEye做了大量工作,将LifeKeeper从UNIX移植到LINUX上。LifeKeeper专注于集群技术,并承诺将继续发
展LifeKeeper for Linux以满足不断增长的客户需求。
Convolo在这三个产品当中技术是比较先进的,它是开放源码的,并吸取了开放源码社区的大量营养。由于有开放源码社区撑腰,Mission
Critical
Linux认为他们最了解集群用户的需求,Convolo提供了几个很重要的功能:数据一致性支持、NFS故障恢复支持。Convolo目前雇佣了几位以
前在DEC公司从事集群产品开发的技术人员,这些人具有VMS CLUSTER和TruCluster的开发经验。
Legato是企业存储软件的市场领导者。现在,它将注意力投向集群产品,并希望能够将其在存储市场的优势融合进它的集群产品中。到目前为止,除
Legato外,还没有其它公司的集群产品能够将存储技术整合入集群产品之中。Legato是目前市场上唯一的支持SAN的集群产品提供商。
除这三家公司以外,其它公司都在相继推出其LINUX下的集群产品。如HP、PolyServe、SGI、TurboLinux、RedHat等。
值得一提的是SGI的failsafe。
Failsafe自2000年8月起已经变为开放源码。Failsafe总共有230,000行源代码,其复杂程度超过目前所知的任何一个开放源
码的集群系统。除Linux FailSafe外,SGI还保留了IRIX FailSafe ,IRIX FailSafe
具有自主版权。目前Linux FailSafe和 IRIX FailSafe的源代码树是相互独立的,这就意味着IRIX
FailSafe发展的源代码可以迅速并入Linux FailSafe的源代码树,从而Linux FailSafe可以迅速取得IRIX
FailSafe的新功能;而由于GPL的限制,Linux FailSafe发展的源代码却不能直接并入IRIX
FailSafe的源代码树。不过SGI的IRIX
FailSafe开发人员可以获得开源社区的思想,从开源社区中吸取营养,并迅速反应到他们的产品中。目前Failsafe已显示出与linux-
ha.org合并的趋势,在不远的将来,Failsafe极有可能成为LINUX下面高可用性集群技术的一种标准。
目前,RedHat的集群产品RedHat
Ha-Server主要源自LVS,继承了LVS的负载平衡功能。RedHat在集群技术方面滞后于大多数LINUX集群产品提供商,并且在年内还看不出
有超越的迹象。不过RedHat在集群产品方面有一个极具野心的计划,但它在这方面的开发将严重依赖于开放源码社区的发展。除集群产品外,RedHat还
涉足企业市场及嵌入式LINUX市场。
TurboLinux,与Apptime一样,是最早提供LINUX下的集群产品的公司,大约要比其它公司早一年左右,在1999年
TurboLinux就已经涉足LINUX集群技术。其TurboLinux Cluster Server
6主要是一个负载平衡集群,另外加上其Ha-Server,可以构成一个具有高可用性的集群系统。TurboLinux Cluster Server
6的整个设计思想受LVS影响很深,几乎就是LVS的翻版。
未来12个月预测
未来12个月的赢家有可能是RedHat。至2002年中期,RedHat有可能成为LINUX下的集群技术的领导者。这要看RedHat愿意在
集群技术上花多大的精力。一旦RedHat发展出一个具有竞争力的LINUX下的集群产品,它就会利用其在LINUX发行版市场的巨大优势取得LINUX
集群产品市场的较大份额。
Apptime的Watchdog在1999年中期就已经推向市场,但在欧洲之外的地区它只取得了很小的市场份额,未来12个月将决定它能否同其它LINUX集群产品继续竞争。Watchdog有可能成为一个区域性产品。
集群及相关技术简介
集群就是两台或更多的互连的计算机(我们称之为节点)整合在一起,对外表现为具有高可用性、高性能和易管理性的单一的、统一的计算资源。
目前最常见的集群类型包括高性能科学集群和商业集群,其中商业集群又可分为负载均衡集群和高可用性集群。
科学集群
通常,科学集群被设计来解决复杂的科学问题,这些科学问题都需要大量的计算。尽管它不使用专门的并行超级计算机,这种超级计算机内部由十至上
万个独立处理器组成。但它却使用商业系统,如通过高速连接来链接的一组单处理器或双处理器
PC,并且在公共消息传递层上进行通信以运行并行应用程序。因此,您会常常听说又有一种便宜的 Linux
超级计算机问世了。但它实际上是一个计算机集群,其处理能力与真的超级计算机相等,通常一套象样的集群配置开销要超过
0,000。这对一般人来说似乎是太贵了,但与价值上百万美元的专用超级计算机相比还算是便宜的。
某些并行集群系统可以达到相当高的带宽和低延迟,其原因是它们通常绕过常用的网络协议,如
TCP/IP。虽然网际协议对于广域网很重要,但它包含了太多的开销,而这些开销在节点相互已知的封闭网络集群中是不必要的。其实,那些系统中有一部分可
以在节点之间使用直接内存访问
(DMA),它类似于图形卡和其它外围设备在一台机器中的工作方式。因此横跨集群,可以通过任何节点上的任何处理器直接访问一种形式的分布式共享内存。它
们也可以使用低开销的消息传递系统,在节点之间进行通信。
消息传递接口 (MPI) 是并行集群系统间消息传递层的最常见实现。MPI
存在几种衍生版本,但在所有情况下,它为开发者访问并行应用程序提供了一个公共
API,这样开发者就不必手工解决如何在集群的节点之间分发代码段。Beowulf 系统首先将 MPI 用作公共编程接口。
科学集群的典型代表是Beowulf和SGI的Advanced Cluster Environment (ACE).
负载均衡集群
负载均衡集群为企业需求提供了更实用的系统。如名称所示,该系统使负载可以在计算机集群中尽可能平均地分摊处理。该负载可能是需要均衡的应用
程序处理负载或网络流量负载。这样的系统非常适合于运行同一组应用程序的大量用户。每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载,以实
现平衡。对于网络流量也是如此。通常,网络服务器应用程序接受了太多入网流量,以致无法迅速处理,这就需要将流量发送给在其它节点上运行的网络服务器应
用。还可以根据每个节点上不同的可用资源或网络的特殊环境来进行优化。
负载均衡集群在多节点之间分发和处理负载。大多数情况下,这种集群中的每个节点都是运行单独软件的独立系统。但是,不管是在节点之间进行直接通信,还是通过中央负载均衡服务器来控制每个节点的负载,在节点之间都有一种公共关系。通常,使用特定的算法来分发该负载。
网络流量负载均衡是一个过程,它检查到某个集群的入网流量,然后将流量分发到各个节点以进行适当处理。它最适合大型网络应用程序,如
Web 或 FTP
服务器。负载均衡网络应用服务要求集群软件检查每个节点的当前负载,并确定哪些节点可以接受新的作业。这最适合运行如数据分析等串行和批处理作业。这些系
统还可以配置成关注某特定节点的硬件或操作系统功能:这样,集群中的节点就没有必要是一致的。
高可用性集群
高可用性(HA)集群的出现是为了使集群的整体服务尽可能可用,以便考虑计算硬件和软件的容错性。如果高可用性集群中的主节点发生了故障,那
么这段时间内将由次节点代替它。次节点通常是主节点的镜像,所以当它代替主节点时,它可以完全接管其身份,并且因此使系统环境对于用户是一致的。
HA集群致力于使服务器系统的运行速度和响应速度尽可能快。它们经常在多台机器上运行的冗余节点和服务,用来相互跟踪。如果某个节点失败,它的替补将在几秒钟或更短时间内接管它的职责。因此,对于用户而言,集群永远不会停机。
某些 HA
集群也可以维护节点间冗余应用程序。因此,即使正在使用的节点出了故障,用户的应用程序将继续运行,正在运行的应用程序会在几秒之内迁移到另一个节点,而
所有用户只会察觉到响应稍微慢了一点。但是,这种应用程序级冗余要求将软件设计成具有集群意识的,并且知道节点失败时应该做什么。但对于
Linux,目前要完全做到这一点还有一定难度。因为 目前Linux 系统没有 HA 集群标准,并且也没有公共 API
可供应用程序开发者构建有集群意识的软件。
HA集群可以执行负载均衡,但通常主服务器运行作业,而系统使辅助服务器保持闲置。辅助服务器通常是主服务器操作系统设置的镜像,尽管硬件本身稍
有不同。辅助节点对主服务器进行活动监控或心跳观察,以查看它是否仍在运行。如果心跳计时器没有接收到主服务器的响应,则辅助节点将接管网络和系统身份
(如 IP主机名和地址)。
HA集群通常包括2至8个或更多的节点,不过目前80%的HA 集群都是2个节点。Apptime的Watchdog,
Hewlett-Packard的MC/Service Guard, Legato Cluster
Enterprise,Lineo的Availix Clustering, Mission Critical Linux的Convolo,
Motorola的HA-Linux,SGI的FailSafe, SteelEye的LifeKeeper,以及Veritas Cluster
Server都是HA集群。
在集群的这三种基本类型之间,经常会发生混合与交叉。可以发现高可用性集群也可以在其节点之间均衡用户负载,同时仍试图维持高可用性程度。同样,可以从要编入应用程序的集群中找到一个并行集群,它可以在节点之间执行负载均衡。
自动故障接管
自动故障接管指的是当一个节点出现故障后,其相关资源能够自动转移到别的节点上。在一些集群产品中,故障节点的资源甚至可以转移到多个其它正常工作的节点上。通常需要转移的资源包括:物理磁盘的归属、逻辑卷、数据库、IP地址、应用程序进程、打印队列以及锁等。
自动故障接管通常有两种模式。一种为active/passive模式,一种为active/active模式。active/passive模式即一个
或多个节点运行应用程序,处于激活状态,而另有一个节点处于备份状态,当处于激活状态的节点出现故障后,则备份节点立即将其工作接管。
active/active模式即所有节点都处于激活状态,当其中有节点出现故障后,其工作自动由其它节点分摊而接管掉。
至于具体采用哪种模式,则要权衡其性价比。在active/passive模式中,有一个节点始终是空闲的,因此即使有节点出现故障,由于有后备节点替
补,整个系统性能不会有任何降低;在active/active模式中,由于没有后备节点,当有节点出现故障时,故障节点的任务会分摊到其它节点上面,因
此其它节点的任务会加重,从而造成整个系统性能有一定的衰减。
下面我们谈谈故障接管中对数据的处理:
集群采用共享数据结构时,故障节点的与数据相关工作就会按系统管理员的预先设置转移到其它节点上去。而当集群没有采用共享数据结构时,则一旦故障发生,则
故障节点所属的磁盘则必须切换给其它节点。在这个过程中,为了维护数据一致性,目标节点必须阻止故障节点对数据的访问。有时节点只是暂时挂起,而并没死
掉,因此还必须区分这一情况,这是一个很痛苦的过程。相比较而言,共享数据具有更大的优势,但采用共享数据模式时,则必须解决正常情况和故障情况下分布式
锁定问题,以确保数据一致性。对集群而言,NAS和SAN是解决共享数据的两种很好的方法。NAS走的是TCP/IP协议,而SAN走的是FC协议族。
NAS造价更低廉,更适合中小企业;而SAN则必须构造专门的SAN光纤网络并采用专门的交换机,造价比较昂贵,更适合于大型应用。
不管采用哪种模式,都给集群的管理增加了复杂度,并且每种方法都有其优缺点,没有哪种方法是万能的。而采用基于SSI的管理工具可以简化集群的管理并减少故障接管时出现错误的可能。
单一系统镜像(SSI)
SSI的着眼点是减少集群系统管理的复杂性并增加集群系统的易用性。SSI使系统管理员能够象管理一台机器一样来管理整个集群。集群技术发展到今天,统一的管理工具已经非常必要,因为集群系统非常复杂以致于很少有用户能够完整地把握它。
SSI的优点主要有以下这些:
l 整个集群中操作系统只用安装一次
l 整个集群中应用程序也只用安装一次
l 单一的安全域
l 最终用户不必知道应用程序在集群中哪台机器上运行,省去很多麻烦
l 能够透明地使用集群中的资源,而不必知道其物理位置
l 系统管理变得简单,减少了这部分的花费
开放源码对LINUX集群技术的影响
开放源码社区是怎么影响LINUX集群技术的发展的呢?开放源码界并不限制LINUX下面集群技术的发展。与私有的UNIX集群产品提供商不同,很多
LINUX集群产品提供商都希望限制对LINUX内核的修改,因为它们希望自己的代码能够在尽可能多的LINUX发行版上运行,并减少与其它产品的不兼容
性。这就造成了一个现象:大约50%的LINUX集群产品提供商在发布其产品时都同时提供其内核补丁,而这些补丁大多是很简单的。
有一些LINUX集群产品提供商同时又是LINUX发行版提供商,为了使其集群产品能够更好地运行,它们在其LINUX发行版上修改了LINUX内核。由
于GPL的限制,它们必须同时提供对内核修改的源码,并与其发行版一样放在网上供大家自由下载。TurboLinux就是这样一个例子。
TurboLinux在其发行版上修改了一部分内核,诸如线程之类的,以提高其Cluster Server
6的运行性能。同时,它将对内核修改部分的源码公布,与其发行版放在一起,供大家自由下载。
一些LINUX集群产品提供商将它们的内核补丁提交给LINUX内核开发小组,希望能将其纳入标准的LINUX内核代码中。当然,这样的影响很大,尤其会
影响到它们的竞争对手。因此其底线是,这种提供商必须要很有远见,并且由于兼容性方面的原因,它们要能够被其它提供商和其它软件开发商所接受。
当然,这里也有不同意见。有些LINUX集群产品提供商认为对LINUX内核进行修改,加入更多的集群方面的支持是必然趋势。这种观点与一些UNIX集群
产品提供商的观点相仿,如Compaq,Compaq就已经将其与TruCluster Server相关的集群技术完全整合进Tru64
UNIX和其硬件体系之中。Compaq认为这样有利于TruCluster在重负载的情况下有更优异的性能。
另外,目前开放源码界的很多集群项目小组对LINUX集群产品提供商都有很深的影响。一些LINUX集群产品提供商为了缩短开发周期,降低开发成本,大量
吸取开放源码界的成果,将其融入自己的产品中。如TurboLinux Cluster Server和Redhat
Ha-Server就深受LVS的影响。同时一些LINUX集群产品提供商采取了与开放源码界密切合作的方式,将其产品也开放源码,如SGI的
Failsafe、Redhat Ha-Server等等。
主要LINUX集群产品简介
在这里我们主要介绍十种目前市场上处于领先地位的LINUX集群产品,以使大家对LINUX集群产品的发展概况有一个大致的了解。
Apptime .Watchdog 3.0
Wizard公司建立于1992年,2000年改名为Apptime。Watch-dog3.0是该公司出品的高可用及负载平衡集群产品。
Watch-dog在1999年移植到linux平台上。Watch-dog
Light是Watch-dog的简化版,只能支持两个节点和一个应用服务。
在Watch-dog 3.0中数据是不能够并发访问的,每个需要数据访问的应用服务只能单独访问数据,数据在被访问期间锁定,这就避免了并发访问可能造成的冲突。
当一个提供服务的节点需要更新时,系统管理员可以手动的在该节点上执行failover,Watch-dog 3.0
linux版本不需要改动内核,该产品适用于Red Hat, SuSE, Debian, FreeBSD,Windows NT/2000,
Solaris, HP-UX, IRIX, AIX以及Tru64 UNIX.,起价为每节点1000美元,Watch-dog
Light起价为每节点250美元,其用户范围包括ISP,ASP,电信运营商,电子商务等。
下面列出了Watch-dog 3.0最重要的特点:
l 最多可支持32,000个节点
l 一个SNMP网关
l 支持多种应用服务,包括MySQL, Oracle, Sybase, Informix, SQL Server,Samba, sendmail等
l 简单的管理工具
l 支持多种平台的真实服务器,包括Windows NT/2000 以及 Solaris
Apptime的集群管理软件包含了基于X500或LDAP的分布式集群管理以及基于HTTP/XML的远程检测和管理。
Hewlett-Packard MC/ServiceGuard
Hewlett-Packard带来的产品是MC/ServiceGuard,它原是基于HP-UX的高可用集群产品,移植到linux平台后仍
然保持了其优良的功能。MC/ServiceGuard的高可用性已经得到了验证,在UNIX环境下已经售出了超过45000份许可证。
MC/ServiceGuard构成了其他HP的高可用性解决方案的基础。包括了多种容错方案(Campus Cluster,
MetroCluster和Continental-Clusters)
MC/ServiceGuard和linux内核有着紧密的联系。HP的即将开放源码的Watchdog记时驱动器已经和linux内核紧密结合
在了一起。MC/ServiceGuard的初期版本最多支持4个节点,预计在后续版本中会增加到16个。MC/ServiceGuard在开始阶段会安
装在HP的基于intel芯片的网络服务器中,之后也会运行在基于RISC处理器的服务器上。集群中的每个节点都是对等的,每个节点提供一个或多个应用,
当一个节点失效时,该节点上的应用自动转移到集群中的其他节点上去。该应用所对应的ip地址也被移动到相同的节点上去,所以客户可以使用同样的机器名或
ip地址进行连接。
HP的目标是那些需要在数据库以及应用层保护其关键任务的企业应用。
HP同时与SAP及其他公司合作以提供ERP领域中的机群解决方案。MC/ServiceGuard的价格还没有最后制订,在HP-UX平台下的
MC/ServiceGuard有三个定价方法,基于每节点的;基于功能的和基于每处理器的。
MC/ServiceGuard的重要特点有:
l 对于错误的快速监测和快速恢复。
l 在系统软硬件维护期间仍然保持应用的有效性。
l 在线重配置
l 可伸缩的负载平衡机制
l 应用程序不需为支持高可用性而做任何修改
l 数据保护
MC/ServiceGuard管理及监控软件、硬件以及网络的故障,故障的检测和恢复过程是完全自动的,不需要管理员的介入。应用包可以通过几
个简单的命令从一个节点移动到另一个节点。允许集群中一个节点的定期维护,同时其他节点继续工作。当该节点的维护完成后再重新加入集群。同样也允许改变节
点的操作系统。
MC/ServiceGuard拥有新的在线重配置功能,可以在系统运行时改变集群的配置。该功能允许用户增减应用包,修改应用的属性,修改整个包,与此同时集群和其他的应用仍在运行。也允许用户在线增减节点。
节点失效后,在该节点上的不同应用可以被转移到不同的新节点上去。工作量也被分配到其他的节点上。分配工作量使失效对集群的影响减少到最小
Legato Systems Legato Cluster
Legato是一家在企业级存储管理软件方面处于领先地位的公司。该公司使用集群技术以提高数据和应用的可用性。Legato
Cluster是该公司一系列产品的名字,该系列产品的主要组成部分是Legato Cluste
Enterprise,它包含了基本的集群技术,而解决方案包则是在Legato Cluste
Enterprise的基础上加上几个附加的模块,Legato eCluster是一个解决方案包,它包含了Cluster
Enterprise的几个征对Apache、Netscape以及HTTP 性能检测而添加的附加模块。Legato
eCluster必须有web服务器的支持。
Legato 的集群产品不公开源码,但他们提供了一个完整的perl开发环境以支持开放源码研究。Legato 的集群产品于2000年4月移植到linux平台上。
Legato Cluster Enterprise不需要改变linux内核,而且没有服务器数量的限制,这意味着用户可以根据应用环境的需要部署尽可能多的服务器。
Legato Cluster的目标是需要不同平台的交易环境的客户。例如电子商务,ASP,ISP。Legato Cluster可以运行在SuSE, Caldera, Red Hat,以及其他linux发行版本上,其起价为每节点2000美元。
Legato Cluster产品(Legato Cluster Enterprise和Legato eCluster)的主要特性有:
l 单一的配置界面,使管理和重配置大型的集群变得更容易。
l 没有服务器数量的限制,这对于有数百个web服务器的商业环境来说非常重要。
l 支持多种平台,包括Linux ,Unix 和Windows NT/2000
l 提供一个perl开发环境,允许在Legato Cluster架构上开发开放源码的集群解决方案。以及根据特定的应用定制解决方案。
l Legato Cluster提供对Apache的支持模块。
l 支持TCP/IP,允许通过LAN或WAN连接。
Legato
eCluster的目标是使用ip层负载平衡解决方案的用户。ip层负载平衡通过一个director将对指定ip地址的访问请求分配到所有运行
Legato eCluster软件的web服务器上。如果服务失效,Legato
eCluster重启该服务或将机器标识,ip地址,web服务都转移到另一台备用机器上,然后将服务与内容连接起来。内容可以存放在SAN,
NAS, NFS或本地硬盘上。如果内容的一个拷贝失效,则通过网络将服务与内容的第二份拷贝连接起来。
Legato Cluster通过对服务器的隔离检测提供数据完整性,隔离检测提供一种机制以使Legato Cluster的节点可以检测自己是否与集群中的其他节点隔离。其主要的目的是防止两个节点都认为对方已失效,而同时向同一块磁盘空间中写入数据。
Legato Cluster防止对数据的并发访问,任何一个时刻只有一个服务器能够对一个特定的磁盘区域进行写操作。Legato Cluster没有提供复制数据的功能,该功能需由第三方提供。
Legato Cluster提供一个单一的配置界面,管理员可以对整个集群进行配置而不用对每个节点逐一进行配置。
Mission Critical Linux Convolo
Mission Critical Linux公司提供专业的linux应用服务以及咨询服务。Mission Critical
Linux提供的服务包括预配置的集群解决方案;安全服务技术(SST)提供对系统的安全的远程管理,检测,更新;Crash
Analysis套件提供系统core dump的能力。Convolo是Mission Critical
Linux公司提供的两个节点的linux集群产品。该产品基于Mission Critical
Linux公司的开放源代码的Kimberlite技术,遵循GPL。Convolo满足了商业用户对于高可用性以及数据完整性的要求。Convolo在
2000年7月开始发售,售价为每节点995美元。Convolo由一个有多年企业集群开发经验的开发小组做基于linux的开发,其他大多数的高可用产
品都是从unix平台移植而来的。Convolo适用于所有主要的linux发行版本以及IA-32 及IA-64结构。
Convolo的目标是那些需要高可用性的数据库以及提供动态内容的基础的internet服务提供商;需要高可用性的文件服务器、邮件服务器、数据库的企业用户以及定制服务的用户。
下面是Convolo的主要特征:
l 开放源码
l 共享的存储结构,支持SCSI和Fibre Channel,任何节点都能直接访问所有的共享磁盘。
l 与linux的版本及硬件平台无关
l 支持多种应用,包括Oracle, Sendmail,MySQL, NFS等
Convolo需要对内核做一些改动,所有的改动都是公开源代码的。
Convolo被设计为在大范围的系统失效后仍然能够保持数据的完整性。在Convolo的设计中包含了对通过SCSI 或Fibre
Channel总线互连的磁盘共享的支持。多个节点可以同时访问存储在共享磁盘分区上的文件以得到集群的配置和状态信息,同时过程锁定机制使在一个时间内
只有一个节点能修改这些信息。Convolo没有使用DLM来控制对数据的访问,所以在一个时间内只有一个节点能运行一个指定的服务及访问该服务的数据,
如果该节点失效,服务及对服务数据的访问移动到另一个节点上
为了保证数据的完整性,在Convolo 1.2中提供了整个NFS的failover功能,包括了NFS锁定协议以及一系列的鉴定机制。
Convolo包括了一个基于web的GUI管理工具和一个命令行管理工具,简单的安装/配置脚本,以及完整的文档。
PolyServe Understudy and LocalCluster
PolyServe公司提供了两个系列的linux集群产品。第一个系统现在已经发售,它包含了failover以及应用恢复特性,其目标是中小
型的互连网应用,例如web服务器、防火墙、VPN、代理服务器、FTP服务器等。第二个系列现在还在开发中。它提供了一系列完整的工具以支持大型的互联
网应用。
第一个系列的产品包括Understudy 和LocalCluster
Understudy是一个两节点的高可用性及负载均衡的集群产品,从1999年11月开始发售,Understudy是一个低价的纯软件解决方
案。Understudy要求集群中节点的数据各自独立,节点要部署在同一个子网中。Understudy不提供数据复制的功能,所以节点的数据需要手工
更新。
LocalCluster是一个支持多节点的产品,于2000年9月开始发售。LocalCluster是一个真正的分布式解决方案,所有节点都
是平等的。LocalCluster能够在节点之间复制web数据。因为数据复制到集群中所有节点上,所以当一个失效的节点恢复后,其数据会自动的更新。
现在LocalCluster还不能复制数据库或动态的web内容
PolyServe的所有产品都使用了组通信技术。该技术提供了一个可复制的、可为整个集群进行配置的数据库。允许管理员管理整个集群而不是为每个节点修改配置。
Understudy 以及其他PolyServe的集群产品可以运行在Linux,FreeBSD/BSD, Windows
NT/2000,
和Solaris上。PolyServe使其产品尽可能不受linux内核改变的影响,PolyServe支持多种linux发行版本,包括Red
Hat, SuSE, Debian,
Slackware等,两节点的Understudy的linux和BSD版本售价为999美元,Windows及Solaris版本的要稍贵一些。本地
集群为每节点1999美元,但十节点的本地集群为6999美元,或每节点699美元。
下面介绍PolyServe系列集群产品的主要特点:
l 扩展能力:一个集群可以扩展到128个节点,还可以由多个子集群构成一个可以容纳数千个节点的集群。
l 集群文件系统:由物理上的共享存储器所构成的可并发访问的文件系统。
l 对整个集群的配置工具
l 可以指定节点在failover时的优先级,一个节点上不同的服务可以被转移到不同的备份节点上。
l 多系统的管理能力,可管理用户,打印机,安全,应用等,可在一个控制台下管理单一系统,子集群或整个集群。
PolyServe未来的集群产品将是一个共享的SSI集群,其目标是互联网数据中心、ASP、ISP电子商务站点、以及内容提供商。产品的名称和细节将在2001年公布。
Red Hat High Availability Server
Red Hat是在世界范围内领先的linux发行商,占据50%以上的市场份额。Red Hat High 出品的High
Availability Server是一项开放源码的集群技术,提供动态负载平衡以及TCP/IP,UDP服务的failover支持。High
Availability
Server在2000年6月开始出售,两节点的负载平衡集群售价为1995美元。这个价格包含了技术支持,包括一年内的通过电话或web进行的安装和配
置的支持,之后可以以每节点995美元的价格添加节点。
High Availability Server基于Red Hat linux 6.2,它支持与其他的linux版本,Solaris, 及Windows NT/2000组成一个异构的网络环境。
High Availability Server的目标是web服务器、FTP服务器、邮件网关、防火墙等需要负载平衡和高可用性的基于ip的应用。
High Availability Server最主要的特点有
l 开放源码的发行版
l 简单的安装
l 高性能以及高伸缩性
l 高适应性
l 增强的安全性
l 易管理性
High Availability Server需要对linux内核做一些修改,所有的改变都是开放源码的。
一个专门的安装程序负责安装集群所需要的软件包,节点的数量只取决于用户的硬件和网络环境。High Availability Server为web服务器提供了增强的安全性,为那些在开放的网络环境下工作的web服务器提供了增强的安全配置。
High Availability
Server可以被配置为FOS和LVS两种工作模式,在FOS模式下,系统被配置为两个节点的热备份集群,为应用提供冗余。在LVS模式下,系统被配置
为一个多节点的集群,其中包含两个负责负载平衡的服务器,它们负责将用户的请求定向到一个或多个基于ip的服务上,负载平衡的算法有轮转调度,加权轮转调
度,最小连接调度和加权最小连接调度四种,负载均衡技术有网络地址转换,Ip隧道和直接路由三种。
SGI Linux FailSafe
SGI
有两个集群产品,ACE和FailSafe。ACE是研发性质的技术,而FailSafe是已经推向市场的集群技术。在本文中只介绍FailSafe技
术。FailSafe于1995年发布,运行在SGI的IRIX
Unix操作系统上。SGI和SuSE将其移植到了linux上,SGI在2000年8月将FailSafe的源码开放。(http:
//oss.sgi.com/projects/failsafe/)
Linux FailSafe是一个高可用的集群产品,每个集群支持最多8个节点。各节点可以访问共享的RAID或镜象磁盘。
Linux FailSafe为用户提供了一组系统恢复的工具,并允许用户为特定的应用编写自己的恢复工具。Linux
FailSafe为多个重要的应用提供了高可用性的支持。包括NFS, Samba, Apache, 和Oracle。Linux
FailSafe不需要应用做任何修改。
虽然Linux FailSafe具有商业集群产品的所有特征,其主要面对的还是那些有创造性的专业用户。一些应用(例如建模)使用大量的数据,所有的运算耗时数小时甚至数天,所以它们更需要高可用性的支持。虽然Linux FailSafe适用于商业应用,
SGI的主要目标是诸如CAD/CAM、化学及生物学、数据管理、工程分析、科学计算等用户
下面列出了Linux FailSafe集群技术的主要特点:
l 高可用性服务
l 动态集群配置:一个节点可以动态的加入集群或从集群中删除而不会导致应用的中断。
l 基于java的集群管理
l 在服务不间断的情况下对节点进行维护:用户可以将节点从集群中删除,对其进行升级,然后再将其重新加入到集群中,而集群的服务不会受到任何影响。
l 对数据完整性的保护
Linux FailSafe不需要对linux内核的修改,Linux FailSafe通过确保一个失效的节点不会再对一个文件系统或数据库进行写操作来提供对数据完整性的保护。当一个节点被发现失效后,集群中的其他节点将其从集群中删除。
Linux FailSafe有基于java的GUI。基于java的GUI包括用来配置集群的FailSafe管理器以及用来以动态图形的方式显示集群状态的FailSafe集群观测器。
SteelEye Technology LifeKeeper for Linux
SteelEye Technology公司在1999年12月从NCR收购了Life-Keeper
技术,从而也拥有了使用该技术的一系列集群产品。在此之前NCR已经在数千台服务器上部署了Life-Keeper,它们运行在Solaris,
Windows NT, 和MP-RAS环境下,SteelEye对其做了一些修进,例如对java
GUI的修改,但在本质上它还是那项受到好评的NCR公司的集群技术。
LifeKeeper从2000年6月开始发售,起价为每节点1500美元,SteelEye可以提供节点的配置和全天的支持服务,但要另外收
费。LifeKeeper 3.01现在支持Red Hat Linux 和 Caldera
OpenLinux,在将来会支持SuSE以及其他的linux发行版本。LifeKeeper还支持Windows NT, Solaris,
和MP-RAS,对Windows 2000的支持会在2001年内实现。
LifeKeeper的目标是ISP、ASP以及那些在intel平台上部属电子商务应用和数据库的客户。
下面列出了LifeKeeper最主要的特点:
l 对关键资源的良好保护,为关键的商务应用提供最长的运行时间。
l 可伸缩的配置选项。
l 基于java的GUI,提供良好的易用性和易配置性。
l 已在数千台服务器上得到了证实
l 支持多种平台,包括Linux, Unix, 以及 Windows NT/2000
LifeKeeper的linux版使用linux的API,不用对内核做任何改变。应用也同样不需改变。SteelEye提供的应用恢复工具可
以在应用失效时自动切换,目前支持的应用有Oracle、 Apache、 Sendmail、 Samba、Lotus
Domino和Informix。如果支付一些费用的话,你也可以得到根据需要定制的应用恢复工具。为了确保客户能够对应用和数据进行连续的访问,
LifeKeeper在节点失效时自动将应用转移到另一个节点并保护数据。
LifeKeepe的体系结构没有限制节点数的上限,但是由于现今基于linux的存储解决方案的限制,在每根SCSI总线上只能连接两个服务器,这就限制了在共享SCSI硬盘的解决方案中,在一个共享的SCSI硬盘上只能连接两个节点。
LifeKeeper 提供了对Apache服务器的静态数据复制功能,通用的数据复制功能将在今年提供。
为了实现数据完整性,LifeKeeper使用SCSI预定来保护通过共享的SCSI总线被其他节点访问的数据。
当安装LifeKeeper,一个SCSI预定的补丁也同时被安装。这个补丁现在已经被包含在Red Hat Linux 6.2
中,而且Caldera等其他linux发行商也正在将其包含到自己的发行版中。
LifeKeeper可以从网络上的任何地方通过一个基于java的集中的GUI来进行管理。这个GUI允许管理员管理所有基于linux的应
用、数据库、服务器。SteelEye现在正与Caldera、Compaq、Dell、 IBM、 Intel, Red
Hat以及其他的集群技术提供商合作。希望提供一个综合了网络和系统配置的易于配置的环境,类似于Hewlett-Packard的OpenView、
IBM的 NetView 和Tivoli、 以及 Computer
Associates的Unicenter/TNG。
TurboLinux Cluster Server 6
Cluster Server 6 是TurboLinux公司的第三代集群技术,它是从TurboCluster
4.0改进而来。Cluster Server
6主要是一个负载平衡及可伸缩的解决方案,TurboLinux同时也宣称其是一个高可用性的集群方案。这意味着同一个应用及配置在所有的节点上均可用。
一旦一个节点上的服务失效,它可以在另一个节点上重新启动,不会造成服务的中断。
TurboLinux本身是遵循GPL的,但是在它之上的Cluster Server
6则不是遵循GPL的。集群中的节点可以运行TurboLinux、 Red Hat Linux、 Solaris或Windows
NT/2000操作系统。TurboLinux宣称Cluster Server
6可以使网络应用的无故障运行时间达到99.995%。Cluster Server 6不需要特定的硬件,也不需要对应用的修改。
包括两个控制节点和两个服务器节点的Cluster Server 6集群售价为995美元,包括两个控制节点和十个服务器节点的Cluster Server 6集群售价为1995美元。
Cluster Server 6的目标是小到中型的需要高可用的web服务及内联网服务的商务应用,电子商务站点,需要廉价的负载平衡软件解决方案的顾客。
Cluster Server 6的主要特点有:
l 负载平衡解决方案
l 对节点的数目几乎没有限制
l 易用的集群管理接口
l 节点间的安全连接
l 节点可运行在TurboLinux, Red Hat Linux, Solaris或Windows NT/2000操作系统之上。
Cluster Server 6对linux内核进行了一些修改,所有对内核的改动都是开放源码的,可以下载,Cluster Server 6中没有包含对内核的补丁,因为这些修改已经加入了TurboLinux发行版本中。
Cluster Server
6的加速连接特性改善了包路由以及传输管理的性能,添加了三种负载均衡技术:网络地址转换、ip隧道和直接路由。一个新的集群管理控制台(CMC)使管理
员可以实时观测到集群的状态,负载和性能。CMC使管理员能够管理集群的设置,维护。管理员只需要几下鼠标的点击就可以使一个节点从集群中脱离出来以对其
进行维护,同时不会对集群的性能造成影响。
Veritas Cluster Server for Linux
Veritas软件公司的主要产品有 Veritas Cluster Server和 Veritas Global Cluster
Manager,主要运行在Windows NT/2000、HP-UX 和Solaris上。Cluster Server for
Linux基于linux内核2.4,不开放源码。该项技术仍在测试中,未来将会发布在Red Hat
Linux,预计不会修改linux内核,其价格未定。
Cluster Server for Linux不需要特定的硬件,其支持的应用也不需要做任何修改。
Cluster Server for
Linux更侧重于对服务的管理而不是对节点的管理。一个应用由多个资源组成,一些是基于硬件的,另一些是基于软件的。例如,一个数据库服务包括一个或多
个逻辑上的网络标识,象ip地址;一个关系数据库管理系统(RDBMS);一个文件系统;一个逻辑磁盘管理器;多个物理磁盘。当节点失效时,所有的资源需
要转移到另一个节点上以重建该服务。
在底层,Cluster Server for Linux监测一个服务所用到的资源。当发现服务失效时,会自动重启服务,包括本地重启或移动到另一个节点后重启,取决于失效的类型,
如果一个服务的一个独立的资源失效,则不需要重启整个服务而只需要重启失效的那个部分。
Cluster Server for Linux的目标是互联网、电信及金融方面的应用。
Cluster Server for Linux的主要特点有
l 可伸缩,2~32个节点
l 可运行在HP-UX, Solaris, 和 Windows NT/2000上。
l 巩固的系统管理。
Cluster Server for Linux是一个与体系结构无关的集群技术。
结 论
今天,为了增强系统可用性、增强应用性能、提供负载平衡、减少软/硬件失效、保护关键应用,非常有必要来布署一个集群系统,从而使最终用户更加满意。但是在Unix平台上,这方面却有着许多不足:过于复杂、布署成本太高、不够灵活、选择余地小、硬件昂贵、技术尚未成熟。
一个新的而且更具吸引力的方案是linux集群。现有的多数linux集群产品并不复杂,不需要太多的布署成本,对硬件没有特殊的要求,虽然它们
还没有Unix下的集群技术成熟,但
随着linux以不可阻挡的势头进入高可用性等这些关键性应用领域,linux集群产品会更加完善。Linux集群产品提供商们面对的挑战是保持相对于
Unix集群技术来说较低的复杂度、高度的灵活性以及低廉的费用。
互联网数据中心所需要的集群通常包括数百个服务器,因此它们更加需要可伸缩的资源配置而不是Unix集群技术所提供的高可用模式。所以大型的集群系统会更多的架设在linux平台上而不是传统的unix平台,而集群的管理也会受到更多的关注。
在未来的一段时间内,linux集群产品提供商们所面对的主要挑战是:将现有的技术更好的结合在一起,以形成一个比现在的unix集群技术更好的基于linux的集群技术,以满足未来的需要。