(54)【発明の名称】ミドルウェアマシン環境においてイーサネット(登録商標)・オーバー・インフィニバンドの仮想ハブのスケーラビリティを提供するためのシステムおよび方法
(58)【調査した分野】(Int.Cl.,DB名)
複数のホストサーバを有するサブネットを含むミドルウェアマシン環境におけるゲートウェイであって、各ホストサーバは1つ以上の仮想ネットワークインターフェイスカード(vNIC)に関連付けられ、前記ゲートウェイは、外部ネットワークに接続するよう適合されており、前記ゲートウェイは、
1つ以上の仮想ハブ(vHUB)を含み、各vHUBは1つ以上の前記VNICに関連付けられ、前記ゲートウェイはさらに、
マルチキャストパケットが前記ゲートウェイに関連付けられたvHUB内のvNICに由来するときに前記外部ネットワークおよび前記複数のホストサーバの両方に前記1つ以上のvHUBを介して前記マルチキャストパケットを転送し、前記マルチキャストパケットが前記ゲートウェイに関連付けられていないvHUB内のvNICに由来するときに、前記複数のホストサーバに前記複数のvHUBを介して前記マルチキャストパケットを転送するよう構成される転送モジュールとを含み、これにより、前記サブネットと前記外部ネットワークとの間のマルチキャストパケットトラフィックループを防止するよう構成される、ゲートウェイ。
【発明の概要】
【課題を解決するための手段】
【0006】
概要
本願明細書において、1つ以上のゲートウェイノードを含むミドルウェアマシン環境をサポートするためのシステムおよび方法を記載する。1つ以上のゲートウェイノード上に存在する1つ以上のゲートウェイは、複数のホストサーバを有するサブネットに設けられる。各ホストサーバは、1つ以上の仮想ネットワークインターフェイスカード(vNIC)に関連付けられる。ミドルウェアマシン環境はさらに、1つ以上のゲートウェイ上の複数の仮想ハブ(vHUB)を含み、各vHUBは、1つ以上の上記vNICに関連付けられる。ゲートウェイは、外部ネットワークに接続するよう適合され、マルチキャストパケットを外部ネットワークおよび複数のホストサーバの両方に複数のvHUBを介して転送し、かつサブネットと外部ネットワークとの間のマルチキャストパケットトラフィックループを防止するよう動作する。
【0007】
1つの局面では、複数のホストサーバを有するサブネットを含むミドルウェアマシン環境におけるゲートウェイが提供される。各ホストサーバは1つ以上の仮想ネットワークインターフェイスカード(vNIC)に関連付けられ、ゲートウェイは、外部ネットワークに接続するよう適合され、ゲートウェイは、1つ以上の仮想ハブ(vHUB)を含み、各vHUBは1つ以上の上記VNICに関連付けられ、ゲートウェイはさらに、外部ネットワークおよび複数のホストサーバの両方に1つ以上のvHUBを介してマルチキャストパケットを転送するよう構成される転送モジュールと、サブネットと外部ネットワークとの間のマルチキャストパケットトラフィックループを防止するよう構成される防止モジュールとを含む。
【0008】
いくつかの実施例では、サブネットはインフィニバンド(IB)サブネットである。
いくつかの実施例では、ゲートウェイは複数のvHUBを含む。
【0009】
いくつかの実施例では、同じvHUBに属するvNICおよびホストサーバは、ゲートウェイを伴うことなく、互いに通信可能である。
【0010】
いくつかの実施例では、異なるvHUBに属するvNICおよびホストサーバは、外部ネットワークを通じて互いに通信可能である。
【0011】
いくつかの実施例では、防止モジュールは、内部vNICまたはゲートウェイポートが同じ論理パケットの複数のバージョンを受け取ることを防止するようさらに構成されている。
【0012】
いくつかの実施例では、転送モジュールは、プライベートvHUBを示すマルチキャストグループに1つ以上の入力マルチキャストパケットを転送するようさらに構成されている。
【0013】
いくつかの実施例では、ゲートウェイは、送出マルチキャストパケットが、関連付けられるvHUBにおけるvNICに由来するかどうか検出するよう構成される検出モジュールをさらに含む。
【0014】
いくつかの実施例では、転送モジュールは、送出マルチキャストパケットが、関連付けられるvHUBにおけるvNICに由来すると検出モジュールが検出すると、送出マルチキャストパケットのみを外部ネットワークに転送するようさらに構成されている。
【0015】
いくつかの実施例では、ゲートウェイは、上記vNICに関連付けられる異なるソースMACアドレスを定義するようレンジレジスタの1つ以上のセットを用いるよう構成される定義モジュールをさらに含む。
【0016】
いくつかの実施例では、ゲートウェイは、ソースメディアアクセス制御(MAC)アドレスフィルタリングアプローチを用いて、異なるvHUBに属するvNIC同士の間の通信を管理するよう構成される管理モジュールをさらに含む。
【0017】
いくつかの実施例では、防止モジュールは、サブネットと外部ネットワークとの間のループにおいて、ネットワーク帯域幅資源を浪費するマルチキャストパケットを送ることを防止するとともに、内部vNICまたはゲートウェイポートが同じ論理マルチキャストパケットの複製バージョンを受け取らないことを確実にするようさらに構成されている。
【0018】
いくつかの実施例では、防止モジュールは、外部ネットワークからのマルチキャストパケットをソースMACアドレスに基づきフィルタリングすることにより、複製マルチキャストパケットについてのネットワーク帯域幅の浪費を防止するようさらに構成されている。
【0019】
別の局面では、本開示の1つの局面に従った1つのゲートウェイを含むネットワークスイッチが提供される。
【0020】
いくつかの実施例では、ネットワークスイッチは、外部ネットワークに接続するよう用いられる1つ以上の外部ポートと、複数のホストサーバに接続するよう用いられる1つ以上の内部ポートとをさらに含む。
【0021】
さらに別の局面では、本開示の別の局面に従った1つ以上のネットワークスイッチを含む、ミドルウェアマシン環境をサポートするためのシステムが提供される。
【0022】
いくつかの実施例では、システムは、上記1つ以上のネットワークスイッチを通じて複数のホストサーバに接続する別個のストレージシステムをさらに含む。
【発明を実施するための形態】
【0024】
詳細な説明
本願明細書において、ミドルウェアマシンまたは同様のプラットフォームを提供するためのシステムおよび方法を記載する。本発明の実施例に従うと、当該システムは、高性能ハードウェア(たとえば64ビットプロセッサ技術、高性能な大きなメモリ、ならびに冗長なインフィニバンドおよびイーサネット(登録商標)ネットワーキング)と、WebLogic Suiteのようなアプリケーションサーバまたはミドルウェア環境との組合せを含み、これにより、迅速に備えられ得るとともにオンデマンドでスケール変更可能な大規模並列メモリグリッドを含む完全なJava(登録商標) EEアプリケーションサーバコンプレックスを提供する。本発明の実施例に従うと、当該システムは、アプリケーションサーバグリッド、ストレージエリアネットワーク、およびインフィニバンド(IB)ネットワークを提供するフルラック、ハーフラック、もしくはクォーターラック、または他の構成として展開され得る。ミドルウェアマシンソフトウェアは、たとえばWebLogic Server、JRockitまたはHotspot JVM、Oracle Linux(登録商標)またはSolaris、およびOracle VMといった、アプリケーションサーバと、ミドルウェアと、他の機能性とを提供し得る。本発明の実施例に従うと、当該システムは、IBネットワークを介して互いに通信する複数の計算ノードと、1つ以上のIBスイッチゲートウェイと、ストレージノードまたはユニットとを含み得る。ラック構成として実施される場合、当該ラックの未使用部分は、空のままとされるか、またはフィラー(filler)によって占有され得る。
【0025】
本願明細書において「Sun Oracle Exalogic」または「Exalogic」と称される本発明の実施例に従うと、当該システムは、Oracle Middleware SW suiteまたはWeblogicといったミドルウェアまたはアプリケーションサーバソフトウェアをホスティングするための、展開が容易なソリューションである。本願明細書に記載されるように、実施例に従うと、当該システムは、1つ以上のサーバと、ストレージユニットと、ストレージネットワーキングのためのIBファブリックと、ミドルウェアアプリケーションをホストするために要求されるすべての他のコンポーネントとを含む「グリッド・イン・ア・ボックス(grid in a box)」である。たとえばReal Application ClustersおよびExalogic open storageを用いて大規模並列グリッドアーキテクチャを活用することにより、すべてのタイプのミドルウェアアプリケーションのために有意な性能が与えられ得る。このシステムは、線形のI/Oスケーラビリティとともに向上した性能を与え、使用および管理が簡易であり、ミッションクリティカルな可用性および信頼性を与える。
【0026】
図1は、本発明の実施例に従った、ミドルウェアマシンのための例示的な構成の図を示す図である。
図1に示されるように、ミドルウェアマシン100は、28のサーバノードに接続する2つのゲートウェイネットワークスイッチまたはリーフネットワークスイッチ102および103を含む単一のラック構成を用いる。さらに、ミドルウェアマシンについては、異なる構成が存在し得る。たとえば、サーバノードの一部を含むハーフラック構成が存在し得るとともに、多数のサーバを含むマルチラック構成も存在し得る。
【0027】
図1に示されるように、サーバノードは、ゲートウェイネットワークスイッチによって与えられるポートに接続し得る。
図1に示されるように、各サーバマシンは、2つのゲートウェイネットワークスイッチ102および103への接続を別個に有し得る。たとえば、ゲートウェイネットワークスイッチ102は、サーバ1〜14のポート1である106と、サーバ15〜28のポート2である107とに接続し、ゲートウェイネットワークスイッチ103は、サーバ1〜14のポート2である108と、サーバ15〜28のポート1である109とに接続する。
【0028】
本発明の実施例に従うと、各ゲートウェイネットワークスイッチは、異なるサーバと接続するのに用いられる複数の内部ポートを有し得るとともに、ゲートウェイネットワークスイッチは、既存のデータセンタサービスネットワークといった外部ネットワークと接続するのに用いられる外部ポートも有し得る。
【0029】
本発明の実施例に従うと、当該ミドルウェアマシンは、ゲートウェイネットワークスイッチを通ってサーバに接続する別個のストレージシステム110を含み得る。さらに、当該ミドルウェアマシンは、2つのゲートウェイネットワークスイッチ102および103に接続するスパインネットワークスイッチ(spine network switch)101を含み得る。
図1に示されるように、ストレージシステムからスパインネットワークスイッチへの2つのリンクが随意に存在し得る。
【0030】
IBファブリック/サブネット
本発明の実施例に従うと、ミドルウェアマシン環境におけるIBファブリック/サブネットは、ファット・ツリー・トポロジ(fat-tree topology)において相互接続される多数の物理的なホストまたはサーバ、スイッチインスタンス、およびゲートウェイインスタンスを含み得る。
【0031】
図2は、本発明の実施例に従った、ミドルウェアマシン環境の図を示す図である。
図2に示されるように、ミドルウェアマシン環境200は、複数のエンドノードと接続するIBサブネットまたはファブリック220を含む。IBサブネットは、各々が複数のネットワークスイッチ201〜204の1つに存在する複数のサブネットマネージャ211〜214を含む。これらのサブネットマネージャは、管理データグラム(Management Datagram;MAD)/サブネット管理パケット(Subnet Management Packet;SMP)に基づくプロトコルのような帯域内通信プロトコル210、またはインターネットプロトコル・オーバー・IB(Internet Protocol over IB;IPoIB)のような他のプロトコルを用いて互いに通信し得る。
【0032】
本発明の実施例に従うと、単一のIPサブネットは、同じIBファブリックにおいてスイッチ同士が確実に互いに通信すること(すなわちすべてのスイッチの間での完全な接続性)を可能にするIBファブリック上に構成され得る。このファブリックに基づくIPサブネットは、作動状態のリンクを有する少なくとも1つルートが任意の対のスイッチの間に存在する場合に、当該2つのスイッチ同士の間の接続性を提供し得る。リルーティングにより代替的なルートが存在する場合には、リンク障害からの回復が達成され得る。
【0033】
これらのスイッチの管理イーサネット(登録商標)インターフェイスは、すべてのスイッチ同士の間にIPレベルの接続性を提供する単一のネットワークに接続され得る。各スイッチは、外部の管理イーサネット(登録商標)のためのIPアドレスと、ファブリックに基づくIPサブネットのためのIPアドレスとの2つの主なIPアドレスによって識別され得る。各スイッチは、両方のIPアドレスを用いて、すべての他のスイッチへの接続性を監視し得るとともに、通信のために、いずれかの使用可能なアドレスを用い得る。さらに、各スイッチは、ファブリック上において、各々の直接的に接続されたスイッチへのポイント・ツー・ポイントIPリンクを有し得る。したがって、少なくとも1つの付加的なIPアドレスが存在し得る。
【0034】
IPルーティングセットアップにより、ネットワークスイッチが、ファブリックIPサブネットと、外部の管理イーサネット(登録商標)ネットワークと、スイッチの対の間の1つ以上のファブリックレベルのポイント・ツー・ポイントIPリンクとの組合せを用いて、中間のスイッチを介して別のスイッチにトラフィックをルーティングすることが可能になる。IPルーティングにより、ネットワークスイッチへの外部の管理アクセスが、ネットワークスイッチ上の外部のイーサネット(登録商標)ポートを介して、かつファブリック上の専用のルーティングサービスを通じて、ルーティングされることが可能になる。
【0035】
IBファブリックは、管理ネットワークへの管理イーサネット(登録商標)アクセスを有する複数のネットワークスイッチを含む。ファブリックにおけるスイッチ同士の間の帯域内の物理的な接続性が存在する。一例では、IBファブリックが劣化しない場合には、スイッチの各対同士の間に1つ以上のホップの少なくとも1つの帯域内ルートが存在する。IBファブリックのための管理ノードは、ネットワークスイッチと、IBファブリックに接続される管理ホストとを含む。
【0036】
サブネットマネージャは、そのプライベートIPアドレスのいずれかを介してアクセスされ得る。サブネットマネージャはさらに、サブネットマネージャがマスターサブネットマネージャとしての役割を担う際に、マスターサブネットマネージャのために構成されるフローティングIPアドレスを介してアクセス可能であり得、当該サブネットマネージャは、当該役割から明示的に解放される際には、構成解除される。外部の管理ネットワークと、ファブリックに基づく管理IPネットワークとの両方のためにマスターIPアドレスが定義され得る。ポイント・ツー・ポイントIPリンクのために特別なマスターIPアドレスが定義される必要はない。
【0037】
本発明の実施例に従うと、各物理的なホストは、バーチャルマシンに基づくゲストを用いて仮想化され得る。たとえばCPUコアごとに1つのゲストといったように、物理的なホストごとに同時に複数のゲストが存在し得る。さらに、各物理的なホストは、デュアルポートが設けられた少なくとも1つのホストチャネルアダプタ(HCA)を有し得る。当該ホストチャネルアダプタは、仮想化されるとともに、ゲスト同士の間で共有され得る。そのため、仮想化されたHCAのファブリックビューは、ちょうど仮想化/共有されていないHCAのような、デュアルポートが設けられた単一のHCAである。
【0038】
IBファブリックは、IBパーティションによって実現される資源ドメインの動的なセットへと分けられ得る。IBファブリックにおける各物理的なホストおよび各ゲートウェイインスタンスは、複数のパーティションのメンバーであり得る。さらに、同じまたは異なる物理的なホスト上の複数のゲストが、同じまたは異なるパーティションのメンバーとなり得る。IBファブリックのためのIBパーティションの数は、P_キーのテーブルサイズによって制限されてもよい。
【0039】
本発明の実施例に従うと、ゲストは、当該ゲストにおけるvNICドライバから直接的にアクセスされる2つ以上のゲートウェイインスタンス上にて、仮想ネットワークインターフェイスカード(vNICs)のセットを開き得る。ゲストは、更新されたvNIC関連付けを保持しつつまたは有しつつ、物理的なホスト同士の間を移行し得る。
【0040】
本発明の実施例に従うと、スイッチは、任意の順番で始動し得、たとえばIBが特定された交渉プロトコルのような異なる交渉プロトコルに従って、マスターサブネットマネージャを動的に選択し得る。パーティショニングポリシーが特定されていない場合、デフォルトのパーティショニングイネーブルポリシーが用いられ得る。さらに、管理ノードパーティションおよびファブリックに基づく管理IPサブネットは、任意の付加的なポリシー情報と独立して、かつ完全なファブリックポリシーをマスターサブネットマネージャが知っているかどうかから独立して、確立され得る。ファブリックレベル構成ポリシー情報がファブリックに基づくIPサブネットを用いて同期されるよう、サブネットマネージャは、デフォルトのパーティションポリシーを用いて最初に始動し得る。ファブリックレベルの同期が達成されると、ファブリックについて現在のパーティション構成が、マスターサブネットマネージャによってインストールされ得る。
【0041】
イーサネット(登録商標)・オーバー・IB(Ethernet(登録商標) over IB;EOIB)のvHUBのスケーラビリティの提供
本発明の実施例に従うと、当該システムは、IBファブリック上のメンバーホストポートの数と、外部のイーサネット(登録商標)ファブリック上の対応するL2サブネットに接続するゲートウェイポートの数との両方の点でスケール変更するイーサネット(登録商標)・オーバー・IB(EOIB)レベル2(L2)サブネットインプリメンテーションを提供し得る。
【0042】
図3は、本発明の実施例に従った、EOIBのvHUBのスケーラビリティを提供するミドルウェアマシン環境の図を示す図である。
図3に示されるように、ミドルウェアマシン環境300は、複数のホストサーバ304〜307と外部のローカルエリアネットワーク(LAN)301とに接続され得るIBサブネット/ファブリック320を含む。IBファブリックは、異なるvNIC321〜328に関連付けられるいくつかのゲートウェイ302〜303を含む。各ゲートウェイインスタンスは、1つ以上のマイクロプロセッサを含むゲートウェイノード308〜309上に存在し得、ゲートウェイインスタンスにおけるコアゲートウェイ機能は、「データパス」動作を用いてハードウェアにおいて実現され得る。
【0043】
本発明の実施例に従うと、当該システムにおけるゲートウェイは、異なるvHUBに関連付けられ得る。各vHUBは、同じゲートウェイインスタンスに関連付けられるvNICを含むIBファブリック側にて、論理レベル2リンクを定義する。同じvHUBに属するvNICおよびホストは、関連付けられるゲートウェイインスタンスを伴うことなく互いに通信し得る。
【0044】
図3に示されるような例では、ゲートウェイA上のvHUB I 311は、ホストサーバA上のvNIC a 321およびvNIC c 323と、ホストサーバB上のvNIC e 325に関連付けられる。したがって、vNIC a、vNIC c、およびvNIC eは、関連付けられるゲートウェイAを伴うことなく互いに通信し得る。さらに、
図3に示されるように、ゲートウェイA上のvHUB II 312は、ホストサーバA上のvNIC b 322と、ホストサーバC上のvNIC f 326とに関連付けられる。ゲートウェイB上のvHUB III 313は、ホストサーバB上のvNIC d 324と、ホストサーバD上のvNIC g 327およびvNIC h 328とに関連付けられる。
【0045】
本発明の実施例に従うと、いくつかのvHUBは、同じ論理イーサネット(登録商標)L2リンクおよび/または同じレベル3(L3)IPサブネットを示し得る。
図3に示されるような例では、ゲートウェイA302およびゲートウェイB303の両方は、同じ外部のLAN301に複数のゲートウェイポートを介して接続する。異なるvHUB311〜313に属するさまざまなvNIC321〜328は、外部のLAN301を通じて互いに接続および通信し得るか、または代替的にはIBファブリック上のホストによって実現されるルーティングロジックによって互いに接続および通信し得る。
【0046】
本発明の実施例に従うと、別個のIPサブネット(IPoIBまたはEoIB)が、IBファブリック上のホスト同士の間およびホストと外部のLANとの間にて高帯域IPトラフィックを扱うためにIBファブリック側に設けられ得る。IBファブリック側のこの別個のIPサブネットは、IBファブリック上のホスト同士の間のトラフィックについてゲートウェイ帯域幅を浪費することを回避し得る。さらに、複数のIPサブネットが望ましくない場合、内部IBファブリック上にて、異なるvHUBに属するvNIC同士の間の通信を許可することは有用であり得る。
【0047】
図3に示されるような例では、複数のvHUB311〜313がともに接続される場合、マルチキャストパケットが、ゲートウェイインスタンス302〜303を通って外部のLAN301と、IBファブリックにおけるホストサーバ304〜307上のメンバーホストポートとの両方に転送され得る。たとえば、IBファブリック302における第1のゲートウェイポートは、マルチキャストパケットを外部のLAN301に送り得、外部のLAN301は、当該マルチキャストパケットをIBファブリック320における第2のゲートウェイポートに送り返し得る。次いで、第2のゲートウェイポートは、IBファブリック上にて、上記マルチキャストパケットを再び転送し得る。これにより、IBファブリック320と外部ネットワーク301との間のトラフィックループが発生し得る。さらに、内部vNIC321〜328およびゲートウェイポートは、同じ論理パケットの複数のバージョンを受け取り得る。
【0048】
外部ネットワークからIBファブリックへのトラフィックに関係するインバウンドのパケットループ問題を解決するために、ゲートウェイインスタンスは、入力されるマルチキャストパケットを、プライベートvHUBを示すIBマルチキャストグループに転送し得る。プライベートvHUBは、単一のゲートウェイメンバーを有するとともに、各vNICが単一のプライベートvHUBのメンバーとなることを可能にする。
【0049】
IBファブリックから外部ネットワークへのトラフィックに関係するアウトバウンドのパケットループ問題を解決するために、各ゲートウェイインスタンスは、ローカルのIBファブリックから受け取られるマルチキャストパケットがそのプライベートvHUBにおけるvNICに由来するかどうかを検出し得る。ゲートウェイインスタンスは、当該マルチキャストパケットがそのプライベートvHUBにおけるvNICに由来するものであれば、当該マルチキャストパケットを外部ネットワークに転送するよう進み得る。このような決定を行うのに、専用のハードウェアロジックが用いられ得る。一例では、この専用ハードウェアロジックは、ローカルのvNICについての情報か、またはプライベートvHUBにおけるソース媒体アクセス制御(MAC)アドレスについてのレンジレジスタの1つ以上のセットのいずれかを用い得る。
【0050】
本発明の実施例に従うと、代替的なアプローチでは、異なるプライベートvHUB同士の間を転送されるマルチキャストパケットは、内在するIBマルチキャストグループが常に単一のプライベートvHUBに限定されるように外部のLANを伴わなければならないということが要求され得る。同時に、ユニキャストトラフィックは、複数のvHUBに亘り得る。この代替的なアプローチは、インバウンドのループ問題を解決し得るとともに、さらにマルチキャストパケットの単一のバージョンのみがIBファブリックから外部のLANへと転送されることを確実にし得る。
【0051】
本発明の実施例に従うと、異なるvHUBに属するvNICの間の通信は、外部のイーサネット(登録商標)LANを介する外部のゲートウェイポート同士の間の接続性に依存することなく、実現され得る。ユニキャストトラフィックの場合、ホストvNICドライバは、宛先のMAC/vNICが関連付けられるIBファブリック上の宛先ポートに単一のパケットを明示的に送り得る。さらに、ホストvNICドライバは、異なるvHUBに属する宛先vNICに単一のパケットを送り得る。マルチキャストトラフィックの場合、当該システムは、単一のゲートウェイインスタンスのみが、特定のマルチキャストパケットを特定のホストまたはvNICから外部のLANに転送することを確実にし得る。さらに、同じ論理マルチキャストパケットを受け取る複数のゲートウェイインスタンスは、外部のLANからIBファブリック上の同じホストまたはvNICへ同じ論理マルチキャストパケットを転送し得ない。
【0052】
本発明の実施例に従うと、特別なグローバルなvHUBマルチキャストグループは、プライベートvHUB同士の間のマルチキャスト転送について、外部のLANへの依存を回避し得、さらにマルチキャストパケットの単一のバージョンのみがIBファブリックから外部のLANへ転送されることを確実にし得る。この特別なグローバルなvHUBマルチキャストグループは、IBファブリック上に、単一のゲートウェイインスタンスと、すべての関連するvNICとだけを含み得る。このアプローチを用いると、システムは、IBファブリックと外部のLANとの間においてトラフィックについてループが作られることを回避し得る。さらに、別のプライベートvHUBにおけるvNICに由来するマルチキャストパケットの複数のコピーを受け取ることを回避するために、EoIBドライバは、マルチキャストパケットのソースMACが、対応するグローバルのvHUBにおけるvNICからの場合、そのプライベートvHUBにおけるゲートウェイから届いたマルチキャストパケットを破棄するロジックを含み得る。
【0053】
このアプローチの制約は、グローバルのvHUBにおけるパケット転送と、外部のLANからパケットを受け取るさまざまなプライベートvHUBにおけるパケット転送との両方により、IBファブリック上にてより多くの帯域幅が消費され得ることである。さらに、マルチキャストパケットを送ることについて、単一のイーグレスゲートウェイインスタンスのみの制限は、現在のイーグレスゲートウェイインスタンスの障害の後で外部のマルチキャスト送信能力を回復させるために、ボンディングおよび他のホストに基づくIPマルチパススキームがグローバルのvHUBの再構成に依存することが要求され得ることである。したがって、IBファブリックから外部のLANへのマルチキャスト帯域幅は、単一のイーグレスゲートウェイインスタンスによっても限定され得る。
【0054】
本発明の実施例に従うと、システムは、ソースMACアドレスフィルタリングアプローチを用いて、異なるvHUBに属するvNIC同士の間の通信を管理し得る。
図3に示されるような例では、IBファブリック320における各ゲートウェイインスタンス302〜303は、外部のLAN301から受け取られたマルチキャストパケットのソースMACアドレスがローカルのIBファブリック320上の関連するvNIC321〜328に属するかどうか検出し得る。
【0055】
本発明の実施例に従うと、システムは、ローカルのIBファブリック上の関連するvNICに属するソースMACアドレスを定義するレンジレジスタの1つ以上のセットを用い得、これによりIBファブリックと外部のLANとの間のループにおいて、ネットワーク帯域幅資源を浪費するマルチキャストパケットを送ることを防止するとともに、内部vNICまたはゲートウェイポートが同じ論理マルチキャストパケットの複製バージョンを受け取らないことを確実にする。
【0056】
本発明の実施例に従うと、システムは、専用のマルチキャストグループを用いてマルチキャストパケットをIBファブリック上のvNICに配信し得るが、如何なるゲートウェイインスタンスにも配信しない。マルチキャストパケットのただ1つのコピーがただ1つのゲートウェイ外部ポートを介して外部のLANに送られることを確実にするために、vNICドライバは、パケットを単一のゲートウェイ(たとえばローカルのvNICが属するvHUBに関連付けられるもの)に送り得る。このマルチキャストパケットは次いで、外部のイーサネット(登録商標)LANを介して他のゲートウェイ外部ポートによって受け取られ得、他のvHUBに属するvNICに複製される。
【0057】
受取りを行うvNICドライバは、パケットにおけるソースMACは、同じ論理サブネットの一部であるIBファブリック上のvNICに属すると判断し得る。次いで、vNICドライバは、当該パケットがIBファブリック上の上記専用のマルチキャストグループを介してすでに受け取られているかまたは受け取ることになるので、当該パケットを破棄し得る。他方、受け取られたマルチキャストパケットのソースアドレスが、外部のイーサネット(登録商標)LAN(すなわちローカルのIBファブリック上のvNICに対して外部)上のステーションに属すると判断された場合、マルチキャストパケットはそれに応じて、処理され得る。
【0058】
本発明の実施例に従うと、マルチキャストパケットのコピーをフィルタリングするためのスキームにより、IBファブリック上のグローバルのvHUB内のマルチキャストパケットを転送するのに1つのグローバルのマルチキャストグループを用いることが可能になるとともに、さらに、送り手のEoIBドライバが、そのプライベートvHUBにおけるゲートウェイインスタンスによって、たとえばユニキャストを介して転送されるべき別のパケットのコピーを明示的に送ることを許可することを可能にする。このスキームにより、任意の数のゲートウェイインスタンスが、アウトバウンドのMCトラフィックのためのイーグレスポート(すなわち1つのプライベートvHUBにつき1つのアクティブなイーグレスゲートウェイ)として用いられることが可能になる。
【0059】
本発明の実施例に従うと、ハイブリッドのL2リンクがIBファブリックにおいて用いられ得、その場合、IPoIBリンクに類似した単一のIBファブリックの内部EoIBvHUBが、外部のトラフィックのためにのみ用いられる1つ以上のvHUBと組み合され得る。ソースアドレスに基づき外部のLANからのマルチキャストパケットをフィルタリングするゲートウェイの能力により、複製マルチキャストパケットについてのIBファブリック帯域幅の浪費が防止され得る。
【0060】
本発明の実施例に従うと、IPoIBコネクテッドモード(Connected Mode;CM)がEoIBに基づくIPトラフィックよりも良好な帯域幅を提供する状況の場合、当該IPoIB CMは、EoIBとマージされ得、これにより、単一のIPサブネットが、IBファブリック上の任意の数のノードと、外部のLAN上の任意の数のゲートウェイインスタンスおよびノードとに及ぶことを可能にする一方、それでも、如何なるエンドポイントの対同士の間でも、得られる限り最良な帯域幅を提供する。
【0061】
図4は、実施例に従った、ミドルウェアマシン環境においてスケーラビリティを提供するための例示的なフローチャートを示す図である。
図4に示されるように、ステップ401では、1つ以上のゲートウェイが複数のホストサーバを有するサブネットに設けられ得、ホストサーバの各々は、1つ以上の仮想ネットワークインターフェイスカード(vNIC)に関連付けられる。次いで、ステップ402では、複数の仮想ハブ(vHUB)が、1つ以上のゲートウェイ上に設けられ得、各vHUBが1つ以上の上記VNICに関連付けられる。さらに、ステップ403では、1つ以上のゲートウェイが外部ネットワークに接続され得る。さらに、ステップ404では、上記1つ以上のゲートウェイは、マルチキャストパケットを外部ネットワークと複数のホストサーバとの両方に複数のvHUBを介して転送し得る。最後に、ステップ405では、上記1つ以上のゲートウェイは、サブネットと外部ネットワークとの間でマルチキャストパケットトラフィックループを防止し得る。
【0062】
いくつかの実施例に従うと、
図5は、上述したような本発明の原理に従って構成されるゲートウェイ500の機能ブロック図を示す。
図6は、上述したような本発明の原理に従って構成されるネットワークスイッチ600の機能ブロック図を示す。ネットワークスイッチ600は、
図5に示されるようなゲートウェイ500を含む。ゲートウェイおよびネットワークスイッチの機能ブロックは、本発明の原理を実施するために、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組合せによって実現され得る。当業者であれば、
図5および
図6に記載される機能ブロックは、上述したような本発明の原理を実現するために、組み合されてもよく、またはサブブロックへと分離されてもよいということが理解される。したがって、本願明細書における記載は、本願明細書において記載される機能ブロックの任意の可能な組合せ、分離、またはさらに他の定義をサポートし得る。
【0063】
ゲートウェイ500は、
図3に示されるような複数のホストサーバを有するサブネットを含むミドルウェアマシン環境において動作する。各ホストサーバは、1つ以上の仮想ネットワークインターフェイスカード(vNIC)に関連付けられる。ゲートウェイ500は、外部ネットワークに接続するよう適合される。
【0064】
図5に示されるように、ゲートウェイ500は、1つ以上の仮想ハブ(vHUB)502と、転送モジュール504と、防止モジュール506とを含み得る。
【0065】
いくつかの実施例では、各vHUB502は1つ以上のVNICに関連付けられる。転送モジュール504は、複数のvHUB502を介して外部ネットワークと複数のホストサーバとの両方にマルチキャストパケットを転送するよう構成される。防止モジュール506は、サブネットと外部ネットワークとの間のマルチキャストパケットトラフィックループを防止するよう構成される。
【0066】
いくつかの実施例では、サブネットは、インフィニバンド(IB)サブネットである。いくつかの実施例では、ゲートウェイ500は複数のvHUB502を含む。いくつかの実施例では、同じvHUB504に属するvNICおよびホストサーバは、関連付けられるゲートウェイインスタンスを伴うことなく互いに通信し得る。いくつかの実施例では、異なるvHUB504に属するvNICおよびホストサーバは、外部ネットワークを通じて互いに通信し得る。
【0067】
いくつかの実施例では、防止モジュール506はさらに、内部vNICまたはゲートウェイポートが同じ論理パケットの複数のバージョンを受け取ることを防止するよう構成され得る。いくつかの実施例では、転送モジュール504は、プライベートvHUB502を示すマルチキャストグループに1つ以上の入力マルチキャストパケットを転送するようさらに構成され得る。
【0068】
いくつかの実施例では、代替的には、ゲートウェイ500は、送出マルチキャストパケットが、関連付けられるvHUB502におけるvNICに由来するかどうかを検出するよう構成される検出モジュール508をさらに含み得る。送出マルチキャストパケットが、関連付けられるvHUB502におけるvNICに由来するということを検出モジュール508が検出すると、転送モジュール504は、送出マルチキャストパケットのみを外部ネットワークに転送するようさらに構成され得る。
【0069】
いくつかの実施例では、ゲートウェイ500は、vNICに関連付けられる異なるソースMACアドレスを定義するようレンジレジスタの1つ以上のセットを用いるよう構成される定義モジュール510をさらに含み得る。
【0070】
いくつかの実施例では、ゲートウェイ500は、ソースメディアアクセス制御(MAC)アドレスフィルタリングアプローチを用いて、異なるvHUB502に属するvNIC同士の間の通信を管理するよう構成される管理モジュール512をさらに含み得る。防止モジュール506は、サブネットと外部ネットワークとの間のループにおいて、ネットワーク帯域幅資源を浪費するマルチキャストパケットを送ることを防止するとともに、内部vNICまたはゲートウェイポートが同じ論理マルチキャストパケットの複製バージョンを受け取らないことを確実にするようさらに構成され得る。
【0071】
いくつかの実施例では、防止モジュール506は、ソースMACアドレスに基づき外部ネットワークからのマルチキャストパケットをフィルタリングすることにより複製マルチキャストパケットについてのネットワーク帯域幅の浪費を防止するようさらに構成され得る。
【0072】
図6に示されるように、ネットワークスイッチ600は、
図5に示されるような1つのゲートウェイ500を含み得る。いくつかの実施例では、ネットワークスイッチ600は、1つ以上の外部ポート604と、1つ以上の内部ポート608とをさらに含み得る。外部ポート604は、外部ネットワークに接続するよう用いられる。内部ポート608は、ミドルウェアマシン環境における複数のホストサーバに接続するよう用いられる。
【0073】
いくつかの実施例では、ミドルウェアマシン環境をサポートするためのシステムが設けられ、当該システムは、
図6に示されるような1つ以上のネットワークスイッチ600を含む。システムは、上記1つ以上のネットワークスイッチ600を通じて複数のホストサーバに接続する別個のストレージシステムをさらに含み得る。
【0074】
本発明は、1つ以上のプロセッサ、メモリ、および/または本開示の教示に従ってプログラムされたコンピュータ可読記憶媒体を含む1つ以上の従来の汎用または専用デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを用いて簡便に実施され得る。ソフトウェア技術の当業者には明らかであるように、適切なソフトウェアコーディングは、熟練したプログラマによって本開示の教示に基づき容易に用意され得る。
【0075】
いくつかの実施例では、本発明は、本発明の処理のいずれかを実行するようコンピュータをプログラムするのに用いられ得る命令を格納した記憶媒体またはコンピュータ可読媒体であるコンピュータプログラムプロダクトを含む。当該記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリ素子、磁気または光学カード、ナノシステム(分子メモリICを含む)、または命令および/またはデータを格納するのに好適な任意のタイプの媒体もしくは装置を含み得るが、これらに限定されない。
【0076】
本発明の上記の記載は、例示および説明目的で与えられている。網羅的であることまたは開示されたそのものの形態に本発明を限定することを意図したものではない。当業者にとっては、多くの修正例および変形例が明確であろう。上記の実施例は、本発明の原理およびその実際的な適用をもっともよく説明するために選択および記載されたものであり、これにより他の当業者が、特定の使用に好適なさまざまな修正例を考慮して、さまざまな実施例について本発明を理解するのが可能になる。本発明の範囲は、添付の特許請求の範囲およびそれらの均等物によって定義されることが意図される。