複数のアフィニティーを組み合わせることによって、より複雑な動作を作成できます。たとえば、関連する複製サーバーにアプリケーションの状態を記録できます。この例におけるノード選択条件は次のとおりです。
複製サーバーは、アプリケーションと異なるノード上で動作している必要があります。
アプリケーションが現在のノードからフェイルオーバーすると、アプリケーションは、複製サーバーが動作しているノードにフェイルオーバーする必要があります。
アプリケーションが複製サーバーが動作しているノードにフェイルオーバーすると、複製サーバーは異なるノードにフェイルオーバーする必要があります。その他のノードが利用できない場合、複製サーバーはオフラインになる必要があります。
これらの条件を満たすには、アプリケーションと複製サーバーのリソースグループを次のように構成します。
アプリケーションを含むリソースグループは、複製サーバーを含むリソースグループに対する弱い肯定的なアフィニティーを宣言します。
複製サーバーを含むリソースグループは、アプリケーションを含むリソースグループに対する強い否定的なアフィニティーを宣言します。
この例では、次のリソースグループ間のアフィニティーを組み合わせるためのコマンドを示します。
リソースグループ app-rg は、複製サーバーによって状態を追跡するアプリケーションを示します。
リソースグループ rep-rg は、複製サーバーを示します。
この例では、リソースグループはアフィニティーを次のように宣言します。
リソースグループ app-rg は、リソースグループ rep-rg に対する弱い肯定的なアフィニティーを宣言します。
リソースグループ rep-rg は、リソースグループ app-rg に対する強い否定的なアフィニティーを宣言します。
この例では、両方のリソースグループが存在していると仮定します。
# clresourcegroup set -p RG_affinities=+rep-rg app-rg # clresourcegroup set -p RG_affinities=--app-rg rep-rg |