(57)【要約】  仮想マシンのライブマイグレーションの完了タイミングを調整可能なマイグレーションシステム、マイグレーション方法を提供することを課題とする。本発明にかかるマイグレーションシステム（１）は、仮想マシンのメモリデータを、移動元物理ホスト（３１）から移動先物理ホスト（３２）に送信して、物理ホスト（３１）の仮想マシンと物理ホスト（３２）の仮想マシンとのデータを同期させる移動手段（６１Ａ）と、仮想マシン毎に、移動元物理ホスト（３１）の仮想マシン（８１Ａ）と、仮想マシン（８１Ｂ）のデータの同期を判定する判定手段（５１Ａ）と、判定結果に基づき、全ての仮想マシンについてデータが同期している場合に、物理ホスト（３１）から物理ホスト（３２）に仮想マシンを切り替えさせる制御手段（１０）と、を有し、移動手段（６１Ａ）は、切替指示があるまで、メモリのデータ送信を継続するものである。
2014010213.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想マシンのメモリデータを移動元物理ホストから移動先物理ホストに送信して、前記移動元物理ホストの仮想マシンと前記移動先物理ホストの仮想マシンとのデータを同期させる移動手段と、
それぞれの仮想マシン毎に、予め定められた同期判定条件に基づいて、前記移動元物理ホストの仮想マシンと前記移動先物理ホストの仮想マシンとでデータが同期しているか否かを判定する判定手段と、
前記判定手段の判定結果に基づき、前記移動元物理ホストの仮想マシンから前記移動先物理ホストの仮想マシンに切り替えさせるよう切替指示する制御手段と、を有し、
前記制御手段は、前記全ての仮想マシンについて前記移動元物理ホストの仮想マシンと前記移動先物理ホストの仮想マシンとのデータが同期している場合、前記切り替え指示をし、
前記移動手段は、前記切替指示があるまで、前記移動元物理ホストから前記移動先物理ホストに対するデータ送信を継続する、マイグレーションシステム。
【請求項２】
前記制御手段は、前記複数の仮想マシンのうち予め定められた数の仮想マシンについて同期が完了している場合には、まだ同期が完了していない仮想マシンについての、前記同期判定条件を調整する、請求項１記載のマイグレーションシステム。
【請求項３】
前記判定手段は、前記移動元物理ホストの仮想マシンのデータと、前記移動先物理ホストの仮想マシンのデータとの差分が予め定められた閾値以下である場合に、同期したと判定するものであって、
前記制御手段から、前記同期判定条件を調整するよう制御された場合、前記データの差分の閾値を大きくする、請求項２記載のマイグレーションシステム。
【請求項４】
複数の仮想マシンのメモリデータを移動元物理ホストから移動先物理ホストに送信して、前記移動元物理ホストの仮想マシンと前記移動先物理ホストの仮想マシンとのデータを同期させ、
それぞれの仮想マシン毎に、予め定められた同期判定条件に基づいて、前記移動元物理ホストの仮想マシンと前記移動先物理ホストの仮想マシンとでデータが同期しているか否かを判定し、
前記判定結果に基づき、全ての仮想マシンについて前記移動元物理ホストの仮想マシンと前記移動先物理ホストの仮想マシンとのデータが同期している場合に、前記移動元物理ホストの仮想マシンから前記移動先物理ホストの仮想マシンに切り替えさせるよう切替指示し、
前記切替指示があるまで、前記移動元物理ホストから前記移動先物理ホストに対するデータ送信を継続する仮想マシンのマイグレーション方法。
【請求項５】
それぞれの仮想マシン毎に、前記移動元物理ホストの仮想マシンと前記移動先物理ホストの仮想マシンとでデータが同期しているか否かを判定する際、前記複数の仮想マシンのうち予め定められた数の仮想マシンについて同期が完了している場合には、まだ同期が完了していない仮想マシンについての、前記同期判定条件を調整する、請求項４記載のマイグレーション方法。
【請求項６】
それぞれの仮想マシン毎に、前記移動元物理ホストの仮想マシンと前記移動先物理ホストの仮想マシンとでデータが同期しているか否かを判定する際、前記移動元物理ホストの仮想マシンのデータと、前記移動先物理ホストの仮想マシンのデータとの差分が予め定められた閾値以下である場合に、同期したと判定し、
前記同期判定条件を調整する場合、前記データの差分の閾値を大きくする、請求項５記載のマイグレーション方法。
【請求項７】
移動元物理ホストと移動先物理ホストとを制御して複数の仮想マシンのマイグレーション処理を実行させる制御プログラムを格納した非一時的なコンピュータ可読媒体であって、
仮想マシンのメモリデータを前記移動元物理ホストから前記移動先物理ホストに送信して、前記移動元物理ホストの仮想マシンと前記移動先物理ホストの仮想マシンとのデータを同期させ、
それぞれの仮想マシン毎に、予め定められた同期判定条件に基づいて、前記移動元物理ホストの仮想マシンと前記移動先物理ホストの仮想マシンとでデータが同期しているか否かを判定させ、
前記判定結果に基づき、全ての仮想マシンについて前記移動元物理ホストの仮想マシンと前記移動先物理ホストの仮想マシンとのデータが同期している場合に、前記移動元物理ホストの仮想マシンから前記移動先物理ホストの仮想マシンに切り替えさせるよう切替指示させ、
前記切替指示があるまで、前記移動元物理ホストから前記移動先物理ホストに対するデータ送信を継続させる制御プログラムを格納した非一時的なコンピュータ可読媒体。
【請求項８】
それぞれの仮想マシン毎に、前記移動元物理ホストの仮想マシンと前記移動先物理ホストの仮想マシンとでデータが同期しているか否かを判定させる際、前記複数の仮想マシンのうち予め定められた数の仮想マシンについて同期が完了している場合には、まだ同期が完了していない仮想マシンについての、前記同期判定条件を調整させる、請求項７記載の制御プログラムを格納した非一時的なコンピュータ可読媒体。
【請求項９】
それぞれの仮想マシン毎に、前記移動元物理ホストの仮想マシンと前記移動先物理ホストの仮想マシンとでデータが同期しているか否かを判定させる際、前記移動元物理ホストの仮想マシンのデータと、前記移動先物理ホストの仮想マシンのデータとの差分が予め定められた閾値以下である場合に、同期したと判定させ、
前記同期判定条件を調整させる場合、前記データの差分の閾値を大きくする、請求項８記載の制御プログラムを格納した非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイグレーションシステム、マイグレーション方法及び制御プログラムに関し、特に連携して動作している複数の仮想マシンをマイグレーションするマイグレーションシステム、マイグレーション方法及び制御プログラムを格納した非一時的なコンピュータ可読媒体に関する。
【背景技術】
【０００２】
近年、クラウドコンピューティング技術が進展し、物理ホスト上で動作する仮想マシンをユーザに貸し出すＩａａＳ（Infrastructure as a Service）が広く利用されるようになっている。【０００３】
ＩａａＳでは、ユーザはテナントと呼ばれ、一般に、１つのテナントが複数の仮想マシンを利用する。また、災害対策や事業継続の観点から、ＩａａＳインフラを物理的に離れた複数の拠点に配備し、それらの間を接続して仮想的に一つのＩａａＳインフラとして運用する動きも登場している。【０００４】
ＩａａＳにおいて、動作中の仮想マシンを別の物理ホストに移動させるライブマイグレーション技術が普及しつつある。ライブマイグレーション技術は、Ｌｉｎｕｘ（登録商標）のＫｅｒｎｅｌ−ｂａｓｅｄ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ（KVM）やＶＭｗａｒｅ社のＶＭｏｔｉｏｎなどで実現されている。例えば、ＩａａＳを構成する基盤内での物理ホストの稼働状況に応じて、ある物理ホスト上で動作する仮想マシンを、他の物理ホストに移動させる、といったことが行われている。【０００５】
特許文献１には、仮想化環境管理システムに関する技術が記載されている。特許文献１に記載の技術は、仮想マシン間の通信を開始するジョブを検知する検知手段と、検知手段が検知したジョブで行われる通信処理のコストが所定量以上であるか否かを判定する判定手段と、判定手段が所定量以上であると判定した場合に、通信処理を開始する仮想マシンを同一のホストマシンで動作させるように配置する配置手段とを有するものである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１８６８２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述のように、近年、ＩａａＳを利用するテナントは、一般に複数の仮想マシンを所有している。同一のテナントが利用する仮想マシンは、連携して何らかのサービスを実現していることが多く、同じ物理ホストに設けられ、仮想マシン間で通信して動作することが多い。【０００８】
連携して動作する複数の仮想マシンが、例えばテナントの都合により、別の物理拠点に移動される場合には、連携した複数の仮想マシンを、同じタイミングでライブマイグレーションしなければならない。しかしながら、仮想マシンのライブマイグレーションは、仮想マシンの動作状況に依存して、ライブマイグレーションに要する時間が大きく変動する。【０００９】
ここで、一般のマイグレーション方法について説明する。仮想マシンのライブマイグレーションの実施は、ＩａａＳ基盤全体の仮想マシンの配置などを決定するテナント制御手段が制御している。そして、テナント制御手段が、移動対象となる仮想マシンが動作する物理ホストのハイパーバイザーに対して、ライブマイグレーションの指示を行う。【００１０】
図７は、ライブマイグレーション実行時のハイパーバイザーにおける動作のフローチャートを示す図である。動作フローは、データ同期フェーズと最終移動フェーズとに大別される。【００１１】
まず、ライブマイグレーションは、テナント制御手段からハイパーバイザーがマイグレーションの指示を受信すると開始される。データ同期フェーズは、移動先の物理ホストに空の仮想マシンを作成する（ステップＳ３１）。次に、移動元物理ホストのメモリのスナップショットを取得し（ステップＳ３２）、取得したスナップショットのデータを移動先の物理ホストに送信する（ステップＳ３３）。【００１２】
次に、前回取得したメモリのスナップショットと現在のメモリデータの差分のデータ量をもとに、移動元と移動先の仮想マシンのデータ同期が一定の基準以内に達しているかを判定する（ステップＳ４３）。データ同期が基準に達していない場合（ステップＳ３４：Ｎｏ）、メモリのスナップショット取得、移動先へのスナップショットの差分転送を繰り返す（ステップＳ３２〜３４）。基準に達している場合には、データ同期フェーズは完了し（ステップＳ３４：Ｙｅｓ）、最終移動フェーズに進む。【００１３】
最終移動フェーズでは、まず、移動元の仮想マシンの実行を中断（以下、サスペンドという）する（ステップＳ３９）。次に、実行を中断した仮想マシンのメモリデータおよび仮想マシンのＣＰＵの状態（レジスタなど）を移動先の仮想マシンに送信する（ステップＳ４０）。【００１４】
移動先の物理ホストでは、移動元の物理ホストから受信した仮想マシンのデータを移動先の仮想マシンに書き込み、移動先の仮想マシンの実行を開始させる（ステップＳ４１）。この時点で、マイグレーション指示前まで移動元の物理ホスト上で動作していた仮想マシンの移動先の物理ホストへの移動が完了する。【００１５】
最後に、移動元の物理ホストから移動元の仮想マシンを削除し（ステップＳ４２）、マイグレーションの実行終了をマイグレーションの指示を行ったテナント制御手段に通知し（ステップＳ４３）、仮想マシンのマイグレーション処理が完了する。【００１６】
図８は、連携して動作している複数の仮想マシンを、一般のライブマイグレーション方法で移動した場合を示す図である。まず、時刻Ｔ１にてマイグレーション処理が開始される。仮想マシンＸは、時刻Ｔ１から時刻Ｔ０２の間に、データ同期フェーズ及び最終移動フェーズが完了し、時刻Ｔ０２からは、移動先の物理ホストにて動作を開始する。【００１７】
これに対し、仮想マシンＹは、時刻Ｔ１からデータ同期フェーズが開始されるが、時刻Ｔ０２移行もデータ同期フェーズを継続し、時刻Ｔ１から時刻Ｔ０３の間に、データ同期フェーズ及び最終移動フェーズが完了する。【００１８】
よって、図８に示すように、一般のラブマイグレーション方法では、時刻Ｔ２から時刻Ｔ３までの間は、仮想マシンＸは移動元の物理ホストで動作し、仮想マシンＹは、移動先の物理ホストＹで動作することとなる。【００１９】
上述のように近年では、ＩａａＳ基盤の１つのテナントが複数の仮想マシンを所有する場合が一般的であり、テナント単位で仮想マシンを移動される状況が起こる。さらに、一般に同一のテナントに属する仮想マシンは連携して何らかのサービスを実現していることが多い。【００２０】
しかしながら、複数の仮想マシンを、別の物理ホストに一度に移動させたい場合、一般のライブマイグレーション方法では、複数の仮想マシンで同時にライブマイグレーションを開始しても、同時にライブマイグレーションが完了しない。【００２１】
つまり、ある物理拠点で動作している複数の仮想マシンを別の物理拠点にライブマイグレーションを行う場合、仮想マシンのライブマイグレーション完了までに要する時間にばらつきがあり、一部の仮想マシンは移動先の物理拠点で動作を再開したが、一部の仮想マシンはまだ移動元の物理拠点で動作しているという状況が発生する。【００２２】
このような場合、すべての仮想マシンのマイグレーションが完了するまでは、移動元の物理ホストと移動先の物理ホストとの間で通信が発生する。さらに、移動元と移動先との物理的距離が離れている場合には、仮想マシン間の通信が、物理的に離れている物の間で発生することになる。すると、拠点間の不要なトラフィックの増加や通信遅延によりアプリケーション性能が低下する恐れがある。【００２３】
このような問題を解決するため、本発明は、仮想マシンのライブマイグレーションの完了タイミングを調整可能なマイグレーションシステム、マイグレーション方法及び制御プログラムを格納した非一時的なコンピュータ可読媒体を提供することを目的とする。
【課題を解決するための手段】
【００２４】
本発明にかかるマイグレーションシステムは、複数の仮想マシンをマイグレーションするマイグレーションシステムであって、仮想マシンのメモリデータを移動元物理ホストから移動先物理ホストに送信して、移動元物理ホストの仮想マシンと移動先物理ホストの仮想マシンとのデータを同期させる移動手段と、それぞれの仮想マシン毎に、予め定められた同期判定条件に基づいて、移動元物理ホストの仮想マシンと移動先物理ホストの仮想マシンとでデータが同期しているか否かを判定する判定手段と、判定手段の判定結果に基づき、移動元物理ホストの仮想マシンから移動先物理ホストの仮想マシンに切り替えさせるよう切替指示する制御手段と、を有し、制御手段は、全ての仮想マシンについて移動元物理ホストの仮想マシンと移動先物理ホストの仮想マシンとのデータが同期している場合、切り替え指示をし、移動手段は、切替指示があるまで、移動元物理ホストから移動先物理ホストに対するデータ送信を継続するものである。【００２５】
本発明にかかるマイグレーション方法は、複数の仮想マシンをマイグレーションする際のマイグレーション方法であって、仮想マシンのメモリデータを移動元物理ホストから移動先物理ホストに送信して、移動元物理ホストの仮想マシンと移動先物理ホストの仮想マシンとのデータを同期させ、それぞれの仮想マシン毎に、予め定められた同期判定条件に基づいて、移動元物理ホストの仮想マシンと移動先物理ホストの仮想マシンとでデータが同期しているか否かを判定し、判定結果に基づき、全ての仮想マシンについて移動元物理ホストの仮想マシンと移動先物理ホストの仮想マシンとのデータが同期している場合に、移動元物理ホストの仮想マシンから移動先物理ホストの仮想マシンに切り替えさせるよう切替指示し、切替指示があるまで、移動元物理ホストから移動先物理ホストに対するデータ送信を継続するものである。【００２６】
本発明にかかる制御プログラムを格納した非一時的なコンピュータ可読媒体は、移動元物理ホストと移動先物理ホストとを制御して複数の仮想マシンのマイグレーション処理を実行させる制御プログラムであって、仮想マシンのメモリデータを移動元物理ホストから移動先物理ホストに送信して、移動元物理ホストの仮想マシンと移動先物理ホストの仮想マシンとのデータを同期させ、それぞれの仮想マシン毎に、予め定められた同期判定条件に基づいて、移動元物理ホストの仮想マシンと移動先物理ホストの仮想マシンとでデータが同期しているか否かを判定させ、判定結果に基づき、全ての仮想マシンについて移動元物理ホストの仮想マシンと移動先物理ホストの仮想マシンとのデータが同期している場合に、移動元物理ホストの仮想マシンから移動先物理ホストの仮想マシンに切り替えさせるよう切替指示させ、切替指示があるまで、移動元物理ホストから移動先物理ホストに対するデータ送信を継続させるものである。
【発明の効果】
【００２７】
本発明により、仮想マシンのライブマイグレーションの完了タイミングを調整可能なマイグレーションシステム、マイグレーション方法及び制御プログラムを格納した非一時的なコンピュータ可読媒体を提供することができる。
【図面の簡単な説明】
【００２８】
【図１】実施の形態１にかかる仮想マシンのマイグレーションシステムの構成を示すブロック図である。
【図２】実施の形態１にかかるテナント制御手段の動作の概要を示すフローチャートである。
【図３】実施の形態１にかかる移動手段及び同期状況監視手段の動作を示すフローチャートである。
【図４】実施の形態１にかかる２つの仮想マシンを同時にライブマイグレーションする場合の動作の時間経過を示した図である。
【図５】実施の形態２にかかるテナント制御手段の動作を示すフローチャートである。
【図６】実施の形態２にかかる移動手段及び同期状況監視手段の動作を示すフローチャートである。
【図７】一般のライブマイグレーション方法を示すフローチャートである。
【図８】複数の仮想マシンを、一般のライブマイグレーション方法で移動した場合を示す図である。
【発明を実施するための形態】
【００２９】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。図１は、本実施の形態に係る仮想マシンのマイグレーションシステム１を示すブロック図である。本実施の形態にかかるマイグレーションシステム１は、一方の物理ホスト上で連携して稼働していた２以上の仮想マシンを他方の物理ホストに移動することができるシステムである。
【００３０】
マイグレーションシステム１は、物理ホスト３１と、物理ホスト３２と、制御部としてのテナント制御手段１０と、を有する。
【００３１】
物理ホスト３１及び３２は、具体的にはサーバである。本実施の形態で、ライブマイグレーションの対象となる複数の仮想マシンが、移動前に稼働しているサーバを、物理ホスト３１とする。ライブマイグレーションの対象となる複数の仮想マシンが、移動後に稼働するサーバを、物理ホスト３２とする。また、ライブマイグレーションの対象となる複数の仮想マシンは、連携して１つのサービスを提供するものであり、互いに必要なデータを通信している。
【００３２】
テナント制御手段１０は、連携して動作する複数の仮想マシンに対して、マイグレーション指示を行い、複数の仮想マシンのライブマイグレーションの制御を行う。テナント制御手段１０は、マイグレーションシステム全体の仮想マシンの配置などを決定し、ライブマイグレーション対象の仮想マシンが動作する物理ホストの仮想マシン実行制御手段４１を制御する。
【００３３】
ここでは、仮想マシン８１と８２とをライブマイグレーションする場合について説明する。すなわち、物理ホスト３１の移動前の仮想マシン８１Ａを、物理ホスト３２の仮想マシン８１Ｂとして移動させる。また、物理ホスト３１の移動前の仮想マシン８２Ａを、物理ホスト３２の仮想マシン８２Ｂとして移動させる。
【００３４】
物理ホスト３１は仮想マシン実行制御手段４１を有し、物理ホスト３２は仮想マシン実行制御手段４２を有する。
【００３５】
仮想マシン実行制御手段４１は、移動手段６１Ａ、６２Ａと同期状況監視手段５１Ａ、５２Ａとを制御する。仮想マシン実行制御手段４１は、仮想マシン８１Ａ及び８２Ａ等移動元の物理ホスト３１で動作する仮想マシンを制御する。仮想マシン実行制御手段４２は、仮想マシン８１Ｂ及び８２Ｂ等の移動先の物理ホスト３２で動作する仮想マシンを制御する。
【００３６】
仮想マシン実行制御手段４１は、移動手段６１Ａと、移動手段６２Ａと、監視部としての同期状況監視手段５１Ａと、監視部としての同期状況監視手段５２Ａと、を有する。
【００３７】
移動手段６１Ａと同期状況監視手段５１Ａとは、仮想マシン８１Ａに対して設けられ、仮想マシン８１Ａのライブマイグレーションを実行する。移動手段６２Ａと同期状況監視手段５２Ａとは、仮想マシン８２Ａに対して設けられ、仮想マシン８２Ａのライブマイグレーションを実行する。
【００３８】
移動手段６１Ａは、仮想マシン８１Ａのメモリデータを断続的に移動元物理ホスト３１から移動先物理ホスト３２に送信して、移動元物理ホストの仮想マシン８１Ａと、移動先物理ホストの仮想マシン８１Ｂと、のデータを同期させる。同様に、移動手段６２Ａは、仮想マシン８２Ａのメモリデータを、断続的に移動元物理ホスト３１から移動先物理ホスト３２に送信して、移動元物理ホストの仮想マシン８２Ａと、移動先物理ホストの仮想マシン８２Ｂと、のデータを同期させる。
【００３９】
また、移動手段６１Ａ及び６１Ｂは、テナント制御手段１０から、仮想マシンの切り替えが指示されるまで、データを同期させるためのデータ送信を継続する。テナント制御手段１０から、仮想マシンの切り替えが指示されると、移動手段６１Ａは仮想マシン８１Ａを停止、削除する。また移動手段６１Ｂは、仮想マシン８２Ａを停止、削除する。
【００４０】
同期状況監視手段５１Ａは移動手段６１Ａが出力するデータを監視する。同期状況監視手段５２Ａは移動手段６２Ａが出力するデータを監視する。同期状況監視手段５１Ａと同期状況監視手段５２Ａとは、前回出力されたデータと今回出力されたデータとの差分データ量を計算する。差分データ量が一定の閾値以下である場合には、同期状況監視手段５１Ａ、５２Ｂは、テナント制御手段１０にデータの同期が完了したことを通知する。
【００４１】
なお、ここでは移動手段及び同期状況監視手段は、仮想マシン毎に設けられるため、仮想マシンが１増えると、移動手段及び同期状況監視手段もそれぞれ１ずつ増える。また、ここでは仮想マシンは２つであるが、３以上であってもよい。又さらに、移動手段及び同期状況監視手段は、仮想マシン毎に設ける必要はない。
【００４２】
移動先の物理ホスト３２は仮想マシン実行制御手段４２を有する。仮想マシン実行制御手段４２は、仮想マシン８１Ｂ及び８２Ｂのライブマイグレーションのために、仮想マシン８１Ｂに対して移動手段６１Ｂを有し、仮想マシン８２Ｂに対して移動手段６２Ｂを設ける。
【００４３】
移動手段６１Ｂは、移動手段６１Ａから出力される仮想マシン８１Ａのメモリデータを受け取り、仮想マシン８１Ｂに書き込む。同様に、移動手段６２Ｂは、移動手段６２Ａから出力される仮想マシン８２Ａのメモリデータを受け取り、仮想マシン８２Ｂに書き込む。
【００４４】
次に、ライブマイグレーションを実行する際の動作を説明する。図２は、テナント制御手段１０の動作の概要を示すフローチャートである。物理ホスト３１上にある仮想マシン８１Ａ及び仮想マシン８２Ａを、物理ホスト３２へライブマイグレーションを行う場合について説明する。
【００４５】
テナント制御手段１０は、移動対象となる仮想マシン８１Ａと仮想マシン８２Ａとが移動先である物理ホスト３２Ｂに移動可能であるか否か判定する（ステップＳ２１：ＹｅＳ）。移動可能ではない場合、ライブマイグレーションを実行しない（ステップＳ２１：Ｎｏ）。
【００４６】
テナント制御手段１０は、仮想マシン８１Ａと８２Ａとを物理ホスト３２に移動可能であると判定した場合、移動対象である仮想マシン８１Ａと８２Ａとが動作する物理ホスト３１Ａの、仮想マシン実行制御手段４１に対してライブマイグレーションの指示を行う。マイグレーション開始指示には、対応する仮想マシンの移動先の物理ホスト３２の情報が含まれる。仮想マシン８２Ａについても同様にマイグレーション開始指示を行う。
【００４７】
仮想マシン実行制御手段４１は、テナント制御手段１０からマイグレーションの指示を受け取ると、ライブマイグレーションを開始する（ステップＳ２２）。
【００４８】
移動手段６１Ａは、テナント制御手段１０からマイグレーション開始指示を受け取ると、仮想マシン８１Ａのマイグレーションに必要なデータを移動先の物理ホスト３２に送信する。
【００４９】
移動手段６１Ａと同様に、移動手段６２Ａは、仮想マシン実行制御手段４１を介して、テナント制御手段１０からマイグレーション開始指示を受け取ると、仮想マシン８２Ｂのマイグレーションに必要なデータを移動先の物理ホスト３２に送信する。
【００５０】
移動手段６１Ｂは、移動元の物理ホスト３１から仮想マシン８１Ａのマイグレーションに必要なデータを受信し、仮想マシン８１Ｂに書き込む。同様に、移動手段６２Ｂは、物理ホスト３１から仮想マシン８２Ａのマイグレーションに必要なデータを受信し、仮想マシン８２Ｂに書き込む。（ステップＳ２３）。
【００５１】
同期状況監視手段５１Ａは、仮想マシン８１Ａと移動手段６１Ａとの状況を監視して、仮想マシン８１Ａと物理ホスト３２上の仮想マシン８１Ｂとの間でデータの同期が完了したかどうかの判定を行い、テナント制御手段１０に通知する。
【００５２】
同期状況監視手段５１Ａと同様に、同期状況監視手段５２Ａは、仮想マシン８２Ａと移動手段６２Ａとの状況を監視して、仮想マシン８２Ａと物理ホスト３２上の移動先の仮想マシン８２Ｂとの間でデータの同期が完了したかどうかの判定を行い、テナント制御手段１０に通知する。
【００５３】
テナント制御手段１０は、マイグレーション開始指示を行ったすべての仮想マシンからデータ同期完了通知を受信するまで待機する。テナント制御手段１０が、同期状況監視手段５１Ａ及び同期状況監視手段５２Ａの両方からデータ同期完了通知を受け取っていない場合には、移動手段６１Ａ及び移動手段６２Ａは、ライブマイグレーションに必要なデータの送信を続行する（ステップＳ２４：Ｎｏ）。
【００５４】
テナント制御手段１０は、同期状況監視手段５１Ａ及び同期状況監視手段５２Ａからデータ同期完了通知を受け取ると（ステップＳ２４：ＹｅＳ）、移動手段６１Ａ及び移動手段６２Ａに、移動元の物理ホスト３１Ａの仮想マシン８１Ａ及び８２Ａを停止し、移動先の物理ホスト３２Ｂの仮想マシン８１Ｂ及び８２Ｂを起動させるよう指示する（ステップＳ２５）。
【００５５】
テナント制御手段１０は、すべての仮想マシンのマイグレーションの終了通知を、同期状況監視手段５１Ａ及び同期状況監視手段５１Ｂから受信するのを待ち（ステップＳ２６）、終了通知を受け取ると、ライブマイグレーションが完了する。
【００５６】
本実施の形態にかかるライブマイグレーション方法では、連携する複数の仮想マシンすべてのデータの同期が完了してから最終フェーズに移行する。そのため、全ての仮想マシンに対して最終フェーズのタイミングが同時となる。従って、一部の仮想マシンが移動先で動作し、残りの仮想マシンが移動元で動作するというような状況が発生するのを防ぐことができる。これにより、連携する仮想マシン間での通信が物理的な通信を介して行われることを避けることができる。従って、通信遅延等のアプリケーションの性能の劣化を防ぐことが可能である。
【００５７】
なお、本実施の形態においては、移動元の仮想マシン８１Ａ、８２Ａは一つの物理ホスト３１上で動作しているが、移動元の仮想マシンが共通の１台の物理ホスト上で動作している必要はなく、別の物理マシンで稼働していてもよい。
【００５８】
同様に、移動先の仮想マシン８１Ｂ、８２Ｂは、１つの物理ホスト３２上で動作しているが、移動先の仮想マシンが共通の１台の物理ホスト上で動作している必要はなく、仮想マシンが動作する物理マシンが異なっていてもよい。
【００５９】
また、図１ではマイグレーション対象の仮想マシンのみを図示しているが、移動元の物理ホスト、移動先の物理ホストとも、マイグレーション対象外の仮想マシンが動作してもよいことはもちろんである。
【００６０】
次に、本実施の形態にかかるマイグレーションシステムの動作についてさらに詳細に説明する。図３は、移動手段６１Ａ及び同期状況監視手段５１Ａの動作を示すフローチャートである。テナント制御手段１０が、移動手段６１Ａに、移動先の物理ホスト情報を含む、マイグレーション開始指示を出力する。
【００６１】
マイグレーション開始指示を受け取った移動手段６１Ａは、移動先の物理ホスト情報に基づき、移動先の物理ホスト３２上に移動手段６１Ｂに要求を行い、空の仮想マシン８１Ｂを作成する（ステップＳ３１）。
【００６２】
次に、移動手段６１Ａは、ライブマイグレーションに必要なデータとして、仮想マシン８１Ａのメモリのスナップショットを取得し（ステップＳ３２）、取得したメモリのスナップショットのデータを、移動先の物理ホスト３２の移動手段６１Ｂに送信する（ステップＳ３３）。データを受信した移動手段６１Ｂは仮想マシン８１Ｂに受信したメモリのスナップショットのデータを書き込む。
【００６３】
次に、同期状況監視手段５１Ａは、移動手段６１Ａがメモリのスナップショットのデータを移動先の物理ホスト３２に送信した後に、移動元の仮想マシン８１Ａと移動先の仮想マシン８１Ｂでデータ同期完了状態にあるかどうかの判定を行う（ステップＳ３４）。
【００６４】
なお、データ同期完了状態にあるかどうかの判定は、既存のハイパーバイザーで実現されている判定基準に基づいて行う。例えば、ハイパーバイザーの一つであるＫｅｒｎｅｌ−ｂａｓｅｄ Ｖｉｒｔｕａｌ Ｍａｃｈｉｎｅ（ＫＶＭ）では、前回取得したメモリのスナップショットと現在の差分のデータ量と、移動元と移動先との間データ転送レートから判断する。具体的には、差分のデータ転送が３秒以内となる場合に、データ同期完了判定条件を満たしたと判断する。
【００６５】
また、前回取得したメモリのスナップショットと現在のメモリのスナップショットとの差分のデータ量があらかじめ定めた閾値を下回っている場合にデータ同期完了判定条件を満たしたと判断するようにしてもよい。判定条件を満たさない場合は、ステップＳ３２に戻り、判定条件を満たすまで上記の動作を繰り返す（ステップＳ３４：Ｎｏ）。
【００６６】
ここまでのステップＳ３１〜Ｓ３４のステップは、仮想マシンの一般のライブマイグレーションの動作フローと同じである。ステップＳ３１〜Ｓ３４の動作を、まとめてデータ同期フェーズとし、後述するステップＳ３９〜４３を、最終移動フェーズと呼ぶ。
【００６７】
同期状況監視手段５１Ａは、ステップＳ３４において、データ同期完了判定条件を満たしたと判断した場合（ステップＳ３４：Ｙｅｓ）、テナント制御手段１０にデータ同期完了通知を送信する（ステップＳ３５）。
【００６８】
同期状況監視手段５１Ａは、テナント制御手段１０から最終移動フェーズの開始指示を受信したかどうかを判定する（ステップＳ３６）。
【００６９】
受信していない場合（ステップＳ３６：Ｎｏ）、メモリのスナップショットを再度取得して（ステップＳ３７）、取得したスナップショットを移動先ホストに送信する（ステップＳ３８）。
【００７０】
そして、再び最終移動フェーズの開始指示を受信したかどうかの判定に戻る（ステップＳ３０６）。
【００７１】
ステップＳ３７〜Ｓ３８の内容は、ステップＳ３２〜Ｓ３３と全く同様である。ステップＳ３７〜Ｓ３８を繰り返すことにより、テナント制御手段１０から最終移動フェーズの開始指示を受信するのを待っている間も、移動元の仮想マシン８１Ａと移動先の仮想マシン８１Ｂのデータの同期が保たれた状態が維持される。
【００７２】
ステップＳ３８において、テナント制御手段１０から最終移動フェーズの開始指示を受信していた場合（ステップＳ３８：Ｙｅｓ）、ステップＳ３９以降の最終移動フェーズに進む。
【００７３】
まず、移動手段６１Ａは移動元の仮想マシン８１Ａの実行をサスペンドし（ステップＳ３９）、実行を中断した仮想マシン８１Ａのメモリデータおよび仮想マシンのＣＰＵの状態（レジスタなど）を移動先の仮想マシン８１Ｂに送信する（ステップＳ４０）。
【００７４】
移動先の物理ホスト３２の移動手段６１Ｂは、移動手段６１Ａから受信した、実行を中断した仮想マシン８１Ａのデータを、仮想マシン８１Ｂに書き込む。そして、仮想マシン８１Ｂの実行を開始させる（ステップＳ４１）。この時点で、マイグレーション指示前まで物理ホスト３１上で動作していた仮想マシン８１Ａは、物理ホスト３２への移動が完了する。
【００７５】
最後に、移動元の物理ホスト３１の移動手段６１Ａは、移動元の仮想マシン８１Ａを削除し（ステップＳ４２）、マイグレーションの実行終了をテナント制御手段１０に通知する（ステップＳ４３）。以上で、仮想マシン実行制御手段４１における仮想マシン８１Ａのマイグレーションに関する処理が完了となる。
【００７６】
一般に、データ同期フェーズが完了するとすぐに最終移動フェーズに進むが、本実施の形態においては、移動元の物理ホスト３１の仮想マシン８１Ａと、移動先の物理ホスト３２の仮想マシン８１Ｂとのデータの同期が完了しても、テナント制御手段１０の指示がなければ最終移動フェーズに移行せず、データの同期を継続する。このため、本実施の形態にかかるライブマイグレーションでは、ライブマイグレーションの移動完了タイミングを調整することが可能である。
【００７７】
図４は、２つの仮想マシンを同時にライブマイグレーションする場合の動作の時間経過を示した図である。
【００７８】
時刻Ｔ１で、テナント制御手段１０がマイグレーション対象の仮想マシン８１と８２に対して、ステップＳ２１の移動開始指示を行う。
【００７９】
移動手段６１Ａと６２Ａとは、それぞれデータ同期フェーズ（ステップＳ３１〜Ｓ３４）を開始する。データ同期フェーズが完了するまでに要する時間は仮想マシンの実行状況に依存するため、データ同期フェーズの完了時刻にはばらつきが出る。
【００８０】
図４では、時刻Ｔ２で、仮想マシン８１のデータの同期が完了し、時刻Ｔ３で、仮想マシン８２のデータの同期が完了するものとする。
【００８１】
仮想マシン８１は、時刻Ｔ２からＴ３までは、テナント制御手段１０から最終移動フェーズの開始指示を待っている状況であり、この間はステップＳ３７〜Ｓ３８で移動元と移動先の仮想マシン間でデータの同期を継続する（ステップＳ３６〜Ｓ３８）。
【００８２】
時刻Ｔ３で仮想マシン８２のデータの同期が完了したと判断され、同期状況監視手段５２Ａからテナント制御手段１０へ、同期完了通知が行われる。テナント制御手段１０はマイグレーション対象のすべての仮想マシン、ここでは仮想マシン８１及び８２の２台からデータ同期完了通知を受信したことを判断する（ステップＳ２４）。
【００８３】
そして、マイグレーション対象のすべての仮想マシンに対して、最終移動フェーズの開始を移動手段６１Ａ、０６２Ａに指示する（ステップＳ２５）。テナント制御手段１０から最終移動フェーズの開始指示を受信した移動手段６１Ａと６２Ａとは、それぞれ担当する移動元の仮想マシン８１Ａと、８２Ａとの実行を停止する（ステップＳ３９）。そして、移動元の仮想マシンの動作データを移動先に送信する（ステップＳ４０）。
【００８４】
移動先の物理ホスト上の移動手段６１Ｂ及び６２Ｂは、それぞれ移動先の仮想マシン８１Ｂ及び８２Ｂを起動する。移動先の仮想マシンの起動が完了すると、移動元の物理ホスト上の移動手段６１Ａ、０６２Ａは移動元の仮想マシン８１Ａ、８２Ａの削除を行い（ステップＳ４２）、最後にテナント制御手段１０に最終移動フェーズが完了したことを通知する（ステップＳ４３）。
【００８５】
最終移動フェーズステップＳ３９〜Ｓ４３の実行時間は、仮想マシンの実行状況に依存して多少のばらつきが発生し、時刻Ｔ４で、仮想マシン８１が、時刻Ｔ５で仮想マシン８２が、最終移動フェーズを完了する。
【００８６】
図４に示すように、時刻Ｔ３まではマイグレーション対象の仮想マシンはすべて移動元の物理ホストで動作している。時刻Ｔ３〜Ｔ５の間では、マイグレーション対象の仮想マシンのうち一つ以上は実行停止中で残りは移動先の物理ホストで動作している状況であり、時刻Ｔ５以降ではマイグレーション対象の仮想マシンはすべて移動先の物理ホストで動作している状況となる。
【００８７】
本実施の形態によるライブマイグレーション方法によると、仮想マシン８１と８２間の通信が移動元と移動先のホスト間で発生することはない。従って、トラフィックの増加や、アプリケーションの性能劣化を、より抑制することが可能である。
【００８８】
また、最終移動フェーズでは仮想マシンの実行が停止されるが、一般のライブマイグレーション方法では、最終移動フェーズが各仮想マシンでばらついて行われるのに対して、本実施の形態では、最終移動フェーズが、時刻Ｔ３以降で一斉に行われるため、仮想マシンの実行が停止される期間を短くすることができる。
【００８９】
実施の形態２
次に、実施の形態２について図面を参照して説明する。実施の形態２にかかるシステム構成は、実施の形態１と同じであるため、説明を適宜省略する。本実施の形態にかかるライブマイグレーション方法は、実施の形態１のライブマイグレーション方法と比べて、テナント制御部１の動作フローと、移動元の物理ホスト３１上の同期状況監視手段５１Ａ、５２Ａの動作フローとが異なる。
【００９０】
本実施の形態にかかるテナント制御手段１０は、ライブマイグレーション対象の複数の仮想マシンのうち、一部の仮想マシンが、データ同期完了通知を行わない場合に、データ同期完了通知を行わない仮想マシンに対して、データ同期完了の判定条件を変更するものである。
【００９１】
図５は、本実施の形態にかかるテナント制御手段１０の動作を示すフローチャートである。図２の動作フローと比べて、実施の形態にかかるフローは、ステップＳ５１およびＳ５２が異なる。
【００９２】
まず、テナント制御手段１０は、ステップＳ２１でマイグレーション対象のすべての仮想マシンに対して、マイグレーション開始を指示する。そして、同期状況監視手段５１Ａ、及び５２Ａからデータ同期完了通知を待つ。
【００９３】
このとき、本実施の形態においては、ステップＳ２１で、データ同期完了通知を待っている仮想マシン、つまりテナント制御手段１０にデータ同期完了通知を行わない仮想マシンの数が、ライブマイグレーション対象の仮想マシンの数の一定の閾値以下の割合になった場合、データ同期の判定条件を変更する。
【００９４】
テナント制御手段１０は、ステップＳ５２で、データ同期完了通知を受信していない仮想マシンに対し、データ同期完了の判定条件の変更を指示する。
【００９５】
なお、ステップＳ５１における閾値は、マイグレーション対象の仮想マシンの数に関わらず一定の値としてもよいし、マイグレーション対象の仮想マシン数のうち一定の割合を閾値としてもよい。また、データ同期完了通知が、マイグレーション開始から予め定められた所定の時間を経過しても通知されない場合、データ同期完了の閾値の変化させるようにしてもよい。
【００９６】
ステップＳ５２では、同期状況監視手段５１Ａ及び５２Ａが監視する、移動手段６１Ａが出力する差分データ量の変更等である。差分データ量は、通常、メモリのスナップショットのデータ量に対して、所定の割合以下になるように定められているが、例えば、この割合の閾値を変更するようにすればよい。
【００９７】
また、データの同期が完了していない仮想マシンを、データ同期完了とみなすようにするといった変更も考えられる。このように、本実施の形態では、マイグレーション対象となっている仮想マシンのデータの同期が完了している状況に応じて、データ同期が完了していない仮想マシンのデータ同期判定条件の変更を行う。
【００９８】
次に、本実施の形態にかかる仮想マシン実行制御手段３１の動作について説明する。図６は、移動手段６１Ａおよび同期状況監視手段５１Ａの動作を示すフローチャートである。
【００９９】
本実施の形態における動作フローが第一の実施の形態と異なる点は、ステップＳ６１が追加されている点である。本実施の形態では、上述のテナント制御手段１０の動作フローで説明した通り、データ同期フェーズの間に、データ同期完了と判定されていない仮想マシンに対して、スナップＳ５２で、仮想マシンに対するデータ同期完了の判定条件の変更が通知される。
【０１００】
ステップＳ６１で、同期状況監視手段５１Ａは、テナント制御手段１０から判定条件の通知を受信して、データ同期完了判定条件の変更を行う。ステップＳ３４で、変更された判定条件に基づいて、データ同期完了が判定される。
【０１０１】
本実施の形態によれば、実施の形態１による効果に加えて、仮想マシンのライブマイグレーション動作の同期フェーズの時間を抑制することができる。言い換えれば、特定の仮想マシンのデータ同期フェーズが長く続くために、複数仮想マシン全体のマイグレーション完了までの時間が長くかかることを抑制することができる。
【０１０２】
例えば、実施の形態１におけるマイグレーションの時間経過を表した図である図４に示すように、仮想マシン８２のデータ同期フェーズが長く続く場合について説明する。本実施の形態では、データ同期完了と判定されていない仮想マシンが残り１つになった場合に仮想マシン８２のデータ同期完了の判定条件を緩めるものとして説明する。
【０１０３】
図４では、マイグレーション対象の仮想マシンは２つなので、時刻Ｔ２で、同期完了の条件（メモリスナップショットの差分データ量の判定閾値を増加させる）を変更する。これにより、本実施の形態では、同期判定の条件を変更して、仮想マシン８２を同期完了とみなしてライブマイグレーションの動作を行うことができる。これにより、最終移動フェーズの開始を早めることができ、全体として複数仮想マシン全体のマイグレーション完了までにかかる時間を短くすることができる。
【０１０４】
なお、本発明の具体的な構成は上記の実施内容に限定されるものではなく、本発明の趣旨を逸脱しない範囲の設計の変更等があってもそれらは全て本発明に含まれる。また、上記では、マイグレーション対象の仮想マシンが２台の場合を例に説明を行ったが、マイグレーション対象の仮想マシンの数を限定するものではなく、任意数の仮想マシンのマイグレーションに適用することが可能である。
【０１０５】
例えば、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１０６】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１０７】
この出願は、２０１２年７月１１日に出願された日本出願特願２０１２−１５５９０９を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１０８】
１  マイグレーションシステム
１０  テナント制御手段
３１  物理ホスト
３２  物理ホスト
４１  仮想マシン実行制御手段
４２  仮想マシン実行制御手段
５１Ａ  同期状況監視手段
５２Ａ  同期状況監視手段
６１Ａ  移動手段
６２Ａ  移動手段
６１Ｂ  移動手段
６２Ｂ  移動手段
８１Ａ  仮想マシン
８２Ａ  仮想マシン
８１Ｂ  仮想マシン
８２Ｂ  仮想マシン
【図１】
2014010213.tif 000003
【図２】
2014010213.tif 000004
【図３】
2014010213.tif 000005
【図４】
2014010213.tif 000006
【図５】
2014010213.tif 000007
【図６】
2014010213.tif 000008
【図７】
2014010213.tif 000009
【図８】
2014010213.tif 000010
【国際調査報告】
2014010213.tif 000011
2014010213.tif 000012