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

 稼働中の仮想マシンを、異なる物理マシンへ移行(マイグレーション)させるホット・マイグレーション技術は大変便利である。負荷が重くなった仮想マシンを高性能な物理マシンに移して対処するといったことが、ダウンタイムなしに実行できる。VMware vSphereは稼働中の仮想マシンを異なるホスト間で移行する機能としてVMotionを備えている。

 VMotionは、VMware ESX 2.0から実装されているホット・マイグレーション技術である。一つの共有ストレージにある仮想マシンについては、稼働させたまま二つのサーバー間で移行させられる。

 VMotionで仮想マシンを移行するとき、実際にはシステムのサービスが停止するものの、その時間は非常に短い。そのため、システム利用者はVMotionによる停止時間をほとんど意識することはない。

 VMotionは基本的には、移行させる仮想マシンのメモリーやプロセッサの中の情報を別のホストへコピーすることで実現している。

 まず図1のように、移行元と移行先のホストを共有ストレージで接続することによって、ストレージ上の情報についてはコピーを不要にした。共有ストレージとしてはSAN(Storage Area Network)、SAS(Serial Attached SCSI)、iSCSI、NFS(Network File System)のいずれかを利用できる。SAN、SAS、iSCSIの場合、共有ストレージにはVMware独自のVMFSというクラスタ・ファイル・システムを利用し、NFSの場合はNFSそのものを利用することで、各ホスト間のロック管理が行える。

図1●VMotionのシステム構成と実行時のイベント
図1●VMotionのシステム構成と実行時のイベント
[画像のクリックで拡大表示]

 一方、ホスト上のメモリーやプロセッサの中の情報については、高速のVMotion専用ネットワークでコピーする。各種情報を高速に転送する必要があるため、VMotionの専用ネットワークはギガビット・イーサネットで構成する必要がある。

 実際の処理は以下に示す3ステップである。

●ステップ1
 VMotionが要求されると、管理ツールのvCenter Serverによって、対象の仮想マシンが現在のホスト上で正しく機能していることが確認される。

●ステップ2
 対象となる仮想マシンの状態情報を、移行先ホストにコピーする。仮想マシンの状態情報には、ネットワーク接続情報を含む全メモリー情報と、レジスタなどプロセッサの中の全情報が含まれる。

●ステップ3
 移行先ホストで、対象となる仮想マシンの活動を再開させる。なお、VMotion中にエラーが発生した場合、仮想マシンはVMotion実行前の状態に戻される。

メモリーのスナップショットをコピーに利用

 上述したステップのうち、仮想マシンの状態情報を移行先ホストにコピーする部分を、図1を使ってもう少し詳しく説明すると以下のようになる。

  • (1)移行元のESX02で、仮想マシンTestSrvに割り当てられたメモリーのスナップショットが取られ、NIC2を介してESX01に送信される。例えば、TestSrvに4096Mバイトのメモリーを割り当てていたときは、4096Mバイト分のデータをネットワーク経由で送信する。この後、ESX01ではメモリー・スナップショットとTestSrv用の仮想ディスクを使って、TestSrvを活動させるための準備を開始する。

  • (2)メモリーのスナップショットを送信した後も、ESX02上で稼働しているTestSrvはクライアントPCからの要求に応じ続けている。スナップショット送信後に変更されたTestSrvのメモリーの差分情報を含む仮想マシンの状態情報が、ESX02からESX01にNIC2を介して送信される。ESX01では、(1)の時点で準備したTestSrvに、その後ESX02から送られてきた仮想マシン状態情報を加えて、TestSrvの最新状態を作り出す。ESX01上のTestSrvが最新状態になったら、ESX02は自身で稼働しているTestSrvの活動を停止させ、ESX01は自身の上のTestSrvの活動を開始する。

  • (3)ESX01はNIC1を介して、送信元と送信先が共にTestSrvのMACアドレスとなっているRARP(Reverse Address Resolution Protocol)パケットをネットワーク上に送信する。これにより、ESX01のNIC1がつながっているネットワーク・スイッチに対して、TestSrvのMACアドレス・テーブルを更新するように促し、TestSrvのMACアドレスをあて先とするパケットは、ESX01のNIC1に向かうようになる。

 次回は、VMotionによる仮想マシンの移行(マイグレーション)にかかる時間を、ベンチマークで計測した結果に基づき解説する。