それでは実際に物理マシンに障害を発生させ、VMware HAが期待通り動作するか確認してみることにする。まずは正常な状態を見ておこう。この例では4台の仮想マシンが現在稼働中であり、うちwin03とwin05の2台がesx01上で動作している。
ではこの状態で、esx01が動作する物理マシンを電源ごと切断してみる。するとesx01の故障が検出され、VI Client上の表示もその旨更新される
そしてVMware HAにより、故障した物理マシン上で動作していた仮想マシンを別のESXへ再割り当てする処理が実行され、仮想マシンの電源の再投入が行われる。
この状態で再度esx01の電源を投入してみる。ESXの起動が完了するとvCenter Server側もそれを認識し、クラスタのノードとして再度有効になる。また今回の例ではDRSも同時に有効化しているため、自動的にVMotionが動作し、負荷の分散も図られる。
今回紹介した例では物理マシンの電源切断で故障を意図的に発生させたが、故障箇所によっては、ESXホストは「ネットワーク的に隔離されてしまった」状態に陥る場合がある。一方で、上記の例のように正常動作しているESXホストが1台だけになってしまうという状況も考えられる。上記の例では、esx01の停止中、esx02はクラスタ内で正常動作している唯一のESXホストとなっていた。しかしこのときesx02は隔離されていたわけではなく、正常動作中のESXホストとしてサービスを継続しなければならない。
従って、VMware HAが有効化されている状態では、各ESXホストは自身がネットワーク的に隔離されてしまった状態にあるのか、あるいはそうではなく自分は正常であり周囲のESXホストが故障してしまったのかを判断できる機構を保有していなければならない。
VMware HAではこれを判断する方法として、サービスコンソールから外部のあるアドレスにICMP ECHOリクエスト(ping相当のパケット)を送信し、応答が得られるかどうかを確認するという方法を用いている。このときのパケット送信先アドレスには、サービスコンソールのゲートウェイとして設定されているアドレスがデフォルトでは利用される。従って、ゲートウェイアドレスには実在するIPアドレスを設定しておかなければならない。ゲートウェイアドレスとして架空の値が設定されていたり、あるいは実在していたとしてもICMP ECHOに応答しない設定になっていると、VMware HAは隔離判定を正しく行うことができなくなるため注意する必要がある。
この「自身が隔離したかどうかを判断するためのICMP ECHO送出先アドレス」のことを “Isolation Address”と呼ぶ。デフォルトでは Isolation Address には上記の通りサービスコンソールのゲートウェイアドレスが用いられるが、変更することもできる。また複数個のアドレスを構成しておくこともできる。複数個の Isolation Address を構成している場合は、「全ての登録済み Isolation Address から応答が得られなかった場合にのみ、自身は隔離されたと判断する」という動作となる。従って、このアドレスを適切に構成しておくことで、通信先がメンテナンス中であった場合の誤判断などを防ぐことができる。
Isolation Address は構成画面の「詳細オプション」より構成することができる。このときの設定パラメータとして das.isolationaddress1 ? das.isolationaddress10 を用いることができる。これらの値を設定することで、最大10個までの Isolation Address を構成することができる。
次に、隔離状態が発生したときのESXのふるまいを設定する。ネットワーク的な隔離が発生した場合、そのESX上で動作中の仮想マシンをどのように取扱うべきかを設定しておくことができる。用途によっては仮想マシンそのまま継続動作させておきたい場合もあるだろうし、即座に停止させ別のESXにフェイルオーバーさせた方が望ましい場合もあるだろう。このときの動作ポリシーについて、以下の3通りより選択することができる。
このふるまいに関しては、クラスタ全体としてのデフォルト設定と、仮想マシン単位での個別設定を併用することができる。クラスタ全体におけるデフォルトのふるまいは、VMware HAの構成画面の「デフォルトのクラスタ設定」で指定することができる。
同じ設定を仮想マシン単位で行うこともできる。デフォルトではクラスタの設定が適用されるようになっているが、仮想マシン単位の設定を行った場合はこちらが優先されるようになる。「仮想マシンのオプション」よりこの設定を行うことができる。
このような方式でVMware HAはESXホストの隔離状態を判定し、そのときの仮想マシンの取り扱い方法を決定している。
Copyright © ITmedia, Inc. All Rights Reserved.