飯島 徹
日本ヒューレット・パッカード

 VMware Fault Tolerance(FT)は、VMware vSphere 4で最大の目玉となる機能である。VMware FTで保護された仮想マシンは、同じ構成の仮想マシンが2台のホストで同じ動作をするようになる。仮にホストの片方が障害でダウンしても、もう片方がほぼ途切れることなくサービスを提供し続ける。

 「2台のホストで同じ動作をする」というフォールトトレラントの考え方は以前からあるもので、これまでいくつかのベンダーがハードウエアまたはソフトウエア製品として販売している。VMware FTは、それを仮想化技術で実現した。

 しかし、これまでのFT製品は、独自ハードウエアか、特定のハードウエアを要するソフトウエアによって実現されるのが通例であった。これらの通例に共通して言えることは、設定や保守手順が複雑で、得てしてシステムが高額になってしまうことだ。デバイス・ドライバなどの用意が少なく、適用できるOSやアプリケーションに制限があることも多い。

 それに対して、VMware FTはvSphere対応の業界標準サーバー上で動作し、基本的に安価である。また、vSphere上で動かすことのできるほぼすべてのOSで利用することが可能で、使えるアプリケーションにも制限がない。設定もウィザード形式になっているため、簡単だ。ここでは、こうした特徴を備えるVMware FTの概要と仕組みについて、解説する。

障害時のダウンタイムをほぼゼロにする

 VMware FTの動作を簡単にまとめると図1のようになる。VMware FT環境には2台のVMware ESXホストがあり、それぞれで同じ仮想マシンが、同じ処理をほぼ同時に並行して行っている。二つの仮想マシンは、クライアントからはクラスタのように仮想的に一つの仮想マシンに見える。

図1●VMware FTの基本動作
図1●VMware FTの基本動作
[画像のクリックで拡大表示]

 実際には、クライアントは普段、プライマリとなる仮想マシン(プライマリVM)にアクセスしているが、プライマリがなんらかの原因で停止すると、もう1台のセカンダリとなる仮想マシン(セカンダリVM)が処理を引き継ぐ。この引き継ぎは、非常に短い時間で行われ、クライアントはサービスを継続的に受けられる。

 例えば、VMware FT環境を構築して仮想マシン上でストリーミング・サーバーを稼働させ、クライアントで動画を再生したとしよう。ホスト障害で仮想マシンが切り替わるとき、映像データの送信は一瞬止まるが、すぐ何事もなかったかのように続きが送信される。現在のストリーミング技術では先読みバッファ処理を行っていることもあり、クライアント側での再生時に映像が途切れることはほぼ無いだろう。

 VMwareには可用性を高める機能として、このほかにVMware HA(High Availability)やVMware VMotionがある。可用性向上の観点からそれらとVMware FTとを比べると特徴がよりはっきりする(表1)。

表1●VMware FTの特徴をVMware HAやVMotionと比較する
[画像のクリックで拡大表示]
表1●VMware FTの特徴をVMware HAやVMotionと比較する

 VMware HAはホストのハードウエアに障害が発生したとき、そこで稼働していた仮想マシンを、クラスタを構成した別のホストで自動的に再起動する機能である。起動するまでの間、サービスは停止するため、ダウンタイムは発生するものの、停止時間を最小限に抑えられる。

 もう一つのVMotionは、計画停止に伴うダウンタイムを減らす機能だ。仮想マシンを稼働させたまま、別のホストに移行させることが可能で、サービスの停止なしにホストのメンテナンスなどを行える。移行元と移行先のホストの両方が正常に稼働していることが前提のため、障害対策には使えない。

 VMware FTの目的は、障害に備えるVMware HAに近く、ダウンタイムはVMotion並みに短いと言える。ただし、待機系のホストで常時、セカンダリ仮想マシンを稼働させている分、負荷がかかる点に注意したい。