(57)【要約】【課題】仮想マシン移動後の性能劣化を低減する。【解決手段】移行処理装置は、メモリアクセス情報格納部と、必要メモリデータ特定用情報格納部と、仮想マシンのメモリアクセスを調べ、メモリアクセス履歴を前記メモリアクセス情報格納部に格納し、前記メモリアクセス履歴に基づき前記仮想マシンの起動直後に前記仮想マシンがアクセスするメモリデータである必要メモリデータを特定するための情報として必要メモリデータ特定用情報を作成し、前記必要メモリデータ特定用情報格納部に格納し、前記仮想マシンの現在の時点でのメモリアクセス状況と必要メモリデータ特定用情報とから、必要メモリデータを特定し移動先に移動し、必要メモリデータの移動後、前記仮想マシンを前記移動先に移動する移行制御部とを含む。【選択図】      図１
2014052725.tif 000002
【特許請求の範囲】
【請求項１】
メモリアクセス情報格納部と、
必要メモリデータ特定用情報格納部と、
仮想マシンのメモリアクセスを調べ、メモリアクセス履歴を前記メモリアクセス情報格納部に格納し、
前記メモリアクセス履歴に基づき前記仮想マシンの起動直後に前記仮想マシンがアクセスするメモリデータである必要メモリデータを特定するための情報として必要メモリデータ特定用情報を作成し、前記必要メモリデータ特定用情報格納部に格納し、
前記仮想マシンの現在の時点でのメモリアクセス状況と必要メモリデータ特定用情報とから、必要メモリデータを特定し移動先に移動し、
必要メモリデータの移動後、前記仮想マシンを前記移動先に移動する移行制御部と、
を含むことを特徴とする移行処理装置。
【請求項２】
前記仮想マシンのメモリに対する参照データアドレスの推移である前記メモリアクセス履歴と前記仮想マシンの現在の時点からのメモリに対する参照データアドレスの推移とを比較し、必要メモリデータ特定用情報として類似情報を作成し、
前記類似情報を前記必要メモリデータ特定用情報格納部に格納し、
前記類似情報から最も類似している時点を選択し、
選択した時点から一定区間で前記仮想マシンに参照されるデータを必要メモリデータとして特定し、
特定した必要メモリデータを前記移動先に移動する前記移行制御部を含むことを特徴とする請求項１の移行処理装置。
【請求項３】
前記仮想マシンのメモリに対する参照データアドレスの推移である前記メモリアクセス履歴から、頂点の数が一定以上である区間を実行区間として設定し、最大頂点と最小頂点との間をメモリアドレス範囲とし、実行区間、メモリアドレス範囲を含むメモリアクセスパターンを必要メモリデータ特定用情報として作成し、
作成したメモリアクセスパターンを前記必要メモリデータ特定用情報格納部に格納し、
前記仮想マシンの現在の時点のメモリに対する参照データアドレスが前記メモリアクセスパターンに示されるメモリアドレス範囲に含まれる実行区間内で前記仮想マシンにより参照されるデータを必要メモリデータとして特定し、
特定した必要メモリデータを前記移動先に移動する前記移行制御部を含むことを特徴とする請求項１の移行処理装置。
【請求項４】
前記類似情報が、実行番号、類似候補点、および、類似度を含むことを特徴とする請求項２の移行処理装置。
【請求項５】
前記メモリアクセスパターンが、メモリアクセスパターン番号、実行区間、メモリアドレス範囲を含むことを特徴とする請求項３の移行処理装置。
【請求項６】
請求項１、２、３、４、または、５の前記移行処理装置、および、前記仮想マシンを備える第１のコンピュータと、
前記第１のコンピュータの前記移行処理装置から必要メモリデータ、前記仮想マシンを受け取る前記移動先である第２のコンピュータと、
を含むことを特徴とする情報処理システム。
【請求項７】
仮想マシンのメモリアクセスを調べ、メモリアクセス履歴をメモリアクセス情報格納部に格納する手順と、
前記メモリアクセス履歴に基づき前記仮想マシンの起動直後に前記仮想マシンがアクセスするメモリデータである必要メモリデータを特定するための情報として必要メモリデータ特定用情報を作成し、必要メモリデータ特定用情報格納部に格納する手順と、
前記仮想マシンの現在の時点でのメモリアクセス状況と必要メモリデータ特定用情報とから、必要メモリデータを特定し移動先に移動する手順と、
必要メモリデータの移動後、前記仮想マシンを前記移動先に移動する手順と、
を含むことを特徴とする移行処理方法。
【請求項８】
前記仮想マシンのメモリに対する参照データアドレスの推移である前記メモリアクセス履歴と前記仮想マシンの現在の時点からのメモリに対する参照データアドレスの推移とを比較し、必要メモリデータ特定用情報として類似情報を作成する手順と、
前記類似情報を前記必要メモリデータ特定用情報格納部に格納する手順と、
前記類似情報から最も類似している時点を選択する手順と、
選択した時点から一定区間で前記仮想マシンに参照されるデータを必要メモリデータとして特定する手順と、
特定した必要メモリデータを前記移動先に移動する手順と、
を含むことを特徴とする請求項７の移行処理方法。
【請求項９】
仮想マシンのメモリアクセスを調べ、メモリアクセス履歴をメモリアクセス情報格納部に格納する手順と、
前記メモリアクセス履歴に基づき前記仮想マシンの起動直後に前記仮想マシンがアクセスするメモリデータである必要メモリデータを特定するための情報として必要メモリデータ特定用情報を作成し、必要メモリデータ特定用情報格納部に格納する手順と、
前記仮想マシンの現在の時点でのメモリアクセス状況と必要メモリデータ特定用情報とから、必要メモリデータを特定し移動先に移動する手順と、
必要メモリデータの移動後、前記仮想マシンを前記移動先に移動する手順と、
をコンピュータに実行させることを特徴とするプログラム。
【請求項１０】
前記仮想マシンのメモリに対する参照データアドレスの推移である前記メモリアクセス履歴と前記仮想マシンの現在の時点からのメモリに対する参照データアドレスの推移とを比較し、必要メモリデータ特定用情報として類似情報を作成する手順と、
前記類似情報を前記必要メモリデータ特定用情報格納部に格納する手順と、
前記類似情報から最も類似している時点を選択する手順と、
選択した時点から一定区間で前記仮想マシンに参照されるデータを必要メモリデータとして特定する手順と、
特定した必要メモリデータを前記移動先に移動する手順と、
をコンピュータに実行させることを特徴とする請求項９のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移行処理装置、情報処理システム、移行処理方法、および、プログラムに関する。
【背景技術】
【０００２】
仮想マシン移動制御システムの一例が、特許文献１に記載されている。特許文献１においては、仮想マシンを移行させる際に、移行元の仮想マシンサーバのハイパーバイザが、仮想マシンのＣＰＵのレジスタとキャッシュメモリの情報（起動に必要な情報）を移行先の仮想マシンサーバに送信する。
【０００３】
そして、移行先の仮想マシンサーバのハイパーバイザは、移行元の仮想マシンサーバからＣＰＵのレジスタとキャッシュメモリの情報とを受信すると、それらの情報を仮想マシンに設定して仮想マシンを起動させる。これにより、ＣＰＵ内に記憶された記憶情報が移動された時点で、移行先のサーバ上で仮想マシンが起動する。
【０００４】
また、移行先の仮想マシンサーバで仮想マシン起動後に必要になったメモリデータに関しては、必要に応じて、移行先の仮想マシンサーバが、移動元の仮想マシンサーバから取得している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１３４７１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術においては、移行先の仮想マシンサーバは、起動には必要でなかったメモリデータを、用途に応じて、移動前の仮想マシンサーバから取得している。すなわち、移動先の仮想マシンサーバは、仮想マシンのメモリ参照ごとに、必要なデータをネットワークを介して移動元の仮想マシンサーバから取得し、実行を再開するまでの間、当該仮想マシンの実行を止める必要がある。この停止が、仮想マシンの性能劣化を生じさせる。
【０００７】
本発明の目的は、上記課題を解決した移行処理装置、情報処理システム、移行処理方法、および、プログラムを提供することである。
【課題を解決するための手段】
【０００８】
本発明の移行処理装置は、メモリアクセス情報格納部と、必要メモリデータ特定用情報格納部と、仮想マシンのメモリアクセスを調べ、メモリアクセス履歴を前記メモリアクセス情報格納部に格納し、前記メモリアクセス履歴に基づき前記仮想マシンの起動直後に前記仮想マシンがアクセスするメモリデータである必要メモリデータを特定するための情報として必要メモリデータ特定用情報を作成し、前記必要メモリデータ特定用情報格納部に格納し、前記仮想マシンの現在の時点でのメモリアクセス状況と必要メモリデータ特定用情報とから、必要メモリデータを特定し移動先に移動し、必要メモリデータの移動後、前記仮想マシンを前記移動先に移動する移行制御部とを含む。
【０００９】
本発明の移行処理方法は、仮想マシンのメモリアクセスを調べ、メモリアクセス履歴をメモリアクセス情報格納部に格納する手順と、前記メモリアクセス履歴に基づき前記仮想マシンの起動直後に前記仮想マシンがアクセスするメモリデータである必要メモリデータを特定するための情報として必要メモリデータ特定用情報を作成し、必要メモリデータ特定用情報格納部に格納する手順と、前記仮想マシンの現在の時点でのメモリアクセス状況と必要メモリデータ特定用情報とから、必要メモリデータを特定し移動先に移動する手順と、必要メモリデータの移動後、前記仮想マシンを前記移動先に移動する手順とを含む。
【００１０】
本発明のプログラムは、仮想マシンのメモリアクセスを調べ、メモリアクセス履歴をメモリアクセス情報格納部に格納する手順と、前記メモリアクセス履歴に基づき前記仮想マシンの起動直後に前記仮想マシンがアクセスするメモリデータである必要メモリデータを特定するための情報として必要メモリデータ特定用情報を作成し、必要メモリデータ特定用情報格納部に格納する手順と、前記仮想マシンの現在の時点でのメモリアクセス状況と必要メモリデータ特定用情報とから、必要メモリデータを特定し移動先に移動する手順と、必要メモリデータの移動後、前記仮想マシンを前記移動先に移動する手順とをコンピュータに実行させる。
【発明の効果】
【００１１】
本発明の効果は、仮想マシン移動後の性能劣化を低減できることである。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】本発明の第１の実施の形態の動作を示すフローチャートである。
【図３】本発明の第２の実施の形態の構成を示すブロック図である。
【図４】メモリアクセス履歴を示す説明図である。
【図５】類似情報を示す説明図である。
【図６】メモリアクセスの類似性を示す説明図である。
【図７】類似度計算式の一例を示す説明図である。
【図８】本発明の第２の実施の形態の動作を示すフローチャートである。
【図９】本発明の第２の実施の形態の動作を示すフローチャートである。
【図１０】本発明の第２の実施の形態の動作を示すフローチャートである。
【図１１】本発明の第２の実施の形態の動作を示すフローチャートである。
【図１２】本発明の第２の実施の形態の具体的構成例を示すブロック図である。
【図１３】本発明の第３の実施の形態の構成を示すブロック図である。
【図１４】メモリアクセスパターンを示す説明図である。
【図１５】メモリアクセスの推移を示す説明図である。
【図１６】頂点を検出する論理の一例を示す説明図である。
【図１７】本発明の第３の実施の形態の動作を示すフローチャートである。
【図１８】本発明の第３の実施の形態の動作を示すフローチャートである。
【図１９】本発明の第３の実施の形態の動作を示すフローチャートである。
【発明を実施するための形態】
【００１３】
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。図１は、第１の実施の形態の構成を示すブロック図である。
【００１４】
図１を参照すると、第１の実施の形態の移行処理装置０１０は、必要メモリデータ特定用情報格納部０１２、メモリアクセス情報格納部１８０、および、移行制御部０１１を含む。移行制御部０１１は、移動先、および、仮想マシンと接続され、仮想マシンの移行（移動）に関する制御を行う。
【００１５】
メモリアクセス情報格納部１８０は、仮想マシンのメモリアクセス履歴を格納する。
類似情報格納部１５０は、メモリデータの類似性に関する類似情報を格納する。
【００１６】
次に、第１の実施の形態の動作について図面を参照して詳細に説明する。図２は、第１の実施の形態の動作を示すフローチャートである。図２を参照すると、移行制御部０１１は、仮想マシンのメモリアクセス（たとえば、メモリに対する参照データアドレス）を調べ、メモリアクセス履歴をメモリアクセス情報格納部１８０に格納する（Ｓ００１）。
【００１７】
次に、移行制御部０１１は、メモリアクセス履歴に基づき仮想マシンの起動直後に仮想マシンがアクセスするメモリデータ（必要メモリデータ）を特定するための情報（必要メモリデータ特定用情報）を作成し、必要メモリデータ特定用情報格納部０１２に格納する（Ｓ００２）。
【００１８】
次に、仮想マシンの移動の必要があると、移行制御部０１１は、仮想マシンの現在の時点でのメモリアクセス状況（たとえば、メモリに対する参照データアドレス）と必要メモリデータ特定用情報とから、必要メモリデータを特定し、移動先に出力（移動）する（Ｓ００３）。その後（すなわち、必要メモリデータの移動後）、移行制御部０１１は、仮想マシン（レジスタ情報、キャッシュの内容等を含む）を移動先に出力（移動）する（Ｓ００４）。
【００１９】
移動先では、必要メモリデータ、および、仮想マシンが受け取られ、仮想マシンが起動する。そして、起動した仮想マシンが、必要メモリデータにアクセスする。
【００２０】
次に、第１の実施の形態の効果について説明する。第１の実施の形態は、起動元が、仮想マシンの起動直後に必要となる必要メモリデータを、事前に移動先に出力しておく。よって、第１の実施の形態は、移動先の仮想マシンが起動しても、そのつど、移動元から必要データを取りに行かなくてすむので、仮想マシンの動作を停止しなくてすむ。したがって、第１の実施の形態は、仮想マシンの移動後の性能劣化の低減ができる。
【００２１】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。図３は、第２の実施の形態の構成を示すブロック図である。
【００２２】
図３を参照すると、第２の実施の形態の情報処理システム６００は、移動元のコンピュータ１００、および、移動先のコンピュータ２００を含む。コンピュータ１００は、第１の実施の形態の一例である移行処理装置０１０、および、仮想マシン１２０を含む。
【００２３】
移行処理装置０１０は、移行制御部０１１、類似情報格納部１５０、および、メモリアクセス情報格納部１８０を含む。移行制御部０１１は、仮想マシン送信部１１０、メモリアクセス情報取得部１３０、データ送信判定部１４０、参照データ推定部１６０、および、メモリアドレス監視部１７０を含む。類似情報格納部１５０は、第１の実施の形態の必要メモリデータ特定用情報格納部０１２の一例である。
【００２４】
コンピュータ２００は、仮想マシン受信部２１０、および、仮想マシン２２０を含む。仮想マシン２２０は、コンピュータ１００からの仮想マシン１２０の移動前は、仮想マシン１２０とは異なるものであってよい。また、仮想マシン２２０は、動作していなくてもよい。
【００２５】
仮想マシン送信部１１０は、まず、必要メモリデータ、次に、仮想マシン１２０を移動先であるコンピュータ２００に移動させる。
【００２６】
メモリアクセス情報取得部１３０は、移動対象となる仮想マシン１２０のメモリアクセス履歴を取得し、メモリアクセス情報格納部１８０に格納する。
【００２７】
メモリアクセス情報格納部１８０に格納されるメモリアクセス履歴について図面を参照して説明する。図４は、メモリアクセス履歴を示す説明図である。図４を参照すると、メモリアクセス履歴は、テーブル形式で、実行番号１８１、実行命令アドレス１８２、および、参照データアドレス１８３を含む。
【００２８】
実行番号１８１は、メモリアクセス情報取得部１３０によって、仮想マシン１２０のメモリアクセス履歴が記録され始めてからの通し番号である。実行命令アドレス１８２は、仮想マシン１２０によって実行される命令を格納するメモリアドレスを示す。参照データアドレス１８３は、実行命令アドレス１８２に対応する命令の実行時に参照されるメモリデータの格納されているメモリアドレスを示す。
【００２９】
メモリアドレス監視部１７０は、現在実行中の仮想マシン１２０について、実行されている命令が格納される実行命令アドレス１８２と参照データアドレス１８３とを常に監視し、参照データ推定部１６０に出力する。
【００３０】
類似情報格納部１５０は、参照データ推定部１６０により作成されたメモリデータの類似情報（必要メモリデータ特定用情報の一例）を格納する。図５は、類似情報格納部１５０に格納される類似情報を示す説明図である。図５を参照すると、類似情報は、仮想マシンごとに、テーブル形式で、類似候補点１５１、および、類似度１５２を含む。類似候補点１５１は、メモリアクセス情報格納部１８０に格納されたメモリアクセス履歴中の実行番号１８１に対応する。類似度１５２は、参照データ推定部１６０により計算された数値である。
【００３１】
参照データ推定部１６０は、類似候補点１５１を作成し、かつ、当該類似候補点１５１の類似度１５２を計算し、類似情報として類似情報格納部１５０に格納する。参照データ推定部１６０は、現在の実行命令アドレス１８２、参照データアドレス１８３、および、メモリアクセス情報格納部１８０に格納されているメモリアクセス履歴を参照し、類似度１５２を計算する。
【００３２】
参照データ推定部１６０の機能について図面を参照して詳細に説明する。類似候補点１５１、および、類似度１５２説明のため、ここで、仮想マシン１２０によってアクセスされる参照データアドレス１８３は、何らかの規則性を持つものと仮定する。ここでは、特に、この規則性として、仮想マシン１２０が、シーケンシャルなメモリアクセスである場合について説明する。
【００３３】
図６は、メモリアクセスの類似性を示す説明図である。図６の上部のグラフ（以降、履歴グラフ）は、メモリアクセス情報格納部１８０に格納されたメモリアクセス履歴に基づく。横軸は、実行番号１８１であり、縦軸は、参照データアドレス１８３である。
【００３４】
図６の下部のグラフ（以降、現在グラフ）は、現在、仮想マシン１２０により参照中の参照データアドレス１８３の推移を示す。実行番号１８１は、仮想マシン１２０のメモリアクセス履歴が記録され始めてからの通し番号、つまり時間である。時間が経過するとともに履歴グラフに示されるようなメモリアクセスが行われる。
【００３５】
ここで、メモリアドレス監視部１７０が、仮想マシン１２０による現在のモリアクセスに対する監視を開始したとする（現在グラフの作成開始）。このとき、現在参照中の参照データアドレス１８３が、履歴グラフ中のどの場所を示しているかは、まだ不明である。
【００３６】
なぜなら、履歴グラフ中の実行番号１８１と現在グラフ上の実行番号１８１との相関関係が未発見であるからである。履歴グラフの取得開始時点と、メモリアドレス監視部１７０による現在グラフの取得開始時点とで、二つのグラフが完全に同期するように、現在グラフの取得開始時刻を合わせることが理想である。これにより、履歴グラフと、現在グラフの実行番号１８１とは完全に同期することになるが、これは、不可能に近い。
【００３７】
よって、メモリアクセスに対する監視が開始された時点での参照データアドレス１８３に対する、履歴グラフ上の候補となる点は複数存在する。図６では、Ｐ１〜Ｐ５が、現在の時点（Ｒ）の参照データアドレス１８３と同じ値の参照データアドレス１８３を示す。
【００３８】
図６において、履歴グラフは、６次関数のようなメモリアクセスパターンを持つと仮定している。現在グラフの現在の時点（Ｒ）の参照データアドレス１８３と同一の参照データアドレス１８３の値を持つ履歴グラフ上の類似候補点１５１は、５箇所（Ｐ１〜Ｐ５。６つ目は、グラフ外の点なので説明を省く）である。参照データ推定部１６０は、このようにして類似候補点１５１としてＰ１〜Ｐ５を作成する。
【００３９】
次に、参照データ推定部１６０は、現在の時点（Ｒ）が、Ｐ１〜Ｐ５までの類似候補点１５１のうちのどれに最も適合するかを類似度計算式を用いて特定する。図７は、類似度計算式の一例を示す説明図である。‘０’に近い値が、高い類似度１５２に相当する。
【００４０】
図７を参照すると、参照データ推定部１６０は、現在の時点（Ｒ）において参照中の参照データアドレス１８３と類似候補点１５１上の参照データアドレス１８３との差（第０差分）を計算する。ここで、類似度（Ｐｍ）は、類似候補点１５１であるＰｍの類似度１５２とする。
【００４１】
現在の時点（Ｒ）の実行命令アドレス１８２を、ＲＩ０と表現し、現在の時点（Ｒ）の参照データアドレス１８３を、ＲＡ０と表現する。ＲＡ１、ＲＡ２、・・・、ＲＡＮは、それぞれ、ＲＩ１（＝ＲＩ０＋１）、ＲＩ２（＝ＲＩ０＋２）、・・・、ＲＩＮ（＝ＲＩ０＋Ｎ）における参照データアドレス１８３を示す。ＲＡｎは、参照データアドレス１８３であるＲＡ０、ＲＡ１、ＲＡ２、・・・、ＲＡＮを総称する。
【００４２】
また、類似候補点１５１であるＰｍの実行命令アドレス１８２を、ＰｍＩ０と表現し、その参照データアドレス１８３を、ＰｍＡ０と表現する。ＰｍＡ１、ＰｍＡ２、・・・、ＰｍＡＮは、それぞれ、ＰｍＩ１（＝ＰｍＩ０＋１）、ＰｍＩ２（＝ＰｍＩ０＋２）、・・・、ＰｍＩＮ（＝ＰｍＩ０＋Ｎ）における参照データアドレス１８３を示す。
【００４３】
ＰｍＡｎは、参照データアドレス１８３であるＰｍＡ０、ＰｍＡ１、ＰｍＡ２、・・・、ＰｍＡＮを総称する。図６において、Ｐ１〜Ｐ５に関し、Ｐ１Ａ０＝Ｐ２Ａ０＝Ｐ３Ａ０＝Ｐ４Ａ０＝Ｐ５Ａ０＝ＲＡ０である。
【００４４】
第０差分は、それぞれ、｜ＲＡ０−Ｐ１Ａ０｜＝‘０’、｜ＲＡ０−Ｐ２Ａ０｜＝‘０’、｜ＲＡ０−Ｐ３Ａ０｜＝‘０’、｜ＲＡ０−Ｐ４Ａ０｜＝‘０’、｜ＲＡ０−Ｐ５Ａ０｜＝‘０’である。
【００４５】
参照データ推定部１６０は、履歴グラフの実行番号１８１、および、現在グラフの実行番号１８１を１増加し、それぞれに対応する参照データアドレス１８３の差を取って、第０差分の値に足し合わせる。これを一定回数（Ｎ回）繰り返すことによって、類似度１５２である類似度（Ｐ１）〜類似度（Ｐ５）が計算される。
【００４６】
すなわち、次に、実行番号１８１が１進められ、類似度１５２の計算が行われる。図６の現在グラフにおいて、Ｐ１、Ｐ３、Ｐ５は、Ｒとは逆方向（増加方向）に参照データアドレス１８３の値を変える。Ｐ２、Ｐ４は、Ｒとは同方向（減少方向）に参照データアドレス１８３の値を変える。
【００４７】
計算値は、｜ＲＡ１−Ｐ１Ａ１｜、｜ＲＡ１−Ｐ３Ａ１｜、｜ＲＡ１−Ｐ５Ａ１｜＞｜ＲＡ１−Ｐ２Ａ１｜、｜ＲＡ１−Ｐ４Ａ１｜となる。したがって、Ｐ１，Ｐ３，Ｐ５は、Ｐ２，Ｐ４よりも低い類似度１５２を持つ。
【００４８】
その後、一定期間計算が繰り返され、Ｐ４がグラフの底点に到達すると、Ｒも底点に到達するが、Ｐ２は、まだ底点には到達せず、Ｐ２はＲと異なった軌跡を描く。これにより、Ｐ４が最も高い類似度１５２を持つと計算される。
【００４９】
このようにして、現在の参照データアドレス１８３が、履歴グラフ上のどの点を指しているのかを特定することができる。
【００５０】
以下、図４に示されるメモリアクセス履歴の値を用いて具体的に説明する。
【００５１】
現在グラフ上の現在の時点（Ｒ）の参照データアドレス１８３を０ｘ００８００００とする。履歴グラフ上における類似候補点１５１であるＰ１〜Ｐ５（実行番号１８１は、それぞれ、‘１０’、‘３７’、‘８８’、‘１２６’、‘５３３’）の参照データアドレス１８３も、すべて、０ｘ００８００００である。類似度計算式において、Ｐ１〜Ｐ５の類似度１５２は、｜０ｘ００８００００−０ｘ００８００００｜＝‘０’である。
【００５２】
次に、実行番号１８１が１つ進められる。すなわち、Ｐ１〜Ｐ５に関し、それぞれ、実行番号１８１が、それぞれ、‘１１’、‘３８’、‘８９’、‘１２７’、‘５３４’となる。
【００５３】
Ｒ、Ｐ１〜Ｐ５に関し、１つ増加した実行番号１８１に対応する参照データアドレス１８３を、それぞれ、０ｘ００７９９９９、０ｘ００８０００１、０ｘ００７９９９９、０ｘ００８０００１、０ｘ００７９９９９、０ｘ００８０００１とする。
【００５４】
類似度（Ｐ１）は、０＋｜０ｘ００７９９９９−０ｘ００８０００１｜＝‘２’である。類似度（Ｐ２）は、０＋｜０ｘ００７９９９９−０ｘ００７９９９９｜＝‘０’である。類似度（Ｐ３）は、０＋｜０ｘ００７９９９９−０ｘ００８０００１｜＝‘２’である。類似度（Ｐ４）は、０＋｜０ｘ００７９９９９−０ｘ００７９９９９｜＝‘０’である。類似度（Ｐ５）は、０＋｜０ｘ００７９９９９−０ｘ００８０００１｜＝‘２’である。このように、順次、類似度１５２の計算が行われる。
【００５５】
参照データ推定部１６０の上述の手法は、一例であり、現在の参照データアドレス１８３が、履歴グラフ上のどの点であるかを特定できるような手法であれば、どのような手法が用いられてもよい。たとえば、最小二乗法や、最尤推定、最大事後確率推定やベイズ推定等がある。
【００５６】
また、以上では、実行命令アドレス１８２が、シーケンシャルな場合について説明したが、そうでなくても、参照データ推定部１６０が、実行番号１８１に対応する参照データアドレス１８３を用いて類似度１５２を計算することは可能である。
【００５７】
データ送信判定部１４０は、類似情報格納部１５０に格納された情報を元に、仮想マシン１２０を移動する前に移動しておくべき必要メモリデータを特定し、その必要メモリデータを移動するように仮想マシン送信部１１０に出力する。
【００５８】
移動しておくべき必要メモリデータは、類似情報格納部１５０に格納されている類似度１５２の最も高い（数値が‘０’に近い）ものである。
【００５９】
次に、第２の実施の形態の動作について図面を参照して説明する。図８、図９、図１０、図１１は、第２の実施の形態の動作を示すフローチャートである。
【００６０】
まず、図８を参照して、全体の動作の概略を説明する。
【００６１】
メモリアクセス情報取得部１３０が、メモリアクセス履歴をメモリアクセス情報格納部１８０に格納する（Ｓ１０１）。次に、メモリアドレス監視部１７０が、メモリアクセスの監視を開始する（Ｓ１０２）。メモリアクセスの監視は、事前にメモリアクセス履歴が十分に取得できている場合に、メモリアクセス履歴の取得とは独立して行われる。
【００６２】
次に、参照データ推定部１６０が、メモリアクセス履歴と現在のメモリアクセス状況とから、類似候補点１５１を作成し、当該類似候補点１５１の類似度１５２を計算する（Ｓ１０３）。ここで、参照データ推定部１６０は、仮想マシン１２０の移動の必要性が発生したことを契機として、現在の時点（Ｒ）を決定し、類似候補点１５１を作成する制御が可能である。また、メモリアドレス監視部１７０による監視も、仮想マシン１２０の移動の必要性が発生したことを契機として開始されてよい。
【００６３】
次に、データ送信判定部１４０は、類似度１５２の最も高い類似候補点１５１を選択し、そこから一定区間のデータを必要メモリデータとして取得し、仮想マシン送信部１１０に出力する（Ｓ１０４）。
【００６４】
次に、仮想マシン送信部１１０が、必要メモリデータを移動先であるコンピュータ２００へ出力（移動）する（Ｓ１０５）。次に、仮想マシン送信部１１０は、仮想マシン１２０を出力（移動）する（Ｓ１０６）。
【００６５】
次に、類似候補点１５１の作成の動作について説明する。
【００６６】
図９は、参照データ推定部１６０における類似候補点１５１の作成の動作を示すフローチャートである。図９を参照すると、参照データ推定部１６０は、メモリアドレス監視部１７０から受け取った現在の時点でアクセス中の参照データアドレス１８３を確認する（Ｓ１）。
【００６７】
次に、参照データ推定部１６０は、メモリアクセス情報格納部１８０内のメモリアクセス履歴から、現在の時点でアクセス中の参照データアドレス１８３と同じ参照データアドレス１８３を持つ実行番号１８１をすべて取り出す（Ｓ２）。次に、参照データ推定部１６０は、取り出した実行番号１８１を類似候補点１５１として、類似情報格納部１５０に格納する（Ｓ３）。この時点で、各類似候補点１５１の類似度１５２は、すべて同じ‘０’である。
【００６８】
次に、類似度１５２の作成の動作について説明する。
【００６９】
図１０は、参照データ推定部１６０における類似度１５２の作成の動作を示すフローチャートである。図１０を参照すると、参照データ推定部１６０は、現在の時点でアクセス中の参照データアドレス１８３（ＲＡｎ）を確認する（Ｓ４）。
【００７０】
次に、参照データ推定部１６０は、ｍ番目の類似候補点１５１であるＰｍのｎ番目の参照データアドレス１８３（ＰｍＡｎ）を取得する（Ｓ５）。ｎは、最初は０から始まり、１ずつ増加する。次に、参照データ推定部１６０は、類似度１５２を計算する（Ｓ６）。
【００７１】
図７の計算式によると、類似度１５２に関して、第ｎ差分は、現在の時点でアクセス中の参照データアドレス１８３と類似候補点１５１からｎ番目の参照データアドレス１８３との差｜ＲＡｎ−ＰｍＡｎ｜である。
【００７２】
次に、参照データ推定部１６０は、類似候補点１５１の類似度１５２を更新する（Ｓ７）。更新とは、今回の第ｎ差分である｜ＲＡｎ−ＰｍＡｎ｜を、類似情報格納部１５０に格納されている類似度１５２（第０差分から第ｎ−１差分までの総和）に加算し、類似情報格納部１５０に格納することである。
【００７３】
次に、参照データ推定部１６０は、Ｎ回繰り返したかを確認する（Ｓ８）。Ｎに相当する数値は、事前に決められているものとする。Ｓ４〜Ｓ８がＮ回繰り返されていなければ（Ｓ９／ＮＯ）、ｎ＝ｎ＋１とし（Ｓ１０）、参照データ推定部１６０は、Ｓ４の処理に戻る。Ｎ回繰り返されていれば（Ｓ９／ＹＥＳ）、参照データ推定部１６０は、この処理を終了する。参照データ推定部１６０は、Ｓ４〜Ｓ１０の各ステップにおいて、ｍ＝１、２、・・・のすべての類似候補点１５１に対する処理を実施する。
【００７４】
次に、移動の動作について説明する。
【００７５】
図１１は、移動の動作を示すフローチャートである。図１１を参照すると、データ送信判定部１４０は、類似情報格納部１５０の類似情報から、類似度１５２の最も高い類似候補点１５１（すなわち、実行番号１８１）を選択する（Ｓ１１）。
【００７６】
次に、データ送信判定部１４０は、類似度１５２の最も高い類似候補点１５１を始点として、その参照データアドレス１８３からＮ番目までの参照データアドレス１８３に格納されているメモリデータ（必要メモリデータ）を取得する（Ｓ１２）。
【００７７】
次に、仮想マシン送信部１１０は、データ送信判定部１４０から必要メモリデータを受け取り、コンピュータ２００に出力（移動）する（Ｓ１３）。次に、仮想マシン送信部１１０は、仮想マシン１２０（レジスタ情報、キャッシュの内容等を含む）をコンピュータ２００に出力（移動）する（Ｓ１４）。
【００７８】
コンピュータ２００の仮想マシン受信部２１０は、必要メモリデータ、仮想マシン１２０を受け取ると、仮想マシン２２０（実体は、仮想マシン２２０を動作させるもの）に渡す。仮想マシン２２０は実体を、受け取った仮想マシン１２０に置き換える。そして、コンピュータ２００において、仮想マシン１２０が起動し、受け取った必要メモリデータにアクセスを行う。
【００７９】
また、仮想マシン１２０により移動直後に参照される必要メモリデータは予め転送されている。したがって、コンピュータ２００において、仮想マシン２２０（実体は、仮想マシン１２０）が、必要メモリデータ参照中に、それ以外のメモリデータをコンピュータ１００から取得することが可能である。
【００８０】
以上を要約すると、第２の実施の形態の移行制御部０１１は、仮想マシン１２０のメモリに対する参照データアドレス１８３の推移であるメモリアクセス履歴と仮想マシン１２０の現在の時点からのメモリに対する参照データアドレス１８３の推移とを比較する。そして、移行制御部０１１は、必要メモリデータ特定用情報として類似情報を作成し、類似情報を類似情報格納部１５０に格納する。そして、移行制御部０１１は、類似情報から最も類似している時点を選択し、選択した時点から一定区間で仮想マシン１２０に参照されるデータを必要メモリデータとして特定し、特定した必要メモリデータをコンピュータ２００に移動する。
【００８１】
次に、第２の実施の形態についてさらに具体的に説明する。図１２は、第２の実施の形態の具体的構成例を示すブロック図である。図１２を参照すると、仮想マシン送信部１１０として、ｌｉｂｖｉｒｔｄ４１０、仮想マシン受信部２１０としてｌｉｂｖｉｒｔｄ５１０を用いることが可能である。さらに、仮想マシン１２０、仮想マシン２２０として、ＫＶＭ４２０、ＫＶＭ５２０を用い、メモリアクセス情報取得部１３０として、ｖａｌｇｒｉｎｄ４３０を用いることが可能である。
【００８２】
ｌｉｂｖｉｒｔｄは、仮想マシンの制御を抽象化したライブラリとして知られている。ＫＶＭ（Kernel-based Virtual Machine）は、仮想マシンの１種として知られている。ｖａｌｇｒｉｎｄは、メモリデバッグや、メモリリークの検出、プロファイリングを行うためのプログラミングツールとして知られている。
【００８３】
また、コンピュータ１００の資源を移行処理装置０１０として動作させるプログラムが実現可能である。さらに、そのプログラムを記録する記録媒体が実現可能である。
【００８４】
次に、第２の実施の形態の効果について説明する。
【００８５】
第２の実施の形態は、第１の実施の形態の移行処理装置０１０を含むので、第１の実施の形態と同一の効果を持つ。
【００８６】
また、第２の実施の形態は、コンピュータ２００において、仮想マシン２２０が、必要メモリデータ参照中に、それ以外のメモリデータをコンピュータ１００から取得する構成により、必要メモリデータ以外のメモリデータを並行して取得でき、性能が向上する。
【００８７】
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。図１３は、第３の実施の形態の構成を示すブロック図である。
【００８８】
図１３を参照すると、第３の実施の形態の情報処理システム６００は、第２の実施の形態の参照データ推定部１６０、類似情報格納部１５０の替わりに、それぞれ、メモリアクセスパターン生成部３２０、メモリアクセスパターン格納部３１０を含む。
【００８９】
メモリアクセスパターン格納部３１０は、第１の実施の形態の必要メモリデータ特定用情報格納部０１２の一例である。メモリアクセスパターン格納部３１０は、メモリアクセスパターン生成部３２０によって作成されたメモリアクセスパターン（必要メモリデータ特定用情報の一例）を格納する。図１４は、メモリアクセスパターン格納部３１０に格納されるメモリアクセスパターンを示す説明図である。
【００９０】
図１４を参照すると、メモリアクセスパターン格納部３１０に格納されるメモリアクセスパターンは、アクセスパターン番号３１１、実行区間３１２、および、メモリアドレス範囲３１３を含む。
【００９１】
アクセスパターン番号３１１は、メモリアクセスパターン生成部３２０によって生成されたアクセスパターンに一意に割り当てられる番号である。実行区間３１２は、当該アクセスパターンが現れた実行番号１８１の範囲を示している。メモリアドレス範囲３１３は、当該実行区間３１２の中で参照された参照データアドレス１８３の範囲（メモリアクセス履歴に対応）を示している。
【００９２】
メモリアクセスパターン生成部３２０は、メモリアクセス情報格納部１８０に格納されているメモリアクセス履歴から、メモリアクセスパターンを生成する。説明をわかりやすくするため、仮想マシン１２０によってアクセスされる参照データアドレス１８３は、何らかの規則性を持つものと仮定する。
【００９３】
ここでは、この規則性として、仮想マシン１２０が一定の時間、あるメモリ領域を繰り返し参照する場合について図面を参照して説明する。図１５は、メモリアクセスの推移をグラフで示す説明図である。図１５において、縦軸は、参照データアドレス１８３、横軸は実行番号１８１であり、実行番号１８１（すなわち、時間）の推移と共に、参照データアドレス１８３がどのような奇跡を描くかが示される。
【００９４】
図１５を参照すると、ある特定の実行区間３１２内で、参照データアドレス１８３に関して、特定のメモリ領域が繰り返し参照されていることがわかる。
【００９５】
このような規則性を持つメモリアクセスパターンの場合は、実行番号１８１を一定間隔で区切ったものが実行区間３１２として定義される。すなわち、いくつ参照データアドレス１８３の頂点が現れるかが測定され、一定数以上、頂点の数の現れる領域を繰り返し参照される実行区間３１２とする。
【００９６】
図１６は、グラフ上の振幅の頂点を検出する論理の一例を示す説明図である。図１６を参照すると、凹点（下に凸）、および、凸点（上に凸）の２種類の頂点が存在する。現在の時点の参照データアドレス１８３（Ａｎ）と、前後の参照データアドレス１８３（Ａｎ−１、Ａｎ＋１）との差の符号が逆の場合に、Ａｎが頂点となる。
【００９７】
次に、第３の実施の形態の動作について図面を参照して説明する。図１７、図１８、図１９は、第３の実施の形態の動作を示すフローチャートである。
【００９８】
まず、図１７を参照して、全体の動作の概略を説明する。
【００９９】
図１７を参照すると、メモリアクセス情報取得部１３０が、メモリアクセス履歴をメモリアクセス情報格納部１８０に格納する（Ｓ２０１）。次に、メモリアクセスパターン生成部３２０が、メモリアクセス履歴からメモリアクセスパターンを生成し、メモリアクセスパターン格納部３１０に格納する（Ｓ２０２）。メモリアクセスパターンの生成手法は、前述の通りである。
【０１００】
メモリアクセスパターンの生成タイミングは、仮想マシン１２０の移動前ならいつでも可能である。メモリアクセスパターン生成部３２０は、メモリアクセス情報格納部１８０にメモリアクセス履歴が格納された後、仮想マシン１２０の実行とは独立して、メモリアクセスパターンの生成を行うことができる。
【０１０１】
次に、メモリアドレス監視部１７０が、現在の時点で仮想マシン１２０に参照されている参照データアドレス１８３を取得する（Ｓ２０３）。参照データアドレス１８３の取得（Ｓ２０３の実行）は、ユーザによって、仮想マシン１２０の移動コマンドが発行された直後が想定できる。
【０１０２】
次に、データ送信判定部１４０は、メモリアドレス監視部１７０からの当該参照データアドレス１８３に基づき、当該参照データアドレス１８３を含むメモリアクセスパターン番号３１１を選択し、対応するメモリアドレス範囲３１３に含まれるメモリ領域のデータ（必要メモリデータ）を取得し、仮想マシン送信部１１０に出力する（Ｓ２０４）。
【０１０３】
次に、仮想マシン送信部１１０は、必要メモリデータをコンピュータ２００に出力（移動）する（Ｓ２０５）。次に、仮想マシン送信部１１０は、仮想マシン１２０をコンピュータ２００に出力（移動）する（Ｓ２０６）。
【０１０４】
次に、メモリアクセスパターンの生成の動作について説明する。
【０１０５】
図１８は、メモリアクセスパターン生成部３２０におけるメモリアクセスパターンの作成の動作を示すフローチャートである。図１８を参照すると、メモリアクセスパターン生成部３２０は、メモリアクセス情報格納部１８０に格納されている参照データアドレス１８３から頂点を検出する（Ｓ１５）。頂点の検出手法は、図１６に示す通りである。
【０１０６】
次に、メモリアクセスパターン生成部３２０は、検出した頂点を含む実行区間３１２内の頂点数が一定以上存在するか確認する（Ｓ１６）。実行区間３１２と実行区間３１２内の頂点数は予め決められているものとする。
【０１０７】
次に、メモリアクセスパターン生成部３２０は、実行区間３１２内の最小頂点から最大頂点の参照データアドレス１８３の範囲の値を、メモリアドレス範囲３１３として生成する（Ｓ１７）。最大頂点とは、検出された頂点のうち参照データアドレス１８３が最も大きい頂点である。
【０１０８】
最小頂点とは、検出された頂点のうち参照データアドレス１８３が最も小さい頂点である。メモリアクセスパターン生成部３２０は、最大頂点の参照データアドレス１８３、および、最小頂点の参照データアドレス１８３を内部情報として保持する。
【０１０９】
次に、メモリアクセスパターン生成部３２０は、アクセスパターン番号３１１、実行区間３１２、および、メモリアドレス範囲３１３をメモリアクセスパターン格納部３１０に格納する。
【０１１０】
次に、移動の動作について説明する。
【０１１１】
図１９は、移動の動作を示すフローチャートである。図１９を参照すると、データ送信判定部１４０は、メモリアドレス監視部１７０から、現在の時点で仮想マシン１２０によりアクセスされている参照データアドレス１８３を取得する（Ｓ１９）。
【０１１２】
次に、データ送信判定部１４０は、取得した当該参照データアドレス１８３に基づき、当該参照データアドレス１８３を含むメモリアクセスパターン番号３１１を選択し、対応するメモリアドレス範囲３１３に含まれるメモリ領域のデータ（必要メモリデータ）を取得し、仮想マシン送信部１１０に出力する（Ｓ２０）。
【０１１３】
次に、仮想マシン送信部１１０は、必要メモリデータをコンピュータ２００に出力（移動）する（Ｓ２１）。次に、仮想マシン送信部１１０は、仮想マシン１２０をコンピュータ２００に出力（移動）する（Ｓ２２）。
【０１１４】
このように、移動直後に、コンピュータ２００の仮想マシン１２０により参照される必要メモリデータは予め転送されている。したがって、コンピュータ２００において、仮想マシン２２０（実体は、仮想マシン１２０）が、必要メモリデータ参照中に、それ以外のメモリデータをコンピュータ１００から取得することが可能である。
【０１１５】
以上を要約すると、第３の実施の形態の移行制御部０１１は、仮想マシン１２０のメモリに対する参照データアドレス１８３の推移であるメモリアクセス履歴から、頂点の数が一定以上である区間を実行区間３１２として設定する。そして、移行制御部０１１は、最大頂点と最小頂点との間をメモリアドレス範囲３１３とし、実行区間３１２、メモリアドレス範囲３１３を含むメモリアクセスパターンを作成する。そして、移行制御部０１１は、仮想マシン１２０の現在の時点のメモリに対する参照データアドレス１８３がメモリアクセスパターンに示されるメモリアドレス範囲３１３に含まれる実行区間３１２内で仮想マシン１２０により参照されるデータを必要メモリデータとして特定し、コンピュータ２００に移動する。
【０１１６】
次に、第３の実施の形態の効果について説明する。
【０１１７】
第３の実施の形態は、第１の実施の形態の移行処理装置０１０を含むので、第１の実施の形態と同一の効果を持つ。
【０１１８】
また、第３の実施の形態は、コンピュータ２００において、仮想マシン１２０が、必要メモリデータ参照中に、それ以外のメモリデータをコンピュータ１００から取得する構成により、必要メモリデータ以外のメモリデータを並行して取得でき、性能が向上する。
【０１１９】
さらに、第３の実施の形態は、仮想マシン１２０の移動前にメモリアクセス履歴を取得し、当該メモリアドレス履歴にしたがってメモリアクセスパターンを生成するように構成されている。したがって、第３の実施の形態は、第２の実施の形態と比較して、仮想マシン１２０のメモリアクセスを長い期間監視する必要がなく、必要メモリデータの事前転送処理にかかる負荷を軽減することができる。
【０１２０】
上記の実施の形態の一部、または、全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１２１】
［付記１］
メモリアクセス情報格納部と、
必要メモリデータ特定用情報格納部と、
仮想マシンのメモリアクセスを調べ、メモリアクセス履歴を前記メモリアクセス情報格納部に格納し、
前記メモリアクセス履歴に基づき前記仮想マシンの起動直後に前記仮想マシンがアクセスするメモリデータである必要メモリデータを特定するための情報として必要メモリデータ特定用情報を作成し、前記必要メモリデータ特定用情報格納部に格納し、
前記仮想マシンの現在の時点でのメモリアクセス状況と必要メモリデータ特定用情報とから、必要メモリデータを特定し移動先に移動し、
必要メモリデータの移動後、前記仮想マシンを前記移動先に移動する移行制御部と、
を含むことを特徴とする移行処理装置。
【０１２２】
［付記２］
前記仮想マシンのメモリに対する参照データアドレスの推移である前記メモリアクセス履歴と前記仮想マシンの現在の時点からのメモリに対する参照データアドレスの推移とを比較し、必要メモリデータ特定用情報として類似情報を作成し、
前記類似情報を前記必要メモリデータ特定用情報格納部に格納し、
前記類似情報から最も類似している時点を選択し、
選択した時点から一定区間で前記仮想マシンに参照されるデータを必要メモリデータとして特定し、
特定した必要メモリデータを前記移動先に移動する前記移行制御部を含むことを特徴とする付記１の移行処理装置。
【０１２３】
［付記３］
前記仮想マシンのメモリに対する参照データアドレスの推移である前記メモリアクセス履歴から、頂点の数が一定以上である区間を実行区間として設定し、最大頂点と最小頂点との間をメモリアドレス範囲とし、実行区間、メモリアドレス範囲を含むメモリアクセスパターンを必要メモリデータ特定用情報として作成し、
作成したメモリアクセスパターンを前記必要メモリデータ特定用情報格納部に格納し、
前記仮想マシンの現在の時点のメモリに対する参照データアドレスが前記メモリアクセスパターンに示されるメモリアドレス範囲に含まれる実行区間内で前記仮想マシンにより参照されるデータを必要メモリデータとして特定し、
特定した必要メモリデータを前記移動先に移動する前記移行制御部を含むことを特徴とする付記１の移行処理装置。
【０１２４】
［付記４］
前記類似情報が、実行番号、類似候補点、および、類似度を含むことを特徴とする付記２の移行処理装置。
【０１２５】
［付記５］
前記メモリアクセスパターンが、メモリアクセスパターン番号、実行区間、メモリアドレス範囲を含むことを特徴とする付記３の移行処理装置。
【０１２６】
［付記６］
付記１、２、３、４、または、５の前記移行処理装置、および、前記仮想マシンを備える第１のコンピュータと、
前記第１のコンピュータの前記移行処理装置から必要メモリデータ、前記仮想マシンを受け取る前記移動先である第２のコンピュータと、
を含むことを特徴とする情報処理システム。
【０１２７】
［付記７］
仮想マシンのメモリアクセスを調べ、メモリアクセス履歴をメモリアクセス情報格納部に格納する手順と、
前記メモリアクセス履歴に基づき前記仮想マシンの起動直後に前記仮想マシンがアクセスするメモリデータである必要メモリデータを特定するための情報として必要メモリデータ特定用情報を作成し、必要メモリデータ特定用情報格納部に格納する手順と、
前記仮想マシンの現在の時点でのメモリアクセス状況と必要メモリデータ特定用情報とから、必要メモリデータを特定し移動先に移動する手順と、
必要メモリデータの移動後、前記仮想マシンを前記移動先に移動する手順と、
を含むことを特徴とする移行処理方法。
【０１２８】
［付記８］
前記仮想マシンのメモリに対する参照データアドレスの推移である前記メモリアクセス履歴と前記仮想マシンの現在の時点からのメモリに対する参照データアドレスの推移とを比較し、必要メモリデータ特定用情報として類似情報を作成する手順と、
前記類似情報を前記必要メモリデータ特定用情報格納部に格納する手順と、
前記類似情報から最も類似している時点を選択する手順と、
選択した時点から一定区間で前記仮想マシンに参照されるデータを必要メモリデータとして特定する手順と、
特定した必要メモリデータを前記移動先に移動する手順と、
を含むことを特徴とする付記７の移行処理方法。
【０１２９】
［付記９］
仮想マシンのメモリアクセスを調べ、メモリアクセス履歴をメモリアクセス情報格納部に格納する手順と、
前記メモリアクセス履歴に基づき前記仮想マシンの起動直後に前記仮想マシンがアクセスするメモリデータである必要メモリデータを特定するための情報として必要メモリデータ特定用情報を作成し、必要メモリデータ特定用情報格納部に格納する手順と、
前記仮想マシンの現在の時点でのメモリアクセス状況と必要メモリデータ特定用情報とから、必要メモリデータを特定し移動先に移動する手順と、
必要メモリデータの移動後、前記仮想マシンを前記移動先に移動する手順と、
をコンピュータに実行させることを特徴とするプログラム。
【０１３０】
［付記１０］
前記仮想マシンのメモリに対する参照データアドレスの推移である前記メモリアクセス履歴と前記仮想マシンの現在の時点からのメモリに対する参照データアドレスの推移とを比較し、必要メモリデータ特定用情報として類似情報を作成する手順と、
前記類似情報を前記必要メモリデータ特定用情報格納部に格納する手順と、
前記類似情報から最も類似している時点を選択する手順と、
選択した時点から一定区間で前記仮想マシンに参照されるデータを必要メモリデータとして特定する手順と、
特定した必要メモリデータを前記移動先に移動する手順と、
をコンピュータに実行させることを特徴とする付記９のプログラム。
【０１３１】
［付記１１］
前記仮想マシンのメモリに対する参照データアドレスの推移である前記メモリアクセス履歴から、頂点の数が一定以上である区間を実行区間として設定し、最大頂点と最小頂点との間をメモリアドレス範囲とし、実行区間、メモリアドレス範囲を含むメモリアクセスパターンを必要メモリデータ特定用情報として作成する手順と、
作成したメモリアクセスパターンを前記必要メモリデータ特定用情報格納部に格納する手順と、
前記仮想マシンの現在の時点のメモリに対する参照データアドレスが前記メモリアクセスパターンに示されるメモリアドレス範囲に含まれる実行区間内で前記仮想マシンにより参照されるデータを必要メモリデータとして特定する手順と、
特定した必要メモリデータを前記移動先に移動する手順と、
を含むことを特徴とする付記７の移行処理方法。
【０１３２】
［付記１２］
前記類似情報が、実行番号、類似候補点、および、類似度を含むことを特徴とする付記８の移行処理方法。
【０１３３】
［付記１３］
前記メモリアクセスパターンが、メモリアクセスパターン番号、実行区間、メモリアドレス範囲を含むことを特徴とする付記１１の移行処理方法。
【０１３４】
［付記１４］
前記仮想マシンのメモリに対する参照データアドレスの推移である前記メモリアクセス履歴から、頂点の数が一定以上である区間を実行区間として設定し、最大頂点と最小頂点との間をメモリアドレス範囲とし、実行区間、メモリアドレス範囲を含むメモリアクセスパターンを必要メモリデータ特定用情報として作成する手順と、
作成したメモリアクセスパターンを前記必要メモリデータ特定用情報格納部に格納する手順と、
前記仮想マシンの現在の時点のメモリに対する参照データアドレスが前記メモリアクセスパターンに示されるメモリアドレス範囲に含まれる実行区間内で前記仮想マシンにより参照されるデータを必要メモリデータとして特定する手順と、
特定した必要メモリデータを前記移動先に移動する手順と、
をコンピュータに実行させることを特徴とする付記９のプログラム。
【０１３５】
［付記１５］
前記類似情報が、実行番号、類似候補点、および、類似度を含むことを特徴とする付記１０のプログラム。
【０１３６】
［付記１６］
前記メモリアクセスパターンが、メモリアクセスパターン番号、実行区間、メモリアドレス範囲を含むことを特徴とする付記１４のプログラム。
【産業上の利用可能性】
【０１３７】
本発明は、データセンター上のサーバ負荷を分散させる場合に適用できる。また、本発明は、当該サーバの定期メンテナンスに伴う一時停止を行う際に、当該サーバ上で実行されている仮想マシンの移動の際にも適用可能である。
【符号の説明】
【０１３８】
０１０    移行処理装置
０１１    移行制御部
０１２    必要メモリデータ特定用情報格納部
１００    コンピュータ
１１０    仮想マシン送信部
１２０    仮想マシン
１３０    メモリアクセス情報取得部
１４０    データ送信判定部
１５０    類似情報格納部
１５１    類似候補点
１５２    類似度
１６０    参照データ推定部
１７０    メモリアドレス監視部
１８０    メモリアクセス情報格納部
１８１    実行番号
１８２    実行命令アドレス
１８３    参照データアドレス
２００    コンピュータ
２１０    仮想マシン受信部
２２０    仮想マシン
３１０    メモリアクセスパターン格納部
３１１    アクセスパターン番号
３１２    実行区間
３１３    メモリアドレス範囲
３２０    メモリアクセスパターン生成部
４１０    ｌｉｂｖｉｒｔｄ
４２０    ＫＶＭ
４３０    ｖａｌｇｒｉｎｄ
５１０    ｌｉｂｖｉｒｔｄ
５２０    ＫＶＭ
６００    情報処理システム
【図１】
2014052725.tif 000003
【図２】
2014052725.tif 000004
【図３】
2014052725.tif 000005
【図４】
2014052725.tif 000006
【図５】
2014052725.tif 000007
【図６】
2014052725.tif 000008
【図７】
2014052725.tif 000009
【図８】
2014052725.tif 000010
【図９】
2014052725.tif 000011
【図１０】
2014052725.tif 000012
【図１１】
2014052725.tif 000013
【図１２】
2014052725.tif 000014
【図１３】
2014052725.tif 000015
【図１４】
2014052725.tif 000016
【図１５】
2014052725.tif 000017
【図１６】
2014052725.tif 000018
【図１７】
2014052725.tif 000019
【図１８】
2014052725.tif 000020
【図１９】
2014052725.tif 000021