(57)【要約】【課題】  記憶装置へのアクセスを低減する。【解決手段】  本発明の情報処理装置は、記憶装置に接続され、データを保存するキャッシュと、データを、複数の仮想マシンが使用する多重使用データ、又は、一の仮想マシンが使用する単独使用データに分類する分類手段と、多重使用データの場合にデータをキャッシュに保存し、単独使用データの場合にデータを記憶装置に保存するデータ保存手段とを含む。【選択図】  図１
2019144932.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に接続され、
データを保存するキャッシュと、
前記データを、複数の仮想マシンが使用する多重使用データ、又は、一の前記仮想マシンが使用する単独使用データに分類する分類手段と、
前記多重使用データの場合に前記データを前記キャッシュに保存し、前記単独使用データの場合に前記データを前記記憶装置に保存するデータ保存手段と
を含む
情報処理装置。
【請求項２】
前記仮想マシンと、
前記仮想マシンを動作させる仮想化基盤と
を備え、
前記仮想マシンが、
前記分類手段と、
分類した結果と前記データとを前記仮想化基盤に送信するデータ仲介手段と
を含み、
前記仮想化基盤が、
前記キャッシュと、
前記記憶装置に前記データを送信するデータ送信手段と
を含み、
前記データ保存手段が、前記結果が前記単独使用データの場合に前記データ送信手段を用いて前記データを前記記憶装置に保存する
請求項１に記載の情報処理装置。
【請求項３】
前記仮想化基盤が、
前記キャッシュに前記データを保存した場合、他の情報処理装置に、前記データの保存を依頼し、
他の情報処理装置から前記データの保存を依頼された場合、依頼された前記データを前記キャッシュに保存する
多重化手段をさらに含む請求項２に記載の情報処理装置。
【請求項４】
請求項１ないし３のいずれか１項に記載の前記情報処理装置と、
前記記憶装置と、
前記情報処理装置を前記記憶装置に接続するネットワークと
を含む情報処理システム。
【請求項５】
記憶装置に接続され、
データを保存するキャッシュを含む情報処理装置が、
前記データを、複数の仮想マシンが使用する多重使用データ、又は、一の前記仮想マシンが使用する単独使用データに分類し、
前記多重使用データの場合に前記データを前記キャッシュに保存し、前記単独使用データの場合に前記データを前記記憶装置に保存する
情報処理方法。
【請求項６】
前記仮想マシンと、
前記仮想マシンを動作させる仮想化基盤と
を備え、
前記仮想マシンが、
前記データを、前記多重使用データ、又は、前記単独使用データに分類し、
分類した結果と前記データとを前記仮想化基盤に送信し、
前記仮想化基盤が、
前記キャッシュを含み、
前記多重使用データの場合に前記データを前記キャッシュに保存し、前記単独使用データの場合に前記データを前記記憶装置に保存する
請求項５に記載の情報処理方法。
【請求項７】
前記仮想化基盤が、
前記キャッシュに前記データを保存した場合、他の情報処理装置に、前記データの保存を依頼し、
他の情報処理装置から前記データの保存を依頼された場合、依頼された前記データを前記キャッシュに保存する
請求項６に記載の情報処理方法。
【請求項８】
記憶装置に接続され、
データを保存するキャッシュを含むコンピュータに、
前記データを、複数の仮想マシンが使用する多重使用データ、又は、一の前記仮想マシンが使用する単独使用データに分類する処理と、
前記多重使用データの場合に前記データを前記キャッシュに保存し、前記単独使用データの場合に前記データを前記記憶装置に保存する処理と
を実行させるプログラム。
【請求項９】
前記仮想マシンとしての処理と、
前記仮想マシンを動作させる仮想化基盤としての処理と
を備え、
前記仮想マシンとしての処理が、
前記データを、前記多重使用データ、又は、前記単独使用データに分類する処理と、
分類した結果と前記データとを前記仮想化基盤に送信する処理と、
を含み、
前記仮想化基盤としての処理が、
前記キャッシュとしての処理と、
前記多重使用データの場合に前記データを前記キャッシュに保存し、前記単独使用データの場合に前記データを前記記憶装置に保存する処理と
を含む請求項８に記載のプログラム。
【請求項１０】
前記仮想化基盤としての処理が、
前記キャッシュに前記データを保存した場合、他の情報処理装置に、前記データの保存を依頼する処理と、
他の情報処理装置から前記データの保存を依頼された場合、依頼された前記データを前記キャッシュに保存する
請求項９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの処理に関し、特に、記憶装置にデータの保存する処理に関する。
【背景技術】
【０００２】
コンピュータなどの情報処理装置は、可用性を高めるため、仮想マシンを動作させる仮想化基盤を備え、その仮想化基盤上で動作する仮想マシンにおいて所定のオペレーティングシステム及びアプリケーションを動作させる（例えば、特許文献１を参照）。
【０００３】
仮想マシンにおける通常の動作において、仮想マシンは、それぞれの仮想マシン毎に、記憶装置に確保された領域に接続する仮想的な接続機能を用いて、仮想的な記憶装置に対するアクセスを実現している。各仮想マシンは、他の仮想マシンと独立に動作する。そのため、複数の仮想マシンが通常のアプリケーションなどを実行している場合、仮想マシンからの記憶装置へのアクセスは、同時に多数発生する可能性が低く、分散されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１２−５２７７０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
オペレーティングシステム及びアプリケーションは、バグの修正、又は、セキュリティの向上などのため、修正が必要となる場合がある。この修正は、オペレーティングシステムなどを実行している仮想マシンに、パッチファイルとして配布される。
【０００６】
パッチファイルとして配布されるファイルの一例として、Ｈｏｔｆｉｘがある。Ｈｏｔｆｉｘは、使用を停止できないソフトウェア（例えば、オペレーティングシステム）に、危険度が高い深刻な脆弱性が発見された場合に提供されるファイルである。そのため、Ｈｏｔｆｉｘは、対象となるオペレーティングシステムが動作する全ての仮想マシンに、可能な限り早急に配布される必要がある。
【０００７】
また、アプリケーションが動作に用いるデータの更新としても、所定のデータが、ファイルとして仮想マシンに配布される。例えば、ウィルス対策アプリケーションに対して、ウィルスの検出に用いるウィルスパターンファイルが、配布される。特に危険度の高いウィルスが発見された場合、そのウィルスに対応したウィルスパターンファイルは、ウィルス対策アプリケーションが動作する全ての仮想マシンに、早急に配布される必要がある。なお、ウィルスパターンファイルへの追加用データファイル、及び、ウィルスパターンファイルの修正用のファイルは、「セキュリティ・パッチ」と呼ばれる場合がある。
【０００８】
このように、Ｈｏｔｆｉｘのようなファイルは、複数の仮想マシンに対して、同時並行的に配布される必要がある。このようなファイルの配布は、元となるファイルに対して、複数の仮想マシンが、同時並行的に、アクセスすることとなる。その結果、元となるファイルを保存している記憶装置に対して、複数の仮想マシンからの多数のアクセスが、同時並行的に発生する。その結果、その記憶装置への過剰な負荷が、発生する可能性があった。
【０００９】
また、記憶装置は、一般的に、アクセスに対する処理を並行的にではなく、連続的に処理する。そのため、記憶装置への同時並行的な多数のアクセスの発生は、記憶装置において多くの処理の待ち合わせを発生させ、システム全体における処理の遅延を発生させる可能性があった。
【００１０】
特許文献１に記載の発明は、仮想マシンのデータに対する要求数を低減するようにメモリのマッピングを操作するものであり、記憶装置に同時並行的に発生するアクセスを改善するものではない。
【００１１】
本発明の目的は、上記問題点を解決し、記憶装置への同時並行的なアクセスの発生を低減する情報処理装置などを提供することにある。
【課題を解決するための手段】
【００１２】
本発明の一形態における情報処理装置は、記憶装置に接続され、データを保存するキャッシュと、データを、複数の仮想マシンが使用する多重使用データ、又は、一の仮想マシンが使用する単独使用データに分類する分類手段と、多重使用データの場合にデータをキャッシュに保存し、単独使用データの場合にデータを記憶装置に保存するデータ保存手段とを含む。
【００１３】
本発明の一形態における情報処理システムは、上記の情報処理装置と、記憶装置と、情報処理装置を記憶装置に接続するネットワークとを含む。
【００１４】
本発明の一形態における情報処理方法は、記憶装置に接続され、データを保存するキャッシュを含む情報処理装置が、データを、複数の仮想マシンが使用する多重使用データ、又は、一の仮想マシンが使用する単独使用データに分類し、多重使用データの場合にデータをキャッシュに保存し、単独使用データの場合にデータを記憶装置に保存する。
【００１５】
本発明の一形態におけるプログラムは、記憶装置に接続され、データを保存するキャッシュを含むコンピュータに、データを、複数の仮想マシンが使用する多重使用データ、又は、一の仮想マシンが使用する単独使用データに分類する処理と、多重使用データの場合にデータをキャッシュに保存し、単独使用データの場合にデータを記憶装置に保存する処理とを実行させる。
【発明の効果】
【００１６】
本発明に基づけば、記憶装置への同時並行的なアクセスの発生を低減するとの効果を奏することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、本発明における第１の実施形態に係る情報処理装置を含む情報処理システムの構成の一例を示すブロック図である。
【図２】図２は、第１の実施形態に係る仮想マシンにおけるデータの書き込み動作の一例を示すフロー図とである。
【図３】図３は、第１の実施形態に係るデータ保存部におけるデータを保存する動作の一例を示すフロー図である。
【図４】図４は、第１の実施形態に係るキャッシュにおけるデータを保存する動作の一例を示すフロー図である。
【図５】図５は、第１の実施形態に係るキャッシュにおけるデータの書き出しの動作の一例を示すフロー図である。
【図６】図６は、第１の実施形態に係る多重化部における多重化の依頼を送信する動作の一例を示すフロー図である。
【図７】図７は、第１の実施形態に係る多重化部における多重化の依頼を受信した際の動作の一例を示すフロー図である。
【図８】図８は、第１の実施形態に係るキャッシュが保存するデータを管理する情報の一例を示す図である。
【図９】図９は、第１の実施形態に係る分類ルールの一例を示す図である。
【図１０】図１０は、第１の実施形態に係る情報処理装置の概要の構成の一例を示すブロック図である。
【図１１】図１１は、第１の実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１８】
次に、本発明の実施形態について図面を参照して説明する。
【００１９】
なお、各図面は、本発明の実施形態を説明するためのものである。ただし、本発明は、各図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を、省略する場合がある。また、以下の説明に用いる図面において、本発明の説明に関係しない部分の構成については、記載を省略し、図示しない場合もある。
【００２０】
なお、以下の説明において、保存対象を示す用語として「データ」を用いる。ただし、保存対象は、個別のデータに限定されない。保存対象は、データの集合（例えば、配列、構造体、ファイル、フォルダ、又は、記憶装置を論理的に分割した論理ユニット（又はパーティション））でもよい。以下、これらをまとめて「データ」と呼ぶ。
【００２１】
＜第１の実施形態＞
以下、図面を参照して、第１の実施形態について説明する。
【００２２】
［構成の説明］
まず、第１の実施形態に係る情報処理装置１００の構成について、図面を参照して説明する。
【００２３】
図１は、本発明における第１の実施形態に係る情報処理装置１００を含む情報処理システム１０の構成の一例を示すブロック図である。
【００２４】
図１に示されているように、情報処理システム１０は、情報処理装置１００と、記憶装置２００と、ネットワーク４００とを含む。
【００２５】
ネットワーク４００は、情報処理装置１００と記憶装置２００とを接続する。ネットワーク４００は、限定されない。例えば、ネットワーク４００は、情報処理装置１００と記憶装置２００とを接続する専用ネットワーク（例えば、Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＳＡＮ））でもよい。あるいは、ネットワーク４００は、汎用の通信網（例えば、Ｌｏｃａ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）、インターネット、又は、電話回線）でもよい。
【００２６】
記憶装置２００は、情報処理装置１００から受信したデータを保存し、保存したデータを情報処理装置１００に送信する。記憶装置２００は、限定されない。例えば、記憶装置２００は、磁気ディスク装置、Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）、光磁気ディスク装置、又は、それらの装置の組合せ（例えば、ディスクアレイ装置）である。
【００２７】
情報処理装置１００は、記憶装置２００に接続されている。図１に示されているように、複数の情報処理装置１００が、記憶装置２００に接続されていてもよい。ただし、一つの情報処理装置１００が、記憶装置２００に接続されていてもよい。
【００２８】
また、情報処理装置１００は、一つに限らず、複数の記憶装置２００に接続されていてもよい。
【００２９】
情報処理装置１００は、仮想化基盤１０６と、仮想マシン１０１とを含む。
【００３０】
仮想化基盤１０６は、一つ又は複数の仮想マシン１０１に実行環境を提供する。例えば、仮想化基盤１０６は、仮想マシン１０１に対して、データを保存する記憶装置２００を仮想化した記憶装置としての機能を提供する。仮想化した記憶装置は、ネットワークストレージとしての機能を備えていてもよい。例えば、仮想化した記憶装置は、複数の仮想マシン１０１からアクセス可能であってもよい。
【００３１】
さらに、仮想化基盤１０６は、仮想マシン１０１に対して他の機能を提供してもよい。例えば、仮想化基盤１０６は、仮想マシン１０１に対して、仮想化した通信機能を提供してもよい。
【００３２】
仮想化基盤１０６は、図１に示されていないプロセッサ及びメモリなどのハードウェアと、所定のソフトウェアとを用いて実現される。
【００３３】
仮想マシン１０１は、仮想化基盤１０６において、一般的なコンピュータとしての機能を実現する。例えば、仮想マシン１０１は、図示していない所定のオペレーティングシステムを実行し、そのオペレーティングシステム上において各種のアプリケーションを実行する。仮想マシン１０１は、単独のアプリケーションの実行に限らず、複数のアプリケーションで構成されたジョブを実行してもよい。
【００３４】
さらに、仮想マシン１０１は、他の仮想マシン１０１と連携してもよい。例えば、いずれか一の仮想マシン１０１が、仮想化基盤１０６が提供する通信機能を用いて、ウィルス対策アプリケーションのメーカーからウィルスパターンファイル（セキュリティ・パッチ）を入手し、他の仮想マシン１０１に配布してもよい。あるいは、いずれか一の仮想マシン１０１が、通信機能を用いて、オペレーティングシステムのメーカーからＨｏｔｆｉｘを入手し、他の仮想マシン１０１に配布してもよい。
【００３５】
仮想マシン１０１は、仮想化基盤１０６と同様に、図１に示されていないプロセッサ及びメモリなどのハードウェアと、所定のソフトウェアとを用いて実現される。
【００３６】
さらに、第１の実施形態に係る情報処理装置１００の構成の詳細を説明する。
【００３７】
まず、仮想マシン１０１の詳細を説明する。
【００３８】
仮想マシン１０１は、分類部１０３と、仮想ディスクドライバ１０５とを含む。
【００３９】
分類部１０３は、仮想化基盤１０６に保存を依頼するデータを、分類する。例えば、仮想マシン１０１が、新たなファイルを作成した場合、仮想マシン１０１は、作成したファイルを保存する。この場合、分類部１０３は、ファイルを分類する。
【００４０】
あるいは、仮想マシン１０１が、他の装置から取得したファイルを他の仮想マシン１０１に配布するために、ネットワークストレージ機能を備えた仮想的な記憶装置にファイルを保存する。この場合も、分類部１０３は、ファイルを分類する。
【００４１】
なお、分類部１０３は、仮想マシン１０１が保存する全てのデータを分類してもよいし、所定の種類のデータを分類してもよい。
【００４２】
分類の詳細としては、分類部１０３は、保存するデータを、複数の仮想マシン１０１が使用するデータ、又は、その仮想マシン１０１が単独で使用するデータに分類する。
【００４３】
以下、複数の仮想マシン１０１が使用するデータを、「多重使用データ」と呼ぶ。複数の仮想マシン１０１は、一つの情報処理装置１００において動作する仮想マシン１０１に限らない。複数の仮想マシン１０１は、複数の情報処理装置１００において動作する仮想マシン１０１でもよい。
【００４４】
また、仮想マシン１０１が単独で使用するデータを、「単独使用データ」と呼ぶ。
【００４５】
多重使用データの一例は、オペレーティングシステムが用いるファイル、オペレーティングシステムの上で動作するアプリケーションが用いるファイル、又はアプリケーションが利用するライブラリである。多重使用ファイルのより具体的な一例は、セキュリティ・パッチ及びＨｏｔｆｉｘである。
【００４６】
単独使用データの一例は、仮想マシン１０１の動作状態を保存するログファイルである。
【００４７】
分類部１０３は、所定のルールを用いてデータを分類する。
【００４８】
図９は、第１の実施形態に係る分類ルールの一例を示す図である。図９は、ファイルを分類の単位とした場合の例である。
【００４９】
「多重使用ファイル」が、多重使用データと判定されるファイルのルールである。［フォルダ］に示されているフォルダに含まるファイルは、多重使用データと判定される。［拡張子］に示されている拡張子を含むファイルは、多重使用データと判定される。
【００５０】
「単独使用ファイル」が、単独使用データと判定されるファイルのルールである。［フォルダ］に示されているフォルダに含まるファイルは、単独使用データと判定される。［拡張子］に示されている拡張子を含むファイルは、単独使用データと判定される。
【００５１】
分類部１０３は、ファイルに関する上記以外の情報を用いてもよい。例えば、属性が読み取り専用のファイルは、多くから参照されるファイルである場合が多い。そこで、分類部１０３は、読み取り専用の属性のファイルを多重使用ファイルに分類してもよい。
【００５２】
このように、分類部１０３は、ファイルが保存されている位置（例えば、フォルダ）、ファイルの名称（例えば、拡張子）、及び／又は、属性（例えば、読み取り専用の属性）を用いてファイルを分類してもよい。
【００５３】
図１を参照した説明に戻る。
【００５４】
分類部１０３は、分類した結果をデータに付与してもよい。分類結果の付与の具体的なやり方は、データの所定の位置に結果を含ませることである。
【００５５】
データに結果を付与する場合、分類部１０３は、直接的にデータに分類した結果を付与してもよく、次に説明する仮想ディスクドライバ１０５に付与を依頼してもよい。
【００５６】
仮想ディスクドライバ１０５は、仮想マシン１０１に対して、仮想化基盤１０６が提供する仮想化した記憶装置に対するデータの仲介機能（データを送信する機能とデータを受信する機能）を提供する。さらに、仮想ディスクドライバ１０５は、分類部１０３が分類した結果とともにデータを仮想化基盤１０６に送信する。データが分類結果を含む場合、仮想ディスクドライバ１０５は、データを仮想化基盤１０６に送信する。データが分類結果を含まない場合、仮想ディスクドライバ１０５は、分類結果とデータとを、仮想化基盤１０６に送信する。
【００５７】
仮想化した記憶装置とは、仮想化基盤１０６が記憶装置２００及びキャッシュ１０７を仮想化して、仮想マシン１０１に提供する記憶装置である。
【００５８】
次に、仮想化基盤１０６の詳細を説明する。
【００５９】
仮想化基盤１０６は、データ保存部１２０と、キャッシュ１０７と、送受信キュー１０９と、多重化部１０８とを含む。
【００６０】
キャッシュ１０７は、仮想マシン１０１から保存を依頼されたデータの少なくとも一部を保存する。キャッシュ１０７は、仮想化基盤１０６が動作する情報処理装置１００のメモリを用いて構成される。キャッシュ１０７は、複数の仮想マシン１０１からアクセス可能である。キャッシュ１０７は、複数の仮想マシン１０１から共有可能な領域を備えている共有キャッシュである。
【００６１】
仮想マシン１０１で動作するアプリケーションなどからのキャッシュ１０７へのアクセスは、記憶装置２００へのアクセスに対して高速である。一般的に、キャッシュ１０７に対するアクセス時間は、記憶装置２００に対するアクセス時間に比べ、数十分の一から数百分の一である。そのため、キャッシュ１０７へのアクセスにおける待ち合わせが発生しても、待ち合わせ時間は短い。その結果、キャッシュ１０７へのアクセスは、記憶装置２００へのアクセスに比べ、競合が発生しにくい。
【００６２】
以下の説明において、キャッシュ１０７は、キャッシュ１０７におけるデータを管理する機能を含む。例えば、以下の説明において、キャッシュ１０７は、保存しているデータを記憶装置２００に書き出す処理を実行する。ただし、これは、第１の実施形態を限定するものではない。例えば、情報処理装置１００は、図示しないキャッシュ１０７を制御するキャッシュ制御部を備えていてもよい。この場合、キャッシュ制御部が、キャッシュ１０７におけるデータの移動などを制御する。
【００６３】
キャッシュ１０７におけるデータの構造は、限定されない。キャッシュ１０７におけるデータの構造は、仮想化基盤１０６の仕様に沿って決定されればよい。
【００６４】
なお、キャッシュ１０７に保存されたデータは、一般的に、バックグラウンドで動作する保存処理が、所定の周期、又は、所定のタイミングで、所定のキャッシュ・アルゴリズムを用いて記憶装置２００に書き込む。情報処理装置１００は、一般的なキャッシュ・アルゴリズムを用いればよい。キャッシュ・アルゴリズムは、例えば、Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ（ＬＲＵ）、又は、Ｌｅａｓｔ  Ｆｒｅｑｕｅｎｔｌｙ  Ｕｓｅｄ（ＬＦＵ）である。
【００６５】
なお、キャッシュ１０７は、キャッシュ１０７における空き領域が所定の量より少なくなるまで、記憶装置２００に書き出したデータを保持してもよい。
【００６６】
送受信キュー１０９は、記憶装置２００に保存するデータを送信し、記憶装置２００から保存しているデータを受信するキューである。送受信キュー１０９は、記憶装置２００と情報処理装置１００との間における処理の時間的な差を吸収するため、データの先入れ先出し処理を実行する。なお、送受信キュー１０９は、データの先入れ先出し処理に加え、優先度に基づいた処理を実行してもよい。
【００６７】
データ保存部１２０は、仮想マシン１０１から、分類結果とともにデータを受信すると、分類結果を基にデータをキャッシュ１０７又は記憶装置２００に保存する。
【００６８】
具体的には、データ保存部１２０は、次のように動作する。
【００６９】
「多重使用データ」は、複数の仮想マシン１０１から同時並行的にアクセスされる。記憶装置２００への同時並行的なアクセスを避けるため、データ保存部１２０は、多重使用データに分類されたデータをキャッシュ１０７（共有キャッシュ）に保存する。
【００７０】
「単独使用データ」は、仮想マシン１０１から同時並行的にはアクセスされない。そこで、「単独使用データ」の場合、データ保存部１２０は、送受信キュー１０９を介して、単独使用データに分類されたデータを記憶装置２００に保存する。
【００７１】
キャッシュ１０７は、メモリを用いて構成されている。メモリは、情報処理装置１００の電源断などでデータが消失する可能性がある。信頼性を向上するためには、キャッシュ１０７に保存されているデータは、望ましくは、他の情報処理装置１００などとで多重化された方がよい。
【００７２】
また、複数の装置がデータを共有する場合、一般的なシステムでは、共有されるデータは、複数の装置からアクセス可能な記憶装置に保存される。この場合、複数の装置が、その記憶装置にアクセスする。その結果、記憶装置への同時並行的なアクセスが発生する可能性がある。
【００７３】
しかし、他の情報処理装置１００がキャッシュ１０７にそのデータを保存すると、他の情報処理装置１００において動作する仮想マシン１０１は、そのデータへのアクセスとして、キャッシュ１０７へのアクセスを実行する。その結果、他の情報処理装置１００から記憶装置２００へのアクセスが低減される。
【００７４】
そこで、多重化部１０８は、他の情報処理装置１００にデータの保存を依頼して、キャッシュ１０７に保存したデータの多重化を実行する。多重化部１０８は、図示しない所定の通信網を介して他の情報処理装置１００の多重化部１０８との通信を実現している。
【００７５】
多重化部１０８は、キャッシュ１０７にデータが保存されると、他の情報処理装置１００に対して、そのデータを他の情報処理装置１００のキャッシュ１０７に保存することを依頼する。
【００７６】
多重化部１０８は、キャッシュ１０７に保存された全てのデータではなく、一部のデータを多重化してもよい。例えば、仮想マシン１０１は、処理速度を関係で、その仮想マシン１０１が単独で一時的に使用するデータをキャッシュ１０７に保存する場合がある。この場合、多重化部１０８は、そのデータを多重化しなくてもよい。
【００７７】
あるいは、多重化部１０８は、所定の基準を基に、保存を依頼する情報処理装置１００を選択してもよい。例えば、多重化部１０８は、データを作成した仮想マシン１０１、又は、仮想マシン１０１において動作するジョブがデータを共有する情報処理装置１００に対して、多重化を依頼してもよい。
【００７８】
さらに、多重化部１０８は、保存を依頼するデータを管理するための情報を保持してもよい。例えば、他の情報処理装置１００が、所定の処理を終了するまで、多重化の依頼に応答できない場合がある。そこで、多重化部１０８は、多重化の依頼先となる情報処理装置１００毎に、データの多重化を依頼するための管理情報（例えば、リスト）を作成し、管理情報に沿って多重化を依頼してもよい。
【００７９】
多重化部１０８は、他の情報処理装置１００から、データのキャッシュ１０７への保存の依頼を受信すると、依頼元の情報処理装置１００と関連付けてそのデータをキャッシュ１０７に保存する。多重化部１０８は、依頼されたデータと依頼元の情報処理装置１００とを関連付けた情報を保持する。
【００８０】
既に説明したとおり、他の情報処理装置１００がキャッシュ１０７にデータを保存すると、他の情報処理装置１００において動作する仮想マシン１０１からそのデータへのアクセスは、キャッシュ１０７へのアクセスとなる。その結果、他の情報処理装置１００から記憶装置２００へのアクセスが、低減される。
【００８１】
さらに、多重化部１０８は、キャッシュ１０７に保存したデータを記憶装置２００に書き出した場合、保存を依頼した他の情報処理装置１００に、データを記憶装置２００に保存したことを通知してもよい。その際、多重化部１０８は、記憶装置２００に書き出したデータについて、他の情報処理装置１００に、データの削除を依頼してもよい。つまり、多重化部１０８は、記憶装置２００に書き出したデータの多重化をやめてもよい。この場合、他の情報処理装置１００におけるキャッシュ１０７の使用可能容量が、増加する。なお、他の情報処理装置１００において動作する仮想マシン１０１がそのデータを使用中の場合、他の情報処理装置１００は、その仮想マシン１０１がデータの使用を終了するまで、キャッシュ１０７にデータを保存してもよい。
【００８２】
多重化部１０８は、キャッシュ１０７に保存したデータの保存が必要なくなった場合（例えば、そのデータを使用したジョブ又はアプリケーションの終了）、データの保存を依頼した他の情報処理装置１００に、保存したデータの削除を依頼する。他の情報処理装置１００の多重化部１０８は、削除の依頼を受けたデータを削除する。ただしこの場合も、他の情報処理装置１００において動作する仮想マシン１０１がそのデータを使用中の場合、他の情報処理装置１００は、その仮想マシン１０１がデータの使用を終了するまで、キャッシュ１０７にデータを保存してもよい。
【００８３】
［動作の説明］
次に、第１の実施形態に係る情報処理装置１００の動作について、図面を参照して説明する。
【００８４】
図２は、第１の実施形態に係る仮想マシン１０１におけるデータの書き込み動作の一例を示すフロー図である。
【００８５】
仮想マシン１０１においてデータの書き込みが発生した場合、分類部１０３は、所定の分類ルール（例えば、図９に示されている分類ルール）に基づいて、データを、多重使用データ又は単独使用データに分類する（ステップＳ３２１）。
【００８６】
データが多重使用データの場合（ステップＳ３２２でＹｅｓ）、分類部１０３は、データに「多重使用データ」を示す分類結果を付与する（ステップＳ３２３）。
【００８７】
データが単独使用データの場合（ステップＳ３２２でＮｏ）、分類部１０３は、データに「単独使用データ」を示す分類結果を付与する（ステップＳ３２４）。
【００８８】
分類部１０３が分類結果を付与するやり方は、限定されない。例えば、情報処理装置１００は、仮想マシン１０１が仮想化基盤１０６に送信するデータにおいて未使用の領域に、分類結果として使用する領域（例えば、フラグ）を確保してもよい。あるいは、情報処理装置１００は、データの形式を拡張して、新たな領域を追加してもよい。
【００８９】
なお、仮想マシン１０１は、分類結果をデータに付与せず、別情報として動作してもよい。例えば、分類部１０３は、分類結果とデータとを仮想ディスクドライバ１０５に渡してもよい。
【００９０】
仮想ディスクドライバ１０５は、仮想化基盤１０６に、分類結果とデータとを送信し、データの保存を依頼する（ステップＳ３２５）。
【００９１】
図３は、第１の実施形態に係るデータ保存部１２０におけるデータを保存する動作の一例を示すフロー図である。
【００９２】
仮想化基盤１０６のデータ保存部１２０は、仮想マシン１０１からデータの保存の依頼を受けると、データとともに送信された分類結果を確認する（ステップＳ３３１）。
【００９３】
分類結果が多重使用データの場合（ステップＳ３３２でＹｅｓ）、データ保存部１２０は、データをキャッシュ１０７に保存する。
【００９４】
分類結果が単独使用データの場合（ステップＳ３３２でＮｏ）、データ保存部１２０は、データを送受信キュー１０９に登録する（ステップＳ３３４）。
【００９５】
送受信キュー１０９は、登録されたデータを記憶装置２００に保存する（ステップＳ３３５）。
【００９６】
図４は、第１の実施形態に係るキャッシュ１０７におけるデータを保存する動作の一例を示すフロー図である。図４に示されている動作において、キャッシュ１０７は、データの重複を回避する。キャッシュ１０７は、重複回避のため、ハッシュ値を用いる。なお、キャッシュ１０７は、重複回避のために別のやり方を用いてもよい。
【００９７】
キャッシュ１０７は、データ保存部１２０から保存するためのデータを受け取ると以下の動作を実行する（ステップＳ３４１）。
【００９８】
キャッシュ１０７は、受信したデータが、既にキャッシュ１０７に保存済みのデータであるか否かを確認する（ステップＳ３４２）。より詳細には、キャッシュ１０７は、次のような確認を実行する。まず、キャッシュ１０７は、保存を依頼されたデータ（依頼データ）のハッシュ値を算出する。そして、キャッシュ１０７は、キャッシュ１０７に保存されているデータ（保存済みのデータ）のハッシュ値と、算出した依頼データのハッシュ値とを比較する。
【００９９】
データのハッシュ値が一致した場合、キャッシュ１０７は、保存済みのデータと依頼データと比較する。
【０１００】
保存済みデータと依頼データとが一致した場合、キャッシュ１０７は、保存済みデータがあると判定する。
【０１０１】
ハッシュ値が一致しない場合又はデータが一致しない場合、キャッシュ１０７は、保存済みのデータがないと判定する。
【０１０２】
データが保存されている場合（ステップＳ３４２でＹｅｓ）、キャッシュ１０７は、処理を終了する。なお、構造体のように、データが複数の内容を含み、キャッシュ１０７が一部の内容が一致した場合に一致と判定する場合、キャッシュ１０７は、受信したデータを用いて、保存済みのデータを更新する（ステップＳ３４３）。
【０１０３】
データが保存されていない場合（ステップＳ３４２でＮｏ）、キャッシュ１０７は、データを保存できるか否かを確認する（ステップＳ３４４）。具体的には、キャッシュ１０７は、データを保存するための空き領域がキャッシュ１０７にあるか否かを確認する。
【０１０４】
保存する空き領域がない場合（ステップＳ３４４でＮｏ）、キャッシュ１０７は、所定の手法に沿って、キャッシュ１０７に保存されているデータの一部を記憶装置２００に書き出す（ステップＳ３４５）。キャッシュ１０７は、所定の手法として、ＬＲＵ又はＬＦＵなど、バックグラウンドで動作するキャッシュ・アルゴリズムと同じ手法を用いればよい。そして、キャッシュ１０７は、書き出したデータの領域を開放する。そして、キャッシュ１０７は、ステップＳ３４４に戻る。つまり、キャッシュ１０７は、受信したデータを保存できるまで、領域の開放を繰り返す。
【０１０５】
保存する空き領域がある場合（ステップＳ３４４でＹｅｓ）、キャッシュ１０７は、受信したデータを保存する（ステップＳ３４６）。
【０１０６】
キャッシュ１０７は、適宜、保存するデータに関する管理情報を更新する。
【０１０７】
なお、キャッシュ１０７が重複の回避を管理しない場合、キャッシュ１０７は、ステップＳ３４２及びステップＳ３４３を含まなくてもよい。
【０１０８】
図８は、第１の実施形態に係るキャッシュ１０７が保存するデータを管理する情報の一例を示す図である。
【０１０９】
図８に示されている管理情報は、キャッシュ１０７が所定のデータのブロックを用いてデータを管理する場合の管理情報である。管理情報は、キャッシュ１０７に保存されてもよく、図示しない情報処理装置１００における他のメモリに保存されてもよい。
【０１１０】
管理情報は、ブロック識別子と、依頼先識別子と、先頭アドレスとを含む。さらに、管理情報は、保存するデータに関する情報の組を少なくとも一つ含む。情報の組は、次アドレスと、データアドレスと、フラグと、依頼元識別子と、ハッシュ値とを含む。
【０１１１】
ただし、図８に示されている管理情報及び情報の組は、例示である。管理情報及び情報の組は、他の情報を含んでもよい。管理情報及び情報の組は、情報の一部を含まなくてもよい。管理情報及び情報の組は、キャッシュ１０７の管理のやり方に沿って決定される。
【０１１２】
ブロック識別子は、ブロックを一意に識別するための識別子（管理情報の識別子）である。ブロック識別子は、他の情報を含んでもよい。例えば、ブロックに種別がある場合、ブロック識別子は、種別を含んでもよい。
【０１１３】
依頼先識別子は、データを保存しているキャッシュ１０７を含む情報処理装置１００の識別子である。他の情報処理装置１００の多重化部１０８から多重化を依頼されたデータの場合、キャッシュ１０７を含む情報処理装置１００は、依頼先となる。そのため、図８は、キャッシュ１０７を含む情報処理装置１００の識別子を「依頼先識別子」と表現している。
【０１１４】
先頭アドレスは、最初の情報の組が保存されているアドレスである。なお、図８に示されている管理情報において、組の大きさは、一定である。そのため、先頭アドレスは、最初の組の開始アドレスを保持する。組の大きさが変化する場合、先頭アドレスは、最初の組の開始アドレスに加え、組に長さを含んでもよい。ただし、情報の組が、長さを含んでもよい。
【０１１５】
次アドレスは、次の組のアドレスである。次アドレスは、先頭アドレスと同様に、組の長さを含んでもよい。
【０１１６】
次の組がない場合、次アドレスは、次の組がないことを示す情報（例えば、自分のアドレス、又は、ブランク）を保持する。
【０１１７】
データアドレスは、キャッシュ１０７におけるデータの保存アドレスである。
【０１１８】
フラグは、キャッシュ１０７に保存されているデータが記憶装置２００に保存されたか否かを示す情報である。仮想マシン１０１からの依頼を基にキャッシュ１０７に保存されたデータのフラグの初期状態は、「未保存」である。キャッシュ１０７に保存されたデータが記憶装置２００に保存されると、フラグは、「未保存」から「保存済み」に変更される。なお、キャッシュ１０７に保存されたデータが記憶装置２００から読み出したデータの場合、フラグの初期値は「保存済み」である。また、キャッシュ１０７において「保存済み」のデータを変更した場合、フラグは、「未保存」に変更される。
【０１１９】
フラグは、キャッシュ１０７におけるデータと、記憶装置２００におけるデータとが一致しているか否かを示す情報である。
【０１２０】
依頼元識別子は、データの保存を依頼した情報処理装置１００の識別子である。自装置の仮想マシン１０１のデータの場合、依頼元識別子は、自装置の識別子となる。他の情報処理装置１００の多重化部１０８から保存を依頼されたデータの場合、依頼元識別子は、依頼してきた情報処理装置１００の識別子である。
【０１２１】
依頼元識別子は、他の情報を含んでもよい。例えば、依頼元識別子は、情報処理装置１００の識別子に加え、仮想マシン１０１の識別子を含んでもよい。
【０１２２】
ハッシュ値は、保存されているデータのハッシュ値である。
【０１２３】
図５は、第１の実施形態に係るキャッシュ１０７におけるデータの書き出しの動作の一例を示すフロー図である。
【０１２４】
キャッシュ１０７は、バックグラウンドの動作として所定の周期、又は、所定のタイミングにおいて、次に説明する動作を実行する。さらに、キャッシュ１０７は、データ保存部１２０からデータの保存を依頼されたときに保存する領域がない場合にも、ステップＳ３５３以降の動作を実行して領域を確保する。
【０１２５】
キャッシュ１０７は、キャッシュ１０７において領域の開放が必要か否かを確認する（ステップＳ３５１）。領域の開放が必要か否かの判定条件は、キャッシュ１０７を管理するやり方に沿って決定されればよい。例えば、開放が必要な場合とは、キャッシュ１０７の空き領域が、所定の閾値より少ない場合である。あるいは、開放が必要な場合とは、キャッシュ１０７に保存されているデータに対して、所定の時間を越えてアクセスがない場合である。
【０１２６】
領域の開放が必要でない場合（ステップＳ３５２でＮｏ）、キャッシュ１０７は、動作を終了する。
【０１２７】
領域の開放が必要な場合（ステップＳ３５２でＹｅｓ）、キャッシュ１０７は、記憶装置２００に書き出すデータを選択する（ステップＳ３５３）。キャッシュ１０７は、所定のキャッシュ・アルゴリズム（例えば、ＬＲＵ又はＬＦＵ）を用いてデータを選択する。
【０１２８】
キャッシュ１０７は、選択したデータを記憶装置２００に書き出す。具体的には、キャッシュ１０７は、選択してデータを送受信キュー１０９に追加する（ステップＳ３５４）。
【０１２９】
キャッシュ１０７は、データが送受信キュー１０９から記憶装置２００に保存されると、選択したデータ（書き出したデータ）の領域を開放する（ステップＳ３５５）。なお、キャッシュ１０７は、データを送受信キュー１０９に追加したときに、領域を開放してもよい。
【０１３０】
なお、キャッシュ１０７は、適宜、キャッシュ１０７に保存するデータに関する管理情報を更新する。
【０１３１】
さらに、キャッシュ１０７は、送受信キュー１０９の状態を基づいて、動作を変更してもよい。
【０１３２】
例えば、キャッシュ１０７は、送受信キュー１０９に積まれたデータ量に応じて、送受信キュー１０９に追加するデータ量を変更してもよい。具体的には、キャッシュ１０７は、送受信キュー１０９に積まれたデータ量が所定の閾値より少ない場合に追加するデータ量を、送受信キュー１０９に積まれたデータ量がその閾値より多い場合に比べ、多くしてもよい。
【０１３３】
図６は、第１の実施形態に係る多重化部１０８における多重化の依頼を送信する動作の一例を示すフロー図である。
【０１３４】
多重化部１０８は、データ保存部１２０において、多重使用データと分類されたデータがキャッシュ１０７に保存されたか否かを確認する（ステップＳ３６１）。ここにおけるデータの保存は、データの追加及びデータの更新を含む。
【０１３５】
データが保存されていない場合（ステップＳ３６１でＮｏ）、多重化部１０８は、処理を終了する。
【０１３６】
データが保存された場合（ステップＳ３６１でＹｅｓ）、多重化部１０８は、他の情報処理装置１００の多重化部１０８に、多重使用データと分類されてキャッシュ１０７に保存されたデータの保存を依頼する（ステップＳ３６２）。依頼の際、多重化部１０８は、データとともに情報処理装置１００の識別子を送信する。
【０１３７】
図７は、第１の実施形態に係る多重化部１０８における多重化の依頼を受信した際の動作の一例を示すフロー図である。
【０１３８】
多重化部１０８は、他の情報処理装置１００の多重化部１０８から依頼を受信する（ステップＳ３７１）。
【０１３９】
その依頼を基に、多重化部１０８は、データをキャッシュ１０７に保存する（ステップＳ３７２）。多重化部１０８は、データとともに受け取った他の情報処理装置１００の識別子をデータと関連付けて保存する。
【０１４０】
なお、情報処理装置１００は、信頼性を向上させるため、他の情報処理装置１００から受け取りキャッシュ１０７に保存したデータを記憶装置２００にも保存してよい。なお、保存を依頼した情報処理装置１００においてデータの多重化が不要となった場合、多重化部１０８は、他の情報処理装置１００から保存を依頼されたデータを、キャッシュ１０７（及び、記憶装置２００）から削除する。
【０１４１】
［効果の説明］
次に第１の実施形態に係る情報処理装置１００に効果を説明する。
【０１４２】
第１の実施形態に係る情報処理装置１００は、記憶装置２００への同時並行的なアクセスの発生を低減するとの効果を得ることができる。
【０１４３】
その理由は、次のとおりである。
【０１４４】
情報処理装置１００は、記憶装置２００に接続されている。情報処理装置１００は、仮想マシン１０１と、仮想化基盤１０６とを含む。仮想マシン１０１は、分類部１０３を含む。分類部１０３は、データを、複数の仮想マシン１０１が使用する多重使用データ、又は、一の仮想マシン１０１が使用する単独使用データに分類する。仮想化基盤１０６は、キャッシュ１０７と、データ保存部１２０とを含む。キャッシュ１０７は、データを保存する。データ保存部１２０は、多重使用データの場合にデータをキャッシュ１０７に保存し、単独使用データの場合にデータを記憶装置２００に保存する。
【０１４５】
仮想マシン１０１は、さらに、仮想ディスクドライバ１０５を含む。仮想ディスクドライバ１０５は、データを仲介する。具体的には、仮想ディスクドライバ１０５は、分類の結果とデータとを仮想化基盤１０６に送信する。
【０１４６】
仮想化基盤１０６は、さらに、送受信キュー１０９を含む。送受信キュー１０９は、データを記憶装置２００に送信する。具体的には、送受信キュー１０９は、記憶装置２００に同期してデータを送信する。
【０１４７】
データ保存部１２０は、分類部１０３の分類結果を基に、複数の仮想マシン１０１からアクセスされるデータ（多重使用データ）をキャッシュ１０７に保存する。そのため、複数の仮想マシン１０１からそのデータへのアクセスは、キャッシュ１０７へのアクセスとなる。その結果、記憶装置２００への同時並行的なアクセスの発生は、低減される。
【０１４８】
さらに、情報処理装置１００は、キャッシュ１０７に保存されたデータの信頼性を向上するとの効果を奏する。
【０１４９】
その理由は、多重化部１０８が、他の情報処理装置１００に、キャッシュ１０７に保存されたデータの保存を依頼するためである。
【０１５０】
さらに、他の情報処理装置１００は、上記の多重化部１０８の動作を基にデータをキャッシュ１０７に保存する。そのため、他の情報処理装置１００におけるそのデータへのアクセスは、記憶装置２００へのアクセスではなく、他の情報処理装置１００のキャッシュ１０７へのアクセスとなる。その結果、情報処理装置１００は、さらに記憶装置２００へのアクセスを低減するとの効果を奏することができる。
【０１５１】
また、データ保存部１２０は、複数の仮想マシン１０１からアクセスされるデータをキャッシュ１０７に保存する。データ保存部１２０は、一つの仮想マシン１０１からアクセスされるデータを記憶装置２００に保存する。そのため、仮想マシン１０１の全てのデータをキャッシュ１０７に保存する場合に比べ、情報処理装置１００は、キャッシュ１０７において必要される容量を削減できる。
【０１５２】
［実施形態の概要］
ここまで説明した仮想マシン１０１及び仮想化基盤１０６に含まれる構成の位置は、一例である。これらの構成の位置は、変更となってもよい。例えば、データ保存部１２０は、各仮想マシン１０１に含まれていてもよい。
【０１５３】
図面を参照して第１の実施形態に係る情報処理装置１００の概要を説明する。
【０１５４】
図１０は、第１の実施形態に係る情報処理装置１００の概要の一例である情報処理装置１５０の構成を示すブロック図である。
【０１５５】
情報処理装置１５０は、記憶装置２００に接続されている。情報処理装置１５０は、キャッシュ１０７と、分類部１０３と、データ保存部１２０とを含む。キャッシュ１０７は、データを保存する。分類部１０３は、データを、複数の仮想マシン１０１が使用する多重使用データ、又は、一の仮想マシン１０１が使用する単独使用データに分類する。データ保存部１２０は、多重使用データの場合にデータをキャッシュ１０７に保存し、単独使用データの場合にデータを記憶装置２００に保存する。
【０１５６】
このように構成された情報処理装置１５０は、情報処理装置１００と同様の効果を得ることができる。
【０１５７】
その理由は、情報処理装置１５０の各構成が、情報処理装置１００の構成と同様に動作するためである。
【０１５８】
なお、情報処理装置１５０は、本発明の実施形態における最小構成である。
【０１５９】
［ハードウェア構成］
次に、情報処理装置１００及び１５０のハードウェア構成について、情報処理装置１００を用いて説明する。
【０１６０】
例えば、情報処理装置１００の各構成部は、ハードウェア回路で構成されてもよい。
【０１６１】
あるいは、情報処理装置１００において、各構成部は、ネットワークを介して接続した複数の装置を用いて、構成されてもよい。
【０１６２】
あるいは、情報処理装置１００において、複数の構成部は、１つのハードウェアで構成されてもよい。
【０１６３】
あるいは、情報処理装置１００は、プロセッサと、メモリとを含むコンピュータ装置として実現されてもよい。プロセッサは、例えば、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）、又は、Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＭＰＵ）である。メモリは、例えば、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）と、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）である。
【０１６４】
情報処理装置１００は、上記構成に加え、さらに、入出力接続回路（ＩＯＣ：Ｉｎｐｕｔ  ａｎｄ  Ｏｕｔｐｕｔ  Ｃｉｒｃｕｉｔ）を含むコンピュータ装置として実現されてもよい。情報処理装置１００は、上記構成に加え、さらに、ネットワークインターフェース回路（ＮＩＣ：Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃｉｒｃｕｉｔ）を含むコンピュータ装置として実現されてもよい。
【０１６５】
図１１は、第１の実施形態に係る情報処理装置１００のハードウェア構成の一例である情報処理装置６００の構成を示すブロック図である。
【０１６６】
情報処理装置６００は、ＣＰＵ６１０と、ＲＯＭ６２０と、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０とを含み、コンピュータ装置を構成している。
【０１６７】
ＣＰＵ６１０は、ＲＯＭ６２０からプログラムを読み込む。そして、ＣＰＵ６１０は、読み込んだプログラムに基づいて、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０とを制御する。そして、ＣＰＵ６１０を含むコンピュータは、これらの構成を制御し、図１に示されている、仮想マシン１０１と、仮想化基盤１０６としての各機能を実現する。
【０１６８】
ＣＰＵ６１０は、各機能を実現する際に、ＲＡＭ６３０又は内部記憶装置６４０を、プログラムの一時記憶媒体として使用してもよい。
【０１６９】
また、ＣＰＵ６１０は、コンピュータで読み取り可能にプログラムを記憶した記憶媒体７００が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでもよい。あるいは、ＣＰＵ６１０は、ＮＩＣ６８０を介して、図示しない外部の装置からプログラムを受け取り、ＲＡＭ６３０又は内部記憶装置６４０に保存して、保存したプログラムを基に動作してもよい。
【０１７０】
ＲＯＭ６２０は、ＣＰＵ６１０が実行するプログラム及び固定的なデータを記憶する。ＲＯＭ６２０は、例えば、Ｐ−ＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ−ＲＯＭ）又はフラッシュＲＯＭである。
【０１７１】
ＲＡＭ６３０は、ＣＰＵ６１０が実行するプログラム及びデータを一時的に記憶する。ＲＡＭ６３０は、例えば、Ｄ−ＲＡＭ（Ｓｙｎａｍｉｃ−ＲＡＭ）である。ＲＡＭ６３０の一部は、キャッシュ１０７として動作する。
【０１７２】
内部記憶装置６４０は、情報処理装置６００が長期的に保存するデータ及びプログラムを記憶する。また、内部記憶装置６４０は、ＣＰＵ６１０の一時記憶装置として動作してもよい。内部記憶装置６４０は、例えば、ハードディスク装置、光磁気ディスク装置、ＳＳＤ又はディスクアレイ装置である。
【０１７３】
ここで、ＲＯＭ６２０と内部記憶装置６４０は、不揮発性（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）の記憶媒体である。一方、ＲＡＭ６３０は、揮発性（ｔｒａｎｓｉｔｏｒｙ）の記憶媒体である。そして、ＣＰＵ６１０は、ＲＯＭ６２０、内部記憶装置６４０、又は、ＲＡＭ６３０に記憶されているプログラムを基に動作可能である。つまり、ＣＰＵ６１０は、不揮発性記憶媒体又は揮発性記憶媒体を用いて動作可能である。
【０１７４】
ＩＯＣ６５０は、ＣＰＵ６１０と、入力機器６６０及び表示機器６７０とのデータを仲介する。ＩＯＣ６５０は、例えば、ＩＯインターフェースカード又はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）カードである。さらに、ＩＯＣ６５０は、ＵＳＢのような有線に限らず、無線を用いてもよい。
【０１７５】
入力機器６６０は、情報処理装置６００の操作者からの入力指示を受け取る機器である。入力機器６６０は、例えば、キーボード、マウス又はタッチパネルである。
【０１７６】
表示機器６７０は、情報処理装置６００の操作者に情報を表示する機器である。表示機器６７０は、例えば、液晶ディスプレイである。
【０１７７】
ＮＩＣ６８０は、ネットワークを介した、図示しない外部の装置とのデータのやり取りを中継する。ＮＩＣ６８０は、例えば、ＬＡＮカードである。さらに、ＮＩＣ６８０は、有線に限らず、無線を用いてもよい。ＮＩＣ６８０は、送受信キュー１０９の一部として動作してもよい。
【０１７８】
このように構成された情報処理装置６００は、情報処理装置１００と同様の効果を得ることができる。
【０１７９】
その理由は、情報処理装置６００のＣＰＵ６１０が、プログラムに基づいて情報処理装置１００における各構成と同様の機能を実現できるためである。
【０１８０】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成及び詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【０１８１】
本発明は、仮想マシン、及び／又は仮想デスクトップなどを用いる情報処理装置において利用可能である。
【符号の説明】
【０１８２】
１０    情報処理システム
１００    情報処理装置
１０１    仮想マシン
１０３    分類部
１０５    仮想ディスクドライバ
１０６    仮想化基盤
１０７    キャッシュ
１０８    多重化部
１０９    送受信キュー
１２０    データ保存部
１５０    情報処理装置
２００    記憶装置
４００    ネットワーク
６００    情報処理装置
６１０    ＣＰＵ
６２０    ＲＯＭ
６３０    ＲＡＭ
６４０    内部記憶装置
６５０    ＩＯＣ
６６０    入力機器
６７０    表示機器
６８０    ＮＩＣ
７００    記憶媒体
【図１】
2019144932.tif 000003
【図２】
2019144932.tif 000004
【図３】
2019144932.tif 000005
【図４】
2019144932.tif 000006
【図５】
2019144932.tif 000007
【図６】
2019144932.tif 000008
【図７】
2019144932.tif 000009
【図８】
2019144932.tif 000010
【図９】
2019144932.tif 000011
【図１０】
2019144932.tif 000012
【図１１】
2019144932.tif 000013