Hyper-V 2.0のLive Migration――仮想マシンはクラスタの夢を見るか?Tech・Ed 2009 Session Report

会期中、開発者やシステム管理者向けに各種テクニカルセッションが行われるTech・Ed 2009。本稿では「仮想マシンはクラスタの夢を見るか?」と題されたセッションでマイクロソフトにより紹介された、Hyper-V 2.0のLive Migrationについて解説する。

» 2009年08月27日 17時38分 公開
[下村恭(ハンズシステム),ITmedia]

 今や、サーバの高可用性を実現するテクノロジーとして、仮想サーバ技術やクラスタ化は当然のものとして認識されている。昨年、Windows Server 2008とともにリリースされたHyper-Vは、Windowsプラットフォームで実現する仮想化技術として注目されているが、いよいよ出荷段階に入ったWindows Server 2008 R2に搭載されるHyper-V 2.0は、クラスタ環境で仮想サーバを構築する場合になくてはならないものとなる。

 クラスタ上に仮想サーバを構築するのは、もちろんサーバの可用性を高めるためだ。つまり、サーバのダウンタイムを限りなくなくし、負荷分散を行うことが目的となる。

 複数のクラスタ化されたホストマシン群を使うことで、ホストマシン群を1つの大きなホストマシンとして使用でき、いずれかのホストマシン(ノード)に何らかの不具合を検知したり、ノードをメンテナンスするといった場合、あるノードで稼働している仮想マシンを、別のノードに移動させることで、仮想サーバを連続してシームレスに稼働させられる。

 同様に、ホストマシンがクラスタ化されていれば、いずれかのノードの負荷が高くなった場合に、パフォーマンスを必要とする仮想サーバを、余裕のあるノードに移動させることで、負荷分散できる。

Hyper-V 1.0に見られた限界

 Windowsプラットフォームでは、Windows Server 2008のフェイルオーバークラスタ機能とHyper-Vを使用することで、クラスタ上に仮想サーバを構築できた。ただし、連続して仮想サーバを稼働させることは難しい事情があった。

 なぜなら、仮想サーバをノード間で移動する際に使われるQuick Migrationでは、連続稼働できなかったからだ。無視できないダウンタイムが発生してしまうのである。

 Quick Migrationの動きは次のようなものだ。

  1. 元ノード上の仮想サーバのメモリ内容を、クライアントマシンのハイバネーションのような形で、すべて共有ディスクに書き出す
  2. 共有ディスクの所有権を新ノードに移す
  3. 新ノード上で共有ディスクに書かれた仮想サーバのメモリ内容を読み出し、ハイバネーションからの復帰のように、仮想サーバを復帰させる
Quick Migrationの動き Quick Migrationの動き(Tech Ed Japan 2009,セッションT1-402より)

 このやり方だと、元ノードで仮想サーバのメモリ内容を共有ディスクに書き出し始めてから、新ノードで読み出し終わるまで、仮想サーバの動作が止まってしまう。つまり、ダウンタイムが発生してしまう。

Hyper-V 2.0が実現する連続稼働

 ところが、Windows Server 2008 R2に搭載されるHyper-V 2.0では、ダウンタイムなしで仮想サーバを移動できるようになる。これがLive Migrationだ。

 Hyper-V 1.0のQuick Migrationでは、前述したように、仮想サーバをノード間で移動させる際に、仮想サーバのメモリ内容をいったん共有ディスクに書きだしていたが、Hyper-V 2.0のLive Migrationでは、仮想サーバのメモリ内容を、直接ノード間で移動させる。

 Hyper-V 1.0におけるQuick Migrationに対し、Live Migrationの動きは次のようなものだ。

  1. 元ノード上の仮想サーバのメモリ内容を、稼働させたままの状態で新ノードに転送。もちろん、稼働したままなので、一通り転送が終わった時点で、変更されてしまったメモリ(ダーティーメモリ)が発生する。そのため、ダーティーメモリが少なくなるまで、メモリの転送を繰り返す
  2. ある程度(ほぼ一瞬で転送が終わる程度に)ダーティーメモリが少なくなったところで、元ノードの仮想サーバを停止する
  3. 残りのダーティメモリと仮想サーバの状態(CPUのレジスタやビデオメモリなど)を新ノードに転送する
  4. 新ノードで仮想サーバを再開する
Live Migrationの動き Live Migrationの動き(Tech Ed Japan 2009,セッションT1-402より)

 この方法であれば、仮想サーバの動作が止まるのは、「3」のタイミングだけである。実際には、ほんの一瞬だけだ。Tech Ed Japan 2009のセッション会場で行われたデモにおいても、ブラックアウトは1、2秒程度であった。

 もちろん、このブラックアウト時間は環境に依存する。ノード間における仮想サーバのメモリ移動は、ネットワークを通じて行われるため、ネットワークが遅いとブラックアウト時間も延びてしまう。

 それにしても、まさに「気付くかどうか」の一瞬のブラックアウトだけで、仮想サーバをノード間で移動できるのだから、これこそ「本当の」クラスタ化仮想サーバといえるだろう。

 仮想サーバの有用性が認識されていながら、実際にはユーザー内に普及したとは言い難い現状だが、Hyper-V 2.0の登場で、Windowsプラットフォームにおける仮想化に弾みがつくことが期待される。

企業向け情報を集約した「ITmedia エンタープライズ」も併せてチェック

関連ホワイトペーパー

Hyper-V


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ