Fedora11: Red Hat Cluster: fence_virsh の使い方
Red Hat Cluster Suite (以下 RHCS) を試す上で問題になるのが、RHCSがフェイルオーバーを行うためにフェンスデバイス (正しく作動していない筐体を強制的に停止する機能。IPMIなど外部から電源断できるハードウェアなどがサポートされる。) を必要とすることだ。普通、 フェンスデバイス が付属しているようなマシンを2台も持っていないので、RHCSで試せるのは、GFSなどの共有ストレージと、 リソースのテイクオーバー(フェイルオーバーではなく) のみになってしまう。
実はCentOS 5.x で ( 筆者は5.2で確認) 、 fence_xvm, fence_xvmd を組み合わせることで、VMをクラスタノードとした場合、 Dom0 をフェンスデバイスとすることができ、一応 単一物理筐体+2VMから、RHCSのフェイルオーバーを試すことができるのだが、筆者が試してみたところ、
- 何故か物理筐体の側でも cman を立ち上げる必要がある。
- その際、物理筐体は最小1台でのHAクラスターになる。
- また、そのための設定が system-config-cluster で分かりにくい位置にある。 (Conga では比較的わかりやすい位置にあるので、試すならこちらの方がよさそう )
などの理由からあまり使いやすいとはいえなかった 。。 orz
で、より試しやすいフェンスデバイスがあるとよいのだが、Web上を探していたところ、fence_xvm の代替として、 fence_virsh が見つかった。
https://bugzilla.redhat.com/show_bug.cgi?id=496629
fence_virsh は、libvirt の機能を利用しており、基本的に
- ssh でDom0にログイン
- 該当ノードを virsh shutdown VMname
- ログアウト
を実施するだけのスクリプト (py)で、 libvirt に対応しているDom0なら、Linux KVM でもXenでも問題無くフェンスデバイスとして使えるらしい。実際、筆者は Fedora 10のKVMをDom0 としているが、Fedora 11のDomUでfence_virsh を試してみたところ、問題無くフェンシングが動作した。 ただし、リンク先でも述べられている通り、system-config-cluster や、luci ではまだ設定できないらしく、 fedora 11 のDomU 上で /etc/cluster/cluster.conf を直接編集する必要があった。 ( そして設定の仕方が見つからずかなり苦労した orz )
一応ここにフェンシングが成功したときの cluster.conf の全体を貼っておく。 fedora-virt2.jp.example.org, fedora-virt3.jp.example.org という2ノードのクラスターで テスト用にIPアドレスをひとつリソースとして定義している。cluster.conf の内容は2ノードで同じである。
ちなみに、Dom0のsshd でroot ログインを許可しないと上手く動かないが、そのあたりは fence_virsh のmanを参照。
cluster.conf のおおよそは、Fedora 11 付属のsystem-config-cluster で作成している。 vi での変更前後のdiff は次の様になった。試行錯誤のため、微妙に最初のバージョンが変わっているが、多分 ww 内容は変えていないと思われる。
@@ -1,16 +1,27 @@ -+ - + + + ++ - + + + ++ - + + + +
注意点として、
-
-
あたりがあった。
長くなったので、フェンシングの確認方法などは次回以降に。