Home > Blogs > Japan Cloud Infrastructure Blog


押さえておきたいvSphereの基本-可用性編 vSphere HA/FT

押さえておきたいvSphere の基本」の可用性編の1回目として、前回、vSphere DRSをご紹介しました。
今回は、2回目として、ホスト障害の際にも仮想マシンの稼働を最大化する機能、vShpere HA、vSphere FTに関して順にご紹介します。

vSphere HA

ESXiホスト上で稼働している仮想マシンは、そのホストが障害で止まってしまった場合、稼働停止を余儀なくされます。
vSphere HAは、ホスト障害により止まってしまった仮想マシンを他の正常なホスト上で再稼働する機能を提供します。

HA-FT-3

例えば3台のホストがvSphere HAで構成されている上記の様なケースで、真ん中のホストが何らかの障害により止まってしまった場合、このホスト上で動いていた仮想マシンは停止してしまいます。この障害を検知すると、他の正常なホスト(上記の場合は左右ホスト)が仮想マシンを自動的に再度稼働させます。vSphere HA を利用することにより、ホスト障害の際にもサービスのダウンタイムを最小限に抑えることが可能となります。

物理環境の仮想化への移行の理由は、有り余る物理ホストのリソースの有効活用と、ホスト集約によるTCOの削減というところが多いのですが、仮想環境へ移行すると、vSphere HA が利用可能となり、可用性が飛躍的に向上するということも大きなメリットの1つです。なお、vSphere HA が利用可能なライセンスに関しては、こちらをご確認下さい。

vSphere HA のその他の特徴としては、以下があります。

・仮想レイヤで提供する機能のためシンプルかつ簡単(一般的なクラスタウェアの様な複雑さはありません)
・OSやアプリケーションを選ばない
・Active-Active構成も可能で、専用の待機系を保有する必要がない

vSphere HAは、vSphere DRS 同様、vCenter Serverで定義されるCluster の1 つのオプション機能です。通常のvSphereの環境が構築されていれば、クラスタの新規作成やvSphere HA の定義、クラスタへのホストの追加等も極めて簡単です。

1. クラスタ作成ウィザードを起動し、クラスタの”入れ物”を作成
HA-FT-7

2. クラスタに参加させるホストをドラックアンドドロップでクラスタへ移動
HA-FT-8

これだけです。vSphere HA の場合、仮想マシンを配置するためのデータストアとしてVMFSやNFS等の共有ストレージが必要ですが、VMFSはデフォルトでクラスタファイルシステムに対応しているため、上記のように簡単にクラスタ環境を構築することが可能となります。この簡単構成もvSphereを利用する大きなメリットの1つです。

vSphere HA 動作詳細

vSphere HAは、各ホスト上で稼働する、Fault Domain Manager (FDM) と呼ばれるAgentによりその機能が提供されています。vSphere5.0以降に採用された FDM では、サーバの死活を監視するため基本的にクラスタに1台存在するマスターノードとその他のスレーブノード間でハートビートが実行されます。このハートビートが途切れたことをトリガーに仮想マシンの再稼働等の動作に移るというのが大まかな動作となります。

HA-FT-4-1

vSphere 4.xまでは、FDMの代わりにAutomated Availability Manager (AAM)という仕組みが採用されていました。以前のAAMと比較したFDMの特徴は下記の通りです。

・プライマリ/セカンダリホストの概念はない
・ハートビート用に管理ネットワークとストレージデバイスの両方を使用
・vSphere HA ではエージェントの配布/構成の並列処理が可能になり、クラスタの構成完了までの時間が大幅に短縮

HA-FT-5-2

vSphere 4.x時代の vSphere HAと区別するため、以降、

vSphere 4.x時代のvSphere HA・・・AAM
vSphere 5.0以降のvSphere HA・・・FDM

と記載させていただきます。FDM を構成する要素は下記の通りです。

・マスター
 すべてのスレーブホストをハートビートにより監視
 保護対象の仮想マシンのリストと電源状態を監視
 スレーブ障害時は、仮想マシンをフェールオーバー
 HAクラスタの構成管理と、構成変更時のスレーブへの情報通知
 クラスタ状態を定期的にvCenter Server にレポート

・スレーブ
 ローカルで動作している仮想マシンの実行状態の監視、及びマスターへの通知
 マスターホストの監視(マスター障害時はスレーブの中からマスターを 1 台を選出)

・ハートビートデータストア
 ハートビートデータストアは、AAMにはなかったFDMの独自の機能の1つで、管理ネットワークの通信断時にホストの死活判断を行うための仕組みを提供します。スプリットブレーンを排除するため、AAMではゲートウェイへの疎通確認のみ実装されていましたが、FDMではハートビートデータストアも利用可能となり、ネットワークパーティションに対するより強固な対応が可能となります。ハートビートデータストアの特徴は以下の通りです。

マスターによる障害検出の流れ
・スレーブからのハートビートが停止
・ハートビートデータストアにアクセスし、該当ホストのロックを調べる
 1. ロックされていない場合
  ホスト障害と判断
 2. ロックされている場合
  隔離アドレスへのpingを実施
 2-1. 疎通する場合
  ネットワークパーティション状態と判断
 2-2. 疎通しない場合
  隔離状態と判断

HA-FT-13

vSphere HA では上記のようにホスト障害を検知し、仮想マシンをフェールオーバーします。

vSphere HA オプション

vSphere HA を構成する際のオプションである、アドミッションコントロールと仮想マシンの監視に関してご説明します。

アドミッションコントロール
ホスト障害時に全ての仮想マシンを確実にフェールオーバーさせるためには、フェールオーバー用のサーバリソースをあらかじめ確保しておく必要があります。vSphere HA ではその仕組みのことをアドミッションコントロールと呼びます。

HA-FT-9

例えば上記の様な 3 ホストの vSphere HA クラスタの場合、各ホストのリソース使用量を 60% 以下に抑えておけば、いざ、ホストが1 台障害を起こした場合でも全ての仮想マシンを他の2 ホストにフェールオーバーすることが可能です。この必要なリソースを確保しておく仕組みをアドミッションコントロールと呼び、以下の設定がサポートされています。

 ・ホスト障害の台数を指定(デフォルトで 1 ホストが設定されている)
 ・CPU / メモリ毎に割合を指定
 ・フェイルオーバーホストの指定

 ※この他、アドミッションコントロールを無効にすることも設定上は可能ですが、ホスト障害の際仮想マシンのフェールオーバーに失敗するリスクがありますのでお勧めできません。

HA-FT-12

仮想マシンの監視
仮想マシンの監視は、仮想OSが何らかの原因でハングしてしまったような場合に仮想マシンをリセットする機能です。仮想マシンの監視には以下の3種類があります。

・無効(デフォルト)
・仮想マシンの監視のみ
・仮想マシンとアプリケーションの監視

仮想マシンがハングしたかどうかの判断には仮想マシンにインストールするVMware Tools及び、仮想マシンのIOステータスが利用されます。VMware Toolsのハートビートが設定時間内に受信出来ず、かつ、仮想マシンのIOも確認できない場合、仮想マシンがハングしたと判断され、仮想マシンがリセットされます。アプリケーションの監視を利用する場合は、本機能をサポートしたサードパーティ製のアプリケーション監視ソフトウェア、もしくはEnterprise PlusライセンスでサポートされるApp HA によるアプリケーション監視の仕組みが別途必要となります。

HA-FT-14

vSphere FT

上記でご説明したvSphere HAは、ホスト障害時に仮想マシンが一度落ちてしまいますが、vSphere FTを利用することでそのダウンタイムを0 にすることが可能です。vSphere FTは、vSphere HAで構成されたホスト上の仮想マシンに対して有効化することが出来ます。つまり、vSphere FT は、vSphere HAで既に保護された仮想マシンの中から、可用性を極限まで高めたい仮想マシンに対して設定を有効化するということになります。

vSphere FTの概要
仮想マシンに対してvSphere FTを有効化すると、プライマリ仮想マシンのコピー(セカンダリ仮想マシン)が他のホスト上に作成されます。プライマリ仮想マシンとセカンダリ仮想マシンはFTネットワークを介して常に同期しており、万が一プライマリ仮想マシンが稼働しているホストが障害で止まってしまった場合は、セカンダリ仮想マシンがすぐさま処理を引き継ぎます。さらに、3ホスト以上でvSphere HAが構成されている場合には、3台目のホストに対しセカンダリ仮想マシンが作成されます。このため、ホスト障害時においても、vSphere FTにより可用性が担保されない時間を極めて短くする仕様となっています。

HA-FT-16-2

vSphere FTの動作詳細
 1. vMotionネットワーク経由で、異なるホストにプライマリ仮想マシンのコピー(セカンダリ仮想マシン)が生成 される
 2. プライマリ仮想マシンにて発生するディスク読み込み、パケット受信、各種デバイスからの入力、 HW割り込み等をキャプチャし、
  VMkernel内のFTログバッファに格納(Record)
 3. ログをFTログネットワーク経由で、セカンダリ仮想マシンに転送
  転送されたログに基づき、セカンダリ仮想マシン上で、プライマリ仮想マシンと同じ処理を並列実行(Replay)
 4. ディスクへや各種デバイスへの出力等のアウトプット処理はプライマリ仮想マシンからのみ行われる
   セカンダリ仮想マシンからのアウトプットはVMkernel上で廃棄され、実際には行われない
 5. FTログネットワーク経由で、プライマリ – セカンダリ仮想マシン間の死活監視を行う
   障害が検出されるとフェールオーバー処理を実行

HA-FT-17

vSphere FTの制限事項
上記したとおり、vSphere FTは極めて高い可用性を実現できますが、以下の機能を利用することが出来ません。
 ・マルチvCPU(VMは1vCPU構成のみ可能)
 ・MSCS構成
 ・RVI/EPT(自動的にOffになる)
 ・準仮想化ゲスト
 ・ホットプラグデバイス
 ・NPIV
 ・VMDirectPath
 ・スナップショットを持った仮想マシン
 ・Storage vMotion
 ・物理互換RDM
   など。詳細は、vSphere可用性マニュアル、及び、KBをご確認下さい。

まとめ
vSphere HA/FTは共に、特殊なハードウェアや難しいクラスタウェア等のソフトウェアを必要としない高可用性の仕組みを提供します。
物理環境からvSphere環境へ移行するだけでvSphere HAがサポートする高い可用性が手に入るというのは仮想化導入の大きなメリットとも言えますし、さらに高い可用性が必要な場合は、少し制限事項も多いですが、vSphere FTをご検討頂ければと思います。

今回は、押さえておきたいvSphereの基本の可用性編としてvSphere HA/FTを取り上げました。押さえておきたいvSphereの基本の他のシリーズに関しては、下記リンクをご確認下さい。

「押さえておきたいvSphereの基本」
~ストレージ編~
1.マニュアル操作でストレージ環境を最適化
2.ストレージと連携してパフォーマンスを最大化
3.優先度の定義付けと自動化

~ネットワーク編~
1.ホスト単位でネットワークを構築する 〜標準スイッチ編〜
2.スケーラブルで高機能なネットワークを構築する 〜分散スイッチ編〜
3.仮想化環境でL3-L7 サービスを提供する 〜vCloud Networking and Security〜

~可用性編~
・物理リソースの有効活用と仮想マシンの最適配置~DRSとリソースプール編~
・システム障害に備える仕組み~vSphere HAとFT編~(本編)