小川 大地
日本ヒューレット・パッカード

 前回は、VMware Fault Tolerance(FT)の核心となる「VMware vLockstep」技術の内部動作を見ながら、2台のホストで処理を同期させる手法を説明した。今回は、二つの仮想マシンを一体化させる仕組みやプライマリVMがダウンしたときの振る舞いを中心に解説する。

図1●FTを新規に構成するときの設定方法
[画像のクリックで拡大表示]

 VMware Fault Tolerance(FT)の設定は簡単である。まず、管理ツールであるvSphere ClientのGUI上で仮想マシンを選択し、右クリックで表示されるメニューから「フォールトトレランスをオン」を選ぶ。実行すると、FTによる保護に向けた準備が始まり、その仮想マシンがプライマリVMとなる(図1)。

 次に、セカンダリVMを稼働させるホストが選択される。セカンダリVMを稼働させるホストの選択には、VMware DRS(Distributed Resource Scheduler)が使われる。VMware DRSは、リソースの使用量に応じて仮想マシンを自動的に再配置するvSphereの機能である。

 VMware DRSが使えない場合は、稼働可能なホストのリストから自動的に選択される。ホストが選択されると、VMotionと同様の仕組みを使って、プライマリVMからセカンダリVMに仮想マシンの状態のコピーが実施される。その後、vLockstepによって、プライマリVMからセカンダリVMへのFTログ送信が開始され、VMware FTによるその仮想マシンの保護が始まる(図2)。

図2●VMware FTによって仮想マシンが保護されている状態
[画像のクリックで拡大表示]

 保護が始まると、前回説明したとおりプライマリVMで発生したイベントがセカンダリVMでリプレイされる(図3)。無論、対外的にはこれら二つの仮想マシンは、あたかも一つの仮想マシンしか動いていないかのように振る舞う。

図3●両方の仮想マシンのコンソールを同時に開いている様子
[画像のクリックで拡大表示]

 この振る舞いに、この技術のミソとなるカラクリが存在する(図4)。そのカラクリとは、セカンダリVMではハイパーバイザーで対外的な出力に該当するものを抑制する、というものである。つまり、事実上プライマリVMでのみ対外的な出力が実施されることになる。対外的な出力とは、例えば、ディスクへの書き込み処理や、ネットワーク送信などが該当する。

図4●セカンダリVMではハイパーバイザーで対外的な出力を抑制する
[画像のクリックで拡大表示]

この先は会員の登録が必要です。今なら有料会員(月額プラン)が2020年1月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら