(57)【要約】  システムおよび方法は、ミドルウェアマシン環境のマルチキャストグループを用いるフラッディングメカニズムをサポートできる。ミドルウェアマシン環境は、１つ以上のデータパケットを外部ネットワークから受けるために外部ポートを含むゲートウェイインスタンスを備え得る。ミドルウェアマシン環境は、１つ以上のホストサーバも備え、各々のホストサーバは、データパケットを処理できる１つ以上の仮想マシンに関連付けられている。さらに、上記ホストサーバは、ゲートウェイインスタンスに関連付けられている仮想ハブに属する仮想インタフェースを提供できる。少なくとも１つの上記パケットは、それが外部ポートで受けられた場合に、不明の送信先アドレスで特定されるフラッドパケットである。ゲートウェイインスタンスは、フラッドパケットをマルチキャストグループに送信するよう動作し、マルチキャストグループは、マルチキャストグループにおける１つ以上の上記ホストサーバにフラッドパケットを転送するように動作する。システムおよび方法は、ミドルウェアマシン環境においてパケット処理プロキシを用いるフラッディングメカニズムをサポートできる。パケット処理プロキシを用いるシステムおよび方法のために、ゲートウェイインスタンスは、フラッドパケットを、ホストサーバの指定された仮想インタフェースに送信でき、ホストサーバのパケット処理プロキシは、このパケットを処理するために、もう１つのホストサーバの仮想マシンにこのフラッドパケットを転送できる。
2014527330.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のマイクロプロセッサで動作するミドルウェアマシン環境のフラッディングメカニズムをサポートするためのシステムであって、
ゲートウェイインスタンスを備え、前記ゲートウェイインスタンスは、１つ以上のデータパケットを外部ネットワークから受け付けるよう適合された外部ポートに関連付けられ、
１つ以上のホストサーバを備え、前記１つ以上のホストサーバには、複数の仮想インタフェースが提供され、各前記ホストサーバは、前記１つ以上のデータパケットを処理するように動作する１つ以上の仮想マシンに関連付けられており、
少なくとも１つのパケットは、それが前記ゲートウェイインスタンスの前記外部ポートで受け付けられた場合に、不明の送信先アドレスで特定され、
前記ゲートウェイインスタンスは、前記少なくとも１つのパケットを、マルチキャストグループまたは指定された仮想インタフェースに送信し、
（ｉ）前記マルチキャストグループは、前記少なくとも１つのパケットを、前記マルチキャストグループにおける１つ以上の前記ホストサーバに転送するように動作し、
（ｉｉ）前記指定された仮想インタフェースは、ホストサーバ上にあり、パケット処理プロキシに関連付けられており、前記ホストサーバの前記パケット処理プロキシは、前記少なくとも１つのパケットを処理するために、前記少なくとも１つのパケットを対象の仮想マシンに転送するように動作する、システム。
【請求項２】
前記仮想インタフェースのうち１つ以上に関連付けられ得る複数のコンテクストを包含するハードウェアコンテクストテーブルをさらに備える、請求項１に記載のシステム。
【請求項３】
前記ゲートウェイインスタンスは、前記外部ポートで受け付けられた到達パケットが前記ハードウェアコンテクストテーブルにおけるコンテクストに関連付けられている仮想インタフェースを特定するかどうかを判断するように動作する、請求項２に記載のシステム。
【請求項４】
前記外部ポートで受け付けられた到達パケットは、前記到達パケットが前記ハードウェアコンテクストテーブルのコンテクストのいずれにも関連付けられていない仮想インタフェースのために対象を定められた場合に、不明の送信先アドレスを有するとみなされる、請求項３に記載のシステム。
【請求項５】
少なくとも１つの仮想インタフェースは、１つ以上の子仮想インタフェースに関連付けられている親仮想インタフェースであり、前記ゲートウェイの、前記親仮想インタフェースに関連付けられているポリシ情報は、前記１つ以上の子仮想インタフェースが関連付けられ得るアドレスおよび／またはＩＤを制限する、請求項１〜４のいずれか１項に記載のシステム。
【請求項６】
前記親仮想インタフェースは、ハードウェアコンテクストテーブルにおけるコンテクストに関連付けられており、前記１つ以上の子仮想インタフェースの各々は、前記ハードウェアコンテクストテーブルにおけるコンテクストのいずれにも関連付けられていない、請求項５に記載のシステム。
【請求項７】
前記ゲートウェイインスタンスは、前記少なくとも１つのパケットをマルチキャストグループに送信するように動作し、前記マルチキャストグループは、前記少なくとも１つのパケットを、前記マルチキャストグループの１つ以上の前記ホストサーバに転送するように動作する、請求項１〜６のいずれか１項に記載のシステム。
【請求項８】
前記マルチキャストグループは、前記ゲートウェイインスタンスを共有する全てのホストおよび／またはハイパバイザを含み、前記少なくとも１つのパケットは、すべての協働するホストサーバに複製される、請求項７に記載のシステム。
【請求項９】
前記ゲートウェイインスタンスは、１つ以上の関連付けられているホストおよび／またはハイパバイザが前記マルチキャストグループを登録することを可能にする、請求項７または８に記載のシステム。
【請求項１０】
ホストサーバの少なくとも１つの前記仮想マシンは、複数の仮想インタフェースに関連付けられており、前記マルチキャストグループは、前記少なくとも１つのパケットの複数のコピーを前記少なくとも１つの前記仮想マシンに転送するように動作する、請求項７〜９のいずれか１項に記載のシステム。
【請求項１１】
前記少なくとも１つの前記仮想マシンは、前記少なくとも１つのパケットのただ１つのコピーを受け付けるように動作する、請求項１０に記載のシステム。
【請求項１２】
前記ゲートウェイインスタンスは、前記少なくとも１つのパケットを、パケット処理プロキシに関連付けられている、ホストサーバの指定された仮想インタフェースに送信するように動作し、前記ホストサーバの前記パケット処理プロキシは、前記少なくとも１つのパケットを処理するために、前記少なくとも１つのパケットを対象の仮想マシンに転送するように動作する、請求項１〜６のいずれか１項に記載のシステム。
【請求項１３】
前記パケット処理プロキシは、仮想マシン（ＶＭ）の様々な番号および仮想インタフェースの様々な番号を有するネットワークパーティションにおいて不正確なパケットを複製することなく用いられる、請求項１２に記載のシステム。
【請求項１４】
前記対象の仮想マシンは、前記ホストサーバに存在する、請求項１２または１３に記載のシステム。
【請求項１５】
前記対象の仮想マシンは、もう１つのホストサーバに存在する、請求項１２または１３に記載のシステム。
【請求項１６】
前記ゲートウェイインスタンスは、前記少なくとも１つのパケットを前記指定された仮想インタフェースに送信するためにユニキャストまたは単一メンバマルチキャストを用いる、請求項１２〜１５のいずれか１項に記載のシステム。
【請求項１７】
１つ以上のマイクロプロセッサで動作するミドルウェアマシン環境のフラッディングメカニズムをサポートするための方法であって、
少なくとも１つのパケットを、外部ポートを介して、ゲートウェイインスタンスで外部ネットワークから受け付けることを含み、前記少なくとも１つのパケットは、不明の送信先アドレスで特定され、
前記ゲートウェイインスタンスを介して、前記少なくとも１つのパケットをマルチキャストグループに送信することと、
前記マルチキャストグループを介して、前記少なくとも１つのパケットを、前記マルチキャストグループの１つ以上のホストサーバに転送することとを含む、方法。
【請求項１８】
１つ以上の仮想インタフェースに関連付けられ得る複数のコンテクストを包含するハードウェアコンテクストテーブルを提供することをさらに含む、請求項１７に記載の方法。
【請求項１９】
前記ゲートウェイインスタンスを介して、前記外部ポートで受け付けられた到達パケットが前記ハードウェアコンテクストテーブルにおけるコンテクストに関連付けられている仮想インタフェースを特定するかどうかを判断することをさらに含む、請求項１８に記載の方法。
【請求項２０】
前記外部ポートで到達パケットを受け付けることをさらに含み、前記到達パケットは、前記到達パケットが前記ハードウェアコンテクストテーブルのコンテクストのいずれにも関連付けられていない仮想インタフェースのために対象を定められた場合に、不明の送信先アドレスを有するとみなされる、請求項１９に記載の方法。
【請求項２１】
前記マルチキャストグループが、前記ゲートウェイインスタンスを共有する全てのホストおよび／またはハイパバイザを含むのを可能にすることをさらに含み、前記少なくとも１つのパケットは、すべての協働するホストサーバに複製される、請求項１７〜２０のいずれか１項に記載の方法。
【請求項２２】
前記ゲートウェイインスタンスを介して、１つ以上の関連付けられているホストおよび／またはハイパバイザが前記マルチキャストグループを登録するのを可能にすることをさらに含む、請求項１７〜２１のいずれか１項に記載の方法。
【請求項２３】
ホストサーバの少なくとも１つの仮想マシンを複数の仮想インタフェースに関連付けることをさらに含み、前記マルチキャストグループは、前記少なくとも１つのパケットの複数のコピーを前記少なくとも１つの仮想マシンに転送するように動作する、請求項１７〜２２のいずれか１項に記載の方法。
【請求項２４】
前記少なくとも１つの仮想マシンが、前記少なくとも１つのパケットの付加的なコピーの除去するのを可能にすることをさらに含む、請求項２３に記載の方法。
【請求項２５】
少なくとも１つの仮想インタフェースが１つ以上の子仮想インタフェースに関連付けられている親仮想インタフェースになるのを可能にすることをさらに含み、前記ゲートウェイインスタンスの、前記親仮想インタフェースに関連付けられているポリシ情報は、前記１つ以上の子仮想インタフェースが関連付けられ得るアドレスおよび／またはＩＤを制限し、前記親仮想インタフェースは、ハードウェアコンテクストテーブルにおけるコンテクストに関連付けられており、前記１つ以上の子仮想インタフェースの各々は、前記ハードウェアコンテクストテーブルにおけるコンテクストのいずれにも関連付けられていない、請求項１７〜２４のいずれか１項に記載の方法。
【請求項２６】
ミドルウェアマシン環境においてフラッディングメカニズムをサポートするための命令が格納された非一時的なマシン可読記録媒体であって、前記命令は、実行されると、システムに、
少なくとも１つのパケットを、外部ポートを介して、ゲートウェイインスタンスで外部ネットワークから受け付けるステップを実行させ、前記少なくとも１つのパケットは、不明の送信先アドレスで特定され、
前記ゲートウェイインスタンスを介して、前記少なくとも１つのパケットをマルチキャストグループに送信するステップと、
前記マルチキャストグループを介して、前記少なくとも１つのパケットを、前記マルチキャストグループの１つ以上のホストサーバに転送するステップとを実行させる、非一時的マシン可読記録媒体。
【請求項２７】
ミドルウェアマシン環境において１つ以上のマイクロプロセッサで動作するフラッディングメカニズムをサポートするための方法であって、
少なくとも１つのパケットを、外部ポートを介して、ゲートウェイインスタンスで外部ネットワークから受け付けることを含み、前記少なくとも１つのパケットは、不明の送信先アドレスで特定され、
前記ゲートウェイインスタンスを介して、前記少なくとも１つのパケットをホストサーバの指定された仮想インタフェースに送信することと、
前記少なくとも１つのパケットを処理するために、前記ホストサーバのパケット処理プロキシを介して、前記少なくとも１つのパケットを対象の仮想マシンに転送することとを含む、方法。
【請求項２８】
１つ以上の仮想インタフェースに関連付けられ得る複数のコンテクストを包含するハードウェアコンテクストテーブルを提供することをさらに含む、請求項２７に記載の方法。
【請求項２９】
前記ゲートウェイインスタンスを介して、前記外部ポートで受け付けられた到達パケットが前記ハードウェアコンテクストテーブルにおけるコンテクストに関連付けられている仮想インタフェースを特定するかどうかを判断することをさらに含む、請求項２８に記載の方法。
【請求項３０】
前記外部ポートで受け付けられた到達パケットが前記ハードウェアコンテクストテーブルのコンテクストのいずれにも関連付けられていない仮想インタフェースのために対象を定められた場合に、前記到達パケットが不明の送信先アドレスを有しているものとしてみなすことさらに含む、請求項２９に記載の方法。
【請求項３１】
仮想マシン（ＶＭ）の様々な番号および仮想インタフェースの様々な番号を有するネットワークパーティションにおいて不正確なパケットを複製することなく前記パケット処理プロキシを使用することをさらに含む、請求項２７〜３０のいずれか１項に記載の方法。
【請求項３２】
対象の仮想マシンが前記ホストサーバに存在するのを可能にすることをさらに含む、請求項２７〜３１のいずれか１項に記載の方法。
【請求項３３】
対象の仮想マシンがもう１つのホストサーバに存在するのを可能にすることをさらに含む、請求項２７〜３１のいずれか１項に記載の方法。
【請求項３４】
前記少なくとも１つのパケットを、ユニキャストまたは単一メンバマルチキャストを介して指定された仮想インタフェースに、前記ゲートウェイインスタンスを介して送信することをさらに含む、請求項２７〜３３のいずれか１項に記載の方法。
【請求項３５】
少なくとも１つの仮想インタフェースが１つ以上の子仮想インタフェースに関連付けられている親仮想インタフェースになるのを可能にすることをさらに含み、前記ゲートウェイインスタンスの、前記親仮想インタフェースに関連付けられているポリシ情報は、前記１つ以上の子仮想インタフェースが関連付けられ得るアドレスおよび／またはＩＤを制限し、前記親仮想インタフェースは、ハードウェアコンテクストテーブルにおけるコンテクストに関連付けられており、前記１つ以上の子仮想インタフェースの各々は、前記ハードウェアコンテクストテーブルにおけるコンテクストのいずれにも関連付けられていない、請求項２７〜３４のいずれか１項に記載の方法。
【請求項３６】
ミドルウェアマシン環境においてフラッディングメカニズムをサポートするための命令が格納された非一時的マシン可読記憶媒体であって、前記命令は、実行されると、システムに、
少なくとも１つのパケットを、外部ポートを介して、ゲートウェイインスタンスで外部ネットワークから受け付けるステップを実行させ、前記少なくとも１つのパケットは、不明の送信先アドレスで特定され、
前記ゲートウェイインスタンスを介して、前記少なくとも１つのパケットをホストサーバの指定された仮想インタフェースに送信するステップと、
前記少なくとも１つのパケットを処理するために、前記ホストサーバのパケット処理プロキシを介して、前記少なくとも１つのパケットを対象の仮想マシンに転送するステップとを実行させる、非一時的マシン可読記憶媒体。
【請求項３７】
請求項１７〜２５または２７〜３５のいずれか１項に記載の方法を実行するための、１つ以上のプロセッサによって実行するための命令を備える、コンピュータプログラム。
【請求項３８】
請求項３７に記載のコンピュータプログラムを格納するコンピュータ可読記憶媒体を備えるコンピュータプログラムプロダクト。
【請求項３９】
ミドルウェアマシン環境においてフラッディングメカニズムをサポートするためのプログラムであって、システムに、
少なくとも１つのパケットを、外部ポートを介して、ゲートウェイインスタンスで外部ネットワークから受け付けるステップを実行させ、前記少なくとも１つのパケットは、不明の送信先アドレスで特定され、
前記ゲートウェイインスタンスを介して、前記少なくとも１つのパケットをマルチキャストグループに送信するステップと、
前記マルチキャストグループを介して、前記少なくとも１つのパケットを、前記マルチキャストグループの１つ以上の前記ホストサーバに転送するステップとを実行させる、プログラム。
【請求項４０】
ミドルウェアマシン環境においてフラッディングメカニズムをサポートするためのプログラムであって、システムに、
外部ポートを介して、ゲートウェイインスタンスで外部ネットワークから少なくとも１つのパケットを受け付けるステップを実行させ、前記少なくとも１つのパケットは、不明の送信先アドレスで特定され、
前記ゲートウェイインスタンスを介して、前記少なくとも１つのパケットをホストサーバの指定された仮想インタフェースに送信するステップと、
前記少なくとも１つのパケットを処理するために、前記ホストサーバのパケット処理プロセスを介して、前記少なくとも１つのパケットを対象の仮想マシンに転送するステップとを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権に関する注意
本特許文献の開示の一部には、著作権保護の対象となるものが含まれている。著作権者は、この特許文献または特許開示の何者かによる複製が、特許商標庁の特許ファイルまたは記録にある限り、それに対して異議を唱えないが、そうでなければ、いかなる場合もすべての著作権を保有する。
【０００２】
発明の分野：
本発明は、概してコンピュータシステムおよびミドルウェアのようなソフトウェアに関し、特にミドルウェアマシン環境をサポートすることに関する。
【背景技術】
【０００３】
背景：
相互接続ネットワークは、次世代のスーパコンピュータ、クラスタ、およびデータセンタにおいて有益な役割を果たす。インフィニバンド（登録商標）（InfiniBand：ＩＢ）技術のような高性能のネットワーク技術は、高バンド幅および少ない待ち時間が重要な要件である高性能コンピューティングドメインにおいて独自のまたは低性能の解決手段に取って代わりつつある。たとえば、ＩＢ装置は、ロスアラモス国立研究所（Los  Alamos  National  Laboratory）のロードランナー（Roadrunner）、テキサスアドバンスコンピュータセンタ（Texas  Advanced  Computing  Center）のレンジャー（Ranger）、およびユーリヒ総合研究機構（Forschungszcntrum  Juelich）のジュロパ（JuRoPa）のようなスーパコンピュータに用いられる。
【０００４】
ＩＢは、フューチャ（Future）Ｉ／Ｏおよびネクストジェネレーション（Next  Generation）Ｉ／Ｏと呼ばれる２つの古い技術を統合して２０００年１０月に最初に標準化された。その少ない待ち時間、高バンド幅、およびホスト側のプロセス資源の効率的な利用のために、大型で拡張可能なコンピュータクラスタを構築するための解決手段として高性能コンピューティング（High  Performance  Computing：：ＨＰＣ）コミュニティで受け入れられつつある。事実上のＩＢのためのシステムソフトウェアは、オープンファブリクス企業配布（OpenFabrics  Eenterprise  Distribution：ＯＦＥＤ）であり、それは、献身的な専門家によって開発され、オープンファブリクス提携（OpenFabrics  Alliance）によって維持される。ＯＦＥＤは、オープンソースであり、ＧＮＵ／リナックス（Linux）（登録商標）とマイクロソフトウィンドウズ（Microsoft  Windows）（登録商標）との両方で使用できる。
【発明の概要】
【課題を解決するための手段】
【０００５】
要約：
本明細書では、ミドルウェアマシン環境のフラッディングメカニズムをサポートするためのマルチキャストグループを用いるためのシステムおよび方法について説明する。ミドルウェアマシン環境は、外部ネットワークから１つ以上のデータパケットを受け付けるための外部ポートを含むゲートウェイインスタンスを備え得る。ミドルウェアマシン環境は、１つ以上のホストサーバも備え、各ホストサーバは、データパケットを処理できる１つ以上の仮想マシンに関連付けられている。さらに、上記ホストサーバは、ゲートウェイインスタンスに関連付けられている仮想サーバに属する仮想インタフェースを提供できる。少なくとも１つの上記パケットは、それが外部ポートで受け付けられた場合に不明の送信先アドレスで特定されるフラッドパケットである。ゲートウェイインスタンスは、マルチキャストグループにフラッドパケットを送るように動作し、当該マルチキャストグループは、当該マルチキャストグループにおける１つ以上の上記ホストサーバにフラッドパケットを転送するように動作する。
【０００６】
また、本明細書では、ミドルウェアマシン環境のフラッディングメカニズムをサポートするためのパケット処理プロキシを用いるシステムおよび方法について説明する。ミドルウェアマシン環境は、外部ネットワークからデータパケットを受け付けるための外部ポートを含むゲートウェイインスタンスを備え得る。ミドルウェアマシン環境は、１つ以上のホストサーバもまた備え、各ホストサーバは、１つ以上の仮想マシンに関連付けられている。さらに、上記ホストサーバは、ゲートウェイインスタンスに関連付けられている仮想ハブに属する仮想インタフェースを提供できる。少なくとも１つの上記パケットは、それが外部ポートで受け付けられた場合に、不明の送信先アドレスで特定されるフラッドパケットである。ゲートウェイインスタンスは、ホストサーバで指定された仮想インタフェースにフラッドパケットを送信し、ホストサーバのパケット処理プロキシは、フラッドパケットを処理するために、もう１つのホストサーバの仮想マシンにこのフラッドパケットを転送し得る。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施の形態に従うミドルウェアマシン環境を示す図である。
【図２】本発明の一実施の形態に従うミドルウェアマシン環境における様々なｖＮＩＣを含む仮想ハブ（ｖＨＵＢ）を示す図である。
【図３】本発明の一実施の形態に従う、フラッディングメカニズムをサポートするためのマルチキャストグループを用いるミドルウェアマシン環境を示す図である。
【図４】本発明の一実施の形態に従うミドルウェアマシン環境におけるフラッディングメカニズムをサポートするためのマルチキャストグループを用いるフローチャートの一例を示す。
【図５】本発明の一実施の形態に従うミドルウェアマシン環境における異なるタイプのｖＮＩＣの割り振りを示す図である。
【図６】本発明の一実施の形態に従うミドルウェアマシン環境におけるフラッディングメカニズムをサポートするためのパケット処理プロキシを示す図である。
【図７】本発明の一実施の形態に従うミドルウェアマシン環境におけるフラッディングメカニズムをサポートするためのパケット処理プロキシを用いるフローチャートの一例を示す。
【発明を実施するための形態】
【０００８】
詳細な説明：
本明細書では、ミドルウェアマシンまたは同様のプラットフォームを提供するためのシステムおよび方法について説明する。本発明の一実施の形態に従うと、本システムは、たとえば６４ビットプロセッサ技術、高性能大型メモリ、ならびに冗長インフィニバンドおよびイーサネット（登録商標）ネットワーキングといった高性能ハードウェアと、ウェブロジックスイート（WebLogic  Suite）といったアプリケーションサーバまたはミドルウェア環境との組合せを備えることにより、完全なＪａｖａ（登録商標）  ＥＥアプリケーションサーバ複合体を提供する。この複合体は、大規模並列処理インメモリグリッド（massively  parallel  in-memory  grid）を含み、素早くプロビジョニングすることができ、要求に応じて拡大縮小できる。一実施の形態に従うと、本システムは、アプリケーションサーバグリッド、ストレージエリアネットワーク、およびインフィニバンド（ＩＢ）ネットワークを提供する、フルの、２分の１の、若しくは４分の１のラックまたはその他の構成として準備できる。ミドルウェアマシンソフトウェアは、アプリケーションサーバの、ミドルウェアの、または、たとえばウェブロジック（WebLogic）サーバ、ジェイロキット（JRockit）若しくはホストポット（Hostpot）ＪＶＭ、オラクルリナックス（Linux）（登録商標）若しくはソラリス（Solaris）、およびオラクルＶＭといった他の機能を提供できる。一実施の形態に従うと、本システムは、複数のコンピュータノード、ＩＢスイッチゲートウェイ、およびストレージノードもしくはユニットを含んでもよく、ＩＢネットワークを介して互いに通信する。ラック構成として実施された場合には、その未使用部分は、空のままであってもよく、または、フィラー（filler）によって占められてもよい。
【０００９】
本願明細書において「サンオラクルエクサロジック（Sun  Oracle  Exalogic」または「エクサロジック（Exalogic）」と称される本発明の一実施の形態に従うと、本システムは、オラクルミドルウェアＳＷスイット（Oracle  Middleware  SW  suite）またはウェブロジック（Weblogic）といったミドルウェアまたはアプリケーションサーバソフトウェアをホスティングするための、展開が容易なソリューションである。本明細書に記載されるように、一実施の形態に従うと、本システムは、１つ以上のサーバと、ストレージユニットと、ストレージネットワーキングのためのＩＢファブリックと、ミドルウェアアプリケーションをホストするために要求されるすべての他のコンポーネントとを備える「グリッド・イン・ア・ボックス（grid  in  a  box)」である。たとえば、リアルアプリケーションクラスタ（Real  Application  Clusters）およびエクサロジックオープンストレージ（Exalogic  open  storage）を用いて大規模並列グリッドアーキテクチャを活用することにより、すべてのタイプのミドルウェアアプリケーションのために有意な性能が与えられ得る。本システムは、リニアＩ／Ｏスケーラビリティ（linerar  I/O  scalability）とともに向上した性能を与え、使用および管理が簡易であり、重要な役割を担う（mission-critical）可用性および信頼性を与える。
【００１０】
ミドルウェアマシン環境
図１は、本発明の一実施の形態に従うミドルウェアマシン環境を示す図である。図１に示されるように、ミドルウェアマシン環境１００は、１つ以上のゲートウェイインスタンス１０２−１０３を用いて外部ネットワーク１１０に接続するＩＢファブリック１０１を含んでもよい。ＩＢファブリックは、複数のホストサーバ１０４−１０７（各ホストサーバは、ハードウェア自体であってもよく、物理的なホストサーバの上で実行されるソフトウェアであってもよい）も含み、各ホストサーバは、複数の仮想マシン（ＶＭｓ）１３１−１４０を包含する。ゲートウェイインスタンスＡ１０２およびＢ１０３の各々は、データパケットを外部ネットワーク１１０から受け付けることができる外部ポート１０８−１０９に関連付けられ得る。図１に示されるように、外部ポートＡ１０８はゲートウェイインスタンスＡ１０２に関連付けられ、外部ポートＢ１０９は、ゲートウェイインスタンスＢ１０３に関連付けられる。
【００１１】
さらに、ホストサーバは、ゲートウェイインスタンスＡ１０２およびＢ１０３を介して外部ネットワークからデータパケットを受け付けるために、仮想ネットワークインタフェースカード（ｖＮＩＣ）１２１〜１２８のような複数の仮想インタフェースを提供する。ゲートウェイインスタンス１０２および１０３は、１つ以上の仮想ハブ（ｖＨＵＢ）１１１−１１３を定義および維持することができ、各ゲートウェイインスタンスは、同一のゲートウェイインスタンスに関連付けられたｖＮＩＣを包含するＩＢファブリック側に論理レイヤ２（Ｌ２）リンクを定義する。さらに、ｖＮＩＣおよび同一のｖＨＵＢに属するホストは、関連付けられたゲートウェイインスタンスを伴うことなく互いに通信することができる。
【００１２】
図１に示されるように、ゲートウェイＡのｖＨＵＢ  Ａ１１１は、ホストサーバＡのｖＮＩＣａ１２１およびｖＮＩＣｃ１２３と、ホストサーバＢのｖＮＩＣｅ１２５とに関連付けられている。また、ゲートウェイＡのｖＨＵＢ  Ｂ１１２は、ホストサーバＡのｖＮＩＣｂと、ホストサーバＣのｖＮＩＣｆ１２６とに関連付けられ、ゲートウェイＢのｖＨＵＢＣ１１３は、ホストサーバＢのｖＮＩＣｄ１２４と、ホストサーバＤのｖＮＩＣｇ１２７およびｖＮＩＣｈ１２８とに関連付けられている。
【００１３】
図２は、本発明の一実施の形態に従う様々なｖＮＩＣを含む仮想ハブ（ｖＨＵＢ）を示す。図２に示されるように、ミドルウェアマシン環境２００は、ゲートウェイインスタンス２０１、および、複数のホストサーバ２０４および２０５またはハイパーバイザ（hypervisor）を含む。外部ポート２２０を備えるゲートウェイインスタンス２０１は、仮想ハブ（ｖＨＵＢ）、ｖＨＵＢ  Ａ２１１を保持できる。ｖＨＵＢ  Ａ２１１は、特有の仮想ＬＡＮ  ＩＤ（ＶＬＡＮ  ＩＤ）２１０を割り当てられてもよい。さらに、ｖＨＵＢ  Ａ２１１は、様々なｖＮＩＣ２２１、２２３−２２５を含んでもよく、各ｖＮＩＣは、メディアアクセスコントロール（ＭＡＣ：Media  Access  Control）アドレス２１１−２１４を割り当てられる。論理ｖＮＩＣ２２１、２２３−２２５の各々は、特定のホストチャンネルアダプタ（ＨＣＡ：Host  Channel  Adaptor）ポートに関連付けられたＭＡＣ／ＶＬＡＮ  ＩＤの組み合わせによって表されてもよい。
【００１４】
ＩＢファブリックのｖＮＩＣは、ＶＬＡＮ  ＩＤとＭＡＣアドレスとの組み合わせを含む仮想イーサネット（登録商標）インタフェース（ＶＩＦ：virtual  Ethernet  interface）を用いて一意的に識別され得る。また、ＶＩＦがゲートウェイインスタンスにおける同一のｖＨｕｂで同時に使用される場合には、異なるＭＡＣアドレスが異なるＶＩＦのために用いられる。さらに、本システムは、イーサネットのレイヤ２のＭＡＣアドレスから、論理識別子（ＬＩＤ）／グローバル識別子（ＧＩＤ）とキューペア番号（ＱＰＮ：queue  pair  number）とを用いるＩＢレイヤ２のアドレスへのアドレス変換を実行できる。
【００１５】
さらに、ゲートウェイインスタンス２０１は、ハードウェアｖＮＩＣコンテクストテーブル２３２を含んでもよく、それは、様々な項目またはハードウェアｖＮＩＣコンテクストを包含する。ハードウェアｖＮＩＣコンテクストテーブル２３２は、ゲートウェイインスタンス２０１のメモリに格納されてもよい。ホストドライバがＩＢファブリックおよびゲートウェイ２０１を介して外部イーサネットにパケットを送信している場合に、このハードウェアのｖＮＩＣコンテクストテーブル２３２は、正しい送信元アドレス情報が正しいホストによって用いられていることを確認するために用いられ得る。ハードウェアコンテクストテーブル２３２は、ゲートウェイが外部イーサネットからパケットを受け付けた場合に、ＩＢファブリックの正しいホストＨＣＡポートアドレスおよびそのＨＣＡ内のＱＰＮを調べるためにも用いられ得る。さらに、ハードウェアｖＮＩＣコンテクストは、指定されたホストコンテクスト／メモリの専用の受け付けキューに特定の論理ｖＮＩＣのためのパケットを直接導くために用いられ得る。
【００１６】
ゲートウェイインスタンス２１０は、ハードウェア自体であってもよく、または、ハードウェアスイッチの上で実行されているソフトウェアであってもよく、ネットワーク管理されたｖＮＩＣの割り振りの使用を可能にする。ゲートウェイインスタンス２０１の管理インタフェース２０３（たとえば、ＮＭ２−ＧＷサービスプロセッサ）は、特定のホスト（ＨＣＡ）ポートの代わりにハードウェアｖＮＩＣコンテクストを割り当てるために用いられてもよい。
【００１７】
ＩＢファブリックの単一のｖＮＩＣには、ハードウェアｖＮＩＣコンテクストテーブル２３２に記録されたハードウェアｖＮＩＣコンテクストが割り振らてられてもよく、割り振られなくてもよい。図２に示される例において、ホストサーバＡ２０４のｖＮＩＣａ２２１、ｖＮＩＣｂ２２２およびｖＮＩＣｃ２２３と、ホストサーバＢ２０５のｖＮＩＣｄ２２４とには、ハードウェアｖＮＩＣコンテクストが提供されてもよい（すなわち、ゲートウェイインスタンス２０１は、到達データパケットのために、ＩＢファブリック上の正しいホストＨＣＡポートアドレスと、そのＨＣＡ内のＱＰＮとを得ることができる）。さらに、ホストサーバＢ２０５のｖＮＩＣｅ２２５は、ハードウェアｖＮＩＣコンテクスト２３２を割り当てられず、ブリッジされたイーサネットコンテクストでのみ用いられ得る。一例では、ハードウェアｖＮＩＣコンテクストテーブル２３２における完全なゲートウェイハードウェアｖＮＩＣコンテクストが、ネットワーク管理されたｖＮＩＣ（たとえばｖＮＩＣａ２２１−ｄ２２４）によって消費された場合に、全てのブリッジベースのｖＮＩＣ（たとえば、ｖＮＩＣｅ２２５）は、フラッディングベースとなり得る（すなわち、専用のハードウェアｖＮＩＣコンテクストを有さない）。
【００１８】
フラッディングメカニズムは、ゲートウェイハードウェアｖＮＩＣコンテクストテーブルのサイズを越えて、論理ｖＮＩＣの数を増やすために用いられ得る。フラッドベースのｖＮＩＣを用いると、本システムは、同じ量のホスト上の受け付けキューが多数の論理ｖＮＩＣのためのパケットを受け付けることを可能にする。さらに、フラッディングメカニズムを用いると、本システムは、外部イーサネットからの初期パケット転送量が受け付けられた後に、ハードウェアｖＮＩＣコンテクストをハードウェアコンテクストテーブル２３２に規定することのできる方式することを可能にする。
【００１９】
フラッディングメカニズムをサポートするためのマルチキャストグループの使用
本発明の一実施の形態に従うと、不明な送り先を有するデータパケットがミドルウェアマシン環境のネットワークスイッチに送られた場合に、マルチキャストグループがフラッディングメカニズムをサポートするために使用され得、当該データパケットが正確に対処され得ることを確実にする。
【００２０】
図３は、本発明の一実施の形態に従う、ミドルウェアマシン環境のフラッディングメカニズムをサポートするためのマルチキャストグループの使用を示す図である。図３に示されるように、ミドルウェアマシン環境３００は、外部ネットワーク３１０に接続するゲートウェイインスタンス３０１を備えてもよい。
【００２１】
ゲートウェイインスタンス３０１は、外部ネットワーク３１０から１つ以上の到達データパケット３１１を受け付けるために適合された外部ポート３０７を含んでもよい。さらに、ミドルウェアマシン環境３００は、１つ以上のホストサーバＡ３０４−Ｃ３０６も備え、各サーバは、外部ネットワークから受け付けたデータパケットを処理するように動作する１つ以上の仮想マシン（ＶＭｓ）３４１−３４７をサポートするか、ホスト（host）し得る。ホストサーバＡ３０４−Ｃ３０６は、複数の仮想インタフェースａ３２１−ｇ３２７を提供でき、それらの中で、仮想インタフェースａ３２１とｃ３２３−ｆ３２６とが仮想ハブ（たとえば、ゲートウェイインスタンス３０１のｖＨＵＢ  Ａ３０３）に属する。仮想ハブＡ３０３の、仮想インタフェースａ３２１およびｃ３２３−ｆ３２６の各々は、異なるＭＡＣアドレス（たとえば、ＭＡＣａ３５１およびｃ３５３−ｆ３５６）にそれぞれ関連付けられ得る。
【００２２】
ゲートウェイインスタンス３０１は、外部ポートで受け付けられた到達パケットがハードウェアコンテクストテーブル３０２におけるコンテクストに関連付けられている仮想インタフェースを特定するかどうかを判断できる。もし、到達パケットで特定された仮想インタフェースがハードウェアコンテクストテーブル３０２のハードウェアコンテクストのいずれにも関連付けられていない場合には、その時には、ゲートウェイインスタンス３０１は、外部ポート３０７で受け付けられた到達パケットが不明の送信先アドレスを有しているとみなすことができ、その場合には、ゲートウェイインスタンス３０１は、このデータパケットをフラッドパケット３１２として扱ってもよく、フラッドパケット３１２に正確に対処するためのフラッディングメカニズムに依拠する。
【００２３】
本発明の一実施の形態に従うと、単一のＩＢパーティション３２０の専用のマルチキャスト（ＭＣ）グループ３１７は、データパケット３１２が正確に対処され得ることを確実にするために使用されてもよい。ＭＣグループ３１７は、仮想ハブ（たとえば、ｖＨＵＢ  Ａ３０３）に関連付けられている様々なホストＡ３０４−Ｃ３０６および／またはハイパーバイザが、ＭＣグループ３１７を登録すること、および、ＭＣグループ３１７のメンバになることを可能にする。その後、フラッドパケット３１２がゲートウェイインスタンス３０１で受け付けられた場合に、ゲートウェイインスタンス３０１は、フラッドデータパケット３１２のコピーをＭＣグループ３１７の各メンバに送信し、各メンバは、その上で実行されている様々な仮想マシンにフラッドパケット３１２を順に配布する。それゆえに、ＭＣグループ３１７は、異なる物理的なサーバ上に１つ以上のホスト３０４−３０６および／またはハイパーバイザを含むことができる。たとえば、ＭＣグループ３１７は、ゲートウェイインスタンス３０１を共有する全てのホストおよび／またはハイパーバイザを含んでもよく、フラッドパケット３１２は、全ての協働する物理的なホストサーバ３０４−３０６に複製される。
【００２４】
さらに、ホストサーバの仮想マシンは、複数の異なる仮想インタフェースに関連付けられ得る。図３に示される例において、ＶＭ  Ｄ３４４は、ｖＮＩＣｅ３２５およびｖＮＩＣｄ３２４に関連付けられている。ここで、ｖＮＩＣｅ３２５は、フラッドベースの仮想インタフェースであり、ｖＮＩＣｅ３２４は、ハードウェアｖＮＩＣコンテクストベースの仮想インタフェースである。ＭＣグループ３１７に基づくフラッディングマシンを用いると、フラッドパケット３１２は、１つのコピーが特定の各インタフェース、すなわち、ｖＮＩＣｅ３２４およびｖＮＩＣｅ３２５で受け付けられるので、同じ物理的なホスト、すなわち、ホストサーバＢ３０５に二度配信され得る。そのような場合には、ＶＭ  Ｄ３４４は、フラッドパケット３１２の付加的なコピーを除去でき、フラッドパケット３１２のただ１つのコピーが受け付けられることを確実にし、これに応じて、システムが同一の論理イーサネットサブネットに接続された複数の物理ＮＩＣを対処するのと同様の方法で、フラッドパケット３１２を処理する。
【００２５】
図４は、本発明の一実施の形態に従うミドルウェアマシン環境におけるフラッディングメカニズムをサポートするためのマルチキャストグループを用いるフローチャートの一例を示す。図４に示されるように、ステップ４０１で、ゲートウェイインスタンスの外部ポートは、外部ネットワークから少なくとも１つのパケットを受け付けることができ、少なくとも１つのパケットは、不明の送信先アドレスで特定される。その後、ステップ４０２で、ゲートウェイインスタンスは、少なくとも１つのパケットをマルチキャストグループに送信できる。さらに、ステップ４０３で、マルチキャストグループは、少なくとも１つのパケットを、マルチキャストグループにおける１つ以上の当該ホストサーバに転送できる。
【００２６】
異なるタイプのｖＮＩＣの割り振り
図５は、本発明の一実施の形態に従うミドルウェアマシン環境における異なるタイプのｖＮＩＣの割り振りを示す図である。図５に示されるように、ミドルウェアマシン環境５００は、ゲートウェイインスタンス５０１、および、様々なホストサーバおよび／またはハイパーバイザ（たとえば、ＶＭ  Ａ５４１−Ｄ５４４を有するホストサーバＢ５０５）を含む。ゲートウェイインスタンス５０１は、外部ポート５２０を備え、仮想ハブｖＨＵＢ  Ａ５０４を管理できる。ｖＨＵＢ  Ａ５０４は、特有の仮想ＬＡＮ  ＩＤ（ＶＬＡＮ  ＩＤ）５１０を割り当てられてもよい。さらに、ｖＨＵＢ  Ａ５０４は、様々なｖＮＩＣ（たとえば、ｖＮＩＣａ５２１−ｄ５２４）を含んでもよく、各ｖＮＩＣは、ＭＡＣアドレス（たとえば、ａ５１１−ｄ５１４）を割り当てられる。
【００２７】
性能を最適化するため、および、共有キューに対処するフラッドによるオーバーヘッドを減らすために、親ｖＮＩＣ（たとえば、ｖＮＩＣａ５１２）は、ゲートウェイ管理インタフェース５０３を介して割り振られてもよい。さらに、複数の子ｖＮＩＣ（たとえば、ｖＮＩＣｂ５２２−ｄ５２４）は、指定されたホストドライバ（たとえば、ホストサーバ５０５のブリッジされたイーサネットドライバ５０６）によって、ホストドライバ５０６とゲートウェイコントロール論理５０７との間の帯域内コントロールプロトコル５０８を介して作成される。
【００２８】
親ｖＮＩＣａ５２１は、ハードウェアｖＮＩＣコンテクストテーブル５０２におけるハードウェアコンテクストに基づくものであり、ゲートウェイ管理インタフェース５０３を介して特定された属性／メタデータを用いることによって割り振られてもよい。親ｖＮＩＣ５２１ａを作成するための情報は、ゲートウェイコントロール論理５０７にメタデータとして格納されてもよい。さらに、親ｖＮＩＣａ５２１のためのメタデータは、子ｖＮＩＣｂ５２２−ｄ５２４によって用いられ得、ＶＬＡＭおよびＭＡＣアドレス範囲に制限を課す異なるポリシを定義してもよい。
【００２９】
ブリッジされたイーサネットドライバ５０６は、特定のＶＩＦ（ＭＡＣ／ＶＬＡＮ）（たとえば、ＭＡＣｄ５１４）のためのハードウェアｖＮＩＣコンテクストテーブル５０２内の専用のハードウェアｖＮＩＣコンテクストを子ｖＮＩＣ（たとえば、ｖＮＩＣｄ５２４）に割り振ってもよい。そのような決定は、明確にコントロールされた、キャッシュポリシ（たとえば、ＶＭ  ＳＬＡポリシごと）に基づいてなされてもよい。さらに、フラッディングメカニズムが用いられる場合には、単一の親ｖＮＩＣａ５２１のためのハードウェアコンテクストは、送信元アドレスの確認なしにパケットを送信するために、子ｖＮＩＣｂ５２２およびｄ５２３によって用いられてもよい。全ての共有する物理的なホスト／ハイパーバイザは、互いに信頼でき、外部イーサネットは、所定のＶＬＡＮを有し得る。
【００３０】
さらに、ゲートウェイインスタンス５０１は、異なるタイプのｖＮＩＣ（たとえば、ハードウェアコンテクストベースのｖＮＩＣａ５１２およびｄ５２４、並びにフラッドベースのｖＮＩＣｂ５２２およびｃ５２３）の接続を、従来の物理的なＮＩＣの対処手段と同様の方法で扱うことができる。一例では、ゲートウェイインスタンス５０１は、並列に仮想化された（para-virtualized）、および／または、時分割された物理的なサーバごとの多数のＶＭと、ＶＭごとの多数のＶＬＡＮとの組み合わせを含む極端な使用状況に対処することができる。さらに、単一のテナントのみがゲートウェイインスタンスにおける単一のフラッドアドレスのハードウェア資源を使用できるように、本システムのマルチテナント（multi-tenant）プロビジョニングについての精度が設定され得る。
【００３１】
本発明の一実施の形態に従うと、少なくとも１つの仮想インタフェース（たとえばゲートウェイインスタンス５０１のｖＮＩＣａ５２１）は、１つ以上の子仮想インタフェース（たとえば、ｖＮＩＣｂ５２２−ｄ５２４）に関連付けられている親仮想インタフェースである。親ｖＮＩＣａ５２１には、関係する子ｖＮＩＣｂ５２２−ｄ５２４が関連付けられ得るＭＡＣアドレスとＶＬＡＮ  ＩＤとの組を制限する異なるポリシ情報が設定されてもよい。さらに、親ｖＮＩＣａ５２１には、ハードウェアコンテクストテーブル５０２におけるコンテクストが与えられてもよく、少なくとも１つの子仮想インタフェース（たとえば、ｖＮＩＣｂ５２２およびｃ５２３）は、ハードウェアコンテクストテーブルにおけるコンテクストのいずれにも関連付けられていなくてもよい。
【００３２】
フラッディングメカニズムをサポートするためのパケット処理プロキシの使用
本発明の一実施の形態に従うと、不明の送信先を有するデータパケットがミドルウェアマシン環境のネットワークスイッチに送られた場合に、パケット処理プロキシがフラッディングメカニズムをサポートするために用いられ得、データパケットが正確に扱われ得ること確実にする。
【００３３】
図６は、本発明の一実施の形態に従うミドルウェアマシン環境におけるフラッディングメカニズムをサポートするためのパケット処理プロキシの使用を示す図である。図６に示されるように、ミドルウェアマシン環境６００は、外部ネットワーク６１０に接続するゲートウェイインスタンス６０１を備えてもよい。
【００３４】
ゲートウェイインスタンス６０１は、外部ネットワーク６１０から１つ以上の到達データパケット６１１を受けるために適合された外部ポート６０７を含んでもよい。さらに、ミドルウェアマシン環境６００は、１つ以上のホストサーバＡ６０４−Ｃ６０６もまた備え、各ホストサーバは、外部ネットワークから受け付けたデータパケットを処理するように動作する１つ以上の仮想マシン（ＶＭ）６４１−６４７に関連付けられてもよい。ホストサーバ６０４−６０６は、複数の仮想インタフェース６２１−６２７を提供でき、それらのうち、仮想インタフェースａ６２１とｃ６２３−ｇ６２７とがゲートウェイインスタンスの仮想ハブ６０３に属する。仮想ハブ６０３における仮想インタフェースａ６２１とｃ６２３−ｇ６２７との各々は、異なるＭＡＣアドレス（たとえば、ＭＡＣアドレスａ６５１およびｃ６２３−ｇ６２７）にそれぞれ関連付けられ得る。
【００３５】
ゲートウェイインスタンス６０１は、外部ポートで受け付けられた到達パケットがハードウェアコンテクストテーブル６０２におけるコンテクストに関連付けられている仮想インタフェースを特定するかどうかを判断できる。到達パケットで特定された仮想インタフェースがハードウェアコンテクストテーブル６０２のコンテクストのいずれにも関連付けられていない場合には、その時には、ゲートウェイインスタンス６０１は、外部ポート６０７で受け付けられた到達パケットが不明の送信先アドレスを有しているとみなすことができ、その場合には、ゲートウェイインスタンス６０１は、このデータパケットをフラッドパケット６１２として扱うことができ、フラッドパケット６１２を正確に扱うためにフラッディングメカニズムに依拠する。
【００３６】
本発明の一実施の形態に従うと、パケット処理プロキシ６０９は、フラッディングメカニズムをサポートするために用いられてもよい。パケット処理プロキシ３０９は、外部ポートごとの、指定された単一のフラッドな送信先を提供するホストサーバ（たとえば、ホストサーバＣ６０６）に存在してもよい。たとえば、パケット処理プロキシ３０９は、ホストサーバＣ６０６のメモリに格納されてもよい。図６に示されるように、ホストサーバＣ６０６のｖＮＩＣｇ６２７は、仮想ハブＡ６０３内で不明の送信先を有し、外部ポート３０７で受け付けられたデータパケットを扱うために専用化される。ここで、ゲートウェイインスタンス６０１は、ユニキャスト、または単一メンバマルチキャスト（single-member  multicast）いずれか一方を介してフラッドパケット６１２をｖＮＩＣｇ６２７に送信できる。
【００３７】
パケット処理プロキシ６０９に基づくフラッディングメカニズムは、仮想マシン（ＶＭ）の様々な番号および仮想インタフェースの様々な番号を有するＩＢパーティション６２０において用いられてもよい。たとえば、パケット処理プロキシ６０９は、対象のＶＭ  Ｄ６４６に関連付けられているホストサーバ６０６のフラッドベースのｖＮＩＣ６２６、または、対象のＶＭ  Ｄ６４４に関連付けられている異なるホストサーバＢ６０５のフラッドベースのｖＮＩＣ６２５を表す仮想インタフェースだけにフラッドパケット６１２を転送するでもよい。ここで、対象のＶＭ  Ｄ６４４は、ハードウェアコンテクストテーブル６０２のコンテクストに関連付けられているもう１つの仮想インタフェース、ｖＮＩＣｄ６２４に関連付けられてもよい。それゆえに、パケット処理プロキシ６０９を用いることで、ゲートウェイインスタンス６０１は、異なるホストサーバ６０４−６０６の基本のネットワークスタックを混同する可能性がある不正確なパケットの複製を避けることができる。
【００３８】
本発明の一実施の形態によれば、パケット処理プロキシ６０９、ＩＢファブリックの特有のプロキシ機能は、到達パケット６１１の中間処理（たとえば、ファイアフォール、ロードバランシング（load-balancing）、または他の中間機能の実施）を実行するために用いられてもよい。パケット処理プロキシ６０９は、それが受け付けたパケットを正確に扱い、これにより、ＨＣＡリンクの効率を改善するように適合され得る。外部ポートごとの専用のフラッドアドレスが用いられる場合には、ＨＣＡリンクの効率は１００％になり得る。さらに、ファブリックにおける専用のハードウェア（すなわち、ＨＣＡポートおよび処理能力）を用いてプロキシの機能を実施することによって、ネットワークスイッチインスタンスの共有に関して、いかなる特定のハイパーバイザの組への信用にも依存することなく、そして、当然のことながら、他のＩ／Ｏまたは処理タスクとの、バンド幅／能力による衝突がない。
【００３９】
図７は、本発明の一実施の形態に従うミドルウェアマシン環境におけるフラッディングメカニズムをサポートするためのパケット処理プロキシを用いるフローチャートの一例を示す。図４に示されるように、ステップ７０１で、ゲートウェイインスタンスでの外部ポートは、外部ネットワークから少なくとも１つのパケットを受け付け、少なくとも１つのパケットは、不明の送信先アドレスで特定される。その後、ステップ７０２で、ゲートウェイインスタンスは、少なくとも１つのパケットをホストサーバの指定された仮想インタフェースに送信できる。さらに、ステップ７０３で、ホストサーバのパケット処理プロキシは、少なくとも１つのパケットを処理するために、同一またはもう１つのホストサーバの仮想マシンに少なくとも１つのパケットを転送できる。
【００４０】
概して、本発明は、ミドルウェアマシン環境において１つ以上のマイクロプロセッサで動作可能なフラッディングメカニズムをサポートするためのシステムに関し、
外部ネットワークから、ゲートウェイインスタンスで、外部ポートを介して、不明の送信先アドレスで特定される少なくとも１つのパケットを受け付けるための手段と、
ゲートウェイインスタンスを介して、少なくとも１つのパケットをマルチキャストグループに送信するための手段と、
マルチキャストグループを介して、少なくとも１つのパケットを、マルチキャストグループにおける１つ以上の上記ホストサーバに転送するための手段とを備える。
【００４１】
上記システムは、１つ以上の上記仮想インタフェースに関連付けられ得る複数のコンテクストを包含するハードウェアコンテクストテーブルを提供するための手段をさらに備える。
【００４２】
上記システムは、ゲートウェイインスタンスを介して、外部ポートで受け付けられた到達パケットがハードウェアコンテクストテーブルにおけるコンテクストに関連付けられている仮想インタフェースを特定するかどうかを判断するための手段をさらに備える。
【００４３】
上記システムは、到達パケットがハードウェアコンテクストテーブルのコンテクストのいずれにも関連付けられていない仮想インタフェースのために対象を定められた場合に、不明の送信先アドレスを有するとみなされる外部ポートで到達パケットを受け付けるための手段をさらに備える。
【００４４】
上記システムは、ゲートウェイインスタンスを共有する全てのホストおよび／またはハイパーバイザをマルチキキャストグループが含むことを可能にするための手段をさらに備え、少なくとも１つのパケットは、全ての協働するホストサーバに複製される。
【００４５】
上記システムは、ゲートウェイインスタンスを介して、１つ以上の関連付けられているホストおよび／またはハイパーバイザがマルチキャストグループを登録することを可能にするための手段をさらに備える。
【００４６】
上記システムは、ホストサーバの少なくとも１つの上記仮想マシンを複数の仮想インタフェースに関連付けるための手段をさらに備え、マルチキャストグループは、少なくとも１つのパケットの複数のコピーを少なくとも１つの上記仮想マシンに転送するように動作する。
【００４７】
上記システムは、少なくとも１つの上記仮想マシンが少なくとも１つのパケットのさらに付加的なコピーを除去することを可能にするための手段をさらに備える。
【００４８】
上記システムは、少なくとも１つの仮想インタフェースが１つ以上の子仮想インタフェースに関連付けられている親仮想インタフェースになることを可能にするための手段をさらに備え、親仮想インタフェースは、ハードウェアコンテクストテーブルのコンテクストに関連付けられており、１つ以上の子仮想インタフェースの各々は、ハードウェアコンテクストテーブルにおけるコンテクストのいずれにも関連付けられていない。
【００４９】
概して、本発明は、１つ以上のマイクロプロセッサで動作可能なミドルウェアマシン環境のフラッディングメカニズムをサポートするためのシステムにも関し、
外部ネットワークから、ゲートウェイインスタンスで、外部ポートを介して少なくとも１つのパケットを受け付けるための手段を備え、少なくとも１つのパケットは、不明の送信先アドレスで特定され、
ゲートウェイインスタンスを介して、少なくとも１つのパケットをホストサーバの指定された仮想インタフェースに送信するための手段と、
少なくとも１つのパケットを処理するために対象の仮想マシンに少なくとも１つのパケットを、ホストサーバ上のパケット処理プロセスを介して転送するための手段とを備える。
【００５０】
上記システムは、１つ以上の上記仮想インタフェースに関連付けられ得る複数のコンテクストを包含するハードウェアコンテクストテーブルを提供するための手段をさらに備える。
【００５１】
上記システムは、ゲートウェイインスタンスを介して、外部ポートで受け付けられた到達パケットがハードウェアコンテクストテーブルにおけるコンテクストに関連付けられている仮想インタフェースを特定するかどうかを判断するための手段をさらに備える。
【００５２】
上記システムは、到達パケットがハードウェアコンテクストテーブルのコンテクストのいずれにも関連付けられていない仮想インタフェースのために対象を定められた場合に、外部ポートで受け付けられた到達パケットが不明の送信先アドレスを有するとみなすための手段をさらに備える。
【００５３】
上記システムは、仮想マシン（ＶＭ）の様々な番号および仮想インタフェースの様々な番号を有するネットワークパーティションにおいて不正確なパケットを複製することなくパケット処理プロキシを用いるための手段をさらに備える。
【００５４】
上記システムは、対象の仮想マシンがホストサーバに存在することを可能にするための手段をさらに備える。
【００５５】
上記システムは、対象の仮想マシンがもう１つのホストサーバに存在することを可能にするための手段をさらに備える。
【００５６】
上記システムは、ゲートウェイインスタンスを介して、少なくとも１つのパケットを、ユニキャストまたは単一メンバマルチキャストを介して指定された仮想インタフェースに送信するための手段をさらに備える。
【００５７】
上記システムは、少なくとも１つの仮想インタフェースが１つ以上の子仮想インタフェースに関連付けられている親仮想インタフェースになることを可能にするための手段をさらに備え、親仮想インタフェースは、ハードウェアコンテクストテーブルのコンテクストに関連付けられており、１つ以上の子仮想インタフェースの各々は、ハードウェアコンテクストテーブルにおけるコンテクストのいずれにも関連付けられていない。
【００５８】
本発明は、１つ以上のプロセッサ、メモリ、および／または本開示の教示に従いプログラムされたコンピュータ可読記憶媒体を含む、従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを１つ以上用いて、適宜実現し得る。適切なソフトウェアコーディングは、熟練したプログラマが本開示の教示に基づいて容易に準備できる。これはソフトウェア技術の当業者には明らかであろう。
【００５９】
実施の形態によっては、本発明は、本発明のプロセスのうちいずれかを実行するためにコンピュータをプログラムするのに使用できる命令が格納された記憶媒体または（１つまたは複数の）コンピュータ可読記憶媒体であるコンピュータプログラムプロダクトを含む。この記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む、任意の種類のディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気若しくは光カード、ナノシステム（分子メモリＩＣを含む）、または、命令および／またはデータを格納するのに適した任意の種類の媒体若しくはデバイスを含み得るものの、これらに限定されない。
【００６０】
本発明に関するこれまでの記載は例示および説明を目的として提供されている。すべてを網羅するよう意図されておらずまたは本発明を開示された形態そのものに限定するよう意図されていない。当業者には数多くの変更および変形が明らかであろう。実施の形態は、本発明の原理およびその実際の応用を最もうまく説明することによって当業者が本発明のさまざまな実施の形態および意図している実際の用途に適したさまざまな変形を理解できるようにするために、選択され説明されている。本発明の範囲は、添付の特許請求の範囲およびその均等物によって定められることが意図されている。
【図１】
2014527330.tif 000003
【図２】
2014527330.tif 000004
【図３】
2014527330.tif 000005
【図４】
2014527330.tif 000006
【図５】
2014527330.tif 000007
【図６】
2014527330.tif 000008
【図７】
2014527330.tif 000009
【国際調査報告】
2014527330.tif 000010
2014527330.tif 000011