7.2. 順序の制約
順序の制約でリソースを実行する順序を指定します。
次のコマンドを使って順序の制約を設定します。
pcs constraint order [action] resource_id then [action] resource_id [options]
表7.3「順序の制約のプロパティー」 では順序の制約を設定する場合のプロパティーとオプションについて簡単に示します。
フィールド | 説明 |
---|---|
resource_id
|
動作を行うリソースの名前。
|
action
|
リソースで実行する動作。action プロパティーでは、以下の値が使用できます。
*
start - リソースを開始します。
*
stop - リソースを停止します。
*
promote - リソースをスレーブリソースからマスターリソースにプロモートします。
*
demote - マスターリソースからスレーブリソースにリソースをデモートします。
アクションを指定しないと、デフォルトのアクションは
start になります。マスターリソースとスレーブリソースについての詳細は 「多状態のリソース: 複数モードのリソース」 を参照してください。
|
kind オプション
|
制約の実施方法。
kind オプションでは、以下の値を使用できます。
*
オプション - 両方のリソースが指定されたアクションを実行する場合にのみ適用されます。オプションの順序は 「勧告的な順序付け」 を参照してください。
*
必須 - 常に(デフォルト値)1 番目に指定したリソースが停止している場合や起動できない場合は、2 番目に指定したリソースが停止します。必須の順序の詳細は、「強制的な順序付け」 を参照してください。
*
シリアル化 - 一連のリソースに対して、2 つの停止/開始アクションが同時に実行されないようにします。
|
対称 オプション
|
7.2.1. 強制的な順序付け
mandatory 制約では 1 番目に指定しているリソースが実行されない限り 2 番目に指定しているリソースは実行できません。これは、
kind
オプションのデフォルト値です。デフォルト値のままにしておくと 1 番目に指定しているリソースの状態が変化した場合、2 番目に指定したリソー スが必ず反応するようになります。
- 1 番目に指定している実行中のリソースを停止すると、2 番目に指定しているリソースも停止されます (実行している場合)。
- 1 番目に指定している実行中のリソースが実行しておらず起動できない場合には、指定したリソースは (実行していれば) 停止します。
- 2 番目に指定しているリソースの実行中に 1 番目に指定しているリソースが再起動されると、2 番目に指定しているリソースが停止され再起動されます。
ただし、クラスターは、それぞれの状態変化に対応することに注意してください。2 番目のリソースで停止操作を開始する前に 1 番目のリソースが再起動し、起動状態にあると、2 番目のリソースを再起動する必要がありません。
7.2.2. 勧告的な順序付け
順序の制約に
kind=Optional
オプションを指定すると、制約は任意と見なされ、両方のリソースが指定のアクションを実行する場合のみ適用されます。1 番目に指定しているリソースの状態を変更しても、2 番目に指定しているリソースには影響しません。
以下のコマンドは、
VirtualIP
および dummy_resource
という名前のリソースのアドバイザリーの順序制約を設定します。
# pcs constraint order VirtualIP then dummy_resource kind=Optional
7.2.3. 順序付けされたリソースセット
一般的に、管理者は、複数のリソースの連鎖を作成する際に順序を設定します (例: リソース A が開始してからリソース B を開始し、その後にリソース C を開始)。複数のリソースを作成して同じ場所に配置し (コロケーションを指定)、起動の順序を設定する必要がある場合は、「リソースグループ」 に従って、このようなリソースが含まれるリソースグループを設定できます。ただし、特定の順序で起動する必要があるリソースをリソースグループとして設定することが適切ではない場合があります。
- リソースを順番に起動するように設定する必要があるものの、リソースは必ずしも同じ場所に配置しない場合
- リソース C の前にリソース A または B のいずれかが起動する必要があるものの、A と B の間には関係が設定されていない場合
- リソース C およびリソース D の前にリソース A およびリソース B の両方が起動している必要があるものの、A と B、または C と D の間には関係が設定されていない場合
このような状況では、pcs constraint order set コマンドを使用して、リソースの 1 つまたは複数のセットに対して順序の制約を作成できます。
pcs constraint order set コマンドを使用すると、以下のオプションをリソースのセットに設定できます。
sequential
。true
またはfalse
に設定して、リソースセットを相互に相対的に並べる必要があるかどうかを指定します。sequential
をfalse
に設定すると、セットのメンバーが互いに相対的に順序付けされることなく、順序の制約内の他のセットとの関連で順序付けることができます。そのため、このオプションは、制約に複数のセットが登録されている場合に限り有効です。それ以外の場合は、制約を設定しても効果がありません。require-all
: 続行する前にセット内のすべてのリソースがアクティブである必要があるかどうかを指定します。true
またはfalse
に設定できます。require-all
をfalse
に設定すると、次のセットに進む前に、セット内の 1 つのリソースのみを起動する必要があります。require-all
をfalse
に設定しても、シーケンシャル
がfalse
に設定されている順序なしのセットと併用されない限り、効果はありません。
pcs constraint order set コマンドの
setoptions
パラメーターの後に、リソースのセットに対する以下の制約オプションを設定できます。
id
: 定義する制約の名前を指定します。score
: 制約の優先度を示します。このオプションの詳細は 表7.4「コロケーション制約のプロパティー」 を参照してください。
pcs constraint order set resource1 resource2 [resourceN]... [options] [set resourceX resourceY ... [options]] [setoptions [constraint_options]]
D1
、D2
、および D3
という名前の 3 つのリソースがある場合、次のコマンドはそれらを順序付けされたリソースセットとして設定します。
# pcs constraint order set D1 D2 D3
7.2.4. 順序の制約からリソースを削除
次のコマンドを使用すると、すべての順序の制約からリソースが削除されます。
pcs constraint order remove resource1 [resourceN]...