(57)【特許請求の範囲】
【請求項１】
複数の仮想マシンホストデバイスを含むネットワーク上に提供される情報を処理する方法であって、
前記複数の仮想マシンホストデバイスを監視するネットワークベース管理サーバから、前記ネットワーク上の前記複数の仮想マシンホストデバイスのうちの少なくとも１つへのネットワーク管理メッセージをインターセプトする段階と、
前記仮想マシンホストデバイス上で動作している少なくとも１つの仮想マシンに関連する前記情報を有するデータベースにアクセスする段階と、
前記ネットワーク管理メッセージに対する応答に必要な情報が前記データベース内で利用可能か否かを判断する段階と、
前記データベース内で利用可能な場合、前記データベース内の前記情報を利用して、前記少なくとも１つの仮想マシンに代わって前記ネットワーク管理メッセージに応答する段階と、
前記データベース内で利用不可能な場合、前記少なくとも１つの仮想マシンに前記ネットワーク管理メッセージに関するクエリーを発行する段階と
を備える方法。
【請求項２】
前記クエリーに対する前記少なくとも１つの仮想マシンからの応答を利用して、前記ネットワークベース管理サーバからの複数の前記ネットワーク管理メッセージに応答する段階
をさらに備える請求項１に記載の方法。
【請求項３】
前記ネットワークベース管理サーバからの前記複数のネットワーク管理メッセージに応答する前に、前記少なくとも１つの仮想マシンからの前記応答をフィルタ処理、修正、削除、及び再整理のうちの少なくとも１つを行う段階
をさらに備える請求項２に記載の方法。
【請求項４】
前記ネットワークベース管理サーバからの前記複数のネットワーク管理メッセージに応答する前に、前記少なくとも１つの仮想マシンからの前記応答を集約する段階
をさらに備える請求項２または３に記載の方法。
【請求項５】
前記仮想マシンホストデバイス上で動作している仮想マシンマネージャであって、前記仮想マシンに関連する前記情報を取得できる仮想マシンマネージャにインタフェースで接続して、前記仮想マシンに関連する前記情報を取得する段階
をさらにを備える請求項１から４のいずれかに記載の方法。
【請求項６】
前記情報は、前記複数の仮想マシンホストデバイスに関連する資源情報を含むネットワークベース管理情報である
請求項１から５のいずれかに記載の方法。
【請求項７】
前記情報は、前記複数の仮想マシンホストデバイスの温度情報である
請求項６に記載の方法。
【請求項８】
前記複数の仮想マシンホストデバイス上の複数の仮想マシンを、少なくとも１つの仮想マシンのクラスにグルーピングする段階と、
前記仮想マシンホストデバイス上で動作している前記少なくとも１つのクラスの仮想マシンに関連する前記情報にアクセスする段階と、
前記情報を利用して、前記少なくとも１つのクラスの仮想マシンに代わって前記ネットワーク管理メッセージに応答する段階と
をさらに備える請求項１から７のいずれかに記載の方法。
【請求項９】
複数の仮想マシンホストデバイスを含むネットワーク上に提供される情報を処理するシステムであって、
前記複数の仮想マシンホストデバイスのうちの少なくとも１つの上で動作する仮想マシンと、
前記複数の仮想マシンホストデバイスを監視するネットワークベース管理サーバから前記仮想マシンへの複数のネットワーク管理メッセージをインターセプトし、前記仮想マシンに関連する前記情報を有するデータベースにアクセスし、前記ネットワーク管理メッセージに対する応答に必要な情報が前記データベース内で利用可能か否かを判断し、前記データベース内で利用可能な場合、前記データベース内の前記情報を利用して、前記仮想マシンに代わって前記ネットワーク管理メッセージに応答し、前記データベース内で利用不可能な場合、前記少なくとも１つの仮想マシンに前記ネットワーク管理メッセージに関するクエリーを発行する管理仮想マシンと
を備えるシステム。
【請求項１０】
前記仮想マシンに関連する前記情報を取得できる仮想マシンマネージャをさらに備える請求項９に記載のシステム。
【請求項１１】
前記仮想マシンマネージャは、前記管理仮想マシンを含む
請求項１０に記載のシステム。
【請求項１２】
前記管理仮想マシンは、前記データベースから読み出された情報、及び前記仮想マシンへの複数の前記クエリーに対する応答で取得された情報のうちの１つを用いて、前記複数のネットワーク管理メッセージに応答する
請求項９から１１のいずれかに記載のシステム。
【請求項１３】
前記管理仮想マシンは、前記複数のネットワーク管理メッセージに応答する前に、前記複数のクエリーに対する前記応答で取得された前記情報に対して、フィルタ処理、修正、削除、及び再整理のうちの少なくとも１つを行う
請求項１２に記載のシステム。
【請求項１４】
前記管理仮想マシンは、前記ネットワークベース管理サーバからの前記複数のネットワーク管理メッセージに応答する前に、前記情報を集約する
請求項１２または１３に記載のシステム。
【請求項１５】
前記情報は、前記複数の仮想マシンホストデバイスに関連する資源情報を含むネットワークベース管理情報である
請求項１１に記載のシステム。
【請求項１６】
前記管理仮想マシンは、前記複数の仮想マシンホストデバイス上の複数の仮想マシンを、少なくとも１つの仮想マシンのクラスにグルーピングでき、前記仮想マシンホストデバイス上で動作している前記少なくとも１つのクラスの仮想マシンに関連する前記情報にアクセスでき、前記情報を利用して、前記少なくとも１つのクラスの仮想マシンに代わって前記ネットワーク管理メッセージに応答する
請求項９から１５のいずれかに記載のシステム。
【請求項１７】
仮想マシンホストデバイスによって提供される情報を処理する方法であって、
前記仮想マシンホストデバイス上の複数の仮想マシンを、少なくとも１つのクラスにグルーピングする段階と、
前記複数の仮想マシンホストデバイスを監視するネットワークベース管理サーバから前記少なくとも１つのクラスの複数の仮想マシンへのネットワーク管理メッセージをインターセプトする段階と、
前記少なくとも１つのクラスの複数の仮想マシンに関連する前記情報を有するデータベースにアクセスする段階と、
前記ネットワーク管理メッセージに対する応答に必要な情報が前記データベース内で利用可能か否かを判断する段階と、
前記データベース内で利用可能な場合、前記データベース内の前記情報を利用して、前記少なくとも１つのクラスの仮想マシンに代わって前記ネットワーク管理メッセージに応答する段階と、
前記データベース内で利用不可能な場合、前記少なくとも１つのクラスの複数の仮想マシンに前記ネットワーク管理メッセージに関するクエリーを発行する段階と
を備える方法。
【請求項１８】
前記クラスは、オペレーションシステムの種類に基づくクラス、及びアプリケーションの種類に基づくクラスのうちの１つを含む
請求項１７に記載の方法。
【請求項１９】
複数の仮想マシンホストデバイスを含むネットワーク上に提供される情報を処理するシステムであって、
前記複数の仮想マシンホストデバイスのうちの少なくとも１つの上で動作する１つのクラスの複数の仮想マシンと、
前記複数の仮想マシンホストデバイスを監視するネットワークベース管理サーバから前記クラスの複数の仮想マシンへの複数のネットワーク管理メッセージをインターセプトし、前記クラスの複数の仮想マシンに関連する前記情報を有するデータベースにアクセスし、前記ネットワーク管理メッセージに対する応答に必要な情報が前記データベース内で利用可能か否かを判断する段階と、前記データベース内で利用可能な場合、前記データベース内の前記情報を利用して、前記クラスの複数の仮想マシンに代わって前記ネットワーク管理メッセージに応答し、前記データベース内で利用不可能な場合、前記少なくとも１つのクラスの複数の仮想マシンに前記ネットワーク管理メッセージに関するクエリーを発行する管理仮想マシンと
を備えるシステム。
【請求項２０】
前記複数の仮想マシンのクラスは、オペレーションシステムの種類に基づく複数の仮想マシンのクラス、及びアプリケーションの種類に基づく複数の仮想マシンのクラスのうちの少なくとも１つを有する
請求項１９に記載のシステム。
【請求項２１】
仮想マシンホストデバイス上に存在する管理仮想マシンであって、
前記仮想マシンホストデバイス上に存在し、前記複数の仮想マシンホストデバイスを監視するネットワークベース管理サーバから複数の仮想マシンへの複数のネットワーク管理メッセージをインターセプトするモジュールと、
前記複数の仮想マシンに関連する情報をデータベースから読み出せるインタフェースと、
前記ネットワーク管理メッセージに対する応答に必要な情報が前記データベース内で利用可能か否かを判断するモジュールと、
前記データベース内で利用可能な場合、前記データベース内の前記情報を利用して、前記複数の仮想マシンに代わって前記複数のネットワーク管理メッセージに応答するモジュールと、
前記データベース内で利用不可能な場合、前記仮想マシンに前記ネットワーク管理メッセージに関するクエリーを発行するモジュールと
を備える管理仮想マシン。
【請求項２２】
前記情報は、ネットワークベース管理情報であり、前記仮想マシンホストデバイスに関連する資源情報を含む
請求項２１に記載の管理仮想マシン。
【請求項２３】
前記インタフェースは、前記仮想マシンホストデバイス上で動作している仮想マシンマネージャであって、前記仮想マシンに関連する前記情報を取得できる仮想マシンマネージャから前記情報を読み出せる
請求項２１または２２に記載の管理仮想マシン。
【請求項２４】
コンピュータを、
複数の仮想マシンホストデバイスを監視するネットワークベース管理サーバから、ネットワーク上の前記複数の仮想マシンホストデバイスのうちの少なくとも１つへのネットワーク管理メッセージをインターセプトする手段、
前記仮想マシンホストデバイス上で動作している少なくとも１つの仮想マシンに関連する情報を有するデータベースにアクセスする手段、
前記ネットワーク管理メッセージに対する応答に必要な情報が前記データベース内で利用可能か否かを判断する手段、
前記データベース内で利用可能な場合、前記データベース内の前記情報を利用して、前記少なくとも１つの仮想マシンに代わって前記ネットワーク管理メッセージに応答する手段、及び
前記データベース内で利用不可能な場合、前記少なくとも１つの仮想マシンに前記ネットワーク管理メッセージに関するクエリーを発行する手段
として機能させるプログラム。
【請求項２５】
前記情報は、前記複数の仮想マシンホストデバイスの温度情報である
請求項２４に記載のプログラム。
【請求項２６】
前記コンピュータを、
前記クエリーに対する前記少なくとも１つの仮想マシンからの応答を利用して、前記ネットワークベース管理サーバからの複数の前記ネットワーク管理メッセージに応答する手段
としてさらに機能させる請求項２４または２５に記載のプログラム。
【請求項２７】
前記コンピュータを、
前記ネットワークベース管理サーバからの前記複数のネットワーク管理メッセージに応答する前に、前記少なくとも１つの仮想マシンからの前記応答をフィルタ処理、修正、削除、及び再整理のうちの少なくとも１つを行う手段
としてさらに機能させる請求項２６に記載のプログラム。
【請求項２８】
前記コンピュータを、
前記ネットワークベース管理サーバからの前記ネットワーク管理メッセージに応答する前に、前記少なくとも１つの仮想マシンからの前記応答を集約する手段
としてさらに機能させる請求項２６または２７に記載のプログラム。
【請求項２９】
前記コンピュータを、
前記仮想マシンホストデバイス上で動作している仮想マシンマネージャであって、前記仮想マシンに関連する前記情報を取得できる仮想マシンマネージャにインタフェースで接続して、前記仮想マシンに関連する前記情報を取得する手段
としてさらに機能させる請求項２４から２８のいずれかに記載のプログラム。
【請求項３０】
前記コンピュータを、
前記複数の仮想マシンホストデバイス上の複数の仮想マシンを、少なくとも１つの仮想マシンのクラスにグルーピングする手段、
前記仮想マシンホストデバイス上で動作している前記少なくとも１つのクラスの仮想マシンに関連する前記情報にアクセスする手段、及び
前記情報を利用して、前記少なくとも１つのクラスの仮想マシンに代わって前記ネットワーク管理メッセージに応答する手段
としてさらに機能させる請求項２４から２９のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークベースの資源管理の分野に関し、特に、ネットワークベース管理におけるプロキシ、情報集約、及び仮想マシン情報の最適化のための方法、装置、及びシステムに関する。
【背景技術】
【０００２】
企業の成長及び技術の進歩に伴い、企業ネットワークの管理の課題は、ますます困難になっている。より具体的には、資源管理と同様に、例えば、ネットワークのアーキテクチャ及び発展等のネットワーク管理及びシステム管理の様々な側面は、ますます複雑になっている。結果として、管理の複雑さ及びコスト、並びに消費電力及び一般的なネットワークメンテナンスを低減するために、複数の統合サーバの重大な傾向がある。なお、本出願に対応する米国または欧州の出願の審査において下記の文献が発見されている。
【特許文献１】米国特許第６４９６８４７号明細書
【特許文献２】米国特許第６１１２２７９号明細書
【非特許文献１】BARRETT R et al: "Intermediaries: new places for producing and manipulating Web content" COMPUTER NETWORKS AND ISDN SYSTEMS, NORTH HOLLAND PUBLISHING, AMSTERDAM, NL, vol.30, no. 1-7, April 1998, pages 509-518, XP 004121397 ISSN: 0169-7552
【図面の簡単な説明】
【０００３】
本発明は、一例によって説明され、添付の図面の形態に制限されない。図面において、同様の参照番号は、同様の要素を示す。
【０００４】
【図１】代表的な仮想マシンホストの一例を示す。
【０００５】
【図２】複数の仮想マシンホストを含むネットワーク上の代表的なリモートネットワークベース管理コンソールを示す。
【０００６】
【図３】本発明の一実施形態の概観を示す。
【０００７】
【図４】本発明の一実施形態を示すフローチャートである。
【発明を実施するための最良の形態】
【０００８】
本発明の複数の実施形態は、ネットワークベース管理におけるプロキシ、情報集約、及び仮想マシン資源情報の最適化のための方法、装置、及びシステムを提供する。本明細書において、"ネットワークベース管理"という用語は、ネットワーク資源（即ち、例えば、複数の携帯電話、複数の携帯端末、複数のパーソナルデータアシスタント（ＰＤＡ）、複数のラップトップコンピュータ、複数のデスクトップコンピュータ、複数のワークステーション、複数のサーバ、複数のメインフレーム等、及びこれらのデバイス上で実行されるソフトウェア（例えば、複数のオペレーティングシステム及び複数のアプリケーション）等のネットワークに接続された複数の資源のみならず、例えば、ネットワークを構成する複数のルータ等の複数の資源）の様々な種類の管理を含む。さらに、本明細書において、本発明の"１つの実施形態"又は"一実施形態"という言及は、その実施形態に関連して説明される構造又は特性である特別な特徴が、本発明の少なくとも１つの実施形態に含まれることを意味する。したがって、"１つの実施形態において"、"１つの実施形態によれば"という表現、又は、本明細書の中の様々な箇所における類似の表現は、必ずしも全て同一の実施形態について言及しているわけではない。
【０００９】
仮想化技術は、１つのホスト上で複数のパーティションに分離された安全を提供することによって、複数の企業が複数のサーバを統合することを可能にする。図１は、代表的な仮想マシンホストデバイス（"デバイス１００"）の一例を示す。図示されるように、仮想マシンモニタ（"ＶＭＭ１５０"）は、一般的にデバイス上で動作し、（"仮想マシン"とも呼ばれる）デバイスプラットホームの１つの（複数の）抽象概念を他のソフトウェアに提供する。ＶＭＭ１５０が"ハイパーバイザー"とも呼ばれることが、当業者によく知られている。２つの仮想マシンパーティション（"ＶＭ１０５"及び"ＶＭ１１０"、以下"仮想マシン"と総称する）だけが図示されているが、これら複数の仮想マシンは、単に一例にすぎず、追加の複数の仮想マシンがホストに追加されてもよい。ＶＭＭ１５０は、ソフトウェア、ハードウェア、ファームウェア、及び／又はそれらの組み合わせに実装されてもよい（例えば、ＶＭＭは、オペレーションシステムによってホストされてもよい）。
【００１０】
ＶＭ１０５及びＶＭ１１０は、それら独自の"ゲストオペレーティングシステム"（即ち、ＶＭＭ１５０によってホストされるオペレーティングシステム）及び他のソフトウェア（概念的に"ゲストソフトウェア１２５"及び"ゲストソフトウェア１３０"として図示されるゲストオペレーティングシステム及び他のソフトウェア、以下"ゲストソフトウェア"を総称される）を実行する内蔵型プラットホームとしてそれぞれ機能してもよい。それぞれのゲストソフトウェアは、仮想マシンよりはむしろ専用のコンピュータ上で実行しているように動作する。つまり、それぞれのゲストソフトウェアは、様々なイベントを制御してもよく、複数のハードウェア資源へのアクセスを有してもよい。実際に、ＶＭＭ１５０は、複数のイベント及び複数のハードウェア資源を根本的に制御し、また、必要に応じて複数の資源をゲストソフトウェアに割り当てる。
【００１１】
それぞれの仮想マシンは、また複数のレベル、又は複数の仮想マシンの"再帰（recursion）"を含んでもよい。言い換えれば、それぞれの仮想マシンは、"ゲストＶＭＭ"（即ち、ＶＭＭ１５０によってホストされるＶＭＭ）、及び他のソフトウェアを実行してもよい。したがって、例えば、ＶＭ１０５は、その独自の複数の仮想マシンとの組み合わせで、別のＶＭＭをホストしてもよく、一方で、ＶＭ１１０は、オペレーティングシステムをホストしてもよい。複数の仮想マシン及びＶＭＭの複数の再帰（recursion）が任意の設定において採用されることは、当業者によって容易に理解される。
【００１２】
現在、複数のネットワーク資源を監視及び管理するための、ネットワークベース管理ソフトウェアの様々な種類が存在する。図２は、複数のネットワーク管理メッセージを生成可能なネットワークベース管理コンソール（"ネットワーク管理サーバコンソール２００"）と、ホストデータプロセッシングデバイス（"デバイス１００"）と、デバイス１００によってホストされる複数の仮想マシン（例えば、ＶＭ１０５及びＶＭ１１０）とを含む代表的なネットワーク（"ネットーワーク２５０"）を示す。デバイス１００は、ネットワーク２５０を介して、他の複数の物理ホスト（"デバイス２０５"、"デバイス２１０"、及び"デバイス２１５"）に接続される。現在、利用可能なネットワークベース管理ソフトウェアは、ネットワーク上のそれぞれの仮想マシンを独立した構成要素として（多くの場合、分離されたホストとして）取り扱う。したがって、ネットワークが、Ｎ個の仮想マシンをそれぞれ実行するＭ個のホストデバイスを含む場合、ネットワーク管理サーバコンソール２００は、ネットワークがＭ×Ｎ個の分離された構成要素で構成されていると見なす。Ｍ×Ｎ個の仮想的な構成要素を有する複数のネットワークを管理することが、非常に複雑で、顕著な非能率を生じさせることは、当業者によって理解される。例えば、複数のネットワーク管理メッセージは、１つのホストデバイスへ、また１つのホストデバイスから送信される。即ち、デバイス１００上で動作している複数の仮想マシンのそれぞれに対して１つ送信される。複数のネットワーク管理メッセージは、これらに限定されないが、複数のシンプルネットワーク管理プロトコル（"ＳＮＭＰ"）メッセージ、複数のウェブベースエンタープライズ管理（"ＷＥＢＭ"）メッセージ、複数のインテリジェントプラットホーム管理インタフェース（"ＩＰＭＩ"）メッセージ、複数のコモンインタフェースモデル（"ＣＩＭ"）メッセージ、及び他の複数の分散型管理プロトコルメッセージを含む。
【００１３】
一例において、複数のネットワークメッセージに含まれる情報は、それぞれのＶＭで複製／共有され、及び／又はＶＭＭに知られてもよい。ＶＭＭは、例えば、プラットホームシステム時間若しくは地理的な位置を決定する、又はそれぞれの仮想マシンが利用可能なメモリの量を決定する。他の例において、複数のネットワーク管理メッセージは、仮想マシン環境において外見的には不適切又は利用不可能であってよいが、ネットワークベース管理ソフトウェア（例えば、複数の仮想マシンの温度に関するクエリー）に関係がある。ＶＭＭは、プラットホームの様々な要素を仮想化したり、仮想化しなかったりするので、仮想マシン内のいくつかの情報は信頼性がない。したがって、例えば、ＣＰＵの温度について問い合わせされた場合、デバイス１００上のそれぞれの仮想マシンは、同一の情報（即ち、デバイス１００の温度）で応答してもよく、また、その情報が、仮想マシン環境において不適切又は利用不可能であれば、複数の仮想マシンのいずれも応答しなくてもよい。例えば、デバイス１００は、安全保護のため、温度情報を複数の仮想マシンに提供しないように設定されてもよく、また、ＶＭＭは、複数の仮想マシンに複数のエミュレートデバイスについての情報を提供してもよい。一方で、複数のネットワーク管理機能を正確に実行するために、ネットワークベース管理ソフトウェアは、ネットワークの状態についての正確な情報を必要とする。したがって、例えば、実際のハードウェアデバイスのハードウェア要素についてリコールがあった場合、ネットワークベース管理ソフトウェアは、ネットワーク上に存在するハードウェアの物理的なバージョンを識別する必要がある（即ち、単にソフトウェアエミュレートバージョンについての情報だけでなく、複数のソフトウェアエミュレートバージョンは、ハードウェア構成要素の障害のような程度まで、免除されてもよい）。逆に、認可されたソフトウェアドライバを供給するために、物理的なデバイス及び仮想的なデバイスの両方を特定することが必要であってもよい。
【００１４】
ネットワーク管理メッセージが送られた場合、応答するために、それぞれの仮想マシンは、コンテキストスイッチを"イン"にされる必要がある。より具体的には、デバイス１００が、特定のＶＭ上のゲストソフトウェアに対するメッセージを受信した場合、それぞれのＶＭは、応答するために、アクティブＶＭになる必要がある。即ち、ＶＭに関連する状態情報は、ＶＭを実行するために、メモリ及び／又はディスクから読み出される。このプロセスは、デバイス１００上のそれぞれの管理可能なＶＭに対して繰り返し継続してもよい。複数のコンテキストスイッチは、高価であり、システムのパフォーマンスを低下させる。特に、管理される必要がある仮想マシン及び／又はメッセージの数が大きい場合に問題となる。デバイス１００上の複数の仮想マシンは、様々な状態（例えば、遊休状態、休止状態等）になるので、特定の複数のコンテキストスイッチは、十分な時間、並びに作動状態及び／又は実行状態に戻るための力を必要とする。結果として、複数の仮想マシンは、高価な複数のコンテキストスイッチ、及び他の復旧費用を避けるために、遊休状態及び／又は一時停止状態に維持される（例えば、休止状態の保存画像を解凍する）。
【００１５】
本発明の一実施形態によれば、専用の仮想マシン（以下、"管理仮想マシン"と称する）は、ホストデバイス上の複数の仮想マシンの全て又はいくつかのサブセットに対するプロキシとして動作する。ホストデバイス上の管理仮想マシンは、ネットワークベース管理ソフトウェアからの複数のメッセージに応答して、情報集約、及び／又は仮想マシンネットワーク資源情報の最適化をする。本発明の複数の実施形態は、様々な仮想マシン環境の中で実施される。例えば、インテルコーポレーションが提供するハードウェア実装、ＶＭウェアコーポレーションが提供するＶＭウェア等のソフトウェア環境、マイクロソフトコーポレーションが提供する仮想ＰＣ／仮想サーバ、及び／又は現在開発中の"Ｖサーバ"（Ｖｅｒｓｉｏｎ０．２８、２００３年１２月）、"Ｄｅｎａｌｉ"（２００２年、Ｄｅｐａｒｔｍｅｎｔ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  ａｎｄ  Ｅｎｇｉｎｅｅｒｉｎｇ、Ｔｈｅ  Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｗａｓｈｉｎｇｔｏｎ）、"Ｘｅｎ"（２００３年、Ｃｏｍｐｕｔｅｒ  Ｌａｂｏｒａｔｏｒｙ、Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｃａｍｂｒｉｄｇｅ）等の他の新型の仮想化環境の中で実施される。
【００１６】
１つの実施形態において、管理仮想マシンは、"ＶＭＭアウェア"又は"仮想化アウェア"である。即ち、管理仮想マシンは、仮想マシン環境の中で動作していることを認識し（判断できてもよく、及び／又は情報を与えられてもよい）、そして、例えばホストデバイス上で動作している複数の仮想マシンの状態についてのクエリー等の様々な管理タスクを遂行するために、ＶＭＭと共同して動作する。１つの実施形態において、管理仮想マシンは、ホストデバイス上の他の複数の仮想マシンに与えられない特権を持つ仮想マシンとして動作してもよい。他の実施形態において、管理仮想マシンの機能は、本発明の複数の実施形態の精神から逸脱しない範囲において、ＶＭＭ、及び／又はＶＭＭをホスト可能なオペレーティングシステムに直接的に統合されてもよい。
【００１７】
図３は、本発明の一実施形態の概観を示す。図示されるように、ホストデバイス（"デバイス３００"）は、ネットワーク２５０を介して、リモートネットワーク管理サーバ２００に接続される。デバイス３００は、高度ＶＭＭ３５０によって管理される複数の仮想マシンを順にホストする。即ち、ＶＭＭは、本発明の複数の実施形態を実装するように構成される。以下で、高度ＶＭＭ３５０をより詳細に説明する。本発明の１つの実施形態において、ＶＭ３０５及びＶＭ３１０は、代表的な複数の仮想マシンであり、一方で、デバイス３００上の第３の仮想マシン（"管理ＶＭ３２５"として図示される）は、管理仮想マシンに指定され、ホスト上の他の複数の仮想マシンのプロキシとして動作する。管理ＶＭ３２５をＶＭ３０５及びＶＭ３１０のプロキシとして動作させることによって、複数の管理メッセージよる単なるオーバヘッドの複数のコンテキストスイッチの数を減らすことができる。
【００１８】
本発明の１つの実施形態において、管理ＶＭ３２５は、デバイス３００上の全ての仮想マシンに関連する情報を有するデータベース"（"データベース３３０"）を含んでもよい。したがって、例えば、データベース３３０は、ＶＭ３０５及びＶＭ３１０に関連する、様々な種類のネットワーク及びシステムの管理情報を含んでもよく、管理ＶＭ３２５は、定期的に、データベース内の情報をアップデートしてもよい。データベース３３０が管理ＶＭ３２５内に含まれるように、図３に図示されているが、本発明の複数の実施形態は、そのように限定されない。他の実施形態において、データベース３３０は、管理ＶＭ３２５が利用可能な様々な他の位置に存在してもよい。
【００１９】
リモート管理コンソール２００が、ネットワーク管理メッセージをデバイス３００に発行した場合、そのメッセージは、管理ＶＭ３２５にインターセプトされてもよく、管理ＶＭ３２５は、そのメッセージに基づいて、適切な処理を決定してもよい。したがって、例えば、１つの実施形態において、クエリーに対する応答に適切な情報が、データベース３３０内で利用可能な場合、管理ＶＭ３２５は、ＶＭ３０５及び／又は３１０に代わって、この情報を用いて応答してもよい。他方で、その情報が利用不可能な場合、管理ＶＭ３２５は、複数の仮想マシンのそれぞれから、関連する情報を読み出してもよい。高度ＶＭＭ３５０及び／又は管理ＶＭ３２５は、本発明の他の複数の実施形態にしたがって、様々な方法で構成されてもよい。したがって、例えば、高度ＶＭＭ３５０及び／又は管理ＶＭ３２５は、１つ以上の仮想マシンに、インターセプトされた複数のネットワーク管理メッセージを送ってもよい。他の方法としては、上述のように、管理ＶＭ３２５は、複数の仮想マシンに代わって応答して（又は、応答しなくて）もよい。さらに、１つ以上の仮想マシンに対するインターセプトされたメッセージは、管理ＶＭ３２５によって、フィルタ処理され、修正され（例えば、編集され及び／又は再整理され）、及び／又は押しつぶされ（削除され）てもよい。
【００２０】
様々な実施形態による応答は、また異なってもよい。１つの実施形態において、管理ＶＭ３２５は、情報集約された１つの応答を提供してもよく、一方、他の実施形態において、適切な場合（例えば、仮想マシンにつき１つ）には、複数の応答が提供されてもよい。また、管理ＶＭ３２５は、複数の仮想マシンから発信される複数のメッセージをインターセプトし、その後に、フィルタ処理、修正、押しつぶし（削除）、及び／又はそれらを送信する前に、それら複数のメッセージを情報集約してもよい。後者は、例えば、先のメッセージ、及び／又は、例えば、リモートネットワーク管理サーバ２００へのハートビート（"私は生きています"）ネットワークメッセージ等の、複数の仮想マシンのそれぞれによって生成された複数のメッセージに応答して発生してもよい。本発明の複数の実施形態の精神から逸脱しない範囲において、管理ＶＭ３２５が様々な他の方法で構成されてもよいことは、当業者によって容易に理解される。
【００２１】
１つの実施形態においては、管理ＶＭ３２５は、デバイス３００上の複数の仮想マシンを、様々な"複数のクラス"に分割し、この情報に基づいて複数のネットワーク管理メッセージに応答してもよい。したがって、例えば、管理ＶＭ３２５は、それぞれの仮想マシンが実行しているオペレーティングシステム（例えば、Ｗｉｎｄｏｗｓ２０００、ＷｉｎｄｏｗｓＸＰ、Ｌｉｎｕｘ、等）に基づいて、複数の仮想マシンを複数のクラスに分割してもよい。本実施形態によれば、管理ＶＭ３２５は、複数の仮想マシンの１つ以上のクラス、及び又は、物理的なマシンに代わって応答してもよい。本発明の複数の実施形態の精神を逸脱しない範囲において、他のそのような複数のクラス又は複数のグループが定義されてもよい。
【００２２】
１つの実施形態において、情報は、リモート管理コンソール２００に直接提供されてもよい。他の方法としては、上述のように、管理ＶＭ３２５は、リモート管理コンソール２００に応答する前に、情報を集約してもよい。したがって、例えば、デバイス３００上の全ての仮想マシンの物理的なハードウェアは、そのハードウェアに関連する複数のメッセージ（例えば、ＣＰＵの温度を報告するクエリー）が同一であるので、他の複数の仮想マシンから関与されることなく、管理ＶＭ３２５によって処理されてもよい。そのため、リモート管理コンソール２００は、他の方法（即ち、同一の物理ホスト上のそれぞれの仮想マシンから応答を受ける方法）より、ネットワークの状態について正確な情報を受けることができる。
【００２３】
１つの実施形態において、高度ＶＭＭ３５０は、管理ＶＭ３２５に、デバイス３００上の複数の仮想マシンのいずれか行き、又はデバイス３００自体行きの複数の管理メッセージをトラップさせるべく、インタフェース及び／又は"複数のフック"を含んでもよい。より具体的には、インタフェースは、管理ＶＭ３２５に、スヌープ（即ち、モニタ）させ、及び／又は高度ＶＭＭ３５０に問い合わせ、及び／又はデバイス３００上のそれぞれの仮想マシンに代えて複数の処理を行う。したがって、例えば、インタフェースは、デバイス３００に入ってくる複数のネットワーク管理メッセージをインターセプトする能力、及びデバイス３００に代えて応答する能力を含んでもよい（例えば、デバイス３００上で動作しているオペレーションシステムへのネットワーク管理メッセージをインタフェース経由で取得してもよく、管理ＶＭ３２５にデバイス３００に代えて応答させてもよい）。複数のインタフェース及び／又は"複数のフック"の概念は、当業者によく知られており、さらに、本発明の複数の実施形態を不必要に分かり難くしないために、ここではその記載を省略する。
【００２４】
本発明の複数の実施形態の精神から逸脱しない範囲において、ここで記載されたプロキシの機能が様々な方法で実装されることが、当業者によって容易に理解される。したがって、例えば、上記の説明は、デバイス３００上の１つの管理ＶＭ３２５を前提としたが、他の実施形態において、デバイス３００は、上述したプロキシの機能を提供するために連動して動作する、複数の管理仮想マシン及び／又は複数のパーティションを含んでもよい。さらに他の実施形態において、プロキシの機能は、高度ＶＭＭ３５０に実装されてもよい。
【００２５】
図４は、本発明の一実施形態のフローチャートである。以下の動作は、逐次プロセスとして説明されるが、複数の動作の中の多くは、実際には、並行及び／又は同時に実行されてよい。さらに、本発明の複数の実施形態の精神から逸脱しない範囲において、複数の動作に順は、再配列されてよい。４０１において、ネットワークベース管理サーバは、複数の仮想マシンをホストする１つのホストデバイスに、１つの管理メッセージを送信する。４０２において、ネットワーク管理メッセージは、ホストデバイス上の管理仮想マシンにインターセプトされる。４０３において、管理仮想マシンは、データベース内でその情報が管理仮想マシンに利用可能か（そして、アップデートされているか、即ち、コヒーレントであるか）否かを判断するために、メッセージを調査する。利用可能な場合、４０４において、管理仮想マシンは、ホスト上で（複数の）仮想マシンに代わって適切に処理する（例えば、応答する、応答しない、複数の仮想マシンのうちの１つ以上にメッセージを送る、等）。一方で、ローカルのデータベースが情報を含まない、及び／又は情報が期限切れである場合、４０５において、管理仮想マシンは、ホスト上のそれぞれの仮想マシンにクエリーを発行する。１つの実施形態において、複数の仮想マシンの一部だけが、問い合わされてもよい。管理仮想マシンは、４０６において、クエリーに対する複数の応答を収集し、そして、４０７において、収集された複数の応答を用いてデータベースをアップデートする。管理仮想マシンは、自身のポリシーに基づいて、収集された情報を集約するか否かを決定する。複数の応答が情報集約されるべきであることをポリシーが示す場合、４０９において、複数の応答は、４０４におけるネットワークベース管理サーバに適切に応答する前に、情報集約される。一方で、ポリシーが複数の応答を情報集約することを要求しない場合、ネットワーク管理サーバは、４０４において、複数の仮想マシンに代わって、適切に処理する。
【００２６】
本発明の複数の実施形態によるホストは、様々なコンピュータデバイス上に実装されてもよい。本発明の一実施形態によれば、複数のコンピュータデバイスは、本発明の一実施形態を達成するための複数の命令を実行可能な様々な構成要素を含んでもよい。例えば、複数のコンピュータデバイスは、少なくとも１つの機械アクセス可能な媒体を含み、及び／又は少なくとも１つの機械アクセス可能な媒体に結合されてもよい。本明細書において、"機械（マシン）"は、（これに制限されないが、）１つ以上のプロセッサをもつ任意のコンピュータデバイスを含む。本明細書において、機械アクセス可能な媒体は、コンピュータデバイスによってアクセス可能な任意の形式で情報を記憶及び／又は送信する任意の構造を含み、これに制限されないが、追記型／非追記型媒体（例えば、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学式記憶媒体、及びフラッシュメモリデバイス）、さらに、電気的、光学的、音響学的、又は信号を伝搬する他の形式（例えば、搬送波、赤外線信号、及びデジタル信号）を含む。
【００２７】
一実施形態によれば、コンピュータデバイスは、例えば、１つ以上のプロセッサ等の、様々な他の周知の構成要素を含む。（複数の）プロセッサ及び機械アクセス可能な媒体は、ブリッジ／メモリコントローラを用いて、通信可能に結合され、プロセッサは、機械アクセス可能な媒体に記憶された複数の命令を実行できてもよい。ブリッジ／メモリコントローラは、グラフィックスコントローラに結合され、グラフィックスコントローラは、表示デバイス上の表示データの出力を制御してもよい。ブリッジ／メモリコントローラは、１つ以上のバスに結合されてもよい。１つ以上の要素は、１つのパッケージ上で、又は複数のパッケージ若しくは複数のダイを用いて、プロセッサと共に統合されてもよい。例えば、ユニバーサルシリアルバス（"ＵＳＢ"）ホストコントローラ等のホストバスコントローラは、（複数の）バスに結合されてもよく、複数のデバイスは、ＵＳＢに結合されてもよい。例えば、キーボード、マウス等の複数のユーザ入力デバイスは、入力データを提供するためのコンピュータデバイスに含まれてもよい。
【００２８】
上述の明細書において、本発明は、具体的で模範的な複数の実施形態を参照して説明された。しかしながら、添付の複数の請求項に記載された本発明の広範な精神及び範囲から逸脱しない範囲で、様々な修正及び変更がそこへ構成されることが理解される。したがって、本明細書及び図面は、限定的な意義ではなく実例と見なされる。
【図１】
0004338736.tif 000002
【図２】
0004338736.tif 000003
【図３】
0004338736.tif 000004
【図４】
0004338736.tif 000005