Oracle® Solaris Cluster データサービス計画および管理ガイド

印刷ビューの終了

更新: 2014 年 9 月
 
 

リソースグループの別のリソースグループとの共用関係の適用

あるリソースグループによって表されるサービスが 2 つ目のリソースグループ内のサービスに強く依存しすぎているために、両方のサービスを同じノード上で実行しなければならないことがあります。たとえば、互いに依存する複数のサービスデーモンで構成されているアプリケーションでは、すべてデーモンを同じノード上で実行することが必要な場合があります。

このような状況では、依存するサービスのリソースグループがもう一方のサービスのリソースグループと共用関係を持つように強制します。リソースグループの別のリソースグループとの共用関係を適用するには、そのリソースグループ上で、ほかのリソースグループに対する強い肯定的なアフィニティーを宣言します。

# clresourcegroup set|create -p RG_affinities=++target-rg source-rg
source-rg

強い肯定的なアフィニティーのソースであるリソースグループを指定します。このリソースグループは、別のリソースグループに対する強い肯定的なアフィニティーを宣言している場所のリソースグループです。

-p RG_affinities=++target-rg

強い肯定的なアフィニティーのターゲットであるリソースグループを指定します。このリソースグループは、強い肯定的なアフィニティーを宣言している相手のリソースグループです。

リソースグループは、強い肯定的なアフィニティーを持っている相手のリソースグループに追従します。ターゲットリソースグループが別のノードに再配置された場合、ソースリソースグループは、ターゲットと同じノードに自動的に切り替えられます。ただし、強い肯定的なアフィニティーを宣言しているリソースグループが、そのアフィニティーのターゲットがまだ実行されていないノードにフェイルオーバーすることは妨げられます。


注 -  妨げられるのは、リソースモニターによって開始されたフェイルオーバーだけです。ソースリソースグループとターゲットリソースグループが実行されているノードに障害が発生した場合は、両方のリソースグループが同じ動作中のノードにフェイルオーバーします。

たとえば、リソースグループ rg1 が、リソースグループ rg2 に対する強い肯定的なアフィニティーを宣言しているとします。rg2 が別のノードにフェイルオーバーした場合は、rg1 もそのノードにフェイルオーバーします。このフェイルオーバーは、rg1 内のすべてのリソースが動作中であっても実行されます。ただし、rg1 内のリソースが rg1rg2 が実行されていないノードにフェイルオーバーしようとした場合、この試みはブロックされます。

強い肯定的なアフィニティーのターゲットをオンラインにしたとき、その強い肯定的なアフィニティーのソースは、すべてのノード上でオフラインである可能性があります。この状況では、その強い肯定的なアフィニティーのソースは、ターゲットと同じノード上で自動的にオンラインになります。

たとえば、リソースグループ rg1 が、リソースグループ rg2 に対する強い肯定的なアフィニティーを宣言しているとします。両方のリソースグループは最初、すべてのノード上でオフラインです。管理者があるノード上で rg2 をオンラインにした場合、rg1 は同じノード上で自動的にオンラインになります。

clresourcegroup suspend コマンドを使用すると、強いアフィニティーまたはクラスタ再構成のために、リソースグループが自動的にオンラインになることを回避できます。

強い肯定的なアフィニティーを宣言しているリソースグループをフェイルオーバーできるようにする必要がある場合は、フェイルオーバーを委託する必要があります。詳細は、リソースグループのフェイルオーバーまたはスイッチオーバーの委託を参照してください。

使用例 2-48  リソースグループの別のリソースグループとの共用関係の適用

この例では、リソースグループ rg1 を、リソースグループ rg2 に対する強い肯定的なアフィニティーを宣言するように変更するためのコマンドを示します。このアフィニティー関係の結果として、rg1 は、rg2 が実行されているノード上でのみオンラインになります。この例では、両方のリソースグループが存在すると仮定します。

# clresourcegroup set -p RG_affinities=++rg2 rg1