一个群集就是一组协同工作以提高服务和应用程序可用性的独立计算机。多台群集服务器(称为节点)之间由物理电缆和软件连接。如果其中一个节点出现故障,另外一个节点就会通过称为故障转移的一个进程开始提供服务。
详细可以参考:
在Windows高可用性群集中一共有3中模型:
群集模型 典型部署 群集配置所维护的数据的位置
单节点群集
开发和测试平台。
仲裁资源维护位于群集存储设备或者本地单节点上的群集配置数据的明确定义的副本。使用本地仲裁资源类型
单仲裁设备群集
位于群集存储设备上的高可用性的应用程序。
仲裁资源维护位于连接到所有节点的单群集存储设备上的群集配置数据的明确定义的副本。使用物理磁盘资源类型(或其他存储类资源类型)。
多数节点集群集
地理分散的服务器群集。
每个节点维护其各自的群集配置数据副本。仲裁资源保证了群集配置数据在节点中的一致性。使用多数节点集资源类型
要点
  • 多数节点集群集作为群集解决方案(由您的原始设备制造商 (OEM)、独立软件供应商 (ISV) 或独立硬件供应商 (IHV) 提供)的一部分,在受控或作为目标的情况下使用其效果最好。单个仲裁设备服务器群集(Windows NT 和 Windows 2000 中的标准群集模型)仍会满足您对群集部署的大部分需要。
详细资料请参考:
 
本文中仅使用Windows Server 2008 R2,“单仲裁设备群集”为例。
本次测试环境配置如下:
节点01:NOD01.SXT.COM
节点02:NOD02.SXT.COM
域控01:DC01.SXT.COM
ISCSI存储:
仲裁   :Q盘
群集盘:C:\ClusterStorage\Volume1
群集共享卷:G盘
 
拓扑如下图:
 
深入分析高可用性群集(一)_server 
在启用故障转移群集并创建群集Cluster.Sxt.Com。
1、首先我们可以看到服务:
深入分析高可用性群集(一)_R2_02
2、在%Systemroot%\Cluster下可以看到群集相关文件
深入分析高可用性群集(一)_2008_03
===========================================================
 
Reports目录中存放着群集创建、效验一类的报告文档,*.mht格式和*.log
深入分析高可用性群集(一)_群集_04 
===========================================================

CLUSDB*.*的文件,存储着关键的群集配置及状态信息,同时在注册表和仲裁盘中也存在,这个稍后会有描述。
深入分析高可用性群集(一)_2008_05 
===========================================================
 

然后我们来看看两个执行文件:
Clussvc.exe
用途:通过命令行管理群集。
参考:
用途:资源主机子系统进程,用于群集监控类型的dll调用。
参考:
===========================================================
 
最后,来分析一下dll文件。
整体来说,该目录下分为两类,一类是Cluster界面DLL;另一类是Cluster资源及类型DLL;
第一类,从词面上很容易看出就不做解释了:
深入分析高可用性群集(一)_Windows_06 
第一类,还包含多语言支持:
深入分析高可用性群集(一)_Windows_07 
第二类,对应如下:
DLL名称 用途
ClNetCfg.dll 群集网络配置dll
clnetres.dll 群集网络资源管理dll
clusres.dll 群集资源管理dll(基本的网络、存储、WINS、DHCP、脚本。。)
DfsrClus.dll DFS命名空间服务器群集资源管理dll
iSNSClusRes.dll 网络存储名称服务(iSNS)服务器群集资源管理dll
mqclus.dll 消息队列群集资源管理dll
mqtgclus.dll 消息队列触发群集资源管理dll
nfssh.dll NFS 共享群集资源管理dll
nfsshEx.dll 文件服务器群集资源管理dll
vsstask.dll 卷影副本服务任务资源dll
vmclusres.dll 虚拟机群集资源管理dll
mtxclu.dll 分布式事务处理协调器群集资源管理dll
参考:
http://support.microsoft.com/kb/914458
===========================================================
3、在每一个节点中的注册表都会保存相关的配置信息:
HKEY_LOCAL_MACHINE\Cluster
深入分析高可用性群集(一)_群集_08 
PS:根据微软的官方文档,似乎只有这一个注册表项的,而在实际操作中,我却发现了两个一样的注册表项:
深入分析高可用性群集(一)_server_09 
===========================================================
HKEY_LOCAL_MACHINE\Cluster节点包含群集的基础信息和GUID,值得注意的是安全描述为二进制
深入分析高可用性群集(一)_R2_10 
没有找到微软提供相关文档的说明,从经验上说,感觉像证书。
HKEY_LOCAL_MACHINE\Cluster\Checkpoints节点为检查点,以二进制方式存储状态信息,这个信息也会存储在仲裁盘中。
深入分析高可用性群集(一)_R2_11 
一共包含3个子项:
在CrytoContainer项中包含描述,在Data项中包含二进制状态信息。
分别为:
-Microsoft Enhanced RSA and AES Cryptographic Provider
-Microsoft Enhanced Cryptographic Provider v1.0
-Microsoft Enhanced Cryptographic Provider v1.0

深入分析高可用性群集(一)_R2_12
===========================================================
剩下的的注册表项,依次包含以下信息:
(1)群集资源依赖关系
(2)资源组
(3)网络接口信息
(4)群集网络信息
(5)节点信息
(6)仲裁盘信息
(7)资源信息
(8)资源类型信息
深入分析高可用性群集(一)_群集_13
===========================================================
在群集资源所在的节点,通过WMI TOOLS可以查看到对应的群集信息,而没有加载群集的节点,这该项为空:
深入分析高可用性群集(一)_R2_14 
PS一下。。,WMI里面的群集函数在Windows Server 2008R2里面一个都用不了。。
深入分析高可用性群集(一)_群集_15 
参考:
===========================================================
最后是仲裁盘。默认情况下为X:\Cluster
深入分析高可用性群集(一)_2008_16
对比%Systemroot%\Cluster,目录下面CLUSDB*.*的文件都是一一对应。
之前的文档也有说明,其中包含注册表中的二进制状态数据。
当发生故障转移时,仲裁盘转移至另一个节点就能够通过Cluster目录中的文件就能够快速恢复。
 
WMI TOOLS:
===========================================================
深圳市深信通软件有限公司  Http://www.sxt.com.cn
QQ:121096702 MSN:zhangzhaolong007@hotmail.com
===========================================================