One of the limitations of Windows 2000-based server clusters is that they have no mechanism for a conditional failover. For example, you cannot configure an Exchange Virtual Server to move to one node when one failure occurs and to a different node when another failure occurs. Nor can you configure an Exchange Virtual Server to fail over to a second node in the event that the first node is too busy. In Windows Server 2003 clusters, this limitation is addressed with a new cluster group property named AntiAffinityClassNames. The value for this property is any arbitrary string. However, this string is often program-specific. For example, Exchange 2003 sets this value to Microsoft Exchange Virtual Server.
AntiAffinityClassNames are used to designate a node as a possible owner for a particular resource group in a cluster containing three or more nodes. In a Windows Server 2003 cluster, if a resource failure occurs that affects the resource group, Failover Manager checks the value for AntiAffinityClassNames. For example, when an Exchange Virtual Server resource fails, the cluster failover manager determines if resource groups on any one of the other nodes, designated as possible owners of the Exchange Virtual Server, have Microsoft Exchange Virtual Server set as the value for the AntiAffinityClassNames property. Only nodes that currently contain an Exchange Virtual Server have this value set. Therefore, a node without this value is the best possible destination for the group with the failed resource.
The following scenarios demonstrate how the AntiAffinityClassNames property can be used:
-
The property can be used in an N+1 Exchange server cluster. In this case, Exchange should set up each group that supports a partition with the AntiAffinityClassNames property set to an Exchange-specific value (the same value for each group). If there is a failure, the failover manager can attempt to keep the partitions apart by selecting nodes that do not contain groups with the same AntiAffinityClassNames value of Exchange Virtual Server.
-
The property can be used in a server consolidation in which there are multiple programs that should be kept apart. In these cases, the groups that represent the various programs should be manually modified with the same value in the AntiAffinityClassNames property.
This property can only be configured using the CLUSTER.EXE command-line tool. An example of the proper syntax for the example that is listed in the first preceding scenario is:
cluster group "Name of Group" /prop AntiAffinityClassNames="Microsoft Exchange Virtual Server"
This command creates the following registry key:
|
Location
|
HKLM\Cluster\Groups\<Guid>\
|
|
Value
|
AntiAffinityClassNames
|
|
Type
|
REG_MULTI_SZ
|
|
Value Data
|
Microsoft Exchange Virtual Server
|
After this property is set, failover and failback policies are configured using the Best Possible option in Cluster Administrator, instead of specifying specific nodes for a policy. For more information, see Microsoft Knowledge Base article 299631, "Failover Behavior on Clusters of Three or More Nodes."