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

 前回はVMware Fault Tolerance(FT)の基本的な仕組みを概観し、VMware HAやVMotionとの違いについて触れた。今回は、VMware FTの核心となる「VMware vLockstep」技術の内部動作を見ながら、2台のホストで処理を同期させる手法を説明したい。

 VMware FTを利用するには図1のような構成のハードウエアとソフトウエアが必要になる。まずプロセッサはVMware FT対応のものが必須である。VMware FT対応とは、vLockstep実現に不可欠となる機能が搭載されていることを示す。具体的には、IntelではPenryn以降、AMDではRev.G以降のアーキテクチャを使ったプロセッサが該当する。

図1●VMware FTを利用するためのハードウエアとソフトウエア
図1●VMware FTを利用するためのハードウエアとソフトウエア
[画像のクリックで拡大表示]

 次に、VMware VMotion用のNICとVMware FT用のNICがそれぞれ必要である。兼用も可能ではあるが、仕組み上、別々であることが望ましいだろう。そして、VMware VMotionが実行できるようになっており、かつVMware HAが「オン」になっている必要がある。これは、VMware VMotion、VMware HA両方の機能が、VMware FTの一部の機能として使われるからである。

 続いてVMware FTがどのような仕組みで動作しているかについて説明しよう。

 VMware FTで必要なすべての処理は、仮想マシンよりも下の層で行われており、ゲストOSおよびアプリケーションの変更は一切必要ない。これを支えるのがVMware vLockstepである。

リプレイは数百ミリ秒~数秒以内に実行

 vLockstepは、異なる二つのホスト上に、それぞれプライマリVM、およびセカンダリVMを稼働させた環境において、プロセッサの命令実行といったプライマリVMで発生したイベントをセカンダリVMでリプレイ(再生)する技術である。

 プライマリVMで発生したイベントは、VMware FT用にあらかじめ割り当てたNICを経由して、FTログとしてセカンダリVMに随時送信されている(図2)。

図2●vLockstepで行うFTログ転送の仕組み
図2●vLockstepで行うFTログ転送の仕組み
[画像のクリックで拡大表示]

 セカンダリVMは、そのFTログを受信して読み取り、随時リプレイを行っている。リプレイは、FTログの内容に従ってプライマリVMと同じプロセッサ命令を同じ順番で実行することで行う。