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>
クラスターのコンポーネントの設定がすべて終了したら、 クラスター設定ファイルを全ノードに対して同期する必要があります。