7.2. 順序の制約

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

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

フィールド説明
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. 順序付けされたリソースセット

一般的に、管理者は、複数のリソースを作成する際に順序を設定します (例: リソース 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 に設定でき、リソースのセットが相対的に順序付けされる必要があるかどうかを示します。
    sequentialfalse に設定すると、順序付けの制約で他のセットに対して相対的に順序付けすることができますが、セットのメンバーは相対的に順序付けされません。そのため、このオプションは制約に複数のセットがリストされている場合のみ有効です。それ以外の場合、制約の効果はありません。
  • require-all: true または false を設定でき、続行する前にセットのすべてのリソースがアクティブである必要があるかどうかを示します。require-allfalse に設定した場合、次のセットに継続する前にセットの 1 つのリソースのみが開始される必要があります。require-allfalse に設定した場合、sequentialfalse に設定された順序付けされていないセットと併用しないと効果がありません。
  • action: 表7.3「順序の制約のプロパティ」 の説明どおり、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]...