AHVノードを落としてVMにHAさせてみる
こんにちは。クララです。今日は、AHVのノードをわざとシャットダウンして、VMがHAする時間を計測してみました。
なお、今回使用するクラスタは、4ノード1クラスタの標準的な構成となります。このクラスタ内の1ノードだけわざとシャットダウンして挙動を確認してみよう、というのが今回の記事です。
HAの手順
- AHVクラスタにVMを準備、Prismから対象ノードを確認
- AHVノードのIPMIから、ノードのシャットダウン実施
- VMが他のAHVノードへフェイルオーバーし、pingが帰ってくることを確認
VMを準備してノードを特定する
まずはCentOSのVM(test-01)をたてます。VMは自動的にクラスタ上のホストにデプロイされるので、対象ノードの特定をします。
Prismにアクセスして、 仮想マシン テーブル ビューから対象のVMとノードを確認します。
VMは、Bノードにあることが分かりました。
BのノードのIPは、ハードウェアのページから、以下であることが分かります。また、同じページのHOST DETAILS からIPMIのIPも確認します。
同じネットワーク上のVMから、pingをしてみます。
[root@localhost ~]# ip a|grep 'global';ping 10.0.10.91 inet 10.0.10.80/16 brd 10.0.255.255 scope global eth0 PING 10.0.10.91 (10.0.10.91) 56(84) bytes of data. 64 bytes from 10.0.10.80: icmp_seq=1 ttl=64 time=0.785 ms
pingが通ったので、全体としては以下のような環境です。
HAさせるVM | 10.0.10.91 |
HAさせるVMがのっているノード | 10.0.11.7 |
ping確認するVM | 10.0.10.80 |
IPMIからノードのシャットダウンの準備
IPMIにブラウザからログインします。今回はノードのステータスが分かるように、仮想コンソールからシャットダウンをしてみます。
時間を計測しやすくするために、簡単なシェルを作っておいたので、Ping確認するVMで仕込んでおきます。IPを引数にして実行するとechoで時間も返してくれるpingシェルです。
#! /bin/bash TARGET=$1 while :; do trap "kill 0" EXIT echo $(date +'%H:%M:%S')" "$(ping -s 1 -c 1 -w 1 $TARGET | head -2 | tail -1) sleep 1 done
これをping_s.sh という名前で保存して実行権限を与えると、以下のように表示してくれます。
[root@localhost ~]# chmod a+x ping_s.sh [root@localhost ~]# ./ping_s.sh 10.0.10.91 11:50:53 64 bytes from 10.0.10.91: icmp_seq=1 ttl=64 time=0.732 ms
Remote Control > Launch Console で仮想コンソールを立ち上げます。
Power Control > Set Power OFF でシャットダウンする準備ができました。
VMのHAと、時間の計測
さっそくノードをシャットダウンしてみます。
[root@localhost ~]# ip a|grep 'global';./ping_s.sh 10.0.10.91 inet 10.0.10.80/16 brd 10.0.255.255 scope global eth0 12:15:25 9 bytes from 10.0.10.91: icmp_seq=1 ttl=64 12:15:26 9 bytes from 10.0.10.91: icmp_seq=1 ttl=64 12:15:27 9 bytes from 10.0.10.91: icmp_seq=1 ttl=64 12:15:28 9 bytes from 10.0.10.91: icmp_seq=1 ttl=64 12:15:29 12:15:31
VMへのpingが止まりました。Prismから状況を確認してみます。
何かのタスクが進んでいるようなので詳細を見てみると…
HAのフェイルオーバータスクが進んでいます!そして…
12:17:41 12:17:43 12:17:45 12:17:48 12:17:50 9 bytes from 10.0.10.91: icmp_seq=1 ttl=64 12:17:51 9 bytes from 10.0.10.91: icmp_seq=1 ttl=64
12:15:29 で停止、12:17:50 でpingが復旧したので、だいたい2分20秒ほど停止していたことが分かります。
PrismからVMを確認してみます。
HAしたVMはDのノードで立ち上がっていることが分かります。
今回は以上です。