前述のとおり、非常にメリットの大きいライブ・マイグレーションであるが、そのメリットを生かした効果的な仮想化システムを構築するには、ライブ・マイグレーションの仕組みを理解しておく必要がある。
仮想化は論理的な要素であるが、視点を変えて物理的に、つまりハードウェアを意識してライブ・マイグレーションを考えてみよう。ライブ・マイグレーションを実行すると、仮想マシンは現在動いているサーバ・マシンから、別のサーバ・マシンに移動する。移動先サーバは、移動元とハードウェアが物理的に異なるため、データを移す必要があるはずだ。仮想マシンのデータはどこにあるかというと、大きく分けて2カ所に格納されている。
1つは、当然ながらディスクである。Hyper-Vの仮想マシンが書き込みをするディスクはVHDというファイルにカプセル化されるが、ハードウェア的にはHyper-Vホストがマウントするディスク上に格納されている。もう1つ、忘れてはいけないのがメモリである。物理/仮想にかかわらず、動作中のOSやアプリケーションは、メモリ上に展開されているデータを利用する。
メモリとディスクは、それぞれ一次記憶装置、二次記憶装置と呼ばれることから分かるとおり、通常はメモリ→ディスクの流れでデータの書き込みが行われる。つまり、メモリ上にしかないデータもあれば、ディスク上にしかないデータもあるのだ。従って、ライブ・マイグレーションで仮想マシンのサーバ・マシンを切り替えるには、メモリとディスクのそれぞれのデータを、移動先のサーバ・マシンでも引き継がなければならない。
この2カ所のデータについて、ライブ・マイグレーションでは別々な方法を用いて引き継ぎを行っている。
■メモリ
メモリ・データの引き継ぎ方法は単純だ。仮想マシンに割り当てたメモリ内容を丸ごとコピーしているだけである。このコピーはネットワーク経由で行われる。
■ディスク
ディスクはメモリと比べて非常に容量が大きいため、メモリのようにコピーをすると多大な時間がかかってしまう。このため、ディスク・データについてはコピーでの引き継ぎは行わない。共有ストレージを用いて、実データをそのまま引き継ぐ手法を採用している。
「共有ストレージでディスク内容を引き継ぐ」という言葉からピンときた読者もいるかもしれない。ご想像のとおり、ライブ・マイグレーションは、「Windows Serverフェイルオーバー・クラスタ」(略称:WSFC、Windows Server 2003まではMSCSと呼ばれていた)の技術を利用している(フェイルオーバー・クラスタについては、「Windowsクラスタリング入門」参照のこと)。
しかし、通常のWSFCの技術では大きな問題がある。Windows Serverが採用しているNTFSはクラスタ・ファイル・システムではないという致命的な問題だ。NTFSは単一のノードだけが占有するように設計されたファイル・システムであり、複数のノードが同時にアクセスすると壊れてしまう。これを防ぐために、WSFCではノード切り替えに合わせてディスクの占有権(所有権)も切り替えるが、これによって両ホストのどちらからもアクセスできないダウン状態が数秒間発生してしまうのだ。アプリケーションに影響を与えずに仮想マシンを移動するライブ・マイグレーションにとって、数秒間のダウンは許容されない致命的な問題なのである。
Copyright© Digital Advantage Corp. All Rights Reserved.