連載
» 2009年06月09日 00時00分 公開

VMware HAによる可用性の向上VMware Infrastructure 3徹底入門 実践編(15)(2/3 ページ)

[ヴイエムウェア株式会社,@IT]

VMware HAを利用してみる

 それでは実際に物理マシンに障害を発生させ、VMware HAが期待通り動作するか確認してみることにする。まずは正常な状態を見ておこう。この例では4台の仮想マシンが現在稼働中であり、うちwin03とwin05の2台がesx01上で動作している。

図5 正常な状態。esx01上でwin03とwin05が動作中 図5 正常な状態。esx01上でwin03とwin05が動作中

 ではこの状態で、esx01が動作する物理マシンを電源ごと切断してみる。するとesx01の故障が検出され、VI Client上の表示もその旨更新される

図6 esx01の故障が検出された 図6 esx01の故障が検出された

 そしてVMware HAにより、故障した物理マシン上で動作していた仮想マシンを別のESXへ再割り当てする処理が実行され、仮想マシンの電源の再投入が行われる。

図7 故障したマシン上で先ほどまで動作していた仮想マシンは、別のESX上に再度割り当てられ、電源が再投入される 図7 故障したマシン上で先ほどまで動作していた仮想マシンは、別のESX上に再度割り当てられ、電源が再投入される

 この状態で再度esx01の電源を投入してみる。ESXの起動が完了するとvCenter Server側もそれを認識し、クラスタのノードとして再度有効になる。また今回の例ではDRSも同時に有効化しているため、自動的にVMotionが動作し、負荷の分散も図られる。

図8 esx01をパワーオン。無事に起動が完了するとクラスタのメンバーとして復帰する。DRSを有効化している場合は自動的にVMotionが実行され即座に計算資源として活用されはじめる 図8 esx01をパワーオン。無事に起動が完了するとクラスタのメンバーとして復帰する。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 を構成することができる。

図9 クラスタの設定ウィンドウより VMware HA → 「詳細オプション」を選択 図9 クラスタの設定ウィンドウより VMware HA → 「詳細オプション」を選択
図10 詳細オプションを入力するウィンドウが現れる。ここで Isolation Address を設定するパラメータ das.isolationaddress1 ? das.isolationaddress10 を入力できる 図10 詳細オプションを入力するウィンドウが現れる。ここで Isolation Address を設定するパラメータ das.isolationaddress1 〜 das.isolationaddress10 を入力できる

 次に、隔離状態が発生したときのESXのふるまいを設定する。ネットワーク的な隔離が発生した場合、そのESX上で動作中の仮想マシンをどのように取扱うべきかを設定しておくことができる。用途によっては仮想マシンそのまま継続動作させておきたい場合もあるだろうし、即座に停止させ別のESXにフェイルオーバーさせた方が望ましい場合もあるだろう。このときの動作ポリシーについて、以下の3通りより選択することができる。

  1. 仮想マシンをパワーオンのままにする
  2. 仮想マシンをパワーオフする
  3. 仮想マシンをシャットダウンする

 このふるまいに関しては、クラスタ全体としてのデフォルト設定と、仮想マシン単位での個別設定を併用することができる。クラスタ全体におけるデフォルトのふるまいは、VMware HAの構成画面の「デフォルトのクラスタ設定」で指定することができる。

図11 ホストが隔離された場合の仮想マシンの取り扱いポリシーを設定 図11 ホストが隔離された場合の仮想マシンの取り扱いポリシーを設定

 同じ設定を仮想マシン単位で行うこともできる。デフォルトではクラスタの設定が適用されるようになっているが、仮想マシン単位の設定を行った場合はこちらが優先されるようになる。「仮想マシンのオプション」よりこの設定を行うことができる。

図12 仮想マシンのオプションで設定した場合はこちらが優先される 図12 仮想マシンのオプションで設定した場合はこちらが優先される

 このような方式でVMware HAはESXホストの隔離状態を判定し、そのときの仮想マシンの取り扱い方法を決定している。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。