特許第6177890号(P6177890)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特許6177890別個のインフィニバンドサブネット間のトラフィックをファットツリールーティングに基づいてルーティングするためのシステムおよび方法
<>
  • 特許6177890-別個のインフィニバンドサブネット間のトラフィックをファットツリールーティングに基づいてルーティングするためのシステムおよび方法 図000005
  • 特許6177890-別個のインフィニバンドサブネット間のトラフィックをファットツリールーティングに基づいてルーティングするためのシステムおよび方法 図000006
  • 特許6177890-別個のインフィニバンドサブネット間のトラフィックをファットツリールーティングに基づいてルーティングするためのシステムおよび方法 図000007
  • 特許6177890-別個のインフィニバンドサブネット間のトラフィックをファットツリールーティングに基づいてルーティングするためのシステムおよび方法 図000008
  • 特許6177890-別個のインフィニバンドサブネット間のトラフィックをファットツリールーティングに基づいてルーティングするためのシステムおよび方法 図000009
  • 特許6177890-別個のインフィニバンドサブネット間のトラフィックをファットツリールーティングに基づいてルーティングするためのシステムおよび方法 図000010
  • 特許6177890-別個のインフィニバンドサブネット間のトラフィックをファットツリールーティングに基づいてルーティングするためのシステムおよび方法 図000011
  • 特許6177890-別個のインフィニバンドサブネット間のトラフィックをファットツリールーティングに基づいてルーティングするためのシステムおよび方法 図000012
  • 特許6177890-別個のインフィニバンドサブネット間のトラフィックをファットツリールーティングに基づいてルーティングするためのシステムおよび方法 図000013
  • 特許6177890-別個のインフィニバンドサブネット間のトラフィックをファットツリールーティングに基づいてルーティングするためのシステムおよび方法 図000014
  • 特許6177890-別個のインフィニバンドサブネット間のトラフィックをファットツリールーティングに基づいてルーティングするためのシステムおよび方法 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6177890
(24)【登録日】2017年7月21日
(45)【発行日】2017年8月9日
(54)【発明の名称】別個のインフィニバンドサブネット間のトラフィックをファットツリールーティングに基づいてルーティングするためのシステムおよび方法
(51)【国際特許分類】
   H04L 12/751 20130101AFI20170731BHJP
   H04L 12/707 20130101ALI20170731BHJP
【FI】
   H04L12/751
   H04L12/707
【請求項の数】12
【全頁数】19
(21)【出願番号】特願2015-511672(P2015-511672)
(86)(22)【出願日】2013年5月8日
(65)【公表番号】特表2015-520995(P2015-520995A)
(43)【公表日】2015年7月23日
(86)【国際出願番号】US2013040212
(87)【国際公開番号】WO2013169949
(87)【国際公開日】20131114
【審査請求日】2016年4月20日
(31)【優先権主張番号】61/646,107
(32)【優先日】2012年5月11日
(33)【優先権主張国】US
(31)【優先権主張番号】13/889,088
(32)【優先日】2013年5月7日
(33)【優先権主張国】US
(31)【優先権主張番号】13/889,123
(32)【優先日】2013年5月7日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】ボグダンスキー,バルトシュ
(72)【発明者】
【氏名】ヨンセン,ビョルン・ダグ
【審査官】 速水 雄太
(56)【参考文献】
【文献】 米国特許出願公開第2004/0024903(US,A1)
【文献】 米国特許出願公開第2004/0022245(US,A1)
【文献】 米国特許出願公開第2014/0177639(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/751
H04L 12/707
(57)【特許請求の範囲】
【請求項1】
ネットワーク環境において複数のソースノードを含む第1のサブネットと複数のデスティネーションノードを含む第2のサブネットとの間のトラフィックをルーティングするための方法であって、
ルータにおいて、前記ルータが担う1つ以上のパケットのルーティング先であるデスティネーションノードのリストを含むポートマッピングリストを、前記第1のサブネットのサブネットマネージャから受信することを含み、前記ルータは、前記第1のサブネットと前記第2のサブネットとの間に接続されており、前記第1および第2のサブネットの各々は、前記ルータと複数のノードとの間に配置された、メッシュで相互接続された複数のスイッチを含み、前記ルータは、前記第2のサブネットに含まれる別個のスイッチに接続された複数の下流側出力ポートを備え、
前記ポートマッピングリストから、前記第2のサブネットに含まれる複数のスイッチに照会することで、前記第2のサブネットに含まれる特定のデスティネーションノードへの主要なパスを構成する主要な複数のスイッチを特定することと
前記ルータの下流側出力ポート毎に、前記主要な複数のスイッチの各々を通る主要なパスを確立するためのルーティングテーブルを構築することとを含む、方法。
【請求項2】
ネットワーク環境において複数のソースノードを含む第1のサブネットと複数のデスティネーションノードを含む第2のサブネットとの間のトラフィックをルーティングするためのシステムであって、
1つ以上のマイクロプロセッサと、
前記1つ以上のマイクロプロセッサ上で実行するルータとを備え、前記ルータは、前記第1のサブネットと前記第2のサブネットとの間に接続されており、前記第1および第2のサブネットの各々は、前記ルータと複数のノードとの間に配置された、メッシュで相互接続された複数のスイッチを含み、前記ルータは、前記第2のサブネットに含まれる別個のスイッチに接続された複数の下流側出力ポートを備え、前記ルータは、
前記ルータが担う1つ以上のパケットのルーティング先であるデスティネーションノードのリストを含むポートマッピングリストを、前記第1のサブネットのサブネットマネージャから信し、
前記ポートマッピングリストから、前記第2のサブネットに含まれる複数のスイッチに照会することで、前記第2のサブネットに含まれる特定のデスティネーションノードへの主要なパスを構成する主要な複数のスイッチを特定し、
前記ルータの下流側出力ポート毎に、前記主要な複数のスイッチの各々を通る主要なパスを確立するためのルーティングテーブルを構築するように動作する、システム。
【請求項3】
ラウンドロビンパス分散は、前記第1および第2のサブネットに接続されたすべての利用可能なルータ間で行なわれる、請求項2に記載のシステム。
【請求項4】
前記ルータは、前記第2のサブネットに含まれる複数のスイッチに照会して、いずれのスイッチが特定のデスティネーションノードへの主要なパスとして作用することができるかについて学習するように動作する、請求項2または3に記載のシステム。
【請求項5】
前記ルータは、前記照会により取得された情報に基づいて、最大性能のために前記ルータのいずれの下流側出力ポートを使用することができるかを判定するように動作する、請求項2〜4のいずれか1項に記載のシステム。
【請求項6】
前記ルータは、前記ルータによって接続されたサブネットを異なるネットワークトポロジーで構成することを可能にするように動作する、請求項2〜5のいずれか1項に記載のシステム。
【請求項7】
前記第1および第2のサブネットは、1つ以上の付加的なルータを用いてネットワーク環境における1つ以上の近隣のサブネットに接続される、請求項2〜6のいずれか1項に記載のシステム。
【請求項8】
接続されるサブネットは、異なるトポロジーであることができる、請求項2〜7のいずれか1項に記載のシステム。
【請求項9】
接続される各サブネットは、多段ファットツリーにおけるブランチである、請求項2〜8のいずれか1項に記載のシステム。
【請求項10】
前記第1および第2のサブネットをファットツリートポロジーで構成させることができ、前記第1および第2のサブネットをルーティングするためにファットツリールーティングアルゴリズムを使用することができる、請求項2〜9のいずれか1項に記載のシステム。
【請求項11】
実行されると以下のステップをシステムに行なわせる命令を含む機械読取可能なプログラムであって、前記システムにおいて、複数のソースノードを含む第1のサブネットと複数のデスティネーションノードを含む第2のサブネットとの間のトラフィックがルーティングされ、前記以下のステップは、
ルータにおいて、前記ルータが担う1つ以上のパケットのルーティング先であるデスティネーションノードのリストを含むポートマッピングリストを、前記第1のサブネットのサブネットマネージャから受信することを含み、前記ルータは、前記第1のサブネットと前記第2のサブネットとの間に接続されており、前記第1および第2のサブネットの各々は、前記ルータと複数のノードとの間に配置された、メッシュで相互接続された複数のスイッチを含み、前記ルータは、前記第2のサブネットに含まれる別個のスイッチに接続された複数の下流側出力ポートを備え、
前記ポートマッピングリストから、前記第2のサブネットに含まれる複数のスイッチに照会することで、前記第2のサブネットに含まれる特定のデスティネーションノードへの主要なパスを構成する主要な複数のスイッチを特定することと
前記ルータの下流側出力ポート毎に、前記主要な複数のスイッチの各々を通る主要なパスを確立するためのルーティングテーブルを構築することとを含む、プログラム。
【請求項12】
請求項1に記載の方法をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
著作権表示
この特許文献の開示の一部は著作権保護の対象となる内容を含む。著作権者は、特許商標庁の特許ファイルまたは記録に現れた際には特許文献または特許開示のいずれによるファクシミリ再現に対しても異議を申立てないが、それ以外のすべてのいかなる著作権も留保する。
【0002】
発明の分野
本発明は概してコンピュータシステムに関し、特にミドルウェアマシン環境に関する。
【背景技術】
【0003】
背景
より大きなクラウドコンピューティングアーキテクチャが導入されるにつれ、従来のネットワークおよび記憶装置に関連付けられる性能および管理上の障害が重要な問題となっている。InfiniBand(IB)技術は、クラウドコンピューティングファブリックの基盤としてますます展開されている。これは、発明の実施形態が対処するように意図される概略的な分野である。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
別個のInfiniBand(IB)サブネット間のトラフィックをルーティングすることができるシステムおよび方法をここに記載する。InfiniBand(IB)サブネットなどの別個のサブネットを接続するルータは、当該ルータが担う1つ以上のパケットのルーティング先であるデスティネーションのリストを受信することができる。さらに、ルータは、1つ以上のパケットをルーティングするためにルータのいずれの下流側出力ポートを使用することができるかについての情報を、少なくとも1つのサブネットにおける1つ以上のスイッチから取得し、取得された情報に基づいてルーティングテーブルを構築することができる。
【0005】
ネットワーク環境において別個のサブネット間のトラフィックをルーティングするためのシステムもここに説明される。システムは、ルータにおいて、当該ルータが担う1つ以上のパケットのルーティング先であるデスティネーションのリストを受信するための手段を備え、ルータは、ネットワーク環境において少なくとも1つのサブネットに接続している。システムは、1つ以上のパケットをルーティングするためにルータのいずれの下流側出力ポートを使用することができるかについての情報を、少なくとも1つのサブネットにおける1つ以上のスイッチから取得するための手段をさらに備える。システムは、取得された情報に基づいてルーティングテーブルを構築するための手段をさらに備える。
【0006】
さらに、ネットワーク環境において別個のサブネット間のトラフィックをルーティングするためのシステムがここに説明される。システムは、自身が担う1つ以上のパケットのルーティング先であるデスティネーションのリストを受信するように構成されたルータを備え、ルータは、ネットワーク環境において少なくとも1つのサブネットに接続している。システムは、1つ以上のパケットをルーティングするためにルータのいずれの下流側出力ポートを使用することができるかについての情報を、少なくとも1つのサブネットにおける1つ以上のスイッチから取得し、取得された情報に基づいてルーティングテーブルを構築するようにも構成される。
【図面の簡単な説明】
【0007】
図1】発明の実施形態に従う、ネットワーク環境において別個のInfiniBand(IB)サブネット間のトラフィックをルーティングする例示を示す図である。
図2】発明の実施形態に従う、ネットワーク環境においてルータ上のパケット転送をサポートする例示を示す図である。
図3】発明の実施形態に従う、ネットワーク環境において異なるデスティネーションのための入口ルータポートを選択する例示を示す図である。
図4】発明の実施形態に従う、ネットワーク環境におけるルータにおいて受信パケットのための出口ルータポートを選択する例示を示す図である。
図5】発明の実施形態に従う、ネットワーク環境におけるルータにおいてサブネット間ソースルーティング(ISSR)アルゴリズムをサポートするための典型的なフローチャートを例示する図である。
図6】発明の実施形態に従う、ネットワーク環境におけるルータにおいてサブネット間ファットツリールーティング(ISFR)アルゴリズムをサポートする例示を示す図である。
図7】発明の実施形態に従う、異なるトポロジーを有するネットワーク環境におけるルーティングを例示する図である。
図8】発明の実施形態に従う、異なるトポロジーを有するネットワーク環境におけるルーティングを例示する図である。
図9】発明の実施形態に従う、異なるトポロジーを有するネットワーク環境におけるルーティングを例示する図である。
図10】発明の実施形態に従う、ネットワーク環境におけるルータにおいてサブネット間ファットツリールーティング(ISFR)アルゴリズムをサポートするための典型的なフローチャートを例示する図である。
図11】発明の実施形態に従う特徴を示す機能ブロック図を例示する図である。
【発明を実施するための形態】
【0008】
詳細な説明
発明は、限定の目的ではなく一例として添付の図面の図に図示され、図中同じ参照番号は同様の要素を示す。この開示での「ある」または「1つの」または「いくつかの」実施形態の参照は必ずしも同じ実施形態に対するものではなく、そのような参照は少なくとも1つを意味することに留意すべきである。
【0009】
以下のような発明の説明は、InfiniBand(IB)ネットワークを高性能ネットワークの例として用いる。当業者には、他の種類の高性能ネットワークを限定なく用いることができることが明らかであろう。また、以下のような発明の説明は、ファットツリーをネットワークトポロジーモデルの例として用いる。当業者には、他の種類のネットワークトポロジーモデルを限定なく用いることができることが明らかであろう。
【0010】
別個のネットワーク間でのトラフィックのルーティングをサポートすることができるシステムおよび方法をここに説明する。
【0011】
InfiniBand(IB)アーキテクチャ
IBアーキテクチャは、直列の二地点間全二重技術である。IBクラスタのサイズおよび複雑性が増大するにつれて、サブネットと称することができる扱いやすいセクションにネットワークをセグメント化することができる。IBサブネットは、スイッチおよび二地点間リンクを用いて相互接続された1組のホストを含むことができる。IBサブネットは、少なくとも1つのサブネットマネージャ(SM)を含むこともでき、サブネットマネージャは、サブネットにおけるすべてのスイッチ、ルータおよびホストチャネルアダプタ(HCA)の構成を含む、ネットワークの初期化および立上げを担う。
【0012】
IBは、リモートダイレクトメモリアクセス(RDMA)および従来の送信/受信セマンティクスの両方を提供するために、多数の伝送サービスの組をサポートする。使用される伝送サービスとは別個に、IB HCAはキューペア(QP)を用いて通信する。QPは通信セットアップ中に作成され、提供されるQP番号、HCAポート、デスティネーションLID、キューサイズ、および伝送サービスなどの1組の初期属性を有することができる。HCAは多くのQPを処理することができ、各QPは、送信キュー(SQ)および受信キュー(RQ)などの1組のキューで構成され、通信に参加する各エンドノードにおいて、1つのそのようなペアが存在する。送信キューは、リモートノードに転送される作業要求を保持し、一方受信キューは、リモートノードから受信したデータで何を行うべきかについての情報を保持する。QPに加えて、各HCAは1組の送信キューおよび受信キューと関連付けられた1つ以上の完了キュー(CQ)を有する。CQは、送信および受信キューに書込まれた作業要求についての完了通知を保持する。通信の複雑性がユーザーに非公開であっても、QP状態情報がHCAに保持される。
【0013】
別個のInfiniBand(IB)サブネット間のトラフィックのルーティング
図1は、発明の実施形態に従う、ネットワーク環境において別個のInfiniBand(IB)サブネット間のトラフィックをルーティングする実例を示す。図1に示されるように、ネットワーク環境100は、InfiniBandアーキテクチャ(IBA)に基づくことができ、2層トポロジー分割をサポートする。
【0014】
IBネットワークの下位レイヤ、すなわちIBファブリック100は、サブネット、たとえばサブネット101−104と称することができ、サブネットの各々は、スイッチおよび二地点間リンクを用いて相互接続された1組のホストを含む。より高いレベルでは、IBファブリック100中の1つ以上のサブネット101−104をルータ、たとえばルータ105−106を用いて相互接続することができる。さらに、各サブネット101−104は、ポートのみを構成するそれ自身のサブネットマネージャ(SM)をローカルサブネット上で実行することができ、ルータ105−106は、サブネットマネージャ(SM)に対して不透明である。
【0015】
サブネット101−104の各々中のホストおよびスイッチは、指定されたローカル識別子(LID)を用いてアドレス指定することができる。大きな設備のサイズは、利用可能なローカル識別子(LID)の数によって限定され得る。たとえば、一つのサブネットは49151のユニキャストLIDに限定され得る。IBアドレス空間を拡張する1つの手法は、LIDアドレス指定空間を32ビットに拡張することであり、この手法がより古いハードウェアとの後方互換性がない場合があるため、その有用性は限定される可能性がある。
【0016】
発明の実施形態によれば、IBルータ105−106は、IBファブリック100中のアドレス空間スケーラビリティを提供することができる。図1に示されるように、より多くのエンドポートが望ましい場合、1つ以上のIBルータ105−106を用いて複数のサブネット101−104を互いに組合せることができる。サブネット101−104の各々は、ローカル識別子(LID)アドレス空間111−114を使用することができる。LIDアドレスは各LIDアドレス空間111−114内にローカルな可視性を有することから、ルータ105−106によって接続されている異なるサブネット101−104においてLIDアドレスを再使用することができる。したがって、アドレス空間スケーラビリティをIBファブリック100に提供することができ、この手法は、無限のアドレス指定空間を理論的にもたらすことができる。
【0017】
さらに、大きく複雑なネットワーク100を複数のサブネット101−104にセグメント化することにより、システムはファブリック管理コンテナを提供することができる。ファブリック管理コンテナは、1)フォールト分離、2)より高いセキュリティ、および3)サブネット内ルーティングフレキシビリティを提供する際に有益となり得る。
【0018】
まず、大きなネットワーク100をいくつかのより小さなサブネット101−104に分割することにより、フォールトまたはトポロジーの変化を一つのサブネットに含めることができ、サブネットリコンフィギュレーションは、ルータ105−106を介して他のサブネットに通過しない場合がある。これにより、リコンフィギュレーション時間が短くなり、フォールトのインパクトが限定される。
【0019】
第2に、セキュリティの観点から、ルータ105−106を用いて大きなファブリック100をサブネット101−104にセグメント化することにより、大部分の攻撃の範囲を攻撃されたサブネットに限定する。
【0020】
第3に、ルーティングの観点から、ファブリック管理格納は、よりフレキシブルなルーティングスキームをサポートする際に有益となることができ、2つ以上の規則的なトポロジーを含むハイブリッドファブリックの場合には特に有利となることができる。
【0021】
たとえば、ハイブリッドファブリック100は、メッシュで相互接続されたファットツリー部またはトーラス部(またはいずれかの他の規則的なトポロジー)を含んでもよい。サブネット内ルーティング(intra-subnet routing)アルゴリズムはサブネットスコープのみを有するため、ハイブリッドファブリック100の異なる部分を別々にルーティングする簡単な方法がない場合がある。また、ハイブリッドトポロジーに最適な性能を提供することができるIBのための汎用アグノスティックルーティングトポロジーはない。
【0022】
発明の実施形態によれば、ハイブリッドトポロジーを、より小さな規則的なサブネット101−104に分割することができ、その各々を、特定のサブネットに最適化される異なるルーティングアルゴリズムを用いてルーティングすることができる。たとえば、ファットツリールーティングアルゴリズムはファットツリー部をルーティングすることができ、次元順ルーティングは、トポロジーのメッシュ部をルーティングすることができる。
【0023】
さらに、スーパーサブネットマネージャを用いてローカルサブネットマネージャ間の調整を行なうことができ、最終デスティネーションが別のサブネットの後ろに位置するより不規則なネットワークの場合(たとえば、少なくとも2つのルータホップが必要とされる)、トランジットサブネットを通るパスを確立することができる。
【0024】
したがって、IBサブネット間のルーティングを用いることによって、システムは、IBネットワークにおけるアドレス空間スケーラビリティおよびファブリック管理コンテナをもたらすことができる。
【0025】
ネイティブなInfiniBand(IB)ルータ
図2は、発明の実施形態に従う、ネットワーク環境においてルータ上のパケット転送をサポートする例示を示す。図2に示されるように、ネットワーク環境200は、ルータ210を用いて相互接続される複数のサブネット、たとえばIBサブネットA−B 201−202を含むことができる。さらに、IBサブネットA 201は、ホストチャネルアダプタ(HCA)213に関連付けられるエンドノードX 203に接続し、IBサブネットB 202は、ホストチャネルアダプタ(HCA)214に関連付けられるエンドノードY 204に接続する。
【0026】
発明の実施形態によれば、IBルータ210は、IBアドレス指定ヒエラルキーのレイヤ3で動作することができる。さらに、LIDに加えて、各IB装置は、GID、IBレイヤ3アドレスを形成するために使用することができる64ビットのグローバルユニーク識別子(GUID)も有し得る。たとえば、64ビットサブネットIDを64ビットGUIDと連結してIPv6のような128ビットのアドレスを形成することによってGIDを作成することができる。また、GUIDという用語は、ポートGUID、つまりIBファブリック中のあらゆるポートに割当てられたGUIDを指すのに使用してもよく、GUIDは、不揮発性メモリに焼きつけることができる。
【0027】
図2に示されるように、エンドノード、たとえばエンドノードX 203は、ルータ210を介して、別のエンドノード、たとえばエンドノードY 204にパケットを送信することができる。アドレス解決メカニズムは、ローカルルータ210をエンドノードX−Y 203−204に対して可視化することができる。
【0028】
たとえば、ルータ210で受信されたパケットは、ローカルルーティングヘッダ(LRH)223およびグローバルルーティングヘッダ(GRH)225を含む入来ルーティングヘッダ221を含むことができる。パケットを転送する前に、ルータ210は、LRH 224およびGRH 226を含む送出ルーティングヘッダ222に入来ルーティングヘッダ221を修正することができる。
【0029】
図2に示されるように、エンドノードX 203は、ローカルHCAのLIDアドレス、たとえばXをソースLIDであるsrcLIDとして配置することができ、ローカルルータのLIDアドレス、たとえばAをLRH 223中のデスティネーションLIDであるdstLIDとして配置することができる。さらに、エンドノードX 203は、そのレイヤ3アドレス(GID)、たとえば1234をソースGIDであるsrcGIDとして配置することができ、最終デスティネーションアドレス(GID)、たとえば5678をGRH 225中のデスティネーションGIDであるdstGIDとして配置することができる。
【0030】
パケットがルータ210に到達すると、パケット転送メカニズム220はパケットフィールドを更新し置換することができる。たとえばシステムは、ローカルルーティングヘッダ(LRH)224中のソースLIDであるsrcLIDを、ルータの出口ポートのLID、たとえばBに置換することができる。さらにシステムは、デスティネーションLIDであるdstLIDを、デスティネーションのLIDアドレス、たとえばYに置換することができる。
【0031】
代替的に、システムは、パケットが別のルータから転送されてくる場合、前のホップルータの出口ポートのLIDをソースLIDであるsrcLIDとして使用することができる。また、さらなるパケット転送が必要な場合、システムは、デスティネーションLIDであるdstLIDを次のホップポートのLIDに置換することができる。それぞれの場合、システムは次のホップにパケットを転送する前に巡回冗長検査(CRC)を再計算することができる。
【0032】
発明の実施形態によれば、別個のInfiniBand(IB)サブネット間のトラフィックをルーティングするために異なる方法を使用することができる。これらの方法は、特定のデスティネーションについてどのルータを選択すべきか(第1のルーティング段階)、および当該デスティネーションに到達するにはどのパスをルータによって選択すべきか(第2のルーティング段階)などの、サブネット間ルーティングに関するさまざまな問題に対処するために使用することができる。
【0033】
たとえば、これらの方法は、単純な古典的ルーティング法、さまざまなトポロジーに良好な性能を提供するソースルーティング法、およびファットツリーベースのトポロジーのために特殊化され、最適な性能を提供する最適化ルーティング法を含むことができる。ソースルーティング法および最適化ルーティング法は両方とも、場合によっては古典的ルーティング法よりも良好な性能を与えることができる。さらに、最適化ルーティング法は、基礎をなすファットツリートポロジーについて最適な性能を取得することを可能にする。加えて、両方の方法は、任意のマルチポートルータの使用をサポートするが、古典的ルーティングは、利用可能なポートの数を制限しない場合でもすべてのポートを効果的に利用しない場合がある。
【0034】
したがって、これらの方法を用いて、ネイティブなIBルータは、性能を著しく低下させることなくサブネットを互いに接続することによって、より複雑なIBファブリックを構築することを可能にする。
【0035】
サブネット間ソースルーティング(Inter-Subnet Source Routing:ISSR)
発明の実施形態によれば、サブネット間ソースルーティング(ISSR)ルーティングアルゴリズムなどの汎用ルーティングアルゴリズムを、ハイブリッドサブネットを有する複雑なネットワークをルーティングするために使用することができる。ISSRルーティングアルゴリズムは、2つの段階、特定のデスティネーションのための入口ルータポートを選択するための第1段階と、出口ルータポートを選択するための第2段階とを含むことができる。
【0036】
図3は、発明の実施形態に従う、ネットワーク環境において異なるデスティネーションのための入口ルータポートを選択する例示を示す。図3に示されるように、ネットワーク環境300は、1つ以上のルータ、たとえばルータA 301およびルータB 302に接続されたサブネット310を含むことができる。
【0037】
サブネットマネージャ(SM)、たとえばサブネット310中のSM 303は、異なるデスティネーションのための入口ルータポートを選択するのに使用することができるマッピングファイル304を含むことができる。さらに、入口ルータポートの選択は、ローカルサブネットに接続されるすべての利用可能なルータ間のラウンドロビンパス分散に基づくことができる。たとえば、ISSRアルゴリズムについてローカルルータポートを選択するfind_router()機能は、OpenSMルーティングアルゴリズムと同様の方法で実装することができる。
【0038】
以下は、マッピングファイル304のハイレベルの例である。
【0039】
【表1】
【0040】
サブネット全体を一つのルータポートにマッチングさせることしかできないOpenSMルーティングとは異なり、システムは、デスティネーションエンドポートを異なるルータポートにマッピングすることができる。さらに、マッピングファイルのセットアップを、OpenSMに設けられたマッピングファイルとは異ならせることができる。上記の表1に示されるように、マッピングファイル304は、OpenSMサブネット間ルーティングに関するサブネットプレフィックスのみでなく、完全修飾ポートGIDを含み、入口ルータポートを選択する際に、システムが十分な粒度を提供することを可能にする。
【0041】
さらに、図3に示されるように、等しい(または同様の)数のデスティネーションを、たとえばラウンドロビン式に多くのポートにマッピングすることができる。たとえば、デスティネーションA 311(dst_gid1)およびデスティネーションC 313(dst_gid3)は、ルータA 301上のポート1およびポート2を介してルーティングすることができ、デスティネーションB 312(dst_gid2)およびデスティネーションD 314(dst_gid4)は、ルータB 302上のポート1およびポート2を介してルーティングすることができる。加えて、マッピングファイル304はバックアップおよびデフォルトルートを特定することができる。
【0042】
発明の実施形態によれば、出口ルータポートを選択することは、ルータファームウェアにおけるモジュロベースのハッシュを用いて実施することができる。ハッシュは、ソースおよびデスティネーションLID(またはルータ上の入口ポート番号などのいずれかの他の有用なパラメータ)を用いて生成された乱数をとることができる。ハッシュを使用すると、出力ルータポートのうちの1つを選択することができる。さらに、ISSRルーティングアルゴリズムは、同じペアのノードには同じパスを常に使用する決定的オブリビアス(deterministic oblivious)ルーティングアルゴリズムである。
【0043】
さらに、ルータは3つ以上のサブネットに取付けられ得ることから、ツーステップポート確認方法を用いて、出口ルータポートを選択することができる。まず、システムは、デスティネーションが位置するサブネットに(またはサブネットの方向に)取付けられている1組の可能なポートを選択することができる。次いで、システムは、モジュロ機能に基づく単純なハッシュを用いて、出口ポートを選択することができる。
【0044】
図4は、発明の実施形態に従う、ネットワーク環境におけるルータにおいて受信パケットのための出口ルータポートを選択する例示を示す。図4に示されるように、ネットワーク環境400は、異なるサブネット中の様々なデスティネーションに1つ以上のパケットをルーティングすることができるルータ、たとえばルータA 401を含むことができる。
【0045】
たとえば、ルータA 401は、サブネット403中のデスティネーションX 421宛てのソースA 411からのパケットを、ポート1において受信することができる。加えて、ルータA 401は、サブネット402中のデスティネーションY 422宛てのソースC 413からの別のパケットを、ポート2において受信することができる。
【0046】
以下のアルゴリズム1は、出口ルータポートを選択するためのSMおよびルータファームウェアの両方において実装することができる。
【0047】
【表2】
【0048】
ルーティング決定は、ソースLIDおよびデスティネーションLIDの両方に基づくことができる。ソースLIDは、オリジナルソースまたはトランジットサブネットシナリオにおける前のホップルータの出口ポートのいずれかとすることができ、デスティネーションLIDは、最終デスティネーションLIDまたは次のホップ入口ルータポートのLIDのいずれかとすることができる。
【0049】
サブネットが取付けられているのを見ることができることから、ルータA 401は、ソースLIDおよびデスティネーションLIDの両方についての値を識別する。デスティネーションLIDを得るためには、アルゴリズム1中のget_next_LID()(2行目)などのマッピング機能を用いて、デスティネーションGIDをデスティネーションLIDにマッピングすることができるか、またはGID内に位置するサブネットプレフィックスに基づいて次のホップLIDを戻すことが必要とされる。マッピング機能は、連想メモリルックアップ、最終デスティネーションのローカル識別子(LID)をグローバルルーティングヘッダ(GRH)フィールドからデコードすること、次のホップのローカル識別子をグローバルルーティングヘッダ(GRH)フィールドからデコードすることのうち、1つ以上を行なうことができる。
【0050】
発明の実施形態によれば、出口ルータポートを選択するアルゴリズムは、ソースおよびデスティネーションLIDに基づく乱数を算出することができる。この乱数を用いて、1組の可能なポートから一つの出口ポートを選択することができる。乱数の生成は、所定のソース−デスティネーションのペアが同じ数を常に生成することができるような決定的な手法で行なうことができる。したがってシステムは、出口ポートを選択するためのラウンドロビン法とは異なり、サブネット間でルーティングする際のアウトオブオーダー配信を防ぐことができ、各ソース−デスティネーションのペアがネットワークを通る同じパスを常に使用することを確実にする。
【0051】
図5は、発明の実施形態に従う、ネットワーク環境におけるルータにおいてサブネット間ソースルーティング(ISSR)アルゴリズムをサポートするための典型的なフローチャートを例示する。図5に示されるように、ステップ501において、ルータは、当該ルータが担う1つ以上のパケットのルーティング先であるデスティネーションのリストを受信することができ、ルータは、ネットワーク環境において少なくとも1つのサブネットに接続している。次いで、ステップ502において、ルータは、1つ以上のパケットに関連付けられたソースローカル識別子(LID)およびデスティネーションLIDに基づいて乱数を生成することができる。さらに、ステップ503において、ルータは、モジュロベースのハッシュを用いて、ルータの出力ルータポートのうち1つのポートを選択することができる。
【0052】
サブネット間ファットツリールーティング(Inter-Subnet Fat-Tree Routing:ISFR)
発明の実施形態によれば、サブネット間ファットツリールーティング(ISFR)ルーティングアルゴリズムなどの最適化ルーティング法は、ファットツリートポロジーを有するサブネット間でルーティングするために使用されることができる。
【0053】
最適化ルーティング法は、ローカルサブネットに接続されるすべての利用可能なルータ間のラウンドロビンパス分散の第1段階、各ルータに接続された下流側へのスイッチを照会し、どのスイッチが特定のデスティネーションへの主要なパスとして作用するかを学習する第2段階、および第1段階と第2段階とから得られる情報を用いてルーティングテーブルを構築する第3段階などの3つの段階を含むことができる。
【0054】
図6は、発明の実施形態に従う、ネットワーク環境600におけるルータにおいてサブネット間ファットツリールーティング(ISFR)アルゴリズムをサポートする例示を示す。図6に示されるように、ルータ601は、1つ以上のエンドノード621−624に接続するサブネット610にパケット650をルーティングすることを担う。サブネット610は、ファットツリートポロジー中のSW611−616などの1つ以上のスイッチを含むことができる。
【0055】
ルータ601は、特定のデスティネーションへのパケットを、関連付けられたGIDに相応してルーティングするためにはそのポートのうちどれを使用することができるかを学習することができる。たとえば、ルータ601は、サブネット610中のサブネットマネージャ(SM)620からポートマッピング630を受信することができる。ポートマッピング630は、ルータ601が担うサブネット610から生じるパケットのルーティング先であるデスティネーションのリストを含むことができる。
【0056】
さらに、ルータ601は、パケット650をルーティングする際に最大性能を実現するためにはいずれの下流側出力ポートを使用するべきであるかをスイッチ611−612から学習することができる。たとえば、ルータ601は、サブネット610における宛先ノードへの主要なパスについて、サブネット610におけるスイッチ611−612に照会することができる。それらのスイッチのうちの1つのみが所望のデスティネーションへの専用の主要なパスを有し得ることから、照会によって、パケット650についての主要なパス(スイッチ611またはスイッチ612のいずれか)をルータが選択することが可能となる。
【0057】
次いでルータ601は、上で得られた情報を用いてルーティングテーブル640を構築することができる。たとえば、ローカルOpenSMルーティングは、スイッチ611またはスイッチ612のいずれかのルーティングテーブルに宛先ノードへの主要なパスをマークすることができる。
【0058】
以下のアルゴリズム2は、ルータ上の出口ポートを選択するためのルータファームウェアに実装することができる。
【0059】
【表3】
【0060】
上記のISFRアルゴリズムは、表1のGID‐ルータポートマッピングを含む、あらかじめ定義されたファイル形式を使用することができる。ISSRアルゴリズムのように、ISFRアルゴリズムはルータ装置において実装することができる。さらに、ISFRアルゴリズムは、ファットツリー上で、かつファットツリールーティングがあらゆるサブネットにおいてローカルに実行している状態でのみ機能し得る。また、必要であれば、ISFRアルゴリズムはISSRに戻ることができる。
【0061】
図6に示されるように、ルータ601は、適切なファットツリートポロジーの上に位置するものとして表わすことができる。したがって、照会が行なわれた後、ルータ601は、特定のサブネットに位置する各デスティネーションについて下流側への方向にポートごとに1つのパスを有することができる。オーバーサブスクライブファットツリーの場合、パスの数はオーバーサブスクリプション比率と同等することができる。
【0062】
加えて、サブネット610に接続された2つ以上のルータがある場合がある。ISFRルーティングのプロパティは、すべてのスパイン(トップ)ルータがスイッチに置換された場合、(ルータによる)ISFRルーティングのための、および(スイッチによる)ローカルルーティングのためのルーティングテーブルが同じとなるようなものである。
【0063】
発明の実施形態によれば、ISFRルーティングアルゴリズムは、不透明なルータによって接続される異なるサブネット中のサブネットマネージャ(SM)間で確立された通信に基づいて実装することができる。たとえば、SMがそれを介して通信することができるルータにインターフェイスを設けることができ、付近のサブネットに位置する2つのSM間でハンドシェーキングを実施することができる。
【0064】
図7図9は、発明の実施形態に従う、異なるトポロジーによるネットワーク環境におけるルーティングを例示する。トポロジーの各々は、多段ファットツリー、たとえばルータが上に置かれた3段ファットツリーとして表わすことができる。たとえば、3段ファットツリーは、3つのルーティング/スイッチ段階および1つのノード段階を有することができ、各サブネット(2段ファットツリー)はブランチとして出現する。さらに、ISFRルーティングアルゴリズムに基づいて、より大きなトポロジーをサポートすることもできる。
【0065】
発明の実施形態によれば、各サブネットが、いずれのトランジットサブネットも介在しない状態で他のサブネットに直接取付けることができるファットツリートポロジーであるように、ネットワーク環境を構成することができる。
【0066】
たとえば、図7において、システム700は、6つのルータ710を用いて、2つのファットツリーサブネット、たとえばサブネットA−B 701−702を接続することができる。図8において、システム800は、6つのルータ810を用いて、3つのファットツリーサブネット、たとえばサブネットA−C 801−803を接続することができる。図9では、システム900は18個のルータ910を用いて648ポートの3段ファットツリーを作成して、6つのファットツリーサブネット901−906を接続することができる。
【0067】
図10は、発明の実施形態に従う、ネットワーク環境におけるルータにおいてサブネット間ファットツリールーティング(ISFR)アルゴリズムをサポートするための典型的なフローチャートを例示する。図10に示されるように、ステップ1001において、ルータは、当該ルータが担う1つ以上のパケットのルーティング先であるデスティネーションのリストを受信することができ、ルータは、ネットワーク環境において少なくとも1つのサブネットに接続している。次いで、ステップ1002において、ルータは、1つ以上のパケットをルーティングするためにルータのいずれの下流側出力ポートを使用することができるかについての情報を、少なくとも1つのサブネットにおける1つ以上のスイッチから取得することができる。さらに、ステップ1003において、ルータは、取得された情報に基づいてルーティングテーブルを構築することができる。
【0068】
図11は、発明の実施形態の特徴を示すための機能ブロック図を例示する。本特徴は、ネットワーク環境において別個のサブネット間のトラフィックをルーティングするためのシステム1100として実装され得る。システム1100は、1つ以上のマイクロプロセッサ、および1つ以上のマイクロプロセッサ上で動くルータ1110を含む。ルータ1110は、当該ルータが担う1つ以上のパケットのルーティング先であるデスティネーションのリストを受信ユニット1120から受信し、1つ以上のパケットをルーティングするためにルータのいずれの下流側出力ポートを使用することができるかについての、少なくとも1つのサブネットにおける1つ以上のスイッチからの情報を取得ユニット1130から取得し、取得された情報に基づいてルーティングテーブルを構築ユニット1140上に構築するように動作する。
【0069】
一実施形態によれば、1つ以上のマイクロプロセッサ上のネットワーク環境においてディストリクトサブネット間のトラフィックをルーティングするためのシステムが開示される。システムは、ルータにおいて、当該ルータが担う1つ以上のパケットのルーティング先であるデスティネーションのリストを受信するための手段を備え、ルータは、ネットワーク環境において少なくとも1つのサブネットに接続している。システムは、1つ以上のパケットをルーティングするためにルータのいずれの下流側出力ポートを使用することができるかについての情報を、少なくとも1つのサブネットにおける1つ以上のスイッチから取得するための手段を備える。システムは、取得された情報に基づいてルーティングテーブルを構築するための手段を備える。
【0070】
好ましくは、システムは、少なくとも1つのサブネットに接続されるすべての利用可能なルータ間でラウンドロビンパス分散を行なうための手段を備える。
【0071】
好ましくは、システムは、各ルータに接続されているスイッチに照会して、いずれのスイッチが特定のデスティネーションへの主要なパスとして作用するかについて学習するための手段を備える。
【0072】
好ましくは、システムは、最大性能のためにルータのいずれの下流側出力ポートを使用することができるかを取得された情報に基づいて判定するための手段を備える。
【0073】
好ましくは、システムは、ルータによって接続されたサブネットを異なるネットワークトポロジーで構成することを可能にするための手段を備える。
【0074】
好ましくは、システムは、1つ以上の付加的なルータを用いて、ネットワーク環境における1つ以上の近隣のサブネットに少なくとも1つのサブネットを接続するための手段を備える。
【0075】
好ましくは、システムは、接続されるサブネットが異なるトポロジーであることを可能にするための手段を備える。
【0076】
好ましくは、システムは、接続される各サブネットが多段ファットツリーにおけるブランチであることを可能にするための手段を備える。
【0077】
好ましくは、システムは、少なくとも1つのサブネットがファットツリートポロジーで構成されることを可能にするための手段を備える。
【0078】
好ましくは、システムは、少なくとも1つのサブネットをルーティングするためにファットツリールーティングアルゴリズムを使用するための手段を備える。
【0079】
一実施形態によれば、ネットワーク環境において別個のサブネット間のトラフィックをルーティングするためのシステムが開示される。システムはルータを含み、上記ルータは、当該ルータが担う1つ以上のパケットのルーティング先であるデスティネーションのリストを受信するように構成され、ルータは、ネットワーク環境において少なくとも1つのサブネットに接続している。ルータは、1つ以上のパケットをルーティングするためにルータのいずれの下流側出力ポートを使用することができるかについての情報を、少なくとも1つのサブネットにおける1つ以上のスイッチから取得するように構成され、かつ取得された情報に基づいてルーティングテーブルを構築するようにも構成される。
【0080】
好ましくは、システムは、少なくとも1つのサブネットに接続されるすべての利用可能なルータ間でラウンドロビンパス分散を行なうことができる。
【0081】
好ましくは、システムは、上記ルータに接続されているスイッチに照会して、いずれのスイッチが特定のデスティネーションへの主要なパスとして作用することができるかについて学習するように上記ルータを動作させることができる。
【0082】
好ましくは、システムは、取得された情報に基づいて、最大性能のためにルータのいずれの下流側出力ポートを使用することができるかを判定するように上記ルータを動作させることができる。
【0083】
好ましくは、システムは、1つ以上のデスティネーショングローバル識別子(GID)と1つ以上のルータポートとの間のポートマッピングをサブネットマネージャから受信するように上記ルータを動作させることができる。
【0084】
好ましくは、システムは、1つ以上の付加的なルータを用いて、ネットワーク環境における1つ以上の近隣のサブネットに少なくとも1つのサブネットを接続させることができる。
【0085】
好ましくは、システムは、接続されるサブネットを異なるトポロジーにさせることができる。
【0086】
好ましくは、システムは、接続される各サブネットを多段ファットツリーにおけるブランチにすることができる。
【0087】
好ましくは、システムは、少なくとも1つのサブネットをファットツリートポロジーで構成させ、少なくとも1つのサブネットをルーティングするためにファットツリールーティングアルゴリズムを使用させることができる。
【0088】
本発明は、本開示の教示に従ってプログラミングされる1つ以上のプロセッサ、メモリ、および/またはコンピュータ読取可能な記録媒体を含む、1つ以上の従来の汎用もしくは特化デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを用いて好都合に実現されてもよい。適切なソフトウェアコーディングは、ソフトウェア技術の当業者には明らかであるように、本開示の教示に基づいて、熟練したプログラマーによって容易に作成されることができる。
【0089】
いくつかの実施形態では、本発明は、本発明のプロセスのうち任意のものを行なうようにコンピュータをプログラミングするのに用いることができる命令をその上に/その中に記憶した記録媒体またはコンピュータ読取可能な媒体であるコンピュータプログラム製品を含む。記録媒体は、フロッピー(登録商標)ディスク、光学ディスク、DVD、CD−ROM、マイクロドライブ、および磁気光学ディスクを含む任意の種類のディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気もしくは光学カード、(分子メモリICを含む)ナノシステム、または命令および/もしくはデータを記憶するのに好適な任意の種類の媒体もしくはデバイスを含むことができるが、これらに限定されない。
【0090】
本発明の以上の説明は、例示および説明の目的のために与えられた。網羅的であることまたは開示される正確な形態に発明を限定することを意図するものではない。当業者には多数の修正例および変形例が明らかである。発明の原則およびその実際的な適用例を最も良く説明し、これによりさまざまな実施形態について、企図される特定の用途に適するさまざまな修正例とともに当業者が発明を理解できるようにするために、実施形態を選択し、説明した。発明の範囲は、以下の請求項およびそれらの均等物によって規定されることが意図される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11