7.4. フェイルオーバードメインの設定
フェイルオーバードメインは、ノードに障害が発生した場合にクラスターサービスを実行するのに有効なクラスターノードの名前付きサブセットです。フェイルオーバードメインは、以下の特性を持つことができます:
- Unrestricted(制限なし) — 優先するメンバーのサブセットを指定できるようにしますが、このドメインに割り当てられたクラスターサービスはいずれの利用可能なメンバーでも実行できます。
- Restricted(制限あり) — 特定のクラスターサービスを実行できるメンバーを制限できるようにします。制限されたフェイルオーバードメインのメンバーがどれも使用できない場合は、クラスターサービスは (手動あるいはクラスターソフトウェアによっても) 開始できません。
- Unordered(優先順なし) — クラスターサービスが優先順なしのフェイルオーバードメインへ割り当てられる場合、クラスターサービスを実行するメンバーは、優先順なしの利用可能なフェイルオーバードメインメンバーから選択されます。
- Ordered(優先順あり) — フェイルオーバードメインのメンバー内で優先順を指定できるようにします。優先順フェイルオーバードメインは、優先順位が一番低い番号を持つノードを最初に選択します。すなわち、フェイルオーバードメイン内で優先番号 "1" を持つノードの優先度が最も高くなるため、フェイルオーバードメイン内で最優先すべきノードとなります。そのノードの次に優先されるノードは、次に高い優先番号を持つノードとなります。
- Failback(フェイルバック) — フェイルオーバードメイン内のサービスが、ノード障害の前に元々実行していたノードへフェイルバックするかどうかを指定できるようにします。この特性の設定が役立つのは、ノードが繰り返し失敗し、それが優先順ありのフェイルオーバードメインの一部であるような状況です。この状況では、ノードがフェイルオーバードメイン内の優先ノードである場合には、優先ノードと別のノード間でサービスがフェイルオーバーとフェイルバックを繰り返す可能性があるため、パフォーマンスに重大な影響を与えることになります。
注記
優先順のあるフェイルオーバーが設定されている場合にのみ、フェイルバックの特性が利用できます。
注記
フェイルオーバードメイン設定を変更しても、現在実行中のサービスには影響しません。
注記
フェイルオーバードメインは、運用には必須 ではありません。
デフォルトでは、フェイルオーバードメインは制限なしで優先順がありません。
複数のメンバーを持つクラスター内では、制限ありのフェイルオーバードメインを使用することで、クラスターサービス (
httpd
など) を実行するためのクラスターを設定する作業を最小限にできます。このためには、クラスターサービスを実行する全てのメンバー上で、設定を同一にする必要があります。クラスターサービスを実行するようクラスター全体を設定する代わりに、クラスターサービスに関連付ける制限ありのフェイルオーバードメイン内のメンバーのみを設定するだけで済みます。
注記
優先するメンバーを設定するには、1 つだけのクラスターメンバーから成る制限なしのフェイルオーバードメインを作成します。そうすることで、クラスターサービスが主にそのクラスターメンバー (優先メンバー) 上で実行することになりますが、クラスターサービスは他のどのメンバーにでもフェイルオーバーできるようになります。
フェイルオーバードメインを設定するには、以下の手順を使用します:
- クラスター内のいずれかのノードで
/etc/cluster/cluster.conf
を開きます。 - 使用する各フェイルオーバードメイン用の
rm
要素内に以下のスケルトンセクションを追加します:<failoverdomains> <failoverdomain name="" nofailback="" ordered="" restricted=""> <failoverdomainnode name="" priority=""/> <failoverdomainnode name="" priority=""/> <failoverdomainnode name="" priority=""/> </failoverdomain> </failoverdomains>
注記
failoverdomainnode
属性の数はフェイルオーバードメイン内のノード数で変化します。前述したテキスト内のスケルトンfailoverdomain
セクションは 3 つのfailoverdomainnode
要素を示しており、フェイルオーバードメインに 3 つのノードが存在することを示唆しています。 failoverdomain
セクションでは、要素と属性の値を提供します。要素と属性の説明については、注釈付きクラスタースキーマの 『failoverdomain』 セクションを参照してください。注釈付きクラスタースキーマはいずれかのクラスターノード内の/usr/share/doc/cman-X.Y.ZZ/cluster_conf.html
(例えば、/usr/share/doc/cman-3.0.12/cluster_conf.html
) にあります。failoverdomains
セクションの例は、例7.8「cluster.conf
に追加されたフェイルオーバードメイン」 を参照してください。- 値を増加することにより
config_version
属性を更新します (例えば、config_version="2"
からconfig_version="3">
へ変更)。 /etc/cluster/cluster.conf
を保存します。- (オプション)
ccs_config_validate
コマンドを実行して、クラスタースキーマ (cluster.rng
) に対するファイルの妥当性を検証します。たとえば、[root@example-01 ~]#
ccs_config_validate
Configuration validates cman_tool version -r
コマンドを実行して、設定をクラスターノードの残り部分へ伝播します。- 「HA サービスの設定」 へ進みます。
例7.8「
cluster.conf
に追加されたフェイルオーバードメイン」 は優先順のある制限なしのフェイルオーバードメインを持つ設定の例を示しています。
例7.8 cluster.conf
に追加されたフェイルオーバードメイン
<cluster name="mycluster" config_version="3"> <clusternodes> <clusternode name="node-01.example.com" nodeid="1"> <fence> <method name="APC"> <device name="apc" port="1"/> </method> </fence> </clusternode> <clusternode name="node-02.example.com" nodeid="2"> <fence> <method name="APC"> <device name="apc" port="2"/> </method> </fence> </clusternode> <clusternode name="node-03.example.com" nodeid="3"> <fence> <method name="APC"> <device name="apc" port="3"/> </method> </fence> </clusternode> </clusternodes> <fencedevices> <fencedevice agent="fence_apc" ipaddr="apc_ip_example" login="login_example" name="apc" passwd="password_example"/> </fencedevices> <rm> <failoverdomains> <failoverdomain name="example_pri" nofailback="0" ordered="1" restricted="0"> <failoverdomainnode name="node-01.example.com" priority="1"/> <failoverdomainnode name="node-02.example.com" priority="2"/> <failoverdomainnode name="node-03.example.com" priority="3"/> </failoverdomain> </failoverdomains> </rm> </cluster>
failoverdomains
セクションには、クラスター内の各フェイルオーバードメイン用の failoverdomain
セクションが含まれています。この例には、フェイルオーバードメインが 1 つあります。failoverdomain
の行では、名前 (name
) が example_pri
として指定されています。さらに、フェイルバックなし (failback="0"
)、フェイルオーバーは優先順あり (ordered="1"
)、フェイルオーバードメインは制限なし (restricted="0"
) と指定されています。