(57)【要約】【課題】  仮想装置が動作する情報処理装置が保持する、仮想装置によるアクセスに応じて変化しうるデータ値に、仮想装置が情報処理装置間で移動することによって生じる不整合を軽減することができる情報処理装置を提供する。【解決手段】  本発明の情報処理装置は、仮想装置を実行する実行手段によって実行される前記仮想装置が行ったアクセスに応じて更新され、前記仮想装置に関連付けられている対象データを記憶する対象情報記憶手段と、前記実行手段が実行する前記仮想装置の状態が、実行されている状態とそれ以外の状態との間で変化する状態変化を検出する検出手段によって、前記仮想装置の前記状態変化が検出された場合、前記対象データに対して所定の処理を行う制御手段と、を備える。【選択図】      図１５
2015176426.tif 000002
【特許請求の範囲】
【請求項１】
仮想装置を実行する実行手段によって実行される前記仮想装置が行ったアクセスに応じて更新され、前記仮想装置に関連付けられている対象データを記憶する対象情報記憶手段と、
前記実行手段が実行する前記仮想装置の状態が、実行されている状態とそれ以外の状態との間で変化する状態変化を検出する検出手段によって、前記仮想装置の前記状態変化が検出された場合、前記対象データに対して所定の処理を行う制御手段と、
を備える情報処理装置。
【請求項２】
前記検出手段は、前記実行手段と他の情報処理装置との間における前記仮想装置の移動である移行を、前記状態変化として検出する
請求項１に記載の情報処理装置。
【請求項３】
要求先装置への前記アクセスを要求するアクセス要求を送信する前記仮想装置から前記アクセス要求を受信し、当該アクセス要求と前記仮想装置に関連付けられている前記対象データとに基づき、前記要求先装置へのアクセスを行う中継手段と、
前記アクセス要求によって要求された前記アクセスに基づき、前記アクセス要求を送信した前記仮想装置の関連付けられている前記対象データを更新する更新手段と、
を含む請求項１又は２に記載の情報処理装置。
【請求項４】
前記対象データは、前記アクセスの対象であるアクセス対象が前記要求先装置に格納されている格納場所にさらに関連付けられている、前記アクセス対象のキャッシュデータである
請求項１乃至３のいずれかに記載の情報処理装置。
【請求項５】
前記制御手段は、前記実行手段から他の実行装置への前記仮想装置の前記移行が検出されると、前記対象データに関連付けられている前記格納場所に格納されている前記アクセス対象を、当該アクセス対象が前記対象データと同じになるよう更新してから、前記対象データに対して前記所定の処理を行う
請求項４に記載の情報処理装置。
【請求項６】
前記検出手段は、さらに、前記状態変化が検出された前記仮想装置を特定し、特定された前記仮想装置の識別子を前記制御手段に送信し、
前記制御手段は、前記仮想装置の識別子を受信するのに応じて、当該識別子によって特定される仮想装置に関連付けられた前記対象データに対して、前記所定の処理を行う
請求項１乃至５のいずれかに記載の情報処理装置。
【請求項７】
前記実行手段は、前記対象情報記憶手段と、前記制御手段として動作する仮想装置である、入出力仮想装置を実行する
請求項１乃至６のいずれかに記載の情報処理装置。
【請求項８】
前記実行手段を備える、請求項１乃至７のいずれかに記載の情報処理装置と、前記要求先装置とを含み、
前記検出手段を備える
情報処理システム。
【請求項９】
仮想装置を実行する実行手段によって実行される前記仮想装置が行ったアクセスに応じて更新され、前記仮想装置に関連付けられている対象データを対象情報記憶手段に記憶し、
前記実行手段が実行する前記仮想装置の状態が、実行されている状態とそれ以外の状態との間で変化する状態変化を検出する検出手段によって、前記仮想装置の前記状態変化が検出された場合、前記対象データに対して所定の処理を行う、
情報処理方法。
【請求項１０】
前記検出手段は、前記実行手段と他の情報処理装置との間における前記仮想装置の移動である移行を、前記状態変化として検出する
請求項９に記載の情報処理方法。
【請求項１１】
要求先装置への前記アクセスを要求するアクセス要求を送信する前記仮想装置から前記アクセス要求を受信し、当該アクセス要求と前記仮想装置に関連付けられている前記対象データとに基づき、前記要求先装置へのアクセスを行い、
前記アクセス要求によって要求された前記アクセスに基づき、前記アクセス要求を送信した前記仮想装置の関連付けられている前記対象データを更新する、
請求項９又は１０に記載の情報処理方法。
【請求項１２】
コンピュータを、
仮想装置を実行する実行手段によって実行される前記仮想装置が行ったアクセスに応じて更新され、前記仮想装置に関連付けられている対象データを記憶する対象情報記憶手段と、
前記実行手段が実行する前記仮想装置の状態が、実行されている状態とそれ以外の状態との間で変化する状態変化を検出する検出手段によって、前記仮想装置の前記状態変化が検出された場合、前記対象データに対して所定の処理を行う制御手段と、
して動作させる情報処理プログラム。
【請求項１３】
コンピュータを、
前記実行手段と他の情報処理装置との間における前記仮想装置の移動である移行を、前記状態変化として検出する前記検出手段と、
して動作させる請求項１２に記載の情報処理プログラム。
【請求項１４】
コンピュータを、
要求先装置への前記アクセスを要求するアクセス要求を送信する前記仮想装置から前記アクセス要求を受信し、当該アクセス要求と前記仮想装置に関連付けられている前記対象データとに基づき、前記要求先装置へのアクセスを行う中継手段と、
前記アクセス要求によって要求された前記アクセスに基づき、前記アクセス要求を送信した前記仮想装置の関連付けられている前記対象データを更新する更新手段と、
して動作させる請求項１２又は１３に記載の情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想装置に関連付けられている情報を処理する情報処理技術に関する。
【背景技術】
【０００２】
特許文献１には、複数のプロセッサを備える情報処理装置において、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスを共有する技術が記載されている。特許文献１に記載されている情報処理装置は、それぞれ独立に、少なくとも１つのプロセッサによってＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が動作する複数のパーティションを含む。特許文献１に記載されている情報処理装置は、さらに、Ｉ／Ｏプロセッサセル（以下、ＩＯＰ（Ｉ／Ｏ  Ｐｒｏｃｅｓｓｏｒ）と表記される）を含む。ＩＯＰは、複数のパーティションが行う入出力をまとめて処理する。ＩＯＰは、加えて、ディスクキャッシュなどのサービスを提供することができる。
【０００３】
図１７は、特許文献１に記載されている情報処理装置を模式的に表す図である。各クライアント装置が、前述のパーティションである。入出力装置が、前述のＩＯＰである。各クライアント装置は、例えばネットワークを介して情報処理装置に接続されている外部装置に対する入力及び出力を、入出力装置を介して行う。外部装置は、情報処理装置の外部に存在する装置である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４５７６３９８号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
情報処理装置において、コンピュータをエミュレートする技術が存在する。そのようなエミュレートされたコンピュータは、例えば、仮想装置あるいは仮想マシンと呼ばれる。情報処理装置１間で仮想装置を移動させる技術は、例えば、マイグレーションと呼ばれる。以下の説明において、マイグレーションは単に「移行」あるいは「移動」とも表記する。
【０００６】
特許文献１の技術は、前述のクライアント装置が仮想装置である場合にも適用可能である。特許文献１の技術が適用された仮想装置が動作する情報処理装置では、例えば、仮想装置は、入出力装置を介して、他の装置にアクセスする。具体的には、仮想装置は、入出力装置に対して、他の装置が保持するデータに対するアクセスを要求するアクセス要求を送信する。アクセスは、例えば、データの読み出しや、データの書き込みである。仮想装置からアクセス要求を受信した入出力装置は、アクセス要求の対象である、他の装置が保持するデータに対して、そのアクセス要求に基づくアクセスを行う。そして、入出力装置は、行ったアクセスの結果を、アクセス要求を送信した仮想装置に送信する。
【０００７】
入出力装置が、他の装置へのアクセスにおけるキャッシュを提供する場合、入出力装置は、他の装置が保持する、仮想装置によるアクセス後のデータを、さらに、例えば入出力装置が備える記憶領域にコピーする。仮想装置がアクセスしたデータのコピーは、キャッシュとして、その記憶領域に保存される。仮想装置から、一度アクセスしたデータに対するアクセスを要求するアクセス要求を受信すると、入出力装置は、キャッシュとして記憶装置に格納されているデータに対してアクセスを行う。そして、入出力装置は、アクセスの結果を仮想装置に返信する。例えば、アクセス要求がデータの読み出し要求である場合入出力装置は、キャッシュからデータを読み出し、読み出したデータを仮想装置に送信する。アクセス要求がデータの書き込み要求である場合、入出力装置は、記憶装置にキャッシュとして格納されているデータのコピーを書き換える。そして、入出力装置は、例えば、書き込みの成功を表す信号を、仮想装置に送信する。
【０００８】
仮想装置が上述のライブマイグレーションを行えるのであれば、キャッシュを提供する、特許文献１の技術が適用された情報処理装置から、他の情報処理装置に、その仮想装置が移動する場合がある。その場合、仮想装置の移動元である情報処理装置が含む入出力装置の記憶領域には、その仮想装置がアクセスしたデータが、キャッシュとしてそのまま残る。移動した仮想装置が、移動先の仮想装置において、コピーがキャッシュとして保存されている、他の装置が保持するデータを書き換えた場合、その装置が保持するデータとキャッシュに格納されているデータとの間に、不整合が生じる。その仮想装置が移動元である情報処理装置に再び移動し、他の情報処理装置で動作している間に書き換えたデータにアクセスした場合、その不整合によってエラーが生じることがある。特許文献１の技術では、そのような不整合の発生を防ぐことはできない。以上では、キャッシュを例に説明を行ったが、ライブマイグレーションを行うことができる仮想装置が動作する情報処理装置が保持する、その仮想装置によるアクセスに応じて変化し得るデータ値においても、同様に不整合が生じる可能性がある。例えば、仮想装置を実行し、実行中の仮想装置によるアクセスを中継する情報装置が、仮想装置から外部装置へのアクセスの種類やパターンに応じて、仮想装置に対してアクセスの優先順位を設定する場合がある。このような優先順位は、アクセスの種類やパターンの変化に応じて変化する。仮想装置が、他の情報処理装置に移動し、他の情報処理装置から戻った場合に、そのアクセスの種類やパターンが変化していると、優先順位に不整合が生じる。
【０００９】
本発明の目的の一つは、仮想装置が動作する情報処理装置が保持する、仮想装置によるアクセスに応じて変化しうるデータ値に、仮想装置が情報処理装置間で移動することによって生じる不整合を軽減することができる情報処理装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の情報処理装置は、仮想装置を実行する実行手段によって実行される前記仮想装置が行ったアクセスに応じて更新され、前記仮想装置に関連付けられている対象データを記憶する対象情報記憶手段と、前記実行手段が実行する前記仮想装置の状態が、実行されている状態とそれ以外の状態との間で変化する状態変化を検出する検出手段によって、前記仮想装置の前記状態変化が検出された場合、前記対象データに対して所定の処理を行う制御手段と、を備える。
【００１１】
本発明の情報処理方法は、仮想装置を実行する実行手段によって実行される前記仮想装置が行ったアクセスに応じて更新され、前記仮想装置に関連付けられている対象データを対象情報記憶手段に記憶し、前記実行手段が実行する前記仮想装置の状態が、実行されている状態とそれ以外の状態との間で変化する状態変化を検出する検出手段によって、前記仮想装置の前記状態変化が検出された場合、前記対象データに対して所定の処理を行う。
【００１２】
本発明の情報処理プログラムは、コンピュータを、仮想装置を実行する実行手段によって実行される前記仮想装置が行ったアクセスに応じて更新され、前記仮想装置に関連付けられている対象データを記憶する対象情報記憶手段と、前記実行手段が実行する前記仮想装置の状態が、実行されている状態とそれ以外の状態との間で変化する状態変化を検出する検出手段によって、前記仮想装置の前記状態変化が検出された場合、前記対象データに対して所定の処理を行う制御手段と、して動作させる。
【発明の効果】
【００１３】
本発明には、仮想装置が動作する情報処理装置が保持する、仮想装置によって書き換えられるデータに、仮想装置が情報処理装置間で移動することによって生じる不整合を軽減することができるという効果がある。
【図面の簡単な説明】
【００１４】
【図１】図１は、第１、第２、第３の実施形態の情報処理システム１００の構成の例を表すブロック図である。
【図２】図２は、第１、第２、第３の実施形態の情報処理システム１００の全体像を模式的に表すブロック図である。
【図３】図３は、第１、第２、第３の実施形態の変形例の情報処理システム１００Ａの構成の例を表すブロック図である。
【図４】図４は、複数の仮想装置２０を実行する情報処理装置１の構成を模式的に表す図である。
【図５】図５は、第１、第２、第３の実施形態の他の変形例である情報処理システム１００Ｂの構成を表す図である。
【図６】図６は、第１、第３の実施形態の情報処理装置１の、通常時における動作の例を表すフローチャートである。
【図７】図７は、第１の実施形態の情報処理装置１の、仮想装置２０に状態変化が生じる場合における動作の例を表すフローチャートである。
【図８】図８は、第２の実施形態の情報処理装置１の、通常時の動作を表す第１のフローチャートである。
【図９】図９は、第２の実施形態の情報処理装置１の、通常時の動作を表す第２のフローチャートである。
【図１０】図１０は、第２の実施形態の情報処理装置１の、仮想装置２０に状態変化が生じた場合における動作を表すフローチャートである。
【図１１】図１１は、第３の実施形態の情報処理装置１の、仮想装置２０に状態変化が生じた場合における動作を表すフローチャートである。
【図１２】図１２は、第４、第５の実施形態の情報処理システム１００Ｃの構成の例を表すブロック図である。
【図１３】図１３は、第４、第５の実施形態の情報処理システム１００Ｃの全体像を模式的に表す図である。
【図１４】図１４は、第４、第５の実施形態の情報処理装置１の、対象データを更新する場合における動作を表すフローチャートである。
【図１５】図１５は、第６実施形態の情報処理装置１Ｃの構成を表すブロック図である。
【図１６】図１６は、情報処理装置１、情報処理装置１Ａ、情報処理装置１Ｂ、情報処理装置１Ｃを実現することができる、コンピュータ１０００の構成の一例を表す図である。
【図１７】図１７は、特許文献１に記載されている情報処理装置を模式的に表す図である。
【発明を実施するための形態】
【００１５】
次に、本発明を模範的に実施する形態について図面を参照して詳細に説明する。以下に説明する実施形態は、特許請求の範囲に係る発明を限定しない。また実施形態の中で説明されている構成の組み合わせの全てが発明の構成に必須であるとは限らない。
【００１６】
＜第１の実施形態＞
まず、本発明の第１の実施形態について、図面を参照して詳細に説明する。
【００１７】
図１は、本実施形態の情報処理システム１００の構成の例を表すブロック図である。
【００１８】
図１を参照すると、情報処理システム１００は、複数の情報処理装置１と、記憶装置３とを含む。図１に描かれている情報処理装置１の台数は２であるが、情報処理装置１の数は２に限られない。また、情報処理システム１００は、複数の記憶装置３を含んでいてもよい。複数の情報処理装置１は、互いに通信可能に接続されている。それぞれの情報処理装置１と、記憶装置３とは、互いに通信可能に接続されている。
【００１９】
図２は、本実施形態の情報処理システム１００の全体像を模式的に表すブロック図である。図２に示す例では、複数の情報処理装置１と記憶装置３とが、通信ネットワーク４によって接続されている。複数の情報処理装置１が互いに通信を行う通信ネットワークと、それぞれの情報処理装置１と記憶装置３とが通信を行う通信ネットワークは、異なっていてもよい。
【００２０】
図１に示す例では、情報処理装置１は、実行部１０と、検出部１３とを含む。以下では、実行部１０と検出部１３とを含む情報処理装置１について説明する。しかし、情報処理装置１は、図３に示す例のように検出部１３を含んでいなくてもよい。
【００２１】
図３は、本実施形態の変形例の情報処理システム１００Ａの構成の例を表すブロック図である。図３に示す情報処理システム１００Ａと図１に示す情報処理システム１００とを比較すると、情報処理システム１００Ａは、情報処理装置１の代わりに情報処理装置１Ａを含む。情報処理装置１Ａと情報処理装置１とを比較すると、情報処理装置１Ａは検出部１３を含まない点が異なる。情報処理システム１００Ａは、さらに、移行検出装置２を含む。そして、移行検出装置２が検出部１３を含む。移行検出装置２が含む検出部１３は、情報処理システム１００において各情報処理装置１が含む検出部１３を同じ動作を行う。そして、情報処理システム１００Ａは、情報処理システム１００と同等の動作を行う。
【００２２】
実行部１０は、仮想装置２０及び入出力仮想装置１６を実行する。実行部１０は、例えば、仮想的なコンピュータをエミュレートするソフトウェアと、そのソフトウェアを実行する、情報処理装置１のプロセッサによって実現される。仮想装置２０及び入出力仮想装置１６は、実行部１０によってエミュレートされる仮想的なコンピュータである。本実施形態の説明では、実行部１０が、例えば仮想装置２０をエミュレートすることを、「実行部１０が仮想装置２０を実行する」と表記する。同様に、実行部１０が入出力仮想装置１６をエミュレートすることを、「実行部１０が入出力仮想装置１６を実行する」と表記する。
【００２３】
仮想装置２０は、上述のように、実行部１０によってエミュレートされた仮想的なコンピュータである、仮想マシンである。仮想装置２０は、要求先装置に対してアクセスを要求するアクセス要求を送信する。要求先装置は、本実施形態では記憶装置３である。要求先装置は必ずしも記憶装置３でなくてもよい。本実施形態では、要求先が記憶装置３である場合の例について説明する。アクセス要求は、例えば、データを読み出す読み出し要求、又はデータを書き込む書き込み要求である。アクセス要求は、例えば、受信した装置が解釈することができる、要求するアクセスの内容を特定するアクセス命令である。以下の説明において、アクセス要求を、アクセス命令とも表記することにする。同様に、書き込み要求を、書き込み命令とも表記する。さらに、読み出し要求を、読み出し命令とも表記する。また、アクセス命令を生成することを、「アクセス命令を発行する」とも表記する。
【００２４】
また、本実施形態では、仮想装置２０は、複数の情報処理装置１の間における移動である移行が可能である。すなわち、実行部１０は、その実行部１０が実行している仮想装置２０を、他の情報処理装置１に移行させることができる。前述のように、移行はマイグレーションとも呼ばれる。移行の方法として、既存の様々な方法を適用することができる。仮想装置２０が行う移行は、ライブマイグレーションであってもよい。本実施形態の移行は、仮想装置２０を停止させた状態で行われる移行であってもよい。
【００２５】
図１に示す例では、実行部１０が実行する仮想装置２０の数は１である。しかし、実行部１０は、図４に示す例のように、２台以上の仮想装置２０を実行してもよい。
【００２６】
図４は、複数の仮想装置２０を実行する情報処理装置１の構成を模式的に表す図である。図４に示す情報処理装置１が含む実行部１０は、３台以上の仮想装置２０を実行する。図４において、複数の仮想装置２０は、仮想装置群２１と表記されている。
【００２７】
検出部１３は、仮想装置２０の状態が、仮想装置２０が実行部１０によって実行されている状態と、それ以外の状態との間で変化する、状態変化を検出する。検出部１３は、さらに、状態変化の種別を特定する。
【００２８】
状態変化は、例えば、仮想装置２０が起動すること、動作していた仮想装置２０が動作を停止すること、他の情報処理装置１に仮想装置２０が移行すること、他の情報処理装置１から仮想装置２０が移行してくることなどである。状態変化の種別は、例えば以上の、状態変化のいずれかを表す。検出部１３は、状態が変化した仮想装置２０を特定する。検出部１３は、状態が変化した仮想装置２０の識別子を特定すればよい。検出部１３は、例えば、状態が変化した仮想装置２０の識別子と、状態変化の種別とを、実行部１０から受信すればよい。検出部１３は、さらに、状態が変化した仮想装置２０の、状態変化の種別を、実行部１０から受信してもよい。状態変化の種別は、例えば、状態変化の前後における、仮想装置２０の状態であってもよい。検出部１３は、他の方法によって仮想装置２０の状態変化を検出してもよい。
【００２９】
検出部１３は、例えば、複数の情報処理装置１のそれぞれにおいて、仮想装置２０の状態変化を検出することにより、仮想装置２０が情報処理装置１間で移動した場合における移動元の情報処理装置１と移動先の情報処理装置１とを特定すればよい。検出部１３は、例えば、仮想装置２０の識別子とその仮想装置２０を実行する情報処理装置１の識別子との組み合わせを記憶することによって、どの情報処理装置１がどの仮想装置２０を実行しているかを記憶していてもよい。検出部１３は、それぞれの仮想装置２０の移行の履歴を記憶していてもよい。検出部１３は、例えば、仮想装置２０の識別子と、その仮想装置２０を実行した順番でソートされた情報処理装置１の識別子の列とを記憶すればよい。
【００３０】
入出力仮想装置１６は、対象情報記憶部１１と、制御部１２と、中継部１４と、更新部１５とを含む。入出力仮想装置１６は、例えば、実行部１０によってエミュレートされる仮想的なコンピュータが、そのコンピュータを、対象情報記憶部１１と、制御部１２と、中継部１４と、更新部１５として動作させるプログラムを実行することによって実現される。すなわち、入出力仮想装置１６は、情報処理装置１のプロセッサが、情報処理装置１を対象情報記憶部１１と、制御部１２と、中継部１４と、更新部１５として動作させるプログラムを実行することによって、実現される。
【００３１】
対象情報記憶部１１は、実行部１０によって実行される仮想装置２０が行ったアクセスに応じて更新され、その仮想装置２０に関連付けられているデータである対象データを記憶する。
【００３２】
制御部１２は、検出部１３によって、前述の状態変化が検出された場合、状態変化が検出された仮想装置２０に関連付けられている対象データに対して、所定の処理を行う。
【００３３】
中継部１４は、要求先装置に対してアクセスを要求するアクセス要求を、仮想装置２０から受信する。そして、中継部１４は、受信したアクセス要求によってアクセスが要求される要求先装置に対して、そのアクセス要求と、そのアクセス要求を送信した仮想装置２０に関連付けられている対象データとに基づき、アクセスを行う。
【００３４】
更新部１５は、中継部１４が行ったアクセスに基づき、そのアクセスを要求するアクセス要求を送信した仮想装置２０に関連付けられている対象データを更新する。
【００３５】
記憶装置３は、データを記憶する装置である。記憶装置３は、アクセス要求を受信した場合、受信したアクセス要求に応じた処理を実行する。例えば、アクセス要求が対象データを読み出す読み出し要求である場合、アクセス要求を受信した記憶装置３は、記憶している対象データを、アクセス要求の送信元に送信する。アクセス要求が対象データを書き込む書き込み要求である場合、アクセス要求を受信した記憶装置３は、アクセス要求によって書き込みを要求された対象データを記憶する。記憶装置３は、例えば、ファイルサーバであってもよい。
【００３６】
本実施形態では、以上のように、仮想装置２０は、入出力仮想装置１６を介して、記憶装置３にアクセスする。入出力仮想装置１６は、例えば、アクセス要求によってアクセスされるデータに対するキャッシュを行うキャッシュ装置として動作する。入出力仮想装置１６は、例えば、仮想装置２０の状態や行ったアクセス等に応じて設定された優先度に従った優先順位で、複数の仮想装置２０が送信するアクセス要求を処理する順番を決める優先順位制御装置として動作してもよい。入出力仮想装置１６は、それぞれの仮想装置２０の状態や出力するデータ等に応じて決定された圧縮率で、仮想装置２０が出力するデータを圧縮し、圧縮されたデータを送信先に送信する圧縮装置として動作してもよい。
【００３７】
本実施形態では、入出力仮想装置１６が、記憶装置３に格納されているデータに対するキャッシュを行うキャッシュ装置として機能する場合の例について説明する。入出力仮想装置１６がキャッシュを行うキャッシュアルゴリズムとして、既存のさまざまなキャッシュアルゴリズムを適用することができる。入出力仮想装置１６は、例えば以下の説明のように動作する。
【００３８】
本実施形態では、アクセス要求は、記憶装置３からアクセス対象を読み出す要求である読み出し要求と、記憶装置３にアクセス対象を書き込む要求である書き込み要求である。アクセス対象は、例えばデータである。対象情報記憶部１１に格納されている上述の対象データは、アクセスが行われたアクセス対象のコピーである。アクセス要求に基づきアクセスされるアクセス先は、アクセス対象が格納されている記憶領域である。アクセス要求は、アクセス先の識別子を含む。アクセス先の識別子は、要求先装置である記憶装置３が含む記憶領域におけるアドレスである。アクセス先の識別子は、記憶装置３の識別子と、記憶領域のアドレスとの組み合わせであってもよい。
【００３９】
アクセス要求が読み出し要求である場合、アクセス先は、そのアクセス要求に基づき読み出されるアクセス対象が格納されている記憶領域である。以下の説明において、アクセス要求が読み出し要求である場合におけるアクセス先は、「読み出し元」とも表記する。アクセス要求が読み出し要求である場合、アクセス要求は、そのアクセス要求に基づき読み出されるアクセス対象が格納されている読み出し元の識別子を含む。読み出し元の識別子は、要求先装置である記憶装置３が含む記憶領域におけるアドレスである。
【００４０】
アクセス要求が書き込み要求である場合、アクセス先は、そのアクセス要求に基づきアクセス対象が書き込まれる記憶領域である。以下の説明において、アクセス要求が書き込み要求である場合におけるアクセス先は、「書き込み先」とも表記する。アクセス要求が書き込み要求である場合、アクセス要求は、例えば、そのアクセス要求に基づきアクセス対象が書き込まれる書き込み先の識別子を含む。書き込み先の識別子も同様に、例えば、要求先である記憶装置３が含む記憶領域におけるアドレスである。アクセス要求が書き込み要求である場合、アクセス要求に加えて、書き込まれるデータであるアクセス対象が送信される。アクセス要求は、そのアクセス要求が書き込み要求である場合、アクセス対象を含んでいてもよい。
【００４１】
対象情報記憶部１１は、アクセス要求に応じて読み出されたデータのコピーである対象データを、例えば、アクセス要求を送信した仮想装置２０の識別子と、アクセス要求の要求先における、その対象データが読み出された読み出し元の識別子とに関連付けて記憶する。
【００４２】
中継部１４は、仮想装置２０からアクセス要求を受信する。そして、中継部１４は、受信したアクセス要求の種別を特定する。
【００４３】
受信したアクセス要求が読み出し要求である場合、中継部１４は、そのアクセス要求によって読み出されるデータであるアクセス対象全てのコピーが、対象情報記憶部１１に格納されているか判定する。受信したアクセス要求によって読み出されるデータであるアクセス対象のコピーが、対象情報記憶部１１に格納されている場合、中継部１４は、対象情報記憶部１１に格納されている、アクセス対象のコピーを読み出す。そして、中継部１４は、読み出したアクセス対象のコピーをアクセス要求を送信したい仮想装置２０に送信する。
【００４４】
受信したアクセス要求によって読み出されるデータであるアクセス対象の少なくとも一部のコピーが、対象情報記憶部１１に格納されていない場合、中継部１４は、要求先である記憶装置３に、アクセス対象を読み出す読み出し要求を送信する。中継部１４は、記憶装置３から送信されたアクセス対象を、仮想装置２０に送信する。
【００４５】
受信したアクセス要求によって読み出されるデータであるアクセス対象のコピーが、対象情報記憶部１１に格納されていない場合、さらに、更新部１５が、記憶装置３から送信されたアクセス対象のコピーを、対象データとして対象情報記憶部１１に格納する。更新部１５は、アクセス対象のコピーを、例えば、アクセス要求を送信した仮想装置２０の識別子と、アクセス要求の要求先における、そのアクセス対象が読み出された読み出し元の識別子とに関連付けて、対象データとして対象情報記憶部１１に格納すればよい。
【００４６】
受信したアクセス要求が書き込み要求である場合、中継部１４は、受信した書き込み要求の要求先である記憶装置３に対して、受信したアクセス要求によって要求された書き込みを行う書き込み要求を送信する。
【００４７】
中継部１４が受信したアクセス要求が書き込み要求である場合、さらに、更新部１５が、中継部１４が受信したアクセス要求によって書き込まれるデータのコピーを、対象データとして対象情報記憶部１１に格納する。
【００４８】
以上では、便宜上、アクセス対象が仮想装置２０に送信され、アクセス対象のコピーが対象情報記憶部１１に格納されるとして説明を行った。しかし、アクセス対象及びアクセス対象のコピーのどちらが仮想装置２０に送信されてもよい。同様に、アクセス対象及びアクセス対象のコピーのどちらが対象情報記憶部１１に格納されてもよい。
【００４９】
また、以上の説明では、実行部１０は、対象情報記憶部１１、制御部１２、中継部１４、及び更新部１５を含む、入出力仮想装置１６を実行する。しかし、例えば図５に示す例のように、実行部１０は入出力仮想装置１６を実行しなくてもよい。
【００５０】
図５は、本実施形態の他の変形例である情報処理システム１００Ｂの構成を表す図である。情報処理システム１００Ｂの実行部１０は、入出力仮想装置１６を実行しない。情報処理システム１００Ｂは、入出力装置１６Ａを含む。そして、入出力装置１６Ａが、対象情報記憶部１１、制御部１２、中継部１４、及び更新部１５を含む。入出力装置１６Ａは、入出力仮想装置１６と同じ機能を持ち、実行部１０によって実行される仮想マシンではない装置である。
【００５１】
次に、本実施形態の情報処理装置１の動作について、図面を参照して詳細に説明する。
【００５２】
図６は、本実施形態の情報処理装置１の、通常時における動作の例を表すフローチャートである。通常時における動作は、仮想装置２０が移動しない場合における動作を表す。図６に示す動作が開始される際、仮想装置２０がアクセス命令を発行する。前述のように、仮想装置２０は、実行部１０によってエミュレートされている。従って、実行部１０がエミュレートする仮想装置２０による動作は、実行部１０による動作であると言える。しかし、以下では、実行部１０がエミュレートする仮想装置２０によって、実行部１０が行う動作を、仮想装置２０が行う動作として説明する。
【００５３】
仮想装置２０は、記憶装置３に格納されているデータにアクセスするアクセス命令を発行する。そして、仮想装置２０は、発行したアクセス命令を、入出力仮想装置１６に送信する。
【００５４】
入出力仮想装置１６の中継部１４は、仮想装置２０からアクセス命令を受信する（ステップＳ１０１）。
【００５５】
中継部１４は、例えばアクセス命令を解釈することによって、アクセス命令の種類を判定する（ステップＳ１０２）。すなわち、中継部１４は、受信したアクセス命令が書き込み命令であるか、読み出し命令であるかを判定する。
【００５６】
中継部１４が受信したアクセス命令が書き込み命令である場合（ステップＳ１０３においてＹｅｓ）、情報処理装置１の動作は、ステップＳ１０４に進む。中継部１４が受信したアクセス命令が書き込み命令でない場合（ステップＳ１０３においてＮｏ）、情報処理装置１の動作は、ステップＳ１０９に進む。
【００５７】
ステップＳ１０４において、更新部１５は、対象情報記憶部１１に格納されている、対象データを更新する。対象情報記憶部１１は、アクセス命令によってアクセスが行われたデータ（すなわちアクセス対象）のコピーであるキャッシュを、対象データとして記憶する。言い換えると、本実施形態では、対象データは、アクセス対象のキャッシュである。すなわち、ステップＳ１０４において、更新部１５は、対象情報記憶部１１に格納されているキャッシュを書き換える。前述のように、対象データは、アクセス先の識別子と、仮想装置２０の識別子に関連付けられていればよい。なお、以下の説明において、対象データが仮想装置２０の識別子に関連付けられていることを、「対象データが仮想装置２０に関連付けられている」とも表記する。
【００５８】
本実施形態のように対象データがキャッシュである場合、対象情報記憶部１１は、例えば優先度等の属性を、対象データに関連付けて記憶していてもよい。対象データに関連付けられる優先度は、例えば、対象情報記憶部１１に空きが無くなった場合に、消去する対象データを選択する際に使用する指標である。優先度は、本実施形態に適用可能なさまざまなキャッシュアルゴリズムのうち、本実施形態に適用されたキャッシュアルゴリズムに基づき選択されていればよい。例えば、更新部１５が、優先度の付与と対象データの消去を行えばよい。
【００５９】
キャッシュアルゴリズムとして、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）が適用されている場合、優先度は、例えば、対象データに対する最後のアクセスからの経過時間の長さを表す指標である。キャッシュアルゴリズムとして、ＬＦＵ（Ｌｅａｓｔ  Ｆｒｅｑｕｅｎｔｌｙ  Ｕｓｅｄ）が適用されている場合、優先度は、例えば、対象データに対するアクセスの頻度である。キャッシュアルゴリズム及び優先度の組み合わせは、以上の組み合わせ以外であってもよい。優先度は、キャッシュアルゴリズムに応じて選択されていればよい。
【００６０】
更新部１５は、ステップＳ１０４において、まず、対象データ及びその対象データの属性の少なくともいずれかを書き換える必要があるか判定してもよい。判定の結果、対象データ及びその対象データの属性の少なくともいずれかを書き換える必要がある場合、更新部１５は、書き換える必要がある、対象データ、属性、又は、対象データ及び属性を書き換えればよい。本実施形態の説明において、対象データ及びその対象データに関連付けられている属性の少なくともいずれかを書き換えることを、「キャッシュを書き換える」あるいは「キャッシュを更新する」と表記する。
【００６１】
属性が上述の優先度である場合、更新部１５は、アクセス要求に基づく書き込みによって、対象データの優先度が変化しないか判定すればよい。対象データの優先度が変化しない場合、更新部１５は、優先度を書き換える必要がないと判定すればよい。その場合、更新部１５は、優先度を書き換えなくてよい。対象データの優先度が変化する場合、更新部１５は、優先度を書き換える必要があると判定すればよい。その場合、更新部１５は、対象データの優先度を更新すればよい。
【００６２】
さらに、更新部１５は、書き込み命令であるアクセス命令が含むデータに基づき、対象データを書き換える必要があるか判定してもよい。判定の結果、対象データを書き換える必要がある場合、更新部１５は、対象データを書き換えればよい。更新部１５は、書き込み命令であるアクセス命令によって書き込まれるアクセス対象と、そのアクセス命令を発行した仮想装置２０の識別子及びアクセス先の識別子に関連付けられている対象データとを比較すればよい。そして、比較したアクセス対象と対象データが異なる場合、更新部１５は、対象データを書き換える必要があると判定すればよい。比較したアクセス対象と対象データが同じ場合、更新部１５は、対象データを書き換える必要がないと判定すればよい。更新部１５は、他の方法によって、対象データを書き換える必要があるか判定してもよい。
【００６３】
次に、中継部１４は、アクセス命令を記憶装置３に送信する（ステップＳ１０５）。仮想装置２０が発行するアクセス命令が、記憶装置３が解釈することができる形式のアクセス命令である場合、中継部１４は、受信したアクセス命令をそのまま送信すればよい。仮想装置２０が発行するアクセス命令が、記憶装置３が解釈することができる形式のアクセス命令でない場合、中継部１４は、受信したアクセス命令を、記憶装置３が解釈することができる形式に変換すればよい。そして、中継部１４は、記憶装置３が解釈することができる形式に変換されたアクセス命令を送信すればよい。
【００６４】
アクセス命令は書き込み命令であるので、アクセス命令を受信した記憶装置３は、アクセス対象をアクセス先に書き込む。上述のように、アクセス対象は書き込まれるデータである。また、アクセス先は、記憶装置３が含む記憶領域における、アクセス対象が書き込まれる記憶領域である。記憶装置３は、アクセス対象であるデータの書き込みが終了すると、アクセス命令を送信した中継部１４に対して終了信号を送信する。
【００６５】
アクセス命令を送信した中継部１４は、書き込みを終了した記憶装置３から終了信号を受信する（ステップＳ１０６）。終了信号を受信した中継部１４は、アクセス要求を発行した仮想装置２０に対して、終了信号を送信する（ステップＳ１０７）。アクセス要求を発行した仮想装置２０は、終了信号を受信する（ステップＳ１０８）。ステップＳ１０８の後、情報処理装置１は、図６に示す動作を終了する。
【００６６】
中継部１４が受信したアクセス命令が書き込み命令でない場合（ステップＳ１０３においてＮｏ）、本実施形態では、アクセス命令は読み出し命令である。
【００６７】
その場合、まず、更新部１５がキャッシュを書き換える（ステップＳ１０９）。更新部１５は、ステップＳ１０４と同様に、まずキャッシュを書き換える必要があるか判定すればよい。そして、判定の結果、キャッシュを書き換える必要がある場合、更新部１５は、キャッシュを書き換えればよい。キャッシュの書き換えは、上述のように、対象データに関連付けられている属性である優先度の書き換えを含む。
【００６８】
さらに、更新部１５は、アクセス要求によって読み出しが要求されたアクセス対象（すなわち読み出しの対象）の全てが、キャッシュとして対象情報記憶部１１に格納されているか判定する（ステップＳ１１０）。以下の説明において、アクセス対象のコピーである対象データがキャッシュとして対象情報記憶部１１に格納されていることを、「アクセス対象がキャッシュされている」と表記する。
【００６９】
読み出しの対象の全てがキャッシュされている場合（ステップＳ１１１においてＹｅｓ）、情報処理装置１の動作はステップＳ１１２に進む。読み出しの対象の少なくとも一部がキャッシュされていない場合（ステップＳ１１１においてＮｏ）、情報処理装置１の動作はステップＳ１１４に進む。
【００７０】
読み出しの対象の全てがキャッシュされている場合（ステップＳ１１１においてＹｅｓ）、中継部１４は、読み出しの対象であるアクセス対象のコピーを、対象情報記憶部１１から読み出す。読み出しの対象であるアクセス対象のコピーは、アクセス命令を発行した仮想装置２０の識別子及びアクセス先の識別子に関連付けられている対象データである。
【００７１】
中継部１４は、読み出した対象データを、アクセス命令を発行した仮想装置２０に送信する（ステップＳ１１３）。アクセス命令を発行した仮想装置２０は、対象データを受信する。そして、図６に示す情報処理装置１の動作は終了する。
【００７２】
読み出しの対象の少なくとも一部がキャッシュされていない場合（ステップＳ１１１においてＮｏ）、中継部１４は、記憶装置３にアクセス命令を転送する（ステップＳ１１４）。
【００７３】
仮想装置２０が発行するアクセス命令の形式が、記憶装置３が解釈することができる形式でない場合、中継部１４は、受信したアクセス命令の形式を記憶装置３が解釈することができる形式に変更する。そして、中継部１４は、形式を変更したアクセス命令を、記憶装置３に送信する。アクセス命令を受信した記憶装置３は、アクセス先に格納されているアクセス対象を読み出す。記憶装置３は、読み出したアクセス対象を、中継部１４に送信する。
【００７４】
アクセス命令によって読み出されるアクセス対象の一部がキャッシュされている場合、中継部１４は、アクセス対象のうち、キャッシュされていない部分を読み出すアクセス命令を作成してもよい。そして、中継部１４は、作成したアクセス命令を、記憶装置３に送信してもよい。
【００７５】
中継部１４は、記憶装置３から、読み出し命令であるアクセス命令によって読み出されるアクセス対象（すなわち、読み出しの対象）を、記憶装置３から受信する（ステップＳ１１５）。
【００７６】
中継部１４がアクセス対象を受信すると、更新部１５が、そのアクセス対象に基づき、必要に応じてキャッシュを書き換える（ステップＳ１１６）。更新部１５は、例えば、アクセス対象にコピーが対象データとして対象情報記憶部１１に格納されていない部分が存在する場合、そのアクセス対象の部分のコピーを、対象データとして対象情報記憶部１１に格納すればよい。前述のように、更新部１５は、対象情報記憶部１１に格納する対象データに、対象データがコピーされたアクセス対象を読み出すアクセス命令を発行した仮想装置２０の識別子及びそのアクセス対象が読み出されたアクセス先の識別子を関連付ける。さらに、更新部１５は、キャッシュアルゴリズムに応じて、仮想装置２０が発行したアクセス命令におけるアクセス対象のコピーである対象データの優先度を変更する必要があるか判定する。優先度を変更する必要がある対象データが存在する場合、更新部１５は、対象情報記憶部１１に格納されている、その対象データの優先度を、その優先度に応じた方法で変更すればよい。
【００７７】
次に、中継部１４は、アクセス命令による読み出しの対象であるアクセス対象を、そのアクセス命令を発行した仮想装置２０に送信する（ステップＳ１１７）。アクセス対象の一部がキャッシュされている場合、中継部１４は、対象情報記憶部１１から読み出した対象データと、記憶装置３から受信した対象データの一部分とが組み合わされたアクセス対象を、アクセス命令を発行した仮想装置２０に送信すればよい。アクセス命令を発行した仮想装置２０は、アクセス対象を受信する。そして、情報処理装置１は、図６に示す動作を終了する。
【００７８】
仮想装置２０が記憶装置３に書き込むデータが、その仮想装置２０のみが使用するデータであれば、基本的に、仮想装置２０が記憶装置３に書き込んだデータが、その仮想装置２０を実行する情報処理装置１以外の情報処理装置１からアクセスされることはない。すなわち、基本的に、仮想装置２０が記憶装置３に書き込んだデータが、その仮想装置２０を実行する情報処理装置１以外の情報処理装置１によって書き換えられることはない。従って、仮想装置２０が記憶装置３に書き込んだデータと、その仮想装置２０を実行する情報処理装置１の対象情報記憶部１１に格納されている、その仮想装置２０が記憶装置３に書き込んだデータのコピーとは、同一である。すなわち、記憶装置３に格納されているデータと、そのデータのキャッシュとの間に、不整合は発生しない。
【００７９】
しかし、例えば、情報処理装置１が実行する仮想装置２０の数が多くなりすぎたことによって仮想装置２０の性能が要求性能に達しない等の理由により、仮想装置２０を他の情報処理装置１に移行させることがある。その場合、記憶装置３に格納されているデータと、そのデータのキャッシュとの間に、不整合が発生する可能性がある。
【００８０】
例えば、図１に示す右の情報処理装置１において動作する仮想装置２０が、記憶装置３が記憶するデータにアクセスした場合、右の情報処理装置１の対象情報記憶部１１に、仮想装置２０がアクセスしたデータのコピーが記憶される。以下の説明において、対象情報記憶部１１に格納されている、アクセスが行われたデータのコピーを、そのデータのキャッシュデータと表記することにする。仮想装置２０が、記憶装置３に格納されているデータを書き換えた場合、書き換えられたデータのキャッシュデータも、データの書き換えに応じて更新される。従って、記憶装置３に格納されているデータと、右の情報処理装置１の対象情報記憶部１１が記憶するキャッシュデータとの間に、不整合は発生しない。
【００８１】
仮想装置２０が、右の情報処理装置１から左の情報処理装置１に移行した場合、移行後に仮想装置２０がアクセスした記憶装置３が記憶するデータのキャッシュデータは、移行後の仮想装置２０が動作する左の情報処理装置１の対象情報記憶部１１に格納される。移行後に記憶装置３が記憶装置３に格納されているデータを書き換えた場合、左の情報処理装置１の対象情報記憶部１１が記憶する、書き換えられたデータのキャッシュデータは、更新される。
【００８２】
書き換えられたデータのキャッシュデータは、移行前に仮想装置２０が動作していた右の情報処理装置１の対象情報記憶部１１にも格納されている可能性がある。しかし、右の情報処理装置１の対象情報記憶部１１に格納されている、書き換えられたデータのキャッシュデータは、データが書き換えられても更新されない。右の情報処理装置１の対象情報記憶部１１に格納されているデータは、移行前に記憶装置３に格納されていたデータのコピーである。従って、記憶装置３に格納されている、移行後に書き換えられたデータと、右の情報処理装置１の対象情報記憶部１１に格納されている、移行後に書き換えられたデータのキャッシュデータは、必ずしも一致しない。記憶装置３に格納されているデータと、右の情報処理装置１の対象情報記憶部１１に格納されているキャッシュデータとの間に、不整合が生じている可能性がある。
【００８３】
仮想装置２０の移行に特に制限がなければ、仮想装置２０が、さらに、左の情報処理装置１から右の情報処理装置１に移行する可能性がある。すなわち、記憶装置３に格納されているデータと、右の情報処理装置１の対象情報記憶部１１に格納されているキャッシュデータとの間に、不整合が生じている状態で、仮想装置２０が右の情報処理装置１に移行する可能性がある。仮想装置２０が不整合が生じているキャッシュデータを使用した場合、仮想装置２０は、その不整合のために正常に動作できない。
【００８４】
仮想装置２０がキャッシュデータの不整合のために正常に動作しないリスクを軽減するためには、不整合が生じている可能性があるキャッシュデータを仮想装置２０が使用する可能性を減少させる処理を、例えば制御部１２がキャッシュデータに対して行えばよい。
【００８５】
制御部１２が、不整合が生じている可能性があるキャッシュデータを仮想装置２０が使用する可能性を減少させる処理を、例えば、仮想装置２０の状態変化が検出された場合に行えばよい。状態変化は、例えば、情報処理装置１において動作していなかった仮想装置２０が、その情報処理装置１における動作を開始する動作開始である。動作開始は、例えば、他の情報処理装置１から仮想装置２０が移動すること、及び仮想装置２０が起動すること等を含む。他の情報処理装置１に移行した仮想装置２０が戻ってくることも、動作開始に含まれる。状態変化は、例えば、情報処理装置１において動作していた仮想装置２０が、その情報処理装置１における動作を停止する動作停止である。動作停止は、例えば、仮想装置２０が他の情報処理装置１に移動すること、及び仮想装置２０がシャットダウンなどによって動作を停止することを含む。検出部１３が、例えば以上の状態変化のうちの、あらかじめ定められたいずれかが生じた仮想装置２０を検出すればよい。
【００８６】
制御部１２は、不整合が生じている可能性があるキャッシュデータを仮想装置２０が使用する可能性を減少させる処理として、例えば以下の処理のいずれかを行えばよい。制御部１２は、例えば、検出部１３が状態変化を検出した仮想装置２０に関連付けられているキャッシュデータを消去すればよい。制御部１２は、例えば、検出部１３が状態変化を検出した仮想装置２０に関連付けられているキャッシュデータの、上述の優先度を、そのキャッシュデータが消去される順番が早くなるよう変更してもよい。制御部１２は、例えば、検出部１３が状態変化を検出した仮想装置２０に関連付けられているキャッシュデータに対して、消去することを表すフラグを立ててもよい。その場合、中継部１４は、消去することを表すフラグが立っているキャッシュデータを読み出さないよう設計されていればよい。さらに、中継部１４が、消去することを表すフラグが立っているキャッシュデータを検出した場合、例えば更新部１５が、検出された、消去することを表すフラグが立っているキャッシュデータを消去すればよい。あるいは、制御部１２は、例えば、検出部１３が状態変化を検出した仮想装置２０に関連付けられているキャッシュデータを読み出し禁止に設定してもよい。その場合、中継部１４は、読み出し禁止にされているキャッシュデータを読み出さないよう設計されていればよい。
【００８７】
以上のように、制御部１２は、検出部１３が仮想装置２０の所定の状態変化を検出した場合、状態変化が検出された仮想装置２０に関連付けられているキャッシュデータに対して、所定の処理を行う。この所定の処理は、例えば上述された処理のいずれかである、不整合が生じている可能性があるキャッシュデータを仮想装置２０が使用する可能性を減少させる処理である。キャッシュデータは、本実施形態における対象データである。
【００８８】
次に、仮想装置２０に所定の状態変化が生じる場合における、情報処理装置１の動作の例について、図面を参照して詳細に説明する。以下の説明では、仮想装置２０の所定の状態変化は、他の情報処理装置１に移行した仮想装置２０が戻ってくることである。また、不整合が生じている可能性があるキャッシュデータを仮想装置２０が使用する可能性を減少させる所定の処理は、状態変化が検出された仮想装置２０に関連付けられているキャッシュデータを削除することである。
【００８９】
図７は、本実施形態の情報処理装置１の、仮想装置２０に状態変化が生じる場合における動作の例を表すフローチャートである。図７を使用して、情報処理装置１において起動した仮想装置２０が他の情報処理装置１に移行した後、戻ってくる場合における、情報処理装置１の動作について説明する。
【００９０】
まず、情報処理装置１において仮想装置２０が起動すること、すなわち、実行部１０が仮想装置２０のエミュレートを開始した場合の情報処理装置１の動作について説明する。
【００９１】
図７に示す動作において、検出部１３は、継続的に、仮想装置２０の状態変化の検出を行っている（ステップＳ２０１）。
【００９２】
仮想装置２０の状態変化が検出されない場合（ステップＳ２０２においてＮｏ）、情報処理装置１の動作は、ステップＳ２０１に戻る。そして、検出部１３は、仮想装置２０の状態変化の検出を継続する。
【００９３】
仮想装置２０の状態変化が検出された場合（ステップＳ２０２においてＹｅｓ）、制御部１２は、検出した状態変化が、仮想装置２０の起動であるか判定する。仮想装置２０の起動が検出された場合（ステップＳ２０３においてＹｅｓ）、制御部１２は、起動が検出された仮想装置２０の識別子を特定する（ステップＳ２０４）。
【００９４】
検出部１３は、仮想装置２０の状態変化に加えて、状態変化が検出された仮想装置２０の識別子と、状態変化の種別とを検出する。前述のように、検出部１３は、例えば実行部１０から、状態が変化した仮想装置２０の識別子と、状態変化の種別とを受信すればよい。そして、検出部１３は、制御部１２に対して、状態が変化した仮想装置２０の識別子と、状態変化の種別とを送信すればよい。
【００９５】
制御部１２は、起動が検出された仮想装置２０の識別子を記憶する。そして、情報処理装置１の動作は、ステップＳ２０１に戻る。
【００９６】
次に、情報処理装置１が実行している仮想装置２０が、他の情報処理装置１に移動する場合の、情報処理装置１の動作について説明する。
【００９７】
上述のように、検出部１３は、仮想装置２０の状態変化の検出を継続している（ステップＳ２０１）。情報処理装置１が実行している仮想装置２０が、他の情報処理装置１に移動した場合、検出部１３は、仮想装置２０の状態変化を検出する（ステップＳ２０２においてＹｅｓ）。検出された状態変化は、仮想装置２０の起動ではない（ステップＳ２０３においてＮｏ）。その場合、制御部１２は、さらに、検出された状態変化が、仮想装置２０が他の情報処理装置１に移動したことであるか判定する。制御部１２は、検出部１３から受信した状態変化の種別に基づいて判定すればよい。
【００９８】
判定の結果、仮想装置２０が他の情報処理装置１に移動した場合（ステップＳ２０５においてＹｅｓ）、制御部１２は、他の情報処理装置１に移動した仮想装置２０の識別子を特定する。そして、制御部１２は、特定された、仮想装置２０の識別子を、他の情報処理装置１に移動した仮想装置２０の識別子として記憶する（ステップＳ２０６）。ステップＳ２０６の後、情報処理装置１の動作はステップＳ２０１に戻る。そして、検出部１３は、仮想装置２０の状態変化の検出を継続する。
【００９９】
次に、他の情報処理装置１に移動した仮想装置２０が、再び戻ってきた場合における、情報処理装置１の動作について説明する。
【０１００】
上述のように、検出部１３は、仮想装置２０の状態変化の検出を継続している（ステップＳ２０１）。仮想装置２０が他の情報処理装置１から情報処理装置１に移動した場合、検出部１３は、仮想装置２０の状態変化を検出する（ステップＳ２０２においてＹｅｓ）。検出された状態変化は、仮想装置２０の起動ではない（ステップＳ２０３においてＮｏ）。その場合、制御部１２は、さらに、検出された状態変化が、仮想装置２０が他の情報処理装置１に移動したことであるか判定する。判定の結果、仮想装置２０が他の情報処理装置１に移動していない場合（ステップＳ２０５においてＮｏ）、制御部１２は、仮想装置２０が他の情報処理装置１から移動したか判定する。判定の結果、仮想装置２０が他の情報処理装置１から情報処理装置１に移動していない場合（ステップＳ２０７においてＮｏ）、情報処理装置１の動作は、ステップＳ２０１に戻る。そして、検出部１３は仮想装置２０の状態変化の検出を継続する。
【０１０１】
判定の結果、仮想装置２０が他の情報処理装置１から情報処理装置１に移動した場合（ステップＳ２０７においてＹｅｓ）、制御部１２は、他の情報処理装置１から移動した仮想装置２０の識別子を特定する（ステップＳ２０８）。
【０１０２】
制御部１２は、ステップＳ２０８において特定された、他の情報処理装置１から移動した仮想装置２０の識別子が、他の情報処理装置１に移動した仮想装置２０の識別子として記憶されているか判定する。
【０１０３】
特定された、他の情報処理装置１から移動した仮想装置２０の識別子が、他の情報処理装置１に移動した仮想装置２０の識別子として記憶されていない場合（ステップＳ２０９においてＮｏ）、情報処理装置１は、図７に示す動作を終了する。あるいはこの場合、情報処理装置１の動作は、ステップＳ２０１に戻ってもよい。
【０１０４】
特定された、他の情報処理装置１から移動した仮想装置２０の識別子が、他の情報処理装置１に移動した仮想装置２０の識別子として記憶されている場合（ステップＳ２０９においてＹｅｓ）、情報処理装置１の動作は、ステップＳ２１０に進む。なお、仮想装置２０が移動して行った移動先である他の情報処理装置１と、戻ってきた仮想装置２０の移動元である他の情報処理装置１は、一致する必要はない。
【０１０５】
ステップＳ２１０において、制御部１２は、他の情報処理装置１から移動した仮想装置２０に関連付けられている対象データに対して、所定の処理を行う（ステップＳ２１０）。前述のように、他の情報処理装置１から移動した仮想装置２０に関連付けられている対象データは、他の情報処理装置１から移動した仮想装置２０の識別子に関連付けられている対象データである。また、ステップＳ２１０において他の情報処理装置１から移動した仮想装置２０は、他の情報処理装置１に移動した後、戻ってきた仮想装置２０である。対象データは、対象情報記憶部１１に格納されている。さらに、対象データは、前述のキャッシュデータである。そして、所定の処理は、図７に示す説明においては、対象データを削除することである。従って、言い換えると、ステップＳ２１０において、制御部１２は、他の情報処理装置１に移動した後、戻ってきた仮想装置２０に関連付けられているキャッシュデータ（すなわち対象データ）を、対象情報記憶部１１から削除する。
【０１０６】
本実施形態には、仮想装置２０が動作する情報処理装置１が保持する、仮想装置２０によるアクセスに応じて変化しうる対象データに、仮想装置２０が情報処理装置１間で移動することによって生じる不整合を軽減することができるという効果がある。
【０１０７】
その理由は、制御部１２が、対象情報記憶部１１に格納され、状態変化が検出された仮想装置２０に関連付けられている対象データに対して、所定の処理を行うからである。所定の処理は、例えば削除である。所定の処理は、状態変化が検出された仮想装置２０が、処理が行われた対象データを使用する可能性を低減する処理であれば、削除以外の処理であってもよい。状態変化は、例えば、他の情報処理装置１に移動した後、戻ってくることである。状態変化は、他の状態変化であってもよい。
【０１０８】
＜第２の実施形態＞
次に、本発明の第２の実施形態について、図面を参照して詳細に説明する。
【０１０９】
図１は、本実施形態の情報処理システム１００の構成を表すブロック図である。本実施形態の情報処理システム１００の構成は、第１の実施形態の情報処理システム１００の構成と同じである。
【０１１０】
本実施形態の更新部１５は、アクセス要求が書き込み要求である場合、書き込まれるアクセス対象の全てを、対象情報記憶部１１に対象データとして書き込めた場合、記憶装置３にアクセス要求を送信しない。
【０１１１】
さらに、本実施形態の制御部１２は、実行装置１０が実行していた仮想装置２０が、他の情報処理装置１に移動したことが検出された場合、例えば中継部１４に移動通知を送信する。
【０１１２】
本実施形態の中継部１４は、移動通知を受信した場合、対象情報記憶部１１に格納されている対象データを、記憶装置３が記憶するデータに反映させる。
【０１１３】
制御部１２は、さらに、対象データの、記憶装置３が記憶するデータへの反映が終了した後、他の情報処理装置１に移動したことが検出された仮想装置２０に関連付けられている対象データを消去する。
【０１１４】
また、制御部１２は、他の情報処理装置１に移動した仮想装置２０の識別子を記憶しない。制御部１２は、他の情報処理装置１から移動した仮想装置２０の識別子と、記憶している、他の情報処理装置１に移動した仮想装置２０の識別子とを比較しない。そして、制御部１２は、他の情報処理装置１に移動した後、戻ってきた仮想装置２０に関連付けられている対象データを消去しない。
【０１１５】
以上を除き、本実施形態の各構成要素は、同じ符号が付与された、第１の実施形態の構成要素と同じである。また、第１の実施形態と同様に、本実施形態においても、対象情報記憶部１１に格納されている対象データは、キャッシュデータである。
【０１１６】
次に、本実施形態の情報処理装置１の動作について、図面を参照して詳細に説明する。
【０１１７】
図８及び図９は、本実施形態の情報処理装置１の、通常時の動作を表すフローチャートである。図８及び図９と、図６とを比較すると、図９におけるステップＳ１０４とステップＳ１０５の間に、ステップＳ３０１の動作が含まれる点が異なる。前述のように、図６は、第１の実施形態の情報処理装置１の通常時の動作を表すフローチャートである。図８及び図９における、ステップＳ３０１以外のステップの動作は、図６に示す、同じ符号が付与されたステップの動作と同じである。従って、以下では、ステップＳ３０１の動作及びステップＳ３０１の動作に関連する動作の説明を行い、他の動作についての説明は省略する。
【０１１８】
ステップＳ１０４においてキャッシュを書き換えた後、更新部１５は、アクセス要求に基づく全てのアクセス対象を、対象データとして対象情報記憶部１１に書き込めたか判定する（ステップＳ３０１）。
【０１１９】
書き込み命令であるアクセス命令に基づく全てのアクセス対象を、対象データとして対象情報記憶部１１に書き込めた場合（ステップＳ３０１においてＹｅｓ）、中継部１４は、仮想装置２０に終了信号を送信する（ステップＳ１０７）。そして、仮想装置２０が、終了信号を受信する（ステップＳ１０８）。
【０１２０】
アクセス要求に基づく全てのアクセス対象を、対象データとして対象情報記憶部１１に書き込めなかった場合（ステップＳ３０１においてＮｏ）、ステップＳ１０５以降の動作を行う。本実施形態におけるステップＳ１０５以降の動作は、図６に示す、第１の実施形態におけるステップＳ１０５以降の動作と同じである。
【０１２１】
なお、ステップＳ１０４において、更新部１５は、書き込み命令の基づき対象情報記憶部１１に書き込みを行った対象データに、変更されたことを表すフラグを関連付けてもよい。
【０１２２】
以上のように、本実施形態では、アクセス命令が書き込み命令である場合、アクセス命令によって書き込まれるデータであるアクセス対象を、対象情報記憶部１１に書き込めた場合、アクセス命令受信時においては記憶装置３にアクセス命令を送信しない。
【０１２３】
次に、本実施形態の情報処理装置１の、仮想装置２０に状態変化が生じた場合における動作について、図面を参照して詳細に説明する。
【０１２４】
図１０は、本実施形態の情報処理装置１の、仮想装置２０に状態変化が生じた場合における動作を表すフローチャートである。図１０に示す動作において、ステップＳ２０１からステップＳ２０５までのステップにおける動作は、図７に示す、第１の実施形態の情報処理装置１の動作における、同じ番号が付与されているステップの動作と同じである。図１０に示す動作では、ステップＳ２０５においてＹｅｓである場合、ステップＳ４０１及びステップＳ４０２の動作が行われる。以下では、主に、ステップＳ４０１及びステップＳ４０２の動作と、それらのステップに関連する動作とについて説明する。
【０１２５】
本実施形態の検出部１３も、仮想装置２０の状態変化を、継続的に検出している（ステップＳ２０１）。仮想装置２０の状態変化が検出され（ステップＳ２０２においてＹｅｓ）、検出された状態変化が起動ではなく（ステップＳ２０３においてＮｏ）、情報処理装置１の動作はステップＳ２０５に進む。さらに、検出された状態変化が、他の情報処理装置１への移動である場合（ステップＳ２０５においてＹｅｓ）、情報処理装置１の動作はステップＳ４０１に進む。
【０１２６】
ステップＳ４０１において、中継部１４は、他の情報処理装置１への移動が検出された仮想装置２０に関連付けられている対象データを、記憶装置３に反映させる。すなわち、中継部１４は、他の情報処理装置１への移動が検出された仮想装置２０に関連付けられている対象データを、その対象データの関連付けられているアクセス先の識別子によって特定される、記憶装置３に含まれる記憶領域に書き込む。なお、上述のステップＳ１０４において、書き込みが行われた対象データに変更されたことを表すフラグが関連付けられている場合、中継部１４は、変更されたことを表すフラグが関連付けられている対象データだけを、上述のように記憶装置３に書き込めばよい。
【０１２７】
ステップＳ４０１の動作の後、制御部１２は、他の情報処理装置１に移動したことが検出された仮想装置２０に関連付けられている対象データに、所定の処理を行う（ステップＳ４０２）。本実施形態における所定の処理は、例えば、図６に示すステップＳ２１０の動作の説明において述べた、不整合が生じている可能性があるキャッシュデータを仮想装置２０が使用する可能性を減少させる処理のいずれかである。本実施形態における所定の処理は、例えば消去であってもよい。
【０１２８】
なお、本実施形態の情報処理装置１は、ステップＳ２０５において、仮想装置２０の状態変化が、仮想装置２０が動作している状態から、その仮想装置２０が動作していない状態への変化である場合に、ステップＳ４０１の動作を行ってもよい。
【０１２９】
以上で説明した本実施形態には、第１の実施形態と同じ効果がある。その理由は、第１の実施形態の効果が生じる理由と同じである。ただし、本実施形態では、仮想装置２０が他の情報処理装置１に移動したことが検出された場合、中継部１４は、その仮想装置２０が発行したアクセス命令の受信時において記憶装置３に書き込まれなかったデータを、記憶装置３に書き込む。そして、中継部１４による書き込みが終了した後、制御部１２は、所定の処理を行う。従って、記憶装置３が記憶するデータと、移動元の情報処理装置１が記憶する、そのデータのキャッシュデータとの間に不整合が存在することによる、他の情報処理装置１移動した仮想装置２０が誤動作するリスクを軽減することができる。
【０１３０】
本実施形態には、さらに、仮想装置２０から書き込み命令であるアクセス命令を受信してから、そのアクセス命令に対する処理が完了するまでの時間を短縮できるという効果がある。
【０１３１】
その理由は、アクセス命令によって書き込まれる対象データを、全て対象情報記憶部１１に書き込めた場合、中継部１４は、そのアクセス命令の受信時において、そのアクセス命令によって書き込まれる対象データを記憶装置３に書き込まないからである。
【０１３２】
＜第３の実施形態＞
次に、本発明の第３の実施形態について、図面を参照して詳細に説明する。
【０１３３】
図１は、本実施形態の情報処理システム１００の構成の例を表すブロック図である。本実施形態の情報処理システム１００の構成は、第１の実施形態の情報処理システム１００の構成と同じである。
【０１３４】
本実施形態の制御部１２は、検出された仮想装置２０の状態変化の種別が、あらかじめ設定されている状態変化の種別である場合、その状態変化が検出された仮想装置２０に関連付けられている対象データに対して、所定の処理を行う。なお、複数の状態の種別があらかじめ設定されていてもよい。その場合、本実施形態の制御部１２は、検出された仮想装置２０の状態変化の種別が、あらかじめ設定されている状態変化の種別のいずれかである場合、その状態変化が検出された仮想装置２０に関連付けられている対象データに対して、所定の処理を行えばよい。
【０１３５】
状態変化の種別は、第１の実施形態の説明において述べた状態変化の種別と同じである。あらかじめ設定されている状態変化の種別は、例えば、情報処理装置１の設計者、管理者、あるいはユーザによって設定されればよい。
【０１３６】
次に、本実施形態の情報処理装置１の動作について、図面を参照して詳細に説明する。
【０１３７】
図６は、本実施形態の情報処理装置１の、通常時における動作の例を表すフローチャートである。本実施形態の情報処理装置１の、通常時における動作は、第１の実施形態の情報処理装置１の通常時における動作と同じである。従って、本実施形態の情報処理装置１の通常時における動作の説明は省略する。
【０１３８】
図１１は、本実施形態の情報処理装置１の、仮想装置２０の状態が変化した場合における動作を表すフローチャートである。ステップＳ２０１及びステップＳ２０２の動作は、第１の実施形態における、ステップＳ２０１及びステップＳ２０２の動作と同じである。従って、これらの動作の説明は省略する。
【０１３９】
ステップＳ５０１において、制御部１２は、検出された、仮想装置２０の状態変化の種別が、あらかじめ設定されている状態変化の種別と同じか判定する。複数の状態種別が設定されている場合、制御部１２は、検出された、仮想装置２０の状態変化の種別が、あらかじめ設定されている状態変化の種別のいずれかと同じか判定する。
【０１４０】
検出された、仮想装置２０の状態変化の種別が、あらかじめ設定されているいずれの状態変化の種別とも同じでない場合（ステップＳ５０１においてＮｏ）、制御部１２は、検出された状態変化に応じて定められている処理を行う（ステップＳ５０２）。ステップＳ５０２における動作は、例えば、図７に示すステップＳ２０４あるいはステップＳ２０６における動作である。検出された状態変化に応じて定められている処理が存在しない場合、制御部１２は、ステップＳ５０２における動作を行わなくてよい。
【０１４１】
検出された、仮想装置２０の状態変化の種別が、あらかじめ設定されているいずれかの状態変化の種別と同じである場合（ステップＳ５０１においてＹｅｓ）、情報処理装置１の動作は、ステップＳ５０３に進む。以下の説明において、あらかじめ設定されているいずれかの状態変化の種別と同じ種別の状態変化が検出された仮想装置２０を、対象仮想装置と表記する。
【０１４２】
ステップＳ５０３において、例えば制御部１２が、対象仮想装置に関連付けられている、対象情報記憶部１１に格納されている対象データに対して、所定の処理を行う。ステップＳ５０３における所定の処理は、図７に示すステップＳ２１０の動作における所定の処理と同じであればよい。ステップＳ５０３において所定の処理を行う構成要素は、制御部１２に限られない。例えば、ステップＳ５０３における所定の処理は、図１０に示すステップＳ４０１の動作及びステップＳ４０２の動作であってもよい。図１０に示す例では、ステップＳ４０１の動作は中継部１４によって行われる。そして、ステップＳ４０２の動作は制御部１２によって行われる。
【０１４３】
以上で説明した本実施形態には、第１の実施形態と同じ効果がある。その理由は、第１の実施形態の効果が生じる理由と同じである。
【０１４４】
＜第４の実施形態＞
次に、本発明の第４の実施形態について、図面を参照して詳細に説明する。
【０１４５】
図１２は、本実施形態の情報処理システム１００Ｃの構成の例を表すブロック図である。図１２と図１を比較すると、本実施形態の情報処理システム１００Ｃは、記憶装置３の代わりに対象装置３Ａを含む点が、第１の実施形態の情報処理システム１００と異なる。対象装置３Ｃは、サーバなどの情報処理装置であってもよい。対象装置３Ｃは、記憶装置であってもよい。本実施形態では、対象装置３Ｃが前述の要求先装置である。
【０１４６】
図１３は、本実施形態の情報処理システム１００Ｃの全体像を模式的に表す図である。図１３に示すように、情報処理システム１００Ｃは、複数の情報処理装置１を含んでいてもよい。同様に、情報処理システム１００Ｃは、複数の対象装置３Ａを含んでいてもよい。各情報処理システム１００Ｃと各対象装置３Ｃとは、例えば通信ネットワーク４を介して接続されている。
【０１４７】
本実施形態では、仮想装置２０は、中継部１４を介して、対象装置３Ｃに対してアクセスを行う。アクセスは、例えば、何らかのデータの送信及び受信の少なくともいずれかを行う通信であればよい。データは、例えば、対象装置３Ｃに対する命令や、対象装置３Ｃからの命令であってもよい。
【０１４８】
本実施形態では、仮想装置２０に対して設定された通信に関する優先順位が、仮想装置２０の識別子に関連付けられて、対象データとして対象情報記憶部１１に格納される。すなわち、本実施形態では、対象データは仮想装置２０の通信に関する優先順位である。
【０１４９】
中継部１４は、仮想装置２０からデータを受信し、受信したデータを対象装置３Ｃに送信する出力を行う。中継部１４は、対象装置３Ｃからデータを受信し、受信したデータを仮想装置２０に送信する入力を行う。中継部１４は、複数の仮想装置２０が、これらの入力及び出力を含む通信を行う場合、仮想装置２０に関連付けられている優先順位が高いほど優先して、仮想装置２０が行う通信の処理を行う。中継部１４は、例えば、優先順位が高さに応じた広さの通信帯域を仮想装置２０に割り当てればよい。中継部１４は、例えば、複数の仮想装置２０が同時に通信を行おうとする場合、優先度が高い仮想装置２０の通信の処理が完了した後、優先度が低い仮想装置２０による通信に対する処理を行ってもよい。優先順位に応じた優先度で仮想装置２０の通信を処理する方法は、以上の方法ではない、他の方法であってもよい。
【０１５０】
更新部１５は、例えば、仮想装置２０の状態や、仮想装置２０が行っている処理の内容や、仮想装置２０が行う通信の種類に応じて、各仮想装置２０の優先順位を決定する。更新部１５が、仮想装置２０の優先順位を決定するために使用するパラメータを、以下の説明において、仮想装置２０に関する状態と表記する。更新部１５は、仮想装置２０に関する状態を検出し、検出された、仮想装置２０に関する状態に基づき、優先順位を決定する。そして、更新部１５は、決定された優先順位を、仮想装置２０の識別子に関連付けて、対象データとして対象情報記憶部１１に格納する。更新部１５が仮想装置２０の優先順位を決定する方法は、あらかじめ決められていればよい。更新部１５は、優先順位の更新を、例えば、制御部１２から指示を受信した場合に行う。更新部１５は、さらに、例えば、仮想装置２０からの指示を受信した場合に、優先順位の更新を行ってもよい。仮想装置２０は、例えば、行っている処理の内容や、行っている通信の種類が変わった場合、更新部１５に優先順位を更新する指示を送信するよう設定されていればよい。
【０１５１】
仮想装置２０にあらかじめ決められた種別の状態変化が生じたことが検出部１３によって検出された場合、制御部１２は、仮想装置２０の優先順位を更新するよう、更新部１５に対して指示することによって、各仮想装置２０の優先順位を更新する。
【０１５２】
図１４は、本実施形態の情報処理装置１の、対象データを更新する場合における動作を表すフローチャートである。図１４の動作は、例えば、制御部１２あるいはいずれかの仮想装置２０からの指示によって開始される。
【０１５３】
まず、更新部１５が、仮想装置２０に関する状態を検出する（ステップＳ６０１）。
【０１５４】
次に、更新部１５が、検出された、仮想装置２０に関する状態に基づき、仮想装置２０に関連付けられている対象データを更新する（ステップＳ６０２）。
【０１５５】
次に、本実施形態の情報装置１の、仮想装置２０に状態変化が生じた場合における動作について、図面を参照して詳細に説明する。
【０１５６】
図１１は、本実施形態の情報装置１の、仮想装置２０に状態変化が生じた場合における動作を表すフローチャートである。
【０１５７】
本実施形態の情報処理装置１の、仮想装置２０に状態変化が生じた場合における動作は、ステップＳ５０３における所定の処理の内容を除いて、第３の実施形態の情報処理装置１の、仮想装置２０に状態変化が生じた場合における動作と同じである。
【０１５８】
ステップＳ５０３において、更新部１５が、対象情報記憶部１１に格納されている、対象データである優先順位を更新する処理を行う。
【０１５９】
以上で説明した本実施形態には、第１の実施形態と同じ効果がある。その理由は、第１の実施形態の効果が生じる理由と同じである。
【０１６０】
＜第５の実施形態＞
次に、本発明の第５の実施形態について、図面を参照して詳細に説明する。
【０１６１】
図１２は、本実施形態の情報処理システム１００Ｃの構成の例を表すブロック図である。本実施形態の情報処理システム１００Ｃの構成は、第４の実施形態の情報処理システム１００Ｃの構成と同じである。
【０１６２】
本実施形態では、対象情報記憶部１１に格納されている対象データは、それぞれの仮想装置２０に設定されている圧縮設定値である。圧縮設定値は、例えば、圧縮に使用される圧縮アルゴリズムや、圧縮処理におけるパラメータ等の、圧縮方法を特定する値である。圧縮設定値は、あらかじめ定められていればよい。
【０１６３】
各仮想装置２０は、中継部１４を介して、対象装置３Ｃと通信を行う。
【０１６４】
中継部１４は、仮想装置２０が対象装置３Ｃに送信するデータを受信すると、受信したデータを、その仮想装置２０に関連付けられている対象データである圧縮設定値に基づく圧縮方法で、圧縮する。
【０１６５】
更新部１５は、例えば、各仮想装置２０に対して設定されている圧縮率、仮想装置２０が送信するデータの種類、圧縮に使用することができる計算資源の量等に基づき、それぞれの仮想装置２０に対する圧縮設定値を決定する。更新部１５は、仮想装置２０に対して設定されている圧縮率、仮想装置２０が送信するデータの種類などを、仮想装置２０から受信すればよい。本実施形態では、仮想装置２０に対して設定されている圧縮率、仮想装置２０が送信するデータの種類などが、上述の、仮想装置２０に関する状態である。仮想装置２０は、要求に応じて、設定されている圧縮率や送信するデータの種類などを、更新部１５に送信するよう設計されていればよい。更新部１５は、圧縮に使用することができる計算資源を、例えば実行部１０から取得すればよい。更新部１５は、さらに、使用可能なそれぞれの圧縮アルゴリズムを使用して、設定可能なさまざまなパラメータに基づき圧縮を行う場合における、平均的な圧縮率や、平均的な資源使用量などを、使用して、圧縮設定値を決定してもよい。更新部１５は、使用可能なそれぞれの圧縮アルゴリズムを使用して、設定可能なさまざまなパラメータに基づき圧縮を行う場合における、平均的な圧縮率や、平均的な資源使用量などを、あらかじめ保持していればよい。更新部１５が圧縮アルゴリズムやパラメータを選択する方法として、既存のさまざまな方法を使用することができる。更新部１５は、例えば、制御部１２やいずれかの仮想装置２０から指示を受信した場合に、圧縮設定値を決定し、決定した圧縮設定値を状態情報記憶部１１に格納すればよい。仮想装置２０は、例えば、送信するデータの種類が変更された場合に、更新部１５に対して、圧縮設定値を更新する指示を送信すればよい。
【０１６６】
制御部１２は、いずれかの仮想装置２０の状態変化が検出されると、更新部１５に圧縮設定値を更新する指示を送信することによって、対象情報記憶部１１に格納されている圧縮設定値を更新すればよい。
【０１６７】
次に、本実施形態の情報処理装置１の動作について、図面を参照して詳細に説明する。
【０１６８】
図１４は、本実施形態の情報処理装置１の、対象データを更新する場合における動作を表すフローチャートである。図１４の動作は、例えば、制御部１２やいずれかの仮想装置２０からの指示によって開始される。
【０１６９】
まず、更新部１５が、仮想装置２０に関する状態を検出する（ステップＳ６０１）。
【０１７０】
次に、更新部１５が、検出された、仮想装置２０に関する状態に基づき、仮想装置２０に関連付けられている対象データを更新する（ステップＳ６０２）。
【０１７１】
次に、本実施形態の情報装置１の、仮想装置２０に状態変化が生じた場合における動作について、図面を参照して詳細に説明する。
【０１７２】
図１１は、本実施形態の情報装置１の、仮想装置２０に状態変化が生じた場合における動作を表すフローチャートである。
【０１７３】
本実施形態の情報処理装置１の、仮想装置２０に状態変化が生じた場合における動作は、ステップＳ５０３における所定の処理の内容を除いて、第３の実施形態の情報処理装置１の、仮想装置２０に状態変化が生じた場合における動作と同じである。
【０１７４】
ステップＳ５０３において、更新部１５が、対象情報記憶部１１に格納されている、対象データである圧縮設定値を更新する処理を行う。
【０１７５】
以上で説明した本実施形態には、第１の実施形態と同じ効果がある。その理由は、第１の実施形態の効果が生じる理由と同じである。
【０１７６】
＜第６の実施形態＞
次に、本発明の第６の実施形態について、図面を参照して詳細に説明する。
【０１７７】
図１５は、本実施形態の情報処理装置１Ｃの構成を表すブロック図である。
【０１７８】
図１５を参照すると、本実施形態の情報処理装置１Ｃは、仮想装置２０を実行する実行部１０によって実行される前記仮想装置２０が行ったアクセスに応じて更新され、前記仮想装置２０に関連付けられている対象データを記憶する対象情報記憶部１１と、前記実行部１０が実行する前記仮想装置２０の状態が、実行されている状態とそれ以外の状態との間で変化する状態変化を検出する検出部１３によって、前記仮想装置２０の前記状態変化が検出された場合、前記対象データに対して所定の処理を行う制御部１２と、を備える。
【０１７９】
以上で説明した本実施形態には、第１の実施形態と同じ効果がある。その理由は、第１の実施形態の効果が生じる理由と同じである。
【０１８０】
情報処理装置１、情報処理装置１Ａ、情報処理装置１Ｂ、情報処理装置１Ｃは、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。
【０１８１】
図１６は、情報処理装置１、情報処理装置１Ａ、情報処理装置１Ｂ、情報処理装置１Ｃを実現することができる、コンピュータ１０００の構成の一例を表す図である。図１６を参照すると、コンピュータ１０００は、プロセッサ１００１と、メモリ１００２と、記憶装置１００３と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インタフェース１００４とを含む。また、コンピュータ１０００は、記録媒体１００５にアクセスすることができる。メモリ１００２と記憶装置１００３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ハードディスクなどの記憶装置である。記録媒体１００５は、例えば、ＲＡＭ、ハードディスクなどの記憶装置、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、可搬記録媒体である。記憶装置１００３が記録媒体１００５であってもよい。プロセッサ１００１は、メモリ１００２と、記憶装置１００３に対して、データやプログラムの読み出しと書き込みを行うことができる。プロセッサ１００１は、Ｉ／Ｏインタフェース１００４を介して、例えば、記憶装置３や対象装置３Ａにアクセスすることができる。プロセッサ１００１は、記録媒体１００５にアクセスすることができる。記録媒体１００５には、コンピュータ１０００を、情報処理装置１、情報処理装置１Ａ、情報処理装置１Ｂ、又は情報処理装置１Ｃとして動作させるプログラムが格納されている。
【０１８２】
プロセッサ１００１は、記録媒体１００５に格納されている、コンピュータ１０００を、情報処理装置１、情報処理装置１Ａ、情報処理装置１Ｂ、又は情報処理装置１Ｃとして動作させるプログラムを、メモリ１００２にロードする。そして、プロセッサ１００１が、メモリ１００２にロードされたプログラムを実行することにより、コンピュータ１０００は、情報処理装置１、情報処理装置１Ａ、情報処理装置１Ｂ、又は情報処理装置１Ｃとして動作する。
【０１８３】
実行部１０、制御部１２、検出部１３、中継部１４、更新部１５は、例えば、プログラムを記憶する記録媒体１００５からメモリ１００２に読み込まれた、各部の機能を実現することができる専用のプログラムと、そのプログラムを実行するプロセッサ１００１により実現することができる。また、対象情報記憶部１１は、コンピュータ１０００が含むメモリ１００２やハードディスク装置等の記憶装置１００３により実現することができる。あるいは、実行部１０、対象情報記憶部１１、制御部１２、検出部１３、中継部１４、更新部１５の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
【０１８４】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１８５】
１、１Ａ、１Ｂ、１Ｃ    情報処理装置
２    移行検出装置
３    記憶装置
３Ａ    対象装置
４    通信ネットワーク
１０    実行部
１１    対象情報記憶部
１２    制御部
１３    検出部
１４    中継部
１５    更新部
１６    入出力仮想装置
１６Ａ    入出力装置
２０    仮想装置
２１    仮想装置群
１００、１００Ａ、１００Ｂ、１００Ｃ    情報処理システム
１０００    コンピュータ
１００１    プロセッサ
１００２    メモリ
１００３    記憶装置
１００４    Ｉ／Ｏインタフェース
１００５    記録媒体
【図１】
2015176426.tif 000003
【図２】
2015176426.tif 000004
【図３】
2015176426.tif 000005
【図４】
2015176426.tif 000006
【図５】
2015176426.tif 000007
【図６】
2015176426.tif 000008
【図７】
2015176426.tif 000009
【図８】
2015176426.tif 000010
【図９】
2015176426.tif 000011
【図１０】
2015176426.tif 000012
【図１１】
2015176426.tif 000013
【図１２】
2015176426.tif 000014
【図１３】
2015176426.tif 000015
【図１４】
2015176426.tif 000016
【図１５】
2015176426.tif 000017
【図１６】
2015176426.tif 000018
【図１７】
2015176426.tif 000019