(57)【要約】【課題】  盗難にあっても機密情報の漏洩を防止すること。【解決手段】  ファイルサーバ用仮想マシンはネットワークを介して外部ファイルサーバが稼働する外部サーバと通信ができるか否かを監視し、外部サーバと通信できると判断した場合に前記クライアント用仮想マシンからのファイルのアクセスを前記外部ファイルサーバまたは前記内部ファイルサーバに対して行い、外部サーバと通信できると判断してから通信できないと判断した場合にクライアント用仮想マシンからのファイルのアクセスを仮想マシンマネージャが管理するローカルディスクまたはメモリに再配置されるファイルに対して行い、設定された時間の間に前記外部サーバと通信できない場合に再配置されたファイルを削除する。【選択図】    図３
2010257430.tif 000002
【特許請求の範囲】
【請求項１】
ローカルディスクおよびメモリを有し、仮想マシンモニタ上で複数の仮想マシンが同時に稼働する計算機であって、
前記複数の仮想マシンの一つはクライアント用仮想マシンであり、
前記複数の仮想マシンの一つは前記クライアント用仮想マシンからアクセス可能な内部ファイルサーバが稼働するファイルサーバ用仮想マシンであって、
前記計算機は、
ネットワークを介して外部ファイルサーバが稼働する外部サーバと通信ができるか否かを監視する監視手段と、
前記監視手段が通信できると判断した場合に前記クライアント用仮想マシンからのファイルのアクセスを前記外部サーバまたは前記内部ファイルサーバに対して行い、前記監視手段が通信できると判断してから通信できないと判断した場合に前記クライアント用仮想マシンからのファイルのアクセスを前記仮想マシンマネージャが管理する前記ローカルディスクまたはメモリに再配置されるファイルに対して行うアクセス制御手段と、
前記監視手段が前記外部サーバと設定された時間の間に通信できないことを検出した場合に、前記再配置されたファイルの削除を指示するファイル削除指示手段と、
前記ファイル削除指示手段からの指示に応じて前記再配置されたファイルを削除するファイル削除手段と
を具備することを特徴とする計算機。
【請求項２】
前記再配置されるファイルを暗号化する暗号化手段を更に具備することを特徴とする請求項１に記載の計算機。
【請求項３】
前記監視手段は、前記外部ファイルサーバと設定された時間の間に通信できないことを検出した場合に、前記仮想マシンマネージャに前記クライアント用仮想マシンの強制終了またはサスペンドを指示し、
前記仮想マシンマネージャは、前記監視手段からの指示に応じて前記クライアント用仮想マシンを強制終了またはサスペンドすることを特徴とする請求項１に記載の計算機。
【請求項４】
前記クライアント用仮想マシン内のシステムデータは前記ローカルディスクに格納され、前記クライアント用仮想マシン内のユーザデータは外部ファイルサーバに格納されることを特徴とする請求項１に記載の計算機。
【請求項５】
前記計算機を前記外部ファイルサーバと通信することができない箇所へ持ち出す場合、前記外部ファイルサーバに格納されているユーザデータから、前記クライアント用仮想マシンの起動に必要なファイルおよび設定されたファイルが前記内部ファイルサーバに保存されることを特徴とする請求項４に記載の計算機。
【請求項６】
デバイスプロファイルと前記計算機に設けられたＩ／Ｏデバイス構成とに応じて、前記クライアント用仮想マシンに対してＩ／Ｏデバイスを割り当てる情報を含むデバイスモデルを作成するデバイスマネージャと、
前記クライアント用仮想マシンが前記割り当てられたＩ／ＯデバイスにＭＭＩＯアクセスするためのアドレス変換、および前記割り当てられたＩ／Ｏデバイスと前記クライアント用仮想マシンとの間でＤＭＡ転送を行うためのアドレス変換を行うためのアドレス変換回路を有するメモリコントローラとを更に具備し、
前記仮想マシンモニタは、前記デバイスモデルに基づいて前記クライアント用仮想マシンに前記Ｉ／Ｏデバイスを割り当て、
前記クライアント用仮想マシンは、前記割り当てられたＩ／Ｏデバイスに対してＭＭＩＯアクセスを行う、または前記割り当てられたＩ／Ｏデバイスとの間でＤＭＡ転送を行う場合、前記デバイスマネージャで生成したデバイスモデルの情報に従って、前記アドレス変換回路を用いて前記アクセスまたは前記ＤＭＡ転送を行うことを特徴とする請求項１に記載の計算機。
【請求項７】
前記情報処理装置に設けられたＩ／Ｏデバイスと、システムＢＩＯＳ（Basic Input/Output System）と異なるＢＩＯＳとをメモリ空間に割り当てる割り当て手段を更に具備し、
前記デバイスマネージャは、前記クライアント用仮想マシンのアドレス空間上の前記システムＢＩＯＳと異なるＢＩＯＳのアドレスを前記割り当て手段が割り当てたアドレスと同一のアドレスに割り当てるための情報とを含むデバイスモデルを作成し、
前記クライアント用仮想マシンは、前記システムＢＩＯＳと異なるＢＩＯＳにアクセスする場合、前記アドレス変換回路を用いてアクセスすることを特徴とする請求項６に記載の計算機。
【請求項８】
ローカルディスクおよびメモリを有し、仮想マシンモニタ上で複数の仮想マシンが同時に稼働する計算機のアクセス制御方法であって、
前記複数の仮想マシンの一つはクライアント用仮想マシンであり、
前記複数の仮想マシンの一つは前記クライアント用仮想マシンからアクセス可能な内部ファイルサーバが稼働するファイルサーバ用仮想マシンであって、
前記アクセス制御方法は、
前記ファイルサーバ用仮想マシンはネットワークを介して外部ファイルサーバが稼働する外部サーバと通信ができるか否かを監視し、
前記外部サーバと通信できると判断した場合に前記クライアント用仮想マシンからのファイルのアクセスを前記外部ファイルサーバまたは前記内部ファイルサーバに対して行い、
前記外部サーバと通信できると判断してから通信できないと判断した場合に前記クライアント用仮想マシンからのファイルのアクセスを前記仮想マシンマネージャが管理する前記ローカルディスクまたはメモリに再配置し、
前記外部サーバと設定された時間の間に通信できないことを検出した場合に、前記再配置されたファイルを削除する
ことを特徴とするアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンモニタ上で複数の仮想マシンが稼働する計算機および仮想マシンからファイルへのアクセス制御方法に関する。
【背景技術】
【０００２】
オフィスに設置されたコンピュータが盗難され、社内の機密情報が洩れる事がある。
【０００３】
特許文献１は、１台の計算機上に２つのＯＳを搭載し、１つはアプリケーション用のＯＳ、もう１つは共有するハードディスク装置との通信処理を行うＯＳであり、アプリケーションからの共有ディスクへ装置のアクセスは必ず第２のＯＳを経由させることを開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３３７７３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した文献は、ネットワーク上に流れるデータの盗聴を防止する技術を開示している。機密情報を有するコンピュータが持ち出された時の機密情報の漏洩に対応することができない。
【０００６】
本発明の目的は、持ち出し後の紛失や盗難にあっても機密情報の漏洩を防止することが可能な計算機およびアクセス制御方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一例に係わる計算機は、ローカルディスクおよびメモリを有し、仮想マシンモニタ上で複数の仮想マシンが同時に稼働する計算機であって、前記複数の仮想マシンの一つはクライアント用仮想マシンであり、前記複数の仮想マシンの一つは前記クライアント用仮想マシンからアクセス可能な内部ファイルサーバが稼働するファイルサーバ用仮想マシンであって、前記計算機は、ネットワークを介して外部ファイルサーバが稼働する外部サーバと通信ができるか否かを監視する監視手段と、前記監視手段が通信できると判断した場合に前記クライアント用仮想マシンからのファイルのアクセスを前記外部サーバまたは前記内部ファイルサーバに対して行い、前記監視手段が通信できると判断してから通信できないと判断した場合に前記クライアント用仮想マシンからのファイルのアクセスを前記仮想マシンマネージャが管理する前記ローカルディスクまたはメモリに再配置されるファイルに対して行うアクセス制御手段と、前記監視手段が前記外部サーバと設定された時間の間に通信できないことを検出した場合に、前記アクセス制御手段に前記再配置されたファイルの削除を指示するファイル削除指示手段と、前記ファイル削除指示手段の指示に応じて前記再配置されたファイルを削除するファイル削除手段とを具備することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、盗難にあったり、紛失しても機密情報の漏洩を防止することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係わる計算機としてのクライアントコンピュータの構成を示すブロック図。
【図２】本発明の一実施形態に係わるブロックデータの再配置の説明に用いる図。
【図３】図１に示す監視モニタの動作説明に用いる図。
【図４】図１に示すブロックデータリマッピングの基本動作を説明する図。
【図５】図１に示すブロックデータリマッピングの基本動作を説明する図。
【図６】ブロックデータリマッピングが管理するデータ構造を示す図。
【図７】図１に示すクライアントコンピュータのシステム構成を示すブロック図。
【図８】デバイスを管理するデバイスマネージャの構成および仮想マシン、仮想マシンモニタとの関連を示すブロック図。
【図９】クライアントコンピュータの起動から仮想マシン実行までの動作フローを示すフローチャートを示す図。
【図１０】クライアントコンピュータの起動から仮想マシン実行までの動作フローを示すフローチャートを示す図。
【図１１】クライアントコンピュータの起動から仮想マシン実行までの動作フローを示す図。
【図１２】クライアントコンピュータの起動から仮想マシン実行までの動作フローを示す図。
【図１３】デバイスプロファイルの例を示す図。
【図１４】デバイスモデル構成リストの例を示す図。
【図１５】仮想デバイスモデルの構成例を示す図。
【図１６】アドレス空間の変換例を示す図。
【図１７】アドレス空間の変換例を示す図。
【発明を実施するための形態】
【００１０】
本発明の実施の形態を以下に図面を参照して説明する。
【００１１】
図１に示すように、本発明の一実施形態に係わる計算機としてのクライアントコンピュータを示すブロック図である。  
図１に示すように、コンピュータ１０は、仮想マシンモニタ（ハイパーバイザ）２３０、仮想マシンマネージャ２１０、デバイスマネージャ２２０、仮想マシン２００、ディスクコントローラエミュレータ（ＤＣＥ）２４１、ブロックデータリマッピング（ＢＤＲ）２４２、暗号化エンジン（ＥＥ）２４３、仮想サーバ３００、ＬＡＮコントローラ１１０、ＵＳＢコントローラ１１３、ＩＥＥＥ１３９４コントローラ１１６、ＰＣＩデバイス１１４、ＧＰＵ（Graphycs Processor Unit）１０５／サウンドコントローラ１０６、ハードディスクドライブ１１１等を有する。
【００１２】
仮想マシンモニタ２３０は、ＬＡＮコントローラ１１０、ＵＳＢコントローラ１１３、ＩＥＥＥ１３９４コントローラ１１６、ＰＣＩデバイス１１４、ＧＰＵ（Graphycs Processor Unit）１０５／サウンドコントローラ１０６等のハードウェアを管理し、仮想マシンモニタ２３０上で動作する各仮想マシン２００および仮想サーバ３００に対してリソース割り当てを行う。また仮想マシンモニタ２３０は、仮想マシン２００および仮想サーバ３００の実行スケジュールと仮想マシンからのＩ／Ｏ要求をハードウェアへ振り分ける。
【００１３】
仮想マシンマネージャ２１０は、仮想マシンモニタ２３０上で動作する仮想マシン２００および仮想サーバ３００の起動制御等を行う。デバイスマネージャ２２０は、仮想マシン２００および仮想サーバ３００の起動前にハードウェアの管理を行う。また、デバイスマネージャは、仮想マシン２００および仮想サーバ３００の起動後に、Ｉ／Ｏデバイスとの通信制御等も行う。また、仮想マシンマネージャ２１０は、仮想マシンから参照され、初期のオペレーティングシステムのロード起動指示、ＡＣＰＩ（電源管理、Ｉ／Ｏコントロール）を行う。
【００１４】
なお、仮想マシンモニタ２３０、仮想マシンマネージャ２１０、デバイスマネージャ２２０、仮想マシン２００、および仮想サーバ３００は、プロセッサ上で動作するソフトウエアモジュールである。
【００１５】
ＬＡＮコントローラ１１０は、本コンピュータをＬＡＮ（Local Area Network）に接続するためのネットワークインターフェースである。ＵＳＢコントローラ１１３は、ＵＳＢバスに接続されたキーボード１３、タッチパッド１６、ＨＤＤ／フラッシュメモリ１１３Ａ等のＵＳＢデバイスとの通信を制御するコントローラである。ＩＥＥＥ１３９４コントローラ１１６は、ＩＥＥＥ１３９４バスに接続された外部デバイスとの通信を制御するコントローラである。ＰＣＩデバイス１１４は，ＰＣＩバスに接続されたデバイスである。ＧＰＵ１０５は、ディスプレイを制御する表示コントローラである。このＧＰＵ１０５はビデオメモリ（ＶＲＡＭ）を有しており、ＯＳ／アプリケーションプログラムによってビデオメモリに描画された表示データから、ディスプレイに表示すべき表示イメージを形成する映像信号を生成する。サウンドコントローラ１０６は音源デバイスであり、再生対象のオーディオデータをスピーカに出力する。
【００１６】
ＨＤＤ１１１には、コンピュータ１０をユーザに提供した時点で、オペレーティングシステム，ドライバ、アプリケーションを実行するためのインストールイメージが格納されている。通常は、このインストールイメージを用いて、オペレーティングシステムを起動した後、ドライバ、アプリケーションの実行を行うことによってコンピュータ１０を使用する（非仮想マシンモード）。コンピュータ１０を仮想環境で使用する際、このインストールイメージを仮想マシンとして実行し、他のサービスＯＳがバックグランドで同時に実行される（仮想マシンモード）。モードの切り替えは仮想マシンマネージャ２１０によって行われる。仮想マシンマネージャ２１０は起動時にどちらのモードで使用するかをユーザに尋ね、ユーザの指示に応じて仮想マシンモードおよび非仮想マシンモードの何れかでシステムを起動する。
【００１７】
なお、仮想マシンモードで動作する際は、仮想マシンとＨ／Ｗを制御する仮想マシンモニタ（ハイパーバイザ）と、仮想マシンに対してデバイスＩ／Ｏのリソース割り当て等を行うデバイスマネージャと、仮想マシンのインストールイメージをロードするローダが動作する。
【００１８】
ディスクコントロールエミュレータ２４１は、ディスクコントローラをエミュレートするソフトウェアモジュールである。仮想マシン２００および仮想サーバ３００は、ディスクコントロールエミュレータ２４１で制御されるディスクを認識し、仮想的に作られたＨＤＤとなる。ディスクコントロールエミュレータ２４１は、ＩＤＥ（Integrated Drive Electronics）やＡＨＣＩ（Advance Host Controller Interface）などの規格に準拠した標準的なコントローラをソフトウェアでエミュレートし、一部ＤＭＡ転送などはハードウェアで実行させる仮想ディスクコントローラである。この仮想ディスクにリードまたはライトするデータは、ディスクコントロールエミュレータ２４１を経由して、書き込むデータの情報をブロックデータリマッピング２４２に送る。ブロックデータリマッピング２４２では、実際のデータの保存場所をシステムメモリまたはローカルディスク、または外部のサーバのファイルに再配置する。
【００１９】
図２を参照してデータの再配置を説明する。再配置するブロックデータは、仮想マシン２００の一つであるＷｉｎｄｏｗｓ（登録商標）等のクライアント用ＯＳが稼働するクライアント用仮想マシン２００Ａから書込み命令があった場合、ブロックデータを別の場所に再配置する。読み込み命令があった場合、ブロックデータリマッピング２４２が、以前書込みした同じブロックデータが存在するか確認し、なければ本来のディスクからリードするよう指示する。これにより、元のインストールイメージには書き込みは行わず、書き込み変更されたブロックデータのみブロックデータリマッピング２４２で再配置され、メモリ１０３またはローカルディスク１１１上のファイル、または外部ファイルサーバ４００に保存され、元のインストールイメージの差分のみが各場所に保管される。
【００２０】
図１に示すように、仮想サーバ３００内では、監視モニタ（ＰＣＭ）３０１、サーチエンジン（ＳＥ）３０２、およびファイルサーバ（ＦＳ）３０３等が稼働している。  
監視モニタ３０１は、ファイルの再配置を制御するソフトウェアモジュールである。  
サーチエンジン３０２は、クライアント用仮想マシン２００Ａのインストールイメージ内のファイルを参照し、仮想マシンのインストールイメージ内のファイルを検索することができる。サーチエンジン３０２は、サーチエンジン３０２は、クライアント用仮想マシン２００Ａの停止中、またはサスペンド中に、指定のパターン、ファイル名のデータがある場合には、クライアント用仮想マシン２００Ａの起動を停止または警告表示する。  
また、ファイルサーバ３０３は、ローカルディスク内のファイルを管理する。
【００２１】
次に、図３を参照して、監視モニタ３０１の動作を説明する。  
イニシャル（INIT）状態で、クライアント用仮想マシン２００Ａは起動せず、仮想サーバ３００が起動する。イニシャル状態において仮想サーバ３００内で稼働する監視モニタ３０１は、ブロックデータリマッピング２４２にブロックデータの取得先を指示する。ブロックデータの取得先は前回のシャットダウン時に動作モードを示す動作モード設定が仮想サーバ３００内に記録される。よって、監視モニタ３０１は、動作モード設定を参照してブロックデータリマッピング２４２にブロックデータの取得先を指示する。また、監視モニタ３０１は仮想マシンマネージャ２１０に、動作モードに基づいたモードでのクライアント用仮想マシン２００Ａの起動を指示する。
【００２２】
クライアント用仮想マシン２００Ａの動作モードには、企業内、自宅などの外部サーバと接続（有線無線を問わない）をしている管理モードと、外部サーバと切断されたモバイル（MOBILE）モードとがある。監視モニタ３０１は、ブロックデータリマッピング２４２にそれぞれの動作モードに応じたブロックデータ（ローカルディスクとの差分）の保管場所の指示を行う。
【００２３】
管理モードでは、ユーザデータの参照先が外部ファイルサーバに設定されたシステムデータを用いて起動する。また、モバイルモードでは、ユーザデータ内のクライアント用仮想マシン２００Ａの起動に必要なファイルの参照先が、仮想サーバに設定されたシステムデータを用いて起動し、アドミニストレータが許可（設定）したファイルが内部ファイルサーバに保存される。
【００２４】
仮想マシンマネージャ２１０がクライアント用仮想マシン２００Ａを起動する間、監視モニタ３０１はアイドル(IDLE)状態で待機する。クライアント用仮想マシン２００Ａの起動が完了すると、監視モニタ３０１は、動作モード設定に応じた状態（モバイル状態、或いはアクティブ（ACTIVE）状態）に遷移する。
【００２５】
動作モード設定が管理モードの場合、監視モニタ３０１はアクティブ状態に遷移する。アクティブ状態では、監視モニタ３０１は、時間Ｔ１でタイムアウトするタイマを設定する。
【００２６】
アクティブ状態において、監視モニタ３０１は、外部ファイルサーバとの間で定期的にキープアライブ（KeepAlive）を送受信する。外部サーバからの応答が、ある時間Ｔ１の間の存在しない場合は、監視モニタ３０１は、ウエイト（WAIT）状態に遷移する。
【００２７】
ウエイト状態の場合、外部サーバとの通信が一時的にできないことを考慮し、監視モニタ３０１は、ブロックデータリマッピング２４２による書き込み先をローカルディスクに変更する。また、時間Ｔ２×Ｎ１でタイムアウトし、時間Ｔ２毎に時間の経過を監視モニタ３０１に通知するタイマを設定する。
【００２８】
ウエイト状態において、外部サーバからの応答が有ると、監視モニタ３０１は、時間Ｔ２×Ｎ１でタイムアウトするタイマをリセットし、アクティブ状態に遷移する。
【００２９】
ウエイト状態の間は、コンピュータ１０での作業を中断することなく使用は可能である。ただし、設定された時間Ｔ２毎にクライアント用仮想マシン２００Ａ上のユーザインタフェースに警告表示またはコンピュータ１０に設けられているＬＥＤを点滅させて警告表示する。
【００３０】
警告しても外部サーバからの応答がなく、最後に外部ファイルサーバの応答を受けてから時間Ｔ２×Ｎ１時間が経過すると、監視モニタ３０１は仮想マシンモニタ２３０に対してクライアント用仮想マシン２００Ａのロックを指示する。仮想マシンモニタ２３０は、ＣＰＵスケジューリング、メモリアロケート、Ｉ／Ｏ制御を一時的に停止し、クライアント用仮想マシン２００Ａに対してサスペンド（SuspendtoRAM）を要求する。また、監視モニタ３０１は、時間Ｔ３でタイムアウトするタイマを設定する。
【００３１】
監視モニタ３０１はロック（LOCK）状態に遷移する。ロック状態では、システム全体の電源はオン状態であり、仮想マシンモニタ２３０および、仮想サーバ３００は動作している。クライアント用仮想マシン２００Ａは休止状態であり、クライアント用仮想マシン２００Ａが使用しているメモリ内容をローカルディスクの仮想マシンモニタ２３０が管理する領域に保存する。
【００３２】
ロック状態において、ユーザがコンピュータのレジューム処理の要求を行ったら、クライアント用仮想マシン２００Ａは先ほど保存したメモリ内容をロードし、クライアント用仮想マシン２００Ａをレジュームする。そして、監視モニタ３０１はウエイト状態に戻る。また、ウエイト状態に戻る際、監視モニタ３０１は時間Ｔ２×Ｎ１でタイムアウトするタイマをリセットし、時間Ｔ１でタイムアウトするタイマを設定する。
【００３３】
サスペンドした状態のロック状態からアクティブ状態にならない場合、時間Ｔ３が経過すると、監視モニタ３０１は、先ほどローカルディスクに保存したメモリ内容とブロックデータリマッピング２４２によって保存されたブロックデータを削除するよう、ブロックデータリマッピング２４２に指示する。ブロックデータリマッピング２４２がメモリ内容とブロックデータを削除する間、監視モニタ３０１はパージ（PURGE）状態に遷移する。ブロックデータリマッピング２４２がメモリ内容およびブロックデータを削除すると、監視モニタ３０１は、次回起動時にモバイルモードでクライアント用仮想マシン２００Ａを起動することを示す起動モード設定を監視モニタ３０１内に記録してからシステム全体をシャットダウンして、イニシャル（INIT）状態に遷移する。
【００３４】
また、アクティブ状態からユーザがコンピュータのサスペンド処理、またはシャットダウン処理を要求をした場合、監視モニタ３０１は仮想マシンモニタ２３０に対してクライアント用仮想マシン２００Ａのロックを指示する。仮想マシンモニタ２３０は、ＣＰＵスケジューリング、メモリアロケート、Ｉ／Ｏ制御を一時的に停止し、クライアント用仮想マシン２００Ａに対してサスペンド（SuspendtoRAM）を要求する。そして、監視モニタ３０１は、仮想マシンマネージャ２１０にクライアント用仮想マシン２００Ａのサスペンドまたはシャットダウンを要求する。
【００３５】
以上の処理で、監視モニタ３０１は、一定時間外部サーバとの通信が切断され、企業内等からのＬＡＮから離脱したと判断するとモード変更せずに持ち出されたと判断し、パージ（PURGE）状態となりモバイルモードとなる。この時、使用していたデータ、ファイル、メモリ上のデータはローカルディスクから削除され、外部へのデータの持ち出しを防止する。
【００３６】
また、モバイル状態であるコンピュータ１０を、ＬＡＮに接続し、所定のデータを取得するには、モードを管理モードに変更しなければ、外部サーバのデータと、それまで管理モードで作業していたデータを参照できない。モバイル状態で取得したデータ、ダウンロードしたファイル等を管理モードで管理するデータに承認なしに入れることができない。
【００３７】
次に、図４および図５のフローチャートを参照して、アクティブ状態およびウエイト状態におけるブロックデータリマッピング２４２の基本動作を説明する。また、図６を参照して、ブロックデータリマッピング２４２が管理するデータ構造を説明する。
【００３８】
仮想マシン２００からディスクへのリード／ライトの要求はリクエストブロックリスト（RBL）で渡される。リクエストブロックリストは複数のリクエストブロック（RB）のリストからなり、リクエストブロックにはディスクの論理ブロックアドレスＬＢＡ（Logical Block Addressing）と要求ブロック番号ＲＢＮ、リード／ライト属性を含む構造体である。リクエストブロックリストは、ディスクコントロールエミュレータ２４１からブロックデータリマッピング２４２に渡され、ブロックデータリマッピング２４２はリクエストブロックリストを取得する(ステップＳ１１)。
【００３９】
ブロックデータリマッピング２４２は、リクエストブロックリストから1つずつリクエストブロックを取り出し(ステップＳ１２)、リクエストブロックが有効か否かをチェックする(ステップＳ１３)。無効またはリクエストブロックが無い場合（ステップＳ１３のＮｏ）、そのままブロックデータリマッピング２４２の処理は終了する。
【００４０】
リクエストブロックが有効な場合（ステップＳ１３のＹｅｓ）、ブロックデータリマッピング２４２は、取り出したリクエストブロックの中からＬＢＡを取り出し、ハッシュ値ＨＡの計算を行う（ステップＳ１４）。ハッシュテーブルにはインデックスリスト（index-list）へのポインタがある。ブロックデータリマッピング２４２は、ハッシュ値ＨＡからポインタを参照することによって、そのインデックスリストを取り出す（ステップＳ１５）。インデックスリスト中にインデックス（index）がない場合（ステップＳ１６のＹｅｓ）、ブロックデータリマッピング２４２は、クライアント用仮想マシン２００Ａからの要求がリードであるか否かを判別する（ステップＳ３１）。要求がリードの場合（ステップＳ３１のＹｅｓ）、ディスクコントロールエミュレータ２４１は、リクエストブロックの内容をディスクコントロールエミュレータ２４１へ戻し、ローカルディスクからリードを実行する（ステップＳ３９）。
【００４１】
リード要求ではない場合（ライト要求の場合）（ステップＳ３１のＮｏ）、インデックスブロックを新たに取得し（ステップＳ３２）、ブロック数ＮＢに応じたライトデータ分のエリアを確保する（ステップＳ３３）。確保した場所のＭＡＰＯＦＦＳＥＴと書き込みブロック数ＮＢをインデックスブロックに設定する。そのインデックスブロックをハッシュ値が同じインデックスリスト中に追加する（ステップＳ３５）。そして、ブロックデータリマッピング２４２は、再配置先にデータを書き込み指示する（ステップＳ３６）。そして、ブロックデータリマッピング２４２は、再配置先が外部サーバであるか否かを判別する（ステップＳ３７）。再配置先が外部サーバの場合（ステップＳ３７のＹｅｓ）、ブロックデータリマッピング２４２は、インデックス中のＭＥＭＯＲＹフラグを有効にし、外部サーバに転送指示をする。
【００４２】
インデックスが存在する場合（ステップＳ１６のＮｏ）、ブロックデータリマッピング２４２は、インデックスブロックに含まれるＬＢＡと一致するか否かを判別する（ステップＳ１７）。一致しない場合（ステップＳ１７のＮｏ）、ブロックデータリマッピング２４２は、次のインデックスブロックをインデックスリストから取り出し（ステップＳ１５）、再度ＬＢＡが一致するインデックスを探す。ＬＢＡと一致するインデックスがあった場合、ブロックデータリマッピング２４２は、インデックス中にＭＥＭＯＲＹフラグが有効であるか否かを判別する（ステップＳ１８）。有効な場合（ステップＳ１８のＹｅｓ）、ブロックデータリマッピング２４２は、メモリに対してリード／ライトを実行するようメモリ上でのデータが存在するオフセットアドレス（MAPOFFSET）とブロック数（NB）をディスクコントロールエミュレータ２４１に渡し、ディスクコントロールエミュレータ２４１がリード／ライトを実行する（ステップＳ２０）。この時、リードであった場合、次のリクエストブロックを処理する。そして、ブロックデータリマッピング２４２はクライアント用仮想マシン２００Ａからの要求がリードであるか否かを判別する（ステップＳ２１）。リードではない場合（ステップＳ２１のＮｏ）、またはＭＥＭＯＲＹフラグが有効ではない場合（ステップＳ１８のＮｏ）、ブロックデータリマッピング２４２は、インデックス中のＬＢＡとＮＢとをディスクコントロールエミュレータ２４１に渡す。ディスクコントロールエミュレータ２４１は、ＬＢＡとＮＢとに基づいて、ローカルディスクに対してリード／ライトを実行する（ステップＳ１９）。
【００４３】
上述したように、監視モニタで外部サーバとの接続を定期的にチェックし、応答がない場合にはクライアントＯＳの動作に関わらず、ロック、パージすることで、ローカルディスクにデータを残さず、コンピュータを持ち出されても機密情報の漏洩を防止できる。ユーザのモード変更忘れにも対処できる。
【００４４】
（システム構成）
次に、図７を参照して、本コンピュータのシステム構成について説明する。
【００４５】
本コンピュータは、図７に示されているように、ＣＰＵ１０１、ノースブリッジ１０２、主メモリ１０３、サウスブリッジ１０４、グラフィクス・プロセッシング・ユニット（ＧＰＵ）１０５、ビデオメモリ（ＶＲＡＭ）１０５Ａ、サウンドコントローラ１０６、ＢＩＯＳ−ＲＯＭ１０９、ＬＡＮコントローラ１１０、ハードディスクドライブ（ＨＤＤ）１１１、ＤＶＤドライブ１１２、ＰＣＩデバイス１１４、モデム１１５、IEEE 1394コントローラ１１６、およびエンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１１７等を備えている。
【００４６】
ＣＰＵ１０１は本コンピュータ１０の動作を制御するプロセッサであり、ハードディスクドライブ（ＨＤＤ）１１１から主メモリ１０３にロードされる、各種アプリケーションプログラムを実行する。また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０９に格納されたシステムＢＩＯＳ（Basic Input Output System）も実行する。ＢＩＯＳはハードウェア制御のためのプログラムである。
【００４７】
ノースブリッジ１０２は、ＣＰＵ１０１のローカルバスとサウスブリッジ１０４との間を接続するブリッジデバイスである。ノースブリッジ１０２には、主メモリ１０３をアクセス制御するメモリー・コントローラも内蔵されている。また、ノースブリッジ１０２は、PCI EXPRESS規格のシリアルバスなどを介してＧＰＵ１０５との通信を実行する機能も有している。
【００４８】
ＧＰＵ１０５は、本コンピュータ１０のディスプレイモニタとして使用されるディスプレイ１１７を制御する表示コントローラである。このＧＰＵ１０５によって生成される表示信号はディスプレイ１１７に送られる。
【００４９】
サウスブリッジ１０４は、ＬＰＣ（Low Pin Count）バス上のレガシーデバイス１８を含む各デバイス、およびＰＣＩ（Peripheral Component Interconnect）バス上の各デバイスを制御する。また、サウスブリッジ１０４は、ハードディスクドライブ（ＨＤＤ）１１１およびＤＶＤドライブ１１２を制御するためのＩＤＥ（Integrated Drive Electronics）コントローラを内蔵している。さらに、サウスブリッジ１０４は、サウンドコントローラ１０６との通信を実行する機能も有している。
【００５０】
サウンドコントローラ１０６は音源デバイスであり、再生対象のオーディオデータをスピーカ１８に出力する。ＵＳＢコントローラ１１３は、ＵＳＢ規格のシリアルバスを介して外部機器との通信を実行する。IEEE 1394コントローラ１１６は、IEEE 1394規格のシリアルバスを介して外部機器との通信を実行する。モデム１１５は、電話回線を介してなどのアナログ回線を通じてデータ通信を行うための信号変換装置である。
【００５１】
エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１１６は、電力管理のためのエンベデッドコントローラと、キーボード（ＫＢ）１３およびタッチパッド１６を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。このエンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１１６は、ユーザによるパワーボタン１４の操作に応じて本コンピュータ１０をパワーオン／パワーオフする機能を有している。さらに、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１１６は、リモコンユニットインタフェース２０との通信を実行する機能を有している。
【００５２】
上記デバイスの内、ＧＰＵ１０５，ＬＡＮコントローラ１１０、ＨＤＤ１１およびＤＶＤが接続されるＩＤＥ（Integrated Drive Electronics）コントローラ、ＵＳＢコントローラ１１３，ＩＥＥＥ１３９４コントローラ１１６，モデム１１５、その他ＰＣＩデバイス１１４などは、ＰＣＩデバイスとして接続されている。ＣＰＵ１０１からは、ＰＣＩの規格に沿った形で上記デバイスにアクセスし、動作する。
【００５３】
本コンピュータは、インテル（登録商標）のダイレクトＩ／Ｏテクノロジー（ＶＴ−ｄ）」をサポートした装置である。ＶＴ−ｄでは，Ｉ／Ｏを仮想化する技術である。ＶＴ−ｄは、特に，チップ・セット、Ｉ／Ｏコントローラ，メモリー・コントローラの部分を担っている。
【００５４】
Ｉ／Ｏデバイスの仮想化にはいくつかの手法があるが、ＶＴ−ｄをサポートしている本装置では、パススルー・モデルを用いて、Ｉ／Ｏデバイスを仮想化する。パススルー・モデルでは、仮想マシンモニタがＩ／Ｏデバイスを直接仮想マシンに割り当てることができる。例えば、仮想マシンごとに専用のＳＣＳＩカードやネットワーク・カードなどを用意し、それらを１つずつ仮想マシンに割り当てる。また、デバイスマネージャは、ＰＣＩデバイスの初期化制御を行う。
【００５５】
以下に、仮想マシンの起動、およびＩ／Ｏデバイスの割り当てについて説明する。  
図８は、Ｈ／Ｗデバイスを管理するデバイスマネージャの構成および仮想マシン、仮想マシンモニタとの関連を示す。  
図９、図１０、図１１、図１２は、コンピュータ１０の起動（電源ＯＮによる）から仮想マシン実行までの動作フローを示す。
【００５６】
ユーザがパワーボタンを押下操作することによってウェイクアップイベントが発生すると、ＣＰＵ１０２はＢＩＯＳ−ＲＯＭ１０９に搭載されているＢＩＯＳによってＰＯＳＴ（Power-On Self Test）処理を実行する（ステップＳ４１）。ＰＯＳＴ処理が終了すると、起動したブートローダは、通常ならばＯＳをロードするが、このＰＣは、ブートローダは、仮想マシンマネージャ２１０、デバイスマネージャ２２０、仮想マシンモニタ２３０をロード、起動する（ステップＳ４４）。
【００５７】
ここで、仮想マシンの起動指示（通常のＯＳ起動と同じ）があると、仮想マシンマネージャ２１０は、起動するユーザ情報を決定する（ステップＳ４５）。ＰＣのＩＤや、予め設定されたユーザ名などからユーザを決定すると、仮想マシンマネージャ２１０は、ハードディスクドライブからインストールイメージを取得する（ステップＳ５１）。なお、すべてロードするのではなく、仮想マシンが初期起動するために必要なローダ、システムファイル、ドライバ等をロードする。同時に仮想マシンマネージャは、デバイスマネージャ２２０にユーザに適したデバイスを構築するように指示する。
【００５８】
デバイスマネージャ２２０は、ユーザ情報からデバイスプロファイル２５０をロードし（ステップＳ６１）、デバイスプロファイルに応じたデバイスモデル２１１を構成する（ステップＳ６２）。デバイスプロファイル２５０の例を図１３に示す。デバイスモデルの構成は、デバイスモデル生成部２２１がＢＩＯＳのＡＣＰＩ情報からコンピュータ１０が持つ実際のＨＷデバイス情報を取得し、プロファイル情報と照合して構成する。例えば、ＡＣＰＩ情報にＵＳＢデバイスが存在することが記述されていた場合、プロファイル情報にＤｅｖｉｃｅＴｙｐｅがＵＳＢであるリストがあるか探し、リストに存在する場合にはそのＵＳＢデバイスを仮想マシンが使用するように図１４のデバイスモデル構成リストを構成する。ＡＣＰＩ情報にデバイスが存在していても、デバイスプロファイルに同じタイプのデバイスが存在しない場合には、デバイスモデル構成リストには追加しない。また、デバイスプロファイルにあって、ＡＣＰＩ情報にない場合も同様である。すべてのデバイスについて確認が終了すると図１５に示すような仮想デバイスモデルが構成される。図１５に示すように、ホストブリッジ２７０にバス０を介してグラフィクス・プロセッシング・ユニット１０５Ｖ、ＵＳＢコントローラ１１３Ｖ、およびＰＣＩ−ＰＣＩブリッジ２８０が接続されている。ＰＣＩ-ＰＣＩブリッジ２８０にバス１を介してＩＥＥＥ１３９４コントローラ１１６Ｖが接続されている。バス１にＰＣＩ−ＰＣＩブリッジ２９０を介してＩＳＡバスが接続されている。ＩＳＡバスにキーボード／マウスコントローラ１１７Ｖが接続されている。
【００５９】
図１５に示す仮想デバイスモデルを作成するにあたって、デバイスマネージャ２２０は、実コンピュータのデバイス（バスＮｏ．、デバイスID, Function ID）と同じになるように構成し、そこに新に追加するデバイスがあれば、デバイスIDが重ならないように追加、隠蔽すべきデバイスがあればそのデバイスを削除する。これにより、プリインストールイメージのオペレーティングシステムおよびドライバを再構成せずに仮想環境で起動できるようになる。
【００６０】
デバイスマネージャ２２０は、図１４に示すデバイスモデル構成リストに従って、仮想マシンモニタ２３０に対しデバイスの登録を行う（ステップＳ６３）。登録の際、デバイスマネージャ２２０は、ＰＣＩデバイスＢＵＳ番号、ＰＣＩデバイスＤｅｖｉｃｅ番号、ＰＣＩデバイスＦｕｎｃｔｉｏｎ番号、使用するＩ／Ｏポートアドレス（ＰＩＯおよびＭＭＩＯ）、仮想Ｉ／Ｏポートアドレス（ＰＩＯおよびＭＭＩＯ）のＩＯＭＡＰ情報、また、割込み番号（ＩＲＱ）、仮想割込み番号（ＶＩＲＱ）を仮想マシンモニタ２３０に通知する。
【００６１】
また、デバイスマネージャ２２０は、仮想マシン上のＳＭＢＩＯＳ、拡張ＢＩＯＳ、およびＶＩＤＥＯ  ＢＩＯＳのアドレス空間を、実マシンのメモリ空間に割り当てられているＳＭＢＩＯＳ、拡張ＢＩＯＳ、およびＶＩＤＥＯ  ＢＩＯＳのアドレスと一致するようにするための情報をデバイスモデルに加える。
【００６２】
ＳＭＢＩＯＳはユーザ、オペレーティングシステム、アプリケーション等がコンピュータに特有な情報を不揮発性メモリに格納した情報のコピーであり、オペレーティングシステム、アプリケーション等はＳＭＢＩＯＳに格納されている情報を利用することができる。ＳＭＢＩＯＳはＣ０００ｈ〜ＦＦＦＦＨの範囲にマッピングされる。拡張ＢＩＯＳは、ＰＣＩスロット等に装着された拡張カード上に内蔵されたＢＩＯＳである。拡張ＢＩＯＳブート時にメモリ上のＣ０００ｈ〜ＤＦＦＦＨの範囲にマッピングされる。ＶＩＤＥＯ  ＢＩＯＳは、ＧＰＵ１０５が設けられた拡張カードに設けられたＶｉｄｅｏ  Ｖｉｄｅｏ  ＢＩＯＳに高速にアクセスするためにＣ０００ｈ〜ＤＦＦＦｈにマッピングされたシャドーである。
【００６３】
登録が終了すると、デバイスマネージャ２２０は、仮想マシンマネージャ２１０にクライアント用仮想マシン２００Ａの起動を指示する(ステップＳ６４)。仮想マシンマネージャ２１０は、指示に応じてサーバ２４０からダウンロードした仮想マシンを起動する(ステップＳ５２)。起動したクライアント用仮想マシン２００Ａは、オペレーティングシステム（ＯＳ）起動時の初期化の課程で、デバイスドライバのロード（ステップＳ５３）、デバイスドライバの初期化を実行する(ステップＳ５４)。そして、オペレーティングシステムの起動後、仮想マシン内でアプリケーションが起動する(ステップＳ５５)。デバイスドライバの初期化時やアプリケーションからＰＩＯアクセスがあった場合、仮想マシンモニタは、アクセスをトラップする（ステップＳ５７）。
【００６４】
仮想マシンモニタ２３０は、このＩＯＭＡＰの登録により、クライアント用仮想マシン２００ＡからＰＣＩデバイスへのＰＣＩコンフィグレーション空間へのアクセスやポートＩ／Ｏへのアクセスまたは割込みが発生した場合、アクセスをトラップし（ステップＳ５７）、登録のアドレスへ変換してアクセスする。
【００６５】
Ｉ／Ｏポートへのアクセスのうち、ＰＣＩコンフィグレーション空間へのアクセスの場合、仮想マシンモニタ２３０は、デバイスマネージャ２２０をコールし、デバイスマネージャ２２０がＰＣＩコンフィグレーション空間へのアクセスを代行する。このアクセスの代行の場合、二つのアクセス方法が有る。そのため、デバイスマネージャは、ＰＣＩコンフィグレーションにアクセスするデバイスを特定する(ステップＳ６５)。そして、特定したデバイスがパススルーデバイスへのアクセスであるか否かを判別する(ステップＳ６６)。パススルーデバイスへのアクセスであると判断した場合（ステップＳ６６のＹＥＳ）、、実際のＰＣＩデバイスのコンフィグレーション空間にアクセスする（ステップＳ６７）。また、パススルーデバイスへのアクセスでは無いと判断した場合（ステップＳ６６のＮＯ）、そのコンフィグレーション空間をコピーしたダミーのエリアがデバイスマネージャ２２０内にあり、直接アクセスする必要がないデバイス、他の仮想マシンと共有しているデバイスは、ダミーのエリアに対してリード／ライトを行う。
【００６６】
また、ＭＭＩＯおよびＤＭＡ転送については、仮想マシンからの要求に対して、アドレス変換ユニット２６０がアドレス変換情報に従って、仮想物理アドレスからマシンアドレスへ変換しアクセスする。このアドレス変換ユニット２６０は、メモリー・コントローラが設けられているデバイスに設けられる。アドレス変換ユニット２６０は、Ｉ／Ｏメモリ管理ユニット（ＩＯＭＭＵ）２６１とＤＭＡＲＵ（DMA Remapping Unit）２６２とを有する。Ｉ／Ｏメモリ管理ユニット（ＩＯＭＭＵ）２６１は、クライアント用仮想マシン２００Ａが主メモリ上のＭＭＩＯエリアにアクセスする場合に用いられる。この場合、仮想マシン側からは通常のデバイスを使用しているのと何ら変わらないので、仮想マシンのデバイスドライバを直接利用して仮想マシンから利用できるようになる。
【００６７】
また、ＤＭＡＲＵ２６２は、クライアント用仮想マシン２００Ａに割り当てられているメモリ空間とＤＭＡ転送する場合に用いられる。図１６はアドレス変換の様子を示す。図１６に示すように、仮想マシン物理アドレス空間上のページメモリ、並びにＰＣＩデバイス１、ＰＣＩデバイス２、およびＰＣＩデバイス３のＭＭＩＯエリアと、実マシンアドレス空間上のページメモリ、並びにＰＣＩデバイス１、ＰＣＩデバイス２、およびＰＣＩデバイス３のＭＭＩＯエリアとの変換が、仮想マシンモニタ、Ｉ／Ｏメモリ管理ユニット（ＩＯＭＭＵ）２６１、ＤＭＡＲＵ（DMA Remapping Unit）２６２とよって行われる。
【００６８】
図１６に示すように、仮想マシンの物理アドレス空間上のＳＭＢＩＯＳ、拡張ＢＩＯＳ（Ｅｘｔ．  ＢＩＯＳ）、およびＶＩＤＥＯ  ＢＩＯＳと実マシンの物理アドレス空間上のＳＭＢＩＯＳ、拡張ＢＩＯＳ（Ｅｘｔ．  ＢＩＯＳ）、およびＶＩＤＥＯ  ＢＩＯＳとは、アドレス変換ユニット２６０経由で等化的に１：１のアドレスにマッピングされている。
【００６９】
ＩＢＭ  ＰＣの標準的なアーキテクチャでは、セグメント０００ｈ〜９ＦＦＦｈまでがＲＡＭ、Ａ０００Ｈ〜ＢＦＦＦＨまでがビデオメモリやビデオＢＩＯＳ、Ｃ０００Ｈ〜ＦＦＦＨ迄が拡張ＢＩＯＳ等の予約領域として設計されている。
【００７０】
上述したＳＭＢＩＯＳ、拡張ＢＩＯＳ、およびＶＩＤＥＯ  ＢＩＯＳは、アプリケーションがオペレーティングシステムがインストール時にそれぞれの使用する領域がマッピングされる。従って、ＳＭＢＩＯＳ、拡張ＢＩＯＳ、およびＶＩＤＥＯ  ＢＩＯＳのアドレスが仮想マシンでのアドレス空間と実マシン上でのアドレス空間のアドレスが異なると、アプリケーションやオペレーティングシステムはＳＭＢＩＯＳ、拡張ＢＩＯＳ、およびＶＩＤＥＯ  ＢＩＯＳにアクセスすることができなくなる。
【００７１】
上述したように、仮想マシンでのアドレス空間と実マシン上でのアドレス空間のアドレスを等化にマッピングすることで、実マシンと同じ内容を仮想マシンから参照、実行することができるようになる。
【００７２】
なお、図１７に示すように、仮想マシンの物理アドレス空間上のＳＭＢＩＯＳ、拡張ＢＩＯＳ（Ｅｘｔ．  ＢＩＯＳ）、およびＶＩＤＥＯ  ＢＩＯＳと実マシンの物理アドレス空間上のＳＭＢＩＯＳ、拡張ＢＩＯＳ（Ｅｘｔ．  ＢＩＯＳ）、およびＶＩＤＥＯ  ＢＩＯＳとは、アドレス変換ユニット２６０経由で等化的に１：１のアドレスにマッピングされて無くても良い。図１７に示すアドレス変換例では、コンピュータ毎にＳＭＢＩＯＳ、拡張ＢＩＯＳ、ＶＩＤＥＯ  ＢＩＯＳ等が割り当てられるアドレスが異なることがあり、別のコンピュータで作られたイメージを用いてシステムを起動することができない場合がある。
【００７３】
また、仮想マシンは、起動時にＰＣＩやレガシーデバイスのプローブ（検索）を行う時に、デバイスへアクセスすると、実マシンのデバイスではなく、図１５の仮想デバイスモデルのデバイスへアクセスし、そのモデルのデバイス構成で仮想マシンは起動する。
【００７４】
コンピュータ１０側に仮想マシンモニタ、デバイスマネージャによって仮想マシンに直接マッピング可能なデバイスを割り当て、実メモリ空間と仮想マシン内でのメモリ空間とのアドレス変換をハードウエアで行うことによって、仮想マシンのＩ／Ｏ性能、操作性が飛躍的に向上する。その結果、マルチメディアを扱うアプリケーションやＣＡＤなどの高速描画行うの動作が可能となる。
【００７５】
また、仮想マシンのＩ／Ｏエミュレーションが不要になり、エミュレーションが対応していないなどの理由で使用できなかったデバイスが、仮想マシンのデバイスドライバを直接利用して仮想マシンから利用できるようになる。
【００７６】
ユーザ毎にデバイスプロファイルを用意することによって、使用できるＩ／Ｏデバイスが指定でき、ＯＳ（仮想マシン）からは認識できるI/Oが限られ、ユーザがデバイスドライバをインストールなどして故意にデバイスを有効しようとしても不可能ため、情報漏洩等の防止に役立つセキュリティ対策ができる。
【００７７】
仮想マシンのイメージを別のサーバでロード・起動することにより、ユーザ毎の環境設定がコンピュータのＨ／Ｗを変えてもインストール、再設定の作業をせずに利用できる。
【００７８】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００７９】
２００…仮想マシン，２００Ａ…クライアント用仮想マシン，２１０…仮想マシンマネージャ，２１１…デバイスモデル，２２０…デバイスマネージャ，２２１…デバイスモデル生成部，２３０…仮想マシンモニタ，２４０…サーバ，２４１…ディスクコントロールエミュレータ，２４２…ブロックデータリマッピング，２４３…暗号化エンジン，３００…仮想サーバ，３０１…監視モニタ，３０２…サーチエンジン，３０３…ファイルサーバ，４００…外部ファイルサーバ。
【図１】
2010257430.tif 000003
【図２】
2010257430.tif 000004
【図３】
2010257430.tif 000005
【図４】
2010257430.tif 000006
【図５】
2010257430.tif 000007
【図６】
2010257430.tif 000008
【図７】
2010257430.tif 000009
【図８】
2010257430.tif 000010
【図９】
2010257430.tif 000011
【図１０】
2010257430.tif 000012
【図１１】
2010257430.tif 000013
【図１２】
2010257430.tif 000014
【図１３】
2010257430.tif 000015
【図１４】
2010257430.tif 000016
【図１５】
2010257430.tif 000017
【図１６】
2010257430.tif 000018
【図１７】
2010257430.tif 000019
【手続補正書】
【提出日】平成22年6月11日(2010.6.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
計算機であって、
ローカルディスクと、
メモリと、
前記計算機内で動作する仮想マシンモニタと、
仮想マシンモニタ上で同時に稼働し、クライアント用仮想マシンと前記クライアント用仮想マシンからアクセス可能な内部ファイルサーバが稼働するファイルサーバ仮想マシンとを含む複数の仮想マシンと、
前記ローカルディスクの一部と前記メモリの一部とを管理し、前記複数の仮想マシンの起動を制御する仮想マシンマネージャと、
ネットワークを介して外部ファイルサーバが稼働する外部サーバと通信ができるか否かを監視する監視手段と、
前記監視手段が通信できると判断した場合に前記クライアント用仮想マシンからのファイルのアクセスを前記外部サーバまたは前記内部ファイルサーバに対して行い、前記監視手段が通信できると判断してから通信できないと判断した場合に前記クライアント用仮想マシンからのファイルのアクセスを前記仮想マシンマネージャが管理する前記ローカルディスクの一部またはメモリの一部に格納される前記ファイルの複製ファイルに対して行うアクセス制御手段と、
前記監視手段が前記外部サーバと設定された時間の間に通信できないことを検出した場合に、前記複製ファイルを削除するファイル削除手段と
を具備することを特徴とする計算機。
【請求項２】
前記複製ファイルを暗号化する暗号化手段を更に具備することを特徴とする請求項１に記載の計算機。
【請求項３】
前記監視手段は、前記外部ファイルサーバと設定された時間の間に通信できないことを検出した場合に、前記仮想マシンマネージャに前記クライアント用仮想マシンの強制終了またはサスペンドを指示し、
前記仮想マシンマネージャは、前記監視手段からの指示に応じて前記クライアント用仮想マシンを強制終了またはサスペンドすることを特徴とする請求項１に記載の計算機。
【請求項４】
前記クライアント用仮想マシン内のシステムデータは前記ローカルディスクに格納され、前記クライアント用仮想マシン内のユーザデータは外部ファイルサーバに格納されることを特徴とする請求項１に記載の計算機。
【請求項５】
前記計算機を前記外部ファイルサーバと通信することができない箇所へ持ち出す場合、前記外部ファイルサーバに格納されているユーザデータから、前記クライアント用仮想マシンの起動に必要なファイルおよび設定されたファイルが前記内部ファイルサーバに保存されることを特徴とする請求項４に記載の計算機。
【請求項６】
デバイスプロファイルと前記計算機に設けられたＩ／Ｏデバイス構成とに応じて、前記クライアント用仮想マシンに対してＩ／Ｏデバイスを割り当てる情報を含むデバイスモデルを作成するデバイスマネージャと、
前記クライアント用仮想マシンが前記割り当てられたＩ／ＯデバイスにＭＭＩＯアクセスするためのアドレス変換、および前記割り当てられたＩ／Ｏデバイスと前記クライアント用仮想マシンとの間でＤＭＡ転送を行うためのアドレス変換を行うためのアドレス変換回路を有するメモリコントローラとを更に具備し、
前記仮想マシンモニタは、前記デバイスモデルに基づいて前記クライアント用仮想マシンに前記Ｉ／Ｏデバイスを割り当て、
前記デバイスモデルに応じて、前記アドレス変換回路を用いて前記アクセスまたは前記ＤＭＡ転送を行うことを特徴とする請求項１に記載の計算機。
【請求項７】
前記計算機に設けられたＩ／Ｏデバイスと、システムＢＩＯＳ（Basic Input/Output System）と別のＢＩＯＳとをメモリ空間に割り当てる割り当て手段を更に具備し、
前記デバイスマネージャは、前記クライアント用仮想マシンのアドレス空間上の前記別のＢＩＯＳのアドレスを前記割り当て手段が割り当てたアドレスと同一のアドレスに割り当てるための情報とを含むデバイスモデルを作成し、
前記クライアント用仮想マシンは、前記別のＢＩＯＳにアクセスする場合、前記アドレス変換回路を用いてアクセスすることを特徴とする請求項６に記載の計算機。
【請求項８】
ローカルディスクと、メモリと、仮想マシンモニタ上で同時に稼働する、ユーザ用仮想マシンおよび前記クライアント用仮想マシンからアクセス可能な内部ファイルサーバが稼働するファイルサーバ仮想マシンを含む複数の仮想マシンと、前記ローカルディスクの一部と前記メモリの一部とを管理し、前記複数の仮想マシンの起動を制御する仮想マシンマネージャとを有する計算機のアクセス制御方法であって、
前記複数の仮想マシンの一つはクライアント用仮想マシンであり、
前記複数の仮想マシンの一つは前記クライアント用仮想マシンからアクセス可能な内部ファイルサーバが稼働するファイルサーバ仮想マシンであって、
前記アクセス制御方法は、
ネットワークを介して外部ファイルサーバが稼働する外部サーバと通信ができるか否かを監視し、
前記外部サーバと通信できると判断した場合に前記外部ファイルサーバまたは前記内部ファイルサーバ内のファイルにアクセスし、
前記外部サーバと通信できると判断してから通信できないと判断した場合に前記クライアント用仮想マシンからのファイルのアクセスを前記仮想マシンマネージャが管理する前記ローカルディスクの一部または前記メモリの一部に格納されている前記ファイルの複製ファイルにアクセスし、
前記外部サーバと設定された時間の間に通信できないことを検出した場合に、前記複製ファイルを削除する
ことを特徴とするアクセス制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
本発明の一例に係わる計算機は、ローカルディスクと、メモリと、前記計算機内で動作する仮想マシンモニタと、仮想マシンモニタ上で同時に稼働し、クライアント用仮想マシンと前記クライアント用仮想マシンからアクセス可能な内部ファイルサーバが稼働するファイルサーバ仮想マシンとを含む複数の仮想マシンと、前記ローカルディスクの一部と前記メモリの一部とを管理し、前記複数の仮想マシンの起動を制御する仮想マシンマネージャと、ネットワークを介して外部ファイルサーバが稼働する外部サーバと通信ができるか否かを監視する監視手段と、前記監視手段が通信できると判断した場合に前記クライアント用仮想マシンからのファイルのアクセスを前記外部サーバまたは前記内部ファイルサーバに対して行い、前記監視手段が通信できると判断してから通信できないと判断した場合に前記クライアント用仮想マシンからのファイルのアクセスを前記仮想マシンマネージャが管理する前記ローカルディスクの一部またはメモリの一部に格納される前記ファイルの複製ファイルに対して行うアクセス制御手段と、前記監視手段が前記外部サーバと設定された時間の間に通信できないことを検出した場合に、前記複製ファイルを削除するファイル削除手段とを具備することを特徴とする。