(57)【要約】【課題】ライブマイグレーションでの仮想マシンの時刻遅延を抑制または回避する。【解決手段】  プロセッサとプロセッサによりアクセスされるメモリとを有する情報処理装置であり、プロセッサは、動作中の移行元仮想マシンの第１のメモリの第１のデータを、移行先情報処理装置の移行先仮想マシンの第２のメモリに転送し、転送後、移行元仮想マシンをサスペンドし、転送中に書き換えられた第１のメモリの書換データを、第２のメモリに再転送し、移行元仮想マシンをサスペンドしたときから再転送が終了するまでのサスペンド時間に関連する時間情報を、移行先情報処理装置に通知し、移行先情報処理装置に前記第２のメモリ内の移行元仮想マシンの時刻を前記サスペンド時間で補正させ、再転送後に、移行先情報処理装置で移行先仮想マシンをリジュームさせる処理を実行する。【選択図】図４
2019049818.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサによりアクセスされるメモリとを有し、
前記プロセッサは、
動作中の移行元仮想マシンの第１のメモリの第１のデータを、移行先情報処理装置の移行先仮想マシンの第２のメモリに転送し、
前記転送後、前記移行元仮想マシンをサスペンドし、
前記転送中に書き換えられた前記第１のメモリの書換データを、第２のメモリに再転送し、
前記移行元仮想マシンをサスペンドしたときから前記再転送が終了するまでのサスペンド時間に関連する時間情報を、前記移行先情報処理装置に通知し、前記移行先情報処理装置に前記第２のメモリ内の前記移行元仮想マシンの時刻を前記サスペンド時間で補正させ、
前記再転送後に、前記移行先情報処理装置で前記移行先仮想マシンをリジュームさせる
処理を実行する、情報処理装置。
【請求項２】
前記処理は、更に、
前記再転送を開始した再転送開始時刻と、前記再転送が終了した再転送終了時刻とを記録し、
前記再転送開始時刻と前記再転送終了時刻または、前記再転送開始時刻と前記再転送終了時刻間の時間を、前記サスペンド時間に関連する時間情報として、前記移行先情報処理装置に通知する
ことを有する、請求項１に記載の情報処理装置。
【請求項３】
前記第２のメモリ内の前記移行元仮想マシンの時刻を前記サスペンド時間で補正する処理は、前記サスペンド時間に、前記移行元仮想マシンのサスペンドから前記移行先仮想マシンのリジュームまでの時間と前記サスペンド時間との誤差を加算した加算サスペンド時間で補正する処理を有する、請求項１に記載の情報処理装置。
【請求項４】
第１のプロセッサと、前記第１のプロセッサによりアクセスされる第１のメモリとを有する移行元情報処理装置と、
第２のプロセッサと、前記第２のプロセッサによりアクセスされる第２のメモリとを有する移行先情報処理装置とを有し、
前記第１のプロセッサは、
前記移行元情報処理装置で動作中の移行元仮想マシンの前記第１のメモリの第１のデータを、前記移行先情報処理装置の移行先仮想マシンの前記第２のメモリに転送し、
前記転送後、前記移行元仮想マシンをサスペンドし、
前記転送中に書き換えられた前記第１のメモリ内の前記第１のデータの書換済データを、前記第２のメモリに再転送し、
前記移行元仮想マシンをサスペンドしたときから前記再転送が終了するまでのサスペンド時間を、前記移行先情報処理装置に通知する、処理を実行し、
前記第２のプロセッサは、
前記サスペンド時間の通知に応答して、前記第２のメモリ内の前記移行元仮想マシンの時刻を前記サスペンド時間で補正し、
前記時刻の補正後に、前記移行先仮想マシンをリジュームさせる、処理を実行する、情報処理システム。
【請求項５】
第１のプロセッサと前記第１のプロセッサによりアクセスされる第１のメモリとを有する移行元情報処理装置と、第２のプロセッサと前記第２のプロセッサによりアクセスされる第２のメモリとを有する移行先情報処理装置とを有する情報処理システムの制御方法であって、
前記第１のプロセッサは、
前記移行元情報処理装置で動作中の移行元仮想マシンの前記第１のメモリの第１のデータを、前記移行先情報処理装置の移行先仮想マシンの前記第２のメモリに転送し、
前記転送後、前記移行元仮想マシンをサスペンドし、
前記転送中に書き換えられた前記第１のメモリ内の前記第１のデータの書換済データを、前記第２のメモリに再転送し、
前記移行元仮想マシンをサスペンドしたときから前記再転送が終了するまでのサスペンド時間を、前記移行先情報処理装置に通知する、処理を実行し、
前記第２のプロセッサは、
前記サスペンド時間の通知に応答して、前記第２のメモリ内の前記移行元仮想マシンの時刻を前記サスペンド時間で補正し、
前記時刻の補正後に、前記移行先仮想マシンをリジュームする、処理を有する情報処理システムの制御方法。
【請求項６】
第１のプロセッサと前記第１のプロセッサによりアクセスされる第１のメモリとを有する移行元情報処理装置と、第２のプロセッサと前記第２のプロセッサによりアクセスされる第２のメモリとを有する移行先情報処理装置とを有する情報処理システムのライブマイグレーション制御プログラムであって、
前記移行元情報処理装置で動作中の移行元仮想マシンの前記第１のメモリの第１のデータを、前記移行先情報処理装置の移行先仮想マシンの前記第２のメモリに転送し、
前記転送後、前記移行元仮想マシンをサスペンドし、
前記転送中に書き換えられた前記第１のメモリ内の前記第１のデータの書換済データを、前記第２のメモリに再転送し、
前記移行元仮想マシンをサスペンドしたときから前記再転送が終了するまでのサスペンド時間を、前記移行先情報処理装置に通知する、処理を前記第１のプロセッサに実行させ、
前記サスペンド時間の通知に応答して、前記第２のメモリ内の前記移行元仮想マシンの時刻を前記サスペンド時間で補正し、
前記時刻の補正後に、前記移行先仮想マシンをリジュームする、処理を前記第２のプロセッサに実行させるライブマイグレーション制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，情報処理装置、情報処理システム、情報処理システムの制御方法及びライブマイグレーション制御プログラムに関する。
【背景技術】
【０００２】
クラウドコンピューティング（以下省略してクラウドと称する場合がある。）では、物理マシン上で動作する仮想化ソフトウエア（以下ハイパーバイザと称する。）が、サーバセンタ内の複数の物理マシンなどのハードウエア群を、仮想マシンのコンフィグレーションファイル内の仮想マシン構成定義に基づいて仮想化する。
【０００３】
ライブマイグレーションは、移行元の物理マシンに生成されている仮想マシンを、その動作を実質的に停止することなく、移行先の物理マシンに移行させる技術である。そして、ライブマイグレーションは、クラウド環境下におけるハードウエアの保守では必須の技術である。
【０００４】
ライブマイグレーションでは、移行元仮想マシンのメインメモリ（以下単にメモリと称する。）内の全てのデータを移行先仮想マシンに割り当てられるメモリの領域に転送し、移行元仮想マシンをサスペンド（一時停止）した後に、転送中に書き換えられた移行元仮想マシンのメモリ内のダーティページを移行先仮想マシンのメモリに転送する。そして、ダーティページの転送終了後、移行先仮想マシンをリジューム（再開）する。これにより、移行先仮想マシンは、移行元仮想マシンがサスペンドする直前の状態でその動作を再開することができる。その後、移行元仮想マシンの仮想マシン構成ファイルが削除される。
【０００５】
以下の特許文献には、ライブマイグレーション及び仮想マシンの時刻補正について記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−１９１７５２号公報
【特許文献２】国際公開第２０１４／１１８９６１号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ライブマイグレーションでは、移行元仮想マシンがサスペンドした時刻から移行先仮想マシンがリジュームする時刻までの間、仮想マシンが一時停止するため、その間の時間だけ仮想マシンの時刻が遅延するという問題がある。これを解決するために、リジューム後に移行先仮想マシンを外部のＮＴＰサーバ（Network Time Protocol Server）に接続し、時刻を合わせる必要がある。しかし、ＮＴＰサーバによる時刻合わせは長時間をかけて徐々に行われるので、その間移行先仮想マシンの時刻は遅延状態となり、ログ時刻ずれ、トランザクションの時刻ずれなどが発生し、時刻遅延を許容できないサービスシステムにはライブマイグレーションの利用は困難である。
【０００８】
そのため、時刻遅延を許容できないサービスシステムの場合、ライブマイグレーションを使用せず、サービスシステムをシャットダウン（停止）し、移行先物理マシンに仮想マシンを起動させる必要がある。その場合、サービスシステムの動作停止を避けることができない。その結果、時刻遅延や動作停止が許容されないサービスシステムを、クラウド環境下で構築することは困難である。
【０００９】
そこで，本発明の目的は，ライブマイグレーションでの仮想マシンの時刻遅延を抑制または回避する情報処理装置、情報処理システム、情報処理システムの制御方法及びライブマイグレーション制御プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本実施の形態の第１の側面は，プロセッサと、前記プロセッサによりアクセスされるメモリとを有し、前記プロセッサは、動作中の移行元仮想マシンの第１のメモリの第１のデータを、移行先情報処理装置の移行先仮想マシンの第２のメモリに転送し、前記転送後、前記移行元仮想マシンをサスペンドし、前記転送中に書き換えられた前記第１のメモリの書換データを、第２のメモリに再転送し、前記移行元仮想マシンをサスペンドしたときから前記再転送が終了するまでのサスペンド時間に関連する時間情報を、前記移行先情報処理装置に通知し、前記移行先情報処理装置に前記第２のメモリ内の前記移行元仮想マシンの時刻を前記サスペンド時間で補正させ、前記再転送後に、前記移行先情報処理装置で前記移行先仮想マシンをリジュームさせる処理を実行する、情報処理装置である。
【発明の効果】
【００１１】
第１の側面によれば，ライブマイグレーションでの仮想マシンの時刻遅延を抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】ライブマイグレーションが実行されるクラウドコンピューティング環境下の情報処理装置システムの構成を示す図である。
【図２】図１の物理マシンの構成例を示す図である。
【図３】ライブマイグレーションの課題を説明する図である。
【図４】第1の実施の形態におけるライブマイグレーションが実行されるクラウド環境下の情報処理装置システムの構成を示す図である。
【図５】本実施の形態におけるライブマイグレーション制御プログラムとハイパーバイザによるライブマイグレーション制御処理の概略を示す図である。
【図６】本実施の形態におけるライブマイグレーション制御処理の概略フローチャートを示す図である。
【図７】本実施の形態におけるライブマイグレーション処理の具体的なフローチャート図である。
【図８】本実施の形態におけるライブマイグレーション処理の具体的なフローチャート図である。
【発明を実施するための形態】
【００１３】
図１は、ライブマイグレーションが実行されるクラウドコンピューティング環境下の情報処理装置システムの構成を示す図である。図１の情報処理システムは、複数の物理マシンPM_1,PM_2と、それら物理マシンがアクセス可能な大容量メモリであるストレージ装置STRGとを有する。各物理マシンは、コンピュータまたは情報処理装置であり、それぞれハードウエア資源HWを有する。ハードウエア資源は、例えば、CPU(Central Processing Unit、中央演算処理装置またはプロセッサ)と、メインメモリMEMと、外部ネットワークとのインタフェースIFなどが含まれる。
【００１４】
物理マシンPM_1は、仮想化ソフトウエアであるハイパーバイザHV_1を実行して、複数の仮想マシンVM_P1,VM_G1,VM_G2を生成する。同様に、物理マシンPM_2は、ハイパーバイザHV_2を実行して、複数の仮想マシンVM_P2,VM_G3を生成する。
【００１５】
各仮想マシンVMは、ホスト用のOS（H1_OS, H2_OS）を実行する仮想マシンVM_P1,VM_P2と、ゲスト用のOS(G1_OS, G2_OS, G3_OS)を実行する仮想マシンVM_G1, VM_G2, VM_G3とを有する。仮想マシンVM_P1, VM_P2は、それぞれのライブマイグレーション制御プログラムLM1_CN, LM2_CNを実行し、いずれかの仮想マシンのライブマイグレーション処理を実行する仮想マシン管理サーバである。また、仮想マシンVM_G1, VM_G2, VM_G3は、それぞれの図示しないアプリケーションプログラムを実行し、アプリケーションプログラムに対応するサービスを提供する。
【００１６】
物理マシンPM_1, PM_2及び各仮想マシンVMは、ネットワークNWを介して互いにアクセス可能である。また、ネットワークNW上にNTPサーバ（Network Time Protocolサーバ）が配置される。NTPサーバは、各仮想マシンVMからNTPクライアントでアクセスされ、各仮想マシンVMの内臓時計を正しい現在時刻に調整する。
【００１７】
ここで、各仮想マシンの内臓時計は、例えば、図中仮想マシンVM_G1に示したとおり、仮想マシンVM_G1に割り当てられたメインメモリMEM内の記憶領域に時刻情報T1を記憶し、CPUのクロックに同期してカウントされるカウント値で、メインメモリMEM内の時刻情報T1を更新することで、維持される。この内臓時計の維持は、例えば仮想マシンのOS（ホストOSやゲストOS）が実行する。
【００１８】
また、ストレージSTRGには、各ゲストOS（G1_OS, G2_OS, G3_OS）や、図示しない各仮想マシンの実行するアプリケーションプログラムなどが記憶される。そして、ストレージSTRGは、物理マシンとファイバチャネルFBで接続され、両物理マシンからアクセス可能である。
【００１９】
本実施の形態では、例えば、図1内の物理マシンPM_1上で動作中の移行元仮想マシンVM_G1を、移行先の物理マシンPM_2に移行し、移行先仮想マシンVM_G1_mが動作を継続する。この移行処理において、仮想マシンVM_G1の動作が停止する時間を実質的にゼロに近い短時間に制御することで、ライブマイグレーションを実行する。
【００２０】
図１中、Pnは制御ドメイン（ホストOSによるマシン領域）、Gnはゲストドメイン（ゲストOSによるマシン領域）をそれぞれ示す。
【００２１】
図２は、図１の物理マシンの構成例を示す図である。物理マシンPMは、CPU１０と、メインメモリ１２と、ネットワークNWと接続されるインタフェース１４と、それらを接続するバス１６とを有する。また、物理マシンPMは、大容量の補助記憶装置２０内に、ホストOS(H_OS)と、ハイパーバイザHVと、仮想マシン制御プログラム２３とを記憶し、これらのOS、HV、プログラムはメインメモリ１２に展開され、CPU（またはプロセッサ）により実行される。仮想マシン制御プログラム２３は、後述するライブマイグレーション制御プログラムLM_CNを有する。
【００２２】
プロセッサが、ホストOS（H_OS）と仮想マシン制御プログラム２３とを実行し、物理マシン上に生成される複数の仮想マシンを制御する。仮想マシンの制御には、仮想マシンの起動、サスペンション（一時停止）、リジューム（一時停止から復帰）、シャットダウンが含まれる。さらに、仮想マシンの制御には、仮想マシンの動作状態を実質的に維持して移行元物理マシンから移行先物理マシンに仮想マシンを移行するライブマイグレーションの制御が含まれる。
【００２３】
ネットワークNW上には、図１で示したNTPサーバに加えて、クラウド環境下のサーバセンタの運用管理を行う運用管理者のVM管理端末３０や、各仮想マシンVM_G1,VM_G2,VM_G3で構成されるサービスシステムを利用するサービスクライアント端末３２などが接続される。そして、VM管理端末３０は、仮想マシンの管理、制御を行うVM制御サーバPM_1,PM_2にアクセスし、仮想マシンの制御やライブマイグレーションの指示などを行う。
【００２４】
物理マシンPMは、ファイバーチャネルコントローラ２４を介して、ストレージ装置STRGにアクセス可能に接続される。ストレージ装置STRGは、前述のとおり、ゲストOSで起動する仮想マシンVM_Gの各ゲストOSを記憶する。ライブマイグレーションが実行されると、例えばライブマイグレーションの対象である移行元仮想マシンVM_G3を起動している移行元物理マシンに代わって、移行先仮想マシンVM_G1_mをリジュームする移行先物理マシンが移行対象仮想マシンのゲストOSにアクセスしてリジュームする。
【００２５】
図３は、ライブマイグレーションの課題を説明する図である。ライブマイグレーションの処理は、移行元物理マシンでの処理（図３の左側）と、移行先物理マシンでの処理（図３の右側）とで行われる。各処理は、VM管理サーバである仮想マシンPM_1,PM_2のライブマイグレーション制御プログラムLM_CNとハイパーバイザHVが実行する。
【００２６】
まず、ライブマイグレーションの指示があると（S1のYES）、移行元物理サーバPM_1のライブマイグレーション制御プログラムLM1_CNを実行し、移行先物理サーバPM_2のハイパーバイザHV_2に、移行先仮想マシンのメモリ領域をメインメモリMEM内に確保させる（S2）。そして、移行元物理サーバのハイパーバイザHV_1が移行元仮想マシンVM_G1のメモリのデータを移行先仮想マシンVM_G1_mのメモリに転送する（S3）。このメモリのデータ転送は、データ転送中に書き換えられたデータのダーティページの再転送を含めて複数回行われる。
【００２７】
メモリのデータの転送が完了すると、移行元物理マシンのハイパーバイザHV_1が移行元仮想マシンをサスペンドし、動作を停止する。このサスペンドでは、ハイパーバイザHV_1が移行元仮想マシンのゲストOS(G1_OS)の動作を停止し、移行元仮想マシンが実行中のアプリケーションも停止する。しかし、メモリ内のデータやCPU内のレジスタのデータ（コンテキスト）などは削除されず、移行先仮想マシンのメモリに転送される。そして、移行先仮想マシンVM_G1_mのゲストOS（G1_OS）の動作を再開すると、移行した仮想マシンのメモリ内のデータやCPU内のレジスタのデータなどがサスペンド直前の状態で復元されるので、サスペンド時の動作を継続することができる。
【００２８】
これに対して、仮想マシンのシャットダウン（遮断）を行うと、各アプリケーションは通常の終了処理を行い、メモリ内の動作データなどは必要に応じてハードディスクなどの補助記憶装置に格納され、メモリ内のデータは削除される。一方、仮想マシンが起動されると、VM制御プログラムを実行するVM制御サーバVM_PのホストOSの内臓時刻で、起動される仮想マシンの内臓時刻が設定される。
【００２９】
サスペンド後に、移行元物理マシンのハイパーバイザは、移行元仮想マシンのメモリ内の処理S3中に書き換えられたダーティページとCPU内のコンテキストを移行先仮想マシンのメモリに転送する（S5）。この転送が終了すると、移行先物理マシンのハイパーバイザは、移行先仮想マシンのゲストOSをリジューム（サスペンドから復帰、または再開）して、サスペンド時の動作を再開する（S6）。移行先仮想マシンがリジュームして通常動作に入ると、移行元物理マシンのハイパーバイザが移行元仮想マシンを削除する（S7）。具体的には、移行元仮想マシンのVM制御サーバVM_Pがメモリに記憶するコンフィグレーションファイルを削除する。また、移行元仮想マシンのメモリは解放される。
【００３０】
上記のライブマイグレーション処理では、処理S3のデータ転送時間をゼロにできないので、メモリ内のダーティページがなくなることはない。そのため、ダーティページを転送するために、処理S4での移行元仮想マシンのサスペンドから処理S6での移行先仮想マシンのリジュームまでの時間をゼロにはできない。
【００３１】
このように移行対象の仮想マシンがサスペンドされると、そのゲストOS(G1_OS)が停止し、ゲストOSによる内臓時計T1の動作も停止する。また、移行元仮想マシンがサスペンドされる直前のメモリ内の内臓時計T1の時刻データは、移行先仮想マシンのメモリに転送済みである。その結果、移行先仮想マシンがリジュームして動作が再開されるゲストOSの内臓時計T1は、サスペンド前の時刻のままであり、サスペンド中の時間（サスペンド時間）に相当する時間だけその時刻が遅延するという問題がある。
【００３２】
上記の時刻遅延を抑制するために、処理S3の回数を増加してサスペンド中に転送されるダーティページ容量を減らしたり、ダーティページを転送制御するVM制御サーバVM_P1のCPUリソースを増大させて、サスペンド時間の最小化を図っている。
【００３３】
［第1の実施の形態］
図４は、第1の実施の形態におけるライブマイグレーションが実行されるクラウド環境下の情報処理装置システムの構成を示す図である。図４の情報処理システムは、図１と同様に、複数の物理マシンPM_1,PM_2と、それら物理マシンがアクセス可能な大容量メモリであるストレージ装置STRGとを有する。また、図１と同様に、物理マシンPM_1上に仮想マシンVM_P1, VM_G1, VM_G2が生成され、物理マシンPM_2上に仮想マシンVM_P2,VM_G3が生成されている。
【００３４】
図４の情報処理システムにおいて、図１と異なる構成は、次のとおりである。
【００３５】
（１）第1に、移行元物理マシンPM_1のVM制御サーバである仮想マシンVM_P1がライブマイグレーション制御プログラムLM_CNを実行して、移行元仮想マシンVM_G1がサスペンドした時刻またはサスペンド後にダーティページの転送を開始した時刻Tsと、ダーティページの転送を終了した時刻Teとをメモリに記録する。この時刻Ts,Teは、VM制御サーバである仮想マシンVM_P1のホストOSがメモリ内に維持する内臓時計による時刻である。
【００３６】
（２）第２に、移行元物理マシンPM_1のVM制御サーバVM_P1が、ハイパーバイザHV_1,HV_2を介して、移行先物理マシンPM_2の仮想マシンVM_P2に、メモリ内の時刻Ts,Te（サスペンド時間関連情報）を送信する。
【００３７】
（３）第３に、移行先物理マシンPM_2の仮想マシンVM_P2が、ライブマイグレーション制御プログラムを実行し、サスペンド時間関連情報Ts,Teから求めたサスペンド時間Te-Tsを、移行先仮想マシンVM_G1_mのメモリMEM内の内臓時間T1に加算して、内臓時間T1をT1+(Te-Ts)に補正する。これにより、内臓時間T1の時刻遅延は抑制または限りなく少なくされる。
【００３８】
図５は、本実施の形態におけるライブマイグレーション制御プログラムとハイパーバイザによるライブマイグレーション制御処理の概略を示す図である。ライブマイグレーション制御処理は、移行元仮想マシンのメモリのデータを移行先仮想マシンのメモリに転送する処理S20と、移行元仮想マシンのサスペンド処理と移行先仮想マシンのリジューム処理S21と、移行元物理マシンの仮想マシンVM_P1及びハイパーバイザHV_1と移行先物理マシンの仮想マシンVM_P2及びハイパーバイザHV_2間の通信処理S22とを有する。さらに、ライブマイグレーション制御処理は、移行元物理マシンのVM管理サーバVM_P1によるサスペンド開始時刻またはダーティページ転送開始時刻Ts及びダーティページ転送終了時刻Teなどを記録する時刻記録処理S23と、移行先物理マシンのVM管理サーバVM_P2による、移行先仮想マシンのメモリ内臓時間T1を時刻Ts,Teに基づくサスペンド時間で補正する時刻補正処理S24を有する。この時刻記録処理S23と、時刻補正処理S24が本実施の形態で追加された処理である。
【００３９】
図６は、本実施の形態におけるライブマイグレーション制御処理の概略フローチャートを示す図である。図３に示したフローチャートに移行元での処理S23,S22と移行先での処理S24が追加されている。それ以外の処理は、図３で説明したとおりである。
【００４０】
即ち、移行元のライブマイグレーション処理（図６の左側）において、移行元物理マシンのVM制御サーバVM_P1のライブマイグレーション制御プログラムLM_CNとハイパーバイザHV_1とにより、移行元仮想マシンVM_G1をサスペンドした後（S4）、移行元仮想マシンのメモリ内のダーティページとCPUのレジスタ内のコンテキストとを移行先仮想マシンVM_G1_mのメモリに転送する（S5）。そして、移行元物理マシンのVM制御サーバVM_P1が、VM制御サーバVM_P1のホストOS（H1_OS）のメモリ内の内臓時計に基づいて、ダーティページの転送処理の開始時刻Tsと終了時刻Teとをメモリ内の記録する（S22）。ダーティページの転送処理の開始時刻Tsに代えて、移行元仮想マシンをサスペンドした時刻をTsとして記録しても良い。
【００４１】
そして、VM制御サーバVM_P1が、そのサスペンド時間に関連する時刻情報Ts,Teを、移行先制御サーバVM_P2に通知する。この通知は、移行元のハイパーバイザHV_1と移行先のハイパーバイザHV_2とを介して行われる。
【００４２】
次に、移行先のライブマイグレーション処理（図６の右側）において、移行先のVM制御サーバVM_P2が、移行先仮想マシンVM_G1_mのゲストOSのメモリ内の時刻T1にサスペンド時間Te-Ts（具体的にはダーティページ転送に要した時間またはサスペンド時刻からダーティページ転送終了時刻までの時間）を加算し補正する（S24）。この移行先仮想マシンのメモリ内の内臓時刻T1に、移行元仮想マシンのサスペンド時間に相当する時間Te-Tsが加算されたので、その後、移行先のVM制御サーバVM_P2のライブマイグレーション制御プログラムLM_CNとハイパーバイザHV_2により移行先仮想マシンをリジュームすると、その補正された内臓時刻T1で動作が再開される。それにより、リジューム後の仮想マシンにおける時刻遅延が抑制または限りなく短くされる。
【００４３】
［第２の実施の形態］
図７と図８は、本実施の形態におけるライブマイグレーション処理の具体的なフローチャート図である。以下、本実施の形態におけるライブマイグレーション処理の詳細について図7、図８を参照して説明する。
【００４４】
図７、図８では、移行元物理サーバPM_1での移行元制御サーバVM_P1のライブマイグレーション制御プログラムLM_CNとハイパーバイザHV_1の処理、及び移行先制御サーバVM_P2のライブマイグレーション制御プログラムLM_CNとハイパーバイザHV_2の処理を、それぞれ区別して記載している。しかし、図に示した処理の分担は一例であり、ライブマイグレーション制御プログラムとハイパーバイザの処理の分担はこの例に限られない。以下、ライブマイグレーションをLM（Live Migration）と省略して記す。
【００４５】
まず、図６に示したようにVM管理端末30(図２)からのライブマイグレーション指示を受信すると、移行元のVM制御サーバVM_P1のプロセッサがLM制御プログラムを実行して、移行元仮想マシンVM_G1のメモリのデータを転送する命令を発行すると（S30）、ハイパーバイザHV_1が前記メモリのデータの転送を実行する（S31）。これにより、移行元仮想マシンVM_G1のメインメモリMEM内のデータDATA_MEMが、移行先物理マシンの移行先仮想マシンVM_G1_mに割り当てたメインメモリ内に転送される。
【００４６】
移行元のハイパーバイザHV_1は、上記のメモリのデータ転送中に、移行元仮想マシンにより書き換えられたメモリ内の更新データ（ダーティページ）を記録する（S32）。そして、メモリのデータ転送が完了すると（S33）、ハイパーバイザHV_1は、移行元制御サーバVM_P1に通知する。
【００４７】
そこで、移行元制御サーバは、LM制御プログラムを実行し、更新データの転送命令を発行し（S34）、ハイパーバイザHV_1が前記メモリのデータの転送を実行し（S35）、転送中の更新データ（ダーティページ）を記録する（S36）。そして、メモリのダーティページの転送が完了すると（S37）、ハイパーバイザHV_1は移行元制御サーバVM_P1に通知する。
【００４８】
上記の処理S34〜S37が、Ｎ回繰り返される(S38)。Ｎ回は、移行元仮想マシンのサスペンド時間をできるだけ短くでき、且つＮ回のダーティページの転送に要する時間も長くない最適な回数が選択される。
【００４９】
ダーティページの転送がＮ回行われると(S38のYES)、移行元のVM制御サーバVM_P1が移行元仮想マシンVM_G1のゲストOS（G1_OS）をサスペンドする命令を発行し、ハイパーバイザHV_1がゲストOSをサスペンドする（S40）。その結果、移行元仮想マシンVM_G1が動作をサスペンドする（S41）。このサスペンドにより、移行元仮想マシンのCPU内のレジスタ値などのコンテキストが移行元仮想マシンのメモリに記憶される。
【００５０】
図８に移動して、移行元のVM制御サーバVM_P1がLM制御プログラムを実行して、移行元仮想サーバVM_G1がサスペンドした直後の時刻、つまりサスペンド後のダーティページの転送開始時刻TsをメモリMEM等に記録する（S42）。この転送開始時刻Tsの記録処理は、図５の時刻記録処理S23により行われる。また、時刻Tsは、VM制御サーバVM_P1のホストOSがメモリ内に管理する内臓時計に基づく時刻である。
【００５１】
そして、移行元制御サーバVM_P1がLM制御プログラムを実行して、移行元仮想マシンVM_G1のメモリ内の更新データの転送命令を発行し（S43）、ハイパーバイザHV_1がその更新データの転送を実行する（S44）。これにより、移行元仮想マシンVM_G1のメモリ内の更新データとCPU内のレジスタのコンテキストなどD＿PAGE_MEMが、移行先仮想マシンに割り当てたメモリ内に転送される。その結果、移行先物理マシンの移行先仮想マシンVM_G1のメモリが、移行元仮想マシンのメモリ内の全ての最新データを受信し記憶する（S45）。上記の移行元仮想マシンのメモリ内の更新データには、ゲストOS(G1_OS)がメモリ内に管理する内臓時計の時刻データも含まれる。また、この更新データの転送処理で、移行元のハイパーバイザHV_1は、サスペンドした移行元仮想マシンのコンフィグレーションデータを、移行先のハイパーバイザHV_2に転送するようにしてもよい。
【００５２】
移行元のメモリ内の全ての最新データが移行先のメモリに記憶されると、移行元制御サーバVM_P1がLM制御プログラムを実行して、転送完了時刻Teを記録する（S46）。そして、移行元制御サーバVM_P1がLM制御プログラムを実行して、２つの時刻情報Ts,Teをサスペンド時間関連情報として、移行先制御サーバVM_P2に送信する（S47、S48）。または、２つの時刻間の時間Te-Tsをサスペンド時間関連情報として送信しても良い。そして、前述したとおり、この時刻情報の送信は、移行元のハイパーバイザHV_1と移行先のハイパーバイザHV_2を経由して、行われる。
【００５３】
このサスペンド時間関連情報Ts,Teの受信に応答して、移行先のVM制御サーバVM_P2が、LM制御プログラムを実行して、サスペンド時間または転送時間Te-Tsを計算し（S49）、サスペンド時間または転送時間Te-Tsを、移行先仮想マシンVM_G1_mのメモリ内の内臓時刻T1に加算する（S50）。
【００５４】
移行元のハイパーバイザHV_1は、サスペンド中の更新データの転送処理の完了通知を移行先のハイパーバイザHV_2を経由して、移行先制御サーバVM_P2に通知する（S51）。この通知に応答して、移行先のVM制御サーバVM_P2がLM制御プログラムを実行して、移行先仮想マシンのゲストOSをリジュームする命令を発行し（S52）、それに応答して、移行先のハイパーバイザHV_2が、移行先仮想マシンVM_G1_mをリジュームする（S53,S54）。このリジューム処理は、移行先のハイパーバイザが、移行元のハイパーバイザから転送済みのコンフィグレーションデータに基づいて、移行先仮想マシンをリジュームする。
【００５５】
最後に、移行先のVM制御サーバVM_P2とハイパーバイザHV_2によりLM完了通知が移行元のVM制御サーバVM_P1に行われ（S55）、移行元のVM制御サーバは、そのメモリ内に記憶されていた移行元仮想マシンの構成ファイルを削除する（S56）。以上で、ライブマイグレーション処理が完了する。
【００５６】
上記の移行先のハイパーバイザHV_2が移行先仮想マシンをリジュームすると（S53,S54）、移行先仮想マシンVM_G1_mのゲストOS(G1_OS)が動作を再開する。この再開したとき、ゲストOSが管理する内臓時刻はサスペンド時間または転送時間Te-Tsだけ進められている。その結果、動作を再開した移行先仮想マシンのゲストOSの内臓時刻の時刻遅延は実質的に解消または抑制されている。
【００５７】
上記のサスペンド時間または転送時間Te-Tsは、厳密には移行元仮想マシンのサスペンドから移行先仮想マシンのリジュームまでの時間と一致しない。なぜなら、例えば、移行元のVM制御サーバは、移行先仮想マシンのリジューム時刻をリジューム処理S54の前に把握することは困難だからである。
【００５８】
そこで、第1または第２の実施の形態での変形例として、上記のサスペンド時間または転送時間Te-Tsを所定比率αだけ長く修正した、または所定時間ΔTだけ長く修正した修正時間（Te-Ts）×αまたは（Te-Ts）+ΔTで、移行先仮想マシンの内臓時刻Tを補正するのが好ましい。この所定比率αまたは所定時間ΔTは、実験などによりリジューム後の仮想マシンの遅延時刻がゼロに近づく比率αまたは時間ΔTとして検出することが可能である。
【００５９】
以上の通り、本実施の形態によれば、ライブマイグレーション後の移行先仮想マシンの時刻遅延を抑制するまたはゼロに近づけることができる。その結果、時刻遅延が許容されないサービスシステムをクラウドコンピューティングで構成することができる。
【符号の説明】
【００６０】
PM_1：移行元物理マシン、移行元の情報処理装置
PM_2：移行先物理マシン、移行先の情報処理装置
VM_G1：移行元仮想マシン
VM_P1：移行元VM制御マシン
HV_1：移行元ハイパーバイザ
H1_OS：移行元ホストOS
HW：ハードウエア群
VM_P2：移行先VM制御マシン
HV_2：移行先ハイパーバイザ
STRG：補助記憶装置、ストレージ
G1_OS, G2_OS, G3_OS：ゲストOS
H2_OS：移行先ホストOS
MEM：メインメモリ
T1：移行元仮想マシンの内臓時刻
Ts：メモリ転送開始時刻またはサスペンド時刻
Te：メモリ転送終了時刻
【図１】
2019049818.tif 000003
【図２】
2019049818.tif 000004
【図３】
2019049818.tif 000005
【図４】
2019049818.tif 000006
【図５】
2019049818.tif 000007
【図６】
2019049818.tif 000008
【図７】
2019049818.tif 000009
【図８】
2019049818.tif 000010