(57)【特許請求の範囲】
【請求項１】
中間マネージャと同じマシンに配置されるゲストオペレーティングシステムから、前記中間マネージャとは別個の特定のハイパーバイザに向けられたハイパーコールを、前記中間マネージャにおいてインターセプトする工程、
特定の中間サービスに前記ハイパーコールが関連付けられていると判断する工程、
前記特定の中間サービスに関連付けられたサービス命令を実行させる工程、
を含み、
１つ又は複数の計算装置によって実行されることを特徴とする方法。
【請求項２】
前記ゲストオペレーティングシステム及び前記中間マネージャは、ホストマシンによってホストされ、かつ、ホストハイパーバイザによって管理される仮想マシン内で動作することを特徴とする請求項１に記載の方法。
【請求項３】
前記中間マネージャは、前記ホストマシンを制御するクラウドサービスプロバイダ及び前記ゲストオペレーティングシステム内のロジックの実行を制御するクライアントとは異なるマネージャによって制御されることを特徴とする請求項２に記載の方法。
【請求項４】
ハイパーコール関数定義のセットを前記ゲストオペレーティングシステムに提供する工程を更に含み、
少なくとも１つのハイパーコール関数定義は、対応するハイパーコールを前記中間マネージャへ送信させるものであり、
前記ハイパーコール関数定義のセットの特定のハイパーコール関数定義は、前記特定のハイパーコール関数定義に対応するハイパーコールが前記中間マネージャに送信されるべきであることを示すことを特徴とする請求項１に記載の方法。
【請求項５】
前記ゲストオペレーティングシステム及び前記中間マネージャは、ホストマシンによってホストされ、かつ、ホストハイパーバイザによって管理される仮想マシン内で動作し、
前記ハイパーコール関数定義のセットは、プロセッサ管理に関連する別の特定のハイパーコールのための別の特定のハイパーコール関数定義を含み、かつ、前記別の特定のハイパーコール関数定義は、前記別の特定のハイパーコール関数定義に対応するハイパーコールが前記ホストハイパーバイザに直接送信されるべきものであることを示すことを特徴とする請求項４に記載の方法。
【請求項６】
前記ハイパーコールは、ローカルに取り付けられたリソースに対してデータを検索又は記憶する要求であり、かつ、前記サービス命令は、非ローカルに取り付けられたリソースに対してデータを検索又は記憶させることを特徴とする請求項１に記載の方法。
【請求項７】
前記ハイパーコールは、データの検索要求又は記憶要求であり、かつ、前記サービス命令は、前記データの暗号化又は復号化を実行させることを特徴とする請求項１に記載の方法。
【請求項８】
前記ハイパーコールは、データ検索要求又はデータ記憶要求であり、かつ、前記サービス命令は、前記ゲストオペレーティングシステムに適用可能なデータ制限に基づいて、前記ゲストオペレーティングシステムから送信される、又は、前記ゲストオペレーティングシステムに送信されるデータの量が許容されるか否かを判断させることを特徴とする請求項１に記載の方法。
【請求項９】
前記ゲストオペレーティングシステムは、前記仮想マシン内で動作する複数のゲストオペレーティングシステムの１つであることを特徴とする請求項２に記載の方法。
【請求項１０】
前記ゲストオペレーティングシステムは、前記中間マネージャのオペレーティングシステムとは異なるタイプのオペレーティングシステムであることを特徴とする請求項１に記載の方法。
【請求項１１】
前記ゲストオペレーティングシステムは、前記ホストハイパーバイザと直接動作可能であるように構成されないことを特徴とする請求項２に記載の方法。
【請求項１２】
１つ又は複数の命令シーケンスを含む非一時的コンピュータ可読記憶媒体において、前記１つ又は複数の命令シーケンスは、１つ又は複数のプロセッサによって実行されると、前記１つ又は複数のプロセッサに、請求項１から１１いずれか１項に記載の方法を実行させることを特徴とする非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、仮想マシン及び仮想記憶装置等の仮想データセンタリソースのゲスト利用を強化する技法に関する。
【背景技術】
【０００２】
このセクションに記載される手法は、追求された可能性があるが、必ずしも従来から考え出されたか、又は追求されてきた手法ではない。したがって、本明細書に別段のことが示される場合を除き、このセクションに記載される手法は、本願での特許請求の範囲に対する従来技術ではなく、このセクションに含まれることにより従来技術であることを認めるものではない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
多くの企業及びそれらのコンピュータシステムは、クラウドサービスプロバイダ（ＣＳＰ）等の仮想データセンタと、インターネットを通してアクセス可能な仮想記憶リソース、仮想計算リソース、又は仮想データベースリソース等の他の仮想リソースとによって提供される仮想マシンを利用する。そのようなクラウドサービスは、コスト削減、より容易なスケーラビリティ、及び管理負担低減等の多くの利点をクライアントに提供し得る。しかし、クラウドサービスはまた、セキュリティリスクの増大又は一貫しない性能等のこれらのサービスのクライアントに新しい課題も呈する。そのようなクラウドサービスのクライアントは、必要とされる実施コスト及び努力を低くしながら、そのような欠点を最小化する解決策によって恩恵を受ける。
【課題を解決するための手段】
【０００４】
添付の特許請求の範囲は、本発明を概要する役割を果たし得る。
【図面の簡単な説明】
【０００５】
【図１】一実施形態の実施に使用し得るネットワーク化コンピュータシステム構成の一例を示す。
【図２】一実施形態の実施に使用し得るネットワーク化コンピュータシステム構成の別の例を示す。
【図３】一実施形態によるネットワーク化コンピュータシステム構成の一例のコンテキスト例を示す。
【図４】ゲストオペレーティングシステムを開始する方法の一例を示す。
【図５】ゲストオペレーティングシステムからのハイパーコールを処理する方法の一例を示す。
【図６】本発明の一実施形態を実施し得るコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【０００６】
仮想データセンタのゲストに対するサービスを拡大する方法が記載される。以下の説明では、説明のために、多くの特定の詳細が、本発明の完全な理解を提供するために記載される。しかし、これらの特定の詳細なしで本発明を実施し得ることが当業者には理解されよう。他の場合、周知の構造及び装置は、本発明を不必要に曖昧にしないように、ブロック図の形態で示されている。
【０００７】
実施形態は、以下の概要に従って本明細書に記載される：
１．０  概説
２．０  構造及び機能の概説
３．０  実施メカニズム  −  ハードウェア概説
４．０  拡張及び代替
【０００８】
１．０  概説
一実施形態によれば、中間マネージャは、ホストマシンによってホストされ、かつ、ハイパーバイザによって管理される仮想マシン内で動作する。中間マネージャは、仮想マシン内で動作する１つ又は複数のゲストオペレーティングシステムを管理し、仮想データセンタ（ＶＤＣ）リソースのゲスト利用を強化する１つ又は複数のサービスを実施する。中間マネージャは、ＶＤＣによってゲストに提供されるサービスを拡大する様々な利点のうちの１つ又は複数をＶＤＣゲストに提供し得る。これに関連して、仮想データセンタ又はＶＤＣは、任意の１つ又は複数の仮想化企業コンピュータシステム、私設データセンタ内の仮想マシン基盤、プライベートクラウド内の計算、記憶、又はネットワーキングリソース、クラウドサービスプロバイダ（ＣＳＰ）によって提供されるなどの公開クラウド内のリソース、及びハイブリッドクラウド計算環境を指す。
【０００９】
特に、中間マネージャサービスは、データ暗号化、アンチウィルス監視、及びデータ量制限を含み得る。サービスは、ゲストオペレーティングシステムのリモートＶＤＣ管理システムへのより容易なアクセスをゲストに提供することもでき、リモートＶＤＣ管理システムは、ＶＤＣリソースの性能を管理し、改善する。更に、中間ゲストマネージャは、特定のハイパーバイザと互換性のないゲストオペレーティングシステムが、特定のハイパーバイザによってサポートされる仮想マシン内で実行できるようにし得る。
【００１０】
中間ゲストマネージャは、ゲストオペレーティングシステムから、ホストハイパーバイザに向けられたハイパーコールの少なくとも一部をインターセプトすることにより、幾つかのサービスを提供し得る。サービスの挿入は、土台をなすハイパーバイザ及びＶＤＣのゲストからは不可視であり得、ゲスト又は土台をなすハイパーバイザによるいかなるインストール又は追加の構成も必要とされない。
【００１１】
２．０  構造及び機能の概説
図１は、一実施形態の実施に使用し得るネットワーク化コンピュータシステム構成の一例を示す。仮想マシン１００は、ホストマシン１２０によってホストされ、且つハイパーバイザ１２２によって管理される仮想マシンである。ゲストＯＳ１０２、１０６は、仮想マシン１００内のゲストオペレーティングシステムである。ゲストＯＳ１０２、１０６は、ホストマシン１２０のハードウェアリソース又は他のＶＤＣ提供リソースを利用し得る。ホストマシン１２０のリソースは、少なくとも部分的にハイパーバイザ１２２の支援を受けて、単一のゲストである仮想マシン１００用に仮想化し得る。ゲストＯＳ１０２及び１０６は、別個の仮想マシンでなくてもよい。例えば、ゲストＯＳ１０２と１０６との間にＣＰＵ仮想化、厳密なメモリ分離、又はメモリ保護がなくてもよい。他の実施形態は、単一のみのゲストオペレーティングシステムを含んでもよく、又は３つ以上のゲストオペレーティングシステムを含んでもよい。
【００１２】
ゲストＯＳ１０２及び１０６は、ゲストアプリケーション１０４及び１０８を備える。クライアントは、ホストマシン１２０のロケーションから離れたクライアントロケーションにおいて、ゲストアプリケーション１０４及び１０８等のゲストオペレーティングシステム１０２及び１０６上のプロセスを制御し得る。ゲストアプリケーション１０４、１０８は様々なハイパーコールを開始し得る。ハイパーコールは、本明細書で使用される場合、メインメモリ１３２、プロセッサ１３４、記憶装置１３６にアクセスする要求及びＶＤＣ記憶リソース、ＶＤＣデータベースリソース、及びＶＤＣ計算リソース等の様々なＶＤＣ提供リソースを利用する要求等のホストシステム１２０のハイパーバイザ１２２に向けられた要求を含む。
【００１３】
ゲストＯＳ１０２、１０６は、少なくとも部分的に、中間ゲストマネージャ１１０によって管理し得る。中間ゲストマネージャ１１０は、ＶＤＣホスト仮想マシン又は仮想記憶装置等の様々なＶＤＣリソースのゲスト利用を強化するロジックを備え得る。中間ゲストマネージャ１１０は、ゲストＯＳイニシエータ１１２、ハイパーコールプロキシ１１４、ゲストサービスロジック１１６、ハイパーコール管理ロジック１１８のうちの１つ又は複数を含み得る。ゲストＯＳイニシエータ１１２は、ゲストＯＳ１０２、１０６等のゲストオペレーティングシステムを開始する。ハイパーコールプロキシ１１４は、ハイパーバイザ１２２に向け得るゲストアプリケーション１０４又はゲストアプリケーション１０８からのハイパーコールをインターセプトする。ゲストサービスロジック１１６は、ＶＤＣリソースのゲスト利用を強化する１つ又は複数のゲストサービスを実行する命令を含む。ハイパーコール管理ロジック１１８は、ゲストＯＳ１０２、１０６によるメモリの利用が、中間ゲストマネージャ１１０によるメモリの利用に干渉しないことを保証する命令等のハイパーコールを管理する命令を含む。
【００１４】
中間ゲストマネージャ１１０は、ゲストＯＳ１０２及び／又はゲストＯＳ１０６とは異なるタイプのオペレーティングシステムで動作し得る。ゲストＯＳ１０２及び１０６は、幾つかの実施形態では、異なるタイプのオペレーティングシステムであってもよい。
【００１５】
ホストマシン１２０内のハイパーバイザ１２２は、ハイパーコールハンドラ１２４を備え得る。ハイパーコールハンドラ１２４は、ゲストＯＳ１０２、１０６及び／又は中間ゲストマネージャ１１０からコールを受信し得る。ホストマシン１２０は、メインメモリ１３２、プロセッサ１３４、及び／又は記憶装置１３６に通信可能に結合し得る。ゲストＯＳ１０２、１０６内のゲストアプリケーション１０４、１０８は、メインメモリ１３２、プロセッサ１３４、及び／又は記憶装置１３６を利用し得る。ハイパーコールハンドラ１２４によって処理されるハイパーコールは、メインメモリ１３２、プロセッサ１３４、及び／又は記憶装置１３６の利用を要求し得る。
【００１６】
図１のハイパーバイザ１２２は、様々なハイパーコールをハイパーバイザに通信するソフトウェアインタフェースを提示し得、ハイパーコールは、仮想マシン１００内のプロセスによって使用し得る。例えば、ハイパーバイザ１２２は、ＸＥＮハイパーバイザであり得、ゲストＯＳ１０２、１０６、及び／又は中間ゲストマネージャ１１０は、ハイパーコールを送信することによってハイパーコールをハイパーバイザ１２２に発行し得る。ＸＥＮは現在、Ｘｅｎ．ｏｒｇコミュニティによって開発されている。
【００１７】
ハイパーバイザ１２２は、仮想マシン１００内の別個のゲストオペレーティングシステムについて通知されないことがあり、中間ゲストマシン１１０及び／又は他のゲストオペレーティングシステム用に別個のパーテーションを作成するために、仮想マシン１００リソースを細分しないことがある。ハイパーバイザ１２２は、複数のゲストオペレーティングシステム及び／又は中間ゲストマネージャ１１０から受信したコールを単一のゲストからのものとして解釈し得る。
【００１８】
図２は、一実施形態の実施に使用し得るネットワーク化コンピュータシステム構成の別の例を示す。図２のハイパーバイザ１２２は、様々なシステム動作を生じさせるゲストからのハイパーコールを受け入れない非準仮想化ハイパーバイザであり得る。ハイパーバイザ１２２は、ＬＩＮＵＸ（登録商標）  ＫＶＭ又はＭＩＣＲＯＳＯＦＴ  ＨＹＰＥＲ−Ｖ等のハードウェアベースの仮想化を仮想マシン１００に提供するハイパーバイザであり得、中間ゲストマネージャ１１０は、ホストマシン１２０の物理的ハードウェアにアクセスして、ゲストＯＳ１０２、１０６から中間ゲストマネージャによってインターセプトされた様々なハイパーコールを実施し得る。中間ゲストマネージャ１１０は、ハイパーバイザ１２２でのハイパーコールハンドラ１２４を介して、メインメモリ１３２、プロセッサ１３４、記憶装置１３６等のハードウェアリソースにアクセスし得る。
【００１９】
一実施形態では、特定のホストマシンのハイパーバイザと直接動作可能であるように構成されないゲストオペレーティングシステムが、ホストマシンのゲストであり得る。例えば、一実施形態では、図２のゲストＯＳ１０２、１０６は、ハイパーコールを介してホストマシン１２０と通信することが予期される準仮想化ゲストである。中間ゲストマネージャ１１０は、そのようなオペレーティングシステムが、準仮想化ゲストをサポートせず、ハイパーコールを受け入れないハイパーバイザを有するホストマシンのゲストであっても可能なようにし得る。例えば、図２のゲストＯＳ１０２、１０６は、ＸＥＮハイパーバイザとのみ互換性を有し得、ハイパーバイザ１２２は、ＫＶＭ又はＨＹＰＥＲ−Ｖ等の非準仮想化ハイパーバイザであり得る。そのような実施形態では、中間ゲストマネージャ１１０は、ゲストＯＳ１０２又は１０６からのハイパーコールを受け入れ得、要求されたハイパーコールをエミュレートするか、又はホストマシン１２０のハードウェアと直接通信して、ハイパーコールを完了させ得る。したがって、中間ゲストマネージャ１１０は、ゲストオペレーティングシステムが動作し得るホストマシンのタイプを拡大し得る。一実施形態では、ゲストオペレーティングシステム１０２、１０６及び中間ゲストマネージャ１１０は、任意の仮想マシン内にない。代わりに、ゲストオペレーティングシステム及び中間ゲストマネージャは、任意のハイパーバイザを欠く同じホストマシンにあり得る。ゲストオペレーティングシステム１０２、１０６はなお、特定のハイパーバイザに向けられたハイパーコールを発行し得、中間ゲストマネージャ１１０は、ハイパーコールをインターセプトし、ハイパーコールに関連付けられたサービスコードを実行させ得る。
【００２０】
ゲストオペレーティングシステム１０２、１０６が、ハイパーコールを受け入れる準仮想化ハイパーバイザを有するホストマシン用に構成されているにも拘わらず、中間ゲストマネージャ１１０は、ゲストオペレーティングシステムを、非準仮想化ハイパーバイザを有するホストマシン又はハイパーバイザが全くないホストマシンでホストできるようにし得る。ゲストオペレーティングシステム１０２、１０６は、準仮想化ハイパーバイザに対する要求を発行し得、中間ゲストマネージャ１１０は、幾つかの実施形態では、ハイパーバイザではないにも拘わらず、それらのコールをインターセプトし得る。例えば、中間ゲストマネージャ１１０は、ＣＰＵ仮想化及び厳密なメモリセグメント化等の仮想マシンを開始し管理するために必要な機能を欠き得る。
【００２１】
ゲストオペレーティングシステム１０２、１０６は、ＸＥＮ又はＨＹＰＥＲ−Ｖを含むが、これらに限定されない様々な任意のホストハイパーバイザと互換性を有するように構成し得る。一実施形態では、ゲストオペレーティングシステム１０２及び１０６は準仮想化用に構成される。ゲストオペレーティングシステム１０２、１０６は、ハイパーコールを発行することによって特権付き動作の実行を要求し得る。
【００２２】
図３は、一実施形態によるネットワーク化コンピュータシステム構成の一例のコンテキストの一例を示す。クライアント３１０は、ゲストアプリケーション１０４、１０８等のゲストＯＳ１０２、１０６内のロジックの実行を制御し得る。マネージャ３２０は、中間ゲストマネージャ１１０内のロジックを制御し得る。ＶＤＣ３３０は、ハイパーバイザ１２２のロジックを含め、ホストマシン１２０内のロジックを制御し得る。
【００２３】
マネージャ３２０は、ＶＤＣ３３０及びクライアント３１０とは異なるエンティティであり得る。したがって、マネージャ３２０は、ＶＤＣ３３０若しくはクライアント３１０からのいかなる動作も必要とせずに、又はＶＤＣ若しくはクライアントによって制御されるシステム上のいかなるインストールもなく、サービスロジックを中間ゲストマネージャ１１０内に挿入して、ＶＤＣリソースのゲスト利用を強化し得る。
【００２４】
様々な実施形態によれば、図１、図２、図３に示される１つ又は複数の特徴は、省いてもよく、又は他の場所に配置されてもよい。
【００２５】
図４は、ゲストオペレーティングシステムを開始する方法の一例を示す。図４の方法は、中間ゲストマネージャ１１０内のゲストＯＳイニシエータ１１２において、１つ若しくは複数のコンピュータプログラム、他のソフトウェア要素、又は他の機能ロジックを使用して実施し得る。ブロック４０２において、中間ゲストマネージャ１１０におけるゲストＯＳイニシエータ１１２は、特定のゲストオペレーティングシステムの開始要求を受信する。要求は、異なるゲストオペレーティングシステム又は他の場所で動作するクライアントアプリケーションから受信し得る。
【００２６】
ブロック４０４において、ゲストＯＳイニシエータ１１２は、特定のゲストオペレーティングシステムに割り振るメモリ空間を決定する。ゲストＯＳイニシエータ１１２は、ホストマシン１２０によって仮想マシン１００に割り振られたメモリ部分全体に基づいて、割り振るメモリの部分を決定し得る。ゲストＯＳイニシエータ１１２は、中間ゲストマネージャ１１０に対して、仮想マシン１００に割り振られたメモリの部分を指定し得、仮想マシン１００に割り振られたメモリ空間の残りのうちの少なくとも一部を特定のゲストＯＳに割り振るべきであると判断し得る。
【００２７】
ブロック４０６において、ゲストＯＳイニシエータ１１２は、特定のゲストオペレーティングシステムを開始する。ゲストＯＳイニシエータ１１２は、特定のゲストＯＳに割り振られたメモリ空間を示し得る。ブロック４０８において、ゲストＯＳイニシエータ１１２は、ハイパーコール定義のセットを特定のゲストＯＳに提供し、ハイパーコール定義の少なくとも一部は、ゲストハイパーコールの少なくとも一部を中間マネージャに向けさせる。一実施形態では、ゲストＯＳイニシエータ１１２は、初期化中、専用ハイパーコールページを、ゲストＯＳに割り振られたメモリの部分に記憶することにより、ハイパーコール定義のセットを特定のゲストＯＳに提供する。ゲストＯＳは、ハイパーコールページで定義される特定のハイパーコールを実行することにより、ハイパーバイザ１２２に対してハイパーコールし得る。ハイパーコールページは、実行されると、ハイパーコール情報をハイパーバイザ１２２に通信する関数を定義し得る。専用ハイパーコールページは、１つ又は複数の変更ハイパーコール定義を含み得、変更されたハイパーコール定義は、ハイパーコール情報を、ハイパーバイザ１２２におけるハイパーコールハンドラ１２４の代わりに、中間ゲストマネージャ１１０におけるハイパーコールプロキシ１１４へ送信させる。専用ハイパーコールページを使用することにより、中間ゲストマネージャ１１０は、ゲストオペレーティングシステムによって開始された特定のハイパーコールをインターセプトし得る。中間ゲストマネージャ１１０によってインターセプトされた特定のハイパーコールは、異なる実施形態により様々であり得る。
【００２８】
一実施形態では、ハイパーコール定義のセットは、全てのハイパーコールを、ハイパーバイザ１２２の代わりに中間ゲストマネージャ１１０にルーティングさせ得る。そのような一実施形態では、ハイパーバイザ１２２は、ホストマシン１２０のゲストがハイパーコールによる動作又は情報を要求できないようにするハイパーバイザであり得る。
【００２９】
他の実施形態では、ハイパーコール定義のセットは、幾つかのシステムコールを中間ゲストマネージャ１１０にルーティングさせ、幾つかのハイパーコールを直接、ハイパーバイザ１２２にルーティングさせ得る。例えば、ハイパーコール定義は、メモリにアクセスする全ての要求を中間ゲストマネージャ１１０へ送信させ得る。中間ゲストマネージャは、ゲストによるメモリ関連要求が、中間ゲストマネージャ１１０又は他のゲストに属するメモリに影響してないことを保証し得る。
【００３０】
ハイパーコール定義はまた、挿入されたサービスに関連付けられたハイパーコールも中間ゲストマネージャ１１０へ送信させ得る。例えば、データ入力又は出力動作には、特定の中間サービスが関連付けられ得る。したがって、中間ゲストマネージャ１１０は、データの読み出し又は記憶を要求する全てのハイパーコールを中間ゲストマネージャ１１０へ送信させ得る。ハイパーコール定義は、メモリにアクセスせず、サービスに関連付けられていない要求等の他の要求を送信し、ハイパーバイザ１２２に直接送信させ得る。例えば、ハイパーコール定義のセットは、ＣＰＵ状態を特定するコール又はコンテキストを切り換えさせるコール等のプロセッサ管理に関連するコールが直接、ハイパーバイザ１２２へ送信させるべきであることを示し得る。
【００３１】
図５は、ゲストオペレーティングシステムからのハイパーコールを処理する方法の一例を示す。図５の方法の部分は、中間ゲストマネージャ１１０のハイパーコールプロキシ１１４、ゲストサービスロジック１１６、及びハイパーコール管理ロジック１１８における１つ又は複数のコンピュータプログラム、他のソフトウェア要素、又は他の機能ロジックを使用して実施し得る。
【００３２】
ブロック５０２において、ハイパーコールプロキシ１１４は、ゲストオペレーティングシステムからハイパーコールを受信する。ハイパーコールプロキシ１１４は、ハイパーコールにサービス、管理機能、又は両方が関連付けられているか否かを判断し得る。幾つかのハイパーコールには、サービス及び状態管理機能の両方が関連付けられ得る。他のハイパーコールには、サービスのみ、管理機能のみが関連付けられ得、又はこれらのいずれも関連付けられないことがある。
【００３３】
ブロック５０４において、ハイパーコールプロキシ１１４は、ハイパーコールに１つ又は複数のサービスが関連付けられていると判断する。ブロック５０６において、ハイパーコールプロキシ１１４は、ハイパーコールに関連付けられた１つ又は複数のサービスに対応するサービスロジックを実行させる。ハイパーコールプロキシ１１４は、ゲストサービスロジック１１６を呼び出すことにより、１つ又は複数の関連付けられたサービスを実行させ得る。
【００３４】
ブロック５０８において、ハイパーコールプロキシ１１４は、ハイパーコールに１つ又は複数のハイパーコール管理関数が関連付けられていると判断する。ブロック５１０において、ハイパーコールプロキシ１１４は、ハイパーコールに関連付けられた１つ又は複数のハイパーコール管理関数に対応するハイパーコール管理ロジックを実行させる。ハイパーコールプロキシ１１４は、ハイパーコール管理ロジック１１８の少なくとも一部を実行することにより、１つ又は複数の関連付けられたハイパーコール管理関数を実行させ得る。
【００３５】
管理関数は、１つ又は複数のゲストオペレーティングシステム及び中間ゲストマネージャ１１０が単一の仮想マシン内で実行できるようにするために、中間ゲストマネージャ１１０によって実行される関数であり得る。例えば、特定のハイパーコール管理関数には、メモリにアクセスするか、又はメモリに利用する全てのコールに関連付けられ得、特定のハイパーコール管理関数は、ハイパーコールによって利用又はアクセスされるメモリの特定の部分が、異なるゲストＯＳ又は中間ゲストマネージャ１１０によって使用されていないことを保証することであり得る。
【００３６】
サービスは、仮想マシン１００によって実行されて、ＶＤＣリソースのゲスト利用を強化する関数であり得る。中間ゲストマネージャ１１０によって実行される特定のサービスは、異なる実施形態により様々であり得る。
【００３７】
幾つかの実施形態では、中間ゲストマネージャ１１０は、データ暗号化サービスを実行する。ハイパーコールプロキシ１１４が、入力コールがデータの記憶又は検索であると判断することに応答して、ハイパーコールプロキシ１１４は、データ暗号化サービスロジックを呼び出し得る。データを記憶する要求の場合、データ暗号化サービスは、記憶ユニットに保存する前にデータを暗号化し得る。データを検索する要求の場合、データ暗号化サービスは、記憶ユニットからデータを検索した後、データを復号化し得、復号化されたデータを要求側ゲストオペレーティングシステムに戻し得る。中間ゲストマネージャ１１０は、暗号化及び復号化のための暗号鍵を記憶し得る。暗号鍵を中間ゲストマネージャ１１０に記憶することは、暗号鍵をゲストオペレーティングシステムに記憶するよりも安全であり得、その理由は、中間ゲストマネージャ１１０に記憶された暗号鍵には、ＲＡＭスクレーパ等のゲストオペレーティングシステムの悪意のある侵入者がアクセス不可能であり得るためである。同様に、他の機密情報は、セキュリティを高めるために、ゲストオペレーティングシステムの代わりに中間ゲストマネージャ１１０に記憶し得る。
【００３８】
別の実施形態では、中間ゲストマネージャ１１０は、リソースへのアクセス増大サービスを提供する。ゲストオペレーティングシステム１０２、１０６は、ＶＤＣ記憶ユニット及び／又は他の仮想マシン等の様々なリモートリソースと通信する必要があり得る。例えば、ゲストＯＳ１０２又は１０６は、ゲストアプリケーション１０４又は１０８によって利用されるゲストデータを記憶するＶＤＣ記憶ユニットと通信する必要があり得る。しかし、エンティティは、リモートリソースと通信するために、特別なソフトウェアをインストールし構成することが要求され得る。例えば、エンティティは、ｉＳＣＳＩプロトコルを使用してのみ、ＶＤＣ記憶ユニット又は仮想マシンと通信し得る。ｉＳＣＳＩプロトコルは、エンティティがリモートリソースと、あたかもローカルに取り付けられた装置であるかのように通信できるようにし得る。しかし、ｉＳＣＳＩプロトコルを介して通信を送信することは、送信側エンティティが、インストールされたｉＳＣＳＩイニシエータソフトウェアを有し、適宜構成される場合のみ可能であり得、インストール及び構成は面倒なプロセスであることが多い。従来の手法では、ｉＳＣＳＩイニシエータソフトウェアをインストールし構成するように、クライアントシステムを変更する必要がある。
【００３９】
ｉＳＣＳＩイニシエータソフトウェアが中間ゲストマネージャ１１０にインストールされるシステムでは、ゲストオペレーティングシステム１０２及び１０６は、いかなるソフトウェアもインストールする必要なく、ｉＳＣＳＩプロトコルを介してのみ通信を受け入れるリモートリソースと通信できるようにし得る。例えば、ゲストオペレーティングシステム１０２又は１０６は、中間ゲストマネージャ１１０におけるハイパーコールプロキシ１１４によってインターセプトされるローカルに取り付けられた記憶ユニットと通信する要求を含むハイパーコールを送信することにより、リモートＶＤＣ記憶ユニット又は仮想マシンと通信し得る。ハイパーコールをインターセプトすると、中間ゲストマネージャ１１０は、ゲストオペレーティングシステムの代理として、ｉＳＣＳＩプロトコルを使用してリモートリソースに通信を送信し得る。したがって、ゲストオペレーティングシステムは、あたかもローカルに取り付けられたリソースであるかのように、リモートリソースと通信し得る。中間ゲストマネージャ１１０はまた、ｉＳＣＳＩプロトコルを介して通信を受信することもでき、そのような通信を適切なゲストオペレーティングシステムに転送し得る。
【００４０】
幾つかの実施形態では、中間ゲストマネージャ１１０は、ゲストオペレーティングシステム１０２及び１０６が、ゲストオペレーティングシステムの代理として、様々なＶＤＣ記憶ユニット又は他のＶＤＣリソースを管理するリモート仮想マシンと通信できるようにする。外部仮想マシンは、２０１３年３月１５日に出願されたＳｔｏｒａｇｅ  Ｕｎｉｔ  Ｓｅｌｅｃｔｉｏｎ  Ｆｏｒ  Ｖｉｒｔｕａｌｉｚｅｄ  Ｓｔｏｒａｇｅ  Ｕｎｉｔｓという名称の米国特許出願第１３／８３７，３７５号明細書に記載されるように、リソースアドミニストレータ１０６であってもよく、又は２０１３年３月１５日に出願されたＡｕｔｏｍａｔｉｃ  Ｔｕｎｉｎｇ  ｏｆ  Ｖｉｒｔｕａｌ  Ｄａｔａ  Ｃｅｎｔｅｒ  Ｒｅｓｏｕｒｃｅ  Ｕｔｉｌｉｚａｔｉｏｎ  Ｐｏｌｉｃｉｅｓという名称の米国特許出願第１３／８３７，４５６号明細書に記載されるように、記憶装置アドミニストレータ１０６であってもよい。
【００４１】
中間ゲストマネージャ１１０は、ゲストオペレーティングシステムの代理として、リモート仮想マシンに通信を送信するか、又はリモート仮想マシンから通信を受信することにより、ゲストオペレーティングシステム１０２又は１０６が外部仮想マシンと通信できるようにし得る。ゲストオペレーティングシステム１０２、１０６によるＶＤＣリソースの利用は、リモート管理仮想マシンと通信することによって強化し得、これにより、様々なＶＤＣリソースの品質及び一貫性を改善させ得る。
【００４２】
一実施形態では、中間ゲストマネージャ１１０は、トラフィック制御サービスを提供する。トラフィック制御サービスは、ゲストオペレーティングシステム１０２又は１０６等の１つ又は複数のゲストオペレーティングシステムによって生成されるトラフィックの量又は速度を監視し制御し得る。ハイパーコールプロキシ１１４は、データを送信するか、又は検索する要求を含む、特定のゲストオペレーティングシステムからのハイパーコールを受信することに応答して、トラフィック制御サービスロジックを呼び出し得る。トラフィック制御サービスは、特定のゲストオペレーティングシステムから生成されるトラフィック量を監視し得、トラフィック量が、所与の時間期間中に許容されるトラフィックの特定の閾値量を超える場合、中間ゲストマネージャ１１０は、データを送信又は検索する特定のゲストオペレーティングシステムの能力を制限し得る。中間ゲストマネージャ１１０は、少なくとも部分的に、ゲストオペレーティングシステムによる１つ又は複数のデータ記憶要求又は検索要求の完了を阻止することにより、特定のゲストオペレーティングシステムがトラフィックを生成しないようにし得る。トラフィック量制限サービスは、個々のゲストオペレーティングシステムがリソースの不均衡シェアを利用しないこと、又はゲストオペレーティングシステムへの侵入者が、１つ若しくは複数のターゲットを大量の要求で溢れさせることによりサービスへの接続拒絶を実施させることに成功しないようにすることを保証し得る。
【００４３】
別の例として、中間ゲストマネージャ１１０は、アンチウィルスサービスを提供し得る。アンチウィルスサービスは、１つ若しくは複数のゲストオペレーティングシステムに割り振られるメモリの部分又はゲストオペレーティングシステムによって利用される様々なＶＤＣリソースをスキャンして、悪意のあるデータ又は侵入の他の証拠を検出し得る。幾つかの実施形態では、中間ゲストマネージャ１１０は、部分的に、メモリがゲストオペレーティングシステム１０２、１０６と中間ゲストマネージャ１１０との間で厳密に分割されないことに起因して、仮想マシン１００内のゲストオペレーティングシステムに割り振られたメモリをスキャンすることが可能である。アンチウィルスサービス等の幾つかのサービスのロジックは、ゲストオペレーティングシステムからのハイパーコールに応答して実行させるのではなく、自動的に実行し得る。
【００４４】
本発明を用いない場合には、仮想マシン１００内の各ゲストオペレーティングシステムにインストールする必要があり得るソフトウェアは、代わりに、中間ゲストマネージャ１１０内のサービスとして、単一のロケーションにインストールし得る。中間ゲストマネージャ１１０はゲストオペレーティングシステムのハイパーコールをインターセプトし得るため、この手法はなお、ソフトウェアの機能を別個の各ゲストオペレーティングシステムにさらされる。
【００４５】
例えば、アンチウィルスソフトウェアを中間ゲストマネージャ１１０にインストールすることにより、仮想マシン１００内の各ゲストオペレーティングシステムにアンチウィルスソフトウェアをインストールすることよりも優れた多くの利点を提供し得る。アンチウィルスソフトウェアは、中間ゲストマネージャ１１０内の単一のロケーションにインストールされるため、アンチウィルスソフトウェア開発者は、ゲストサービスロジック１１６内に配置されたアンチウィルスソフトウェアの単一のバージョンを更新するだけで、全てのゲストオペレーティングシステムに更新されたセキュリティを提供し得る。更に、アンチウィルスソフトウェアは、仮想マシン１００内のゲストオペレーティングシステムの１つ又は複数の異なるオペレーティングシステムと互換性を有する必要がない。アンチウィルスソフトウェアは、中間ゲストマネージャ１１０のオペレーティングシステムのみと互換性を有し得る。
【００４６】
幾つかの実施形態では、中間ゲストマネージャ１１０は、ハイパーコールによって要求された動作を実行させる。要求された動作は、関連付けられたサービス又はハイパーコール管理関数を実行することによって完了し得るか、又はサービス若しくは管理関数が実行された後に完了し得る。例えば、ハイパーコールが、メモリから読み出す要求である場合、ハイパーコールプロキシ１１４は、要求された情報をメモリから検索させ、要求ゲストオペレーティングシステムに返し得る。システムコールの受信をサポートするハイパーバイザの場合、ハイパーコールプロキシ１１４は、少なくとも部分的に、メモリ情報を要求するハイパーコールをハイパーバイザ１２２に送信することにより、要求された情報をメモリから検索させ、要求ゲストオペレーティングシステムに返し得る。ハイパーバイザ１２２がハイパーコールを受け入れない実施形態等の他の実施形態では、ハイパーコールプロキシ１１４は、少なくとも部分的に、ハイパーコールハンドラ１２４を介してホストマシン１２０のメモリにアクセスすることにより、要求された情報をメモリから検索させ、要求ゲストオペレーティングシステムに返し得る。
【００４７】
一実施形態では、中間ゲストマネージャ１１０は、メモリスナップショットサービスを提供する。サービスは、メモリスナップショットとして１つ又は複数のゲストオペレーティングシステム１０２、１０６によって利用されるメモリの各部分の状態又はゲストＯＳ１０２、１０６及び中間ゲストマネージャ１１０によって利用されるメモリの部分を含む仮想マシン１００によって利用されるメモリの各部分の状態を捕捉し得る。メモリスナップショットは、後に利用して、ゲストオペレーティングシステム１０２、１０６を、捕捉された状態と同じ状態で再開させるために利用してもよく、又は異なる目的で使用してもよい。
【００４８】
一実施形態では、メモリスナップショットを利用して、１つ又は複数のゲストオペレーティングシステムを異なる仮想マシン、異なるホストマシン、及び／又は異なるＶＤＣに移行させる。例えば、ホストマシン１２０は、第１のクラウドサービスプロバイダによってホストされ得、中間ゲストマネージャ１１０は、第２のクラウドサービスプロバイダによってホストされる新しい仮想マシンに、仮想マシン１００と同じ状態を持たせ得る。中間ゲストマネージャ１１０は、新しい仮想マシンのメモリの状態をメモリスナップショットによって識別される状態と同じにすることにより、新しい仮想マシンに仮想マシン１００と同じ状態を持たせ得る。中間ゲストマネージャの移行サービスは、ＶＤＣリソースの故障等のトリガー条件の検出に応答して、移行を自動的に発生させ得る。
【００４９】
置換中の仮想マシンは、記憶ユニット等の１つ又は複数のＶＤＣリソースにリンクし得る。中間ゲストマネージャ１１０は、新しい仮想マシンを同じＶＤＣリソースにリンクさせ得るか、又は新しいＶＤＣリソースのセットを、前のＶＤＣソースの複製として開始させ得る。中間ゲストマネージャ１１０は、複製ＶＤＣリソースを新しい仮想マシンにリンクさせ得る。
【００５０】
様々な実施形態によれば、図４、図５に示される方法の１つ又は複数のステップは、省いてもよく、又は異なる順序で実行してもよい。
【００５１】
３．０  実施のメカニズム  −  ハードウェア概説
図６は、本発明の一実施形態を実施し得るコンピュータシステム６００を示すブロック図である。コンピュータシステム６００は、情報を通信するバス６０２又は他の通信機構と、バス６０２に結合され、情報を処理するプロセッサ６０４とを含む。コンピュータシステム６００は、バス６０２に結合され、プロセッサ６０４によって実行される情報及び命令を記憶する、ランダムアクセスメモリ（ＲＡＭ）又は他のダイナミック記憶装置等のメインメモリ６０６も含む。メインメモリ６０６は、命令の実行中、プロセッサ６０４によって実行される一時変数又は他の中間情報の記憶にも使用し得る。コンピュータシステム６００は、バス６０２に結合され、プロセッサ６０４の静的情報及び命令を記憶する、読み取り専用メモリ（ＲＯＭ）６０８又は他のスタティック記憶装置を更に含む。磁気ディスク又は光ディスク等の記憶装置６１０が提供され、バス６０２に結合されて、情報及び命令を記憶する。
【００５２】
コンピュータシステム６００は、バス６０２を介して、陰極線管（ＣＲＴ）等のディスプレイ６１２に結合されて、情報をコンピュータユーザに表示し得る。英数字及び他のキーを含む入力装置６１４は、バス６０２に結合され、情報及びコマンド選択をプロセッサ６０４に通信する。別のタイプのユーザ入力装置は、方向情報及びコマンド選択をプロセッサ６０４に通信するとともに、ディスプレイ６１２上のカーソルの移動を制御する、マウス、トラックボール、又はカーソル方向キー等のカーソル制御装置６１６である。この入力装置は通常、装置が平面において位置を指定できるようにする、第１の軸（例えば、ｘ）及び第２の軸（例えば、ｙ）の２つの軸において２つの自由度を有する。
【００５３】
本発明は、本明細書に記載される技法を実施するコンピュータシステム６００の使用に関連する。本発明の一実施形態によれば、それらの技法は、プロセッサ６０４がメインメモリ６０６に含まれる１つ又は複数の命令の１つ又は複数のシーケンスを実行することに応答して、コンピュータシステム６００によって実行される。そのような命令は、記憶装置６１０等の別のマシン可読媒体からメインメモリ６０６に読み込み得る。メインメモリ６０６に含まれる命令シーケンスの実行は、プロセッサ６０４に本明細書に記載されるプロセスステップを実行させる。代替の実施形態では、ハードワイヤード回路を、本発明を実施するソフトウェア命令の代替として、又は代わりとして使用し得る。したがって、本発明の実施形態は、ハードウェア回路及びソフトウェアの任意の特定の組合せに限定されない。
【００５４】
「マシン可読媒体」という用語は、本明細書で使用される場合、マシンを特定の様式で動作させるデータを提供することに参加する任意の媒体を指す。コンピュータシステム６００を使用して実施される一実施形態では、様々なマシン可読媒体が、例えば、実行のために命令をプロセッサ６０４に提供することに関わる。そのような媒体は、記憶媒体及び伝送媒体を含むが、これらに限定されない多くの形態を取り得る。記憶媒体は、不揮発性媒体及び揮発性媒体の両方を含む。不揮発性媒体は、例えば、記憶装置６１０等の光ディスク又は磁気ディスクを含む。揮発性媒体は、メインメモリ６０６等のダイナミックメモリを含む。伝送媒体は、バス６０２を構成するワイヤを含め、同軸ケーブル、銅線、及び光ファイバを含む。伝送媒体は、無線波及び赤外線データ通信中に生成されるなどの音響波又は光波の形態をとることもできる。全てのそのような媒体は、媒体によって搬送される命令が、命令をマシンに読み込む物理的機構によって検出できるようにするように有形でなければならない。
【００５５】
マシン可読媒体の一般的な形態は、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、若しくは任意の他の磁気媒体、ＣＤ−ＲＯＭ、任意の他の光学媒体、パンチカード、紙テープ、パターンになった穴を有する任意の他の物理的媒体、ＲＡＭ、ＰＲＯＭ、及びＥＰＲＯＭ、フラッシュ−ＥＰＲＯＭ、任意の他のメモリチップ若しくはカートリッジ、後述する搬送波、又はコンピュータが読み取ることができる任意の他の媒体を含む。
【００５６】
様々な形態のマシン可読媒体が、実行のために、１つ又は複数の命令の１つ又は複数のシーケンスをプロセッサ６０４に搬送することに関わり得る。例えば、命令はまず、リモートコンピュータの磁気ディスクで搬送し得る。リモートコンピュータは、命令をダイナミックメモリにロードし、モデムを使用して電話回線を介して命令を送信することができる。コンピュータシステム６００にローカルなモデムは、電話回線上でデータを受信し、赤外線送信器を使用してデータを赤外線信号に変換することができる。赤外線検出器は、赤外線信号で搬送されるデータを受信することができ、適切な回路が、データをバス６０２上に配置することができる。バス６０２は、データをメインメモリ６０６に搬送し、メインメモリ６０６から、プロセッサ６０４は命令を検索して実行する。メインメモリ６０６によって受信される命令は、任意選択的に、プロセッサ６０４による実行前又は実行後に記憶装置６１０に記憶し得る。
【００５７】
コンピュータシステム６００は、バス６０２に結合される通信インタフェース６１８も含む。通信インタフェース６１８は、ローカルネットワーク６２２に接続されるネットワークリンク６２０への双方向データ通信結合を提供する。例えば、通信インタフェース６１８は、データ通信接続を対応するタイプの電話回線に提供する総合デジタル通信網（ＩＳＤＮ）カード又はモデムであり得る。別の例として、通信インタフェース６１８は、データ通信接続を互換性のあるＬＡＮに提供するローカルエリアネットワーク（ＬＡＮ）カードであり得る。無線リンクを実施することも可能である。任意のそのような実装形態では、通信インタフェース６１８は、様々なタイプの情報を表すデジタルデータストリームを搬送する電気信号、電磁信号、又は光信号を送受信する。
【００５８】
ネットワークリンク６２０は通常、１つ又は複数のネットワークを通して他のデータ装置へのデータ通信を提供する。例えば、ネットワークリンク６２０は、ローカルネットワーク６２２を通したホストコンピュータ６２４又はインターネットサービスプロバイダ（ＩＳＰ）６２６によって操作されるデータ機器への接続を提供し得る。そして、ＩＳＰ６２６は、現在では一般に「インターネット」６２８と呼ばれる世界規模パケットデータ通信ネットワークを通してデータ通信サービスを提供する。ローカルネットワーク６２２及びインターネット６２８は両方とも、デジタルデータストリームを搬送する電気信号、電磁信号、又は光信号を使用する。デジタルデータをコンピュータシステム６００に搬送するとともに、デジタルデータをコンピュータシステム６００から搬送する、様々なネットワークを通しての信号及び通信インタフェース６１８を通してのネットワークリンク６２０上の信号は、情報を輸送する搬送波の例示的な形態である。
【００５９】
コンピュータシステム６００は、ネットワーク、ネットワークリンク６２０、及び通信インタフェース６１８を通して、プログラムコードを含め、メッセージを送信し、データを受信することができる。インターネットの例では、サーバ６３０が、インターネット６２８、ＩＳＰ６２６、ローカルネットワーク６２２、及び通信インタフェース６１８を通してアプリケーションプログラムの要求コードを送信し得る。
【００６０】
受信されたコードは、受信時にプロセッサ６０４によって実行し得、且つ／又は後に実行するために記憶装置６１０又は他の不揮発性記憶装置に記憶し得る。このようにして、コンピュータシステム６００は、搬送波の形態でアプリケーションコードを取得し得る。
【００６１】
４．０  拡張及び代替
上記明細書において、実装形態毎に異なり得る多くの特定の詳細を参照して、本発明の実施形態について説明した。したがって、本発明がどのようなものであり、及び本発明として本出願人らによってどのようなものが意図されるかの唯一且つ排他的な指標は、後続するいかなる補正も含め、請求項が発行される特定の形態で、本願から発行される１組のそのような請求項である。そのような特許請求の範囲に含まれる用語について本明細書で明示的に記載されるいかなる定義も、特許請求の範囲で使用されるそのような用語の意味を支配するものとする。したがって、請求項において明示的な記載されない限定、要素、特性、特徴、利点、又は属性は、そのような請求項の範囲を決して限定しないものとする。したがって、本明細書及び図面は、限定の意味ではなく例示の意味で見なされるべきである。
【００６２】
以下、本発明の実施態様項について説明する。
［実施態様項１］
中間マネージャと同じマシンに配置されるゲストオペレーティングシステムから、前記中間マネージャとは別個の特定のハイパーバイザに向けられたハイパーコールを、前記中間マネージャにおいてインターセプトする工程、
前記中間マネージャは前記特定のハイパーバイザではなく、
特定の中間サービスに前記ハイパーコールが関連付けられていると判断する工程、
前記特定の中間サービスに関連付けられたサービス命令を実行させる工程、
を含み、
１つ又は複数の計算装置によって実行されることを特徴とする方法。
［実施態様項２］
前記ゲストオペレーティングシステム及び前記中間マネージャは、ホストマシンによってホストされ、かつ、ホストハイパーバイザによって管理される仮想マシン内で動作することを特徴とする実施態様項１に記載の方法。
［実施態様項３］
前記中間マネージャは、前記ホストマシンを制御するクラウドサービスプロバイダ及び前記ゲストオペレーティングシステム内のロジックの実行を制御するクライアントとは異なるマネージャによって制御されることを特徴とする実施態様項２に記載の方法。
［実施態様項４］
ハイパーコール関数定義のセットを前記ゲストオペレーティングシステムに提供する工程を更に含み、
少なくとも１つのハイパーコール定義は、対応するハイパーコールを前記中間マネージャへ送信させるものであり、
前記ハイパーコール関数定義のセットの特定のハイパーコール関数定義は、前記特定のハイパーコール関数定義に対応するハイパーコールが前記中間マネージャに送信されるべきであることを示すことを特徴とする実施態様項１に記載の方法。
［実施態様項５］
前記ゲストオペレーティングシステム及び前記中間マネージャは、ホストマシンによってホストされ、かつ、ホストハイパーバイザによって管理される仮想マシン内で動作し、
前記ハイパーコール関数定義のセットは、プロセッサ管理に関連する特定のハイパーコールに特定のハイパーコール関数定義を含み、かつ、前記特定のハイパーコール関数定義は、前記特定のハイパーコール関数定義に対応するハイパーコールが前記ホストハイパーバイザに直接送信されるべきものであることを示すことを特徴とする実施態様項４に記載の方法。
［実施態様項６］
前記ハイパーコールは、ローカルに取り付けられたリソースに対してデータを検索又は記憶する要求であり、かつ、前記サービス命令は、非ローカルに取り付けられたリソースに対してデータを検索又は記憶させることを特徴とする実施態様項１に記載の方法。
［実施態様項７］
前記ハイパーコールは、データの検索要求又は記憶要求であり、かつ、前記サービス命令は、前記データの暗号化又は復号化を実行させることを特徴とする実施態様項１に記載の方法。
［実施態様項８］
前記ハイパーコールは、データ検索要求又はデータ記憶要求であり、かつ、前記サービス命令は、前記ゲストオペレーティングシステムに適用可能なデータ制限に基づいて、前記ゲストオペレーティングシステムから送信される、又は、前記ゲストオペレーティングシステムに送信されるデータの量が許容されるか否かを判断させることを特徴とする実施態様項１に記載の方法。
［実施態様項９］
前記ゲストオペレーティングシステムは、仮想マシン内で動作する複数のゲストオペレーティングシステムの１つであることを特徴とする実施態様項２に記載の方法。
［実施態様項１０］
前記ゲストオペレーティングシステムは、前記中間マネージャのオペレーティングシステムとは異なるタイプのオペレーティングシステムであることを特徴とする実施態様項１に記載の方法。
［実施態様項１１］
前記ゲストオペレーティングシステムは、前記ホストハイパーバイザと直接動作可能であるように構成されないことを特徴とする実施態様項２に記載の方法。
［実施態様項１２］
１つ又は複数の命令シーケンスを含む非一時的コンピュータ可読記憶媒体において、前記１つ又は複数の命令シーケンスは、１つ又は複数のプロセッサによって実行されると、前記１つ又は複数のプロセッサに、
中間マネージャと同じマシンに配置されるゲストオペレーティングシステムから、前記中間マネージャとは別個の特定のハイパーバイザに向けられたハイパーコールを、前記中間マネージャにおいてインターセプトする工程、
前記中間マネージャは前記特定のハイパーバイザではなく、
特定の中間サービスに前記ハイパーコールが関連付けられていると判断する工程、
前記特定の中間サービスに関連付けられたサービス命令を実行させる工程、
を実行させ、
方法は、１つ又は複数の計算装置によって実行されることを特徴とする非一時的コンピュータ可読記憶媒体。
［実施態様項１３］
前記ゲストオペレーティングシステム及び前記中間マネージャは、ホストマシンによってホストされ、かつ、ホストハイパーバイザによって管理される仮想マシン内で動作することを特徴とする実施態様項１２に記載の非一時的コンピュータ可読記憶媒体。
［実施態様項１４］
前記中間マネージャは、前記ホストマシンを制御するクラウドサービスプロバイダ及び前記ゲストオペレーティングシステム内のロジックの実行を制御するクライアントとは異なるマネージャによって制御されることを特徴とする実施態様項１３に記載の非一時的コンピュータ可読記憶媒体。
［実施態様項１５］
前記１つ又は複数のプロセッサによって実行されると、前記１つ又は複数のプロセッサに、ハイパーコール関数定義のセットを前記ゲストオペレーティングシステムに提供する工程を実行させる命令シーケンスを備え、
少なくとも１つのハイパーコール定義は、対応するハイパーコールを前記中間マネージャへ送信させるものであり、
前記ハイパーコール関数定義のセットの特定のハイパーコール関数定義は、前記特定のハイパーコール関数定義に対応する前記ハイパーコールが前記中間マネージャに送信されるべきであることを示すことを特徴とする実施態様項１２に記載の非一時的コンピュータ可読記憶媒体。
［実施態様項１６］
前記ゲストオペレーティングシステム及び前記中間マネージャは、ホストマシンによってホストされ、かつ、ホストハイパーバイザによって管理される仮想マシン内で動作し、
前記ハイパーコール関数定義のセットは、プロセッサ管理に関連する特定のハイパーコールに特定のハイパーコール関数定義を含み、かつ、前記特定のハイパーコール関数定義は、前記特定のハイパーコール関数定義に対応するハイパーコールが前記ホストハイパーバイザに直接送信されるべきであることを示すことを特徴とする実施態様項１５に記載の非一時的コンピュータ可読記憶媒体。
［実施態様項１７］
前記ハイパーコールは、ローカルに取り付けられたリソースに対してデータを検索又記憶する要求であり、かつ、前記サービス命令は、非ローカルに取り付けられたリソースに対してデータを検索又は記憶させることを特徴とする実施態様項１２に記載の非一時的コンピュータ可読記憶媒体。
［実施態様項１８］
前記ハイパーコールは、データの検索要求又は記憶要求であり、かつ、前記サービス命令は、前記データの暗号化又は復号化を実行させることを特徴とする実施態様項１２に記載の非一時的コンピュータ可読記憶媒体。
［実施態様項１９］
前記ハイパーコールは、データ検索要求又はデータ記憶要求であり、かつ、前記サービス命令は、前記ゲストオペレーティングシステムに適用可能なデータ制限に基づいて、前記ゲストオペレーティングシステムから送信されるか、又は前記ゲストオペレーティングシステムに送信されるデータの量が許容されるか否かを判断させることを特徴とする実施態様項１２に記載の非一時的コンピュータ可読記憶媒体。
［実施態様項２０］
前記ゲストオペレーティングシステムは、仮想マシン内で動作する複数のゲストオペレーティングシステムの１つであることを特徴とする実施態様項１３に記載の非一時的コンピュータ可読記憶媒体。
［実施態様項２１］
前記ゲストオペレーティングシステムは、前記中間マネージャのオペレーティングシステムとは異なるタイプのオペレーティングシステムであることを特徴とする実施態様項１２に記載の非一時的コンピュータ可読記憶媒体。
［実施態様項２２］
前記ゲストオペレーティングシステムは、前記ホストハイパーバイザと直接動作可能であるように構成されないことを特徴とする実施態様項１３に記載の非一時的コンピュータ可読記憶媒体。
【図１】
0006388455.tif 000002
【図２】
0006388455.tif 000003
【図３】
0006388455.tif 000004
【図４】
0006388455.tif 000005
【図５】
0006388455.tif 000006
【図６】
0006388455.tif 000007