Red Hat Cluster: フェンス設定の確認方法

フェンスデバイスが正しく設定されているかどうかや、そもそもfence agent (fence_virsh )などが正しくインストールされているかは、フェイルオーバーを起こさなくても確認できる。

fence_virshを例に取ると、
1. インストールされているか

# which fence_virsh

2. コマンドラインからオプション指定で、fence_virsh が正しく動作するか

# fence_virsh -l root -o status -p aaa -n fedora-virt3 -a Dom0のIP
# fence_virsh -l root -o off -p aaa -n fedora-virt3 -a Dom0のIP

3. cman 同様、オプションではなく、stdinを使ってfence_virsh の動作を制御した場合はどうなるか

# cat /tmp/aaa 
ipaddr=192.168.1.15
login=root
passwd=aaa
port=fedora-virt3
option=status

# fence_virsh < /tmp/aaa 
Status: OFF

ここで、 /tmp/aaa に指定したパラメータは man fence_virsh で確認できるstdin 向けのオプションで、この内容と、 cluster.conf の で指定する項目は揃える必要がある。 ただし、cluster.conf に追加する際には、

agent="fence_virsh" name="で定義したfencedeviceの名前" 

の2つをcman用に追加する必要がある。

4. cluster.conf で3と同じ項目を設定するには
順番が前後してアレだが、上に書いてある ww

5. cluster.conf が正しく設定されているかを確認するには
各ノードで service cman start を実施した後、

# fence_node ノード名

で、正しくフェンスデバイスが設定されているかが確認 ww できる。上手くいけば、VMが強制的にシャットダウンされるはずである。

6. フェイルオーバーが正しく行われるかを確認するには
いろいろ方法はありそうだが、筆者はiptables をあげてハートビートを落としてみた。結果としては、iptables をあげた側がフェンスされ、リソースは正しく引き継がれた。また、後に手動で停止したノードを起動して、 cman を起動した時にも、もう片方のノードがフェンスされることはなかった。 www

---

4までが上手くいっていて5で上手くいかない場合、 が設定されていないなどが原因と思われる。 違った場合には … 基本的にはエラーメッセージは /var/log/messages にでる。 orz
まだ、RHELのドキュメントでも、いろいろとまとまっていないので、RHEL 5.4 が出るまではいろいろと試行錯誤が続きそうである。