複数のアフィニティーを組み合わせることによって、より複雑な動作を作成できます。たとえば、アプリケーションの状態を、関連するレプリカサーバーで記録することもできます。この例でのノード選択の要件は次のとおりです。
レプリカサーバーは、アプリケーションとは別のノード上で実行する必要があります。
アプリケーションがその現在のノードからフェイルオーバーする場合、そのアプリケーションは、レプリカサーバーが実行されているノードにフェイルオーバーします。
レプリカサーバーが実行されているノードにアプリケーションがフェイルオーバーした場合、そのレプリカサーバーは別のノードにフェイルオーバーする必要があります。ほかに使用可能なノードがない場合、レプリカサーバーはオフラインになる必要があります。
これらの要件を満たすには、アプリケーションとレプリカサーバーのためのリソースグループを次のように構成します。
アプリケーションを含むリソースグループは、レプリカサーバーを含むリソースグループに対する弱い肯定的なアフィニティーを宣言します。
レプリカサーバーを含むリソースグループは、アプリケーションを含むリソースグループに対する強い否定的なアフィニティーを宣言します。
この例では、次のリソースグループ間のアフィニティーを組み合わせるためのコマンドを示します。
リソースグループ 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