AHVノードを落としてVMにHAさせてみる

Pocket

こんにちは。クララです。今日は、AHVのノードをわざとシャットダウンして、VMがHAする時間を計測してみました。

なお、今回使用するクラスタは、4ノード1クラスタの標準的な構成となります。このクラスタ内の1ノードだけわざとシャットダウンして挙動を確認してみよう、というのが今回の記事です。

HAの手順

  1. AHVクラスタにVMを準備、Prismから対象ノードを確認
  2. AHVノードのIPMIから、ノードのシャットダウン実施
  3. 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のノードで立ち上がっていることが分かります。

 

今回は以上です。

おすすめ