(57)【特許請求の範囲】
【請求項１】
記憶装置に記憶された第１のデータからキャッシュされた第１のキャッシュデータのデータ移行方法であって，
前記第１のキャッシュデータが記憶された第１のキャッシュメモリを制御する第１の制御部は，前記第１のキャッシュメモリ上の前記第１のキャッシュデータの記憶位置を示す情報と，前記第１のキャッシュメモリにおける所定のデータサイズのブロック毎に，該ブロックに対応するキャッシュデータの更新に応じて該更新されたキャッシュデータに対応する前記第１のデータが更新されたか否かを示す情報と，を含む第１の管理情報を作成し，
前記第１の制御部は，前記第１のキャッシュデータにアクセスするためのプログラムが他のノードに移行する際に，移行後の前記プログラムに基づいてアクセス可能な第２のキャッシュメモリを制御する第２の制御部に，前記第１の管理情報を送信し，
前記第２の制御部は，受信した前記第１の管理情報を参照して，前記第１のキャッシュメモリから前記第１のキャッシュデータを取得し，該取得した第１のキャッシュデータを前記第２のキャッシュメモリに記憶し，
前記第２の制御部は，受信した前記第１の管理情報を参照して，前記記憶した第１のキャッシュデータのうち，前記第１のデータが更新されていないことを示す前記ブロックに対応するキャッシュデータを特定し，該特定したキャッシュデータに基づいて前記第１のデータの更新を行う，
データ移行方法。
【請求項２】
請求項１において，
前記第１の管理情報を送信する工程の後，前記第１の制御部は，前記第１のキャッシュメモリにおける第１のキャッシュデータの記憶位置が変更された場合，前記第１の管理情報に含まれる前記第１のキャッシュデータの記憶位置を示す情報を更新し，
前記第１のキャッシュデータを記憶する工程では，前記第２の制御部は，前記更新された第１の管理情報を参照して，前記第１のキャッシュデータの取得を行うデータ移行方法。
【請求項３】
請求項１において，
前記第１の管理情報を送信する工程の前に，前記第２の制御部は，前記第２のキャッシュメモリ上の第２のキャッシュデータの記憶位置を示す情報を含む第２の管理情報を作成し，
前記第１の管理情報を送信する工程では，前記第２の制御部は，受信した前記第１の管理情報に，前記第１のキャッシュデータを記憶する第２のキャッシュメモリ上の記憶位置を設定し，該設定した第１の管理情報を含むように前記第２の管理情報を更新し，
前記第１のキャッシュデータを記憶する工程では，前記第２の制御部は，前記更新した第２の管理情報を参照して前記第１のキャッシュデータを取得し，該取得した第１のキャッシュデータを前記第２のキャッシュデータ内の少なくとも一部として記憶するデータ移行方法。
【請求項４】
請求項３において，
前記第１及び第２の管理情報は，それぞれ前記第１または第２のキャッシュメモリにおける所定のデータサイズのブロック毎に，キャッシュデータが記憶されているか否かを示す情報を含み，
前記第１の管理情報を送信する工程では，前記第１の制御部は，前記送信する第１の管理情報に，全ての前記ブロックにキャッシュデータが記憶されていないことを示す情報を設定し，
前記第１のキャッシュデータを記憶する工程では，前記第２の制御部は，前記第１の管理情報を送信する工程において送信された前記第１の管理情報によって管理されていたキャッシュデータであり，かつ，前記第２の管理情報を更新する工程において更新された前記第２の管理情報によって管理されるキャッシュデータのうち，前記第２の管理情報にキャッシュデータが記憶されていないことを示す情報が設定された前記ブロックに対応するキャッシュデータの取得を行い，該取得したキャッシュデータに対応する前記ブロックにキャッシュデータが記憶されていることを示す情報を前記第２の管理情報に設定するデータ移行方法。
【請求項５】
請求項３において，
前記第１及び第２の管理情報は，それぞれ前記第１または第２のキャッシュメモリにおける所定のデータサイズのブロック毎に，該ブロックに対応するキャッシュデータが他のノードから移行したキャッシュデータであるか否かを示す情報を含み，
前記キャッシュデータを記憶する工程では，前記第２の制御部は，前記第１の管理情報を送信する工程において送信された前記第１の管理情報によって管理されていたキャッシュデータであり，かつ，前記第２の管理情報を更新する工程において更新された前記第２の管理情報によって管理されるキャッシュデータのうち，前記第２の管理情報に，他のノードから移行したキャッシュデータであることを示す情報が設定された前記ブロックに対応するキャッシュデータの取得を行うデータ移行方法。
【請求項６】
請求項３において，
前記第１及び第２の管理情報は，それぞれ前記第１または第２のキャッシュメモリにおける所定のデータサイズのブロック毎に，該ブロックに対応するキャッシュデータが移行前の前記プログラムによって最後にアクセスされた時間を示す情報を含み，
前記第２の制御部は，前記第１の管理情報を送信する工程において送信された前記第１の管理情報によって管理されていたキャッシュデータであり，かつ，前記第２の管理情報を更新する工程において更新された前記第２の管理情報によって管理されるキャッシュデータのうち，前記第２の管理情報に，最後にアクセスされた時間として，所定の時間よりも後の時間が設定された前記ブロックに対応するキャッシュデータの取得を行うデータ移行方法。
【請求項７】
記憶装置に記憶された第１のデータからキャッシュされたキャッシュデータが記憶されたキャッシュメモリと，
前記キャッシュメモリを制御し，前記キャッシュメモリ上の前記キャッシュデータの記憶位置を示す情報と，前記キャッシュメモリにおける所定のデータサイズのブロック毎に，該ブロックに対応するキャッシュデータの更新に応じて該更新されたキャッシュデータに対応する前記第１のデータが更新されたか否かを示す情報と，を含む第１の管理情報を作成し，前記キャッシュデータにアクセスするためのプログラムが他のノードに移行する際に，移行後の前記プログラムに基づいてアクセス可能な他のキャッシュメモリを制御する他の制御部に，前記第１の管理情報を送信する制御部と，を有する，
データ移行装置。
【請求項８】
記憶装置に記憶された第１のデータからキャッシュされたキャッシュデータが記憶されたキャッシュメモリと，
他のキャッシュメモリ上の他のキャッシュデータの記憶位置を示す情報と，前記他のキャッシュメモリにおける所定のデータサイズのブロック毎に，該ブロックに対応するキャッシュデータの更新に応じて該更新されたキャッシュデータに対応する前記第１のデータが更新されたか否かを示す情報と，を含む第１の管理情報を，他の制御部から受信し，該受信した第１の管理情報を参照して，前記他のキャッシュメモリから前記他のキャッシュデータを取得し，該取得した他のキャッシュデータを前記キャッシュメモリに記憶し，前記受信した前記第１の管理情報を参照して，前記記憶したキャッシュデータのうち，前記第１のデータが更新されていないことを示す前記ブロックに対応するキャッシュデータを特定し，該特定したキャッシュデータに基づいて前記第１のデータの更新を行う制御部と，を有する，
データ移行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，データ移行方法及びデータ移行装置に関する。
【背景技術】
【０００２】
稼働中の業務システム等において，例えば，予めスケジューリングされたタイミングでジョブの実行が行われる。ジョブは，例えば，コンピュータ（以下，ノードとも呼ぶ）のリソース（例えば，ＣＰＵやメモリ等）を使用して動作するプログラムの集合体であり，これらのプログラムが連携して動作することによって処理結果を得るものである。
【０００３】
このようなジョブの実行中において，例えば，ジョブが実行するノードのリソース（メモリやディスク等）の状況に応じて，ジョブが実行されるノードを変更する必要がある場合がある。この場合，運用管理者は，例えば，移行前のノードで実行されるジョブのプロセスを停止し，ジョブが実行するために必要な情報（例えば，ジョブの管理情報やユーザに関する情報等）を移行先のノードに移行する。そして，運用管理者は，さらに，移行先のノードにおいて，移行したジョブのプロセスの実行を再開する（以下，この処理をジョブマイグレーションとも呼ぶ）。これにより，ノードのリソースの状況に応じて，ジョブを実行するノードを柔軟に変更することが可能になる。（例えば，特許文献１乃至２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２３４５６４号公報
【特許文献２】特開２０１１−２１０１５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のようなジョブの実行中において，例えば，外部記憶装置（以下，単に記憶装置とも呼ぶ）に記憶されたデータへのアクセスが発生した場合，データアクセスを管理するファイルシステムは，アクセスされたデータをノード内のメモリに記憶する場合がある（以下，メモリに記憶されたデータをキャッシュデータとも呼ぶ）。これにより，ジョブが以前アクセスしたデータに再度アクセスする場合に，記憶装置にアクセスすることなくデータを取得することが可能になる。そのため，ジョブによるデータアクセスの効率化を図ることが可能になる。また，ジョブがキャッシュデータを更新した場合，ファイルシステムは，所定のタイミングでキャッシュデータと記憶装置に記憶されたデータとを同期させる。これにより，ジョブがキャッシュデータを更新する毎に記憶装置へのアクセスが発生することを防止することができる。
【０００６】
ここで，ファイルシステムは，ジョブマイグレーションが実行される場合において，ジョブマイグレーションを行う前に，キャッシュデータと記憶装置に記憶されたデータとの同期処理を行う。これにより，ファイルシステムは，ジョブマイグレーションの実行前後でデータの整合性を合わせることが可能になる。そして，ジョブマイグレーションが実行されたジョブ（以下，移行後ジョブとも呼ぶ）は，処理の再開後，記憶装置にアクセスを行うことにより必要なデータを取得する。
【０００７】
しかし，例えば，キャッシュデータと記憶装置に記憶されたデータとの差異が大きい場合，データの同期に時間を要するため，ジョブマイグレーションの完了が遅れる場合がある。また，ジョブマイグレーションが実行された場合，移行後ジョブは，ジョブマイグレーション前にメモリ上に記憶されていたデータについても記憶装置に再度アクセスする必要がある。したがって，ジョブマイグレーションの実行された場合，移行後ジョブによるデータアクセスの効率が低下する。
【０００８】
そこで，一つの実施の形態の目的は，効率的にジョブマイグレーションを行うことができるデータ移行方法及びデータ移行装置を提供することにある。
【課題を解決するための手段】
【０００９】
実施の形態の一つの側面によれば，記憶装置に記憶された第１のデータからキャッシュされた第１のキャッシュデータの移行方法であって，
前記第１のキャッシュデータが記憶された第１のキャッシュメモリを制御する第１の制御部は，前記第１のキャッシュメモリ上の前記第１のキャッシュデータの記憶位置を示す情報と，前記第１のキャッシュメモリにおける所定のデータサイズのブロック毎に，該ブロックに対応するキャッシュデータの更新に応じて該更新されたキャッシュデータに対応する前記第１のデータが更新されたか否かを示す情報と，を含む第１の管理情報を作成し，
前記第１の制御部は，前記第１のキャッシュデータにアクセスするプログラムが他のノードに移行する際に，移行後の前記プログラムがアクセス可能な第２のキャッシュメモリを制御する第２の制御部に，前記第１の管理情報を送信し，
前記第２の制御部は，受信した前記第１の管理情報を参照して，前記第１のキャッシュメモリから前記第１のキャッシュデータを取得し，該取得した第１のキャッシュデータを前記第２のキャッシュメモリに記憶し，
前記第２の制御部は，受信した前記第１の管理情報を参照して，前記記憶した第１のキャッシュデータのうち，前記第１のデータが更新されていないことを示す前記ブロックに対応するキャッシュデータを特定し，該特定したキャッシュデータに基づいて前記第１のデータの更新を行う。
【発明の効果】
【００１０】
一つの側面によれば，効率的にジョブマイグレーションを行うことができる。
【図面の簡単な説明】
【００１１】
【図１】情報処理システムの全体構成を示す図である。
【図２】物理マシンによるデータアクセスを説明する図である。
【図３】物理マシンによるデータアクセスを説明する図である。
【図４】物理マシンによるデータアクセスを説明する図である。
【図５】物理マシンによるデータアクセスを説明する図である。
【図６】物理マシンによるデータアクセスを説明する図である。
【図７】物理マシンのハードウエア構成を示す図である。
【図８】図７の物理マシンの機能ブロック図である。
【図９】図７の物理マシンの機能ブロック図である。
【図１０】第１の実施の形態におけるデータ移行処理の概略を示すフローチャート図である。
【図１１】第１の実施の形態におけるデータ移行処理の概略を説明する図である。
【図１２】第１の実施の形態におけるデータ移行処理の概略を説明する図である。
【図１３】第１の実施の形態におけるデータ移行処理の詳細を示すフローチャート図である。
【図１４】第１の実施の形態におけるデータ移行処理の詳細を示すフローチャート図である。
【図１５】第１の実施の形態におけるデータ移行処理を説明する図である。
【図１６】第１の実施の形態におけるデータ移行処理を説明する図である。
【図１７】第１の実施の形態におけるデータ移行処理を説明する図である。
【図１８】第２の実施の形態におけるデータ移行処理を示すフローチャート図である。
【図１９】第２の実施の形態におけるデータ移行処理を説明する図である。
【図２０】第３の実施の形態におけるデータ移行処理を示すフローチャート図である。
【図２１】第４の実施の形態におけるデータ移行処理を示すフローチャート図である。
【図２２】第５の実施の形態におけるデータ移行処理を示すフローチャート図である。
【図２３】第５の実施の形態におけるデータ移行処理を説明する図である。
【発明を実施するための形態】
【００１２】
［情報処理システムの構成］
図１は，情報処理システムの全体構成を示す図である。図１に示す情報処理システム１０は，物理マシン１と，記憶媒体２とが設けられている。そして，情報処理システム１０には，例えば，図１に示すように，インターネットやイントラネット等のネットワークを介して，利用者端末３からアクセスが可能になっている。
【００１３】
物理マシン１は，例えば，利用者にサービスを提供する業務システムが構築される物理マシンである。そして，物理マシン１内のＣＰＵにおいてジョブが動作することにより，利用者に対するサービスの提供を実現するための各処理を行う。また，このジョブは，例えば，処理の実行に伴って記憶媒体２に記憶されたデータ（以下，第１のデータとも呼ぶ）の読み込み，または記憶媒体２へのデータの書き込みを行う。なお，図１の例においては，情報処理システム１０において３台の物理マシンが設けられている場合について説明するが，これ以外の数の物理マシンが設けられているものであってもよい。
【００１４】
[物理マシンにデータアクセス]
次に，図１に示す物理マシン１によるデータアクセスの具体例を説明する。図２から図６は，物理マシンによるデータアクセスを説明する図である。
【００１５】
図２は，物理マシン１Ａ及び物理マシン１Ｂの構成を説明する図である。図２における物理マシン１Ａ及び物理マシン１Ｂは，図１に示す物理マシン１に対応する。図２に示す例において，物理マシン１ＡのＣＰＵでは，ジョブ（以下，ＪＯＢとも呼ぶ）１１Ａ，１２Ａ，１３Ａと，ミドルウエア１４Ａと，ファイルシステム１５Ａ（以下，第１の制御部１５Ａとも呼ぶ）とが動作する。そして，物理マシン１Ａのハードウエア（例えば，メモリ）には，記憶領域であるキャッシュ領域１６Ａ（以下，キャッシュメモリ１６Ａ，第１のキャッシュメモリ１６Ａとも呼ぶ）が設けられている。また，図２に示す例において，物理マシン１ＢのＣＰＵでは，ジョブ１１Ｂ，１２Ｂと，ミドルウエア１４Ｂと，ファイルシステム１５Ｂ（以下，第２の制御部１５Ｂとも呼ぶ）とが動作する。そして，物理マシン１Ｂのハードウエアには，記憶領域であるキャッシュ領域１６Ｂ（以下，キャッシュメモリ１６Ｂ，第２のキャッシュメモリ１６Ｂとも呼ぶ）が設けられている。なお，図２に示す例において，ミドルウエア１４Ａ，ファイルシステム１５Ａは，例えば，物理マシン１Ａ内のＯＳ上で動作する機能である。また，ミドルウエア１４Ｂ，ファイルシステム１５Ｂは，例えば，物理マシン１Ｂ内のＯＳ上で動作する機能である。
【００１６】
図２に示す例において，ミドルウエア１４Ａは，物理マシン１ＡのＯＳ上で動作するジョブ１１Ａ，１２Ａ，１３Ａから記憶媒体２内のデータへのアクセス要求を受信した場合に，例えば，ファイルシステム１５Ａにデータのアクセス要求を行う。そして，ファイルシステム１５Ａは，ミドルウエア１４Ａからデータのアクセス要求を受けた場合に，キャッシュ領域１６Ａにアクセスする。したがって，アクセス要求を受けているデータがキャッシュ領域１６Ａに記憶されている場合，ファイルシステム１５Ａは，記憶媒体２にアクセスすることなく，キャッシュ領域１６Ａに記憶されているデータをジョブに返す。
【００１７】
すなわち，キャッシュ領域１６Ａには，例えば，ジョブ１１Ａ，１２Ａ，１３Ａが以前アクセスした記憶媒体２内のデータが記憶されている。そのため，ファイルシステム１５Ａは，ジョブから以前にアクセスしたデータへのアクセス要求があった場合，記憶媒体２にアクセスすることなくデータを取得することが可能になる。これにより，ファイルシステム１５Ａは，データアクセスの効率を高めることが可能になる。なお，ミドルウエア１４Ｂ，ファイルシステム１４Ｂ，キャッシュ領域１６Ｂの機能は，それぞれミドルウエア１４Ａ，ファイルシステム１４Ａ，キャッシュ領域１６Ａと同じであるため，説明を省略する。
【００１８】
一方，図３に示すように，ジョブからアクセス要求があったデータがキャッシュ領域１６Ａに記憶されていない場合，ファイルシステム１５Ａは，記憶媒体２にアクセスを行い，アクセス要求があったデータを取得する。
【００１９】
また，図２に示す例において，ジョブがキャッシュ領域１６Ａに記憶されたデータの更新（データの書き込み）を行う場合がある。この場合，キャッシュ領域１６Ａに記憶されたデータと，記憶媒体２に記憶されたデータとの間に差異が生じる。そのため，ファイルシステム１５Ａは，例えば，図４に示すように，所定のタイミングで，キャッシュ領域１６Ａ内における更新されたデータを記憶媒体２に記憶する（以下，これを書き戻しとも呼ぶ）。この所定のタイミングは，例えば，キャッシュ領域１６Ａ内に記憶可能な領域がなくなった場合であってよい。これにより，ジョブがキャッシュ領域１６に記憶されたデータのみを更新した場合に，キャッシュ領域１６Ａに記憶されたデータと，記憶媒体２に記憶されたデータとを同期させることが可能になる。
【００２０】
[ジョブマイグレーション]
次に，ジョブマイグレーションについて説明する。図５及び図６は，ジョブマイグレーションの具体例を説明する図である。ジョブマイグレーションは，例えば，ジョブが使用することができるノードのリソースの状況により，ジョブが実行されるノードを変更することである。具体的に，例えば，運用管理者によって，移行前のノードで実行されるジョブのプロセスを停止し，ジョブが実行するために必要な情報を移行先のノードに移行する。そして，移行先のノードにおいて，移行したジョブのプロセスの実行を再開させることによって行われる。これにより，ノードのリソースの状況に応じて，ジョブを実行するノードを柔軟に変更することが可能になる。
【００２１】
ここで，ファイルシステムは，ジョブマイグレーションが実行される場合，ジョブマイグレーションを行う前に，キャッシュデータと記憶装置に記憶されたデータとの同期処理を行う。これにより，ファイルシステムは，ジョブマイグレーションの実行前後でデータの整合性を合わせることが可能になる。そして，移行後ジョブは，処理の再開後，記憶装置にアクセスを行うことにより必要なデータを取得する。
【００２２】
具体的に，図５に示す例は，物理マシン１Ａ内で動作していたジョブ１３Ａが物理マシン１Ｂに移行する（ジョブマイグレーションを実行する）場合の例である。図５に示すように，例えば，ミドルウエア１４Ａがジョブ１３Ａのジョブマイグレーションの開始を検知した場合，ミドルウエア１４Ａは，その旨をファイルシステム１５Ａに通知する。そして，ファイルシステム１５Ａは，キャッシュ領域１６Ａに記憶されたデータと記憶媒体２に記憶されたデータの同期を行う。すなわち，ファイルシステム１５Ａは，例えば，キャッシュ領域１６Ａに記憶されたデータのうち，記憶媒体２に書き戻されていないデータについて書き戻しを行う。これにより，移行後のジョブ１３Ａは，物理マシン１Ｂでの動作の開始後，記憶媒体２にアクセスすることにより，キャッシュ領域１６Ａに記憶されていたデータにアクセスをすることが可能になる。
【００２３】
しかし，上記のようなジョブマイグレーションが行われる場合において，例えば，キャッシュ領域に記憶されたデータと，記憶媒体に記憶されたデータとの差異が大きい場合，データの同期が完了するまでに多くの時間を要する場合がある。
【００２４】
また，ジョブマイグレーションの完了後，移行後ジョブであるジョブ１３Ａからデータのアクセス要求があった場合，ファイルシステム１５Ｂは，図６に示すように，初めに，キャッシュ領域１６Ｂにアクセスを行う。ここで，ジョブマイグレーションが実行された直後において，キャッシュ領域１６Ｂには，キャッシュ領域１６Ａに記憶されていたデータ（ジョブ１３Ａがアクセスしていたデータ）は記憶されていない。そのため，ファイルシステム１５Ｂは，この場合，ジョブ１３Ａからデータアクセス要求に応じて，記憶媒体２にアクセスする必要がある。すなわち，ファイルシステム１５Ｂは，この場合，キャッシュ領域１６Ａに記憶されていたデータについても記憶媒体２から再度取得する必要がある。そのため，ジョブマイグレーションが行われる毎に，ジョブによるデータのアクセス効率が低下する。
【００２５】
そこで，本実施の形態では，ジョブの移行元ノード（物理マシン１Ａ）は，他のノードへ移行するジョブがアクセスするキャッシュデータに関する情報を，ジョブの移行先ノード（物理マシン１Ｂ）に送信する。そして，ジョブの移行先ノードは，受信したキャッシュデータに関する情報に基づいて，ジョブの移行元ノードからキャッシュデータを取得して記憶する。これにより，キャッシュデータと記憶媒体２に記憶されたデータとの同期を行うことなく，ジョブマイグレーションを行うことが可能になる。そして，ジョブマイグレーションの実行時において，ジョブの移行元ノードから移行先ノードへキャッシュデータを直接移行させることが可能になる。
【００２６】
［物理マシンのハードウエア構成］
次に，物理マシン１Ａ及び物理マシン１Ｂの構成について説明する。図７は，物理マシンのハードウエア構成を示す図である。物理マシン１Ａは，プロセッサであるＣＰＵ１０１Ａと，メモリ１０２Ａと，外部インターフェース（Ｉ／Ｏユニット）１０３Ａと，記憶媒体１０４Ａと，記憶媒体１０５Ａとを有する。各部は，バス１０６Ａを介して互いに接続される。記憶媒体１０４Ａは，例えば，記憶媒体１０４Ａ内のプログラム格納領域（図示しない）に，各プログラムを記憶する。このプログラムは，例えば，記憶媒体１０５Ａ内のキャッシュ領域１４０Ａに記憶されたキャッシュデータを他の物理マシンに移行するための処理（以下，データ移行処理とも呼ぶ）を行うためのプログラム１１０Ａである。ＣＰＵ１０１Ａは，図７に示すように，プログラム１１０Ａの実行時に，プログラム１１０Ａを記憶媒体１０４Ａからメモリ１０２Ａにロードし，プログラム１１０Ａと協働してデータ移行処理を行う。そして，ＣＰＵ１０１Ａは，例えば，プログラム１１０Ａの実行時に，必要に応じて記憶媒体２にアクセスする。また，記憶媒体１０４Ａは，例えば，データ移行処理を行う際に用いられる情報を記憶する情報格納領域１３０Ａを有する。なお，キャッシュ領域１４０Ａは，例えば，図２等におけるキャッシュ領域１６Ａに対応する。
【００２７】
また，物理マシン１Ｂは，プロセッサであるＣＰＵ１０１Ｂと，メモリ１０２Ｂと，外部インターフェース（Ｉ／Ｏユニット）１０３Ｂと，記憶媒体１０４Ｂと，記憶媒体１０５Ｂとを有する。各部は，バス１０６Ｂを介して互いに接続される。また，記憶媒体１０４Ｂは，例えば，データ移行処理を行う際に用いられる情報を記憶する情報格納領域１３０Ｂを有し，記憶媒体１０５Ｂは，例えば，キャッシュ領域１４０Ｂを有する。その他の構成については，物理マシン１Ａと同様であるため，詳細な説明を省略する。
【００２８】
[物理マシンのソフトウエア構成]
図８及び図９は，図７の物理マシンの機能ブロック図である。ＣＰＵ１０１Ａは，プログラム１１０Ａと協働することにより，例えば，アクセス要求部１１１Ａと，ファイル管理部１１２Ａと，管理データ作成部１１３Ａと，管理データ記憶部１１４Ａとして機能する。また，ＣＰＵ１０１Ａは，プログラム１１０Ａと協働することにより，例えば，移行検知部１１５Ａと，データ転送部１１６Ａと，データ取得部１１７Ａとして動作する。また，情報格納領域１３０Ａには，例えば，管理データ１３１Ａ（以下，管理情報１３１Ａ，第１の管理情報１３１Ａとも呼ぶ）が記憶されており，キャッシュ領域１４０Ａには，キャッシュデータ１４１Ａ（以下，第１のキャッシュデータ１４１Ａとも呼ぶ）が記憶されている。なお，図２等におけるミドルウエア１４Ａには，例えば，アクセス要求部１１１Ａが対応する。また，図２等におけるファイルシステム１５Ａには，例えば，ファイル管理部１１２Ａと，管理データ作成部１１３Ａと，管理データ記憶部１１４Ａと，移行検知部１１５Ａと，データ転送部１１６Ａと，データ取得部１１７Ａとが対応する。
【００２９】
そして，ＣＰＵ１０１Ｂは，プログラム１１０Ｂと協働することにより，例えば，アクセス要求部１１１Ｂと，ファイル管理部１１２Ｂと，管理データ作成部１１３Ｂと，管理データ記憶部１１４Ｂとして機能する。また，ＣＰＵ１０１Ｂは，プログラム１１０Ｂと協働することにより，例えば，移行検知部１１５Ｂと，データ転送部１１６Ｂと，データ取得部１１７Ｂとして動作する。また，情報格納領域１３０Ｂには，例えば，管理データ１３１Ｂ（以下，管理情報１３１Ｂ，第２の管理情報１３１Ｂとも呼ぶ）が記憶されており，キャッシュ領域１４０Ｂには，キャッシュデータ１４１Ｂ（以下，第２のキャッシュデータ１４１Ｂとも呼ぶ）が記憶されている。なお，図２におけるミドルウエア１４Ｂには，例えば，アクセス要求部１１１Ｂが対応する。また，図２におけるファイルシステム１５Ｂには，例えば，ファイル管理部１１２Ｂと，管理データ作成部１１３Ｂと，管理データ記憶部１１４Ｂと，移行検知部１１５Ｂと，データ転送部１１６Ｂと，データ取得部１１７Ｂとが対応する。以下，図２等に示すように，物理マシン１Ａで動作するジョブが物理マシン１Ｂに移行する場合について説明する。
【００３０】
アクセス要求部１１１Ａは，例えば，ジョブからデータのアクセス要求または更新要求を受信した場合に，後述するファイル管理部１１２Ａに，データのアクセス要求または更新要求を行う。また，アクセス要求部１１１Ａは，例えば，ジョブから記憶媒体２へのデータの書き戻し要求を受信した場合に，後述するファイル管理部１１２Ａに，データの書き戻し要求を行う。アクセス要求部１１１Ｂの機能もこれと同様である。
【００３１】
ファイル管理部１１２Ａは，例えば，キャッシュデータ１４１Ａが記憶されたキャッシュ領域１４０Ａ（以下，第１のキャッシュメモリ１４０Ａとも呼ぶ）の制御を行う。具体的に，ファイル管理部１１２Ａは，例えば，アクセス要求部１１１Ａから受信したデータのアクセス要求に基づき，キャッシュ領域１４０Ａまたは記憶媒体２にアクセスし，アクセス要求されたデータの取得を行う。また，ファイル管理部１１２Ａは，例えば，アクセス要求部１１１Ａから受信したデータの更新要求に基づき，キャッシュ領域１４０Ａにアクセスし，更新要求があったデータの更新を行う。さらに，ファイル管理部１１２Ａは，例えば，アクセス要求部１１１Ａから受信したデータの書き戻し要求に基づき，キャッシュ領域１４０Ａにアクセスし，キャッシュ領域１４０Ａに記憶されたデータを記憶媒体２に書き戻す。ファイル管理部１１２Ｂの機能もこれと同様である。
【００３２】
管理データ作成部１１３Ａは，例えば，キャッシュデータ１４１Ａに関する管理データ１３１Ａを作成する。管理データ１３１Ａは，例えば，キャッシュ領域１４０Ａ上のキャッシュデータ１４１Ａの記憶位置を示す情報を含む情報である。また，管理データ１３１Ａは，例えば，キャッシュ領域１４０Ａにおける所定のデータサイズのブロック毎に，各ブロックに対応するキャッシュデータの更新に応じて，更新されたキャッシュデータに対応する記憶媒体２内のデータが更新されたか否かを示す情報を含む。所定のデータサイズは，例えば，４（ＫＢ）である。管理データ１３１Ａの詳細については後述する。また，管理データ記憶部１１４Ａは，例えば，管理データ作成部１１３Ａが作成した管理データ１３１Ａを情報格納領域１３０Ａに記憶する。管理データ作成部１１３Ｂ及び管理データ記憶部１１４Ｂの機能もこれと同様である。
【００３３】
移行検知部１１５Ａは，例えば，ジョブマイグレーションが実行される（実行された）場合に，これを検知する。移行検知部１１５Ａは，例えば，ジョブマイグレーションが実行される際に，その旨の通知をジョブマイグレーションが実行される（実行された）ジョブから受信することにより検知するものであってもよい。移行検知部１１５Ｂの機能もこれと同様である。
【００３４】
データ転送部１１６Ａは，例えば，移行検知部１１５Ａがジョブマイグレーションの実行を検知した場合に，管理データ作成部１１３Ａが作成した管理データ１３１Ａを物理マシン１Ｂのデータ取得部１１７Ｂに送信する。そして，物理マシン１Ｂのデータ取得部１１７Ｂが管理データ１３１Ａを受信した場合，物理マシン１Ｂ内のファイル管理部１１２Ｂは，例えば，受信した管理データ１３１Ａを参照し，キャッシュ領域１４０Ａからキャッシュデータ１４１Ａを取得する。さらに，ファイル管理部１１２Ｂは，取得したキャッシュデータ１４１Ａをキャッシュ領域１４０Ｂ（以下，第２のキャッシュメモリ１４０Ｂとも呼ぶ）に記憶する。すなわち，この場合，物理マシン１Ａは，物理マシン１Ｂに管理データ１３１Ａを送信し，物理マシン１Ｂは，受信した管理データ１３１Ａを参照して，物理マシン１Ａからキャッシュデータ１４１Ａを取得する。そして，ファイル管理部１１２Ｂは，その後，記憶したキャッシュデータ１４１Ａのうち，記憶媒体２のデータが更新されていないことを示すブロックに対応するキャッシュデータを特定し，その特定したキャッシュデータに基づいて記憶媒体２のデータの更新を行う。
【００３５】
また，データ転送部１１６Ｂは，例えば，移行検知部１１５Ｂがジョブマイグレーションの実行を検知した場合に，管理データ作成部１１３Ｂが作成した管理データ１３１Ｂをデータ取得部１１７Ａに送信するものであってもよい。管理データ１３１Ｂは，例えば，キャッシュ領域１４０Ｂにキャッシュデータ１４１Ａを記憶する際に，キャッシュデータ１４１Ａの記憶位置を示す情報を含む情報である。そして，この場合，データ転送部１１６Ａは，データ取得部１１７Ａが受信した管理データ１３１Ｂを参照して，キャッシュデータ１４１Ａを物理マシン１Ｂ内のデータ取得部１１７Ｂに送信し，キャッシュ領域１４０Ｂに記憶する。すなわち，この場合，物理マシン１Ｂは，物理マシン１Ａに管理データ１３１Ｂを送信し，物理マシン１Ａが管理データ１３１Ｂを参照して物理マシン１Ｂにキャッシュデータ１４１Ａを送信する。
【００３６】
［第１の実施の形態］
次に，第１の実施の形態について説明する。図１０は，第１の実施の形態におけるデータ移行処理の概略を示すフローチャート図である。また，図１１及び図１２は，第１の実施の形態におけるデータ移行処理の概略を説明する図である。図１１及び図１２を参照しながら図１０のデータ移行処理の概略について説明する。なお，以下，図５等で説明した場合と同様に，物理マシン１Ａで動作するジョブ１３Ａが物理マシン１Ｂへのジョブマイグレーションを実行する場合を説明する。また，図１１及び図１２においては，既に説明した図２等と異なる点について説明する。
【００３７】
初めに，物理マシン１Ａ（物理マシン１Ａ内の第１の制御部１５Ａ）は，例えば，物理マシン１Ａで動作するジョブが他のノードへのジョブマイグレーションを実行するまで待機する（Ｓ１のＮＯ）。そして，ジョブマイグレーションの実行を検知した場合（Ｓ１のＹＥＳ），物理マシン１Ａは，管理データ１３１Ａを作成する（Ｓ２）。そして，物理マシン１Ａは，図１１に示すように，管理データ１３１Ａを物理マシン１Ｂに送信する（Ｓ３）。
【００３８】
一方，物理マシン１Ｂ（物理マシン１Ｂ内の第２の制御部１５Ｂ）は，物理マシン１Ａから管理データ１３１Ａを受信するまで待機する（Ｓ１１のＮＯ）。そして，物理マシン１Ａから管理データ１３１Ａを受信したときに（Ｓ１１のＹＥＳ），物理マシン１Ｂは，図１１に示すように，管理データ１３１Ａを参照して物理マシン１Ａ内のキャッシュ領域１４０Ａに記憶されたキャッシュデータ１４１Ａにアクセスして取得する（Ｓ１２）。さらに，物理マシン１Ｂは，取得したキャッシュデータ１４１Ａをキャッシュ領域１４０Ｂに記憶する（Ｓ１３）。すなわち，本実施の形態における物理マシン１Ａは，ジョブマイグレーションの実行時において，キャッシュデータ１４１Ａの記憶位置を示す情報を含む管理データ１３１Ａを物理マシン１Ｂに送信する。そのため，物理マシン１Ｂは，受信した管理データ１３１Ａを参照することにより，物理マシン１Ａに直接アクセスし，キャッシュデータ１４１Ａを取得することが可能になる。
【００３９】
図１０に戻り，物理マシン１Ｂは，例えば，受信した管理データ１３１Ａを参照して，キャッシュ領域１４０Ａに記憶されたキャッシュデータ１４１Ａのうち，記憶媒体２内のデータが更新されていないことを示すブロックに対応するキャッシュデータを特定する。そして，物理マシン１Ｂは，例えば，特定したキャッシュデータに基づいて記憶媒体２内のデータを更新する（Ｓ１４）。すなわち，物理マシン１Ｂが受信する管理データ１３１Ａは，各ブロックに対応するキャッシュデータが記憶媒体２に書き戻されているか否かを示す情報を有している。そのため，物理マシン１Ｂは，管理データ１３１Ａを参照することにより，キャッシュデータ１４１Ａのうち，記憶媒体２に書き戻されていないキャッシュデータを特定することができる。そして，物理マシン１Ｂは，例えば，図１１に示すように，ジョブマイグレーションの完了後，特定したキャッシュデータを記憶媒体２に書き戻すことが可能になる（Ｓ１４）。これにより，物理マシン１Ａは，ジョブマイグレーションの実行前において，キャッシュ領域１４０Ａのキャッシュデータ１４１Ａと記憶媒体２内のデータとを同期させる必要がなくなる。そのため，ジョブマイグレーションの実行に要する時間を短縮させることが可能になる。
【００４０】
さらに，図１２に示すように，ジョブマイグレーションの完了後に物理マシン１Ｂで動作を開始（再開）したジョブ１３Ａは，物理マシン１Ａに記憶されていたキャッシュデータ１４１Ａがキャッシュ領域１４０Ｂに記憶されている状態で動作を開始することが可能になる。そのため，ジョブ１３Ａは，キャッシュデータ１４１Ａにアクセスする場合，記憶媒体２にアクセスする必要がなくなる。これにより，ジョブマイグレーションを行ったジョブによるデータアクセスの効率の低下を防止することが可能になる。
【００４１】
このように，第１の実施の形態によれば，キャッシュデータ１４１Ａが記憶されたキャッシュ領域１４０Ａを制御する第１の制御部１５Ａは，管理データ１３１Ａを作成する。そして，第１の制御部１５Ａは，キャッシュデータ１４１Ａにアクセスするプログラム（ジョブ）が他のノードに移行する際に，移行後のプログラムがアクセス可能なキャッシュ領域１４０Ｂを制御する第２の制御部１５Ｂに，管理データ１３１Ａを送信する。さらに，第２の制御部１５Ｂは，受信した管理データ１３１Ａを参照して，キャッシュ領域１４０Ａからキャッシュデータ１４１Ａを取得し，取得したキャッシュデータ１４１Ａをキャッシュ領域１４０Ｂに記憶する。これにより，ジョブマイグレーションに要する時間を短縮することが可能になる。また，ジョブマイグレーションの完了後において，ジョブによるデータのアクセス効率の低下を防止することが可能になる。
【００４２】
なお，本実施の形態におけるデータ移行処理は，物理マシン１Ｂが物理マシン１Ａに管理データ１３１Ｂを送信し，受信した管理データ１３１Ｂに基づき，物理マシン１Ａがキャッシュデータ１４１Ａを物理マシン１Ｂに送信するものであってもよい。さらに，この場合，物理マシン１Ａが物理マシン１Ｂに管理データ１３１Ａを送信し，物理マシン１Ｂがキャッシュデータ１４１Ａのうち，記憶媒体２に書き戻されていないキャッシュデータを書き戻すものであってもよい。
【００４３】
[第１の実施の形態の詳細]
次に，第１の実施の形態の詳細について説明する。図１３及び図１４は，第１の実施の形態におけるデータ移行処理の詳細を説明するフローチャート図である。また，図１５から図１７は，第１の実施の形態におけるデータ移行処理の詳細を説明する図である。図１５から図１７を参照しながら，図１３及び図１４のデータ移行処理の詳細を説明する。なお，以下，物理マシン１Ａがキャッシュデータ１４１Ａの移行を行う場合において，キャッシュデータ１４１Ａに含まれる全てのキャッシュデータを物理マシン１Ｂに送信するものとして説明を行う。
【００４４】
[第１の物理マシンにおいて実行されるデータ移行処理]
初めに，物理マシン１Ａにおいて実行されるデータ移行処理について説明する。物理マシン１Ａの管理データ作成部１１３Ａは，例えば，所定の条件に合致した場合に，管理データ１３１Ａを作成する（Ｓ２０）。この所定の条件は，記憶媒体２内のデータがキャッシュ領域１４０Ａにキャッシュされるときに作成され，情報格納領域１３０Ａに記憶されるものであってよい。また，物理マシン１Ａのファイル管理部１１２Ａが新たなデータ（例えば，記憶媒体２内に新たに記憶されたデータ）が存在していることを検知したときに，その新たなデータに対応する管理データ１３１Ａを作成するものであってよい。すなわち，管理データ１３１Ａは，ファイル管理部１１２Ａが記憶媒体２内のデータとキャッシュデータ１４１Ａとの対応を管理するために作成されるものであってよい。管理データ１３１Ａの具体例については後述する。
【００４５】
そして，物理マシン１Ａのアクセス要求部１１１Ａは，例えば，物理マシン１Ａで動作するジョブ（例えば，図２等におけるジョブ１３Ａ）が他のノードへのジョブマイグレーションを実行することを検知するまで待機する（Ｓ２１のＮＯ）。そして，ジョブマイグレーションの実行を検知した場合（Ｓ２１のＹＥＳ），管理データ作成部１１３Ａは，例えば，管理データ１３１Ａを複製し，複製した管理データ１３１Ａ（以下，送信用管理データ１３１Ｃとも呼ぶ）の更新を行う。具体的に，管理データ作成部１１３Ａは，例えば，送信用管理データ１３１Ｃに含まれるキャッシュ領域１４０Ａ上のキャッシュデータ１４１Ａの記憶アドレスに関する情報を削除する（Ｓ２２）。そして，物理マシン１Ａのデータ転送部１１６Ａは，例えば，更新した送信用管理データ１３１Ｃを物理マシン１Ｂに送信する（Ｓ２３）。すなわち，詳細については後述するが，送信用管理データ１３１Ｃは，物理マシン１Ｂへの送信後，物理マシン１Ｂにおけるキャッシュデータ１４１Ｂと記憶媒体２に記憶されたデータとの対応を管理するための管理データ１３１Ｂの一部として機能する。そのため，管理データ作成部１１３Ａは，送信用管理データ１３１Ｃから，物理マシン１Ａでのキャッシュデータ１４１Ａの記憶アドレスに関する情報を削除する。これにより，送信用管理データ１３１Ｃが管理データ１３１Ｂの一部としての機能を開始した場合，物理マシン１Ｂは，管理データ１３１Ｂによって管理されたキャッシュデータのうち，物理マシン１Ａから移行するキャッシュデータを特定することが可能になる。
【００４６】
[移行元ノードの管理データの具体例]
図１５は，物理マシン１Ａで作成される管理データ１３１Ａの具体例である。図１５（Ａ）は，Ｓ２０において管理データ作成部１１３Ａが作成した管理データ１３１Ａの具体例であり，図１５（Ｂ）は，Ｓ２２において管理データ作成部１１３Ａが更新した管理データ１３１Ａの具体例である。
【００４７】
図１５に示す管理データ１３１Ａは，例えば，管理データ１３１Ａを識別する識別ＩＤと，ジョブマイグレーションが行われた場合に，管理データ１３１Ａに対応するキャッシュデータ１４１Ａが移行されたか否かを示す移行フラグとを項目として有している。また，図１５に示す管理データ１３１Ａは，キャッシュデータ１４１Ａの移行元ノードを識別する移行元ノードＩＤと，キャッシュデータ１４１Ａの移行先ノードを識別する移行先ノードＩＤとを項目として有している。また，図１５に示す管理データ１３１Ａは，キャッシュデータ１４１Ａが更新されたときに記憶媒体２への書き戻しが完了したか否かを示す書き戻しフラグを項目として有している。また，図１５に示す管理データ１３１Ａは，キャッシュデータ１４１Ａに対応するデータが含まれる記憶媒体２内のファイルを識別するファイルＩＤを項目として有している。さらに，図１５に示す管理データ１３１Ａは，キャッシュデータ１４１Ａに対応するデータのファイル内におけるオフセットを示すオフセット情報と，キャッシュデータ１４１Ａのキャッシュメモリ内における記憶位置を示す記憶アドレスとを項目として有している。
【００４８】
具体的に，図１５（Ａ）における管理データ１３１Ａは，ジョブマイグレーションが行われる前の状態であるため，移行フラグ，移行元ノードＩＤ，移行先ノードＩＤの項目に情報が設定されていない。また，例えば，図１５（Ａ）の例において識別ＩＤが「１」である管理データ１３１Ａには，書き戻しフラグとして，記憶媒体２への書き戻しが完了していることを示す「済」が設定されている。さらに，識別ＩＤが「１」である管理データ１３１Ａは，ファイル識別ＩＤとして「Ｆｉｌｅ１−３」が設定されており，オフセット情報として「２０００」が設定されており，記憶アドレスとして「０ｘ１１２２３３４４」が設定されている。また，例えば，図１５（Ａ）の例において識別ＩＤが「４」である管理データ１３１Ａには，書き戻しフラグとして，記憶媒体２への書き戻しが完了していないことを示す「未」が設定されている。すなわち，ファイル管理部１１２Ａは，例えば，管理データ１３１Ａ内の記憶アドレスを参照することにより，キャッシュデータ１４１Ａの記憶位置を特定することが可能になる。また，ファイル管理部１１２Ａは，例えば，管理データ１３１Ａ内のファイル識別ＩＤ及びオフセット情報を参照することにより，記憶媒体２内のデータの記憶位置を特定することが可能になる。さらに，ファイル管理部１１２Ａは，管理データ１３１Ａにより，キャッシュデータ１４１Ａと記憶媒体２内のデータとを対応して管理することが可能になる。なお，図１５（Ａ）におけるその他の情報については，上記で説明した情報と同様であるため説明を省略する。
【００４９】
そして，図１５（Ｂ）示す管理データ１３１Ａは，物理マシン１Ａのアクセス要求部１１１Ａが，ジョブマイグレーションの実行を検知した後の管理データ１３１Ａである。そのため，図１５（Ｂ）に示す管理データ１３１Ａには，ジョブマイグレーションに関する情報である移行元ノードＩＤ，移行先ノードＩＤの項目に情報が設定されている。具体的に，図１５（Ｂ）の例において識別ＩＤが「１」である管理データ１３１Ａには，移行フラグとして，キャッシュデータの移行が完了していないことを示す「未」が設定されている。さらに，図１５（Ｂ）の例において識別ＩＤが「１」である管理データ１３１Ａには，移行元ＩＤとして，「Ｎｏ．１」が設定されており，移行先ＩＤとして「Ｎｏ．２」が設定されている。すなわち，図１５（Ｂ）の管理データ１３１Ａが示すキャッシュデータ１４１Ａは，ジョブマイグレーションの実行に伴い，ノード「Ｎｏ．１」からノード「Ｎｏ．２」に移行する（移行した）ことを示している。また，図１５（Ｂ）に示す管理データ１３１Ａは，図１５（Ａ）に示す管理データ１３１Ａと異なり，記憶アドレスに設定された情報が削除されている。なお，以下，ノード「Ｎｏ．１」は物理マシン１Ａに対応し，ノード「Ｎｏ．２」は物理マシン１Ｂに対応するものとして説明する。また，図１５（Ｂ）におけるその他の情報については，上記で説明した情報と同様であるため説明を省略する。
【００５０】
[第２の物理マシンにおいて実行されるデータ移行処理]
次に，物理マシン１Ｂにおいて実行されるデータ移行処理について説明する。物理マシン１Ｂの管理データ作成部１１３Ｂは，例えば，所定の条件に合致した場合に，管理データ１３１Ｂを作成する（Ｓ３０）。すなわち，物理マシン１Ａにおいて管理データ１３１Ａが記憶媒体２に記憶されたデータとキャッシュデータ１４１Ａとを対応させて管理しているのと同様に，管理データ１３１Ｂは，記憶媒体２に記憶されたデータとキャッシュデータ１４１Ｂとを対応させて管理する。なお，所定の条件は，例えば，物理マシン１Ａの管理データ作成部１１３Ａが管理データ１３１Ａを作成する条件と同じものであってよい。
【００５１】
また，物理マシン１Ｂのデータ取得部１１７Ｂは，例えば，物理マシン１Ａから送信用管理データ１３１Ｃを受信するまで待機する（Ｓ３１のＮＯ）。そして，送信用管理データ１３１Ｃを受信した場合，物理マシン１Ｂのファイル管理部１１２Ｂは，例えば，物理マシン１Ａから取得するキャッシュデータ１４１Ａを記憶するための記憶領域を確保する（Ｓ３２）。具体的に，この記憶領域は，ファイル管理部１１２Ｂが管理するキャッシュデータ１４１Ｂが記憶されているキャッシュ領域１４０Ｂ内の記憶領域であってよい。そして，管理データ作成部１１３Ｂは，例えば，送信用管理データ１３１Ｃを含むように管理データ１３１Ｂを更新する（Ｓ３３）。すなわち，管理データ作成部１１３Ｂは，例えば，受信した送信用管理データ１３１Ｃを管理データ１３１Ｂの一部として機能させる。以下，管理データ１３１Ｂの具体例について説明する。
【００５２】
[移行先ノードの管理データの具体例（１）]
図１６は，物理マシン１Ｂで作成される管理データ１３１Ｂの具体例である。図１６（Ａ）は，Ｓ３０において管理データ作成部１１３Ｂが作成した管理データの具体例であり，図１６（Ｂ）は，Ｓ３３において管理データ作成部１１３Ａが更新した管理データの具体例である。
【００５３】
図１６に示す管理データ１３１Ｂは，図１５において説明した管理データ１３１Ａと同じ項目を有している。具体的に，図１６（Ａ）に示す管理データ１３１Ｂは，図１５（Ａ）に示す管理データ１３１Ａと同様に，移行フラグ，移行元ノードＩＤ，移行先ノードＩＤの項目に情報が設定されていない。また，例えば，図１６（Ａ）の例において識別ＩＤが「１」である管理データ１３１Ｂには，書き戻しフラグとして「済」が設定されている。さらに，図１６（Ａ）の例において識別ＩＤが「１」である管理データ１３１Ｂには，ファイル識別ＩＤとして「Ｆｉｌｅ２−１」が設定されており，オフセット情報として「１７００」が設定されており，記憶アドレスとして「０ｘ５５４４３３２２」が設定されている。なお，図１６（Ａ）におけるその他の情報については，上記で説明した情報と同様であるため説明を省略する。
【００５４】
そして，図１６（Ｂ）における管理データ１３１Ｂは，Ｓ３３において管理データ作成部１１３Ｂが更新した管理データの具体例である。図１６（Ｂ）における管理データ１３１Ｂにおいて，識別ＩＤが「１」から「４」である管理データ１３１Ｂは，それぞれ，図１５（Ｂ）の例における識別ＩＤが「１」から「４」である管理データ１３１Ａ（送信用管理データ１３１Ｃ）に対応する。そして，図１６（Ｂ）における管理データ１３１Ｂにおいて，識別ＩＤが「５」から「７」である管理データ１３１Ｂは，それぞれ，図１６（Ａ）の例における識別ＩＤが「１」から「３」である管理データ１３１Ｂに対応する。
【００５５】
すなわち，図１６（Ｂ）における管理データ１３１Ｂは，図１６（Ａ）における管理データ１３１Ｂの状態から，図１５（Ｂ）における管理データ１３１Ａ（送信用管理データＣ）を含む形で更新されている。これにより，ファイル管理部１１２Ｂは，キャッシュデータ１４１Ａの移行が完了した後，キャッシュデータ１４１Ａをキャッシュデータ１４１Ｂと同様に管理することが可能になる。具体的に，管理データ１３１Ａは，キャッシュデータ１４１Ａのうち，記憶媒体２への書戻しが完了していないキャッシュデータに関する情報を含んでいる。そのため，図１６（Ｂ）に示す管理データ１３１Ｂは，キャッシュデータ１４１Ａのうち，書戻しが完了しているキャッシュデータと，書戻しが完了していないキャッシュデータとを区別して管理することが可能になる。したがって，物理マシン１Ａのファイル管理部１１２Ａは，ジョブマイグレーションが実行された際に，キャッシュデータ１４１Ａと記憶媒体２に記憶されたデータとを同期することなく，物理マシン間で直接キャッシュデータの移行を行うことが可能になる。
【００５６】
図１４に戻り，データ取得部１１７Ｂは，例えば，物理マシン１Ａ内のキャッシュ領域１４０Ａに記憶された管理データ１３１Ａにアクセスを行う（Ｓ３４）。すなわち，Ｓ３１においてデータ取得部１１７Ｂが送信用管理データ１３１Ｃを受信してから，後述するＳ３５においてデータ取得部１１７Ｂが管理データ１３１Ｂを参照してキャッシュデータ１４１Ａを取得するまでに，タイムラグがある可能性がある。この場合，キャッシュデータ１４１Ａを取得する前に，キャッシュデータ１４１Ａが記憶されているキャッシュ領域１４０Ａ内の記憶位置が変更されている可能性がある。そのため，データ取得部１１７Ｂは，例えば，キャッシュデータ１４１Ａの取得を行う際に，管理データ１３１Ｂ内の情報に基づき物理マシン１Ａに記憶されている管理データ１３１Ａを参照し，キャッシュデータ１４１Ａへのアクセスを行う。これにより，キャッシュデータ１４１Ａを取得する前に，キャッシュデータ１４１Ａが記憶されているキャッシュ領域１４０Ａ内の記憶位置が変更された場合であっても，データ取得部１１７Ｂは，キャッシュデータ１４１Ａの取得を行うことが可能になる。
【００５７】
具体的に，例えば，同じキャッシュデータを管理する管理データ１３１Ａと管理データ１３１Ｂとは，ファイル識別ＩＤ及びオフセット情報については同じ情報が設定されている。これは，ジョブマイグレーションの実行に伴ってキャッシュデータが移行した場合においても，そのキャッシュデータに対応する記憶媒体２内のデータの記憶位置に変更がないためである。したがって，ファイル管理部１１２Ｂは，例えば，図１６（Ｂ）に示す管理データ１３１Ｂのうち，識別ＩＤが「３」である管理データのファイル識別ＩＤである「Ｆｉｌｅ２−３」とオフセットＩＤである「１１００」を参照する。そして，図１６（Ａ）に示す管理データ１３１Ａから，ファイル識別ＩＤが「Ｆｉｌｅ２−３」であって，オフセットＩＤが「１１００」である管理データを検索する。これにより，ファイル管理部１１２Ｂは，管理データ１３１Ｂ内の情報に基づき，管理データ１３１Ａ内における対応する情報を取得することが可能になる。
【００５８】
図１４に戻り，データ取得部１１７Ｂは，例えば，管理データ１３１Ｂに対応する管理データ１３１Ａに基づき，物理マシン１Ａ内のキャッシュ領域１４０Ａに記憶されたキャッシュデータ１４１を取得する（Ｓ３５）。続いて，ファイル管理部１１２Ｂは，例えば，データ取得部１１７Ｂが取得したキャッシュデータ１４１Ａをキャッシュ領域１４０Ｂに記憶する（Ｓ３６）。ここで，管理データ作成部１１３Ｂは，キャッシュデータ１４１Ａをキャッシュ領域１４０Ｂに記憶する場合，図１７に示すように，管理データ１３１Ｂの記憶アドレスに，キャッシュデータ１４１Ａが記憶されたキャッシュ領域１４０Ｂ内の記憶位置を示す情報を記憶する。具体的に，管理データ作成部１１３Ｂは，例えば，図１７に示すように，識別ＩＤが「１」である管理データ１３１Ｂに，記憶アドレスとして「０ｘ９９８８７７６６」を記憶する。さらに，管理データ作成部１１３Ｂは，図１７に示すように，移行フラグ，移行元ノードＩＤ，移行先ノードＩＤの情報を削除する。これにより，管理データ作成部１１３Ｂは，キャッシュ領域１４０Ｂに記憶されたキャッシュデータ１４１Ａとキャッシュ領域１４０Ｂに記憶されているキャッシュデータ１４１Ｂとを同じように管理することが可能になる。図１７におけるその他の情報についても同様であるため説明を省略する。
【００５９】
なお，移行後ジョブは，例えば，図１４に示すフローチャートにおけるＳ３６の後だけでなく，図１４に示すフローチャートにおけるＳ３３の後であってＳ３４の前に動作を開始するものであってよい。すなわち，移行後ジョブは，キャッシュデータ１４１Ａが物理マシン１Ｂ内のキャッシュ領域１４０Ｂに移行する前に動作を再開するものであってよい。そして，この場合，データ取得部１１７Ｂは，移行後ジョブからキャッシュデータ１４１Ａに含まれるデータにアクセス要求があったときに，初めて，キャッシュ領域１４０Ａに記憶されているキャッシュデータ１４１Ａの全部または一部を取得するものであってよい。
【００６０】
図１４に戻り，ファイル管理部１１２Ｂは，例えば，所定のタイミングで管理データ１３１Ｂを参照し，キャッシュデータ１４１Ａのうち，記憶媒体２への書戻しが完了していないキャッシュデータを特定する。そして，ファイル管理部１１２Ｂは，例えば，記憶媒体２への書戻しを行う（Ｓ４０）。この所定のタイミングは，例えば，キャッシュ領域１４０Ｂ内の記憶領域に空きがなくなった場合等であってよい。
【００６１】
［第２の実施の形態］
次に，第２の実施の形態について説明する。図１８は，第２の実施の形態におけるデータ移行処理を示すフローチャートである。また，図１９は，第２の実施の形態におけるデータ移行処理を説明する図である。図１９を参照しながら，図１８のデータ移行処理について説明する。
【００６２】
第２の実施の形態では，ファイル管理部１１２Ａ，１１２Ｂは，所定のデータサイズ（例えば，４（ＫＢ））のブロック毎にキャッシュデータを管理する。そして，例えば，キャッシュ領域１４０Ａ上のキャッシュデータ１４１Ａのうち，所定の条件に合致したキャッシュデータのみを物理マシン１Ｂに移行する。これにより，ジョブマイグレーションに伴って，必要性が高いキャッシュデータから順に移行を行うことができる。また，物理マシン１Ａは，物理マシン１Ｂに最低限移行する必要があるキャッシュデータの移行のみ行うことができる。そのため，ジョブマイグレーションが完了するまでに要する処理時間をさらに短縮させることが可能になる。以下，図１４のＳ３４，Ｓ３５の詳細を説明することにより，第２の実施の形態のデータ移行処理の詳細を説明する。また，以下，図１４のＳ３４，Ｓ３５の処理をデータ取得処理とも呼ぶ。なお，第２の実施の形態におけるその他の処理については，図１３及び図１４において説明した第１の実施の形態の処理を同じであるため，ここでは説明を省略する。
【００６３】
図１８において，初めに，物理マシン１Ｂのデータ取得部１１７Ｂは，例えば，図１４のＳ３１において受信した管理データ１３１Ａのうち，最初のブロックに記憶されたキャッシュデータ１４１Ａに関する情報を参照する（Ｓ４１）。すなわち，第２の実施の形態では，データ取得部１１７Ｂは，キャッシュデータ１４１Ａの移行を行う際に，管理データ１３１Ａを参照し，キャッシュデータを移行する必要があるか否かをブロック単位で判定する。なお，以下，データ取得部１１７Ｂが判定を行っているブロックを判定ブロックとも呼ぶ。
【００６４】
次に，データ取得部１１７Ｂは，判定ブロックに対応する管理データ１３１Ａの記憶アドレスの情報が削除されているか否かを判定する（Ｓ４２）。そして，記憶アドレスの情報が削除されている場合（Ｓ４２のＹＥＳ），データ取得部１１７Ｂは，例えば，図１４のＳ３４と同様に，物理マシン１Ａ内に記憶された管理データ１３１Ａにアクセスする（Ｓ４３）。さらに，データ取得部１１７Ｂは，例えば，アクセスした物理マシン１Ａ内の管理データ１３１Ａを参照して，判定ブロックに記憶されたキャッシュデータを取得する（Ｓ４４）。一方，記憶アドレスの情報が削除されていない場合（Ｓ４２のＮＯ），データ取得部１１７Ｂは，判定ブロックに記憶されたキャッシュデータの取得を行わない。すなわち，図１４のＳ３１においてデータ取得部１１７Ｂが管理データ１３１Ａを受信した後であって，Ｓ４４においてデータ取得部１１７Ｂがキャッシュデータ１４１Ａを取得するまでの間に，物理マシン１Ｂにおいて移行したジョブの動作が開始する場合がある。そして，Ｓ４４においてデータ取得部１１７Ｂがキャッシュデータ１４１Ａを取得するまでの間に動作を開始したジョブが，キャッシュデータ１４１Ａに含まれるデータと同じデータを記憶媒体２から取得する場合がある。この場合，ジョブが記憶媒体２から取得したデータは，キャッシュ領域１４０Ｂ上に記憶されるため，データ取得部１１７Ｂは，同じデータを物理マシン１Ａから取得する必要はなくなる。したがって，この場合，データ取得部１１７Ｂは，キャッシュデータ１４１Ａのうち，キャッシュ領域１４０Ｂ上に記憶されていないキャッシュデータのみを移行することにより，キャッシュデータの移行に要するＣＰＵの処理負担や時間を削減することが可能になる。
【００６５】
図１８に戻り，データ取得部１１７Ｂは，例えば，管理データ１３１Ｂを参照し，全てのブロックに記憶されたキャッシュデータの判定が終了した場合（Ｓ４５のＹＥＳ），データ取得処理を終了する。一方，判定が終了していないブロックに記憶されたキャッシュデータの判定が終了していない場合には（Ｓ４５のＮＯ），データ取得部１１７Ｂは，例えば，次のブロックを参照し（Ｓ４６），データ取得処理を継続する。以下，第２の実施の形態におけるデータ移行処理の具体例を説明する。なお，以下，管理データ１３１Ｂの識別ＩＤは，それぞれ各ブロックに対応しているものとして説明を行う。
【００６６】
図１９は，データ取得部１１７Ｂが物理マシン１Ａからキャッシュデータ１４１Ａを取得する前に，移行後ジョブが記憶媒体２にアクセスした場合を説明する図である。具体的に，図１９は，図１６（Ｂ）の状態の後，ジョブが記憶媒体２にアクセスし，識別ＩＤが「３」であるデータがキャッシュ領域１４０Ｂに記憶された場合の例である。そのため，識別ＩＤが「３」である管理データ１３１Ｂの記憶アドレスには，ジョブがアクセスした記憶媒体２内のデータが記憶されたキャッシュ領域１４０Ｂ上の記憶アドレスである「０ｘ００１１２２３３」が記憶されている。さらに，識別ＩＤが「３」である管理データ１３１Ｂの移行フラグ，移行元ノードＩＤ，移行先ノードＩＤの情報は削除されている。これにより，データ取得部１１７Ｂがキャッシュデータ１４１Ａを取得する場合，データ取得部１１７Ｂは，管理データ１３１Ｂを参照し，識別ＩＤが「３」である管理データ１３１Ｂに対応するキャッシュデータを取得する必要がないと判定することが可能になる。
【００６７】
すなわち，第２の実施形態におけるデータ移行処理では，データ取得部１１７Ｂは，キャッシュデータ１４１Ａのうち，管理データ１３１Ｂの記憶アドレスが削除されているブロックに記憶されたキャッシュデータのみの移行を行う。これにより，データ取得部１１７Ｂは，移行後ジョブがアクセスしてキャッシュ領域１４０Ｂに記憶されたデータを，物理マシン１Ａから取得することを防止することができる。そのため，キャッシュデータの移行に要するＣＰＵの処理負担や時間をさらに削減することが可能になる。
【００６８】
［第３の実施の形態］
次に，第３の実施の形態について説明する。図２０は，第３の実施の形態におけるデータ移行処理を示すフローチャートである。
【００６９】
第３の実施の形態では，第２の実施の形態と異なり，データ取得部１１７Ｂは，管理データ１３１Ｂのうち，ジョブマイグレーションの実行に伴って移行するキャッシュデータに関する管理データを特定する。そして，データ取得部１１７Ｂは，ジョブマイグレーションの実行に伴って移行するキャッシュデータのみを移行する。これにより，第２の実施の形態の場合と同様に，データ取得部１１７Ｂは，移行後ジョブがアクセスしてキャッシュ領域１４０Ｂに記憶されたデータについて，物理マシン１Ａから取得することを防止することが可能になる。以下，第２の実施の形態と同様に，図１４のＳ３４，Ｓ３５の詳細を説明することにより，第３の実施の形態のデータ移行処理の詳細を説明する。
【００７０】
図２０において，初めに，物理マシン１Ｂのデータ取得部１１７Ｂは，第２の実施の形態と同様に，例えば，図１４のＳ３１において受信した管理データ１３１Ａのうち，最初のブロックに記憶されたキャッシュデータ１４１Ａに関する情報を参照する（Ｓ５１）。そして，データ取得部１１７Ｂは，第２の実施の形態と異なり，判定ブロックに対応する管理データ１３１Ａが，ジョブマイグレーションに伴って物理マシン１Ｂに移行するキャッシュデータであるか否かを判定する（Ｓ５２）。具体的に，データ取得部１１７Ｂは，例えば，移行フラグ，移行元ノードＩＤ，移行先ノードＩＤに情報が設定されている管理データ１３１Ｂに対応するキャッシュデータを，移行する必要があるキャッシュデータとして特定する。これにより，データ取得部１１７Ｂは，移行後ジョブによるアクセスに応じてキャッシュ領域１４０Ｂに記憶されたキャッシュデータを，物理マシン１Ａから取得することを防止することができる。
【００７１】
そして，ジョブマイグレーションに伴って移行するキャッシュデータである場合（Ｓ５２のＹＥＳ），データ取得部１１７Ｂは，第２の実施の形態と同様に，例えば，物理マシン１Ａ内に記憶された管理データ１３１Ａにアクセスする（Ｓ５３）。そして，データ取得部１１７Ｂは，例えば，アクセスした管理データ１３１Ａを参照して，キャッシュデータ１４１Ａのうち，判定ブロックに記憶されたキャッシュデータを取得する（Ｓ５４）。一方，ジョブマイグレーションに伴って物理マシン１Ｂに移行するキャッシュデータではない場合（Ｓ５２のＮＯ），データ取得部１１７Ｂは，判定ブロックに記憶されたキャッシュデータ１４１Ａの取得を行わない。第３の実施の形態のその他の処理は，第２の実施の形態の処理と同じであるため，ここでは説明を省略する。
【００７２】
すなわち，第３の実施形態におけるデータ移行処理では，データ取得部１１７Ｂは，キャッシュデータ１４１Ａのうち，ジョブマイグレーションの実行に伴って移行するキャッシュデータのみの移行を行う。これにより，データ取得部１１７Ｂは，第２の実施の形態と同様に，移行後ジョブがアクセスしてキャッシュ領域１４０Ｂに記憶されたデータを，物理マシン１Ａから取得することを防止することができる。そのため，キャッシュデータの移行に要するＣＰＵの処理負担や時間をさらに削減することが可能になる。
【００７３】
［第４の実施の形態］
次に，第４の実施の形態について説明する。図２１は，第４の実施の形態におけるデータ移行処理を示すフローチャートである。
【００７４】
第４の実施の形態では，第２の実施の形態と異なり，データ取得部１１７Ｂは，管理データ１３１Ｂを参照し，キャッシュ領域１４０Ａに記憶されたキャッシュデータ１４１Ａのうち，記憶媒体２に書き戻されていないキャッシュデータを特定する。そして，データ取得部１１７Ｂは，記憶媒体２に書き戻されていないキャッシュデータのみを移行する。これにより，キャッシュデータ１４１Ａ，１４１Ｂと記憶媒体２に記憶されたデータとの間で整合性を確保するために必要な最低限のキャッシュデータのみを移行することが可能になる。そのため，ジョブマイグレーションに要するＣＰＵの処理負担や時間を削減することが可能になる。以下，第２の実施の形態と同様に，図１４のＳ３４，Ｓ３５の詳細を説明することにより，第４の実施の形態のデータ移行処理の詳細を説明する。
【００７５】
図２１において，初めに，物理マシン１Ｂのデータ取得部１１７Ｂは，第２の実施の形態と同様に，例えば，図１４のＳ３１において受信した管理データ１３１Ａのうち，最初のブロックに記憶されたキャッシュデータ１４１Ａに関する情報を参照する（Ｓ６１）。そして，データ取得部１１７Ｂは，第２の実施の形態と異なり，判定ブロックに対応する管理データ１３１Ａの書戻しフラグが「済」であるか否かを確認する。これにより，データ取得部１１７Ｂは，キャッシュデータ１４１Ａのうち，記憶媒体２への書戻しが完了していないキャッシュデータが記憶されているブロックを特定することが可能になる。
【００７６】
そして，記憶媒体２への書戻しが完了していないキャッシュデータである場合（Ｓ６２のＹＥＳ），データ取得部１１７Ｂは，第２の実施の形態と同様に，例えば，物理マシン１Ａ内に記憶された管理データ１３１Ａにアクセスする（Ｓ６３）。そして，データ取得部１１７Ｂは，例えば，アクセスした管理データ１３１Ａを参照して，キャッシュデータ１４１Ａのうち，判定ブロックに記憶されたキャッシュデータを取得する（Ｓ６４）。一方，記憶媒体２への書戻しが完了していないキャッシュデータでない場合（Ｓ６２のＮＯ），データ取得部１１７Ｂは，判定ブロックに記憶されたキャッシュデータ１４１Ａの取得を行わない。第４の実施の形態のその他の処理は，第２の実施の形態の処理と同じであるため，ここでは説明を省略する。
【００７７】
すなわち，第４の実施形態におけるデータ移行処理では，データ取得部１１７Ｂは，キャッシュデータ１４１Ａのうち，記憶媒体２に書き戻されていないキャッシュデータのみの移行を行う。これにより，データ取得部１１７Ｂは，ジョブマイグレーションの実行前後において，ジョブがアクセスするデータの内容の整合性を合わせることが可能になる。
【００７８】
［第５の実施の形態］
次に，第５の実施の形態について説明する。図２２は，第５の実施の形態におけるデータ移行処理を示すフローチャートである。また，図２３は，第５の実施の形態におけるデータ移行処理を説明する図である。図２３を参照しながら，図２２のデータ移行処理を説明する。
【００７９】
第５の実施の形態では，データ取得部１１７Ｂは，管理データ１３１Ｂを参照し，キャッシュデータ１４１Ａのうち，ジョブマイグレーションを行う前のジョブによって最後にアクセスされた時間が，所定時間よりも後であるキャッシュデータを特定する。これにより，データ取得部１１７Ｂは，キャッシュ領域１４０Ａに記憶されたキャッシュデータ１４１Ａのうち，マイグレーションを行ったジョブによりアクセスされる可能性の高いキャッシュデータの取得を行うことができる。そのため，ジョブマイグレーションに要するＣＰＵの処理負担や時間を削減することが可能になる。以下，第２の実施の形態と同様に，図１４のＳ３４，Ｓ３５の詳細を説明することにより，第５の実施の形態のデータ移行処理の詳細を説明する。
【００８０】
初めに，第５の実施の形態における管理データ１３１Ｂの具体例を説明する。図２３は，第５の実施の形態における管理データ１３１Ｂの具体例である。
【００８１】
図２３に示す管理データ１３１Ｂは，例えば，図１９（Ａ）に示す管理データ１３１に対して，ジョブが最後にキャッシュデータ１４１Ａにアクセスした時間を示すアクセス時間を項目として有している。具体的に，例えば，識別ＩＤが「１」である管理データ１３１Ｂは，アクセス時間として「２０１４年６月３０日１８時１５分１２秒」を設定している。この管理データ１３１Ｂのアクセス時間は，例えば，管理データ作成部１１３Ａ，１１３Ｂが，ジョブによるキャッシュデータのアクセスがあったことを検知した場合に設定するものであってよい。図２３のその他の情報については，上記の内容と同じであるため説明を省略する。
【００８２】
次に，第５の実施の形態におけるデータ移行処理の詳細を説明する。図２２において，初めに，物理マシン１Ｂのデータ取得部１１７Ｂは，第２の実施の形態と同様に，例えば，図１４のＳ３１において受信した管理データ１３１Ａのうち，最初のブロックに記憶されたキャッシュデータ１４１Ａに関する情報を参照する（Ｓ７１）。そして，データ取得部１１７Ｂは，第２の実施の形態と異なり，判定ブロックに対応する管理データ１３１Ｂのアクセス時間が所定の時間よりも後であるか否かを判定する（Ｓ７２）。なお，この所定の時間は，例えば，現在時間の３時間前等であってよい。これにより，データ取得部１１７Ｂは，所定の時間よりも後にジョブによってアクセスされたキャッシュデータを特定することが可能になる。
【００８３】
そして，アクセス時間が所定の時間よりも後である場合（Ｓ７２のＹＥＳ），データ取得部１１７Ｂは，第２の実施の形態と同様に，例えば，物理マシン１Ａ内に記憶された管理データ１３１Ａにアクセスする（Ｓ７３）。そして，データ取得部１１７Ｂは，例えば，アクセスした管理データ１３１Ａを参照して，キャッシュデータ１４１Ａのうち，判定ブロックに記憶されたキャッシュデータを取得する（Ｓ７４）。一方，アクセス時間が所定の時間よりも前である場合（Ｓ７２のＮＯ），データ取得部１１７Ｂは，判定ブロックに記憶されたキャッシュデータ１４１Ａの取得を行わない。第５の実施の形態のその他の処理は，第２の実施の形態の処理と同じであるため，ここでは説明を省略する。
【００８４】
なお，第５の実施の形態において，データ取得部１１７は，第４の実施の形態で説明した場合と同様に，キャッシュデータ１４１Ａのうち，記憶媒体２に書き戻されていないキャッシュデータについては移行を行うことが好ましい。これにより，データ取得部１１７Ｂは，ジョブマイグレーションの実行前後において，ジョブがアクセスするデータの内容の整合性を合わせることが可能になる。
【００８５】
すなわち，第５の実施形態におけるデータ移行処理では，データ取得部１１７Ｂは，キャッシュデータ１４１Ａのうち，ジョブによって最後にアクセスされた所定の時間よりも後であるキャッシュデータのみの移行を行う。これにより，データ取得部１１７Ｂは，移行後ジョブがアクセスする可能性が高いキャッシュデータのみを移行することが可能になる。そのため，キャッシュデータの移行に要するＣＰＵの処理負担や時間をさらに削減させることが可能になる。また，移行後ジョブによるデータアクセスの効率低下を防ぐことが可能になる。
【００８６】
以上の実施の形態をまとめると，以下の付記のとおりである。
【００８７】
（付記１）
記憶装置に記憶された第１のデータからキャッシュされた第１のキャッシュデータのデータ移行方法であって，
前記第１のキャッシュデータが記憶された第１のキャッシュメモリを制御する第１の制御部は，前記第１のキャッシュメモリ上の前記第１のキャッシュデータの記憶位置を示す情報と，前記第１のキャッシュメモリにおける所定のデータサイズのブロック毎に，該ブロックに対応するキャッシュデータの更新に応じて該更新されたキャッシュデータに対応する前記第１のデータが更新されたか否かを示す情報と，を含む第１の管理情報を作成し，
前記第１の制御部は，前記第１のキャッシュデータにアクセスするプログラムが他のノードに移行する際に，移行後の前記プログラムがアクセス可能な第２のキャッシュメモリを制御する第２の制御部に，前記第１の管理情報を送信し，
前記第２の制御部は，受信した前記第１の管理情報を参照して，前記第１のキャッシュメモリから前記第１のキャッシュデータを取得し，該取得した第１のキャッシュデータを前記第２のキャッシュメモリに記憶し，
前記第２の制御部は，受信した前記第１の管理情報を参照して，前記記憶した第１のキャッシュデータのうち，前記第１のデータが更新されていないことを示す前記ブロックに対応するキャッシュデータを特定し，該特定したキャッシュデータに基づいて前記第１のデータの更新を行う，
データ移行方法。
【００８８】
（付記２）
付記１において，
前記第１の管理情報を送信する工程の後，前記第１の制御部は，前記第１のメモリキャッシュにおける第１のキャッシュデータの記憶位置が変更された場合，前記第１の管理情報に含まれる前記第１のキャッシュデータの記憶位置を示す情報を更新し，
前記第１のキャッシュデータを記憶する工程では，前記第２の制御部は，前記更新された第１の管理情報を参照して，前記第１のキャッシュデータの取得を行うデータ移行方法。
【００８９】
（付記３）
付記１において，
前記第１の管理情報を送信する工程の前に，前記第２の制御部は，前記第２にキャッシュメモリ上の第２のキャッシュデータの記憶位置を示す情報を含む第２の管理情報を作成し，
前記第１の管理情報を送信する工程では，前記第２の制御部は，受信した前記第１の管理情報に，前記第１のキャッシュデータを記憶する第２のキャッシュメモリ上の記憶位置を設定し，該設定した第１の管理情報を含むように前記第２の管理情報を更新し，
前記第１のキャッシュデータを記憶する工程では，前記第２の制御部は，前記更新した第２の管理情報を参照して前記第１のキャッシュデータを取得し，該取得した第１のキャッシュデータを前記第２のキャッシュデータ内の少なくとも一部として記憶するデータ移行方法。
【００９０】
（付記４）
付記３において，
前記キャッシュデータを記憶する工程では，前記第２の制御部は，前記第２のメモリキャッシュに記憶されたキャッシュデータのうち，前記第２の管理情報に，前記第１のデータが更新されていないことを示す情報が設定された前記ブロックに対応するキャッシュデータの取得を行うデータ移行方法。
【００９１】
（付記５）
付記３において，
前記第１及び第２の管理情報は，それぞれ前記第１または第２のキャッシュメモリにおける所定のデータサイズのブロック毎に，キャッシュデータが記憶されているか否かを示す情報を含み，
前記第１の管理情報を送信する工程では，前記第１の制御部は，前記送信する第１の管理情報に，全ての前記ブロックにキャッシュデータが記憶されていないことを示す情報を設定し，
前記第１のキャッシュデータを記憶する工程では，前記第２の制御部は，前記第２にメモリキャッシュに記憶されたキャッシュデータのうち，前記第２の管理情報にキャッシュデータが記憶されていないことを示す情報が設定された前記ブロックに対応するキャッシュデータの取得を行い，該取得したキャッシュデータに対応する前記ブロックにキャッシュデータが記憶されていることを示す情報を前記第２の管理情報に設定するデータ移行方法。
【００９２】
（付記６）
付記３において，
前記第１及び第２の管理情報は，それぞれ前記第１または第２のキャッシュメモリにおける所定のデータサイズのブロック毎に，該ブロックに対応するキャッシュデータが他のノードから移行したキャッシュデータであるか否かを示す情報を含み，
前記キャッシュデータを記憶する工程では，前記第２の制御部は，前記第２のメモリキャッシュに記憶されたキャッシュデータのうち，前記第２の管理情報に，他のノードから移行したキャッシュデータであることを示す情報が設定された前記ブロックに対応するキャッシュデータの取得を行うデータ移行方法。
【００９３】
（付記７）
付記３において，
前記第１及び第２の管理情報は，それぞれ前記第１または第２のキャッシュメモリにおける所定のデータサイズのブロック毎に，該ブロックに対応するキャッシュデータが移行前の前記プログラムによって最後にアクセスされた時間を示す情報を含み，
前記第２の制御部は，前記第２のメモリキャッシュに記憶されたキャッシュデータのうち，前記第２の管理情報に，最後にアクセスされた時間として，所定の時間よりも後の時間が設定された前記ブロックに対応するキャッシュデータの取得を行うデータ移行方法。
【００９４】
（付記８）
記憶装置に記憶された第１のデータからキャッシュされたキャッシュデータが記憶されたキャッシュメモリと，
前記キャッシュメモリを制御し，前記キャッシュメモリ上の前記キャッシュデータの記憶位置を示す情報と，前記キャッシュメモリにおける所定のデータサイズのブロック毎に，該ブロックに対応するキャッシュデータの更新に応じて該更新されたキャッシュデータに対応する前記第１のデータが更新されたか否かを示す情報と，を含む第１の管理情報を作成し，前記キャッシュデータにアクセスするプログラムが他のノードに移行する際に，移行後の前記プログラムがアクセス可能な他のキャッシュメモリを制御する他の制御部に，前記第１の管理情報を送信する制御部と，を有する，
データ移行装置。
【００９５】
（付記９）
記憶装置に記憶された第１のデータからキャッシュされたキャッシュデータが記憶されたキャッシュメモリと，
他のキャッシュメモリ上の他のキャッシュデータの記憶位置を示す情報と，前記他のキャッシュメモリにおける所定のデータサイズのブロック毎に，該ブロックに対応するキャッシュデータの更新に応じて該更新されたキャッシュデータに対応する前記第１のデータが更新されたか否かを示す情報と，を含む第１の管理情報を，他の制御部から受信し，該受信した第１の管理情報を参照して，前記他のキャッシュメモリから前記他のキャッシュデータを取得し，該取得した他のキャッシュデータを前記キャッシュメモリに記憶し，前記受信した前記第１の管理情報を参照して，前記記憶したキャッシュデータのうち，前記第１のデータが更新されていないことを示す前記ブロックに対応するキャッシュデータを特定し，該特定したキャッシュデータに基づいて前記第１のデータの更新を行う制御部と，を有する，
データ移行装置。
【符号の説明】
【００９６】
１，１Ａ，１Ｂ：物理マシン              ２：記憶媒体
１４Ａ，１４Ｂ：ミドルウエア            １５Ａ，１５Ｂ：ファイルシステム
１６Ａ，１６Ｂ：キャッシュ領域
【図１】
0006365085.tif 000002
【図２】
0006365085.tif 000003
【図３】
0006365085.tif 000004
【図４】
0006365085.tif 000005
【図５】
0006365085.tif 000006
【図６】
0006365085.tif 000007
【図７】
0006365085.tif 000008
【図８】
0006365085.tif 000009
【図９】
0006365085.tif 000010
【図１０】
0006365085.tif 000011
【図１１】
0006365085.tif 000012
【図１２】
0006365085.tif 000013
【図１３】
0006365085.tif 000014
【図１４】
0006365085.tif 000015
【図１５】
0006365085.tif 000016
【図１６】
0006365085.tif 000017
【図１７】
0006365085.tif 000018
【図１８】
0006365085.tif 000019
【図１９】
0006365085.tif 000020
【図２０】
0006365085.tif 000021
【図２１】
0006365085.tif 000022
【図２２】
0006365085.tif 000023
【図２３】
0006365085.tif 000024