(57)【特許請求の範囲】
【請求項１】
仮想インフラストラクチャであって、
複数のホストであって、各々、ホストおいて実行される仮想マシンと、仮想スイッチとを少なくとも含む前記複数のホストと、
仮想マシン管理サーバ（ＶＭＭＳ）であって、
ネットワークサービスに関連するサービス定義を受け取ることであって、前記サービス定義は、前記ネットワークサービスに関する情報と、前記仮想マシンに前記ネットワークサービスを使用させるように前記複数のホストを設定するための構成インストラクションとを含む、前記サービス定義を受け取ること、
前記ネットワークサービスに関する情報と、前記構成インストラクションとを含む前記サービス定義に基づいて、前記ネットワークサービスをカスタマイズする１つまたは複数のサービスプロファイルを作成することであって、前記サービスプロファイルは、前記ネットワークサービスの特定構成のパラメータを含む、前記１つまたは複数のサービスプロファイルを作成すること、
前記サービスプロファイルの選択および前記複数の仮想マシンのうちの１つの仮想マシンの識別を受け取ることに応答して、前記サービス定義に基づいて、前記特定構成のパラメータを有する前記ネットワークサービスが利用可能となるように、選択された仮想マシンが実行されるホストを設定することにより選択された仮想マシンに対するネットワークサービスをイネーブルすることであって、前記ホストを設定することは、前記ホストにおいてルールおよびフィルタのうちの少なくとも一方で前記仮想スイッチまたは前記仮想スイッチのポートを設定して、前記ネットワークサービスのソフトウェアがインストールされて実行される１つまたは複数の挿入位置に前記選択された仮想マシンから１つまたは複数のパケットを送ることを含む、前記ネットワークサービスをイネーブルすること、を実行するように構成された前記仮想マシン管理サーバと、
を備える仮想インフラストラクチャ。
【請求項２】
前記仮想マシン管理サーバが、前記１つまたは複数のサービスプロファイルをネットワークサービスのディレクトリに追加するようにさらに構成され、
前記サービスプロファイルは、前記ネットワークサービスのディレクトリをブラウズするユーザにより選択される、請求項１に記載の仮想インフラストラクチャ。
【請求項３】
前記サービス定義が、挿入位置の参照情報を含む、請求項１に記載の仮想インフラストラクチャ。
【請求項４】
前記サービス定義により示される前記挿入位置が、前記複数のホストの各々の前記仮想スイッチである、請求項３に記載の仮想インフラストラクチャ。
【請求項５】
前記サービス定義により示される前記挿入位置が、前記仮想マシンが接続される仮想ネットワーク上にある、請求項３に記載の仮想インフラストラクチャ。
【請求項６】
前記サービス定義により示される前記挿入位置が、前記仮想マシンが接続される仮想ネットワークの外にある、請求項３に記載の仮想インフラストラクチャ。
【請求項７】
前記サービス定義が、１つまたは複数のサービスレベルを含む、請求項１に記載の仮想インフラストラクチャ。
【請求項８】
コンピュータ実行可能インストラクションが具現化されている少なくとも１つのコンピュータ可読記憶媒体であって、少なくとも１つのプロセッサにより実行された場合に前記コンピュータ実行可能インストラクションが前記少なくとも１つのプロセッサに、
ネットワークサービスに関連するサービス定義を受け取ることであって、複数のホストの各々は、当該ホストにおいて実行される仮想マシンと、仮想スイッチとを少なくとも含み、前記サービス定義は、前記ネットワークサービスに関する情報と、前記仮想マシンに前記ネットワークサービスを使用させるように前記複数のホストを設定するための構成インストラクションとを含む、前記サービス定義を受け取ること、
前記ネットワークサービスに関する情報と、前記構成インストラクションとを含む前記サービス定義に基づいて、前記ネットワークサービスをカスタマイズする１つまたは複数のサービスプロファイルを作成することであって、前記サービスプロファイルは、前記ネットワークサービスの特定構成のパラメータを含む、前記１つまたは複数のサービスプロファイルを作成すること、
前記サービスプロファイルの選択および前記複数の仮想マシンのうちの１つの仮想マシンの識別を受け取ることに応答して、前記サービス定義に基づいて、前記特定構成のパラメータを有する前記ネットワークサービスが利用可能となるように、選択された仮想マシンが実行されるホストを設定することにより選択された仮想マシンに対するネットワークサービスをイネーブルすることであって、前記ホストを設定することは、前記ホストにおいてルールおよびフィルタのうちの少なくとも一方で前記仮想スイッチまたは前記仮想スイッチのポートを設定して、ネットワークサービスのソフトウェアがインストールされて実行される１つまたは複数の挿入位置に前記選択された仮想マシンから１つまたは複数のパケットを送ることを含む、前記ネットワークサービスをイネーブルすることを実行させる、少なくとも１つのコンピュータ可読記憶媒体。
【請求項９】
前記コンピュータ実行可能インストラクションが、前記少なくとも１つのプロセッサに、前記１つまたは複数のサービスプロファイルをネットワークサービスのディレクトリに追加することをさらに実行させ、
前記サービスプロファイルは、ネットワークサービスのディレクトリをブラウズするユーザにより選択される、請求項８に記載の少なくとも１つのコンピュータ可読記憶媒体。
【請求項１０】
前記サービス定義が、挿入位置の参照情報を含む、請求項８に記載の少なくとも１つのコンピュータ可読記憶媒体。
【請求項１１】
前記サービス定義により示される前記挿入位置が、前記複数のホストの各々の前記仮想スイッチである、請求項１０に記載の少なくとも１つのコンピュータ可読記憶媒体。
【請求項１２】
前記サービス定義により示される前記挿入位置が、前記仮想マシンが接続される仮想ネットワーク上にある、請求項１０に記載の少なくとも１つのコンピュータ可読記憶媒体。
【請求項１３】
前記サービス定義により示される前記挿入位置が、前記仮想マシンが接続される仮想ネットワークの外にある、請求項１０に記載の少なくとも１つのコンピュータ可読記憶媒体。
【請求項１４】
仮想ネットワーク上でネットワークサービスを登録する方法であって、
ネットワークサービスに関連するサービス定義を受け取ることであって、複数のホストは、当該ホストにおいて実行される仮想マシンと、仮想スイッチとを少なくとも含み、前記サービス定義は、前記ネットワークサービスに関する情報と、前記仮想マシンに前記ネットワークサービスを使用させるように前記複数のホストを設定するための構成インストラクションとを含む、前記サービス定義を受け取ること、
前記ネットワークサービスに関する情報と、前記構成インストラクションとを含む前記サービス定義に基づいて、前記ネットワークサービスをカスタマイズする１つまたは複数のサービスプロファイルを作成することであって、前記サービスプロファイルは、前記ネットワークサービスの特定構成のパラメータを含む、前記１つまたは複数のサービスプロファイルを作成すること、
前記サービスプロファイルの選択および前記複数の仮想マシンのうちの１つの仮想マシンの識別を受け取ることに応答して、前記サービス定義に基づいて、前記特定構成のパラメータを有する前記ネットワークサービスが利用可能となるように、選択された仮想マシンが実行するホストを設定することにより選択された仮想マシンに対するネットワークサービスをイネーブルすることであって、前記ホストを設定することは、前記ホストにおいてルールおよびフィルタのうちの少なくとも一方で前記仮想スイッチまたは前記仮想スイッチのポートを設定して、ネットワークサービスのソフトウェアがインストールされて実行される１つまたは複数の挿入位置に前記選択された仮想マシンから１つまたは複数のパケットを送ることを含む、前記ネットワークサービスをイネーブルすること、を備える方法。
【請求項１５】
前記１つまたは複数のサービスプロファイルをネットワークサービスのディレクトリに追加することをさらに備え、
前記サービスプロファイルは、ネットワークサービスのディレクトリをブラウズするユーザにより選択される、請求項１４に記載の方法。
【請求項１６】
サービス定義を受け取ることは、
挿入位置の参照情報を含むサービス定義を受け取ることを含む、請求項１４に記載の方法。
【請求項１７】
イネーブルメントコマンドを前記複数のホストのうちの少なくとも１つに送ることをさらに備える、請求項１４に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
仮想マシンは、物理コンピューティングリソースを抽象化したものであり、ネットワークを使って他の仮想マシンと通信できる。このネットワークは、物理ネットワークを抽象化、または仮想化した仮想ネットワークであってもよい。仮想ネットワークは、複数の仮想マシン間のＯＳＩモデル内のレイヤ２として動作してもよい。物理ネットワークと異なり、仮想ネットワークは物理的なリンクやトポロジの制約を受けない。それゆえ、仮想ネットワーク内の仮想マシンは、ある物理コンピュータから別のコンピュータへと移動でき、その際、仮想ネットワーク内の通信に影響を与えない。このような仮想ネットワークの１つがＶｉｒｔｕａｌ  Ｅｘｔｅｎｓｉｂｌｅ  ＬＡＮ（ＶＸＬＡＮ）であり、これは本明細書と共に提出され、その全文が参照によって援用される（非特許文献１）に記載されている。
【先行技術文献】
【非特許文献】
【０００２】
【非特許文献１】白書「Ｃｉｓｃｏ  Ｎｅｘｕｓ  １０００ＶシリーズスイッチとＶＸＬＡＮを用いたスケーラブルクラウドネットワーキング（Ｓｃａｌａｂｌｅ  Ｃｌｏｕｄ  Ｎｅｔｗｏｒｋｉｎｇ  ｗｉｔｈ  Ｃｉｓｃｏ  Ｎｅｘｕｓ  １０００Ｖ  Ｓｅｒｉｅｓ  Ｓｗｉｔｃｈｅｓ  ａｎｄ  ＶＸＬＡＮ）」
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ロードバランサ、ファイアウォール、ウイルススキャナ、その他、多くのネットワーキングおよびセキュリティサービスが物理ネットワークのために提供されている。サービスの中にはネットワーク内で動作するものもあれば、ネットワークのゲートウェイまたは外部で動作するものもある。このようなサービスは仮想ネットワークと通信できない場合があり、仮想ネットワークはこのようなサービスがネットワーク上に存在することに気付かない場合もある。仮想ネットワークと通信できるサービスもあるが、現在、仮想ネットワーク内にこのようなサービスを一律に導入し、利用する方法はない。そこで、仮想ネットワークで使用するためにネットワークサービスを導入し、利用するための一律な方法が求められている。
【課題を解決するための手段】
【０００４】
本明細書で説明される方法、コンピュータ可読記憶媒体、システムは、仮想ネットワーク上でのネットワークサービスの登録と利用を容易にする。仮想マシン管理サーバ（VMMS:virtual machine management server）は、あるネットワークサービスに関連するサービス定義を受け取るように構成される。ＶＭＭＳは、そのサービス定義に基づいて１つまたは複数のサービスプロファイルを作成する。ＶＭＭＳは、１つまたは複数のサービスプロファイルに基づいて複数のホストを作成し、そのネットワークサービスが、複数のホストの中の１つまたは複数の仮想マシンによって仮想ネットワークを介して使用可能となるようにする。
【図面の簡単な説明】
【０００５】
【図１】仮想ネットワークを有する、例示的な仮想インフラストラクチャのブロック図である。
【図２】図１の仮想インフラストラクチャを使ってネットワークサービスを登録して利用する例示的方法のスイムレーン図である。
【発明を実施するための形態】
【０００６】
図１は、例示的な仮想インフラストラクチャ（virtual infrastructure）１００であり、この仮想インフラストラクチャは分散された仮想ネットワーキングと、まとめてクラスタ１１６と呼ばれる物理コンピュータシステム、すなわちホスト１１０と１１４上の複数の仮想マシン（VM:virtual machine）１０５を有する。仮想インフラストラクチャ１００はクラウドベースのアーキテクチャであってもよく、この場合、仮想インフラストラクチャ１００の複数のユーザがＶＭ  １０５をインスタンス化し、管理することができる。それゆえ、仮想インフラストラクチャ１００はマルチテナント環境（multi- tenant environment）であってもよく、そのテナント、すなわちユーザのニーズや目的は様々である。
【０００７】
各ＶＭ  １０５は仮想環境を提供し、その仮想環境にはゲストオペレーティングシステム（図示せず）が存在し、動作してもよい。各物理コンピュータ１１０と１１４は、ハードウェア１２０と、ハードウェア１２０上で実行される仮想化ソフトウェアすなわちマネージャ１２４と、仮想化ソフトウェア１２４によってハードウェア１２０上で動作する１つまたは複数のＶＭ  １０５と、を含む。従って、仮想化ソフトウェア１２４は、論理的にハードウェア１２０とＶＭ  １０５の間に介在し、ハードウェア１２０とＶＭ  １０５とインタフェースで接続する。仮想化ソフトウェア１２４は完全に、または部分的にハードウェアで、例えばシステム・オン・チップ、ファームウェア、ＦＰＧＡその他として実装されてもよい。ハードウェア１２０は少なくとも１つのプロセッサ（図示せず）を含み、各プロセッサはマイクロプロセッサチップ上の実行ユニット、すなわち「コア」である。ハードウェア１２０はまた、システムメモリ（図示せず）も含み、システムメモリは一般的な揮発性ランダムアクセスメモリ（RAM:random access memory）、ネットワークインタフェースポート（NIC:network interface port）１２６、記憶システム（図示せず）およびその他のデバイスである。ＮＩＣ  １２６は、物理ＮＩＣと呼ばれることがあり、イーサネット（登録商標）ネットワークインタフェースまたは同様のインタフェースであってもよい。
【０００８】
仮想化ソフトウェア１２４はハイパーバイザと呼ばれることがあり、ハードウェアリソースを管理するためのソフトウェアコンポーネントと物理デバイスを仮想化またはエミュレートするためのソフトウェアコンポーネントを含み、各ＶＭ  １０５のための仮想デバイス、例えば仮想ディスク、仮想プロセッサ、仮想ネットワークインタフェース、その他を提供する。この例示的実施形態において、各ＶＭ  １０５は物理コンピュータシステムを抽象化したものであり、マイクロソフトウィンドウズ（Microsoft Windows）（登録商標）等のオペレーティングシステム（OS:operating system）およびアプリケーションを含んでいてもよく、これらはそれぞれ「ゲストＯＳ」および「ゲストアプリケーション」と呼ばれ、「ゲスト」という用語は、それがＶＭ内にあるソフトウェアエンティティであることを示す。マイクロソフトウィンドウズ（Microsoft Windows）（登録商標）は、ワシントン州レッドモンドのマイクロソフト（Microsoft Corporation）の登録商標である。
【０００９】
仮想マシン管理サーバ（ＶＭＭＳ）１２５はソフトウェアインタフェース１２７を提供し、これによってとりわけ、ユーザおよびその他のプログラムが、物理コンピュータ１１０と１１４の上で動作し、ＶＭＭＳ  １２５によって管理されるＶＭ  １０５のライフサイクルを管理することができる。ＶＭＭＳ  １２５は、本明細書で具体的に述べられているもの以外のＶＭ管理と操作を提供してもよい。
【００１０】
各ＶＭ  １０５は１つまたは複数の仮想ＮＩＣ  １２８を含んでいてもよく、１つまたは複数の仮想ＮＩＣ  １２８は仮想スイッチ１３０に連結される。仮想化ソフトウェア１２４は仮想スイッチ１３０を提供して管理し、仮想化ソフトウェア１２４は複数の仮想スイッチを提供してもよい。ホスト１１０と１１４の中の各仮想スイッチ１３０は、論理的に１つにまとめて、仮想ネットワーク１３２を形成してもよい。仮想ネットワーク１３２は物理ネットワークを抽象化したものであり、仮想レイヤ２、すなわちデータリンク層を提供してもよく、仮想ネットワーク１３２にはとりわけフレームへのネットワークレイヤデータパケットのカプセル化、フレーム同期、媒体アクセス制御等のサービスが含まれる。仮想ネットワーク１３２は１つまたは複数の物理ネットワークにわたっていてもよく、基礎となる物理トポロジや物理ネットワークの組織に関係なく組織化されてもよい。この例示的ネットワークにおいて、仮想ネットワーク１３２は、ホスト１１０を含む第一のネットワーク１３６とホスト１１４を含む第二のネットワーク１３８にわたっている。第一と第二のネットワーク１３６と１３８は、同一の物理ネットワーク上の、ルータ、ＶＰＮ、および／またはスイッチを介して接続された異なるサブネット（図示せず）であってもよく、または、この例示的実施形態ではインターネットを含んでいてもよいネットワーク１４０を介してネットワーク接続されていてもよい。仮想スイッチ１３０と仮想ネットワーク１３２は、ＶＭＭＳ  １２５によって管理されてもよい。複数の物理ホストにわたるある例示的な仮想ネットワークは分散型仮想スイッチと呼ばれ、ランベス（Lambeth）らの米国特許第８，１９５，７７４号に記載されており、その全文を参照によって本明細書に援用する。
【００１１】
ネットワークサービス１５０、例えばロードバランサ、プロキシ、ファイアウォール、ウイルススキャナ、または物理ネットワーク上で実行されてもよい他のあらゆるサービスを仮想ネットワーク１３２と統合してもよい。ネットワークサービス１５０は、ソフトウェアおよび／またはハードウェアで実装してもよい。本明細書においてより詳しく説明するように、ネットワークサービス１５０を仮想ネットワーク１３２とそのコンポーネント、例えばＶＭ  １０５に提供するためのプラットフォームが提供される。インストール、または挿入位置（insertion point）は仮想ネットワーク１３２とネットワークサービス１５０の間のインタフェースとして提供される。ネットワークサービス、例えばネットワークサービス１５０は、１つまたは複数の挿入位置にインストールしてもよい。この例示的実施形態においては、３つの挿入位置が例として設けられている。
【００１２】
第一の挿入位置１５５は仮想スイッチ１３０の中に存在していてもよい。ネットワークサービスの中にはパケットの検査または操作、例えばヘッダ変更、フォワーディング（forwarding）、カプセル化、その他を必要とするものがある。したがって、ネットワークサービス１５０は、仮想スイッチ１３０の中に１つまたは複数のルールまたはフィルタをインストールすることによって、ネットワークサービス１５０をイネーブルしてもよい。ルールは、ｉｐｃｈａｉｎｓ型またはｉｐｔａｂｌｅｓ型ルールと同様であってもよい。一例において、ネットワークサービス１５０はファイアウォールを実装し、仮想スイッチ１３０上で、所定のポートで入ってくるトラフィックをブロックする１つまたは複数のルールをインストールする。さらに、ネットワークサービス１５０は、仮想ソフトウェア１２４の中にインストールされるか、仮想ソフトウェア１２４と通信してもよく、第一の挿入位置１５５の中にあると考えてもよい。例えば、ネットワークサービス１５０は、仮想ソフトウェア１２４の中のモジュールとして実行されるコードを含んでいてもよい。それゆえ、ネットワークサービス１５０は、第一の挿入位置１５５を使って各ホスト内にインストールされてもよい。
【００１３】
他の例では、ネットワークサービス１５０をイネーブルするために追加の処理が必要となりうる。例えば、ネットワークサービス１５０は仮想スイッチ１３０の中に、一部またはすべてのトラフィックをエンドポイントに送り、さらに分析するルールをインストールしてもよい。エンドポイントは、物理ネットワークデバイスでも、１つまたは複数のＶＭ  １０５上のゲストＯＳ内で実行されるソフトウェアでも、および／または１つまたは複数のＶＭ  １０５上で動作する仮想アプライアンス（virtual appliance）（図示せず）でもよい。仮想アプライアンスは、特定の１つまたは複数のタスクを実行するための特殊化された仮想マシンである。仮想アプライアンスは、事前設定されたオペレーティングシステムと１つのアプリケーションを含んでいてもよく、これらオペレーティングシステムとアプリケーションは仮想マシンイメージ、例えばオープン仮想化フォーマット（OVF:Open Virtualization Format）ファイルのようにまとめてパッケージされる。
【００１４】
第二の挿入位置１６０は仮想ネットワーク１３２の中に存在していてもよい。ネットワークサービス１５０はロードバランサ（load balancer）等のエッジサービス（edge service）であってもよく、これは仮想ネットワーク１３２と共に、その中で動作する。ネットワークサービス１５０は、ネットワーク１３６と１３８とネットワーク接続された物理デバイスを含み、仮想ネットワーク１３２が到達する何れの場所にも、またはＶＭとしても実装してよい。ネットワークサービス１５０は、仮想ネットワーク１３２の中に挿入されると、仮想ネットワーキングを理解しなければならない。特に、ネットワークサービス１５０は、仮想ネットワーク１３２を使ってＶＭ  １０５および仮想ネットワーク１３２の他のメンバーとどのように通信するかを知るべきである。
【００１５】
第三の挿入位置１６５は仮想ネットワーク１３２および物理ネットワーク１３６と１３８の外部の遠隔システム１６７上に存在し、この例示的実施形態では、ネットワーク１４０を介してアクセス可能である。たとえば、第三の挿入位置１６５はインターネット上で利用可能なウェブまたはクラウドベースのサービスであってもよい。遠隔システム１６７上のネットワークサービス１５０にアクセスするためには、ＶＭ  １０５からのデータがカプセル化されて、レイヤ３で遠隔システム１６７に送られてもよい。あるいは、ＶＭ  １０５または仮想ネットワーク１３２からのパケットが遠隔システム１６７に送られてもよい。
【００１６】
例えば、遠隔システム１６７上で利用可能なネットワークサービス１５０は、ウェブトラフィックをフィルタにかけて悪意あるデータおよびブロックされたユニフォーム・リソース・ロケータ（URL:Uniform Resource Locator）を除去するウェブセキュリティサービスであってもよい。仮想ネットワーク１３２および／またはＶＭ  １０５からのウェブリクエストは遠隔システム１６７へとリダイレクトされ、ネットワークサービス１５０によって処理されてもよい。ネットワークサービス１５０は、要求されたウェブリソースを取得し、フィルタ処理を行い、その後、フィルタ処理されたデータを仮想ネットワーク１３２上のリクエスタ（requester）に返してもよい。
【００１７】
いくつかの実施形態において、ネットワークサービス１５０は、ソフトウェアインタフェース１２７を介してネットワークサービス１７０のディレクトリに接続されたネットワークサービスマネージャ１６９から管理されてもよい。ネットワークサービスマネージャ１６９は、仮想ネットワーク１３２および／または物理ネットワーク１３６と１３８を介してネットワークサービス１５０と通信してもよい。ネットワークサービスマネージャ１６９は、ネットワークサービス１５０を管理するための管理用インタフェースを提供する。例えば、ネットワークサービスマネージャ１６９は、ネットワークサービス１５０によって提供されるロードバランサを設定するためのウェブインタフェースを提供してもよい。この例示的実施形態において、ネットワークサービスマネージャ１６９はＶＭＭＳ  １２５とは別のコンポーネントとして示されており、ＶＭＭＳ  １２５と通信して本明細書に記載されているように機能する。しかしながら、いくつかの実施形態では、ネットワークサービスマネージャ１６９はＶＭＭＳ  １２５の中に組み込まれ、ＶＭＭＳ  １２５が本明細書に記載された機能を果たすことができるようにしてもよい。
【００１８】
いくつかの挿入位置とネットワークサービスは例として提供されているが、より多くの挿入位置が利用可能であり、他のネットワークサービスが提供されうることも想定される。例えば、挿入位置は仮想ネットワーク１３２からルーティング可能な物理ネットワーク上に存在していてもよいが、この物理ネットワークはネットワーク１３６、１３８、１４０とは異なる。ネットワークサービスはまた、仮想ネットワークのドメインネームシステム（DNS:Domain Name System）、ダイナミック・ホスト・コンフィギュレーション・プロトコル（DHCP:Dynamic Host Configuration Protocol）、ネットワークファイルシステム（NFS:network file system）、シンプル・ネットワーク・マネージメント・プロトコル（SNMP:Simple Network Management Protocol）、ディレクトリおよび認証サービス、その他を含んでいてもよい。
【００１９】
一実施形態において、ネットワークサービスマネージャ１６９はＶＭＭＳ  １２５と通信して、ＶＭＭＳ  １２５がネットワークサービスのディレクトリ１７０を作成して利用可能にするように構成される。ネットワークサービスのディレクトリ１７０はデータベースまたはその他のデータストア、例えばフラットファイルとして実装されてもよく、ＶＭＭＳ  １２５の中にあっても、外にあってもよい。まず、ＶＭＭＳ  １２５はネットワークサービス１５０からのサービス定義を受け取る。サービス定義は、ネットワークサービスのディスレクトリ１７０に含めるべきネットワークサービス１５０に関する情報、例えばサービス名やサービスの内容を含む。サービス定義はまた、ネットワークサービス１５０に使用するホスト１１０と１１４を設定するための構成インストラクションおよび／またはデータも含む。ＶＭＭＳ  １２５は、本明細書においてより詳しく説明するように、ホスト１１０と１１４および仮装ネットワーク１３２を、ネットワークサービス１５０を使用可能に設定するように構成される。ＶＭＭＳ  １２５により、場合により各ＶＭ  １０５の管理者の裁量で、ＶＭ  １０５がネットワークサービス１５０を使用できる。
【００２０】
一実施形態において、ＶＭＭＳ  １２５はサービス定義に基づいて１つまたは複数のサービスプロファイルを作成する。ＶＭＭＳ  １２５の管理者は、サービスプロファイルが作成されるようにしてもよい。サービスプロファイルは、仮想ネットワークサービス１３２上および／またはクラスタ１１６内でネットワークサービス１５０から利用可能なサービスを説明するために使用される。それゆえ、ＶＭＭＳ  １２５の管理者はネットワークサービス１５０をカスタム化してもよい。ＶＭＭＳ  １２５の管理者はまた、ＶＭＭＳ  １２５を使って、選択的にサービスプロファイルを仮想ネットワーク、ホスト、クラスタ、ＶＭＳ、ＶＭの集合、例えばＶＭのプールおよび／またはユーザグループが利用できるようにする。あるサービスプロファイルがＶＭ  １０５の１つによって利用可能か否かは、ネットワークサービスのディレクトリ１７０の中で示される。ネットワークサービスは、そのネットワークサービスに基づくサービスプロファイルがネットワークサービスのディレクトリ１７０に追加される前に「登録」される。
【００２１】
仮想ネットワーク１３２上のサービスプロファイルとネットワークサービス１５０をイネーブルするために、ＶＭＭＳ  １２５はサービス定義の中の構成インストラクションを使ってホスト１１０と１１４を設定する。ホスト１１０と１１４の構成には、仮想ソフトウェア１２４および／または仮想スイッチ１３０を、ネットワークサービス１５０が到達可能、使用可能となるように設定することが含まれていてもよい。例えば、仮想スイッチ１３０、または仮想スイッチ１３０のポートは、ＶＭ  １０５からのパケットをネットワークサービス１５０に送るルールおよび／またはフィルタで構成されてもよい。ネットワークサービス１５０は、ＶＭＭＳ  １２５によってイネーブルされるまでＶＭ  １０５により使用不能であり、ホストは、ホストが仮想ネットワーク１３２内にある場合に、ネットワークサービス１５０を使用するように構成されてもよい。
【００２２】
ネットワークサービス１５０を利用するために、ＶＭ  １０５の管理者、すなわちクラウドユーザはＶＭＭＳ  １２５を使ってネットワークサービスのディレクトリ１７０をブラウズし、利用可能なネットワークサービス、すなわちサービスプロファイルを探す。管理者は、例えばネットワークサービス１５０にとって利用可能なサービスプロファイルを選択し、ＶＭＭＳ  １２５にそのネットワークサービスをイネーブルさせる。ネットワークサービス１５０は、ＶＭＭＳ  １２５により、イネーブルメントコマンドを仮想ソフトウェア１２４に送信することによって、選択されたＶＭ  １０５についてイネーブルされる。
【００２３】
図２は仮想ネットワーク１３２等の仮想ネットワークで使用されるネットワークサービス１５０等のネットワークサービス（図１に示される）を登録し、利用するための、例示的方法２００のスイムレーン図（swimlane diagram）である。ネットワークサービス１５０は、ＶＭ  １０５、仮想スイッチ１３０、仮想ネットワーク１３２がネットワークサービス１５０を利用できるように登録されて利用可能とされる。まず、ネットワークサービス１５０はサービス定義を、例えばネットワークサービスマネージャ１６９を介してＶＭＭＳ  １２５に送信する（２０５）。ネットワークービス１５０はネットワークサービス１５０を提供するベンダ（vender）を参照してもよく、この場合、ベンダがサービス定義をＶＭＭＳ  １２５に送信する（２０５）。サービス定義は、ＶＭＭＳ  １２５によって、ＡＰＩ、ウェブサービスコール、ファイルアップロード、その他を使って受信されてもよく、ファイル、ストリング、一連のプロシージャコール、その他で具現化されてもよい。サービス定義はベンダ名、サービス名、サービスの内容、管理者連絡先情報、１つまたは複数のサービスエンドポイント、例えばＵＲＬ、ＩＰアドレス、その他、および／または１つまたは複数のサービスレベルが含まれていてもよく、これらに限定されない。より具体的には、この例示的実施形態において、サービス定義には、ネットワークサービス１５０をＶＭ  １０５、仮想スイッチ１３０、および／または仮想ネットワーク１３２が使用するのに必要な情報が含まれる。この例示的実施形態において、ネットワークサービス１５０はサービス定義が送信される（２０５）まで動作不能である。サービス定義には、異なる製品、サービスの種類、ユーザの数、またはその他の可変的なサービスレベルに対応してもよいサービスレベルが含まれていてもよい。サービス定義には、ＶＭ  １０５、仮想スイッチ１３０、および／または仮想ネットワーク１３２の構成において使用するための構成インストラクションおよび／またはデータが含まれる。例えば、構成インストラクションには、仮想スイッチ１３０を設定するためのルールおよび／またはフィルタが含まれていてもよい。第一の挿入位置１５５の場合、構成インストラクションには仮想ソフトウェア１２４内で実行されるモジュールが含まれていてもよい。
【００２４】
この例示的実施形態において、ＶＭＭＳ  １２５の管理者は、サービス定義を使って、１つまたは複数のサービスプロファイルを作成する（２１５）。サービスプロファイルには、ＶＭＭＳ  １２５によって管理されるＶＭ  １０５上で使用するためのサービスの構成またはパラメータが含まれる。ＶＭＭＳ  １２５の管理者は、サービスプロファイルを通じてどのネットワークサービスが利用可能とされるかを選択できる。選択されたサービス定義は、サービスプロファイル内で、例えばいくつかまたはすべてのサービスレベルを選択するようにさらに構成できる。より具体的には、サービスプロファイルによって、ＶＭＭＳ  １２５の管理者はネットワークサービスを許可／拒否し、ネットワークサービスを構成することが可能となる。
【００２５】
ＶＭＭＳ  １２５の管理者は、動作２１７中にネットワークサービス１５０が仮想化ソフトウェア１２４によって利用できるようにし、これには仮想化ソフトウェア１２４および／または仮想スイッチ１３０を１つまたは複数のサービスプロファイルで構成することが含まれる。ネットワークサービス１５０は１つまたは複数の挿入位置１５５、１６０、１６５（図１に示される）に存在してもよいため、仮想化ソフトウェア１２４および／または仮想スイッチ１３０は挿入位置においてネットワークサービスと相互作用するように構成される。動作２２０において、サービスプロフィルがネットワークサービスのディレクトリ１７０に追加される。
【００２６】
サービスプロファイルは、ＶＭＭＳ  １２５によって、イネーブルメントコマンド（enablement command）を仮想ソフトウェア１２４に送信することにより、１つまたは複数のＶＭ  １０５についてイネーブルされる（２２５）。仮想ソフトウェア１２４は、仮想スイッチ１３０を使ってトラフィックをネットワークサービス１５０により使用される１つまたは複数の挿入位置１５５、１６０、１６５へと、および／またはそこから導くことによってサービスプロファイルをイネーブルする。最終的に、ネットワークサービス１５０が１つまたは複数のＶＭ  １０５によって利用される（２３０）。
【００２７】
前述のように、方法２００はＶＭＭＳ  １２５がネットワークサービス１５０に関連するサービス定義を受け取り、ＶＭＭＳ  １２５がそのサービス定義に基づいて１つまたは複数のサービスプロファイルを作ることを示している。方法２００はまた、ＶＭＭＳ  １２５がサービスプロファイルに基づいて複数のホストを設定し（configure）、ネットワークサービス１５０がその複数のホスト内の１つまたは複数のＶＭ  １０５が仮想ネットワークを介して使用可能となるようにすることを示している。一実施形態において、ネットワークサービスマネージャ１６９はＶＭＭＳ  １２５と通信して、ＶＭＭＳ  １２５が方法２００で説明したＶＭＭＳ  １２５の機能を実行できるようにしてもよい。あるいは、ネットワークサービスマネージャ１６９が方法２００で説明したＶＭＭＳ  １２５の機能を直接実行してもよい。
【００２８】
本明細書において説明された各種の実施形態は、コンピュータシステムの中に保存されたデータに係る様々なコンピュータ実装可能動作を利用してもよい。例えば、これらの動作には物理的数量の物理的操作が必要である場合もあり、通常、ただし必ずではないが、これらの数量は電気または磁気信号の形態をとってもよく、これら、またはこれらの表現を保存、転送、合成、比較、またはそれ以外に操作することができる。さらに、このような操作はしばしば、例えば生成、特定、判定、または比較等の用語で呼ばれる。本明細書において説明された、本発明の１つまたは複数の実施形態の一部を構成する何れの動作も、有用な機械動作であってよい。これに加えて、本発明の１つまたは複数の実施形態はまた、これらの動作を実行するための機器または装置にも関する。この装置は、具体的な要求される目的のために特に構築されてもよく、またはコンピュータ内に保存されたコンピュータプログラムによって選択的に起動され、または構成される汎用コンピュータであってもよい。特に、各種の汎用マシンを本明細書の教示に従って書かれたコンピュータプログラムと共に使用してもよく、または必要な動作を実行するための、より特殊化された装置を構築することがより好都合になりうる。
【００２９】
本明細書において説明された各種の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な民生用電子機器、マイクロコンピュータ、メインフレームコンピュータ、およびその他を含む他のコンピュータシステム構成で実施されてもよい。
【００３０】
本発明の１つまたは複数の実施形態は、１つまたは複数のコンピュータプログラムとして、または１つまたは複数のコンピュータ可読媒体において具現化される１つまたは複数のコンピュータプログラムモジュールとして実装されてもよい。コンピュータ可読媒体という用語は、後にコンピュータシステム内に入力可能なデータを保存できる何れのデータ記憶装置を指してもよく、コンピュータ可読媒体は、コンピュータプログラムを、これらがコンピュータによって読み取られるような方法で具現化するための何れの既存の、または今後開発される技術に基づいていてもよい。コンピュータ可読媒体の例としては、ハードドライブ、ネットワークアタッチトストレージ（NAS:network attached storage）、リードオンリメモリ、ランダムアクセスメモリ（例えば、フラッシュメモリデバイス）、ＣＤ（Compact Discs）、例えばＣＤ−ＲＯＭ、ＣＤ−ＲまたはＣＤ−ＲＷ、ＤＶＤ（デジタル多目的ディスク：Digital Versatile Disc）、磁気テープ、およびその他の光および光以外のデータ記憶装置が挙げられる。コンピュータ可読媒体はまた、ネットワークに接続されたコンピュータシステム上で分散させてコンピュータ可読コードが分散式に保存され、実行されるようにすることもできる。
【００３１】
本発明の１つまたは複数の実施形態について、明瞭に理解できるようにある程度詳しく説明したが、当然のことながら、特許請求項の範囲内で特定の変更や改変を加えてもよい。したがって、説明された実施形態は例示であって、限定的と考えるべきではなく、特許請求項の範囲は本明細書中に記載された詳細に限定されるものではなく、請求項の範囲と均等物の中で改変されてもよい。特許請求の範囲において、明示的に述べられる場合を除き、要素および／またはステップは、何らかの特定の動作の順序を示唆するものではない。
【００３２】
これに加えて、説明された仮想化方法は一般に、仮想マシンが特定のハードウェアシステムに適合するインタフェースを提供することを前提としているが、当業者であればわかるように、説明された方法は特定のハードウェアシステムに直接対応していない仮想化に使用してもよい。ホストされた実施形態、ホストされていない実施形態、またはこれら２つの間の境界があいまいとなりがちな実施形態として実装された各種の実施形態による仮想化システムは、すべて想定される。さらに、各種の仮想化動作は全体または一部がハードウェアで実装されても、従来の仮想化または準仮想化技術を用いて実装されてもよい。仮想化の程度に関係なく、多くの変更、改変、追加、改良が可能である。したがって、仮想化ソフトウェアは、仮想化機能を実行するホスト、コンソール、またはゲストオペレーティングシステムのコンポーネントを含むことができる。本明細書の中で単独のインスタントとして説明されたコンポーネント、動作または構造について、複数のインスタンスが提供されてもよい。最後に、各種のコンポーネント、動作およびデータストア間の境界は幾分任意であり、特定の動作が具体的な例示的構成に関して示されている。機能のその他の割当も想定され、本発明の範囲内に含まれうる。一般に、例示的な構成の中で別々のコンポーネントとして示された構造と機能は、一体化された構造またはコンポーネントとして実装されてもよい。同様に、単独のコンポーネントとして示された構造と機能は、別々のコンポーネントとして実装されてもよい。上記およびその他の変更形態、改変形態、追加形態、改良形態が、付属の特許請求の範囲内に含まれてもよい。
【図１】
0005981655.tif 000002
【図２】
0005981655.tif 000003