微软群集服务器架构
MSCS由三个关键部分组合而成:
群集服务
资源监视
资源和群集管理扩展DLL
群集服务
群集服务(由事件处理器,故障转移管理器/资源管理器,全局更新管理器,以及其它部分组成)是MSCS的核心部件,并作为高优先级的系统服务运行。群集服务控制群集活动并提供诸如协作事件通知,群集组件间通信处理,处理故障转移操作,以及配置管理之类的任务。每个群集节点运行自己的群集服务。
资源监视器
资源监视器是群集服务和群集资源之间的接口,并作为独立的进程运行。群集服务使用资源监视器在资源DLL之间进行通信。资源监视器处理所有与资源的通信,由此将不当操作或功能阻塞屏蔽在群集服务之外。在单一节点上可以运行资源监视器的多个拷贝,由此提供了将不可预测的资源孤立于其它资源之外的方法。
资源DLL
MSCS的第三个关键部件是资源DLL。资源监视器和资源DLL使用资源API通信。资源API是入口点、回调函数、相关结构和用于资源管理的宏的集合。应用程序如果实现了自己的资源DLL与群集服务进行通信,并使用群集API来请求和更新群集信息,则可称为群集可感知(cluster-aware)应用。不使用群集或资源API和群集控制功能的应用程序和服务程序不能感知群集也不能得知MSCS是否正在运行。这些群集不可感知的程序通常按一般应用或服务程序管理。
群集可感知或不可感知的应用程序都可以在群集节点上运行,并作为群集资源被管理。但是,只有群集可感知应用程序能够获得群集服务器通过群集API提供的好处。例如,群集可感知应用能够:
根据资源监视器的要求报告状态。
优雅地响应联机或脱机请求。
更精确的响应IsAlive和LooksAlive请求。
MSCS包含进行基本群集管理的两个工具:群集管理器(CluAdmin.exe)和命令行管理工具(Cluster.exe)。鼓励你根据自身需要编制自定义的管理工具。不过,关于管理群集不可感知应用或开发群集管理工具的进一步讨论已经超出了本文的范围。
图2展示了群集服务,资源管理器,以及资源DLL在运行Windows NT服务器、企业版本操作系统、群集管理应用程序的单个节点上如何彼此进行交互,包括了群集可感知和群集不可感知应用。
图2.运行于Windows NT Server上单个节点的MSCS组件
注意群集感知应用也应该实现群集管理扩展DLL,该扩展DLL包含了来自于群集管理扩展API的接口之实现。群集管理扩展DLL允许应用程序在群集管理工具(CluAdmin.Exe)中进行配置。实现自定义的资源和群集管理扩展DLL允许对应用和其相关资源进行特别管理,并且使得系统管理工具更方便的对应用进行安装和配置。
下一节讲述资源和资源DLL的细节,并阐述编写自定义资源DLL的原因。