7.2. 順序の制約

順序の制約はリソースの実行順序を指定します。順序の制約を設定することでリソースの起動と停止の順序を指定することができます。
次のコマンドを使って順序の制約を設定します。
pcs constraint order [action] resource_id then [action] resource_id [options]
表7.2「順序の制約のプロパティ」 では順序の制約を設定する場合のプロパティとオプションについて簡単に示します。

表7.2 順序の制約のプロパティ

フィールド説明
resource_id
動作を行うリソースの名前
action
リソースで行う動作、action プロパティで使用できる値:
* start - リソースを起動する
* stop - リソースを停止する
* promote - スレーブリソースからマスターリソースにリソースの昇格を行う
* demote - マスターリソースからスレーブリソースにリソースの降格を行う
動作を指定しないとデフォルトの動作 start が設定されます。マスターリソースとスレーブリソースについての詳細は 「多状態のリソース: 複数モードのリソース」 を参照してください。
kind オプション
制約の実施方法、kind オプションで使用できる値:
* Optional - 両方のリソースが指定のアクションを実行する場合のみ適用されます。順序は 「勧告的な順序付け」 を参照してください。
* Mandatory - 常に実施 (デフォルト値)、1 番目に指定したリソースが停止しているまたは起動できない場合、2 番目に指定されているリソースを停止しなければなりません (「強制的な順序付け」 を参照)
* Serialize - リソースセットに対して 2 種類の動作、停止と起動が同時に発生しないようにする
symmetrical オプション
If true, which is the default, stop the resources in the reverse order. Default value: true

7.2.1. 強制的な順序付け

mandatory 制約では 1 番目に指定しているリソースが実行されない限り 2 番目に指定しているリソースは実行できません。 これが kind オプションのデフォルトです。デフォルト値のままにしておくと 1 番目に指定しているリソースの状態が変化した場合、2 番目に指定したリソー スが必ず反応するようになります。
  • 1 番目に指定している実行中のリソースを停止すると 2 番目に指定しているリソースも停止されます (実行していれば)。
  • 1 番目に指定しているリソースが実行されていない状態でまた起動できない場合には 2 番目に指定しているリソースが停止されます (実行していれば)。
  • 2 番目に指定しているリソースの実行中に 1 番目に指定しているリソースが再起動されると、2 番目に指定しているリソースが停止され再起動されます。

7.2.2. 勧告的な順序付け

順序の制約に kind=Optional オプションが指定された場合、制約は任意として考慮され、両方のリソースが指定のアクションを実行する場合のみ適用されます。最初に指定するリソースによる状態の変更は 2 番目に指定するリソースに影響を与えません。
次のコマンドは VirtualIP というリソースと dummy_resource というリソースに勧告的な順序付けの制約を設定します。
# pcs constraint order VirtualIP then dummy_resource kind=Optional 

7.2.3. 順序付けされたリソースセット

一般的に、管理者は順序付けされたリソースのチェーンを作成します (例: リソース C の前にリソース B が開始し、リソース B の前にリソース A が開始)。設定により、順番にコロケートおよび開始されるリソースのセットを作成する必要がある場合、「リソースグループ」 の説明にしたがってこれらのリソースが含まれるリソースグループを設定できます。しかし、リソースが順番に開始されるよう設定を行う必要があり、それらのリソースはコロケートされる必要がない場合、pcs constraint order set コマンドを使用してリソースのセットに順序付けの制約を作成できます。
pcs constraint order set コマンドを使用すると、以下のオプションをリソースのセットに設定できます。
  • sequential: true または false に設定でき、リソースのセットが相対的に順序付けされる必要があるかどうかを示します。
    sequentialfalse に設定すると、順序付けの制約で他のセットに対して相対的に順序付けすることができますが、セットのメンバーは相対的に順序付けされません。そのため、このオプションは制約に複数のセットがリストされている場合のみ有効です。それ以外の場合、制約の効果はありません。
  • require-all: true または false を設定でき、続行する前にセットのすべてのリソースがアクティブである必要があるかどうかを示します。require-allfalse に設定した場合、次のセットに継続する前にセットの 1 つのリソースのみが開始される必要があります。require-allfalse に設定した場合、sequentialfalse に設定された順序付けされていないセットと併用しないと効果がありません。
  • action: 表7.2「順序の制約のプロパティ」 の説明どおり、startpromotedemote、または stop に設定できます。
pcs constraint order set コマンドの setoptions パラメーターの後に、リソースのセットに対する以下の制約オプションを設定できます。
pcs constraint order set resource1 resource2 [resourceN]... [options] [set resourceX resourceY ... [options]] [setoptions [constraint_options]]
D1D2D3 という 3 つのリソースがあると仮定した場合、次のコマンドはこの 3 つのリソースを順序付けされたひとつのリソースセットとして設定します。
# pcs constraint order set D1 D2 D3

7.2.4. 順序の制約からリソースを削除

次のコマンドを使用するとすべての順序の制約からリソースを削除します。
pcs constraint order remove resource1 [resourceN]...