介绍
微软群集服务器(MSCS)将多个基于微软Windows NT的操作系统连结在一起,使之作为单一的、高可用性的系统呈现给网络客户。从系统管理员的角度来说,MSCS提供了额外的管理方便和伸缩性,并且MSCS架构为未来版本的具有可伸缩性的、群集可感知(cluster-aware)的应用提供了标准的基础结构。
本文意图从流程的高层次角度讲述编写良好定义的应用,以充分利用MSCS能力优势。也包括如何完全发挥MSCS的优势,通过编制资源DLL,调试应用和服务,以及在群集环境下进行安装。
注意 本文假定你已经在群集环境下成功安装群集软件,也拥有微软的平台软件开发包(Platform Software Development Kit(Platform SDK)),并且编译环境能够正常工作。如果在设置开发环境中遇到了问题,请参考SDK文档。
群集和高可用性
通过基于资源可用性和服务器负载来定向客户端请求,MSCS允许应用和服务以更有效的方式在Windows NT服务器上运行。(在MSCS的第一个版本,负载平衡是手动操作的;未来版本将提供自动化的负载均衡)如果群集中的一个系统-或节点-因硬件或软件故障失效或失败了,它的工作集将被群集中的其它系统接手,直到该失效的系统回复正常。
注意 MSCS设计时着重于提供高可用性(high availability),而非真正的容错(fault tolerance)。“容错”一词通常用于描述能够提供更高级别的恢复和复原能力的技术。典型的容错服务器通常使用高级的硬件和数据冗余,并由特制的软件组合在一起,为任意单点硬件或软件故障提供接近于实时的复原。这种解决方案的费用大大高于群集,因为必须为故障恢复购置冗余的硬件,这些硬件平时都处于空闲状态。MSCS使用标准的、廉价的硬件提供超好(译者:;-P)的高可用性解决方案,能够最大的利用计算资源。
非共享节点模式
MSCS 1.0版本是两节点的群集,基于非共享节点模式。非共享节点模式表示当群集中的几个节点可能访问某一设备或资源时,该资源在任一时刻只能由一个系统拥有和管理。(在MSCS群集中,资源被定义为任何能够在联机和脱机状态间转换,由群集管理,在某个时刻仅能由一个节点拥有,能够在节点间转移的硬件或逻辑部件)
每个节点有自己的内存,系统磁盘,操作系统,以及群集资源的子集。如果节点失效,其他节点将取得失效节点的资源的所有权(这个过程称为故障转移failover)。MSCS将为这些资源注册新节点的网络地址,以便于将客户端请求路由到当前拥有这些资源并处于可用状态的节点。当失效的系统稍后回复到联机状态,可以设置MSCS,恰当的重新分发资源和客户端请求(该过程称为故障恢复failback)。
注意 当节点失效,所有的客户端都会失去连接。为了实现真正透明的故障转移,客户端应用程序必须能够在节点失效时重新建立连接。
通常的MSCS群集设置如下图所示:
图1.标准的两节点MSCS配置
下面章节介绍MSCS架构。