IBMxSeries服务器集群解决方案综述第一章、计算机集群技术概述随着计算机技术的发展和越来越广泛的应用,越来越多的依赖于计算机技术的应用系统走进了我们的工作和生活。在给我们带来方便和效率的同时,也使得各行各业对于计算机技术的依赖程度越来越高。尽管随着计算机技术以日新月异的速度发展,单台计算机的性能和可靠性越来越好,但还是有许多现实的要求是单台计算机难以达到的。看看下面的例子:*某银行需要一台服务器来储存财务数据。他要求这台计算机即使是在机房坍塌的情况下也能够被各个业务网点访问。在这些情况下,往往需要将多台计算机组织起来进行协同工作来模拟一台功能更强大解决问题。这种技术称为集群技术。目前应用最为广泛的集群计算技术可以分为三大类:高可用性集群技术、高性能计算集群技术和高可扩展性集群技术。下面我们将主要介绍高可用性群集系统。(一)、高可用性集群概述高可用性集群,英文原文为HighAvailabilityCluster,简称HACluster,是指以减少服务中断(宕机)时间为目的的服务器集群技术。随着全球经济的增长,世界各地各种各样的组织对IT系统的依赖都在不断增加,电子贸易使得商务一周七天24小时不间断的进行成为了可能。新的强大的应用程序使得商业和社会机构对日常操作的计算机化要求达到了空前的程度,趋势非常明显,我们无时无刻不依赖于稳定的计算机系统。这种需求极速的增长,使得对系统可用性的要求变得非常重要,许多公司和组织的业务在很大程度上都依赖于计算机系统,任何的宕机都会造成严重的损失,关键IT系统的故障可能很快造成整个商业运作的瘫痪,每一分钟的宕机都意味着收入、生产和利润的损失,甚至于市场地位的削弱。IndustryBusinessOperationAverageCostperHourofDowntimeFinancialBrokerageoperations$6.5millionFinancialCreditcard/salesauthorization$2.6millionMediaPay-per-viewtelevision$1.1millionRetailHomeShopping(TV)$113.0thousandRetailHomecatalogsales$90.0thousandTransportationAirlinereservation$89.5thousand根据1998年GarterGroup的统计我们可以看出,我们需要可以不间断使用的计算机系统,并且这种对高可用性系统和技术的需求还会不断的增长。可用性是指一个系统保持在线并且可供访问,有很多因素会造成系统宕机,包括为了维护而有计划的宕机以及意外故障等,高可用性方案的目标就是使宕机时间以及故障恢复时间最小化,可以容忍的宕机时间明确的说明方案的全面性、复杂性和成本。PercentAvailabledowntime/YearClassification99.53.7daysConventional99.98.8hoursAvailable99.9952.6minutesHighlyAvailable99.9995.3minutesFaultResilient99.999932secondsFaultTolerant为了提高整个系统的可用性,除了提高计算机各个部件的可靠性以外,一般情况下都会采用集群的方案。所谓集群,就是共同为客户机提供网络资源的一组计算机系统。而其中的每一台提供服务的计算机,我们称之为节点。当一个节点不可用或者不能处理客户的请求时,该请求将会转到另外的可用节点来处理,而这些对于客户端来说,它根本不必关心这些要使用的资源的具体位置,集群系统会自动完成。集群中节点可以以不同的方式来运行,这要看它们是如何设置的。在一个理想的两个节点的集群中,两个服务器都同时处于活动状态,也就是在两个节点上同时运行应用程序,当一个节点出现故障时,运行在出故障的节点上的应用程序就会转移到另外的没有出现故障的服务器上,这样一来,由于两个节点的工作现在由一个服务器来承担,自然会影响服务器的性能。针对这种情况的解决方案是,在正常操作时,另一个节点处于备用状态,只有当活动的节点出现故障时该备用节点才会接管工作,但这并不是一个很经济的方案,因为你不得不买两个服务器来做一个服务器的工作。虽然当出现故障时不会对性能产生任何影响,但是在正常运行时的性能价格比并不太好。从上面的工作方式出发,我们可以把集群分为下面几种(特别是两节点的集群)主/主(Active/active)这是最常用的集群模型,它提供了高可用性,并且在只有一个节点在线时提供可以接受的性能,该模型允许最大程度的利用硬件资源。每个节点都通过网络对客户机提供资源,每个节点的容量被定义好,使得性能达到最优,并且每个节点都可以在故障转移时临时接管另一个节点的工作。所有的服务在故障转移后仍保持可用,但是性能通常都会下降。主/从(Active/passive)为了提供最大的可用性,以及对性能最小的影响,Active/passive模型需要一个在正常工作时处于备用状态,主节点处理客户机的请求,而备用节点处于空闲状态,当主节点出现故障时,备用节点会接管主节点的工作,继续为客户机提供服务,并且不会有任何性能上影响。混合型(Hybrid)混合是上面两种模型的结合,只针对关键应用进行故障转移,这样可以对这些应用实现可用性的同时让非关键的应用在正常运作时也可以在服务器上运行。当出现故障时,出现故障的服务器上的不太关键的应用就不可用了,但是那些关键应用会转移到另一个可用的节点上,从而达到性能和容错两方面的平衡。(二)、高可用性集群工作原理下面针对高可用性集群,介绍一下它的工作原理。在微软的MSCS(MicrosoftClusterServer)术语中,所有的应用程序、数据文件、磁盘、网络IP地址等都被称为资源,一些资源可以组成一个资源组,一个资源组存在于一个节点上,但同时只能在一个节点上,它是MSCS可以进行故障切换(FailOver)的最小单元。在MSCS中,所有的资源都处于资源监视器的监视之下,资源监视器通过资源动态链接库文件与资源进行通信,这些资源动态链接库会侦测对应资源的状态,并通知资源监视器,之后,监视器再把信息提供给集群服务(ClusterService),缺省情况下,集群服务会启动一个资源监视器来监视节点中的全部资源。MSCS用依赖性来定义不同资源彼此之间的关系,MSCS会根据资源间的相互依赖关系来决定把这些资源变为在线或者是离线的顺序。举一个WEB服务器文件共享的例子,文件共享的资源需要硬盘驱动器来存储数据,把这些有关系的资源一起放在MSCS组中,要实现共享,就必须先把硬盘准备好。同时,为了完成文件共享,我们还需要准备好网络名称以及IP地址。从上图可以看出,文件共享资源依赖于硬盘资源,网络名称资源依赖于IP地址资源,而对应的WEB服务刚依赖于文件共享和网络名称。资源的存在可以分为五种状态1、Offline,资源不能被别的资源或者客户机使用2、OfflinePending,资源正处于Offline的过程中3、Online,资源处于可用的状态4、OnlinePending,资源正处于Online的过程中5、Failed,资源出现了MSCS无法解决的问题前面已经提到,MSCS可以从一个节点故障切换到另一个节点的最小单元是资源组。被定义好的相关的资源放在同一个组中,并建立对应的依赖关系。以下图为例,如果节点A中的资源组1要移到节点B上的话,资源组1中的资源(资源A,资源B,资源C)也必须从节点A移到节点B才行。在MSCS的资源中,有一个非常重要的资源,Quorum,它是一个可以被两个节点访问的物理硬盘,用来保存集群的信息。这些信息是用来维护集群的完整性以及使节点保持同步,特别是当节点不能与另一个节点通信的时候。Quorum盘在某一时刻只能被一个节点所拥有,并用来决定由哪个节点来拥有集群的所有资源。Quorum必须位于共享的磁盘子系统中,一般都是使用外接的磁盘柜。一般情况下,不建议把应用程序和数据保存到包含Quorum的硬盘上。故障切换(Failover)是指把出现故障的节点上的资源重新定位到另一个可用的节点上。负责监视资源的资源监视器一旦发现资源出现故障,它就会通知集群服务,集群服务会根据事前定义好的策略触发对应的事件。虽然发现的是个别资源的故障,但是,集群还是会把整个资源组进行故障切换。故障切换会在三种不同的情况下发生,人工(一般是因为管理员的请求),自动,或者在特定的时间(由集群管理软件设定)。自动故障切换又包含了三个阶段:1、故障发现。2、资源重新定位。3、重新启动应用程序(一般是故障切换过程中最耗费时间的)。当达到资源组的故障切换阀值时,自动的故障切换才会发生,阀值是可以设定的,一般由管理员来设定。故障恢复(Failback)是一种故障切换的特例,是指发生故障切换之后,把部分或者全部资源组移回它们首选的节点的过程。首选的节点,就是指集群中指定的运行资源组的道选的节点,如果是多个节点的高可用性方案,就会有多个首选的节点。当首选的节点出现故障后,对应的资源组就切换到另外的可用节点上,当出现故障的节点恢复正常后,资源组可以自动的切换回首选节点。如果没有定义首选节点,资源组就不会自动切换回来。要检查资源是不是可用,资源监视器会向对应的动态链接库发送状态信息的请求,一般会有两种级别的检查,LooksAlive和IsAlive。LooksAlive级别的检查相对比较简单,每隔一段时间(相对比较短的时间,缺省是5秒),资源监视器会进行一次LooksAlive级别的检查,如果资源没有响应,监视器会向集群服务报告。IsAlive级别的检查是非常完整的检查,它会彻底检查资源是不是工作正常,IsAlive检查的时间间隔比LooksAlive要长,缺省是1分钟。结合上面提到的各个要素,高可用性就是通过下面的过程来实现的:首先,资源监视器根据设定的时间间隔对资源进行LookAlive和IsAlive两种级别的检查,一旦发现某一个资源不可用,就会试图重新启动该资源。根据阀值的设定,如果在某一时间段内,资源不可用的情况达到了设定的阀值时,就会发生故障切换。经过故障切换的过程,对应的资源组在另外一个节点上重新启动了,继续为客户机提供服务,对客户来说,工作没有影响,这就完成了一次故障切换。当出现故障的节点恢复正常以后,如果事先对该资源组设定了首选节点,就会把该资源组移回该首选节点。经过前面的介绍,我们已经对高可用性的原理有了一些了解,下面,我们具体阐述一下IBMxSeries服务器集群解决方案第二章、IBMxSeries服务器群集解决方案(一)、体系结构如今,计算机解决方案与性能高低之间已经互为代名词.高性能的软件是以硬件平台的能力大小为基础的.而能力的大小可以从两方面进行扩展,垂直的(在一个系统内部)和水平(多系统互连).实现垂直方向上的性能扩展的关键在于整个系统的均衡设计,包括可扩展的处理器,内存,存储器和输入输出设备等各子系统.为满足日益增长的要求,许多商家已将单处理器系统升级为具有对称多处理器(SMP)的可垂直扩展的大系统.当运算需求或有效性需求超出SMP系统的能力范围时,许多公司将目光转向群集,以满足商务活动中所要求的有效性,可扩展和可管理性等各项指标.群集被认为是可将原有的系统扩展为更大型系统的行之有效的解决办法.IBM曾推出两组大型处理系统系列:ScalablePOWERparallel(SP)和zSeries(S390)ParallelSysplex系统.这两组基于群集技术原理的服务器系列,性能可靠,并具有几乎可升级至无限计算能力的扩展性.IBM服务器家族的另一成员iSeries(AS/400),不仅提供了性能可靠的中等规模的服务器平台,而且综合了业界领先的各种解决方案.基于同样的设计原理,以及我们在大型系统方面的经验,IBM正在xSeries服务器上发展新的群集体系结构.决定整个系统最终性能的关键步骤之一是如何设计系统的体系结构.SM