第3章 RGManager

RGManager は、サービスと呼ばれるクラスターリソースやリソースグループまたはリソースツリーなどの集合体に対するフェイルオーバー機能を管理し、これらを提供します。これらのリソースグループはツリー構造に編成されており、親/子の依存関係と継承関係を各サブツリー内に有します。
RGManager では、管理者がクラスターサービスの定義、設定および監視を実行できます。ノードに障害が発生すると、RGManager はクラスター化されたサービスを別のノードに再配置して、サービスの中断を最小限に抑えます。また、mysql を別個のノード・セットに制限したり httpd を 1 つのノードグループに制限するなど、サービスを特定ノードに制限することもできます。
RGManager は、各種のプロセスとエージェントを組み合わせて使用されます。以下のリストは、それらの分野の概要を示しています。
  • フェイルオーバードメイン - RGManager フェイルオーバードメインシステムの機能
  • サービスポリシー - Rgmanager のサービス起動とリカバリーポリシー
  • リソースツリー - rgmanager のリソースツリーの機能 (起動/停止の順序および継承を含む)
  • サービスオペレーションの動作 - rgmanager のオペレーション機能とそれぞれの状態の意味
  • 仮想マシンの動作 - rgmanager クラスターで VM を実行する際に留意すべき特記事項
  • ResourceActions - RGManager が使用するエージェントのアクションと cluster.conf ファイルからそれらの動作をカスタマイズする方法
  • イベントスクリプト - rgmanager のフェイルオーバーおよびリカバリーポリシーが環境に適さない場合に、このスクリプトサブシステムを使用して独自にカスタマイズできる。

3.1. フェイルオーバードメイン

フェイルオーバードメインは、サービスがバインドされる可能性のあるメンバーの順序付けられたサブセットです。フェイルオーバードメインは、クラスターのカスタマイズには役立ちますが操作に必須ではありません。
以下に、フェイルオーバードメインの動作に影響を与える複数の設定オプションについて、これらを規定するセマンティクスをリストします。
  • Preferred (優先) ノードまたはメンバー: 優先ノードは、オンライン時に所定サービスを実行するように指定されるメンバーです。1 つのメンバーの順序付けや制限のないフェイルオーバードメインを指定すると、この動作をエミュレートすることができます。
  • Restricted (制限あり) ドメイン: このドメインにバインドされるサービスは、フェイルオーバードメインのメンバーであるクラスターメンバー上でのみ実行できます。フェイルオーバーのメンバーがいずれも使用できない場合、サービスは停止状態に置かれます。複数メンバーを含むクラスターでは、制限ありのフェイルオーバードメインを使用すると、サービスを実行するすべてのメンバーに同一設定が必要なクラスターサービス (httpd など) の設定が容易になります。クラスターサービスを実行するクラスター全体を設定する代わりに、クラスターサービスに関連した、制限ありフェイルオーバードメイン内のメンバーのみをセットアップすることが必要になります。
  • Unrestricted (制限なし) ドメイン: デフォルトの動作。このドメインにバインドされるサービスはすべてのクラスターメンバー上で実行できますが、ドメインのメンバーが利用可能になる場合は常にドメインのメンバー上で実行されます。つまり、Failback (フェイルバック) を設定していない限り、サービスがドメイン外で実行されていてもドメインのメンバーがオンラインになると、サービスはそのメンバーに移行します。
  • Ordered (優先順あり) ドメイン: この設定で指定される順序がドメイン内のメンバーの優先順を決定します。ドメインの最もランキングが高いメンバーは、オンラインの場合に常にサービスを実行します。つまり、メンバー A のランクがメンバー B のランクよりも高い場合、A がオフラインからオンラインに移行するとサービスは B で実行されていても A に移行します。
  • Unordered (優先順なし) ドメイン: デフォルトの動作。ドメインのメンバーには優先順が設定されません。任意のメンバーがサービスを実行できます。サービスは、可能な場合は常にフェイルオーバードメインのメンバーに移行します (ただし、優先順なしのドメイン)。
  • Failback (フェイルバック): 優先順ありフェイルオーバードメインのメンバー上のサービスは、ノード障害の前に元々実行していたノードへフェイルバックする必要があります。これは、失敗を繰り返すノードとフェイルオーバーノード間の頻繁なサービスの切り替えを防ぐのに役立ちます。
Ordering (順序付け)、restriction (制限)、nofailback (フェイルバックなし) はフラグであり、ほぼすべての組み合わせ (ordered+restricted、unordered+unrestricted など) が可能です。これらの組み合わせは、初回の定足数形成後のサービスを起動する場所や、サービスが失敗した場合にどのクラスターメンバーがサービスを引き継ぐかに影響を与えます。

3.1.1. 動作の例

クラスターが以下のメンバーセットから構成されるとします。{A, B, C, D, E, F, G}
優先順あり、制限ありフェイルオーバードメイン {A, B, C}
nofailback の設定解除: サービス「S」は、メンバー「A」がオンラインになり、定足数が設定されている場合に常にメンバー「A」上で実行されます。{A, B, C} のすべてのメンバーがオフラインの場合サービスは実行されません。サービスが「C」上で実行されている場合に「A」がオンラインに移行すると、サービスは「A」に移行します。
nofailback の設定: サービス「S」は、定足数が形成されると最も優先順位の高いクラスターメンバー上で実行されます。{A, B, C} のすべてのメンバーがオフラインの場合サービスは実行されません。サービスが「C」上で実行されている場合に「A」がオンラインに移行すると、サービスは「C」が失敗しない限り「C」上に残ります。「C」が失敗するとその時点で、サービスは「A」にフェイルオーバーします。
優先順なし、制限ありフェイルオーバードメイン {A, B, C}
サービス「S」は、定足数が設定されており、かつ {A, B, C} の 1 つ以上のメンバーがオンラインの場合にのみ実行されます。ドメインの他のメンバーがオンラインに移行してもサービスは再配置されません。
優先順あり、制限なしフェイルオーバードメイン {A, B, C}
nofailback の設定解除: サービス「S」は定足数が設定されている場合に常に実行されます。フェイルオーバードメインのメンバーがオンラインになる場合、サービスは優先順位の最も高いメンバー上で実行されます。そうでない場合は、サービスを実行するためにクラスターのメンバーがランダムに選択されます。つまり、サービス「A」がオンラインの場合は常に「A」で実行され、その後に「B」が続きます。
nofailback の設定: サービス「S」は、定足数が設定されている場合に常に実行されます。定足数の形成時にフェイルオーバードメインのメンバーがオンラインになっている場合、サービスはフェイルオーバードメインの優先順位の最も高いメンバー上で実行されます。つまり、「B」がオンラインになっている (「A」はオンラインではない) 場合、サービスは「B」で実行されます。後に「A」がクラスターに入る場合も、サービスは「A」に再配置されません。
優先順なし、制限なしフェイルオーバードメイン {A, B, C}
これは、「優先メンバーのセット」とも言われます。フェイルオーバードメインの 1 つ以上のメンバーがオンラインの場合、サービスはフェイルオーバードメインの不特定のオンラインメンバー上で実行されます。フェイルオーバードメインの別のメンバーがオンラインに移行しても、サービスは再配置されません。