5.7.2. 単一のストレージベースのフェンスデバイスによるノードの設定

ノードのフェンスにパワーフェンス以外のメソッド (つまり、SAN/ストレージフェンシング) を使用する場合は、フェンスデバイスに unfencing を設定する必要があります。これにより、フェンス済みのノードは再起動されるまでは再度有効になりません。アンフェンシングを必要とするデバイスを設定する際には、最初にクラスターを停止し、デバイスおよびアンフェンシングを含むすべての設定をクラスターが開始される前に追加する必要があります。
ノードにアンフェンシングを設定する場合、on または enable の明示的なアクションが意図的に追加されたノードに対して設定を行った該当するフェンスデバイスをミラーするデバイスを指定します。
ノードのアンフェンシングに関する詳細は、fence_node(8) の man ページを参照してください。
以下の手順に従って、sanswitch1 と呼ばれるフェンスデバイスを使用する単一のストレージベースのフェンスデバイスでノードを設定します。このフェンスデバイスは fence_sanbox2 フェンシングエージェントを使用します。
  1. ノード用のフェンスメソッドを追加して、そのフェンスメソッドの名前を入力します。
    ccs -h host --addmethod method node
    例えば、クラスターノード node-01.example.com にある設定ファイル内でノード node-01.example.com 用に SAN と呼ばれるフェンスメソッドを設定するには、以下のコマンドを実行します:
    ccs -h node01.example.com --addmethod SAN  node01.example.com
    
  2. メソッド用のフェンスインスタンスを追加します。ノードに使用するフェンスデバイス、このインスタンスの適用先であるノード、メソッドの名前、及びこのノードに特有であるこのメソッド用のオプションを指定する必要があります:
    ccs -h host --addfenceinst fencedevicename node method [options]
    
    例えば、クラスターノード node-01.example.com 上の設定ファイル内にフェンスインスタンスを設定するには、以下のコマンドを実行します。ここでは、SAN と呼ばれるメソッドを使用してクラスターノード node-01.example.com をフェンスするために、sanswitch1 と呼ばれるフェンスデバイス上の SAN スイッチパワーポート 11 を使用するとします:
    ccs -h node01.example.com --addfenceinst sanswitch1 node01.example.com SAN port=11
    
  3. このノード上でストレージベースのフェンスデバイスにアンフェンシングを設定するには、以下のコマンドを実行します。
    ccs -h host --addunfence fencedevicename node action=on|off
    
クラスター内の各ノードにフェンスメソッドを追加する必要があります。以下のコマンドは SAN と呼ばれるフェンスメソッドを各ノードに設定します。フェンスメソッド用のデバイスは sanswitch をデバイス名として指定しますが、これは 「フェンスデバイスの設定」 で説明してあるように、以前に --addfencedev オプションで設定したデバイスです。各ノードは一意の SAN 物理ポート番号で設定されます。node-01.example.com 用のポート番号は 11 で、node-02.example.com のポート番号は 12node-03.example.com のポート番号は 13 となります。
ccs -h node01.example.com --addmethod SAN node01.example.com
ccs -h node01.example.com --addmethod SAN node02.example.com
ccs -h node01.example.com --addmethod SAN node03.example.com
ccs -h node01.example.com --addfenceinst sanswitch1 node01.example.com SAN port=11
ccs -h node01.example.com --addfenceinst sanswitch1 node02.example.com SAN port=12
ccs -h node01.example.com --addfenceinst sanswitch1 node03.example.com SAN port=13
ccs -h node01.example.com --addunfence sanswitch1 node01.example.com port=11 action=on
ccs -h node01.example.com --addunfence sanswitch1 node02.example.com port=12 action=on
ccs -h node01.example.com --addunfence sanswitch1 node03.example.com port=13 action=on
例5.3「ストレージベースのフェンスメソッドを追加した後の cluster.conf は、フェンシングメソッド、フェンシングインスタンス、及びアンフェンシングをクラスター内の各ノードに追加した後の cluster.conf 設定ファイルを示しています。

例5.3 ストレージベースのフェンスメソッドを追加した後の 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>

「クラスタノード群への設定ファイルの伝播」 に説明してあるように、クラスターの全コンポーネントの設定を終了した時点で、クラスター設定ファイルを全てのノードに対して同期する必要がある点に注意してください。