第13章 クラスターリソースのコロケーション
あるリソースの場所を、別のリソースの場所に依存させるように指定する場合は、コロケーションの制約を設定します。
2 つのリソース間にコロケーション制約を作成すると、リソースがノードに割り当てられる割り当てる順序に重要な影響を及ぼす点に注意してください。リソース B の場所を把握していない場合は、リソース B に相対的となるようにリソース A を配置することができません。このため、コロケーションの制約を作成する場合は、リソース A をリソース B に対してコロケーションを設定するのか、もしくはリソース B をリソース A に対してコロケーションを設定するのかを考慮する必要があります。
また、コロケーションの制約を作成する際に注意しておきたいもう 1 つの点として、リソース A をリソース B に対してコロケーションを設定すると仮定した場合は、クラスターがリソース B に選択するノードを決定する際に、リソース A の優先度も考慮に入れます。
次のコマンドはコロケーションの制約を作成します。
# pcs constraint colocation add [promoted|unpromoted] source_resource with [promoted|unpromoted] target_resource [score] [options]
以下の表は、コロケーション制約を設定するのに使用するプロパティーおよびオプションをまとめています。
- コロケーション制約のパラメーター
| パラメーター | 説明 |
|---|---|
| source_resource | コロケーションソース。制約の条件を満たさない場合、クラスターではこのリソースの実行を許可しないことを決定する可能性があります。 |
| target_resource | コロケーションターゲット。クラスターは、このリソースの配置先を決定してから、ソースリソースの配置先を決定します。 |
| score |
正の値を指定するとリソースが同じノードで実行します。負の値を指定すると同じノードで実行しなくなります。デフォルト値である + |
|
| 従属リソースが移行のしきい値に達して失敗した場合に、クラスターで別のノードにプライマリーリソース (source_resource) と従属リソース (target_resource) を移行するか、クラスターでサーバーの切り替えなしに従属リソースをオフラインのままにするかを決定します。
このオプションの値が
このオプションの値が |
- コロケーション制約の表示
次のコマンドは、現在のコロケーション制約をリスト表示します。
pcs constraint colocation [config]次のコマンドを使用すると、現在の場所、順序、およびコロケーションの制約をすべて表示できます。内部制約 IDS を表示するには、
--fullオプションを指定します。pcs constraint [config] [--full]デフォルトでは、リソースの制約のリストには、期限切れの制約は表示されません。リストに期限切れの制約を含めるには、
pcs constraintコマンドに--allオプションを使用します。これにより、期限切れの制約のリストが表示され、制約とそれに関連するルールが(expired)として表示されます。以下のコマンドは、特定リソースを参照する制約をリスト表示します。
# pcs constraint ref resource ...
13.1. リソースの強制的な配置の指定 リンクのコピーリンクがクリップボードにコピーされました!
制約スコアが +INFINITY または -INFINITY の場合は常に強制的な配置が発生します。制約条件が満たされないと source_resource の実行が許可されません。score=INFINITY には、target_resource がアクティブではないケースも含まれます。
手順
myresource1を、常にmyresource2と同じマシンで実行する必要がある場合は、次のような制約を追加します。# pcs constraint colocation add myresource1 with myresource2 score=INFINITYINFINITYを使用しているため、(何らかの理由で)myresource2がクラスターのいずれのノードでも実行できない場合は、myresource1の実行が許可されません。または、逆の設定、つまり
myresource1がmyresource2と同じマシンでは実行されないようにクラスターを設定することもできます。この場合はscore=-INFINITYを使用します。# pcs constraint colocation add myresource1 with myresource2 score=-INFINITYここでも、
-INFINITYを指定することで、制約は結合しています。このため、実行できる場所として残っているノードでmyresource2がすでに実行されている場合は、いずれのノードでもmyresource1を実行できなくなります。