第12章 リソースを実行するノードの決定
場所の制約は、リソースを実行するノードを指定します。場所の制約を設定することで、たとえば特定のノードで優先してリソースを実行する、または特定のノードではリソースを実行しないことを決定できます。
場所の制約に加え、リソースが実行されるノードは、そのリソースの resource-stickiness 値に影響されます。これは、リソースが現在実行しているノードに留まることをどの程度優先するかを決定します。
12.1. 場所の制約の設定 リンクのコピーリンクがクリップボードにコピーされました!
場所の制約を設定すると、クラスター内のどのノードでクラスターリソースを実行できるかを制御できます。場所の制約を使用すると、リソースを特定のノードで優先的に実行したり、特定のノードで実行するのを禁止したりすることができます。
12.1.1. 基本的な場所の制約の設定 リンクのコピーリンクがクリップボードにコピーされました!
基本的な場所の制約を設定し、オプションの score 値で制約の相対的な優先度を指定することで、リソースの実行を特定のノードで優先するか、回避するかを指定できます。
手順
次のコマンドは、指定したノードでリソースを優先的に実行する場所の制約を作成します。1 回のコマンドで、特定のリソースの制約を複数のノードに対して作成できます。
# pcs constraint location rsc prefers node[=score] [node[=score]] ...次のコマンドは、指定したノードでリソースが実行されないようにする場所の制約を作成します。
# pcs constraint location rsc avoids node[=score] [node[=score]] ...次の表は、場所の制約を設定するための基本的なオプションの説明をまとめたものです。
Expand 表12.1 場所の制約オプション フィールド 説明 rscリソース名
nodeノード名
score指定のリソースが指定のノードを優先するべきか回避するべきかを示す優先度を示す正の整数値。
INFINITYは、リソースの場所制約のデフォルトscore値です。pcs constraint location rsc prefersコマンドでscoreの値をINFINITYにすると、そのノードが利用可能な場合は、リソースがそのノードで優先的に実行します。ただし、そのノードが利用できない場合に、別のノードでそのリソースを実行しないようにする訳ではありません。pcs constraint location rsc avoidsコマンドでscoreにINFINITYを指定すると、その他のノードが利用できない場合でも、そのリソースはそのノードでは実行されないことを示します。これは、-INFINITYのスコアでpcs constraint location addコマンドを設定するのと同じです。数値スコア (
INFINITY以外) は、その制約が任意で、それを上回る要因が他にない限り有効となることを意味します。たとえば、リソースがすでに別のノードに配置されており、そのresource-stickinessスコアが場所の制約のprefersスコアよりも高い場合、リソースはそのまま現在の場所に残ります。
12.1.2. 正規表現による場所制約の設定 リンクのコピーリンクがクリップボードにコピーされました!
pcs は、リソース名を照合するための場所の制約に関する正規表現に対応しています。この機能を使用すると、単一のコマンドで複数の場所の制約を設定できます。
手順
次のコマンドは、
dummy0からdummy9までのリソースをnode1で優先的に実行するように指定する場所の制約を作成します。# pcs constraint location 'regexp%dummy[0-9]' prefers node1
12.1.3. 拡張正規表現を使用した場所の制約の設定 リンクのコピーリンクがクリップボードにコピーされました!
The Open Group Base Specifications Issue 7 の 9.4 Extended Regular Expressions セクションに記載されているとおり、Pacemaker は POSIX 拡張正規表現を使用するため、以下のコマンドで同じ制約を指定できます。
手順
拡張正規表現を使用して場所の制約を設定するには、以下を実行します。
# pcs constraint location 'regexp%dummy[[:digit:]]' prefers node1
12.1.4. 場所の制約の表示 リンクのコピーリンクがクリップボードにコピーされました!
場所の制約を表示して、リソース配置ロジックを検証します。表示はリソースまたはノードごとに整理したり、特定の項目をフィルタリングしたり、トラブルシューティング目的で期限切れの制約や内部 ID を含めたりできます。
手順
現在の場所の制約をすべてリスト表示するには、以下を実行します。
# pcs constraint location [config [resources [resource...]] | [nodes [node...]]] [--full]-
resourcesが指定されている場合、このコマンドはリソースごとに制約を表示します (デフォルト)。 -
nodesが指定されている場合、このコマンドはノードごとに制約を表示します。 - 特定のリソースまたはノードを指定した場合、このコマンドはその情報のみを表示します。
-
現在の場所、順序、およびコロケーション制約をすべて表示するには、次のコマンドを使用します。制約の内部 ID を表示するには、
--fullオプションを指定します。# pcs constraint [config] [--full]デフォルトでは、リソースの制約のリストには、期限切れの制約は表示されません。期限切れの制約をリストに含めるには、
pcs constraintコマンドの--allオプションを使用します。これにより、期限切れの制約のリストが表示され、制約とそれに関連するルールが(expired)として表示されます。特定のリソースを参照する制約をリスト表示するには、以下を実行します。
# pcs constraint ref resource ...