7.3. フェンシングの設定
フェンシングを設定するには、(a) クラスター内に 1 つ以上のデバイスを指定、(b) 各ノードに 1 つ以上のフェンスメソッドを指定 (任意のフェンスデバイス又は指定されたフェンスデバイスを使用) します。
注記
各ノードに複数のフェンシングメカニズムを設定することが推奨されます。フェンシングデバイスが失敗する要因には、ネットワークの分割、電源異常、フェンシングデバイスそのものに問題がある場合、などがあります。複数のフェンシングメカニズムを設定することで、1 つのフェンシングデバイスの障害が致命的な結果になる可能性を低減することができます。
使用する設定に必要となるフェンスデバイスとフェンスメソッドのタイプを基にして、以下のように
cluster.conf を設定します。
fencedevicesセクションでは、fencedevice要素とフェンスデバイス従属属性を使用して各フェンスデバイスを指定します。例7.3「cluster.confに追加された APC フェンスデバイス」 は APC フェンスデバイスを追加した設定ファイルの例を示しています。clusternodesセクションでは、各clusternodeセクションのfence要素内でノードの各フェンスメソッドを指定します。method属性である、nameを使用してフェンスメソッドの名前を指定します。device要素とその属性である、nameとフェンスデバイス特有のパラメーターを使用して各フェンスメソッド用のフェンスデバイスを指定します。例7.4「cluster.confに追加されたフェンスメソッド」 はクラスター内の各ノード用に 1 つのフェンスデバイスを持つフェンスメソッドの例を示しています。- パワーフェンス以外のメソッド (つまり、SAN/ストレージフェンシング) 用には、
clusternodesセクションでunfenceセクションを追加します。これにより、フェンス済みのノードは再起動されるまでは再度有効になりません。アンフェンシングを必要とするデバイスを設定する際には、最初にクラスターを停止し、デバイスおよびアンフェンシングを含むすべての設定をクラスターが開始される前に追加する必要があります。ノードのアンフェンシングに関する詳細は、fence_node(8) の man ページを参照してください。unfenceセクションは、fenceセクションとは異なり、methodセクションが含まれていませんが、device参照を直接含んでいます。これはfenceの該当するデバイスセクションをミラーし、"on" 又は "enable" の明示的なアクション (action) がはっきりと追加されています。fenceとunfencedeviceの行によって同じfencedeviceが参照され、同じノード毎の引数が繰り返されます。action属性を "on" 又は "enable" に指定すると、再起動時にノードを有効にします。例7.4「cluster.confに追加されたフェンスメソッド」 と 例7.5「cluster.conf: ノード毎に複数のフェンスメソッド」 にはunfenceの要素と属性の例が含まれています。unfenceについての詳細は、fence_nodeの man ページを参照してください。 - 値を増加することにより
config_version属性を更新します (例えば、config_version="2"からconfig_version="3">へ変更)。 /etc/cluster/cluster.confを保存します。- (オプション)
ccs_config_validateコマンドを実行することでクラスタースキーマ (cluster.rng) に対して更新されたファイルを検証します。例えば:ccs_config_validate
[root@example-01 ~]# ccs_config_validate Configuration validatesCopy to Clipboard Copied! Toggle word wrap Toggle overflow cman_tool version -rコマンドを実行してクラスターノードの他の部分に設定を伝播します。このコマンドは追加の検証も実行します。更新されたクラスターの設定情報を伝播できるようにするには、各ノード内でricciが稼働している必要があります。- 更新した設定ファイルが伝播されたことを確認します。
- 「フェイルオーバードメインの設定」 へ進んでください。
必要であれば、ノード毎に複数のフェンスメソッドとフェンスメソッド毎に複数のフェンスデバイスを持つ複雑な構成を設定することができます。ノード毎に複数のフェンスメソッドを指定する時、最初のメソッドを使用してフェンシングが失敗した場合は、フェンスデーモンである
fenced は次のメソッドを試行し、1 つが成功するまでメソッド群を繰り返します。
時には、ノードのフェンシングには 2 つの I/O パス、又は 2 つのパワーポートを無効にする必要があります。これを行うにはフェンスメソッド内の 2 つ以上のデバイスを指定します。
fenced は各フェンス/デバイス行に対してフェンスエージェントを 1 回実行しますが、フェンシングが成功と見なされるにはすべてが成功しなければなりません。
より複雑な設定は 「フェンシング設定の例」 に記載されています。
フェンスデバイスの設定に関する詳細情報は、フェンスデバイスエージェントの man ページ (例えば、
fence_apc の man ページ) でご覧になれます。さらには、付録A フェンスデバイスパラメーター ではフェンシングパラメーターの情報、/usr/sbin/ ではフェンスエージェントの情報、/usr/share/cluster/cluster.rng ではクラスタースキーマの情報、/usr/share/doc/cman-X.Y.ZZ/cluster_conf.html (例えば、/usr/share/doc/cman-3.0.12/cluster_conf.html) では注釈付きスキーマの情報を取得できます。
フェンシング設定の例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の例では、ノード毎に 1 つのフェンスメソッド、フェンスメソッド毎に 1 つのフェンスデバイスがある単純な設定を示しています。
以下は、より複雑な設定を示した例です:
注記
このセクション内の例ではすべてが網羅されているわけではありません。つまり、要件によっては他のフェンシング設定方法がある場合があります。
例7.3 cluster.conf に追加された APC フェンスデバイス
この例では、フェンスデバイス (
fencedevice) は fencedevices 要素に追加されています。また、フェンスエージェント (agent) を fence_apc として、IP アドレス (ipaddr) を apc_ip_example として、ログイン (login) を login_example として、フェンスデバイス名 (name) を apc として、パスワード (passwd) を password_example として指定しています。
例7.4 cluster.conf に追加されたフェンスメソッド
この例では、フェンスメソッド (
method) が各ノードに追加されています。各ノードのフェンスメソッド名 (name) は APC です。各ノードのフェンスメソッドのデバイス (device) は、名前 (name) を apc 及び各ノード用に一意の APC スイッチパワーポート番号 (port) として指定します。ここでは例として、node-01.example.com のポート番号を 1 (port="1") とします。各ノードのデバイス名 (device name="apc") は、fencedevices 要素のこの行にあるapc の名前 apc によってフェンスデバイスをポイントします: fencedevice agent="fence_apc" ipaddr="apc_ip_example" login="login_example" name="apc" passwd="password_example"
例7.5 cluster.conf: ノード毎に複数のフェンスメソッド
例7.6 cluster.conf: マルチパス複数ポートのフェンシング
例7.7 cluster.conf: デュアル電源供給を持つノードのフェンシング
パワースイッチを使用してデュアル電源装置があるノードをフェンスする時、どちらかのポートに電力を回復する前に両方の電源ポートをオフにするようにエージェントに伝える必要があります。デフォルトによるエージェントのオフ/オン動作により、電力がノードに対して完全に無効にならない場合もあります。