(57)【要約】      （修正有）【課題】ライブマイグレーションでの仮想マシンの停止時間を短くする。【解決手段】仮想マシンを起動可能な複数の物理マシンを有する情報処理システムにおいて、移行元仮想マシンが動作する移行元物理マシンは、移行元仮想マシンの第１のメモリのデータを移行先物理マシンのメモリに転送し、データ転送完了後に、移行元仮想マシンを停止し、その後、移行元仮想マシンのOSが使用するメモリのデータの転送中に更新されたOSの更新ページのデータを先の順番で、移行元仮想マシンの第１のアプリケーションが使用するメモリの更新ページのデータを次の順番で、移行先物理マシンのメモリに転送する。移行先物理マシンは、OSの更新ページのデータ転送が完了すると、移行先仮想マシンの動作を再開して、OS及び第１のアプリケーションの動作を再開し、第１の更新ページのデータ転送完了までは、第１の更新ページへのメモリアクセスを実行しない。【選択図】図７
2019016135.tif 000002
【特許請求の範囲】
【請求項１】
それぞれメモリを有し、仮想マシンを起動可能な複数の物理マシンを有する情報処理システムにおいて、
前記複数の物理マシンのうち、移行元仮想マシンが動作する移行元物理マシンは、
前記移行元仮想マシンの第１のメモリのデータを、前記複数の物理マシンのうち、移行先物理マシンのメモリに転送し、
前記第１のメモリのデータの転送完了後に、前記移行元仮想マシンを停止し、
その後、前記移行元仮想マシンのオペレーティングシステム（以下OSと称する）が使用するメモリ内のページであり、前記第１のメモリのデータの転送中に更新された前記OSの更新ページのデータを先の順番で、前記移行元仮想マシンの第１のアプリケーションが使用するメモリ内の第１の更新ページのデータを次の順番で、前記移行先物理マシンのメモリに転送し、
前記移行先物理マシンは、
前記OSの更新ページのデータ転送が完了すると、前記移行先物理マシン上で移行先仮想マシンの動作を再開して、前記OSの動作及び前記第１のアプリケーションの動作を再開し、
前記第１の更新ページのデータ転送が完了するまで前記第１の更新ページへのメモリアクセスを実行しない、情報処理システム。
【請求項２】
前記移行元物理マシンは、
さらに、前記第１のアプリケーションより優先度が低い第２のアプリケーションが使用するメモリ内の第２の更新ページを、前記第１の更新ページの次の順番で、前記移行先物理マシンのメモリに転送し、
前記移行先物理マシンは、
前記OSの動作を再開するときに、前記第１のアプリケーションの動作の再開と共に前記第２のアプリケーションの動作を再開し、
前記第２の更新ページの転送が完了するまで前記第２の更新ページへのメモリアクセスを実行しない、請求項１に記載の情報処理システム。
【請求項３】
前記移行先物理マシンは、前記移行先仮想マシンによるメモリアクセスの仮想アドレスを物理アドレスに変換するメモリ制御ユニットを有し、
前記移行先物理マシンは、
前記OSの更新ページのデータ転送が完了すると、前記メモリ制御ユニットのアドレス変換テーブルをリセットし、
前記第１の更新ページのデータ転送が完了した後に、当該第１の更新ページのアドレス変換情報を前記アドレス変換テーブルに登録し、
前記メモリ制御ユニットは、前記メモリアクセス先の第１の更新ページのアドレス変換情報が前記アドレス変換テーブルに未登録の場合アドレス変換せずに前記メモリアクセスを失敗させ、登録済みの場合アドレス変換して前記メモリアクセスを成功させる、請求項１に記載の情報処理システム。
【請求項４】
前記移行元物理マシンは、
前記第１のメモリのデータを転送中に、前記第１のメモリへのライトアクセスが発生すると、第１の管理テーブルに、前記ライトアクセスの発生元識別情報を、前記OSか前記第１のアプリケーションかを区別して、ライトアクセス先のページに関連つけて記録し、第２の管理テーブルに、更新されたことを前記ライトアクセス先のページに関連つけて記録し、
前記OSの更新ページと前記第１の更新ページの前記移行先物理マシンのメモリへのデータ転送を、前記第１の管理テーブルと前記第２の管理テーブルとを参照して実行する、請求項１に記載の情報処理システム。
【請求項５】
前記移行元物理マシンは、
前記第２の管理テーブルを、前記第１の更新ページの前記移行先物理マシンのメモリへのデータ転送を開始するまでに前記移行先物理マシンに転送し、
前記移行先物理マシンは、
前記第１の更新ページのデータ転送が完了するたびに、前記第２の管理テーブルにデータ転送済の第１の更新ページを記録し、
前記第１の更新ページのデータ転送済記録に基づいて、前記第１の更新ページへのメモリアクセスを成功させるか否か制御する、請求項４に記載の情報処理システム。
【請求項６】
それぞれメモリを有し、仮想マシンを起動可能な複数の物理マシンを有する情報処理システムを制御する処理をコンピュータに実行させる制御プログラムであって、
前記処理は、
前記複数の物理マシンのうち、移行元仮想マシンが動作する移行元物理マシンでは、
前記移行元仮想マシンの第１のメモリのデータを、前記複数の物理マシンのうち、移行先物理マシンのメモリに転送し、
前記第１のメモリのデータの転送完了後に、前記移行元仮想マシンを停止し、
その後、前記移行元仮想マシンのオペレーティングシステム（以下OSと称する）が使用するメモリ内のページであり、前記第１のメモリのデータの転送中に更新された前記OSの更新ページのデータを先の順番で、前記移行元仮想マシンの第１のアプリケーションが使用するメモリ内の第１の更新ページのデータを次の順番で、前記移行先物理マシンのメモリに転送し、
前記移行先物理マシンでは、
前記OSの更新ページのデータ転送が完了すると、前記移行先物理マシン上で移行先仮想マシンの動作を再開して、前記OSの動作及び前記第１のアプリケーションの動作を再開し、
前記第１の更新ページのデータ転送が完了するまで前記第１の更新ページへのメモリアクセスを実行しない、
処理を有する情報処理システムの制御プログラム。
【請求項７】
それぞれメモリを有し、仮想マシンを起動可能な複数の物理マシンを有する情報処理システムを制御する方法であって、
前記複数の物理マシンのうち、移行元仮想マシンが動作する移行元物理マシンでは、
前記移行元仮想マシンの第１のメモリのデータを、前記複数の物理マシンのうち、移行先物理マシンのメモリに転送し、
前記第１のメモリのデータの転送完了後に、前記移行元仮想マシンを停止し、
その後、前記移行元仮想マシンのオペレーティングシステム（以下OSと称する）が使用するメモリ内のページであり、前記第１のメモリのデータの転送中に更新された前記OSの更新ページのデータを先の順番で、前記移行元仮想マシンの第１のアプリケーションが使用するメモリ内の第１の更新ページのデータを次の順番で、前記移行先物理マシンのメモリに転送し、
前記移行先物理マシンでは、
前記OSの更新ページのデータ転送が完了すると、前記移行先物理マシン上で移行先仮想マシンの動作を再開して、前記OSの動作及び前記第１のアプリケーションの動作を再開し、
前記第１の更新ページのデータ転送が完了するまで前記第１の更新ページへのメモリアクセスを実行しない、
処理を有する情報処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，情報処理システム、情報処理システムの制御プログラム及び情報処理システムの制御方法に関する。
【背景技術】
【０００２】
サーバなどの物理マシンに配備または生成した複数の仮想マシンにより、所定のサービスを提供するサービスシステムまたは情報処理システムが構成される。このような情報処理システムでは、業務量の増減時や故障が発生した際の保守作業時に、情報処理システムの動作を継続したまま、仮想マシンを別の物理マシンに移行させるライブマイグレーションが行われる。ライブマイグレーションは、仮想化ソフトウエアであるハイパーバイザが有する一つの機能である。
【０００３】
ライブマイグレーションについては、以下の特許文献に記載がある。
【０００４】
ライブマイグレーションでは、最初に、移行元ハイパーバイザが、情報処理システムの動作を継続した状態で、移行元物理マシンのメモリのうち移行元の仮想マシンに割り当てられているメモリの全データを、移行先物理マシンのメモリに転送する。そして、移行元ハイパーバイザは、メモリのデータを転送中に更新されたメモリページを記憶しておく。転送先のメモリは、移行先物理マシンに生成される移行先仮想マシンに割り当てられるメモリ領域である。次に、メモリの全データの転送が完了すると、移行元ハイパーバイザは、移行元の仮想マシンをサスペンド（一時停止）した後、更新されたメモリページ（ダーティページ）のみを移行先物理マシンのメモリに転送する。そして、ダーティページの全データの転送完了後、移行先ハイパーバイザは、移行先の物理マシン上に生成される仮想マシンをリジュームする。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１９１７５２号公報
【特許文献２】特開２０１２−２３４５６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のライブマイグレーションの処理では、ダーティページの転送中仮想マシンが一時停止される。そのため、情報処理システムが一時停止状態になり、情報処理システムのサービスを継続できない。情報処理システムは複数のサービスをそれぞれ提供する複数の業務アプリケーションプログラム（以下、単に業務アプリケーションまたはアプリケーションと称する。）を実行することがある。その場合、情報処理システムが一時停止すると、複数の業務アプリケーションの実行が全て停止してしまう。
【０００７】
しかしながら、複数の業務アプリケーションには、優先度の高いアプリケーションから優先度の低いアプリケーションが含まれることがある。その場合、全ての業務アプリケーションのダーティページの転送を待って、移行先の仮想マシンをリジュームすると、優先度の高いアプリケーションの業務再開までの停止時間が長くなる。
【０００８】
さらに、仮想マシンは、業務アプリケーションをオペレーティングシステム（以下、OSと称する。）上で動作させるため、仮想マシンが使用するメモリ領域にはOSが使用するメモリ領域と業務アプリケーションが使用するメモリ領域とが存在する。上記のライブマイグレーションでは、OSと業務アプリケーションが使用するメモリ領域全てのダーティページの転送が完了するまで、移行先の仮想マシンをリジュームさせないので、業務アプリケーションの業務再開までの停止時間が長くなる。
【０００９】
そこで，本発明の目的は，ライブマイグレーションでの仮想マシンの一時停止時間を短くした情報処理システム、情報処理システムの制御プログラム及び情報処理システムの制御方法を提供することにある。
【課題を解決するための手段】
【００１０】
本実施の形態の第１の側面は，
それぞれメモリを有し、仮想マシンを起動可能な複数の物理マシンを有する情報処理システムにおいて、
前記複数の物理マシンのうち、移行元仮想マシンが動作する移行元物理マシンは、
前記移行元仮想マシンの第１のメモリのデータを、前記複数の物理マシンのうち、移行先物理マシンのメモリに転送し、
前記第１のメモリのデータの転送完了後に、前記移行元仮想マシンを停止し、
その後、前記移行元仮想マシンのオペレーティングシステム（以下OSと称する）が使用するメモリ内のページであり、前記第１のメモリのデータの転送中に更新された前記OSの更新ページのデータを先の順番で、前記移行元仮想マシンの第１のアプリケーションが使用するメモリ内の第１の更新ページのデータを次の順番で、前記移行先物理マシンのメモリに転送し、
前記移行先物理マシンは、
前記OSの更新ページのデータ転送が完了すると、前記移行先物理マシン上で移行先仮想マシンの動作を再開して、前記OSの動作及び前記第１のアプリケーションの動作を再開し、
前記第１の更新ページのデータ転送が完了するまで前記第１の更新ページへのメモリアクセスを実行しない、情報処理システムである。
【発明の効果】
【００１１】
第１の側面によれば，ライブマイグレーションでの仮想マシンの一時停止時間を短くできる。
【図面の簡単な説明】
【００１２】
【図１】仮想マシンのライブマイグレーションを説明する図である。
【図２】ライブマイグレーション処理のフローチャート図である。
【図３】ライブマイグレーション処理の概略を説明する図である。
【図４】ライブマイグレーション処理の概略を説明する図である。
【図５】ライブマイグレーション処理の概略を説明する図である。
【図６】図１に示した移行元物理マシンと移行先物理マシンの構成を示す図である。
【図７】図２の非優先度送信と本実施の形態における優先度送信のライブマイグレーションのタイミングチャートを示す図である。
【図８】本実施の形態におけるライブマイグレーションにおける送信元と送信先の物理マシンの動作を示すフローチャート図である。
【図９】優先度とプロセスID管理テーブルの一例を示す図である。
【図１０】メモリページ管理テーブルの例を示す図である。
【図１１】ダーティページリストの例を示す図である。
【図１２】移行先仮想マシンVMB_Dがリジュームされるときのメモリの状態を示す図である。
【図１３】本実施の形態におけるMMUとOSとハイパーバイザとの関係を示す図である。
【図１４】MMU内のアドレス変換テーブルと、OSとハイパーバイザが管理するMMU管理テーブルの関係を示す図である。
【図１５】本実施の形態のライブマイグレーションの詳細を示すシーケンスチャート図である。
【図１６】本実施の形態のライブマイグレーションの詳細を示すシーケンスチャート図である。
【図１７】本実施の形態のライブマイグレーションの詳細を示すシーケンスチャート図である。
【図１８】本実施の形態のライブマイグレーションの詳細を示すシーケンスチャート図である。
【発明を実施するための形態】
【００１３】
［ライブマイグレーションの概略］
図１は、仮想マシンのライブマイグレーションを説明する図である。図１において、移行元物理マシンPM_Sには，仮想化ソフトウエアであるハイパーバイザHV_Sの制御により２つの仮想マシンVMA,VMB_Sが起動され動作中である。ハイパーバイザは、仮想マシンVMA、VMB_Sに，物理マシンPM_S内のメモリ１２Ａ，１２Ｂを割り当てていて、それぞれの仮想マシンが図示しないアプリケーションを実行すると、CPUのレジスタ１１Ａ，１１Ｂを使用する。また，移行元物理マシンPM_Sは，ハードディスクHDD等の大容量の補助メモリが通信可能状態になっていて，仮想マシンVMA, VMB_Sからアクセスされている。
【００１４】
一方，移行先物理マシンPM_Dには，ハイパーバイザHV_Dにより１つの仮想マシンVMCが起動し動作中である。この状態で，移行元仮想マシンVMB_Sを移行元物理マシンPM_Sから移行先物理マシンPM_Dに移行するライブマイグレーション処理が行われるものとする。したがって、図１の状態では、移行先仮想マシンVMB_Dは未だ起動しておらず、移行先仮想マシンにより使用されるメモリ領域２２Ｂも未だ割り当てられていない。
【００１５】
ハイパーバイザHV_Sが仮想マシンVMB_Sを起動すると，ハードディスクHDD内のＯＳや，ミドルウエア，アプリケーションがメモリ１２Ｂに展開される。そして，仮想マシンVMB_Sが動作を開始すると，メモリ１２ＢとCPU内のレジスタ１１Ｂにデータが書き込まれ読み出される。
【００１６】
図２は，ライブマイグレーション処理のフローチャート図である。また，図３、図４、図５は，ライブマイグレーション処理の概略を説明する図である。図３〜５を参照しながら，図２に示したライブマイグレーションの処理の概略を説明する。
【００１７】
まず、移行元のハイパーバイザHV_Sは、図示しない管理サーバからのライブマイグレーションの要求に応答して，ライブマイグレーション処理を実行する。ライブマイグレーション要求には、移行元物理マシンと移行元仮想マシンを特定する情報（例えばＩＰアドレス）と，移行先物理マシンと移行先仮想マシンを特定する情報を有する。若しくは、ライブマイグレーション要求には、移行先物理マシンは任意の物理マシンでよいことを許容する場合もある。
【００１８】
図３に示すとおり、移行元ハイパーバイザHV_Sは，移行先物理マシンの移行先ハイパーバイザHV_Dに、メモリ内に移行先仮想マシンに割り当てるメモリ領域22Bを確保させ、移行元仮想マシンVMB_Sのメモリ領域12B内のデータを，移行先仮想マシンVMB_Dのメモリ領域22Bに転送しコピーする（S1）。
【００１９】
このメモリのデータの転送処理は，比較的長い処理時間を要する。そこで、転送元ハイパーバイザHV_Sは、メモリのデータ転送中に、メモリへの書込みが発生してデータが更新されたことを検知し、データが更新されたメモリページをダーティページとして記録する（S1）。
【００２０】
そして、メモリ領域12Bの全てのデータがメモリ領域22Bへ転送完了すると、移行元ハイパーバイザHV_Sは、移行元仮想マシンVMB_Sをサスペンド（一時停止）する(S2)。これにより，移行元仮想マシンVMB_Sの動作は停止し，メモリ12Bへの書き込みや，CPU内のレジスタ11Bの変更は発生しない。
【００２１】
図４に示すとおり，移行元仮想マシンをサスペンドした後，移行元ハイパーバイザHV_Sは，移行元仮想マシンのメモリ12B内のダーティページのデータとCPUのレジスタ11Bのデータを，移行先仮想マシンVMB_Dのメモリ領域22Bと移行先物理マシンPM_DのCPUのレジスタ21Bに転送する（S3）。
【００２２】
そして、図５に示すとおり、ダーティページのデータとCPUレジスタのデータの転送が完了すると、移行元ハイパーバイザHV_Sが移行先ハイパーバイザHV_Dに転送完了通知を行う。それに応答して、移行先ハイパーバイザHV_Dが、移行先物理マシンPM_D上で移行先仮想マシンVMB_Dを再開（リジューム）する（S4）。
【００２３】
このリジュームでは、通常のリジュームとは異なり、移行先仮想マシンVMB_Dのメモリ領域22B内にはデータがコピーされ復元済みであり、CPUのレジスタにもデータが復元されている。したがって、移行先ハイパーバイザHV_Dが、移行先仮想マシンVMB_Dの図示しないOSの動作を再開すると、OSの動作再開に伴って、業務アプリケーションも動作を再開する。さらに、移行先仮想マシンVMB_Dは、仮想マシンのイメージデータと一部退避データが記憶されているハードディスクHDDにアクセスできる状態にされる。
【００２４】
そして、最後に、移行元ハイパーバイザHV_Sは、移行元仮想マシンVMB_Sを削除する（S5）。これにより、移行元仮想マシンVMB_Sのメモリ領域12Bは開放され、CPU内のレジスタのデータもリセットされる。以上で、ライブマイグレーションが終了する。
【００２５】
上記のダーティページのデータとCPUのレジスタのデータを転送する工程S3の間、移行元仮想マシンVMB_Sも移行先仮想マシンVMB_Dも動作停止中になり、仮想マシンで構成される仮想システムの業務アプリケーションの動作が停止する。したがって、ライブマイグレーション処理において、工程S3のダーティページの転送時間を短くすることが望ましい。
【００２６】
［本実施の形態におけるライブマイグレーション］
図６は、図１に示した移行元物理マシンと移行先物理マシンの構成を示す図である。移行元物理マシンPM_Sは、CPU（Central Processing Unit）であるプロセッサ１０と、メインメモリ１２と、NIC（Network Interface Card）のような通信インターフェース１４と、大容量の補助メモリ１６とを有し、それらは内部のバス１８を介して互いにアクセス可能にされる。補助メモリ１６は、移行元のハイパーバイザHV_Sや図示しないホストOSのような基盤ソフトウエア等を記憶する。
【００２７】
同様に、移行先物理マシンPM_Dは、CPUであるプロセッサ２０と、メインメモリ２２と、通信インターフェース２４と、大容量の補助メモリ２６とを有し、それらは内部のバス２８を介して互いにアクセス可能にされる。補助メモリ２６は、移行先のハイパーバイザHV_Dや図示しないホストOSのような基盤ソフトウエア等を記憶する。
【００２８】
移行元物理マシンと移行先物理マシンとは、インターネット、イントラネット、LANなどのネットワークNWを介して、互いに通信可能にされる。そして、ネットワークNWには、移行元物理マシンPM_S上で動作する仮想マシンVMB_Sのイメージファイル３０及び仮想マシンVMAのイメージファイル３２と、移行先物理マシンPM_D上で動作する仮想マシンVMCのイメージファイル３４とが通信可能に接続されている。
【００２９】
仮想マシンVMB_Sのイメージファイル３０は、例えば、仮想マシンのコンフィグレーション情報（仮想マシンに割り当てられるCPU使用率、メモリ量、帯域などの情報）を有するコンフォグレーションファイルCFG_FLと、ゲストOSと、アプリケーションAP_A,AP_Bなどを含む。仮想マシンVMA,VMCのイメージファイル３２，３４も同様である。これらのイメージファイルは、ハードディスクやSSD等の大容量のストレージに記憶される。
【００３０】
図７は、図２の非優先度送信と本実施の形態における優先度送信のライブマイグレーションのタイミングチャートを示す図である。また、図８は、本実施の形態におけるライブマイグレーションにおける送信元と送信先の物理マシンの動作を示すフローチャート図である。
【００３１】
図７には、図２の非優先度送信のタイミングチャートが記載されている。これによると、時刻t0で、移行元ハイパーバイザが、移行元物理マシンから移行元仮想マシンのメモリのデータを移行先物理マシンに転送し、移行先物理マシンがそのメモリのデータを受信する。メモリのデータには、移行元仮想マシンの例えばゲストOSとアプリケーションA,Bが使用するデータと共に、メモリ内に展開されたゲストOSとアプリケーションA,Bが含まれる。このメモリのデータの転送中、移行元仮想マシンのOS、アプリケーションA,Bは動作を継続する。したがって、それらが使用するメモリ領域にはデータの更新（書込み）が発生し、ダーティページが生成される。
【００３２】
時刻t1で、移行元ハイパーバイザが移行元仮想マシンをサスペンドし、そのゲストOS,アプリケーションA,Bは動作を停止する。それと共に、移行元ハイパーバイザが、メモリのデータ転送中に発生したダーティページのデータを移行元物理マシンのメモリから移行先のメモリに送信し、移行先物理マシンがそのダーティページのデータを受信する。このダーティページは、移行元仮想マシンのゲストOSとアプリケーションA,Bが使用していた更新されたデータを含む。
【００３３】
そして、全てのダーティページの転送が完了すると、時刻t4で、移行先ハイパーバイザが移行先仮想マシンをリジューム（再開）する。
【００３４】
次に、図７、図８を参照して、本実施の形態のライブマイグレーションの処理を説明する。本実施の形態におけるライブマイグレーションでは、移行元ハイパーバイザがダーティページの転送を優先度順に実行する。例えば、最も優先度が高いのは、移行元仮想マシンのゲストOSが使用するメモリ領域内のダーティページである。したがって、時刻t1で、移行元ハイパーバイザはゲストOSのダーティページのデータを移行先に最初に転送する。さらに、複数の業務アプリケーションが使用するメモリ領域のダーティページについては、業務アプリケーションAP_A,AP_Bの優先度が高い順に転送する。
【００３５】
さらに、移行先ハイパーバイザは、時刻t2でゲストOSのダーティページのデータの転送が完了すると、移行先仮想マシンをリジューム（再開）する。この時点では、業務アプリケーションAP_A,AP_Bのダーティページのデータの転送は未完了の状態である。そして、時刻t2でゲストOSのダーティページのデータ転送が完了しているので、ゲストOSはそのメモリ領域にアクセスすることができる。したがって、移行先仮想マシンのリジュームにより、そのゲストOSは動作を完全に再開し、それに伴い業務アプリケーションの動作も再開する。
【００３６】
但し、業務アプリケーションのダーティページのデータの転送が完了するまでの間（AP_Aは時刻t2-t3の間、AP_Bは時刻t2-t4の間）、業務アプリケーションによる転送未完了のダーティページへのアクセスは失敗してアクセスリトライを繰り返す。そして、アクセス対象のダーティページのデータ転送が完了するまで、業務アプリケーションはそのダーティページへのアクセスについては待たされる。したがって、転送先仮想マシンにおいて、時刻t2からゲストOSの動作は完全に再開し、業務アプリケーションAP_A,AP_Bの動作はダーティページへのアクセスを除いて再開する。また、ダーティページへのアクセスは、データ転送が終了したダーティページから順番にアクセスが再開する。やがてダーティページのデータ転送が完了すれば、業務アプリケーションAP_Aは時刻t3以降、AP_Bは時刻t4以降から、それぞれの業務アプリケーションの動作は完全に再開する。
【００３７】
図８のフローチャートに基づいて再度説明すると、移行元仮想マシンVM_Sでは、移行元仮想マシンのユーザが、業務アプリケーションのプロセスの優先度を登録する（S10）。この登録は、例えば、ユーザ端末から移行元仮想マシンのゲストOSからコマンドラインインタフェースにより行われる。そして、ゲストOSから移行元ハイパーバイザに通知され、移行元ハイパーバイザは自分のメモリ領域に記憶する。
【００３８】
図９は、優先度とプロセスID管理テーブルの一例を示す図である。図９のテーブル例には、プログラムであるゲストOSと業務アプリケーションAP_A,AP_Bに対する優先度と、プロセスIDとの対応が示される。ここで優先度は業務アプリケーションの優先度である。この優先度とプロセスID管理テーブルは、移行元ハイパーバイザが使用するメモリ領域（ハイパーバイザメモリ）内に記憶されるとともに、移行先のハイパーバイザにも転送され、同様にハイパーバイザメモリ内に記憶される。
【００３９】
次に、移行元ハイパーバイザは、移行先物理マシンのハイパーバイザに移行先仮想マシンのメモリ領域の割り当てを行わせると共に、移行元仮想マシンに割り当てられたメモリ領域のデータを移行先仮想マシンのメモリ領域に転送する（S11）。そして、移行元ハイパーバイザは、メモリのデータ転送中に、移行元仮想マシンのメモリ領域へのライトアクセスを検出し、ライトによりデータ更新されたダーティページと、データを更新したプロセスIDを記録する（S11）。プロセスIDは、例えばゲストOS,業務アプリケーションのプロセスのIDである。このプロセスIDとダーティページの記録は、メモリページ管理テーブルとダーティページリストに行われる。この記録に基づいて、後述するとおり、移行元ハイパーバイザは、ダーティページのデータを、所定の順番で移行先に転送する。
【００４０】
図１０は、メモリページ管理テーブルの例を示す図である。メインメモリは、所定のサイズの複数のページで構成される。メモリページ管理テーブルには、各ページにアクセス、特にライトアクセスしてきたプロセスIDが記録される。図９の優先度及びプロセスID管理テーブルに登録されるとおり、ゲストOSのプロセスはプロセスIDがID=0である。また、業務アプリケーションAP_A,AP_BのプロセスはそれぞれID=1,2、ID_3,4,5である。業務アプリケーションのプロセスIDはユーザ毎に異なる。図１０のメモリページ管理テーブルには、各メモリページにアクセスするプロセスIDが記録されている。
【００４１】
図１１は、ダーティページリストの例を示す図である。図１１には、移行元ハイパーバイザがHVメモリに記録するリスト（左側）と、移行先ハイパーバイザがHVメモリに記録するリスト(右側)とが示される。移行元ハイパーバイザは、左側のリストにあるとおり、メモリのデータ転送中にメモリへの書込み要求を検出し、書込み要求先のメモリページにダーティビット「１」（データ更新がされたページを意味する）を記録する。
【００４２】
メモリページ管理テーブルとダーティページリストは、移行元ハイパーバイザと移行先ハイパーバイザのメモリに記憶される。これらを参照することで、移行元及び移行先仮想マシンが使用するメモリ領域内のメモリページについて、ダーティページであるか否かと、OS,業務アプリケーションのいずれが使用しているかが判明する。
【００４３】
図８に戻り、移行元仮想マシンのメモリ領域の全データ転送が完了すると、移行元ハイパーバイザは、移行元仮想マシンVMB_Sをサスペンド（一時停止）する（S12）。これにより、移行元仮想マシンのゲストOS、業務アプリケーションAP_A,AP_Bの動作は停止する。
【００４４】
サスペンドに続いて、移行元ハイパーバイザは、移行元仮想マシンのゲストOSのプロセスが更新したダーティページ（ゲストOSが使用するメモリ領域内でメモリのデータ転送中に更新されたページ）のデータを、移行先仮想メモリのメモリ領域に転送する（S13）。転送対象のOSのダーティページは、図９、図１０のメモリページ管理テーブルとダーティページリストを参照して検出可能である。また、OSのダーティページの転送が行われるたびに、ダーティページリストのダーティフラグが「０」（転送済でもはやダーティページではないことを意味する）に変更される。この間、移行元仮想マシンは動作を停止し、移行元仮想マシンを有する情報処理システムは動作を停止する。
【００４５】
ゲストOSのダーティページのデータ転送が終了すると（S14のYES）、移行元ハイパーバイザが、OSのダーティページの転送完了通知とダーティページリストを、移行先ハイパーバイザに転送する（S15）。それと共に、移行元ハイパーバイザは、移行元仮想マシンのメモリ領域の業務アプリケーションのダーティページを、優先度順に移行先仮想マシンのメモリ領域に転送する（S16）。そして、全てのダーティページの転送が完了すると、移行元ハイパーバイザは移行元仮想マシンを削除する（S17）。
【００４６】
一方、移行先ハイパーバイザHV_Dは、ゲストOSのダーティページのデータ転送完了通知の受信前または受信時に、移行先仮想マシンのメモリ制御ユニット（MMU: Memory Management Unit）のアドレス変換テーブルをフラッシュ（リセット）する。これは、新たに仮想マシンを起動または再開する前に行われる処理である。本実施の形態では、MMUのアドレス変換テーブルがフラッシュされることを利用して、移行先仮想マシンをリジュームした後、未転送のダーティページへのアクセスを失敗させるようにする。詳細は後述する。
【００４７】
移行先ハイパーバイザHV_Dは、ゲストOSのダーティページのデータ転送完了通知を受信すると（S15）、同時に受信したダーティページリストを、移行先ハイパーバイザのメモリに記録する。そして、移行先ハイパーバイザは、移行先仮想マシンVMB_Dをリジュームする（S19）。これにより仮想先仮想マシンのゲストOSが動作を再開し、それに伴い業務アプリケーションAP_A,AP_Bの動作もダーティページへのアクセスは不完全ではあるが再開する。
【００４８】
図１２は、移行先仮想マシンVMB_Dがリジュームされるときのメモリの状態を示す図である。移行先仮想マシンがリジュームされるとき、移行先仮想マシンのメモリには、OS使用領域にはダーティページも含めて全てのデータが移行元仮想マシンのメモリと同じ状態になっている。一方、移行先仮想マシンのメモリの業務アプリケーションAP_A,AP_Bの使用領域には、メモリのデータ転送は完了したがダーティページのデータ転送は完了していない。したがって、業務アプリケーションAP_A,AP_Bの使用領域には、ダーティページのデータが未転送のメモリページ（図中D）が残っている。また、移行元仮想マシンのイメージファイルが記録されているストレージHDDは、移行先ハイパーバイザからアクセス可能に変更されている。
【００４９】
この状態で、移行先ハイパーバイザが移行先仮想マシンをリジュームすると、そのゲストOSは、メモリ内のデータを使用して移行元仮想マシンでの動作をほぼ完全に再開する。ゲストOSが動作を再開することに伴い、業務アプリケーションAP_A,AP_Bの動作も再開する。但し、それらが使用するメモリ領域には、データ未転送のダーティページが存在する。したがって、本実施の形態では、移行先ハイパーバイザは、MMUの機能を利用して、データ未転送のダーティページへのアクセスを失敗させ、データ転送完了後にその元ダーティページへのアクセスを成功させるよう制御する。
【００５０】
図８に再度戻り、移行先仮想マシンがリジュームされると（S19）、その後、最初にデータ未転送のダーティページへのメモリアクセスが発生すると（S20）、MMU内のアドレス変換テーブルがフラッシュされていて、アドレス変換テーブル内に変換先の物理アドレスが未登録であることを理由に、MMUはページフォルトを出力する（S21）。このページフォルトは、アドレス変換テーブルを管理する移行先ハイパーバイザに出力され、更に移行先ハイパーバイザがメモリアクセスしたゲストOSに出力する。これに対して、ゲストOSは、ページフォルトされたページについてのアドレス変換テーブルへの登録要求を、移行先ハイパーバイザに出力する（S22）。
【００５１】
これに応答して、移行先ハイパーバイザは、ダーティページリストを参照して、ダーティページが転送済みの場合はMMUのアドレス変換テーブルに物理アドレスを登録して登録完了通知を出力する（S23）。この処理により、その後のゲストOSからの元ダーティページへのアクセスに対して、MMUはアドレス変換を実行し、アクセスが許可される。
【００５２】
一方、ダーティページが未転送の場合は、移行先ハイパーバイザは、アドレス変換テーブルに物理アドレスの登録を行わずに登録完了通知をゲストOSに返信する。この処理により、その後のゲストOSからの未転送ダーティページへのメモリアクセス（S20）に応答して、MMUは再度ページフォルトを出力する（S21）。この処理S20,S21がダーティページの転送が完了するまで繰り返されることで、業務アプリケーションからの未転送のダーティページへのメモリアクセスが失敗を繰り返す。
【００５３】
業務アプリケーションのダーティページのデータ転送を受信すると、移行先ハイパーバイザは、ダーティページリストのダーティビットを「０」に変更する。図１１に示したメモリページ「２」のダーティビットの「１」から「０」への変更のとおりである。したがって、ダーティページのデータ転送が順次行われるにしたがい、優先度の高い業務アプリケーションAP_Aの元ダーティページへのメモリアクセスに応答してMMUのアドレス変換テーブルへの登録が進み、業務アプリケーションAP_Aの動作はやがて完全なものになっていく。また、業務アプリケーションAP_Aのダーティページを業務アプリケーションAP_Bよりも先にデータ転送するので、優先度の高い業務アプリケーションAP_Bの不完全な動作状態は短くなる。
【００５４】
図１３は、本実施の形態におけるMMUとOSとハイパーバイザとの関係を示す図である。図１７中の破線は、移行元物理マシンPM_Sと移行先物理マシンPM_Dである。いずれの物理マシンも、仮想マシンVM_S,VM_DのOSと、MMUと、メモリ（メインメモリ）と、ハイパーバイザHV_S,HV_Dとを有し、それぞれの物理マシンPM_S,PM_Dは通信インターフェースとネットワークNWを介して通信可能に接続される。両ハイパーバイザは、それぞれのメインメモリにハイパーバイザが使用するメモリ領域（HVメモリ）を保持している。
【００５５】
MMUは、例えば、仮想アドレスを物理アドレスに変換するアドレス変換機能や、メモリへの書込みを禁止するメモリ保護機能などを有する。アドレス変換機能については、移行元、移行先に関わらず、仮想マシンのゲストOSがメモリアクセスを行うと、そのメモリアクセスがMMUに入力され、MMUがアクセス先の仮想アドレスをメインメモリの物理アドレスに変換し、物理アドレスでメインメモリにアクセスされる。この場合、仮想アドレスに対して物理アドレスが未登録の場合、MMUはページフォルトをハイパーバイザ経由でOSに通知する。この通知に応答して、OSはその仮想アドレスに対する物理アドレスの登録をハイパーバイザに要求する。ハイパーバイザは、仮想マシンに対するメインメモリの割り当てを管理しているので、登録要求に応答して、仮想アドレスに対する物理アドレスを登録して登録完了通知をOSに返信する。その後、OSが再度同じ仮想アドレスにアクセスすると、MMUは物理アドレスに変換して、メインメモリへのアクセスを許可する。
【００５６】
本実施の形態では、移行先ハイパーバイザが、ダーティページのデータ転送を監視し、物理アドレスの登録要求に対して、ダーティページが転送済みの場合は登録を実施し、未転送の場合は登録をせずに登録完了通知を出力する。これにより、ダーティページが未転送のメモリページに対するメモリアクセスをMMUのページフォルトの機能を利用して失敗させることができる。また、ダーティページが転送済みになった後は、転送先ハイパーバイザが、OSからの物理アドレス登録要求に応答してMMUへの物理アドレスの登録を行うので、その後の転送済みダーティページへのメモリアクセスを成功させることができる。
【００５７】
一方、メモリ保護機能については、ハイパーバイザがMMUに対して仮想マシンが使用するメモリ領域への書込みを禁止するプロテクションを設定すると、OSから書き込み要求が発生すると、MMUが設定されているプロテクションに基づいてページフォルトを出力する。このページフォルトに応答して、ハイパーバイザは、ダーティページリストのダーティビットを更新済みの「１」に変更し、MMUに対してそのメモリページのプロテクションを解除する。その後、再度OSが同じメモリページに書き込み要求を発行すると、プロテクションが解除されているので、MMUはページフォルトを出力しない。その結果、そのメモリページへの書込みが実行される。この機能により、ハイパーバイザは、メモリのデータ転送中のダーティページの発生を検出し且つダーティページリストのダーティビットに記録することができる。
【００５８】
図１４は、MMU内のアドレス変換テーブルと、OSとハイパーバイザが管理するMMU管理テーブルの関係を示す図である。仮想マシンを生成する仮想化システムにおいて、MMU内のアドレス変換テーブルは、OSのMMU管理テーブルとハイパーバイザのMMU管理テーブルとによって生成される。
【００５９】
一般に仮想アドレスの下位ビットは仮想アドレスから物理アドレスに変換されても変化しないが、仮想アドレスの上位ビットは物理アドレスに変換される。したがって、図１８には、仮想アドレスや物理アドレスの上位ビットの対応が示される。
【００６０】
まず、OSが管理するMMU管理テーブルMMU_T1は、アプリケーションのメモリ要求のアクセス先アドレスである仮想アドレスV_ADと、それに対するリアルアドレスR_ADとを対比して記憶する。また、OS管理のMMU管理テーブルMMU_T1は、アプリケーションAP_A, AP_B毎に、仮想アドレスV_ADとリアルアドレスR_ADとの対応を記憶する。
【００６１】
一方、ハイパーバイザHVが管理するMMU管理テーブルMMU_T2は、仮想マシンVM_0, VM_1毎に、リアルアドレスR_ADと物理アドレスP_ADとの対応を記録する。ハイパーバイザHVは、物理マシン上に生成される仮想マシンのメモリ領域を管理する。その理由は、ある仮想マシンVM_0が他の仮想マシンVM_1のメモリのデータにアクセスできないようにするためである。したがって、ハイパーバイザは新規に仮想マシンを起動する場合や、移行先ハイパーバイザとして移行先仮想マシンをリジュームする場合、MMU管理テーブルMMU_T2内の物理アドレスP_ADを新たに登録する。
【００６２】
一方、MMU内のアドレス変換テーブルADD_Cは、アプリケーションAP_A,AP_Bの仮想アドレスV_ADと物理アドレスP_ADの対応が記憶される。MMUのアドレス変換テーブルADD_Cは、例えば、メインメモリに格納され、その一部がトランスレーション・ルックアサイド・バッファTLBとしてキャッシュユニット内に格納される。
【００６３】
以上のように、ハイパーバイザは、MMUのアドレス変換テーブルの物理アドレスの登録を制御する機能を有する。本実施の形態では、この機能を利用して、移行先仮想マシンが再開した直後のアプリケーションによるデータ未転送中のダーティページへのアクセスを失敗させ、データ転送後にそのアクセスを成功させるようにする。
【００６４】
［ライブマイグレーションの詳細］
図１５−１８は、本実施の形態のライブマイグレーションの詳細を示すシーケンスチャート図である。図８のフローチャートの工程番号S10-S23を参照しながらライブマイグレーションの詳細を説明する。
【００６５】
図１５において、ライブマイグレーションの準備工程として、ユーザは、移行元仮想マシンVM_SのOSのコマンドラインインタフェースから優先度の高いアプリケーションのプロセスを登録する（S10）。これに応答して、OSは、移行元ハイパーバイザに高優先度のプロセスIDを通知し、ハイパーバイザメモリの優先度及びプロセスID管理テーブル（図９）に記憶させる。
【００６６】
また、仮想マシンを別の物理マシンに移行させる場合、移行元ハイパーバイザHV_Sは、移行先ハイパーバイザHV_Dに優先度及びプロセスID管理テーブルを転送しハイパーバイザメモリに記憶させる（S10_1）。
【００６７】
さらに、ライブマイグレーションの場合、移行元ハイパーバイザは、移行元仮想マシンが使用するメモリ領域のメモリページ管理テーブルを移行先ハイパーバイザに送信し、移行先ハイパーバイザに移行先仮想マシンが使用するメモリ領域を確保させる。
【００６８】
次に、移行元ハイパーバイザHV_Sは、移行元仮想マシンが使用するメモリ領域の全てのメモリページのデータを、移行先物理マシンの移行先仮想マシンに割り当てられたメモリに転送開始する（S11）。それと共にまたはその前に、移行元ハイパーバイザHV_Sは、MMUに移行元仮想マシンの全メモリ領域に対してライトプロテクションを設定する（S11_1）。
【００６９】
その結果、メモリのデータ転送中（S11）に、移行元仮想マシンのOSからライト要求がMMUに出力されると（S11_2）、MMUはライトプロテクションの設定に基づきページフォルトPFを移行元ハイパーバイザに出力する。これにより移行元ハイパーバイザは、メモリへのライト要求があったことを検出し、ダーティページリスト内のライト先のメモリページのダーティビットを「１」（更新有）に記録する（S11_3）。同時に、メモリページ管理テーブル(図１０)にライト要求元のプロセスIDを記録する。
【００７０】
そして、移行元ハイパーバイザは、MMUにライト要求のメモリページについてのライトプロテクトの設定を解除するよう要求し、ライト要求したOSにページフォルトPFを出力する（S11_4）。この結果、OSが再度ライト要求を出力すると（S11_5）、MMUはアドレス変換をしてメモリにライト要求を出力する（S11_6）。これによりライトが実行されデータ更新され、ダーティページが生成される。
【００７１】
上記のライトプロテクト設定S11_1からメモリへのライト要求S11_6までの一連の処理S50により、移行元ハイパーバイザは、移行元仮想マシンのメモリへの書込みを検出し、書込みにより更新されたダーティページとライト要求元のプロセスIDとを、ダーティページリストとメモリページ管理テーブルとに記録することができる。
【００７２】
次に、移行元ハイパーバイザは、移行元仮想マシンのメモリ領域の全メモリページのデータ転送が完了すると（S11_7）、移行元仮想マシンVM_Sをサスペンドする（S12）。
【００７３】
図１６に移り、移行元ハイパーバイザHV_Sは、移行元仮想マシンのゲストOSが使用するメモリ領域内のダーティページのデータ転送を開始する（S13）。移行元ハイパーバイザは、前述のメモリページ管理テーブル(図１０)内のOSのプロセスID（ID=0）のページであり、且つ、ダーティページリスト（図１１）内のダーティフラグが「１」のページを抽出し、そのページのデータを移行先仮想マシンのメモリ領域に転送を開始する。移行元ハイパーバイザは、ダーティページのデータ転送が完了すると、ダーティページリスト内の対応するダーティフラグを「０」（転送済み）に変更する。
【００７４】
OSのダーティページのデータ転送が完了すると、移行元ハイパーバイザは、OSのダーティページ転送完了通知を、ダーティページリストを添付して、移行先ハイパーバイザHV_Dに転送し（S15）、そのハイパーバイザメモリ内に記憶させる（S15_1）。
【００７５】
次に、移行先ハイパーバイザHV_Dは、MMU内のアドレス変換テーブルの物理アドレスをフラッシュし、アドレス変換テーブル内の移行先仮想マシンの物理アドレスについて全て未登録状態にする（S18）。そして、移行先ハイパーバイザは、移行先仮想マシンVM_Dをリジュームする（S19）。これにより、移行先仮想マシンのゲストOSが動作を再開し、それに伴い、業務アプリケーションAP_A,AP_Bも動作を再開する。
【００７６】
一方、転送元ハイパーバイザHV_Sは、優先度順に業務アプリケーションが使用するメモリ領域内のダーティページのデータ転送を開始する（S16）。仮に、業務アプリケーションAP_AがAP_Bより優先度が高いと設定されていると、転送元ハイパーバイザHV_Sは、優先度の高い業務アプリケーションAP_Aのダーティページから先にデータ転送を開始する。
【００７７】
図１７は、アプリケーションのダーティページが優先度順にデータ転送されている間の、OSによるOS使用メモリ領域へのメモリ要求の処理S40を示す。まず、転送先ハイパーバイザHV_Dは、アプリケーションのダーティページの転送が完了するたびに、ダーティページリストの転送完了したページのダーティフラグを「０」（転送済み）に変更する（S30）。
【００７８】
そして、転送先仮想マシンで、ゲストOSがメモリ要求をMMUに出力すると（S31）、アドレス変換テーブルにメモリ要求の仮想アドレスに対応する物理アドレスが未登録であるため（S32）、MMUはページフォルトPFをハイパーバイザHV_Dに出力し、ページフォルトPFがOSに転送される。そこで、OSがハイパーバイザHV_Dに物理アドレスの登録要求を出力すると（S33）、ダーティページリストではOS使用メモリ領域の全てのメモリページはダーティフラグが「０」（転送済み）であるので、ハイパーバイザは、MMUにメモリ要求の仮想アドレスに対応する物理アドレスを登録する（S34,S35）。そして、ハイパーバイザは、OSに対して登録完了を返信する（S36）。
【００７９】
その後、OSが再度同じページに対してメモリ要求をMMUに出力すると（S37）、MMUはアドレス変換し、変換された物理アドレスによりメモリにアクセスが実行される（S38）。その結果、OSは、メモリからデータ応答を受信する（S39）。
【００８０】
以上のとおり、OSは、最初のメモリ要求でページフォルトが発生するが、MMUのアドレス変換テーブルへの登録がその後行われ、その後のメモリ要求が失敗することはない。よって、OSは完全に動作を再開する。
【００８１】
図１８は、アプリケーションのダーティページが優先度順にデータ転送されている間の、アプリケーションによるメモリ領域へのメモリ要求の処理S42,S43を示す。ここでも、転送先ハイパーバイザHV_Dは、ダーティページの転送が完了するたびに、ダーティページリストのダーティフラグを「０」（転送済み）に変更する（S30）。
【００８２】
そして、転送先仮想マシンで、アプリケーションがメモリ要求を発行すると（S20_1）、OSがそのメモリ要求をMMUに出力する（S20_2）。最初はMMU内のアドレス変換テーブル内の物理アドレスは未登録であるので、MMUはページフォルトPFをハイパーバイザHV_Dに出力し、さらにそのPFがOSに転送される（S21）。
【００８３】
そこで、OSがハイパーバイザHV_Dに物理アドレスの登録要求を出力すると（S22）、ハイパーバイザは、メモリ要求のメモリページのダーティビットがデータ未転送なら、物理アドレスの登録をせず（S23_1）、OSに登録完了を返信する（S23_2）。この結果、上記のアプリケーションによるメモリ要求（S20_1）から登録完了（S23_2）までの処理S42が、ダーティページが未転送の間繰り返され、ページフォルトによりメモリ要求は失敗する。
【００８４】
一方、ハイパーバイザは、メモリ要求のメモリページのダーティページが転送済みなら、MMUに物理アドレスの登録を行い（S23_3,S23_4）、OSに登録完了を返信する（S23_5）。この結果、その後のアプリケーションからのメモリ要求がOSを介してMMUに出力されると（S20_3）、MMUはアドレス変換を行い、メモリへのアクセスが実行され（S20_4）、OSはメモリからのデータ応答を受信する（S20_5）。このようにダーティページのデータ転送が完了すると、そのページへのアクセスが成功する（S43）。したがって、業務アプリケーションAP_A,AP_Bの再開後の動作は、ダーティページのデータ転送が未完了の間はそのページへのメモリアクセスが失敗するという不完全な動作であるが、ダーティページのデータ転送が進むにつれて、完全な動作に移行する。
【００８５】
上記のとおり、本実施の形態のライブマイグレーションでは、移行元仮想マシンをサスペンド後にダーティページのデータ転送を、OSを最初に行い、その後業務アプリケーションについては優先度に従って行う。さらに、OSのメモリのダーティページのデータ転送が完了した時点で、移行先仮想マシンをリジュームする。これにより、移行元仮想マシンのサスペンドから移行先仮想マシンのリジュームまでの時間を短くできる。さらに、移行先仮想マシンのリジューム後のアプリケーションの動作再開後は、一時的に業務アプリケーションによるダーティページへのメモリ要求が失敗するが、ダーティページのデータ転送が完了するにしたがい、業務アプリケーションによるメモリ要求の失敗の確率が低下する。したがって、アプリケーションのダーティページのデータ転送がすべて完了した後に移行先仮想マシンをリジュームするより、アプリケーションの動作開始を早めることができる。
【００８６】
上記の実施の形態では、移行先仮想マシンのリジューム後のデータ未転送のダーティページへのメモリ要求をMMUの物理アドレスの登録を利用して失敗させた。しかし、MMUの物理アドレスの登録を利用する代わりに、OS内にアプリケーションによるメモリ要求を検出して移行先ハイパーバイザに通知する機能を設けて、移行先ハイパーバイザがデータ転送未完了のダーティページへのメモリ要求を失敗するようにしてもよい。
【００８７】
以上の実施の形態をまとめると，次の付記のとおりである。
【００８８】
（付記１）
それぞれメモリを有し、仮想マシンを起動可能な複数の物理マシンを有する情報処理システムにおいて、
前記複数の物理マシンのうち、移行元仮想マシンが動作する移行元物理マシンは、
前記移行元仮想マシンの第１のメモリのデータを、前記複数の物理マシンのうち、移行先物理マシンのメモリに転送し、
前記第１のメモリのデータの転送完了後に、前記移行元仮想マシンを停止し、
その後、前記移行元仮想マシンのオペレーティングシステム（以下OSと称する）が使用するメモリ内のページであり、前記第１のメモリのデータの転送中に更新された前記OSの更新ページのデータを先の順番で、前記移行元仮想マシンの第１のアプリケーションが使用するメモリ内の第１の更新ページのデータを次の順番で、前記移行先物理マシンのメモリに転送し、
前記移行先物理マシンは、
前記OSの更新ページのデータ転送が完了すると、前記移行先物理マシン上で移行先仮想マシンの動作を再開して、前記OSの動作及び前記第１のアプリケーションの動作を再開し、
前記第１の更新ページのデータ転送が完了するまで前記第１の更新ページへのメモリアクセスを実行しない、情報処理システム。
【００８９】
（付記２）
前記移行元物理マシンは、
さらに、前記第１のアプリケーションより優先度が低い第２のアプリケーションが使用するメモリ内の第２の更新ページを、前記第１の更新ページの次の順番で、前記移行先物理マシンのメモリに転送し、
前記移行先物理マシンは、
前記OSの動作を再開するときに、前記第１のアプリケーションの動作の再開と共に前記第２のアプリケーションの動作を再開し、
前記第２の更新ページの転送が完了するまで前記第２の更新ページへのメモリアクセスを実行しない、付記１に記載の情報処理システム。
【００９０】
（付記３）
前記移行先物理マシンは、前記移行先仮想マシンによるメモリアクセスの仮想アドレスを物理アドレスに変換するメモリ制御ユニットを有し、
前記移行先物理マシンは、
前記OSの更新ページのデータ転送が完了すると、前記メモリ制御ユニットのアドレス変換テーブルをリセットし、
前記第１の更新ページのデータ転送が完了した後に、当該第１の更新ページのアドレス変換情報を前記アドレス変換テーブルに登録し、
前記メモリ制御ユニットは、前記メモリアクセス先の第１の更新ページのアドレス変換情報が前記アドレス変換テーブルに未登録の場合アドレス変換せずに前記メモリアクセスを失敗させ、登録済みの場合アドレス変換して前記メモリアクセスを成功させる、付記１に記載の情報処理システム。
【００９１】
（付記４）
前記移行元物理マシンは、
前記第１のメモリのデータを転送中に、前記第１のメモリへのライトアクセスが発生すると、第１の管理テーブルに、前記ライトアクセスの発生元識別情報を、前記OSか前記第１のアプリケーションかを区別して、ライトアクセス先のページに関連つけて記録し、第２の管理テーブルに、更新されたことを前記ライトアクセス先のページに関連つけて記録し、
前記OSの更新ページと前記第１の更新ページの前記移行先物理マシンのメモリへのデータ転送を、前記第１の管理テーブルと前記第２の管理テーブルとを参照して実行する、付記１に記載の情報処理システム。
【００９２】
（付記５）
前記移行元物理マシンは、
前記第２の管理テーブルを、前記第１の更新ページの前記移行先物理マシンのメモリへのデータ転送を開始するまでに前記移行先物理マシンに転送し、
前記移行先物理マシンは、
前記第１の更新ページのデータ転送が完了するたびに、前記第２の管理テーブルにデータ転送済の第１の更新ページを記録し、
前記第１の更新ページのデータ転送済記録に基づいて、前記第１の更新ページへのメモリアクセスを成功させるか否か制御する、付記４に記載の情報処理システム。
【００９３】
（付記６）
前記移行元物理マシンは、
前記第１及び第２のアプリケーションの優先度設定に応答して、前記優先度情報を記憶し、
前記優先度情報を前記移行先物理マシンに転送する、付記２に記載の情報処理システム。
【００９４】
（付記７）
前記移行元物理マシンは、
前記移行元仮想マシンの第１のメモリ内の複数のページのうち、前記OSが使用するページと、前記第１及び第２のアプリケーションが使用するページをそれぞれ区別して記憶する、付記６に記載の情報処理システム。
【００９５】
（付記８）
それぞれメモリを有し、仮想マシンを起動可能な複数の物理マシンを有する情報処理システムを制御する処理をコンピュータに実行させる制御プログラムであって、
前記処理は、
前記複数の物理マシンのうち、移行元仮想マシンが動作する移行元物理マシンでは、
前記移行元仮想マシンの第１のメモリのデータを、前記複数の物理マシンのうち、移行先物理マシンのメモリに転送し、
前記第１のメモリのデータの転送完了後に、前記移行元仮想マシンを停止し、
その後、前記移行元仮想マシンのオペレーティングシステム（以下OSと称する）が使用するメモリ内のページであり、前記第１のメモリのデータの転送中に更新された前記OSの更新ページのデータを先の順番で、前記移行元仮想マシンの第１のアプリケーションが使用するメモリ内の第１の更新ページのデータを次の順番で、前記移行先物理マシンのメモリに転送し、
前記移行先物理マシンでは、
前記OSの更新ページのデータ転送が完了すると、前記移行先物理マシン上で移行先仮想マシンの動作を再開して、前記OSの動作及び前記第１のアプリケーションの動作を再開し、
前記第１の更新ページのデータ転送が完了するまで前記第１の更新ページへのメモリアクセスを実行しない、
処理を有する情報処理システムの制御プログラム。
【００９６】
（付記９）
それぞれメモリを有し、仮想マシンを起動可能な複数の物理マシンを有する情報処理システムを制御する方法であって、
前記複数の物理マシンのうち、移行元仮想マシンが動作する移行元物理マシンでは、
前記移行元仮想マシンの第１のメモリのデータを、前記複数の物理マシンのうち、移行先物理マシンのメモリに転送し、
前記第１のメモリのデータの転送完了後に、前記移行元仮想マシンを停止し、
その後、前記移行元仮想マシンのオペレーティングシステム（以下OSと称する）が使用するメモリ内のページであり、前記第１のメモリのデータの転送中に更新された前記OSの更新ページのデータを先の順番で、前記移行元仮想マシンの第１のアプリケーションが使用するメモリ内の第１の更新ページのデータを次の順番で、前記移行先物理マシンのメモリに転送し、
前記移行先物理マシンでは、
前記OSの更新ページのデータ転送が完了すると、前記移行先物理マシン上で移行先仮想マシンの動作を再開して、前記OSの動作及び前記第１のアプリケーションの動作を再開し、
前記第１の更新ページのデータ転送が完了するまで前記第１の更新ページへのメモリアクセスを実行しない、
処理を有する情報処理システムの制御方法。
【符号の説明】
【００９７】
PM_S：移行元物理マシン
VMB_S：移行元仮想マシン
HV_S：移行元ハイパーバイザ
12A,12B：仮想マシンのメモリ領域
HDD：大容量ストレージ
PM_D：移行先物理マシン
VMB_D：移行先仮想マシン
HV_D：移行先ハイパーバイザ
22A,22B：仮想マシンのメモリ領域
OS:オペレーティングシステム
MMU：メモリ制御ユニット
ADD_C：アドレス変換テーブル
【図１】
2019016135.tif 000003
【図２】
2019016135.tif 000004
【図３】
2019016135.tif 000005
【図４】
2019016135.tif 000006
【図５】
2019016135.tif 000007
【図６】
2019016135.tif 000008
【図７】
2019016135.tif 000009
【図８】
2019016135.tif 000010
【図９】
2019016135.tif 000011
【図１０】
2019016135.tif 000012
【図１１】
2019016135.tif 000013
【図１２】
2019016135.tif 000014
【図１３】
2019016135.tif 000015
【図１４】
2019016135.tif 000016
【図１５】
2019016135.tif 000017
【図１６】
2019016135.tif 000018
【図１７】
2019016135.tif 000019
【図１８】
2019016135.tif 000020