(57)【要約】  システムおよび方法は、ファットツリートポロジにおける複数のスイッチを用いてミドルウェアマシン環境におけるトラフィック輻輳を防止し得る。サブネットマネージャは、ミドルウェアマシン環境におけるサブネットをスイープし、変更を発見してサブネットを完全に接続された状態に維持し得る。パフォーマンスマネージャは、サブネット内の１つ以上のコンポーネントに関連付けられる１つ以上のパフォーマンス管理エージェントからパフォーマンスおよびエラー関連の情報を取り出し得る。そして、ホストは、ネットワークパフォーマンスを向上させるために１つ以上の仮想レーンを動的に再構成し得る。
2015503274.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のマイクロプロセッサ上で動作するミドルウェアマシン環境におけるトラフィック輻輳を緩和するための方法であって、
サブネットマネージャを介して、前記ミドルウェアマシン環境におけるサブネットをスイープし、変更を発見して前記サブネットを完全に接続された状態に維持するステップと、
パフォーマンスマネージャを介して、前記サブネット内の１つ以上のコンポーネントに関連付けられる１つ以上のパフォーマンス管理エージェントからパフォーマンスおよびエラー関連の情報を取り出すステップと、
ネットワークパフォーマンスを向上させるためにホストがアドレス指定状態情報を動的に再構成することを可能にするステップとを備える、方法。
【請求項２】
前記ミドルウェアマシン環境におけるファットツリートポロジをサポートするステップをさらに備える、請求項１に記載の方法。
【請求項３】
前記ミドルウェアマシン環境における前記ファットツリートポロジが簡潔なファットツリートポロジであることを可能にするステップをさらに備える、請求項２に記載の方法。
【請求項４】
前記ミドルウェアマシン環境における前記ファットツリートポロジがオーバーサブスクライブされたファットツリートポロジであることを可能にするステップをさらに備える、請求項２に記載の方法。
【請求項５】
ルーティングアルゴリズムを用いて、ソースノードから宛先ノードに転送されるパケットの無デッドロック性を保証するステップをさらに備える、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記ルーティングアルゴリズムが、前記ソースノードおよび前記宛先ノードの最小共通先祖ノードを介して前記パケットを転送することを可能にするステップをさらに備える、請求項５に記載の方法。
【請求項７】
前記ルーティングアルゴリズムが、前記パケットが前記ソースノードから前記最小共通先祖ノードに転送される上りステージと、前記パケットが前記最小共通先祖ノードから前記宛先に転送される下りステージとを含むことを可能にするステップをさらに備える、請求項６に記載の方法。
【請求項８】
前記ミドルウェアマシン環境における１つ以上の物理リンクを複数の仮想レーンに関連付けるように構成するステップをさらに備える、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
１つ以上のパフォーマンスカウンタを、ネットワーク動作時のホットスポットおよび前記ホットスポットに対するコントリビュータを同定するメトリクスとして使用するステップをさらに備える、請求項１〜８のいずれか１項に記載の方法。
【請求項１０】
パフォーマンススイープの後にホットスポットフローを同定するステップをさらに備える、請求項１〜９のいずれか１項に記載の方法。
【請求項１１】
ホットスポットを発見した後に、再経路メッセージをすべてのコントリビュータに転送するステップをさらに備える、請求項１０に記載の方法。
【請求項１２】
前記ホットスポットフローを低速レーンに分類される仮想レーンに再割り当てするステップをさらに備える、請求項１０または１１に記載の方法。
【請求項１３】
犠牲フローが前記ホットスポットフローと上りステージを共有している場合、簡潔なファットツリートポロジにおける前記ホットスポットフローが低速レーンに分類される仮想レーンに割り当てられることを可能にするステップをさらに備える、請求項１０または１１に記載の方法。
【請求項１４】
犠牲フローが前記ホットスポットフローと上りステージおよび下りステージの少なくとも一方を共有している場合、オーバーサブスクライブされたファットツリートポロジにおける前記ホットスポットフローが低速レーンに分類される仮想レーンに割り当てられることを可能にするステップをさらに備える、請求項１０または１１に記載の方法。
【請求項１５】
ノードがホットスポットではなくなったと判断された後に、ノードへのすべてのフローを低速レーンから高速レーンに向けるステップをさらに備える、請求項１０または１１に記載の方法。
【請求項１６】
輻輳制御メカニズムを用いて犠牲フローがヘッドオブラインブロッキングを回避することを可能にするステップをさらに備える、請求項１〜１５のいずれか１項に記載の方法。
【請求項１７】
１つ以上のコンピュータシステムによって実行されると、前記１つ以上のシステムに請求項１〜１６のいずれか１項に記載の方法を実行させるプログラム命令を備える、コンピュータプログラム。
【請求項１８】
請求項１７に記載のコンピュータプログラムを格納する機械可読記憶媒体を備える、コンピュータプログラム製品。
【請求項１９】
１つ以上のマイクロプロセッサ上で動作するミドルウェアマシン環境におけるトラフィック輻輳を防止するためのシステムであって、
前記ミドルウェアマシン環境におけるサブネットをスイープし、変更を発見して前記サブネットを完全に接続された状態に維持するサブネットマネージャと、
前記サブネット内の１つ以上のコンポーネントに関連付けられる１つ以上のパフォーマンス管理エージェントからパフォーマンスおよびエラー関連の情報を取り出すパフォーマンスマネージャと、
ネットワークパフォーマンスを向上させるためにアドレス指定状態情報を動的に再構成し得るホスト側スタックとを備える、システム。
【請求項２０】
前記ミドルウェアマシン環境における前記サブネットはファットツリートポロジ内にある、請求項１９に記載のシステム。
【請求項２１】
命令を格納する非一時的機械可読記憶媒体であって、前記命令は実行されると、システムに、
サブネットマネージャを介して、ミドルウェアマシン環境におけるサブネットをスイープし、変更を発見して前記サブネットを完全に接続された状態に維持するステップと、
パフォーマンスマネージャを介して、前記サブネット内の１つ以上のコンポーネントに関連付けられる１つ以上のパフォーマンス管理エージェントからパフォーマンスおよびエラー関連の情報を取り出すステップと、
ネットワークパフォーマンスを向上させるためにホストが１つ以上の仮想レーンを動的に再構成することを可能にするステップとを実行させる、記憶媒体。
【請求項２２】
プログラムであって、前記プログラムは実行されると、システムに、
サブネットマネージャを介して、ミドルウェアマシン環境におけるサブネットをスイープし、変更を発見して前記サブネットを完全に接続された状態に維持するステップと、
パフォーマンスマネージャを介して、前記サブネット内の１つ以上のコンポーネントに関連付けられる１つ以上のパフォーマンス管理エージェントからパフォーマンスおよびエラー関連の情報を取り出すステップと、
ネットワークパフォーマンスを向上させるためにホストが１つ以上の仮想レーンを動的に再構成することを可能にするステップとを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権に関する注意
本特許文献の開示の一部には、著作権保護の対象となるものが含まれている。著作権者は、この特許文献または特許開示の何者かによる複製が、特許商標庁の特許ファイルまたは記録にある限り、それに対して異議を唱えないが、そうでなければ、いかなる場合もすべての著作権を留保する。
【０００２】
発明の分野
本発明は概してコンピュータシステムに関し、特にミドルウェアマシン環境におけるヘッドオブラインブロッキングおよびトラフィック輻輳の防止に関する。
【背景技術】
【０００３】
背景
相互接続ネットワークは、次世代のスーパーコンピュータ、クラスタ、およびデータセンタに有益な役割を果たす。インフィニバンド（InfiniBand：ＩＢ）技術などの高性能ネットワーク技術が、高帯域幅および低レイテンシが重要要件である高性能コンピューティングドメインにおけるプロプライエタリまたは低性能ソリューションに取って代わりつつある。たとえば、ＩＢインストレーションは、ロスアラモス国立研究所のRoadrunner、テキサス先端計算センターのRanger、およびユーリヒ総合研究機構のJuRoPaなどのスーパーコンピュータに使用されている。
【０００４】
ＩＢは、Future I/OおよびNext Generation I/Oと称される２つの旧来技術の組合わせとして２０００年１０月に初めて規格化された。ＩＢは低レイテンシ、高帯域幅で、ホスト側処理資源を効率的に利用できるため、大型のスケーラブルなコンピュータクラスタを構築するソリューションとして高性能コンピューティング（ＨＰＣ）コミュニティ内で受け入れられつつある。ＩＢの事実上のシステムソフトウェアは、熱心な専門家達によって開発されOpenFabrics Allianceによって維持されている、OpenFabrics Enterprise Distribution（ＯＦＥＤ）である。ＯＦＥＤはオープンソースであり、GNU/Linux（登録商標）およびMicrosoft Windows（登録商標）の両方に使用可能である。
【発明の概要】
【０００５】
概要
ファットツリートポロジにおける複数のスイッチを用いてミドルウェアマシン環境におけるヘッドオブラインブロッキングおよびトラフィック輻輳を防止し得るシステムおよび方法がここに記載される。サブネットマネージャは、ミドルウェアマシン環境におけるサブネットをスイープ（sweep）し、変更を発見してサブネットを完全に接続された状態に維持し得る。パフォーマンスマネージャは、サブネット内の１つ以上のコンポーネントに関連付けられる１つ以上のパフォーマンス管理エージェントからパフォーマンスおよびエラー関連の情報を取り出し得る。そして、ホストは、ネットワークパフォーマンスを向上させるために１つ以上の仮想レーンを動的に再構成し得る。
【図面の簡単な説明】
【０００６】
【図１】本発明の実施形態に従うミドルウェア環境における最適化フィードバックサイクルを示す図である。
【図２】本発明の実施形態に従うミドルウェア環境におけるネットワーク輻輳を緩和するための例示的なフローチャートを示す図である。
【図３】本発明の実施形態に従うファットツリートポロジにおける輻輳を緩和するための仮想レーンの動的割り当てを示す図である。
【図４】本発明の実施形態に従うオーバーサブスクライブされたファットツリートポロジにおける輻輳を緩和するための仮想レーンの動的割り当てを示す図である。
【発明を実施するための形態】
【０００７】
詳細な説明
ネットワークトラフィックパターンのアルゴリズム予測可能性は、仮想化および多重コアシステムの導入に伴って低下する。複数の仮想化クライアントが同一の物理ハードウェア上に存在する場合、ネットワークトラフィックは複数のトラフィックパターンのオーバーレイになり、ネットワーク内にホットスポットを引き起こし得る。ホットスポットは、複数のフローが単一のエンドポイントに向けられる場合に発生する。ホットスポットの一般的な原因には、仮想化による複雑なトラフィックパターン、仮想マシン画像のマイグレーション、耐障害性のためのチェックポイントおよび復元メカニズム、ならびにストレージおよびＩ／Ｏトラフィックがある。
【０００８】
ネットワーク内にホットスポットが存在する場合、ホットスポットに指定されるフローは、ホットスポットに指定されない犠牲フロー（victim flow）と称される他のフローのパフォーマンスを低下させ得る。これは、輻輳したホットスポットによって生じるヘッドオブライン（ＨＯＬ）ブロッキング現象に起因する。
【０００９】
この問題を回避するための１つの方法は、ハードウェアで評価される輻輳制御（ＣＣ）メカニズムなどのＣＣメカニズムを使用することである。しかし、ハードウェアで評価される輻輳制御メカニズムは、たとえば大型クラスタ内に共存する新旧設備の混合のため、常に使用可能であるとは限らない。さらに、適切なＣＣパラメータの選択はトポロジに大きく依存しており、誤ったパラメータはパフォーマンス低下につながり得る。また、輻輳制御メカニズムが送信側の注入レートを動的に調整しているという事実によって、フロー同士の間に多少の発振が発生し得る。
【００１０】
本発明の実施形態に従い、システムおよび方法は、ファットツリートポロジを使用する複数のスイッチを用いてミドルウェアマシン環境などの相互接続ネットワークにおけるヘッドオブラインブロッキングおよびトラフィック輻輳を防止し得る。サブネットマネージャは、ミドルウェアマシン環境におけるサブネットをスイープし、変更を発見してサブネットを完全に接続された状態に維持し得る。パフォーマンスマネージャは、サブネット内の１つ以上のコンポーネントに関連付けられる１つ以上のパフォーマンス管理エージェントからパフォーマンスおよびエラー関連の情報を取り出し得る。そして、ホストは、ネットワークパフォーマンスを向上させるために１つ以上の仮想レーンを動的に再構成し得る。
【００１１】
インフィニバンド（ＩＢ）アーキテクチャ
本発明の実施形態に従い、直列ポイント・ツー・ポイント技術であるインフィニバンド（ＩＢ）アーキテクチャにおいてトラフィック輻輳が防止され得る。ＩＢネットワークの各々、つまりサブネットは、スイッチおよびポイント・ツー・ポイントリンクを用いて相互接続される一組のホストを含み得る。単一のサブネットは１万本よりも多いノードにスケーラブルであり、２つ以上のサブネットがＩＢルータを用いて相互接続され得る。サブネット内のホストおよびスイッチはローカル識別子（ＬＩＤ）を用いてアドレス指定され、たとえば単一のサブネットは４８１５１個のユニキャストアドレスに制限される。
【００１２】
ＩＢサブネットは、サブネット内のスイッチ、ルータおよびホストチャネルアダプタ（ＨＣＡ）上に存在するすべてのＩＢポートの構成を含むサブネットを初期化および開始する役割を果たす、少なくとも１つのサブネットマネージャ（ＳＭ）を使用し得る。ＳＭの役割には、ルーティングテーブル計算および展開も含まれる。ネットワークのルーティングは、完全接続性、無デッドロック性、およびすべてのソースと宛先との対同士の間のロードバランシングを得ることを目的としている。ルーティングテーブルはネットワーク初期化時間に計算され得、この処理は、ルーティングテーブルを更新して最適なパフォーマンスを保証するためにトポロジが変更されるたびに繰返され得る。
【００１３】
初期化時、ＳＭは、ＳＭがすべてのスイッチおよびホストを発見するためにネットワークのスイープを行う発見フェーズで開始する。発見フェーズの間、ＳＭは存在する他のＳＭも発見して、誰がマスタＳＭになるべきかを交渉し得る。発見フェーズが完了すると、ＳＭはマスタフェーズに入り得る。マスタフェーズでは、ＳＭはＬＩＤ割り当て、スイッチ構成、ルーティングテーブル計算および展開、ならびにポート構成を進める。この時点で、サブネットは立上がって使用できる状態にある。
【００１４】
サブネットが構成された後、ＳＭはネットワークに変更がないか（たとえばリンクがダウンする、装置が追加される、またはリンクが除去される）監視し得る。監視処理時に変更が検出されると、メッセージ（たとえばトラップ）がＳＭに転送され得、ＳＭはネットワークを再構成し得る。再構成処理の一部、つまり大量スイープ処理（heavy sweep process）は、完全接続性、無デッドロック性、およびすべてのソースと宛先との対同士の間の適切なロードバランシングを保証するために実行され得るネットワークの再ルーティングである。
【００１５】
ＩＢネットワーク内のＨＣＡは、キューペア（ＱＰ）を用いて互いに通信可能である。ＱＰは通信セットアップの間に作成され、ＱＰ番号、ＨＣＡポート、宛先ＬＩＤ、キューサイズ、およびトランスポートサービスなどの一組の初期属性が供給される。他方、通信中のＨＣＡに関連付けられるＱＰは通信が終わると抹消される。ＨＣＡは多くのＱＰを処理可能であり、各ＱＰは一対のキュー、つまり送信キュー（ＳＱ）および受信キュー（ＲＱ）からなる。通信に参加している各エンドノードに、１つのそのような対が存在する。受信キューはリモートノードに送られる作業要求を保持し、受信キューはリモートノードから受信したデータをどう扱うかについての情報を保持する。ＱＰに加えて、各ＨＣＡは、一組の送信および受信キューに関連付けられる１つ以上の完了キュー（ＣＱ）を有し得る。ＣＱは、送信および受信キューにポストされる作業要求についての完了通知を保持する。
【００１６】
サブネット管理者（ＳＡ）は、サブネットに関する異なる情報を格納するためのマスタＳＭに関連付けられるサブネットデータベースである。ＳＡとの通信は、エンドノードが、たとえばＱＰ１などの指定ＱＰを介して汎用サービスの管理データグラム（ＭＡＤ）を送信することによってＱＰを確立することを助け得る。送信側および受信側の両方とも、ＱＰを確立するためにソース／宛先ＬＩＤ、サービスレベル（ＳＬ）、ＭＴＵなどの情報を必要とする。この情報は、ＳＡによって提供される経路記録として公知のデータ構造から取り出され得る。経路記録を得るために、エンドノードは、たとえばSubnAdmGet/SubnAdmGetable動作を用いてＳＡに対して経路記録問合わせを行い得る。そして、ＳＡは、要求された経路記録をエンドノードに戻し得る。
【００１７】
ＳＭは、すべてのスイッチおよび／またはすべてのＨＣＡ内に提示されるサブネット管理エージェント（ＳＭＡ）を用いて、ネットワークに変更がないかどうか監視する役割も果たす。ＳＭＡはトラップおよび通知を用いて、新たな接続、切断、およびポート状態変更などの変更をＳＭに通信する。
【００１８】
トラップは、あるイベントをエンドノードに警告するために送信されるメッセージである。トラップは、イベントを記述する詳細とともに通知属性を含み得る。異なるイベントには異なるトラップが定義され得る。トラップの不要な分配を減らすために、ＩＢは、エンドノードが知らせてほしいトラップをエンドノードが明示的にサブスクライブすることが要求されるイベント転送メカニズムを適用する。
【００１９】
パフォーマンス管理のための最適化フィードバックサイクル
図１は、本発明の実施形態に従うミドルウェア環境における最適化フィードバックサイクルを示す図である。図１に示されるように、ミドルウェア環境における最適化フィードバックサイクルは、エグゼキュータ（たとえばサブネットマネージャ１０１）と、モニタ（たとえばパフォーマンスマネージャ１０２）と、オプティマイザ（たとえばスイッチ１０４）とを含む。
【００２０】
サブネットマネージャ１０１は、サブネットを定期的にスイープし、変更を発見して完全に接続されたサブネットを維持し得る。さらに、パフォーマンスマネージャ１０２は、ネットワークパフォーマンスを分析するためにサブネット内のすべてのコンポーネントから情報を定期的に収集し得、ホスト側スタック１０３は、ネットワーク構成のためにアドレス指定状態情報を動的に再構成し得る。
【００２１】
また、スイッチ１０４またはチャネルアダプタ１０５などのサブネット内の各装置は、パフォーマンス管理エージェント（ＰＭＡ）１０６または１０７を実施し得る。各ＰＭＡは、一組のパフォーマンス監視およびエラー監視レジスタに関連付けられ得る。パフォーマンスマネージャ１０２は、たとえばパフォーマンス管理データグラム（ＭＡＤ）を用いて、これらのレジスタからパフォーマンスおよびエラー関連の情報を取り出し得る。
【００２２】
パフォーマンス管理は、ＩＢコンポーネントからパフォーマンス統計およびエラー情報を取り出すためにＩＢによって提供される汎用管理サービスの１つである。各ＩＢ装置は、ＰＭＡと、最少の一組のパフォーマンス監視およびエラー監視レジスタとを実施し得る。さらに、ＩＢの仕様は、さらなるパフォーマンスおよびエラーカウンタの監視を許可する一組の随意の属性も定義する。
【００２３】
パフォーマンスマネージャ（ＰＭ）は、パフォーマンスＭＡＤを所与の装置のＰＭＡに発行することによって、これらのレジスタからパフォーマンスおよびエラー関連の情報を取り出し得る。ＰＭは次に取り出しを実行し、結果をＰＭＡに戻す。ＰＭはこの情報を用いて初期不良を検出し得、ＰＭはこの情報に基づいて、推奨されるまたは必要とされる経路変更およびパフォーマンス最適化についてＳＭに忠告し得る。
【００２４】
パフォーマンス管理は、ボトルネックの発見および除去を含むパフォーマンスチューニングに関する。図１に示されるような最適化フィードバックサイクルは、仮想レーンの動的割り当てを用いて、ＳＭ、ＰＭ、およびホスト側動的再構成能力を有するホストスタックの助けを借りてネットワーク輻輳を緩和するサポートに適用され得る。サブネット内では、ＳＭがサブネットを定期的にスイープし、変更を発見して完全に接続されたサブネットを維持する。ＰＭは、ネットワークパフォーマンスを分析するためにサブネット内のすべてのコンポーネントから情報を定期的に収集し得る。分析の後、ＰＭは関連情報をホストスタックに転送し、ホストスタックはネットワークパフォーマンスを向上させるために仮想レーンを再構成する。
【００２５】
本発明の実施形態に従い、ルーティングアルゴリズムは、複数の仮想レーン（ＶＬ）を利用してホットスポットが存在する間のパフォーマンスを向上させ得る。ＶＬは、トポロジが、バランスが取れており、完全にデータを入力されており、無欠陥なファットツリーであるという仮定に基づいて、ルーティングテーブル生成時に静的に割り当てられ得、輻輳の悪影響を回避し得る。さらに、仮想レーンの動的割り当てを用いてネットワーク輻輳を緩和するメカニズムが、ホットスポットフローを同定して仮想レーンを動的に割り当てるように設計され得る。
【００２６】
ＩＢ輻輳制御と比較して、仮想レーンの動的割り当てを用いてネットワーク輻輳を緩和すると、コントリビュータのソーススロットリングが不要になる。さらに、ＩＢ  ＣＣは送信側の注入レートを動的に調整可能であるため、ＩＢ  ＣＣパラメータはすべてのフロー同士の間に発振を発生させ得る。この結果、発振によってネットワーク全体のスループットが減少し得るため、ＩＢ  ＣＣソリューションはより永続的な性質の輻輳問題には適切でない場合がある。そのような永続的な輻輳問題は、トラフィックが故障リンクから移されたとき、複数のジョブが同一のシステム上で実行されてネットワーク資源を得るために競争しているとき、またはシステムが当該システム上で実行されるアプリケーションに対してバランスが取れていないときに起こる。永続的な輻輳問題は、まずそれらの問題を検出し、次に、システム開始時に静的に達成するのが不可能であり得るバランスを取るようにＶＬ資源を動的に再分配することによって処理され得る。
【００２７】
本発明の実施形態に従い、ＳＭは有効になったＰＭとともに使用され得る。ＰＭがサブセット内の各コンポーネントのパフォーマンスカウンタに定期的に問合せをすることによって追加されるオーバーヘッドは、ＳＭが専用ノード上で実行されている限り、データトラフィックに与える影響が最小限で済む。
【００２８】
本発明の実施形態に従い、ミドルウェアマシン環境におけるサブネットは、ファットツリートポロジ内にある。好ましくは、ミドルウェアマシン環境におけるファットツリートポロジは、簡潔なファットツリートポロジである。好ましくは、ミドルウェアマシン環境におけるファットツリートポロジは、オーバーサブスクライブされたファットツリートポロジである。
【００２９】
本発明の実施形態に従い、ミドルウェアマシン環境における１つ以上のスイッチは、ルーティングアルゴリズムを用いて、ソースノードから宛先ノードに転送されるパケットの無デッドロック性を保証する。
【００３０】
好ましくは、ミドルウェアマシン環境における１つ以上のスイッチは、ルーティングアルゴリズムがソースノードおよび宛先ノードの最小共通先祖ノードを介してパケットを転送することを可能にする。好ましくは、ホストは、ルーティングアルゴリズムが、パケットがソースノードから最小共通先祖ノードに転送される上りステージと、パケットが最小共通先祖ノードから宛先に転送される下りステージとを含むことを可能にする。
【００３１】
好ましくは、ミドルウェアマシン環境における１つ以上のスイッチは、ミドルウェアマシン環境における１つ以上の物理リンクを複数の仮想レーンに関連付けるように構成する。
【００３２】
好ましくは、パフォーマンスマネージャは、１つ以上のパフォーマンスカウンタを、ネットワーク動作時のホットスポットおよびホットスポットに対するコントリビュータを同定するメトリクスとして使用する。好ましくは、パフォーマンスマネージャは、パフォーマンススイープの後にホットスポットフローを同定し得る。パフォーマンスマネージャは、ホットスポットを発見した後に、再経路メッセージをすべてのコントリビュータに転送し得る。
【００３３】
ミドルウェアマシンは、ホットスポットフローを低速レーンに分類される仮想レーンに再割り当てし得る。犠牲フローがホットスポットフローと上りステージを共有している場合、ミドルウェアマシンは、簡潔なファットツリートポロジにおけるホットスポットフローが低速レーンに分類される仮想レーンに割り当てられることを可能にし得る。犠牲フローがホットスポットフローと上りステージおよび下りステージの少なくとも一方を共有している場合、ミドルウェアマシンは、オーバーサブスクライブされたファットツリートポロジにおけるホットスポットフローが低速レーンに分類される仮想レーンに割り当てられることを可能にし得る。ミドルウェアマシンは、ホットスポットフローを低速レーンに分類される仮想レーンに再割り当てし得る。ミドルウェアマシンは、ノードがホットスポットではなくなったと判断した後に、ノードへのすべてのフローを低速レーンから高速レーンに向け得る。ミドルウェアマシンは、輻輳制御メカニズムを用いて犠牲フローがヘッドオブラインブロッキングを回避することを可能にし得る。
【００３４】
図２は、本発明の実施形態に従うミドルウェア環境におけるネットワーク輻輳を緩和するための例示的なフローチャートを示す。このフローチャートに示される処理はプロセッサによって実行され得る。図２に示されるように、ステップ２０１において、サブネットマネージャはミドルウェアマシン環境におけるサブネットをスイープし、変更を発見してサブネットを完全に接続された状態に維持する。そして、ステップ２０２において、パフォーマンスマネージャは、サブネット内のハードウェアであり得る１つ以上のコンポーネントに関連付けられる１つ以上のパフォーマンス管理エージェントからパフォーマンスおよびエラー関連の情報を取り出し得る。最後に、ステップ２０３において、システムは、ネットワークパフォーマンスを向上させるために、ホストがアドレス指定状態情報などのネットワーク接続を動的に再構成することを可能にする。
【００３５】
ファットツリートポロジにおける輻輳の緩和
本発明の実施形態に従い、最適化フィードバックサイクルメカニズムは、任意のトポロジおよびルーティングアルゴリズムに適用可能である。一例では、ファットツリーは無デッドロック性に対する簡潔性のために用いられ得る。システムは輻輳した接続を動的に更新し、輻輳したトラフィックフローをファブリック内の異なる仮想レーンに移すことよって、輻輳効果が、輻輳を受けない接続に影響を及ぼさないようにすることができる。
【００３６】
図３は、本発明の実施形態に従うファットツリートポロジにおける輻輳を緩和するための仮想レーンの動的割り当てを示す図である。図３に示されるように、ミドルウェアマシン環境３００は、たとえばスイッチ３０１〜３０３などの複数のリーフスイッチと、ファットツリートポロジ内でリーフスイッチに接続するサーバノード１〜６などの複数のノードとを含む。さらに、リーフスイッチ３０１〜３０３は、１つ以上の物理リンクＩ〜ＶＩを用いて中間スイッチまたはルートスイッチ３１０に接続し得る。
【００３７】
本発明の実施形態に従い、各物理リンクは１つ以上の仮想レーン（ＶＬ）をサポートし得る。ＶＬは別個のバッファリング、フロー制御、および輻輳管理資源を有する同一の物理リンク上の論理チャネルである。図３に示されるように、各物理リンクＩ〜ＶＩは、低速レーン（仮想レーン１）および高速レーン（仮想レーン０）などの複数の仮想レーンを有し得、すべてのパケットフローは当初は高速レーン上で実行されるように構成され得る。
【００３８】
ルーティングアルゴリズムは、ファットツリートポロジにおける無デッドロック性を保証し得る。ルーティングアルゴリズムは２つのステージ、すなわちパケットがソースから転送される上りステージと、パケットが宛先に転送される下りステージとを含み得る。これら２つのステージ同士の間の移行は、その下りポートを介してソースおよび宛先の両方に到達可能な中間スイッチまたはルートスイッチ３１０である最少共通先祖で起こる。
【００３９】
複数の仮想化クライアントが同一の物理ハードウェア上に存在する場合、ネットワークトラフィックは複数のトラフィックパターンのオーバーレイになり、ネットワーク内にホットスポットを引き起こし得る。図３に示されるような例では、ノード１、ノード３およびノード６などのコントリビュータからの複数のフロー（点線）の行先がエンドノード５である場合、エンドノード５がホットスポットになり得る。
【００４０】
ホットスポットに指定されたフローは、他のフローのパフォーマンスを低下させ得る。上記の例では、ノード２からノード３への別のフローがあり得る。物理リンクＩはリーフスイッチ３０１からリーフスイッチ３０２および３０３の両方へのトラフィックを処理するように指定されているため、ノード１からノード５へのフローおよびノード２からノード３へのフローの上りステージは物理リンクＩを共有している。ヘッドオブライン（ＨＯＬ）ブロッキング現象のため、ノード２からノード３へのフローは犠牲フロー（破線）になり得る。
【００４１】
システムは、たとえばネットワークフローを低速レーンおよび高速レーントラフィックに分離することによって、２つのフローの２つの上りステージを同一の物理リンク上の異なる仮想レーンに分配し得る。ノード５がホットスポットであることを発見した後、システムは、ノード１，３および６などのすべての可能性のあるコントリビュータへの、たとえば再経路トラップなどのメッセージの転送をトリガし得る。そして、システムは、ノード１からノード５へのフローを、低速レーンに指定される物理リンクＩ上の仮想レーン０を通るように向け得る。さらに、新たなフローが既存のホットスポットであるノード５に向けられる場合、新たなフローは低速レーンに移され得る。反対に、ノード５がホットスポットではなくなった場合、ノード５に向けられるすべてのフローが、物理リンクＩ上の高速レーンに分類される仮想レーン１に戻され得る。
【００４２】
図４は、本発明の実施形態に従うオーバーサブスクライブされたファットツリートポロジにおける輻輳を緩和するための仮想レーンの動的割り当てを示す図である。図４に示されるように、ミドルウェアマシン環境４００は、スイッチ４０１〜４０３などの複数のリーフスイッチと、ファットツリートポロジ内でリーフスイッチに接続するサーバノード１〜１２などの複数のノードとを含む。さらに、リーフスイッチ４０１〜４０３は、１つ以上の物理リンクＩ〜ＩＶを用いて中間スイッチまたはルートスイッチ４１０に接続し得る。
【００４３】
このオーバーサブスクライブされたファットツリーでは、パケットを転送するための下り経路は、図３に示されるように単一の宛先専用とする代わりに、いくつかの宛先によって共有されている。図４のオーバーサブスクライブされたファットツリーは、各下り経路が２つの宛先によって共有されているため、２：１のオーバーサブスクライブされたファットツリーである。
【００４４】
図４に示されるように、ノード１，５および１０からノード９へのトラフィックフローは、オーバーサブスクライブされたファットツリーにおけるＨＯＬブロッキングの悪影響をもたらし得る。このため、ホットスポットはノード９にあり、ノード１，５および１０はコントリビュータである。
【００４５】
リンクがオーバーサブスクライブされているときに犠牲フローがＨＯＬブロッキングに悩まされ得る状況は２つあり得、１つは上りステージにおいてであり、１つは下りステージにおいてである。
【００４６】
図４に示されるように、ノード２からノード７への犠牲フローは、物理リンクＩを介して、コントリビュータノード１からノード９へのホットスポットフローと、リーフスイッチ４０１から中間／ルートスイッチ４１０への上りステージを共有している。これは、パフォーマンス低下が、上流リンクが輻輳コントリビュータであるノード１と共有されていることに起因する図３に示されるような例と同様である。
【００４７】
図４にも示されるように、ノード２からノード１１への犠牲フローは、物理リンクＩを介して、コントリビュータノード１からノード９へのホットスポットフローと、リーフスイッチ４０１から中間／ルートスイッチ４１０への上りリンクを共有している。さらに、ノード２からノード１１への犠牲フローは、すべてのホットスポットコントリビュータと、中間／ルートスイッチ４１０からリーフスイッチ４０３への下りステージを共有している。この場合、犠牲フローの宛先ノードであるノード１１がホットスポットとは異なるノードであったとしても、輻輳コントリビュータであるノード１と共有されている下りリンクでパフォーマンス低下が起こる。
【００４８】
システムは、たとえばネットワークフローを低速レーンおよび高速レーントラフィックに分離することによって、フローを同一の物理リンク上の異なる仮想レーンに分配し得る。
【００４９】
dFtreeアルゴリズム
本発明の実施形態に従い、たとえばdFtreeアルゴリズムなどのルーティングアルゴリズムを用いて、最適化フィードバックサイクルを使用するネットワーク動作時にＶＬの動的割り当てを行うことができる。パフォーマンスマネージャは、ハードウェアポートカウンタを用いてネットワークを監視して輻輳を検出し、フローを低速レーン（輻輳に対するコントリビュータ）または高速レーン（輻輳の犠牲）のいずれか一方に分類することによって現在のＶＬ割り当てを最適化する。そして、ホスト側動的再構成方法を用いて最適化が適用され得る。この方法の効果は、輻輳に貢献していないフロー（犠牲フロー）に対するヘッドオブラインブロッキングの悪影響を回避するために、輻輳に貢献しているすべてのフローが別個のＶＬ（低速レーン）に移行することである。
【００５０】
ルーティングアルゴリズムは、ＩＢパフォーマンスカウンタであるXmitWaitおよびXmitDataなどの、ホットスポットフローを動的に同定するさまざまなメトリクスを使用し得る。ＩＢカウンタXmitWaitは、選択されたポートが送信すべきデータを有しているが、たとえばクレジットが不十分であるためにまたはアービトレーションがないためにティック全体の間にデータが実際には送信されない場合のティックの数である。ここで、ティックは、クロック間隔をサンプリングするＩＢアーキテクチャハードウェアである。さらに、ＩＢカウンタXmitDataは、すべてのＶＬ上で送信されるダブルワードのデータの総数である。また、ルーティングアルゴリズムは、ホットスポットフローを同定するために、各パフォーマンススイープの間の秒数であるIntervalなどの他のメトリクスを使用し得る。
【００５１】
輻輳インジケータ値は、式ΔxmitWait/Intervalに基づいて、エンドノードのリモートスイッチポートについて計算され得る。輻輳インジケータ値は、正規化されたポート輻輳を１秒当たりのXmitWaitの数と定義する。輻輳インジケータ値が閾値を超えると、エンドノードがホットスポットであることを意味する。
【００５２】
高い輻輳インジケータ値を有するオーバーサブスクライブされたエンドノードは、輻輳に対するコントリビュータまたは犠牲フローのいずれか一方である。たとえば、図４のエンドノード１，５，１０のコントリビュータおよびエンドノード２の犠牲はすべて、高い輻輳インジケータ値を有し得る。他方、そのリモートスイッチポートについての高い輻輳インジケータ値を有するエンドノードは、それがエンドポイントホットスポットであることを示す。たとえば、図４のエンドノード９に接続されるリモートスイッチポートは、高い輻輳インジケータ値を有し得る。
【００５３】
送信側ポート帯域幅は、たとえば式ΔxmitWait*4/Intervalに基づいて、各ポートについて測定され得る。この式は、パフォーマンススイープ同士の間に送信されるバイトの数を表すXmitDataパフォーマンスカウンタから得られる。XmitDataカウンタは３２ビットワード単位で測定されるため、当該式においてXmitDataパフォーマンスカウンタに４を掛ける。
【００５４】
ポート利用は、実際の帯域幅と最大サポートリンク帯域幅との比率と定義され得る。
本発明の実施形態に従い、dFtreeの実施は２つのアルゴリズム、すなわちホットスポットフローを同定するための第１のアルゴリズム（たとえば以下に示すようなアルゴリズム１）と、ホットスポットフローを低速レーンに分類される仮想レーンに再割り当てするための第２のアルゴリズム（たとえば以下に示すようなアルゴリズム２）とを含む。
【００５５】
【表１】
2015503274.tif 000003
【００５６】
【表２】
2015503274.tif 000004
【００５７】
アルゴリズム１は、パフォーマンススイープのすべての反復の後に実行され得る。アルゴリズムは、エンドノードのリモートスイッチポートが閾値を超える輻輳インジケータ値を有するか否か確認する。たとえば、輻輳を判断するために使用される輻輳用閾値は、１０００００XmtWaitティック／秒に設定され得る。XmtWaitカウンタはポート毎に計算されるので、ネットワークサイズが増大しても輻輳を判断するための閾値が適用可能である。
【００５８】
エンドノードのリモートスイッチポートが閾値を超える輻輳インジケータ値を有する場合、結論として、当該エンドノードがホットスポットであり、かつリモートスイッチポートがホットスポットポートとして印を付けられる。エンドポイントホットスポットを発見した後、第１のアルゴリズムは、すべての可能性のあるコントリビュータへの再経路トラップの転送をトリガする。この再経路トラップは、輻輳ノードのＬＩＤをカプセル化する。
【００５９】
ホットスポットフローの検出は、パフォーマンススイープの間隔に依存する。ホットスポットが反復ｎの直後に現れた場合、ホットスポット検出および「低速レーン」割り当てはｎ+１の反復で、すなわちｔ秒後にしか実行できない。
【００６０】
輻輳インジケータ値およびポート利用率を用いて、可能性のあるコントリビュータを同定することができる。閾値を超える輻輳インジケータ値は、エンドノードがホットスポットコントリビュータまたは犠牲フローのいずれか一方であり得ることを示すのに対して、ポート利用率はフェアシェアリンクと輻輳リンクとを区別するために用いられ得る。
【００６１】
たとえば、ノードＡおよびノードＢがノードＣに向かって同時に送信しているとする。ノードＡおよびＢの両方が閾値を超える輻輳インジケータを有していても、両ノードはノードＣに向かうリンク帯域幅のフェアシェアを受信する。このため、輻輳インジケータ値が閾値よりも高く、かつポート利用率が５０％未満である場合、アルゴリズムはエンドノードをホットスポットに対する可能性のあるコントリビュータとして印を付け、再経路トラップを転送する。
【００６２】
さらに、新たなフローが既存のホットスポットに向けられる場合、新たなフローは低速レーンに移され得る。反対に、エンドノードがホットスポットではなくなった場合、そのエンドノードに向けられるすべてのフローが高速レーンに分類されるその仮想レーンに戻され得る。
【００６３】
再経路トラップが可能性のあるコントリビュータによって受信されると、アルゴリズム２が実行され得る。ホストはすべてのアクティブＱＰを取り出して、それらを再経路トラップ内のＤＬＩＤと比較し得る。ＱＰの１つにおいて整合するＤＬＩＤが見つかると、そのＱＰは低速レーンを使用するように再構成される。当初はすべてのＱＰが高速レーンを使用して初期化される。
【００６４】
再び図３を参照して、dFtreeアルゴリズムは、輻輳フローが提示された場合にＰＭがノード５がホットスポットであると検出した後に、ＨＯＬブロッキングを回避し得る。そして、ノード５をホットスポットＬＩＤとしてカプセル化する再経路トラップがコントリビュータおよび犠牲フローのソースノードに転送される。送信側（ホットスポットコントリビュータまたは犠牲フロー）が再経路トラップを受信すると、送信側はすべてのアクティブＱＰを取り出して、宛先ＬＩＤを再経路トラップＬＩＤと比較する。ＱＰが整合する宛先ＬＩＤを有する場合、ＱＰは低速レーンに再構成され得る。ＱＰが低速レーンに再構成されているため、関連のフローに若干のグリッチが存在し得る。再構成の後、dFtreeアルゴリズムはＨＯＬブロッキングを解消する分離したＶＬ（低速レーン）に輻輳フローを配置するため、犠牲フローはそのスループットを取戻す。
【００６５】
本発明は、１つ以上のプロセッサ、メモリ、および／または本開示の教示に従ってプログラムされたコンピュータ可読記憶媒体を含む１つ以上の従来の汎用または専用デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを用いて簡便に実施され得る。ソフトウェア技術の当業者には明らかであるように、適切なソフトウェアコーディングは、熟練したプログラマによって本開示の教示に基づき容易に用意され得る。
【００６６】
いくつかの実施形態では、本発明は、本発明の処理のいずれかを実行するようコンピュータをプログラムするのに用いられ得る命令を格納した記憶媒体またはコンピュータ可読媒体であるコンピュータプログラム製品を含む。当該記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリ素子、磁気または光学カード、ナノシステム（分子メモリＩＣを含む）、または命令および／またはデータを格納するのに好適な任意のタイプの媒体もしくは装置を含み得るが、これらに限定されない。
【００６７】
本発明の上記の記載は、例示および説明目的で与えられている。網羅的であることまたは開示されたそのものの形態に本発明を限定することを意図したものではない。当業者にとっては、多くの修正例および変形例が明確であろう。上記の実施形態は、本発明の原理およびその実際的な適用をもっともよく説明するために選択および記載されたものであり、これにより他の当業者が、特定の使用に好適なさまざまな修正例を考慮して、さまざまな実施例について本発明を理解するのが可能になる。本発明の範囲は、添付の特許請求の範囲およびそれらの均等物によって定義されることが意図される。
【図１】
2015503274.tif 000005
【図２】
2015503274.tif 000006
【図３】
2015503274.tif 000007
【図４】
2015503274.tif 000008
【国際調査報告】
2015503274.tif 000009
2015503274.tif 000010