(57)【特許請求の範囲】
【請求項１】
第１のサーバ上で稼働している第１の仮想マシンのメモリの第２のサーバへのコピーが完了したことを検知する検知部と、
前記検知部によって前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことが検知された場合、前記第１のサーバ上で稼働している第２の仮想マシンのメモリを前記第２のサーバへコピーすることを前記第１のサーバに指示する指示部と、
前記第２のサーバと接続され、仮想マシンから送信されたＲＡＲＰパケットを検知するＲＡＲＰ検知部と、
を有し、
前記検知部は、前記ＲＡＲＰ検知部によって前記第２のサーバ上の前記第１の仮想マシンから送出されたＲＡＲＰパケットが検知された場合に、前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことを検知することを特徴とする仮想マシン管理システム。
【請求項２】
第１のサーバ上で稼働している第１の仮想マシンのメモリの第２のサーバへのコピーが完了したことを検知する検知部と、
前記検知部によって前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことが検知された場合、前記第１のサーバ上で稼働している第２の仮想マシンのメモリを前記第２のサーバへコピーすることを前記第１のサーバに指示する指示部と、
前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーにかかる時間を計算する計算部と、
を有し、
前記検知部は、前記第１のサーバ上で稼働している前記第１の仮想マシンのメモリの前記第２のサーバへのコピーが開始された後、前記計算部によって計算された時間が経過した場合に、前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことを検知することを特徴とする仮想マシン管理システム。
【請求項３】
前記第１のサーバは、前記第１の仮想マシンのメモリを前記第２のサーバへコピーした後、前記第１の仮想マシンが稼働していることによって発生した差分のメモリをさらに前記第２のサーバへコピーすることをｋ回繰り返し、
前記計算部は、式（１−１）で計算されるＴｃ、および式（１−２）で計算されるＴｄを合計した時間を、前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーにかかる時間として計算することを特徴とする請求項２に記載の仮想マシン管理システム。
【数１】
0006480359.tif 000003
【請求項４】
第１のサーバ上で稼働している第１の仮想マシンのメモリの第２のサーバへのコピーが完了したことを検知する検知部と、
前記検知部によって前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことが検知された場合、前記第１のサーバ上で稼働している第２の仮想マシンのメモリを前記第２のサーバへコピーすることを前記第１のサーバに指示する指示部と、
前記第１のサーバおよび前記第２のサーバに接続され、前記第１の仮想マシンのコピーに用いられるネットワークと接続され、前記ネットワークを通過するトラヒックを監視するトラヒック監視部と、
を有し、
前記検知部は、前記トラヒック監視部によって前記ネットワークにトラヒックが流れなくなったことが検知された場合に、前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことを検知することを特徴とする仮想マシン管理システム。
【請求項５】
第１のサーバ上で稼働している第１の仮想マシンのメモリの第２のサーバへのコピーが完了したことを検知する検知部と、
前記検知部によって前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことが検知された場合、前記第１のサーバ上で稼働している第２の仮想マシンのメモリを前記第２のサーバへコピーすることを前記第１のサーバに指示する指示部と、
前記第２のサーバに備えられ、前記第２のサーバのメモリ量の増加量を監視するメモリ量監視部と、
を有し、
前記検知部は、前記メモリ量監視部によって前記第２のサーバのメモリ量が増加しなくなったことが検知された場合に、前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことを検知することを特徴とする仮想マシン管理システム。
【請求項６】
第１のサーバ及び第２のサーバと接続された仮想マシン管理サーバによって実行される仮想マシン管理方法であって、
前記第１のサーバ上で稼働している第１の仮想マシンのメモリを前記第２のサーバへコピーすることを、前記第１のサーバに指示する第１の指示工程と、
前記第１のサーバから前記第２のサーバへの仮想マシンのメモリのコピーが完了したことを検知する検知工程と、
前記検知工程によって前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことが検知された場合、前記第１のサーバ上で稼働している第２の仮想マシンのメモリを前記第２のサーバへコピーすることを前記第１のサーバに指示する第２の指示工程と、
仮想マシンから送信されたＲＡＲＰパケットを検知するＲＡＲＰ検知工程と、
を含み、
前記検知工程は、前記ＲＡＲＰ検知工程によって前記第２のサーバ上の前記第１の仮想マシンから送出されたＲＡＲＰパケットが検知された場合に、前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことを検知することを特徴とする仮想マシン管理方法。
【請求項７】
第１のサーバ及び第２のサーバと接続された仮想マシン管理サーバによって実行される仮想マシン管理方法であって、
前記第１のサーバ上で稼働している第１の仮想マシンのメモリを前記第２のサーバへコピーすることを、前記第１のサーバに指示する第１の指示工程と、
前記第１のサーバから前記第２のサーバへの仮想マシンのメモリのコピーが完了したことを検知する検知工程と、
前記検知工程によって前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことが検知された場合、前記第１のサーバ上で稼働している第２の仮想マシンのメモリを前記第２のサーバへコピーすることを前記第１のサーバに指示する第２の指示工程と、
前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーにかかる時間を計算する計算工程と、
を含み、
前記検知工程は、前記第１のサーバ上で稼働している前記第１の仮想マシンのメモリの前記第２のサーバへのコピーが開始された後、前記計算工程によって計算された時間が経過した場合に、前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことを検知することを特徴とする仮想マシン管理方法。
【請求項８】
第１のサーバ及び第２のサーバと接続された仮想マシン管理サーバによって実行される仮想マシン管理方法であって、
前記第１のサーバ上で稼働している第１の仮想マシンのメモリを前記第２のサーバへコピーすることを、前記第１のサーバに指示する第１の指示工程と、
前記第１のサーバから前記第２のサーバへの仮想マシンのメモリのコピーが完了したことを検知する検知工程と、
前記検知工程によって前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことが検知された場合、前記第１のサーバ上で稼働している第２の仮想マシンのメモリを前記第２のサーバへコピーすることを前記第１のサーバに指示する第２の指示工程と、
前記第１の仮想マシンのコピーに用いられるネットワークを通過するトラヒックを監視するトラヒック監視工程と、
を含み、
前記検知工程は、前記トラヒック監視工程によって前記ネットワークにトラヒックが流れなくなったことが検知された場合に、前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことを検知することを特徴とする仮想マシン管理方法。
【請求項９】
第１のサーバ及び第２のサーバと接続された仮想マシン管理サーバによって実行される仮想マシン管理方法であって、
前記第１のサーバ上で稼働している第１の仮想マシンのメモリを前記第２のサーバへコピーすることを、前記第１のサーバに指示する第１の指示工程と、
前記第１のサーバから前記第２のサーバへの仮想マシンのメモリのコピーが完了したことを検知する検知工程と、
前記検知工程によって前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことが検知された場合、前記第１のサーバ上で稼働している第２の仮想マシンのメモリを前記第２のサーバへコピーすることを前記第１のサーバに指示する第２の指示工程と、
前記第２のサーバに備えられ、前記第２のサーバのメモリ量の増加量を監視するメモリ量監視工程と、
を含み、
前記検知工程は、前記メモリ量監視工程によって前記第２のサーバのメモリ量が増加しなくなったことが検知された場合に、前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことを検知することを特徴とする仮想マシン管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン管理システムおよび仮想マシン管理方法に関する。
【背景技術】
【０００２】
従来、サーバの負荷平準化等の目的で、複数の仮想マシン（ＶＭ：Virtual  Machine）をライブマイグレーションにより再配置することが知られている（例えば非特許文献１）。ライブマイグレーションにより負荷を平準化しておくことで、処理トラヒック量ピーク時にも、必要最低限の装置で対応することができるようになる。なお、ライブマイグレーションは、ＶＭのメモリを移動元サーバから移動先サーバへネットワークを介してコピーすることで実現される。
【０００３】
また、例えば、ライブマイグレーションは、ＶＭ管理サーバから、移動対象となるＶＭが稼働しているサーバに対して送信されるコマンドにより行われる。さらに、複数のＶＭのライブマイグレーションを行う場合、ＶＭ管理サーバは、対象となるＶＭの数だけコマンドを設定し、設定したコマンドをサーバへ送信する。そして、サーバは、１つのＶＭのライブマイグレーションが完了すると次のＶＭのライブマイグレーションを実行する、といったように、順にライブマイグレーションを行っていく。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Microsoft  TechNet  “仮想マシンのライブマイグレーションの概要”、［2016年2月1日検索］、インターネット（https://technet.microsoft.com/ja-jp/library/hh831435.aspx）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のライブマイグレーションの方法には、複数のＶＭのライブマイグレーションを行う場合の処理時間が長いという問題があった。
【０００６】
例えば、従来のライブマイグレーションの方法では、ＶＭのメモリが移動元のサーバから移動先のサーバへコピーされた後に実行される最終処理が完了するのを待って、次のＶＭのメモリのコピーが指示されていた。このため、複数のＶＭのライブマイグレーションを行う場合、最終処理の完了を待機する時間が発生するため、処理時間が長くなっていた。
【課題を解決するための手段】
【０００７】
本発明の仮想マシン管理システムは、第１のサーバ上で稼働している第１の仮想マシンのメモリの第２のサーバへのコピーが完了したことを検知する検知部と、前記検知部によって前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことが検知された場合、前記第１のサーバ上で稼働している第２の仮想マシンのメモリを前記第２のサーバへコピーすることを前記第１のサーバに指示する指示部と、を有することを特徴とする。
【０００８】
また、本発明の仮想マシン管理方法は、第１のサーバ上で稼働している第１の仮想マシンのメモリを第２のサーバへコピーすることを、前記第１のサーバに指示する第１の指示工程と、前記第１のサーバから前記第２のサーバへの仮想マシンのメモリのコピーが完了したことを検知する検知工程と、前記検知工程によって前記第１のサーバから前記第２のサーバへの前記第１の仮想マシンのメモリのコピーが完了したことが検知された場合、前記第１のサーバ上で稼働している第２の仮想マシンのメモリを前記第２のサーバへコピーすることを前記第１のサーバに指示する第２の指示工程と、を含んだことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、複数のＶＭのライブマイグレーションを行う場合の処理時間を短縮することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、ＶＭの再配置の概要を示す図である。
【図２】図２は、従来の仮想マシン管理システムの構成の一例を示す図である。
【図３】図３は、従来の仮想マシン管理システムによるライブマイグレーションに要する時間について説明するための図である。
【図４】図４は、ＶＭ管理サーバの構成の一例を示す図である。
【図５】図５は、ＶＭ管理サーバの処理の一例を示すフローチャートである。
【図６】図６は、第１の実施形態に係る仮想マシン管理システムの構成の一例を示す図である。
【図７】図７は、第２の実施形態に係る仮想マシン管理システムの構成の一例を示す図である。
【図８】図８は、第２の実施形態に係る仮想マシン管理システムの動作について説明するための図である。
【図９】図９は、第３の実施形態に係る仮想マシン管理システムの構成の一例を示す図である。
【図１０】図１０は、第４の実施形態に係る仮想マシン管理システムの構成の一例を示す図である。
【図１１】図１１は、実施形態の仮想マシン管理システムによるライブマイグレーションに要する時間について説明するための図である。
【図１２】図１２は、プログラムが実行されることにより、ＶＭ管理サーバが実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願に係る仮想マシン管理システムおよび仮想マシン管理方法の実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【００１２】
［ライブマイグレーションの概要］
まず、ライブマイグレーションの概要を説明する。図１に示すように、サーバ１０１、１０２および１０３のそれぞれにおいて、複数のＶＭが稼働している状況を考える。図１は、ＶＭの再配置の概要を示す図である。ここで、リソース使用量が大きいサーバでは、処理トラヒック量の増加に対応できない場合がある。そのため、処理トラヒック量の増加に備えて、あらかじめＶＭを再配置することで負荷を平準化しておく必要がある。
【００１３】
図１の例では、サーバ１０１のリソース使用量が大きく、サーバ１０３のリソース使用量が小さいため、ライブマイグレーションにより、サーバ１０１で稼働しているＶＭのうち２つのＶＭをサーバ１０３に移動させている。これにより、サーバ１０１のリソース使用量が減少し、サーバ１０３のリソース使用量が増加し、全体の負荷が平準化される。
【００１４】
また、図２に示すように、複数のＶＭのライブマイグレーションは、ＶＭ管理サーバが、ＶＭが稼働しているサーバにコマンドを送信することによって行われる。図２は、従来の仮想マシン管理システムの構成の一例を示す図である。図２に示すように、ＶＭ管理サーバ１０ａは、ＶＭ＃１のライブマイグレーションのためのコマンド、およびＶＭ＃２のライブマイグレーションのためのコマンドを設定し、設定したコマンドをサーバ＃１に送信する。
【００１５】
また、ライブマイグレーションは、移動処理および移動の最終処理を含んでいる。移動処理では、ＶＭのメモリが移動元のサーバから移動先のサーバへコピーされる。また、移動の最終処理では、移動元のサーバに残っているＶＭのメモリの削除等が行われる。例えば、図２に示すようなＶＭ＃１およびＶＭ＃２のライブマイグレーションにおいては、ＶＭ＃１の移動処理、ＶＭ＃１の移動の最終処理、ＶＭ＃２の移動処理、ＶＭ＃２の移動の最終処理の順に処理が行われる。
【００１６】
ライブマイグレーションに要する時間について、図３を用いて説明する。図３は、従来の仮想マシン管理システムによるライブマイグレーションに要する時間について説明するための図である。図３に示すように、サーバ＃１で稼働していたＶＭ＃１のメモリがサーバ＃１からサーバ＃２にコピーされると、サーバ＃２で稼働を開始すると同時に、ＶＭ＃１はＲＡＲＰ（Reverse  Address  Resolution  Protocol）パケットを送出する。そして、その後ＶＭ＃１の移動の最終処理が行われる。なお、ＲＡＲＰとは、ＭＡＣアドレスからＩＰアドレスを解決するためのプロトコルであるが、ここでは、ＶＭの移動、つまり、ＭＡＣアドレスの移動を周辺のネットワーク機器に通知するために使われる。
【００１７】
そして、ＶＭ＃１の移動の最終処理が完了した後、サーバ＃１で稼働しているＶＭ＃２のメモリのサーバ＃１からサーバ＃２へのコピーが開始される。このとき、ＶＭ＃１の移動の最終処理が行われている間（図３のｔａ）は、ＶＭ＃２の移動処理が開始されないため、メモリのコピーのためのリソースが空き状態となる。このため、移動の最終処理が完了するのを待機している時間が無駄な時間となり、トータルの処理時間を増加させていることが考えられる。
【００１８】
また、以下の実験結果からも、移動の最終処理のための待ち時間がトータルの処理時間を増加させていることが分かっている。実験においては、下記のようなＶＭをサーバ＃１上に複数設定し、サーバ＃１からサーバ＃２へ順次ライブマイグレーションを実行させた。
ＶＭの処理：ＩＰ  ｆｏｒｗａｒｄｉｎｇ
ＶＭ１つ当たりのコア割り当て数：１コア
ＶＭ１つ当たりのメモリ割り当て量：５１２ＭＢ
ＶＭ１つ当たりの処理フロー帯域：１００ｋｂｐｓ
この結果、ＲＡＲＰの受信間隔（移動指示間隔）は約９秒、ＶＭ１つ当たりの移動処理時間（移動指示からＲＡＲＰ送出までの時間）は約５秒であった。これより、１つのＶＭの移動の最終処理のための待ち時間が約４秒発生していることが分かる。
【００１９】
本発明は、このような移動の最終処理のための待ち時間を発生させないようにすることで、複数のＶＭのライブマイグレーションを行う場合の処理時間を短縮することを目的としている。以降、本発明の実施形態について説明する。
【００２０】
［第１の実施形態］
第１の実施形態に係る仮想マシン管理システムの構成、処理の流れおよび効果を説明する。まず、仮想マシン管理システムに含まれる装置であるＶＭ管理サーバの構成について、図４を用いて説明する。図４は、ＶＭ管理サーバの構成の一例を示す図である。
【００２１】
図４に示すように、ＶＭ管理サーバ１０は、指示部１１、検知部１２および記憶部１３を有する。検知部１２は、サーバ上で稼働しているＶＭのメモリの他のサーバへのコピーが完了したことを検知する。また、指示部１１は、サーバに対し、当該サーバ上で稼働しているＶＭのメモリを他のサーバへコピーすることを指示する。また、記憶部１３は、処理に必要な情報を記憶する。記憶部１３は、例えば、移動対象となるＶＭのリストを記憶する。なお、指示部１１は、メモリのコピーを行うためのコマンドを設定し、設定したコマンドをサーバに送信することにより指示を行う。
【００２２】
具体的に、サーバ＃１上で稼働しているＶＭ＃１およびＶＭ＃２を、サーバ＃２へライブマイグレーションにより移動させる場合、ＶＭ管理サーバ１０の各部は以下のような処理を行う。まず、指示部１１は、サーバ＃１上で稼働しているＶＭ＃１のメモリをサーバ＃２へコピーすることをサーバ＃１に指示する。そして、検知部１２は、サーバ＃１上で稼働しているＶＭ＃１のメモリのサーバ＃２へのコピーが完了したことを検知する。さらに、指示部１１は、検知部１２によってサーバ＃１からサーバ＃２へのＶＭ＃１のメモリのコピーが完了したことが検知された場合、サーバ＃１上で稼働しているＶＭ＃２のメモリをサーバ＃２へコピーすることをサーバ＃１に指示する。なお、このとき、ＶＭ＃２のメモリのコピーとともにＶＭ＃１の移動の最終処理が実行される。
【００２３】
例えば、指示部１１によってＶＭ＃２のサーバ＃２へのコピーの指示が行われる時点において、サーバ＃１は、ＶＭ＃１のサーバ＃２へのコピーに関する後処理、すなわち移動の最終処理を行っている場合がある。このとき、サーバ＃１は、ＶＭ＃１のサーバ＃２へのコピーに関する後処理と、指示部１１によって指示されたＶＭ＃２のサーバ＃２へのコピーと、を同時に実行する。
【００２４】
ＶＭ管理サーバ１０の各部の処理を、図５のフローチャートを用いて説明する。図５は、ＶＭ管理サーバの処理の一例を示すフローチャートである。まず、前提として、記憶部１３は、ライブマイグレーションの対象となるＶＭのリストを記憶しているものとする。このとき、記憶部１３は、例えばＶＭ＃１およびＶＭ＃２を移動対象のＶＭとして記憶している。
【００２５】
図５に示すように、まず、指示部１１は、記憶部１３に記憶されている移動対象となるＶＭのリストを参照し、移動対象のＶＭを選択する（ステップＳ１０１）。このとき、指示部１１は、移動対象のＶＭとしてＶＭ＃１を選択したこととする。そして、指示部１１は、ＶＭ＃１の移動実行コマンドをサーバ＃１に送信する（ステップＳ１０２）。
【００２６】
ここで、検知部１２は、ＶＭ＃１のサーバ＃１からサーバ＃２へのメモリコピーの完了を検知するまで待機する（ステップＳ１０３、Ｎｏ）。そして、検知部１２が、ＶＭ＃１のサーバ＃１からサーバ＃２へのメモリコピーが完了したことを検知した場合（ステップＳ１０３、Ｙｅｓ）、指示部１１は、記憶部１３を参照し、移動対象のＶＭのうち未選択のＶＭがあるか否かを確認する（ステップＳ１０４）。
【００２７】
このとき、ＶＭ＃２が未選択のＶＭとして残っているため（ステップＳ１０４、Ｙｅｓ）、指示部１１は、移動対象のＶＭとしてＶＭ＃２を選択する（ステップＳ１０１）。そして、ＶＭ管理サーバ１０は、ＶＭ＃２についてもＶＭ＃１の場合と同様の処理を行い、記憶部１３に記憶されている未選択のＶＭがなくなったところで処理を終了する（ステップＳ１０４、Ｎｏ）。
【００２８】
［第１の実施形態の検知方式］
本発明の各実施形態においては、検知部１２がどのようにしてメモリコピーの完了を検知するかが異なっている。ここで、図６を用いて第１の実施形態における検知方式について説明する。図６は、第１の実施形態に係る仮想マシン管理システムの構成の一例を示す図である。
【００２９】
図６に示すように、第１の実施形態の仮想マシン管理システムには、ＲＡＲＰ検知部２０が備えられている。ＲＡＲＰ検知部２０は、サーバ＃２と接続され、ＶＭから送信されたＲＡＲＰパケットを検知する。ＲＡＲＰ検知部２０は、Ｕ−ｐｌａｎｅネットワーク用スイッチを介してサーバ＃２と接続されている。なお、Ｕ−ｐｌａｎｅネットワークはユーザの端末およびサーバ＃２が接続されたネットワークである。また、サーバ＃２へのメモリコピーが完了したＶＭは、Ｕ−ｐｌａｎｅネットワークに対してＲＡＲＰパケットを送出する。なお、ＲＡＲＰ検知部２０は、サーバ＃２において送出されるＲＡＲＰパケットを受信可能な任意の場所に備えられていればよい。
【００３０】
検知部１２は、ＲＡＲＰ検知部２０によってサーバ＃２上のＶＭ＃１から送出されたＲＡＲＰパケットが検知された場合に、サーバ＃１からサーバ＃２へのＶＭ＃１のメモリのコピーが完了したことを検知する。なお、ＲＡＲＰ検知部２０は、ＲＡＲＰパケットを検知した場合、ＲＡＲＰパケットを検知したことを検知部１２に通知する。
【００３１】
［第２の実施形態］
第２の実施形態において、仮想マシン管理システムは、メモリコピーに要する時間をあらかじめ計算しておき、移動実行コマンドによりサーバに対してメモリコピーを指示した後に、計算した時間が経過した場合にメモリコピーが完了したことを検知する。
【００３２】
［第２の実施形態の検知方式］
図７を用いて第２の実施形態における検知方法について説明する。図７は、第２の実施形態に係る仮想マシン管理システムの構成の一例を示す図である。図７に示すように、ＶＭ管理サーバ１０は、第１の実施形態の構成に加えて、計算部１４をさらに有する。計算部１４は、移動元のサーバから移動先のサーバへのＶＭのメモリのコピーにかかる時間を計算する。
【００３３】
計算部１４は、サーバ＃１からサーバ＃２へのＶＭ＃１のメモリのコピーにかかる時間を計算する。このとき、検知部１２は、サーバ＃１上で稼働しているＶＭ＃１のメモリのサーバ＃２へのコピーが開始された後、計算部１４によって計算された時間が経過した場合に、サーバ＃１からサーバ＃２へのＶＭ＃１のメモリのコピーが完了したことを検知する。
【００３４】
ここで、ライブマイグレーションにおいては、例えばサーバ＃２にＶＭ＃１のメモリのコピーを行っている最中であっても、サーバ＃１においてＶＭ＃１は稼働中であり、サーバ＃１におけるＶＭ＃１のメモリとサーバ＃２にコピーされたＶＭ＃１のメモリとの間に差分が発生する場合がある。
【００３５】
そこで、サーバ＃１は、ＶＭ＃１のメモリをサーバ＃２へコピーした後、ＶＭ＃１が稼働していることによって発生した差分のメモリをさらにサーバ＃２へコピーすることを繰り返すことで差分を埋めていくことができる。そして、最後の差分をコピーする間だけ、サーバ＃１におけるＶＭ＃１の稼働を停止させることで、停止時間をできるだけ短くしつつ、ＶＭ＃１のメモリのコピーを正確に行うことが可能となる。
【００３６】
ここで、サーバ＃１がＶＭ＃１の差分のコピーをｋ回繰り返す場合の例を、図８を用いて説明する。図８は、第２の実施形態に係る仮想マシン管理システムの動作について説明するための図である。図８においては、ｋ回目のメモリのコピーにかかる時間をｔｋ、最後にＶＭ＃１の稼働を停止させる時間をｔとしている。図８に示すように、差分のコピーが繰り返されるたびに、コピーにかかる時間は減少していく。
【００３７】
次に、計算部１４による、ｋ回目までのメモリコピーにかかるメモリコピー時間Ｔｃおよびサービス断時間Ｔｄの計算方法について説明する。計算部１４は、ＶＭのメモリサイズをＭ、ＶＭのメモリ変化速度をＷ、メモリコピー帯域をＢ、メモリ閾値をＭｔとすると、ＴｃおよびＴｄを、下記の式（１−１）および式（１−２）を用いて計算する。
【数１】
0006480359.tif 000002
【００３８】
例として、ＶＭ＃１をサーバ＃１からサーバ＃２に移動する場合であって、Ｍ＝１００［ＭＢ］、Ｗ＝５０［Ｍｂｐｓ］、Ｂ＝１００［Ｍｂｐｓ］、Ｍｔ＝１０［ＭＢ］である場合について説明する。この場合、ＶＭ＃１はメモリサイズが１００ＭＢであり、メモリには毎秒５０Ｍｂの差分が発生する。また、サーバ＃１からサーバ＃２へは、１００Ｍｂｐｓの速度でＶＭ＃１のメモリがコピーされ、差分のメモリ量が１０ＭＢ以下となった場合はサービス断時間を設けてＶＭ＃１の稼働を停止するものとする。
【００３９】
この場合、ｋは、ｋ＞＝ｌｏｇ（Ｗ／Ｂ）Ｍｔ／Ｍを満たす最小の整数であるので、ｋ＝４である。これは、４回目のメモリコピーにおいては、コピーするメモリ量がメモリ閾値以下になることを表している。また、計算部１４は、式（１−１）および式（１−２）を用いて、Ｔｃ＝１５［ｓ］、Ｔｄ＝０．５［ｓ］であることを計算し、さらに、Ｔｃ＋Ｔｄ＝１５．５［ｓ］であることを計算する。
【００４０】
つまり、この場合、計算部１４は、メモリコピーに要する時間が１５．５秒であることをあらかじめ計算する。そして、検知部１２は、指示部１１が移動実行コマンドによりサーバに対してメモリコピーを指示した後に、１５．５秒が経過した場合にメモリコピーが完了したことを検知する。
【００４１】
［第３の実施形態］
第３の実施形態において、仮想マシン管理システムは、ＶＭの移動元のサーバとＶＭの移動先のサーバとの間のメモリコピー用のネットワークにおけるトラヒックを監視することによってメモリコピーが完了したことを検知する。
【００４２】
［第３の実施形態の検知方式］
図９を用いて第３の実施形態における検知方式について説明する。図９は、第３の実施形態に係る仮想マシン管理システムの構成の一例を示す図である。図９に示すように、仮想マシン管理システムは、ＶＭ管理サーバ１０およびトラヒック監視部３０を有する。ＶＭ監視サーバ１０の構成および処理は第１の実施形態と同様である。
【００４３】
トラヒック監視部３０は、サーバ＃１およびサーバ＃２に接続され、ＶＭ＃１のコピーに用いられるネットワークと接続され、ネットワークを通過するデータ量を監視する。具体的に、トラヒック監視部３０は、サーバ＃１とサーバ＃２との間でＶＭのメモリのコピーを行うためのネットワークであるメモリコピーネットワークのスイッチに接続されている。そして、トラヒック監視部３０は、メモリコピーネットワークのトラヒックを監視する。検知部１２は、トラヒック監視部３０によってネットワークにトラヒックが流れなくなったことが検知された場合に、サーバ＃１からサーバ＃２へのＶＭ＃１のメモリのコピーが完了したことを検知する。
【００４４】
これにより、ＶＭ管理サーバ１０の検知部１２は、ＶＭ＃１のメモリコピーが完了したことを検知する。
【００４５】
［第４の実施形態］
第４の実施形態において、仮想マシン管理システムは、ＶＭの移動先のサーバのメモリ量を監視することによってメモリコピーが完了したことを検知する。
【００４６】
［第４の実施形態の検知方式］
図１０を用いて第４の実施形態における検知方式について説明する。図１０は、第４の実施形態に係る仮想マシン管理システムの構成の一例を示す図である。図１０に示すように、仮想マシン管理システムは、ＶＭ管理サーバ１０およびメモリ量監視部４０を有する。ＶＭ監視サーバ１０の構成および処理は第１の実施形態と同様である。
【００４７】
メモリ量監視部４０は、サーバ＃２に備えられ、サーバ＃２のメモリの増加量を監視する。このとき、検知部１２は、メモリ量監視部４０によってサーバ＃２のメモリ量が増加しなくなったことが検知された場合に、サーバ＃１からサーバ＃２へのＶＭ＃１のメモリのコピーが完了したことを検知する。
【００４８】
これにより、ＶＭ管理サーバ１０の検知部１２は、ＶＭ＃１のメモリコピーが完了したことを検知する。
【００４９】
［実施形態の効果］
第１〜第４の実施形態において、検知部１２は、サーバ＃１上で稼働しているＶＭ＃１のメモリのサーバ＃２へのコピーが完了したことを検知する。また、指示部１１は、検知部１２によってサーバ＃１からサーバ＃２へのＶＭ＃１のメモリのコピーが完了したことが検知された場合、サーバ＃１上で稼働しているＶＭ＃２のメモリをサーバ＃２へコピーすることをサーバ＃１に指示する。
【００５０】
なお、指示部１１によってＶＭ＃２のサーバ＃２へのコピーの指示が行われる時点において、サーバ＃１は、ＶＭ＃１のサーバ＃２へのコピーに関する後処理を行っている場合がある。このとき、サーバ＃１は、ＶＭ＃１のサーバ＃２へのコピーに関する後処理と、指示部１１によって指示されたＶＭ＃２のサーバ＃２へのコピーと、を同時に実行してもよい。
【００５１】
これにより、図１１に示すように、ＶＭ管理サーバ１０は、ＶＭ＃１のメモリコピーが完了した後、ＶＭ＃１の移動の最終処理の完了を待つことなくＶＭ＃２の移動指示を出すことができるため、複数のＶＭのライブマイグレーションを行う場合の処理時間を短縮することができる。図１１は、実施形態の仮想マシン管理システムによるライブマイグレーションに要する時間について説明するための図である。
【００５２】
また、第１の実施形態において、ＲＡＲＰ検知部２０は、サーバ＃２と接続され、ＶＭから送信されたＲＡＲＰパケットを検知する。このとき、検知部１２は、ＲＡＲＰ検知部２０によってサーバ＃２上のＶＭ＃１から送出されたＲＡＲＰパケットが検知された場合に、サーバ＃１からサーバ＃２へのＶＭ＃１のメモリのコピーが完了したことを検知する。
【００５３】
このように、ライブマイグレーションでは従来から用いられているＲＡＲＰパケットを利用することで、特別な処理を追加することなくメモリコピーの完了を検知することが可能となる。
【００５４】
また、第２の実施形態において、計算部１４は、サーバ＃１からサーバ＃２へのＶＭ＃１のメモリのコピーにかかる時間を計算する。このとき、検知部１２は、サーバ＃１上で稼働しているＶＭ＃１のメモリのサーバ＃２へのコピーが開始された後、計算部１４によって計算された時間が経過した場合に、サーバ＃１からサーバ＃２へのＶＭ＃１のメモリのコピーが完了したことを検知する。また、サーバ＃１は、ＶＭ＃１のメモリをサーバ＃２へコピーした後、ＶＭ＃１が稼働していることによって発生した差分のメモリをさらにサーバ＃２へコピーすることをｋ回繰り返す。このとき、計算部１４は、式（１−１）で計算されるＴｃ、および式（１−２）で計算されるＴｄを合計した時間を、サーバ＃１からサーバ＃２へのＶＭ＃１のメモリのコピーにかかる時間として計算する。
【００５５】
このように、ライブマイグレーションの開始前にメモリコピーが完了するまでの時間を事前に計算しておくことで、ライブマイグレーション中にサーバ等に余分な負荷を与えることなくメモリコピーの完了を検知することが可能となる。
【００５６】
また、第３の実施形態において、トラヒック監視部３０は、サーバ＃１およびサーバ＃２に接続され、ＶＭ＃１のコピーに用いられるネットワークと接続され、ネットワークを通過するトラヒックを監視する。このとき、検知部１２は、トラヒック監視部３０によってネットワークにトラヒックが流れなくなったことが検知された場合に、サーバ＃１からサーバ＃２へのＶＭ＃１のメモリのコピーが完了したことを検知する。
【００５７】
また、第４の実施形態において、メモリ量監視部４０は、サーバ＃２に備えられ、サーバ＃２のメモリの増加量を監視する。このとき、検知部１２は、メモリ量監視部４０によってサーバ＃２のメモリ量が増加しなくなったことが検知された場合に、サーバ＃１からサーバ＃２へのＶＭ＃１のメモリのコピーが完了したことを検知する。
【００５８】
このように、サーバ＃１とサーバ＃２との間のトラヒック、もしくはサーバ＃２のメモリの増加量を監視することで、ライブマイグレーションの際に確実にメモリコピーの完了を検知することが可能となる。
【００５９】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵ（Central  Processing  Unit）および当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６０】
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００６１】
［プログラム］
一実施形態として、ＶＭ管理サーバは、パッケージソフトウェアやオンラインソフトウェアとして上記のＶＭ管理を実行するＶＭ管理プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記のＶＭ管理プログラムを情報処理装置に実行させることにより、情報処理装置をＶＭ管理サーバとして機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistant）等のスレート端末等がその範疇に含まれる。
【００６２】
また、ＶＭ管理サーバは、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記のＶＭ管理に関するサービスを提供するサーバ装置として実装することもできる。例えば、ＶＭ管理サーバは、移動元サーバ、移動先のサーバおよび移動対象のＶＭに関する情報を入力とし、ライブマイグレーションの実行結果を出力とするＶＭ管理サービスを提供するサーバ装置として実装される。この場合、ＶＭ管理サーバは、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記のＶＭ管理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【００６３】
図１２は、プログラムが実行されることにより、ＶＭ管理サーバが実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００６４】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００６５】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、ＶＭ管理サーバの各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、ＶＭ管理サーバにおける機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００６６】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００６７】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３およびプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３およびプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００６８】
１０  ＶＭ管理サーバ
１１  指示部
１２  検知部
１３  記憶部
２０  ＲＡＲＰ検知部
３０  トラヒック監視部
４０  メモリ量監視部
【図１】
0006480359.tif 000004
【図２】
0006480359.tif 000005
【図３】
0006480359.tif 000006
【図４】
0006480359.tif 000007
【図５】
0006480359.tif 000008
【図６】
0006480359.tif 000009
【図７】
0006480359.tif 000010
【図８】
0006480359.tif 000011
【図９】
0006480359.tif 000012
【図１０】
0006480359.tif 000013
【図１１】
0006480359.tif 000014
【図１２】
0006480359.tif 000015