Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
7.3. リソースのコロケーション
任意のリソースの場所を別のリソースの場所に依存するよう定義するのがコロケーションの制約です。
2 つのリソース間にコロケーション制約を作成すると、リソースがノードに割り当てられる割り当てる順序に重要な影響を及ぼす点に注意してください。リソース B の場所を把握していない場合は、リソース B に相対的となるようにリソース A を配置することができません。このため、コロケーションの制約を作成する場合は、リソース A をリソース B に対してコロケーションを設定するのか、もしくはリソース B をリソース A に対してコロケーションを設定するのかを考慮する必要があります。
また、コロケーションの制約を作成する際に注意しておきたいもう 1 つの点として、リソース A をリソース B に対してコロケーションすると仮定した場合、クラスターがリソース B に選択するノードを決定する際、リソース A の優先度も考慮に入れます。
次のコマンドはコロケーションの制約を作成します。
pcs constraint colocation add [master|slave] source_resource with [master|slave] target_resource [score] [options]
マスターリソースとスレーブリソースについての詳細は 「多状態のリソース: 複数モードのリソース」 を参照してください。
表7.4「コロケーション制約のプロパティー」 は、コロケーション制約を設定するのに使用するプロパティーおよびオプションをまとめています。
表7.4 コロケーション制約のプロパティー
フィールド | 説明 |
---|---|
source_resource
|
コロケーションソース。制約の条件を満たさない場合、クラスターではこのリソースの実行を許可しないことを決定する可能性があります。
|
target_resource
|
コロケーションターゲット。クラスターは、このリソースの配置先を決定してから、ソースリソースの配置先を決定します。
|
score
|
正の値を指定するとリソースが同じノードで実行します。負の値を指定すると同じノードで実行しなくなります。デフォルト値である +
INFINITY を指定すると、source_resource は必ず target_resource と同じノードで実行します。-INFINITY は、source_resource を target_resource と同じノードで実行してはならないことを示しています。
|
7.3.1. 強制的な配置
制約スコアが
+INFINITY
または -INFINITY
の場合は常に強制的な配置が発生します。制約条件が満たされないと source_resource の実行が許可されません。score=INFINITY
の場合、target_resource がアクティブではないケースが含まれます。
myresource1
を、常に myresource2
と同じマシンで実行する必要がある場合は、次のような制約を追加します。
# pcs constraint colocation add myresource1 with myresource2 score=INFINITY
INFINITY
を使用しているため、(何らかの理由で) myresource2
がクラスターのいずれのノードでも実行できない場合は、myresource1
の実行が許可されません。
または、逆の設定、つまり
myresource1
が myresource2
と同じマシンでは実行されないようにクラスターを設定することもできます。この場合は score=-INFINITY
を使用します。
# pcs constraint colocation add myresource1 with myresource2 score=-INFINITY
ここでも、
-INFINITY
を指定することで、制約は結合しています。このため、実行できる場所として残っているノードで myresource2
がすでに実行されている場合は、いずれのノードでも myresource1
を実行できなくなります。