Microsoft群集解决方案(上)

来源:互联网 发布:mac备份到移动硬盘 编辑:程序博客网 时间:2024/06/13 01:16

数年以来,Microsoft一直致力于对自身服务器解决方案的伸缩能力、可用性与可靠性进行扩展。群集技术已被证明是实现这一目标的有效途径,Microsoft充分支持群集技术理念,并致力于使其成为Microsoft操作系统及相关产品的集成化组成部分之一。随着Windows2000的正式发布,Microsoft群集解决方案已经逐渐步入成熟阶段。
可伸缩能力、可用性与可靠性
群集是一组通过协同工作方式运行同一套应用程序并针对客户端及应用程序提供单一系统映像的独立计算机。群集技术的目标在于通过多层网络结构进一步提高伸缩能力、可用性与可靠性。
可伸缩性是指一台计算机在维持可接受性能的前提下处理不断提高的工作负载的能力。硬件设备可伸缩性(内含式扩展,根据Microsoft的说法)依赖于通过具备扩展能力的大型计算机来执行各项操作。软件产品可伸缩性(外延式扩张)依赖于通过协同工作方式组织在一起的多台计算机所形成的群集,它与RAID驱动器阵列是两种不同概念。实际上,Microsoft使用了不太正规的术语计算机冗余阵列(RAC)来称呼自身的外延式扩张群集。就像可以通过向RAID阵列中添加磁盘的方式来提高性能一样,您同样可以通过向外延式扩张群集中添加节点的方式来提高性能。
可用性与可靠性是两种紧密相关但又略有不同的概念。可用性是指存在质量、备用能力、获取简便性以及可访问能力。可靠性则是指系统牢固程度。即便是最为可靠的系统总有一天也会出现问题。硬件设备制造商通过在诸如磁盘驱动器、电源供应设备、网络控制器和冷却风扇这样的关键技术领域中提供冗余的方式提前针对可能出现的故障采取准备措施。然而,在一台计算机上所提供冗余无法为用户避免应用程序故障。如果某台服务器上的数据库软件出现故障,那么,尽管这台服务器可能非常可靠,但通过软件与服务器相互结合方式提供的功能仍将无法使用。由此可见,单台计算机根本无法胜任由群集承担的所有必要可伸缩性、可用性及可靠性挑战。
群集能够模拟RAID阵列方式来提供可用性与可靠性。在诸如RAID 1或RAID5这样的容错磁盘配置方案中,所有磁盘均按照冗余阵列方式协同工作。如果某块磁盘出现故障,您可以将其拔下并插入一块新的磁盘,阵列中的其余部分将继续运行--无需配置,无需安装,最重要的是,不会造成停机。RAID系统自动对新的驱动器进行重建,以便使其能够与其它驱动器协同工作。与此类似,当群集中的某台计算机出现故障时,您只需使用一套新的系统对其进行替换,整个群集将继续保持运行状态。某些群集软件能够自动对服务器进行配置并将其集成到群集当中--所有相关操作均在群集处于可用状态下完成。
四种群集解决方案
Microsoft提供了四种基本群集技术:Microsoft群集服务(MSCS)、网络负载平衡(NLB)、组件负载平衡(CLB)和Application Center2000。这些服务通过三种解决方案提供:MSCS、NLB和Application Center。CLB是ApplicationCenter的组成部分之一,并且只能通过Application Center加以应用。NLB既可以通过ApplicationCenter使用,也可以作为一种独立解决方案使用。Windows 2000 Advanced Server与Windows 2000Datacenter Server本身包含MSCS和NLB,但您必须单独购买Application Center。
表1总结了这四种群集技术在不同Windows 2000 Server与Windows NT Server4.0产品家族成员中的可用性。正如您所想象的那样,这些技术中没有一种适用于Windows 2000 Professional或WindowsNT Workstation 4.0。
 
 
Microsoft群集服务
最初代号为Wolfpack且先后被称为Microsoft群集服务器与Microsoft群集服务的MSCS是Microsoft在NT群集技术领域中的首次重拳出击,它是公认的最佳Microsoft群集解决方案。在MSCS群集中,MSCS软件最多可以同四台运行在高速网络上的物理计算机建立连接。通常情况下,群集中的计算机能够按照“活动--活动”方式共享相同的存储子系统与功能,这意味着所有群集计算机(节点)均可主动通过共享负载的方式协同完成工作,并在某个节点出现故障时分担它的工作。图1显示了一个4节点MSCS群集。

图1 利用Windows 2000 MSCS实现的4节点群集
MSCS的主要用途是通过自身提供的容错能力提高应用程序可用性。容错能力是指将相关处理过程从某个节点上的故障应用程序(由于硬件设备故障或软件错误等原因所导致)移植到群集中其它健康节点上的群集功能。当故障应用程序得到恢复后,群集应当能够对原先的群集节点实现“故障返回”。MSCS能够在不丢失任何与故障应用程序相关数据的前提下对群集上所运行的应用程序进行故障恢复与故障返回管理,并且能够在故障恢复过程中维护用户及应用程序状态。这种类型的群集功能被称作有状态群集功能。与此相反,NLB、CLB和ApplicationCenter在增强可用性的同时,提供无状态群集功能与动态负载平衡能力(我将在稍后部分中详细讨论这些内容)。
对于诸如电子邮件服务器、数据库应用程序之类的应用程序,MSCS是一种良好的运行方式。假设您决定在一个4节点MSCS群集上运行Microsoft Exchange2000 Server。当安装MSCS软件以及适用于群集的Exchange 2000版本后,您可以对群集进行配置,以便使Exchange2000能够在主要节点发生故障时在备份节点上进行故障恢复。当故障发生时,主服务器上肯定存在处于打开状态的用户会话,然而,MSCS能够在不丢失任何数据的情况下快速、自动的完成故障恢复。备份节点将从故障节点上接替工作负载及相关数据,并继续为用户提供服务。
MSCS同时还允许用户在应用程序升级过程中继续进行工作。您可以采取滚动升级方式(例如每次在一个群集节点上升级应用程序并确保其它节点上的应用程序继续处于可用状态)而不必在升级过程中停止使用应用程序。举例来说,假设您拥有一个双节点群集。其中节点1运行Exchange 2000,节点2运行Microsoft SQLServer,您希望对这个群集进行配置,以便使Exchange 2000和SQL Server能够在必要情况下相互实现故障恢复。当需要对SQLServer进行升级时,您可以通过MSCS群集管理器在节点2上启动SQL Server故障恢复功能。当节点1接替SQLServer运行任务(同时继续运行Exchange 2000)时,您便可以在节点2上对SQLServer进行软件升级。当升级工作完成后,您可以通过故障返回方式将SQL Server从节点1重新移至节点2上运行,并对节点1上的SQLServer重复执行相同的软件升级操作。当节点1同样完成升级后,整个SQL Server软件便在未影响用户使用的情况下完成了升级任务。
与其它三种Microsoft群集解决方案不同,您通常无法利用MSCS面向更多用户对应用程序进行扩展。MSCS群集无法向NLB、CLB和ApplicationCenter那样通过无状态非共享方式在节点之间提供动态负载平衡能力或实现应用程序分布式运行。实际上,利用MSCS实现应用程序伸缩能力的唯一可行方式便是在安装过程中手工将应用程序分配给不同群集资源。举例来说,如果需要在Exchange2000平台上为5000名用户提供服务,您可以应用2节点活动-活动群集并在每个节点上为2500名用户提供服务。通过这种方式,您不但可以获取通过两台服务器为用户提供服务所实现的性能优势,同时还能在故障情况下实现必要的可用性。但是,当故障恢复发生时,剩余节点必须能够在故障节点恢复使用前单独为所有5000名用户提供服务。

原创粉丝点击