7.4. フェイルオーバードメインの設定

フェイルオーバードメインは、ノードに障害が発生した場合にクラスターサービスを実行するのに有効なクラスターノードの名前付きサブセットです。フェイルオーバードメインは、以下の特性を持つことができます:
  • Unrestricted(制限なし) — 優先するメンバーのサブセットを指定できるようにしますが、このドメインに割り当てられたクラスターサービスはいずれの利用可能なメンバーでも実行できます。
  • Restricted(制限あり) — 特定のクラスターサービスを実行できるメンバーを制限できるようにします。制限されたフェイルオーバードメインのメンバーがどれも使用できない場合は、クラスターサービスは (手動あるいはクラスターソフトウェアによっても) 開始できません。
  • Unordered(優先順なし) — クラスターサービスが優先順なしのフェイルオーバードメインへ割り当てられる場合、クラスターサービスを実行するメンバーは、優先順なしの利用可能なフェイルオーバードメインメンバーから選択されます。
  • Ordered(優先順あり) — フェイルオーバードメインのメンバー内で優先順を指定できるようにします。優先順フェイルオーバードメインは、優先順位が一番低い番号を持つノードを最初に選択します。すなわち、フェイルオーバードメイン内で優先番号 "1" を持つノードの優先度が最も高くなるため、フェイルオーバードメイン内で最優先すべきノードとなります。そのノードの次に優先されるノードは、次に高い優先番号を持つノードとなります。
  • Failback(フェイルバック) — フェイルオーバードメイン内のサービスが、ノード障害の前に元々実行していたノードへフェイルバックするかどうかを指定できるようにします。この特性の設定が役立つのは、ノードが繰り返し失敗し、それが優先順ありのフェイルオーバードメインの一部であるような状況です。この状況では、ノードがフェイルオーバードメイン内の優先ノードである場合には、優先ノードと別のノード間でサービスがフェイルオーバーとフェイルバックを繰り返す可能性があるため、パフォーマンスに重大な影響を与えることになります。

    注記

    優先順のあるフェイルオーバーが設定されている場合にのみ、フェイルバックの特性が利用できます。

注記

フェイルオーバードメイン設定を変更しても、現在実行中のサービスには影響しません。

注記

フェイルオーバードメインは、運用には必須 ではありません。
デフォルトでは、フェイルオーバードメインは制限なしで優先順がありません。
複数のメンバーを持つクラスター内では、制限ありのフェイルオーバードメインを使用することで、クラスターサービス (httpd など) を実行するためのクラスターを設定する作業を最小限にできます。このためには、クラスターサービスを実行する全てのメンバー上で、設定を同一にする必要があります。クラスターサービスを実行するようクラスター全体を設定する代わりに、クラスターサービスに関連付ける制限ありのフェイルオーバードメイン内のメンバーのみを設定するだけで済みます。

注記

優先するメンバーを設定するには、1 つだけのクラスターメンバーから成る制限なしのフェイルオーバードメインを作成します。そうすることで、クラスターサービスが主にそのクラスターメンバー (優先メンバー) 上で実行することになりますが、クラスターサービスは他のどのメンバーにでもフェイルオーバーできるようになります。
フェイルオーバードメインを設定するには、以下の手順を使用します:
  1. クラスター内のいずれかのノードで /etc/cluster/cluster.conf を開きます。
  2. 使用する各フェイルオーバードメイン用の rm 要素内に以下のスケルトンセクションを追加します:
    
            <failoverdomains>
                <failoverdomain name="" nofailback="" ordered="" restricted="">
                    <failoverdomainnode name="" priority=""/>
                    <failoverdomainnode name="" priority=""/>
                    <failoverdomainnode name="" priority=""/>
                </failoverdomain>
            </failoverdomains>
    
    

    注記

    failoverdomainnode 属性の数はフェイルオーバードメイン内のノード数で変化します。前述したテキスト内のスケルトン failoverdomain セクションは 3 つの failoverdomainnode 要素を示しており、フェイルオーバードメインに 3 つのノードが存在することを示唆しています。
  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 に追加されたフェイルオーバードメイン」 を参照してください。
  4. 値を増加することにより config_version 属性を更新します (例えば、config_version="2" から config_version="3"> へ変更)。
  5. /etc/cluster/cluster.conf を保存します。
  6. (オプション) ccs_config_validate コマンドを実行して、クラスタースキーマ (cluster.rng) に対するファイルの妥当性を検証します。たとえば、
    [root@example-01 ~]# ccs_config_validate 
    Configuration validates
    
  7. cman_tool version -r コマンドを実行して、設定をクラスターノードの残り部分へ伝播します。
  8. 「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") と指定されています。