2.3.2. ノードに対してストレージベースのフェンスデバイスを一つ設定する
電源フェンシング以外のメソッド(SAN/ストレージフェンシング)を使用してノードのフェンシングを行なう場合、 フェンスデバイスには unfencing(アンフェンシング) の設定を行なう必要があります。 これにより、 フェンシングされたノードは再起動が行なわれるまでは、 再び有効にならないようにします。 ノードにアンフェンシングを設定する場合は、 そのノードに設定したフェンスデバイスを反映しているデバイスを指定し、 action を
on
または enable
の設定で明示的に付け加えます。
ノードをアンフェンシングする方法については、
fence_node
(8) の man ページを参照してください。
次の手順に従って、
sanswitch1
と言う名前のフェンスデバイスを使用するストレージベースのフェンスデバイスをノードに設定します。 fence_sanbox2
というフェンスエージェントを使用します。
- フェンスメソッドの名前を入力してノードにフェンスメソッドを追加します。
ccs -h host --addmethod method node
例えば、 クラスターノードnode-01.example.com
にある設定ファイル内のノードnode-01.example.com
にSAN
と呼ばれるフェンスメソッドを設定する場合は、 次のコマンドを実行します。ccs -h node-01.example.com --addmethod SAN node-01.example.com
- このメソッドにフェンスインスタンスを追加します。 このノードに使用するフェンスデバイス、 このインスタンスを適用させるノード、 メソッド名、 このノードに対して固有となるこのメソッドのオプションなどを指定する必要があります。
ccs -h host --addfenceinst fencedevicename node method [options]
例えば、 クラスターノードnode-01.example.com
の設定ファイルにフェンスインスタンスを設定します。ここで使用しているフェンスデバイスはsanswitch1
、適用するクラスターノードはnode-01.example.com
、メソッド名はSAN
とし、ノードに固有となるオプションにはフェンスデバイスの SAN スイッチ電源ポート 11 を指定しています。ccs -h node-01.example.com --addfenceinst sanswitch1 node-01.example.com SAN port=11
- このノードのストレージベースのフェンスデバイスにアンフェンシングを設定する場合は、 次のコマンドを実行します。
ccs -h host --addunfence fencedevicename node action=on|off
クラスター内の各ノードに対してフェンスメソッドを追加する必要があります。 次のコマンドでは
SAN
と言うメソッド名を付けてフェンスメソッドをノードに設定しています。 フェンスメソッドのデバイスには sanswitch
と言うデバイス名が付けられています。 前回、 --addfencedev オプションを付けて設定したデバイスです。 「フェンスデバイスを設定する」 で説明しています。 ノードはそれぞれ固有の SAN 物理ポート番号で設定されます。 node-01.example.com
ならポート番号は 11
、 node-02.example.com
なら 12
、 node-03.example.com
なら 13
になります。
ccs -h node-01.example.com --addmethod SAN node-01.example.com ccs -h node-01.example.com --addmethod SAN node-02.example.com ccs -h node-01.example.com --addmethod SAN node-03.example.com ccs -h node-01.example.com --addfenceinst sanswitch1 node-01.example.com SAN port=11 ccs -h node-01.example.com --addfenceinst sanswitch1 node-02.example.com SAN port=12 ccs -h node-01.example.com --addfenceinst sanswitch1 node-03.example.com SAN port=13 ccs -h node-01.example.com --addunfence sanswitch1 node-01.example.com port=11 action=on ccs -h node-01.example.com --addunfence sanswitch1 node-02.example.com port=12 action=on ccs -h node-01.example.com --addunfence sanswitch1 node-03.example.com port=13 action=on
例2.2「ストレージベースのフェンスメソッドを追加した状態の
cluster.conf
」 では、 クラスター内の各ノードにフェンシングメソッド、 フェンスインスタンス、 アンフェンシングを追加した後の cluster.conf
設定ファイルを示します。
例2.2 ストレージベースのフェンスメソッドを追加した状態の cluster.conf
<cluster name="mycluster" config_version="3"> <clusternodes> <clusternode name="node-01.example.com" nodeid="1"> <fence> <method name="SAN"> <device name="sanswitch1" port="11"/> </method> </fence> <unfence> <device name="sanswitch1" port="11" action="on"/> </unfence> </clusternode> <clusternode name="node-02.example.com" nodeid="2"> <fence> <method name="SAN"> <device name="sanswitch1" port="12"/> </method> </fence> <unfence> <device name="sanswitch1" port="12" action="on"/> </unfence> </clusternode> <clusternode name="node-03.example.com" nodeid="3"> <fence> <method name="SAN"> <device name="sanswitch1" port="13"/> </method> </fence> <unfence> <device name="sanswitch1" port="13" action="on"/> </unfence> </clusternode> </clusternodes> <fencedevices> <fencedevice agent="fence_sanbox2" ipaddr="san_ip_example" login="login_example" name="sanswitch1" passwd="password_example"/> </fencedevices> <rm> </rm> </cluster>
クラスターのコンポーネントの設定がすべて終了したら、 クラスター設定ファイルを全ノードに対して同期する必要があります。