MSCSではリソースに対して「実行可能な所有者」と「優先所有者」の2項目を設定することができます。MSCSによるリソースのフェイルオーバーが発生した場合、リソースは「優先所有者」のリストの一番上にリストされているノードに所有権が移動されます。元のホストノードが「優先所有者」にリストされている唯一のノードであった場合や、他の「優先所有者」記載ノードへのフェイルオーバーが不可(もしくはリストへのエントリーが無い)である場合には、リソースはその他、「実行可能な所有者」に含まれるノードに対してランダムに移動されます。
MSCSでは通常はこの2つの所有者グループ設定によってリソースの移動順位を決定しますが、「すでにあるリソースをホストしているノードにはリソースを移動させたくない」などの要件はこの2つの所有者リストだけでは対応できません。
そこで、MSCSには「AntiAffinityClassNames」というプロパティ値があります。この値はCluster.exeコマンドを使用して設定することができ、同じ名前が設定されているノードのうち、他のリソースを所有していないノードがある場合にはそのノードにリソースの移動が行われるようになります。「AntiAffinityClassName」の設定は、優先所有者リストよりも優先して扱われます。
Cluster.exeを使用した設定方法
cluster.exe group"Cluster Group Name" /prop AntiAffinityClassNames="AffinityName"
設定値はレジストリに登録されます。
HKEY_LOCAL_MACHINE\Cluster\Groups\Guid\AntiAffinityClassNames