vSphere HA では、ESXi と VM の障害を検知して、VM を他のホストで自動的に再起動してくれます。

 

さらに vSphere HA では、VM で稼働しているゲスト OS 上の障害を検知することも可能です。

ただし、この設定でアプリケーションの障害を検知するためには、
vSphere HA のアプリケーション障害検知に対応しているサードパーティのソフトウェアを利用するか、

「VMware Guest SDK」での作りこみが必要になります。

 

この「VMware Guest SDK」を使用して、vSphere 5.1 環境で
ためしに簡易的なアプリケーション監視 HA を作動させてみました。

利用したバージョンは VMware Guest SDK 9.4.0 です。

 

ちなみに、今回のゲスト OS は 64bit の Red Hat 互換 の 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

    


1. まず、vSphere HA クラスタを作成します。
guest_ha0.png

 

2. HA クラスタの設定で、アプリケーションの監視を有効にします。
vSphere HA の設定で「仮想マシンとアプリケーションの監視」を選択します。
guest_ha1.png

 

3. VMware の Webサイト(MyVMware)から、Guest SDK をダウンロードします。
今回は、「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 のイベント画面に

「ステータスの緑への変更~」と表示されます。

guest_ha2.png

 

7. 定期的に、アプリケーションの正常性を vSphere HA に伝えます。
「vmware-appmonitor markActive」と実行すると、
vSphere HA にアプリケーションが正常であることを伝えられます。

  • 逆に「vmware-appmonitor enable」実行後は、なにもしないと 障害検知して VM がリセットされてしまいます
  • この間隔を HA クラスタの「監視感度」設定よりも短くします。
  • 実際は、別のアプリケーション監視コマンド等の結果をもとに、このコマンドを実行することになります。


ためしに 10秒ごとに markActive を実行して「アプリケーションが無事」と伝え続けます。

[root@vm01 bin64]# while : ; do ./vmware-appmonitor markActive; sleep 10; done

    

これを Ctrl+C で停止すると、下記のイベントが検知されて、数秒後に VM が再起動されます。
guest_ha3.png

 

「アラーム」タブでも「vSphere HA の仮想マシン監視アクション」がトリガーされています。

これは 右クリック→「クリア」 で消すことができます。

guest_ha4.png

 

ちなみに vSphere 5.5 では、新たに App HA というアプリケーション監視ソリューションも提供されています。

(しかし App HA は vSphere 6.0 で消えてしまいました)

 

つづきはこちら

 

以上、vSphere HA + GuestSDK のアプリケーション監視機能についてでした。