应用多元化:深入讲解服务器集群技术

    在发展初期,一路处理器便可为一台服务器及其所有应用提供动力。接着就发展到了多处理时代,这时两路或多路处理器共享一个存储池,并能处理更多更大的应用。然后出现了服务器网络,该网络中的每台服务器都专门处理不同的应用集。现在,发展到了服务器集群,两台或多台服务器像一台服务器一样工作,提供更高的可用性和性能,这已经远远超出了您的想像。应用可从一台服务器转移到另一台服务器,或同时运行在若干台服务器上?D?D所有这一切对用户都是透明的。 
  
    集群并不是新事物,但在软件和硬件方面,直到最近它们还是专有的。信息系统经理对集群进行了更加仔细的考虑,这是因为现在他们可以使用大规模生产的标准硬件实现集群,如RAID、对称多处理系统、网络和I/O网卡及外设。集群技术在未来将会获得更大的发展,现在,不断推出新的集群选件,而真正的集群标准尚在制定之中。
    何为集群? 
  
    简单的说,集群就是两台或多台计算机或节点在一个群组内共同工作。与 单独工作的计算机相比,集群能够提供更高的可用性和可扩充性。集群中的每个节点通常都拥有自己的资源(处理器、I/O、内存、操作系统、存储器),并对自己的用户集负责。 
  
    故障切换功能提供丝捎眯裕旱币桓鼋诘惴⑸?故障时,其资源能??quot;切换”到集群中一个或多个其它节点上。一旦发生故障的节点恢复全面运行,通过前瞻性地将一台服务器的功能”切换”到集群中其它服务器上,可以实现升级,停止该服务器的运行以增加组件,然后将其放回到集群中,再将其功能从其它服务器转回该服务器。利用分布式讯息传递(DMP)可提供额外的可扩充性,DMP是一种集群内通信技术,该技术允许应用以对最终用户透明的方式扩展到单个对称多处理(SMP)系统以外。 
  
    集群中的每个节点必须运行集群软件以提供服务,如故障检测、恢复和将服务器作为约 个系统进行管理的能力。集群中的节点必须以一种知道所有其它节点状态的方式连接。这通常通过一条由于局域网路径相分离的通信路径来实现,并使用专用网卡来确保节点间清楚的通信。该通信路径中继系统间的一?quot;心跳”,这样,如果一个资源发生故障因而无法发送心跳,就会开始故障切换过程。实际上,最可靠的配置采用了使用不同通信连接(局域网、SCSI和RS232)的冗余心跳,以确保通信故障不会激活错误的故障切换。 
  
    集群级别 
  
    今天,对于集群购买者来说,幸运的是有多款不同档次的集群可供选择,它们可提供广泛的可用性。当然,可用性越高,价格也越高,管理复杂性也越大。 
  
    共享存储 
  
    共享磁盘子系统往往是集群的基础、它使用共享的SCSI或光纤通道。每个节点使用其本地磁盘存储操作系统交换空间和系统文件,而应用数据存储在共享磁盘上,每个节点均可读取由其它节点写入的数据。应用间的并发磁盘访问需要分布锁定管理器(DLM),而且共享磁盘子系统与其集群节点之间的距离会受到所选择介质(SCSI或光纤通道等)的限制。 
  
    服务器镜像(镜像磁盘) 
  
    需要数据冗余而又无需占用额外磁盘子系统的环境有权选择服务器间的镜像数据。除了成本更低以外,服务器镜像的另一个优势是,在主板服务器与辅助服务器之间的连接可以是基于局域网的,这样就消除了SCSI 距离限制。数据写到主板服务器上后,它还写到了辅服务器上;通过锁定服务器数据保持了数据的完整性。一些服务器镜像产品还可将工作负载从主服务器转换到辅服务器上。 
  
    非共享 
  
    现在,一些集群产品使用的是”非共享”体系结构,在此体系结构中,节点既不共享集中式磁盘,也不在节点间镜像数据。发生故障时,非共享集群所具有的软件能够将磁盘所有权从一个节点传送至另一个节点,而无需使用分布式分布式锁定管理器(DLM)。 
  
    如何实现故障切换? 
  
    可以使用多种方法配制集群实现故障切换。第一种方法是N路配制,集群中的所有节点在正常情况下都拥有自己的用户和工作负载。一个故障节点的资源可切换到其它节点,但由于剩余的服务器承担了额外的负载,因此其性能将有所下降。 
  
    N+1配制包括一个热待机系统,它在主系统发生故障之前一直处于空闲模式。在N+1配制中,当一个节点发生故障时可避免其它节点的性能下降。但是,由于待机节点在正常情况下并不提供服务,因而成本较高。 
  
    在任何配制中,一旦出现问题,集群软件将能够首先进行本地恢复。本地恢复即在发生故障时,在本地节点自动重新启动应用或服务的能力。对节点并非致命的故障来说,逻辑上本地恢复是首选方式,因为与切换至另一个节点相比,它对用户的中断更少。 
  
    就故障切换的种类而论,一些集群产品可进行并行恢复,其中资源能够故障切换到不同地区的远程节点上。这很适合于容灾需求。次外,为了解决多个节点故障问题,一些集群产品可以进行级联故障切换,其工作方式就像多米诺骨牌一样:节点一故障切换到节点二,节点二发生故障后再切换到节点三等等。 
  
    故障切换举例 
  
    以下是双节点集群故障切换举例,其中两个节点都拥有其自己的用户和以下的应用。 
  
    1. 节点1因出现内存问题导致了应用故障。用户讯息错误且其应用停止运行。集群管理软件将这一问题通知系统管理员。 
  
    2. 节点1进行本地恢复,重新启动故障应用。用户能够重新启动其应用。 
  
    3. 当应用再次发生故障时,集群软件向节点2进行故障切换。故障切换需要大约1分钟,用户必须等待。(实际时间可能会从几秒至几分钟。)一些应用能够检测故障过程并向用户显示信息,告知她们向另一台服务器传输应用。 
  
    4. 一旦该应用在节点2中重新启动,用户即可继续工作。 
  
    5. 诊断和修理节点1。将已恢复正常的节点1放回远处后,关恢复(切换)过程就会启动,以使应用和相关资源回到节点1。可人工或自动实现该故障恢复。例如,在非高峰期间,可将其配置为故障恢复状态。 
  
    集群可扩充性 
  
    除了提高的可用性,性能可扩充性也是集群的一个主要优势。通常,可通过集群负载平衡提高性能。本质上,负载平衡意味着将相关应用和资源从繁忙节点转移到不繁忙节点。 
  
    真正的可扩充性是在其它区域实现的。第一个区域是增加可扩充性,这意味着能够在不抛弃以前系统的情况下,不断添加服务器、磁盘存储器等。实际上,随着您的计算机需求不断增加,集群提供了随着您的发展进行支付的环境。当能够在集群多个节点上自动分配其工作负载的真正”支持集群”应用在未来形成开发标准后,您将看到第二种类型 的可扩充性。除此之外还可分离应用,以使一个应用的不同”线程”运行在不同节点上,从而极大提高可 
  
    应用如何处理故障切换? 
  
    下一个问题是”应用如何处理故障切换?”答案是”这取决于所使用的应用和集群产品。”一些集群产品为专门应用(如数据库或通信协议)提供了恢复或切换套件。这些套件可在应用故障时进行检测,并可在另一服务器上重新启动该应用。 
  
    应用处理故障的方法由于集群产品的不同而不同。正如我们以前提到的一样,尽管不同的厂商都试图制定一个通用标准,但现在集群软件还没有公共标准。 
  
    然而,必须修改现在的应用以处理故障切换,应用的最终目标不受硬件的影响。一个解决方案是与操作系统共同运行的一组程序和API(应用编程口),从而使得应用厂商能够创建执行这些恢复功能的程序。使用这些API使应用”支持集群”。当前集群产品的许多厂商都在努力奋斗,以确保集群产品能够符合这些不同的操作系统API。 
  
    虚拟接口体系结构(VIA) 
  
    由英特尔、康柏、惠普、微软、戴尔、SCO和天腾联合推出了虚拟接口体系结构(VIA)计划正为开发集群硬件和软件产品制定标准,该标准将是独立于厂商的,它将为用户购买技术时提供更多的选择。 
  
    需牢记的重点 
  
    真正的集群可被认为是多处理发展演变的下一步?D?D以前,应用应用跨越一个系统的多个处理器运行,现在,应用可以跨越跨越若干系统的多个处理器运行。 
  
    集群提供了两个主要优势:高可用性(通过故障切换功能)和可扩充性(通过增加扩展和跨越处理器进行负载平衡)。 
  
    当节点出现硬件或软件问题后,就会进行故障切换,该节点的应用及通信连接将切换到另一台服务器上。可使用集群管理产品规定那些应用应进行故障切换,以及那些故障条件可触发这一过程。 
  
    可以获得许多集群种类和配置,以为用户提供他们所需的确切可用性级别。共享磁盘、服务器镜像及非共享是这些配置的几个。