(57)【要約】      （修正有）【課題】仮想マシン・イメージをホストにおいて実行するための方法及びシステムを提供する。【解決手段】ホストは、仮想マシン・イメージ提供要求を受信すると（２０４）、仮想マシン・イメージのコピー要求をストレージ・サーバに送信し（２０６）、オペレーティング・システム・カーネル、パーティション情報、及びファイル・インデックス情報を含む前記仮想マシン・イメージの一部分を受信し（２０８）、前記仮想マシン・イメージの前記一部分を実行することによって前記ホスト内の仮想マシンを始動させる（２１０）。前記仮想マシンにおいて実行されるプログラムのファイル操作要求を傍受すると（２１２）、前記ファイル操作要求に関連するファイルを取得する（２１４）。更に、仮想マシン・イメージ内のデータが実行中に変更された場合は、変更されたデータがストレージ・サーバに送信され、それによって仮想マシン・イメージが更新される（２１６）。【選択図】図２
2011076605.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシン・イメージをホストにおいて実行するための方法であって、
仮想マシン・イメージ提供要求を受信するステップと、
前記仮想マシン・イメージ提供要求に関連する仮想マシン・イメージのコピー要求をストレージ・サーバに送信するステップと、
少なくともオペレーティング・システム・カーネル、パーティション情報、及びファイル・インデックス情報を含む前記仮想マシン・イメージの一部分を受信するステップと、
受信された前記仮想マシン・イメージの前記一部分を実行することによって前記ホスト内の仮想マシンを始動させるステップと、
前記仮想マシンにおいて実行されるプログラムのファイル操作要求を傍受するステップと、
前記ファイル操作要求に関連するファイルを取得するステップと、
を含む方法。
【請求項２】
前記ホストにおいて実行される仮想マシン・イメージ内のデータが変更されている場合は、変更されたデータを送信して前記ストレージ・サーバ内の前記仮想マシン・イメージを更新するステップ
を更に含む、請求項１に記載の方法。
【請求項３】
前記ファイル・インデックス情報の変更を増分記録するステップ
を更に含む、請求項１に記載の方法。
【請求項４】
前記ファイル操作要求に関連する前記ファイルが前記ホストにおいて実行される仮想マシンのローカル・データ内に既に存在する場合は、前記ファイル操作要求に関連する前記ファイルを前記ローカル・データから直接読み取るステップ
を更に含む、請求項１又は２に記載の方法。
【請求項５】
前記ファイル操作要求に関連する前記ファイルが前記ホストにおいて実行される仮想マシンのローカル・データ内に存在しない場合は、前記ファイル操作要求に関連する前記ファイルのコピー要求を前記ストレージ・サーバに送信するステップと、前記ファイル操作要求に関連する前記ファイルを前記ストレージ・サーバから受信するステップと、
を更に含む、請求項１又は２に記載の方法。
【請求項６】
仮想マシン・イメージをホストにおいて実行するための方法であって、
前記ホストから送信される、仮想マシン・イメージ提供要求に関連する仮想マシン・イメージのコピー要求を受信するステップと、
少なくともオペレーティング・システム・カーネル、パーティション情報、及びファイル・インデックス情報を含む前記仮想マシン・イメージの一部分を前記ホストに送信するステップと、
前記ホストから送信される、ファイル操作要求に関連するファイルのコピー要求を受信するステップと、
前記ファイル操作要求に関連する前記ファイルを前記ホストに送信するステップと、
を含む方法。
【請求項７】
前記ホストにおいて実行される仮想マシン・イメージ内の変更されたデータを受信し、前記仮想マシン・イメージを前記変更されたデータで更新するステップ
を更に含む、請求項６に記載の方法。
【請求項８】
ファイル・インデックス情報を生成するステップと、
生成された前記ファイル・インデックス情報を使用することによって前記仮想マシン・イメージの一部分を生成するステップと、
を更に含む、請求項６に記載の方法。
【請求項９】
仮想マシン・イメージをホストにおいて実行するためのシステムであって、
仮想マシン・イメージ提供要求を受信し、
前記仮想マシン・イメージ提供要求に関連する仮想マシン・イメージをコピーするようストレージ・サーバに要求し、
少なくともオペレーティング・システム・カーネル、パーティション情報、及びファイル・インデックス情報を含む前記仮想マシン・イメージの一部分を受信し、
受信された前記仮想マシン・イメージの前記一部分を実行することによって前記ホスト内の仮想マシンを始動させる
イメージ・ローダと、
前記仮想マシンにおいて実行されるプログラムのファイル操作要求を傍受し、
前記ファイル操作要求に関連するファイルを取得する
アプリケーション・ローダと、
を含むシステム。
【請求項１０】
前記ホストにおいて実行される仮想マシン・イメージ内のデータが変更されている場合は、変更されたデータを送信して前記ストレージ・サーバ内の前記仮想マシン・イメージを更新するイメージ・シンクロナイザ
を更に含む、請求項９に記載のシステム。
【請求項１１】
前記アプリケーション・ローダは、前記ファイル・インデックス情報の変更を増分記録し、
前記イメージ・シンクロナイザは、前記ファイル・インデックス情報の変更を読み取る、
請求項９に記載のシステム。
【請求項１２】
前記アプリケーション・ローダは、前記ファイル操作要求に関連する前記ファイルが前記ホストにおいて実行される仮想マシンのローカル・データ内に既に存在する場合は、前記ファイル操作要求に関連する前記ファイルを前記ローカル・データから直接読み取る、
請求項９又は１０に記載のシステム。
【請求項１３】
前記アプリケーション・ローダは、前記ファイル操作要求に関連する前記ファイルが前記ホストにおいて実行される仮想マシンのローカル・データ内に存在しない場合は、前記ファイル操作要求に関連する前記ファイルのコピー要求を前記ストレージ・サーバに送信し、前記ファイル操作要求に関連する前記ファイルを前記ストレージ・サーバから受信する、
請求項９又は１０に記載のシステム。
【請求項１４】
仮想マシン・イメージをホストにおいて実行するためのシステムであって、
前記ホストから送信される、仮想マシン・イメージ提供要求に関連する仮想マシン・イメージのコピー要求を受信し、
少なくともオペレーティング・システム・カーネル、パーティション情報、及びファイル・インデックス情報を含む前記仮想マシン・イメージの一部分を前記ホストに送信し、
前記ホストから送信される、ファイル操作要求に関連するファイルのコピー要求を受信し、
前記ファイル操作要求に関連する前記ファイルを前記ホストに送信する
イメージ・ビジタ
を含む、システム。
【請求項１５】
前記イメージ・ビジタは、
前記ホストにおいて実行される仮想マシン・イメージ内の変更されたデータを受信し、前記仮想マシン・イメージを前記変更されたデータで更新するイメージ・ファイル・ビジタ
を更に含む、請求項１４に記載のシステム。
【請求項１６】
ファイル・インデックス情報を生成するイメージ・インデクサと、
前記イメージ・インデクサによって生成された前記ファイル・インデックス情報を使用することによって前記仮想マシン・イメージの一部分を生成するイメージ・コンバータと、
を更に含む、請求項１４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラウド・コンピューティングに関するものである。特に、本発明は、クラウド・コンピューティングにおける仮想マシン・イメージの実行方法及びシステムに関する。
【背景技術】
【０００２】
クラウド・コンピューティングでは、膨大な数のエンド・ユーザが強力なコンピューティング能力を活用することにより、使用されるコンピューティング技術やアクセス様式等を気にすることなくＩＴのコンピューティング能力を効率的に利用することが可能となる。クラウド・コンピューティングにおいて、ＩＴのコンピューティング能力はサービスとして提供される。仮想化技術は、クラウド・コンピューティングで広く使用される技術である。既存のクラウド・コンピューティング・アーキテクチャにおいて、ユーザ向けのサービスは通常仮想マシンを使用して提供される。クラウド・コンピューティング環境で仮想マシンを実行するには仮想マシン・イメージ・ファイルを実行する必要がある。仮想マシン・イメージ・ファイルは通常、オペレーティング・システム、インスール済みアプリケーション・プログラム、及び利用可能なディスク・スペースを含む。通常、仮想マシン・イメージ・ファイルは小さいもので４〜５ＧＢである。大きい仮想マシン・イメージ・ファイルは数百ＧＢに及ぶこともあり、例えばＴＰＭのイメージ・ファイルは約１００ＧＢである。
【０００３】
従来技術では、仮想マシンを実行する上で、一般には仮想マシン全体のイメージ・ファイル（オペレーティング・システム、インストール済みアプリケーション・プログラム、及び利用可能なディスク・スペースを含む）をストレージ・サーバからホストにコピーする必要があり、その後この仮想マシン・イメージ・ファイルから仮想マシンが始動される。仮想マシンが始動された後、アプリケーション・プログラムは仮想マシン上で実行される。仮想マシン・イメージ・ファイル内のデータが実行中に変更された場合は、その変更された仮想マシン・イメージ・ファイルを仮想マシンの停止後にストレージ・サーバに保存し直す必要がある。
【０００４】
一般に、サーバ・クラスタは多数のホスト（即ちクラウド内のサーバ）を実行し、各ホストは多数の仮想マシンを実行する可能性がある。上述のとおり、仮想マシンの実行にあたっては仮想マシン全体のイメージ・ファイルをストレージ・サーバからホストにコピーする必要がある。比較的小さい仮想マシン・イメージ・ファイルでも一般には４〜５ＧＢ程度であるため、仮想マシン・イメージ・ファイルのコピーは大量のネットワーク帯域幅を消費することになる。一方、変更された仮想マシン・イメージ・ファイルは仮想マシンの停止後にその全体をストレージ・サーバに保存し直す必要があり、このような記憶手順も大量のネットワーク帯域幅を消費することになる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
それ故、当業界ではクラウド・コンピューティングにおける仮想マシン・イメージの改良された実行方法及びシステムが必要とされている。
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、仮想マシン・イメージをホストにおいて実行するための方法であって、仮想マシン・イメージ提供要求を受信するステップと、前記仮想マシン・イメージ提供要求に関連する仮想マシン・イメージのコピー要求をストレージ・サーバに送信するステップと、少なくともオペレーティング・システム・カーネル、パーティション情報、及びファイル・インデックス情報を含む前記仮想マシン・イメージの一部分を受信するステップと、受信された前記仮想マシン・イメージの前記一部分を実行することによって前記ホスト内の仮想マシンを始動させるステップと、前記仮想マシンにおいて実行されるプログラムのファイル操作要求を傍受するステップと、前記ファイル操作要求に関連するファイルのコピー要求を前記ストレージ・サーバに送信するステップと、前記ファイル操作要求に関連する前記ファイルを受信するステップと、を含む方法が提供される。
【０００７】
本発明の別の態様によれば、仮想マシン・イメージをホストにおいて実行するための方法であって、前記ホストから送信される、仮想マシン・イメージ提供要求に関連する仮想マシン・イメージのコピー要求を受信するステップと、少なくともオペレーティング・システム・カーネル、パーティション情報、及びファイル・インデックス情報を含む前記仮想マシン・イメージの一部分を前記ホストに送信するステップと、前記ホストから送信される、ファイル操作要求に関連するファイルのコピー要求を受信するステップと、前記ファイル操作要求に関連する前記ファイルを前記ホストに送信するステップと、を含む方法が提供される。
【０００８】
本発明の別の態様によれば、仮想マシン・イメージをホストにおいて実行するためのシステムであって、仮想マシン・イメージ提供要求を受信し、前記仮想マシン・イメージ提供要求に関連する仮想マシン・イメージをコピーするようストレージ・サーバに要求し、少なくともオペレーティング・システム・カーネル、パーティション情報、及びファイル・インデックス情報を含む前記仮想マシン・イメージの一部分を受信し、受信された前記仮想マシン・イメージの前記一部分を実行することによって前記ホスト内の仮想マシンを始動させるイメージ・ローダと、前記仮想マシンにおいて実行されるプログラムのファイル操作要求を傍受し、前記ファイル操作要求に関連するファイルをコピーするよう前記ストレージ・サーバに要求し、前記ファイル操作要求に関連する前記ファイルを受信するアプリケーション・ローダと、を含むシステムが提供される。
【０００９】
本発明の別の態様によれば、仮想マシン・イメージをホストにおいて実行するためのシステムであって、前記ホストから送信される、仮想マシン・イメージ提供要求に関連する仮想マシン・イメージのコピー要求を受信し、少なくともオペレーティング・システム・カーネル、パーティション情報、及びファイル・インデックス情報を含む前記仮想マシン・イメージの一部分を前記ホストに送信し、前記ホストから送信される、ファイル操作要求に関連するファイルのコピー要求を受信し、前記ファイル操作要求に関連する前記ファイルを前記ホストに送信するイメージ・ビジタを含むシステムが提供される。
【００１０】
本発明によれば、仮想マシン・イメージの比較的小さい部分のみを当初伝送すれば済むため、ネットワーク帯域幅の占有が著しく低減される。一方、本発明ではファイルのコピー操作がアプリケーションによって駆動されるため、ストレージ・サーバから必要なファイルだけがコピーされることになり、それによってネットワーク帯域幅の占有が大幅に低減される。
【図面の簡単な説明】
【００１１】
本発明は、以下の説明を添付図面と併せて読めば理解が深まるはずである。各図面において同一又は同様の構成要素は同様の参照番号で示される。本明細書に含まれるこれらの図面は、以下の詳細な説明と共に本明細書の一部を構成するものであり、本発明の好ましい諸実施形態を図示し本発明の原理及び利点を説明するのに使用される。
【００１２】
【図１】本発明の一実施形態に係る仮想マシン・イメージをホストにおいて実行するためのシステム１００を示す図である。
【図２】本発明の一実施形態に係る仮想マシン・イメージをホストにおいて実行するための方法のフロー図２００である
【図３】本発明の別の実施形態に係る仮想マシン・イメージをホストにおいて実行するための方法のフロー図３００である。
【発明を実施するための形態】
【００１３】
以下では、添付図面を参照しながら本発明の例示的な諸実施形態について説明する。本明細書では簡潔明瞭な説明を心がけ、実際の実装環境のすべての特徴を網羅的に説明することはしない。しかしながら、そのような実際の実施形態の開発過程では、開発者の特定の目標を達成するために、実装環境によって異なる可能性があるシステム上の制約やビジネス上の制約等に従って実装環境に応じた様々な決定が下されることが理解されるだろう。更に、そのような開発努力は複雑で時間がかかる可能性もあるが、本開示の利益を享受する当業者にとっては日常的な業務であることも理解されるはずである。
【００１４】
本明細書では、不必要な詳細によって本発明が不明瞭になるのを避けるために、本発明の解決策と密接に関連する手段構造又はプロセス・ステップあるいはその両方のみが図示されており、本発明の解決策と殆ど関係がない他の詳細は省略されていることに留意していただきたい。
【００１５】
本発明の発明者は業務中に、従来の手法では多くの場合Ａｐａｃｈｅの実行中にアプリケーションを実行する上で仮想マシン・イメージ内のファイルの一部分しか必要とされない、例えば約１００ＭＢのファイルしか必要とされないにも関わらず、Ａｐａｃｈｅを実行するために約４〜５ＧＢの仮想マシン・イメージ全体をネットワークを介してホストにコピーする必要が生じ、それによって大量のネットワーク帯域幅が無駄になっていることを発見した。本発明の方法を使用すると、Ａｐａｃｈｅの実行に必要な１００ＭＢ前後のファイルだけがネットワークを介してコピーされ、それによってネットワーク帯域幅の消費が大幅に低減される。上記を踏まえて、本発明の発明者は本発明を完成させた。
【００１６】
ここで図１を参照すると、本発明の一実施形態に係る仮想マシン・イメージをホストにおいて実行するためのシステム１００が示されている。本発明の一実施形態によれば、仮想マシン・イメージを実行するためのシステム１００は、イメージ・ビジタ１０２と、イメージ・ローダ１０４と、アプリケーション・ローダ１０６と、イメージ・シンクロナイザ１０８と、を含む。別法として、仮想マシン・イメージを実行するためのシステム１００は、２つのサブシステム、即ち、ストレージ・サーバ内に位置するイメージ・ビジタ１０２によって構成されるサーバ・サブシステムと、ホスト内及びホストにおいて実行される仮想マシン内に位置するイメージ・ローダ１０４、アプリケーション・ローダ１０６、及びイメージ・シンクロナイザ１０８によって構成されるホスト・サブシステムと、を含む。
【００１７】
サーバ・サブシステムを構成するイメージ・ビジタ１０２は、ストレージ・サーバ側に位置し、イメージ・コンバータと、イメージ・インデクサと、イメージ・ファイル・ビジタと、を含む。本例において、イメージ・コンバータは、オリジナル仮想マシン・イメージを仮想マシン・イメージの一部分に変換するのに使用される。仮想マシン・イメージの一部分は、少なくともオペレーティング・システム・カーネルと、パーティション情報と、ファイル・インデックス情報と、を含む。イメージ・インデクサは、仮想マシン・イメージ内のファイルの位置を突き止めるのに使用されるファイル・インデックス情報を生成するのに使用される。イメージ・コンバータはまず、仮想マシン・イメージを分析することによってオペレーティング・システム・カーネル及びパーティション情報を取得し、次に、イメージ・インデクサによって生成されるファイル・インデックス情報と共に、仮想マシン・イメージの一部分を生成する。オペレーティング・システム・カーネル及びパーティション情報を取得し、ファイル・インデックス情報を作成し、仮想マシン・イメージの一部分を生成するプロセスは、当業界における任意の手段によって実行可能であるが、ここでは簡略化のため説明を省略する。上述のイメージ・コンバータ及びイメージ・インデクサのプロセスは、オフラインで実行することも動的に実行することも可能である。仮想マシン・イメージの一部分は、オフラインで事前に作成されることが好ましい。イメージ・コンバータは、ホストにおいて実行される仮想マシン内に位置するアプリケーション・ローダ１０６との通信が可能となるように、仮想マシン・イメージの一部分にアプリケーション・ローディング・コードを埋め込むこともできる。
【００１８】
イメージ・ファイル・ビジタは、ホストにおいて実行される仮想マシン内に位置するアプリケーション・ローダ１０６から発行されるファイル読み取り要求を受信し、仮想マシン・イメージ内のファイルを読み取り、当該ファイルを応答としてアプリケーション・ローダ１０６に返すのに使用されるとともに、ホスト内に位置するイメージ・シンクロナイザ１０８から送信される更新ファイルを受信し、ストレージ・サーバ内の仮想マシン・イメージを更新するのにも使用される。
【００１９】
以下、ホスト・サブシステムを構成するイメージ・ローダ１０４、アプリケーション・ローダ１０６、及びイメージ・シンクロナイザ１０８について説明する。ホスト内に位置するイメージ・ローダ１０４は、イメージ・コンバータによって生成される仮想マシン・イメージの一部分をロード（即ちストレージ・サーバからコピー）するのに使用される。仮想マシン・イメージの一部分がロードされた後、イメージ・ローダ１０４は、仮想マシン・イメージの一部分に含まれるパーティション情報及びファイル・インデックス情報に基づいて仮想マシン・イメージの一部分をインスタンス化する。インスタンス化のプロセスは、ハイパーバイザによって実行されるのと同様であり、ここでは簡略化のため説明を省略する。ホストにおいて実行される仮想マシン内に位置するアプリケーション・ローダ１０６は、ファイル・フック（file hook）と、ローカル・イメージ・ビジタと、を含む。本明細書において、ファイル・フックは、ホストにおいて実行される仮想マシンにおいて実行されるプログラムのファイル操作要求を傍受し、当該要求をローカル・イメージ・ビジタに送信するのに使用される。ローカル・イメージ・ビジタは、ファイル・フックによって傍受されたファイル操作要求を受信し、仮想マシン・イメージのインスタンス化された一部分に含まれるパーティション情報及びファイル・インデックス情報を検査し、ファイル操作要求に関連するファイルがホストにおいて実行される仮想マシンのローカル・データ内に位置するかどうかを判定する。ファイル操作要求に関連するファイルがローカル・データ内に位置する場合には、対応するファイルがファイル操作アプリケーション・プログラム・インターフェースＡＰＩを利用して読み取られる。ファイル操作要求に関連するファイルがホストにおいて実行される仮想マシンのローカル・データ内に位置しない場合には、ファイル読み取り要求がストレージ・サーバ側のイメージ・ビジタ１０２内に位置するイメージ・ファイル・ビジタに送信される。ファイル操作に関連するファイルを収容したイメージ・ファイル・ビジタからの応答が受信されると、応答の形で返されたファイル操作に関連するファイルは、ファイル操作アプリケーション・プログラム・インターフェースＡＰＩを利用してローカル・データに格納される。ローカル・イメージ・ビジタは、ファイル操作によるファイル・インデックス情報の変更に関する増分記録（即ちインデックス増分）にも使用される。ホスト内に位置するイメージ・シンクロナイザ１０８は、ローカル・イメージ・ビジタによって記録されたファイル・インデックス情報の変更を読み取り、変更されたファイル・インデックス情報を使用することによってローカル・データ内の更新されたファイルを読み取り、更新されたファイルをストレージ・サーバのイメージ・ビジタ１０２内に位置するイメージ・ファイル・ビジタに送信してストレージ・サーバ内の仮想マシン・イメージを更新するのに使用される。
【００２０】
以下、ホストにおいて実行される仮想マシンのアプリケーション・ローダ１０６内に位置するファイル・フック及びローカル・イメージ・ビジタのプロセスについて詳細に説明する。ファイル・フックは、当業界における任意の手段によって実行可能であり、ここでは簡略化のため説明を省略する。
【００２１】
ホストにおいて実行されるプログラムのファイル操作要求がアプリケーション・ローダ１０６によって受信されたとき、ファイル操作要求は、アプリケーション・ローダ１０６内のファイル・フックによって傍受される。様々なファイル操作要求に対して、ファイル・フックは、ローカル・イメージ・ビジタと協働してそれぞれ対応するプロセスを実行する。
【００２２】
ファイル操作要求がファイル・オープン要求である場合、即ちファイル要求がファイル情報の取得のみを必要とする場合には、ファイル・フックは、ファイル・オープン要求を傍受し、それをローカル・イメージ・ビジタに送る。ローカル・イメージ・ビジタは、パーティション情報及びファイル・インデックス情報を読み取る。ファイル・インデックス情報は一般に、ファイル・アロケーション・テーブルである。ローカル・イメージ・ビジタは、ファイル・インデックス情報内のファイル記述子を読み取り、対応するファイル名、ファイル記憶パス、ファイル・アクセス権等の情報を取得する。これによってファイル・オープン操作は終了する。
【００２３】
ファイル操作要求がファイル読み取り要求である場合には、ファイル・フックは、ファイル読み取り要求を傍受し、それをローカル・イメージ・ビジタに送る。ローカル・イメージ・ビジタは、ファイル読み取り要求に関連するファイルの対応するファイル情報をローカル・インデックスから検索する。ファイル読み取り要求に関連するファイルが初めて読み取られるものである場合、即ち、対応するファイル情報がローカル・インデックス内に存在しない場合には、ローカル・イメージ・ビジタは、ファイル読み取り要求を、ファイル・フックを介してストレージ・サーバのイメージ・ビジタ１０２内に位置するイメージ・ファイル・ビジタに送信する。ファイル読み取り要求に関連するファイルを収容したイメージ・ファイル・ビジタからの応答が受信された後は、ファイル読み取り要求に関連するファイルの対応するファイル情報がローカル・インデックスに記録され、応答の形で返されたファイル読み取り要求に関連するファイルは、ファイル操作アプリケーション・プログラム・インターフェースＡＰＩを利用してローカル・データに格納される。ローカル・イメージ・ビジタがファイル読み取り要求に関連するファイルの対応するファイル情報をローカル・インデックスから検索した後に、ファイル読み取り要求に関連するファイルが初めて読み取られるものではないこと、即ち、対応するファイル情報がローカル・インデックス内に既に存在することが判定された場合には、ローカル・イメージ・ビジタは、ファイル操作アプリケーション・プログラム・インターフェースＡＰＩを利用し、ローカル・インデックスに格納された対応するファイル情報に従って、関連するファイルをローカル・データから直接読み取る。
【００２４】
ファイル操作要求がファイル作成要求である場合には、ファイル・フックは、ファイル作成要求を傍受し、それをローカル・イメージ・ビジタに送る。ローカル・イメージ・ビジタは、ファイル作成要求によって作成されるファイル名が既存のファイル・インデックス情報内に存在するファイル名と重複するのを避けるため、まずパーティション情報及びファイル・インデックス情報を読み取る。ファイル・インデックス情報は一般に、ファイル・アロケーション・テーブルである。ファイル名の重複がない場合、ローカル・イメージ・ビジタは、作成される新しいファイルの対応するファイル情報をファイル・フックを介してローカル・インデックスに記録するとともに、ファイル操作アプリケーション・プログラム・インターフェースＡＰＩを利用して作成すべき名前を有する新しいファイルをローカル・データ内に作成する。
【００２５】
ファイル操作要求がファイル書き込み要求である場合には、ファイル・フックは、ファイル書き込み要求を傍受し、それをローカル・イメージ・ビジタに送る。ローカル・イメージ・ビジタは、ファイル操作アプリケーション・プログラム・インターフェースＡＰＩを利用してファイル書き込み要求に関連するファイルの変更をローカル・データに書き込む。ファイル書き込み要求に関連するファイルの対応するファイル情報が変更されている場合は、ローカル・イメージ・ビジタは、ファイル書き込み要求に関連するフィルの対応するファイル情報の変更もローカル・インデックスに記録する。
【００２６】
ファイル操作が実行された後、ローカル・イメージ・ビジタは、ファイル・インデックス情報の変更を増分記録し、ホスト内に位置するイメージ・シンクロナイザ１０８は、ローカル・イメージ・ビジタによって記録されたファイル・インデックス情報の変更を読み取り、変更されたファイル・インデックス情報を使用することによってローカル・データ内の更新されたファイルを読み取り、更新されたファイルをストレージ・サーバのイメージ・ビジタ１０２内に位置するイメージ・ファイル・ビジタに送信してストレージ・サーバ内の仮想マシン・イメージを更新する。
【００２７】
本発明の一実施形態によれば、仮想マシン・イメージをホストにおいて実行するためのシステムであって、仮想マシン・イメージ提供要求を受信し、仮想マシン・イメージ提供要求に関連する仮想マシン・イメージをコピーするようストレージ・サーバに要求し、少なくともオペレーティング・システム・カーネル、パーティション情報、及びファイル・インデックス情報を含む仮想マシン・イメージの一部分を受信し、受信された仮想マシン・イメージの一部分を実行することによってホスト内の仮想マシンを始動させるイメージ・ローダ１０４と、仮想マシン内で実行されるプログラムのファイル操作要求を傍受し、ファイル操作要求に関連するファイルをコピーするようストレージ・サーバに要求し、ファイル操作要求に関連するファイルを受信するアプリケーション・ローダ１０６と、を含むシステムが提供される。任意選択で、仮想マシン・イメージを実行するためのシステムは更に、ホストにおいて実行される仮想マシン・イメージ内のデータが変更されている場合は、変更されたデータを送信してストレージ・サーバ内の仮想マシン・イメージを更新するイメージ・シンクロナイザ１０８を含む。
【００２８】
本発明の一実施形態によれば、仮想マシン・イメージをホストにおいて実行するためのシステムであって、ホストから送信される仮想マシン・イメージ提供要求に関連する仮想マシン・イメージのコピー要求を受信し、少なくともオペレーティング・システム・カーネル、パーティション情報、及びファイル・インデックス情報を含む仮想マシン・イメージの一部分をホストに送信し、ホストから送信されるファイル操作要求に関連するファイルのコピー要求を受信し、ファイル操作要求に関連するファイルをホストに送信するイメージ・ビジタ１０２を含むシステムが提供される。この場合、イメージ・ビジタは更に、ホストにおいて実行される仮想マシン・イメージ内の変更されたデータを受信し、仮想マシン・イメージを変更されたデータで更新するイメージ・ファイル・ビジタを含む。任意選択で、仮想マシン・イメージを実行するためのシステムは更に、ファイル・インデックス情報を生成するイメージ・インデクサと、イメージ・インデクサによって生成されたファイル・インデックス情報を使用することによって仮想マシン・イメージの一部分を生成するイメージ・コンバータと、を含む。
【００２９】
次に図２を参照すると、本発明の一実施形態に係る仮想マシン・イメージをホストにおいて実行するための方法のフロー図が示されている。本発明の一実施形態によれば、仮想マシン・イメージをホストにおいて実行するための方法２００は、ステップ２０２から開始する。次にステップ２０４で、仮想マシン・イメージ提供要求がホストによって受信され；次にステップ２０６で、仮想マシン・イメージ提供要求に関連する仮想マシン・イメージのコピー要求がホストからストレージ・サーバに送信され；次にステップ２０８で、少なくともオペレーティング・システム・カーネル、パーティション情報、及びファイル・インデックス情報を含む仮想マシン・イメージの一部分がホストによって受信され；次にステップ２１０で、受信された仮想マシン・イメージの一部分を実行することによってホスト内の仮想マシンが始動され；次にステップ２１２で、仮想マシン内で実行されるプログラムのファイル操作要求がホストによって傍受され；次にステップ２１４で、ファイル操作要求に関連するファイルがホストによって取得される。更に、仮想マシン・イメージを実行するための方法２００では、ホストにおいて実行される仮想マシン・イメージ内のデータが仮想マシンの実行中に変更された場合は、ステップ２１６で、変更されたデータがストレージ・サーバに送信され、それによって仮想マシン・イメージが更新される。その後、本発明の本実施形態に係る方法２００は、ステップ２１８で終了する。
【００３０】
更に、ファイル操作要求が受信されたときは、本発明の本実施形態に係る方法２００は、様々なファイル操作要求に関してそれぞれ対応するプロセスを実行する。
【００３１】
ファイル操作要求がファイル操作要求である場合、即ちファイル要求がファイル情報の取得のみを必要とする場合には、パーティション情報及びファイル・インデックス情報が読み取られ、対応するファイル名、ファイル記憶パス、ファイル・アクセス権等の情報が取得され、ファイル・オープン操作が終了する。
【００３２】
ファイル操作要求がファイル読み取り要求である場合には、ファイル読み取り要求に関連するファイルの対応するファイル情報がローカル・インデックスから検索され、ファイル読み取り要求に関連するファイルが初めて読み取られるものである場合、即ち、対応するファイル情報がローカル・インデックス内に存在しない場合は、ファイル読み取り要求はストレージ・サーバに送信される。ファイル読み取り要求に関連するファイルを収容した応答が返され受信されると、ファイル読み取り要求に関連するファイルの対応するファイル情報がローカル・インデックスに記録され、応答の形で返されたファイル読み取り要求に関連するファイルは、ファイル操作アプリケーション・プログラム・インターフェースＡＰＩを利用してローカル・データに格納される。ファイル読み取り要求に関連するファイルの対応するファイル情報がローカル・インデックスから検索された後に、ファイル読み取り要求に関連するファイルが初めて読み取られるものではないこと、即ち、対応するファイル情報がローカル・インデックス内に既に存在することが判定された場合には、ファイル操作アプリケーション・プログラム・インターフェースＡＰＩを利用し、ローカル・インデックスに格納された対応するファイル情報に従って、関連するファイルがローカル・データから直接読み取られる。
【００３３】
ファイル操作要求がファイル作成要求である場合には、ファイル作成要求によって作成されるファイル名が既存のファイル・インデックス情報内に存在するファイル名と重複するのを避けるため、まずパーティション情報及びファイル・インデックス情報が読み取られる。ファイル名の重複がない場合は、作成される新しいファイルの対応するファイル情報がローカル・インデックスに記録されるとともに、ファイル操作アプリケーション・プログラム・インターフェースＡＰＩを利用して作成すべき名前を有する新しいファイルがローカル・データ内に作成される。
【００３４】
ファイル操作要求がファイル書き込み要求である場合には、ファイル操作アプリケーション・プログラム・インターフェースＡＰＩを利用してファイル書き込み要求に関連するファイルの変更がローカル・データに書き込まれる。ファイル書き込み要求に関連するファイルの対応するファイル情報が変更されている場合は、ファイル書き込み要求に関連するフィルの対応するファイル情報の変更もローカル・インデックスに記録される。
【００３５】
ファイル操作が実行された後は、ファイル・インデックス情報の変更が増分記録される。変更されたファイル・インデックス情報を使用することによってローカル・データ内の更新されたファイルが読み取られ、当該更新されたファイルは、ストレージ・サーバに送信され、それによってストレージ・サーバ内の仮想マシン・イメージが更新される。
【００３６】
次に図３を参照すると、本発明の別の実施形態に係る仮想マシン・イメージをホストにおいて実行するための方法のフロー図３００が示されている。本発明の別の実施形態によれば、仮想マシン・イメージをホストにおいて実行するための方法３００は、ステップ３０２から開始する。次にステップ３０４で、ホストから送信された仮想マシン・イメージ提供要求に関連する仮想マシン・イメージのコピー要求が受信され；次にステップ３０６で、少なくともオペレーティング・システム・カーネル、パーティション情報、及びファイル・インデックス情報を含む仮想マシン・イメージの一部分がホストに送信され；次にステップ３０８で、ホストから送信されたファイル操作要求に関連するファイルのコピー要求が受信され；次にステップ３１０で、ファイル操作要求に関連するファイルがホストに送信される。その後、本発明の本実施形態に係る方法３００は、ステップ３１２で終了する。本発明の別の実施形態に係る仮想マシン・イメージを実行するための方法３００は更に、ファイル・インデックス情報を生成するステップと、生成されたファイル・インデックス情報を使用することによって仮想マシン・イメージの一部分を生成するステップと、を含む。
【００３７】
以上、本発明の基本的な原理を特定の実施形態に関して説明してきたが、本発明の方法及び装置のすべての又は任意のステップ又は構成要素は、本発明の明細書を読んだ当業者が各自の基本的なプログラミング・スキルを使用することによって実現可能な任意のコンピューティング装置（プロセッサ、ストレージ・メディア等）において実施することも、ハードウェア、ファームウェア、又はソフトウェアの形をとるコンピュータ装置あるいはそれらの組み合わせによって構成されるネットワークにおいて実施することも可能であることが当業者には理解されるはずである。
【００３８】
それ故、本発明の目的は、任意のコンピューティング装置上で実行されるプログラムあるいはプログラム・グループによっても達成可能である。コンピューティング装置は、既知の汎用装置であってよい。それ故、本発明の目的は、単純に本方法又は装置を実施するプログラム・コードが収容されたプログラム製品を提供することによっても達成可能である。即ち、そのようなプログラム製品も本発明を構成する可能性があり、そのようなプログラム製品が記憶されたストレージ・メディアも本発明を構成する可能性がある。ストレージ・メディアは、既知の任意のストレージ・メディアであっても将来開発される任意のストレージ・メディアであってもよいことは言うまでもない。
【００３９】
無論、本発明の装置及び方法では、各構成要素又は各ステップの分離又は再結合あるいはその両方が可能であることにも留意していただきたい。そのような分離又は再結合あるいはその両方は、本発明の等価な解決策と見なされる。更に、上記の一連のプロセスを実行する各ステップは、記載の順序に従って時系列に実行可能であることはもちろんであるが、必ずしも時系列に実行する必要はない。これらのステップの中には並行して実行されるものもあれば、互いに独立して実行されるものもある可能性がある。
【００４０】
上記では本発明及びその利点について詳細に説明してきたが、添付の特許請求範囲の各請求項で定義される本発明の趣旨及び範囲から逸脱しない限り、様々な修正、置換、及び変更を施すことが可能であることを理解していただきたい。更に、「comprising（備える、含む、有する）」や「including（含む）」という用語あるいはその他の変化形は、排他的でなく包括的な記載をカバーするためのものであり、それによって一連の要素を含む手順、方法、アイテム、又は装置がそれらの一連の要素だけでなく明示的に列挙されていない他の要素、あるいはそのような手順、方法、アイテム、又は装置固有の要素も含むようにすることが本出願人の意図するところである。特に明記しない限り、「including a…（〜を含む）」という表現をもって定義される要素は、当該要素を含む手順、方法、アイテム、又は装置内に同一の要素が他にも存在する余地を排除するものではない。
【符号の説明】
【００４１】
１００  システム
１０２  イメージ・ビジタ
１０４  イメージ・ローダ
１０６  アプリケーション・ローダ
１０８  イメージ・シンクロナイザ
【図１】
2011076605.tif 000003
【図２】
2011076605.tif 000004
【図３】
2011076605.tif 000005