VMWareのフェンシング設定

Pacemakerフェンシング入門の記事をこちらで公開しています。記事ではVirtualboxでのフェンシングを説明しましたが、VMWareでフェンシングを試す機会がありましたので、設定方法を解説します。

1.テスト環境の準備

今回はvSphere 7.0.0を利用しました。

vCenterに管理IDでログインして、CentOS8.4のゲストOSを2つ用意します。今回はLINBIT-TEST01とLINBIT-TEST02という名前で登録しています。

LINBIT-TEST01とLINBIT-TEST02にはPacemakerとCorosyncをインストールします。PacemakerとCorosyncの入手方法は過去の記事を参照ください。

なお、LINBIT-TEST01、LINBIT-TEST02はvCenter上での名称で、Linuxのホスト名はnode1とnode2に設定しています。

2.fence_vmware_restの動作確認

前回の例ではfence_vboxというVirtualbox向けのFenceエージェントを使いました。VMWareではfence_vmware_restというFenceエージェントが利用できるので、これを使ってテストを行います。

root@node1 ~]# yum install  fence-agents-vmware-rest
依存関係が解決しました。
=======================================
 パッケージ                            
=======================================
インストール:
 fence-agents-vmware-rest...
.....
.....
インストール済み:
  fence-agents-vmware-rest-4.7.0.linbit-15....
.....
.....

完了しました!

インストールが終わったらfence_vmware_restが単独で動作するか試してみましょう。パラメータが3つ必要でvCenterのIPアドレス、vCenterのアクセスID、そのIDに対してのパスワードになります。

vCemterのIDは権限が付与できますが、筆者はvCenterに不慣れなため管理者IDを使ってテストしています。

[root@node1 ~]# fence_vmware_rest -a IPアドレス -l 管理者ID  -p パスワード --ssl-insecure -z -o list |grep LINBIT
LINBIT-TEST01,
LINBIT-TEST02,

vCenterに登録したホスト名が表示できました。

3.Pacemakerの設定

Pacemakerの設定は前回の記事とほとんど同じです。fence_vmware_restはスタンバイ側だけで動かせば良いことがわかりましたので、フェンシングの設定は1つだけになります。

[root@node1 ~]# crm configure show
node 1: node1
node 2: node2
primitive test Dummy \
	op start interval=0s timeout=30s \
	op monitor interval=10s timeout=60s \
	op stop interval=0s timeout=30s on-fail=fence
primitive vmfence stonith:fence_vmware_rest \
	params ipaddr=IPアドレス login="管理者ID" passwd="パスワード" pcmk_host_map="node1:LINBIT-TEST01;node2:LINBIT-TEST02" ssl=1 ssl_insecure=1 \
	op monitor interval=60s
property cib-bootstrap-options: \
	have-watchdog=false \
	stonith-enabled=true \
	dc-version=2.0.5.linbit-1.0.el8-ba59be712 \
	cluster-infrastructure=corosync \
	cluster-name=cluster2

動かしてみるとリソースのtestとvmfenceのリソースはLINBIT-TEST01(node1)とLINBIT-TEST02(node2)に分かれて配置されています。

[root@node2 ~]# crm_mon -frAD
Cluster Summary:
  * Stack: corosync
  * Current DC: node2 (version 2.0.5.linbit-1.0.el8-ba59be712) - partition with quorum
  * Last updated: Wed Sep 29 10:37:55 2021
  * Last change:  Wed Sep 29 09:44:43 2021 by root via crm_resource on node1
  * 2 nodes configured
  * 2 resource instances configured

Node List:
  * Online: [ node1 node2 ]

Full List of Resources:
  * test	(ocf::heartbeat:Dummy):	 Started node2
  * vmfence	(stonith:fence_vmware_rest):	 Started node1

Migration Summary:

フェールオーバーなどを行ってtestリソースを移動させると、vmfenceリソースはtestリソースが動いていないノードに移動します。

4.動作確認

動作確認の方法は前回の記事と同じです。

LINBIT-TEST01(node1)でtestリソースの停止に失敗するとフェンシングが実行されて、LINBIT-TEST02(node2)のvmfenceがLINBIT-TEST01(node1)に対してシステムリブートを実行します。