如何快速恢复故障Virtual Computer Objects (VCO)

在Windows Server 2003的群集系统中,我们需要一个域账户来安装和启动群集服务,我们将这个账户称为群集服务账户(Cluster Service Account)。然而在Windows Server 2008之后,我们移除了对这一域账号的需求,而是使用Cluster Name Object (CNO) 来取代群集服务账号。在Windows Server 2008中这其实是一种改进,因为在Windows Server 2003下域管理员配置域级别的组策略可能会影响到群集服务的域账号,此外, 终端用户可能在初始配置Cluster之后更改群集服务账号,但可能会忘记将新的群集服务账号加入本地管理员组中并赋予合适的权限 (具体可参考https://support.microsoft.com/kb/269229)。而在Windows Server 2008群集中,群集服务则是运行于本地系统账号。

 

CNO默认位于域控制器Active Directory的Computers容器中,它相应于具体群集中的群集名称。而VCO是由群集的CNO所创建和拥有的。比如:我们创建了一个群集,称为”W2K8-CLUS”并拥有三个组,分别是”CONTOSO-FS1”, “CONTOSO-PS1””CONTOSO-PS2”。Active Directory端会包含四个Computer Objects: W2K8-CLUS(CNO), CONTOSO-FS1 (VCO), CONTOSO-PS1(VCO), CONTOSO-PS2(VCO)。W2K8-CLUS是CONTOSO-FS1, CONTOSO-PS1, CONTOSO-PS2的拥有者。

在Windows Server 2008群集的日常管理和维护中,我们可能会遇到相应于VCO的网络名称无法正常上线的故障。当前我们有多种方法处理此类问题,其中有一种相对而言最为快速而且稳妥的方法可以进行修复。其原理是通过重建网络名称和相应的IP地址之间的关系,然后自动在Active Directory中的重新创建VCO来实现修复目的。

1. 修改故障高可用性应用或者服务组的依赖关系。首先将所有资源下线,然后移除VCO相应的网络名称资源的依赖关系。

2. 一旦对于CAP (Client Access Point, 包括网络名称和其IP地址) 的所有依赖关系已经被移除了,我们就可以将这个CAP手动删除。例如:下图中的CAP包括2k8r2clusterFS和10.0.0.110。

3. 请确保故障网络名称资源相应的VCO在Active Directory上被移除。

4. 在删除CAP的此应用组中重新创建CAP,然后将各资源之间的依赖关系恢复到原来的状态。

5. 将所有资源手动上线。

6. 请验证相应于网络名称资源的VCO已经在Active Directory中自动创建了。

 

更加具体的关于Windows Server 2008中CNO和VCO的内容,请参考:

Configuring Accounts for Active Directory 

https://technet.microsoft.com/en-us/library/cc731002.aspx

Description of the failover cluster security model in Windows Server 2008

https://support.microsoft.com/kb/947049