vSphere 5.1 までの vSphereHA では基本的に、ESXiとVMで障害が発生した場合は
自動的にVMを他のホストで再起動してくれます。
さらにvSphereHAでは、VMで稼働しているゲストOS上の障害を検知することも可能です。
ただし、この設定でアプリケーションの障害を検知するためには、
サードパーティのソフトウェアか、「VMware Guest SDK」での作りこみが必要になります。(~vSphere 5.1)
この、「VMware Guest SDK」を使用して、vSphere 5.1 環境で
ためしに簡易的なアプリケーション監視HAを作動させてみました。
現時点で最新のバージョンは VMware Guest SDK 9.4.0です。
ちなみに、今回のゲストOSは 64bit の Redhat互換Linuxです。
[root@vm01 ~]# cat /etc/oracle-release
Oracle Linux Server release 6.2
[root@vm01 ~]# uname -a
Linux vm01 2.6.32-300.3.1.el6uek.x86_64 #1 SMP Fri Dec 9 18:57:35 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
2. HAクラスタの設定で、アプリケーションの監視を有効にします。
vSphereHAの設定で「仮想マシンとアプリケーションの監視」を選択します。
3. VMware の Webサイト(MyVMware)から、Guest SDK を DLします。
今回は、「vSphere Guest SDK for Linux」を使います。
ファイル名は、 VMware-GuestSDK-9.4.0-1280544.tar.gz です。
4. ゲストOSの適当な場所にGuest SDK を配置します。
今回は、/opt/vmw ディレクトリを作成し、その配下にファイルを解凍します。
[root@vm01 ~]# mkdir /opt/vmw
[root@vm01 ~]# cd /opt/vmw
[root@vm01 vmw]# tar zxf /root/VMware-GuestSDK-9.4.0-1280544.tar.gz
[root@vm01 vmw]# ls
GuestSDK
[root@vm01 vmw]# ls GuestSDK/
bin docs include lib vmGuestLibJava
5. 環境変数を設定します。
ライブラリを読み込めるように、環境変数(LD_LIBRARY_PATH)を設定します。
今回は、64bitのLinuxを使用しています。(32bitの場合は、末尾がlib32になります。)
LD_LIBRARY_PATH を設定した後に、vmware-appmonitor を実行すると、使用方法が表示されます。
[root@vm01 ~]# export LD_LIBRARY_PATH=/opt/vmw/GuestSDK/lib/lib64:$LD_LIBRARY_PATH
[root@vm01 ~]# /opt/vmw/GuestSDK/bin/bin64/vmware-appmonitor
Usage: /opt/vmw/GuestSDK/bin/bin64/vmware-appmonitor {enable | disable | markActive | isEnabled | getAppStatus | postAppState [appStateOk|appStateNeedReset]}
6. vmware-appmonitor でアプリケーション監視を有効にします。
Guest SDK に含まれる vmware-appmonitor で、監視を有効化します。
[root@vm01 ~]# cd /opt/vmw/GuestSDK/bin/bin64/
[root@vm01 bin64]# ./vmware-appmonitor isEnabled
false ★まだ無効
[root@vm01 bin64]# ./vmware-appmonitor enable
[root@vm01 bin64]# ./vmware-appmonitor isEnabled
true ★有効になった→このままだと数秒後にVMが再起動するので要注意。
有効化すると、vSphere Clientのイベント画面に
「ステータスの緑への変更~」と表示されます。
7. 定期的に、アプリケーションの正常性をvSphereHAに伝えます。
「vmware-appmonitor markActive」と実行すると、
vSphereHAにアプリケーションが正常であることを伝えられます。
- 逆に「vmware-appmonitor enable」実行後は、なにもしないと 障害検知してVMがリセットされてしまいます。
- この間隔をHAクラスタの「監視感度」設定よりも短くします。
- 実際は、別のアプリケーション監視コマンド等の結果をもとに、このコマンドを実行することになります。
ためしに 10秒ごとに markActive を実行して「アプリケーションが無事」と伝え続けます。
[root@vm01 bin64]# while : ; do ./vmware-appmonitor markActive; sleep 10; done
これをCtrl+Cで停止すると、下記のイベントが検知されて、数秒後にVMが再起動されます。
「アラーム」タブでも「vSphere HA の仮想マシン監視アクション」がトリガーされています。
これは 右クリック→「クリア」 で消すことができます。
ちなみにvSphere 5.5 からは、新たにAppHAというアプリケーション監視ソリューションも提供されています。
(つづきはこちら)
以上、vSphereHA + GuestSDK のアプリケーション監視機能についてでした。