(57)【特許請求の範囲】
【請求項１】
スイッチファブリックを動作させるための、コンピュータにより実現される方法であって、
第１の組の物理ポートのための一組の仮想リンクを前記スイッチファブリック内に生成するステップと、
一組の仮想ポート番号を用いて、前記一組の仮想リンクと、前記スイッチファブリックに接続されたゲートウェイにおける第２の組の物理ポートとの間の一組のマッピングを生成するステップとを備え、前記第２の組の物理ポートは、１つの物理リンクを用いて前記第１の組の物理ポートに接続されており、前記方法はさらに、
前記マッピングを用いて、前記第１の組の物理ポートから前記第２の組の物理ポートへのトラフィックにおけるノンブロッキング動作を提供するステップを備え、
前記一組の仮想ポート番号を用いて、前記一組の仮想リンクと前記ゲートウェイにおける前記第２の組の物理ポートとの間の前記一組のマッピングを生成するステップは、
前記第２の組の物理ポートのうちの１つ以上のポートに関連付けられた固有の宛先識別子から仮想ポート番号への第１のマッピングを生成するステップと、
パケットに関連付けられたサービスレベルから前記一組の仮想リンクのうちの仮想リンクへの第２のマッピングを生成するステップと、
前記仮想ポート番号および前記仮想リンクを、前記第２の組の物理ポートのうちの物理ポートの仮想出力キュー（ＶＯＱ）に関連付けるステップとを含み、
前記マッピングを用いて、前記第１の組の物理ポートから前記第２の組の物理ポートへのトラフィックにおけるノンブロッキング動作を提供するステップは、
前記第１および第２のマッピングを用いて、前記固有の宛先識別子と前記サービスレベルとを含むパケットを前記ＶＯＱ内に配置するステップと、
前記物理ポートのための出力バッファがフルになったことに基づいて、前記パケットを前記ＶＯＱから除去するステップとを含む、方法。
【請求項２】
前記ＶＯＱからの前記パケットの除去は、前記ＶＯＱに関連付けられたクオリティ・オブ・サービス（ＱｏＳ）レベルにさらに基づく、請求項１に記載のコンピュータにより実現される方法。
【請求項３】
前記ＱｏＳレベルは、前記サービスレベルと前記仮想ポート番号とのうち少なくとも１つに関連付けられる、請求項２に記載のコンピュータにより実現される方法。
【請求項４】
前記第２の組の物理ポートの各々は、前記仮想リンクのうち１つ以上に関連付けられる、請求項１〜３のいずれか１項に記載のコンピュータにより実現される方法。
【請求項５】
前記スイッチファブリックは、ＩｎｆｉｎｉＢａｎｄスイッチファブリックであり、
前記ゲートウェイは、イーサネットゲートウェイである、請求項１〜４のいずれか１項に記載のコンピュータにより実現される方法。
【請求項６】
前記第１の組の物理ポートはＩｎｆｉｎｉＢａｎｄポートを含み、
前記第２の組の物理ポートはイーサネットポートを含む、請求項５に記載のコンピュータにより実現される方法。
【請求項７】
スイッチファブリックであって、
第１の組の物理ポートと、
スイッチング装置とを備え、
前記第１の組の物理ポートは、１つの物理リンクを用いて、ゲートウェイにおける第２の組の物理ポートと接続され、前記ゲートウェイは、前記スイッチファブリックに接続され、
前記スイッチング装置は、
前記第１の組の物理ポートのための一組の仮想リンクを前記スイッチファブリック内に生成し、
一組の仮想ポート番号を用いて、前記一組の仮想リンクと前記第２の組の物理ポートとの間の一組のマッピングを生成し、
前記マッピングを用いて、前記一組の仮想リンクから前記第２の組の物理ポートへのトラフィックにおけるノンブロッキング動作を提供する、ように構成されており、
前記一組の仮想ポート番号を用いて、前記一組の仮想リンクと前記第２の組の物理ポートとの間の前記一組のマッピングを生成することは、
前記第２の組の物理ポートのうちの１つ以上のポートに関連付けられた固有の宛先識別子から仮想ポート番号への第１のマッピングを生成することと、
パケットに関連付けられたサービスレベルから前記一組の仮想リンクのうちの仮想リンクへの第２のマッピングを生成することと、
前記仮想ポート番号および前記仮想リンクを、前記第２の組の物理ポートのうちの物理ポートの仮想出力キュー（ＶＯＱ）に関連付けることとを含み、
前記マッピングを用いて、前記第１の組の物理ポートから前記第２の組の物理ポートへのトラフィックにおけるノンブロッキング動作を提供することは、
前記第１および第２のマッピングを用いて、前記固有の宛先識別子と前記サービスレベルとを含むパケットを前記ＶＯＱ内に配置することと、
前記物理ポートのための出力バッファがフルになったことに基づいて、前記パケットを前記ＶＯＱから除去することとを含む、スイッチファブリック。
【請求項８】
前記ＶＯＱからの前記パケットの除去は、前記ＶＯＱに関連付けられたクオリティ・オブ・サービス（ＱｏＳ）レベルにさらに基づく、請求項７に記載のスイッチファブリック。
【請求項９】
前記ＱｏＳレベルは、前記サービスレベルと前記仮想ポート番号とのうち少なくとも１つにさらに関連付けられる、請求項８に記載のスイッチファブリック。
【請求項１０】
前記スイッチファブリックは、ＩｎｆｉｎｉＢａｎｄスイッチファブリックであり、
前記ゲートウェイは、イーサネットゲートウェイである、請求項７〜９のいずれか１項に記載のスイッチファブリック。
【請求項１１】
コンピュータによって実行されるとスイッチファブリックを動作させるための方法を前記コンピュータに行なわせる命令を含むコンピュータ読取可能プログラムであって、前記方法は
第１の組の物理ポートのための一組の仮想リンクを前記スイッチファブリック内に生成するステップと、
一組の仮想ポート番号を用いて、前記一組の仮想リンクと、前記スイッチファブリックに接続されたゲートウェイにおける第２の組の物理ポートとの間の一組のマッピングを生成するステップとを備え、前記第２の組の物理ポートは、１つの物理リンクを用いて前記第１の組の物理ポートに接続されており、さらに、
前記マッピングを用いて、前記一組の仮想リンクから前記第２の組の物理ポートへのトラフィックにおけるノンブロッキング動作を提供するステップを備え、
前記一組の仮想ポート番号を用いて、前記一組の仮想リンクと前記ゲートウェイの前記第２の組の物理ポートとの間の前記一組のマッピングを生成するステップは、
前記第２の組の物理ポートのうちの１つ以上のポートに関連付けられた固有の宛先識別子から仮想ポート番号への第１のマッピングを生成するステップと、
パケットに関連付けられたサービスレベルから前記一組の仮想リンクのうちの仮想リンクへの第２のマッピングを生成するステップと、
前記仮想ポート番号および前記仮想リンクを、前記第２の組の物理ポートのうちの物理ポートの仮想出力キュー（ＶＯＱ）に関連付けるステップとを含み、
前記マッピングを用いて、前記第１の組の物理ポートから前記第２の組の物理ポートへのトラフィックにおけるノンブロッキング動作を提供するステップは、
前記第１および第２のマッピングを用いて、前記固有の宛先識別子と前記サービスレベルとを含むパケットを前記ＶＯＱ内に配置するステップと、
前記物理ポートのための出力バッファがフルになったことに基づいて、前記パケットを前記ＶＯＱから除去するステップとを含む、コンピュータ読取可能プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
分野
開示された実施形態は、スイッチファブリックに関する。より具体的には、開示された実施形態は、スイッチファブリックにおいて、物理ポート間のノンブロッキング動作を提供するための仮想ポートマッピングを行なうための技術に関する。
【背景技術】
【０００２】
関連技術
スイッチファブリックは、データセンタ内のサーバ間でトラフィックを送るために使用され得る。たとえば、ＩｎｆｉｎｉＢａｎｄ（ＩｎｆｉｎｉＢａｎｄはＩｎｆｉｎｉＢａｎｄ  Ｔｒａｄｅ  Ａｓｓｏｃｉａｔｉｏｎ  Ｃｏｒｐ．の登録商標）スイッチファブリックは、ポイント・ツー・ポイントの双方向シリアルリンクを用いてデータセンタ内のプロセッサノードとストレージノードとを接続し得る。ＩｎｆｉｎｉＢａｎｄスイッチファブリックは、クオリティ・オブ・サービス（Quality of Service：ＱｏＳ）ならびに信頼性、可用性、および保守性（reliability, availability, and serviceability：ＲＡＳ）もノードに提供し得る。
【０００３】
加えて、スイッチファブリックに接続されたゲートウェイは、データセンタ効率および／またはネットワークコンソリデーションを改善し得る。たとえば、１つの物理アダプタおよびケーブルを用いてデータセンタ内のサーバがイーサネット（登録商標）ローカルエリアネットワーク（Local Area Network：ＬＡＮ）に接続されることが可能になるように、イーサネットゲートウェイがデータセンタ内のＩｎｆｉｎｉＢａｎｄスイッチファブリックに追加され得る。データセンタ内の仮想マシンに関連付けられたトラフィックストリームは、このため、ＩｎｆｉｎｉＢａｎｄ通信媒体を介して搬送された高スループットのイーサネットトラフィックと高スループット、低レイテンシのＩｎｆｉｎｉＢａｎｄトラフィックとを併せたものを含み得る。
【０００４】
しかしながら、スイッチファブリックに接続されたゲートウェイは一組の物理ポートを含み得る。当該一組の物理ポートは、１つの物理リンクを用いてスイッチファブリックにおける別の一組の物理ポートに接続されている。たとえば、ＩｎｆｉｎｉＢａｎｄスイッチファブリックにおけるイーサネットゲートウェイは、スイッチポートに接続されたターゲットチャネルアダプタ（target channel adapter：ＴＣＡ）として現われてもよく、これによって、ゲートウェイ上のすべてのイーサネットポートが１つのＩｎｆｉｎｉＢａｎｄリンクを共有することになる。ソフトウェアの観点から、ＴＣＡは、スイッチに面する１つのアップリンクポートと、イーサネットファブリックに面する１つ以上のダウンリンクポートとを備えて現われ得る。１つの物理リンクは複数のダウンリンクポートに入り得るので、ダウンリンクポートはヘッドオブライン・ブロッキングを呈し得る。このようなブロッキング動作（behavior／ビヘイビア）は、複数のゲートウェイポートを対象にするバースト性トラフィックパターンおよび／または個々のゲートウェイポートにおけるレイテンシによって引起される可能性がある。結果として、ゲートウェイの全体の速度は、すべての個々のゲートウェイポートのうち最も遅い速度に制限される可能性がある。
【０００５】
このようなブロッキング動作を軽減するために、１つのゲートウェイポートのみがスイッチファブリックにおける各々の物理リンクに接続され得る。しかしながら、このような解決法では、費用が掛かるとともに規模調整が難しくなり得る。ゆえに、ゲートウェイにおける複数の物理ポート間のブロッキング動作を効率よく解消するための機構によって、１つの物理リンクを用いてスイッチファブリックに接続されたゲートウェイの使用が容易になり得る。
【発明の概要】
【課題を解決するための手段】
【０００６】
概要
開示された実施形態は、スイッチファブリックを動作させるシステムを提供する。動作中、システムは、第１の組の物理ポートのための一組の仮想リンクをスイッチファブリック内に生成する。次に、システムは、一組の仮想ポート番号を用いて、上記一組の仮想リンクと第２の組の物理ポートとの間の一組のマッピングをスイッチファブリック内に生成する。第２の組の物理ポートは１つの物理リンクを用いて第１の組の物理ポートに接続されている。次いで、システムは、マッピングを用いて、第１の組の物理ポートから第２の組の物理ポートへのトラフィックにおけるノンブロッキング動作を提供する。
【０００７】
いくつかの実施形態において、上記一組の仮想ポート番号を用いて上記一組の仮想リンクと第２の組の物理ポートとの間の上記一組のマッピングをスイッチファブリック内に生成するステップは、
（ｉ）  第２の組の物理ポート中の１つ以上のポートに関連付けられた固有の宛先識別子から仮想ポート番号への第１のマッピングを生成するステップと、
（ｉｉ）  パケットに関連付けられたサービスレベルから上記一組の仮想リンクのうちの仮想リンクへの第２のマッピングを生成するステップと、
（ｉｉｉ）  仮想ポート番号および仮想リンクを、第２の組の物理ポートのうちの物理ポートの仮想出力キュー（virtual output queue：ＶＯＱ）に関連付けるステップとを含む。
【０００８】
いくつかの実施形態において、マッピングを用いて第１の組の物理ポートから第２の組の物理ポートへのトラフィックにおけるノンブロッキング動作を提供するステップは、第１および第２のマッピングを用いて、固有の宛先識別子とサービスレベルとを含むパケットをＶＯＱ内に配置するステップと、物理ポートのための出力バッファがフルになったことに基づいてＶＯＱからパケットを除去するステップとを含む。
【０００９】
いくつかの実施形態において、ＶＯＱからのパケットの除去は、ＶＯＱに関連付けられたクオリティ・オブ・サービス（ＱｏＳ）レベルにさらに基づく。
【００１０】
いくつかの実施形態において、ＱｏＳレベルは、サービスレベルと仮想ポート番号とのうち少なくとも１つに関連付けられる。
【００１１】
いくつかの実施形態において、第２の組の物理ポートの各々は仮想リンクのうち１つ以上に関連付けられる。
【００１２】
いくつかの実施形態において、スイッチファブリックは、ＩｎｆｉｎｉＢａｎｄスイッチファブリックとイーサネットゲートウェイとを含む。
【００１３】
いくつかの実施形態において、第１の組の物理ポートはＩｎｆｉｎｉＢａｎｄポートを含み、第２の組の物理ポートはイーサネットポートを含む。
【図面の簡単な説明】
【００１４】
【図１】開示された実施形態に係るスイッチファブリックを示す図である。
【図２】開示された実施形態に係る、第１の組の物理ポートのうちの第１の物理ポートから、１つの物理リンクによって当該第１の組の物理ポートに接続された第２の組の物理ポートのうちの第２の物理ポートへの、パケットのルーティングを示す図である。
【図３】開示された実施形態に係るデータの処理を示すフローチャートである。
【図４】開示された実施形態に係るコンピュータシステムを示す図である。
【発明を実施するための形態】
【００１５】
図面において、同様の参照符号は同一の図面要素を指す。
詳細な説明
以下の記載は、如何なる当業者でも実施形態を製造および使用することが可能になるように提示され、特定の用途およびその要件の文脈の中で提供される。開示された実施形態のさまざまな変形例が当業者には容易に明らかになるだろう。そして、ここで定義された一般的な原理は、本開示の精神および範囲から逸脱することなく他の実施形態および用途に適用され得る。このように、本発明は、示された実施形態に限定されるのではなく、ここに開示された原理および特徴に従った最も広い範囲が与えられる。
【００１６】
この詳細な説明に記載されたデータ構造およびコードは、典型的にはコンピュータ読取可能記憶媒体に記憶される。このコンピュータ読取可能記憶媒体は、コンピュータシステムによって使用されるためのコードおよび／またはデータを記憶できる如何なる装置または媒体であってもよい。コンピュータ読取可能記憶媒体は、揮発性メモリ、不揮発性メモリ、磁気および光学記憶装置（ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多用途ディスクもしくはデジタルビデオディスク）など）、または現在公知もしくは将来開発されるコードおよび／もしくはデータを記憶することのできる他の媒体を含むが、これらに限定されない。
【００１７】
詳細な説明部分に記載された方法および処理はコードおよび／またはデータとして具体化され得て、このコードおよび／またはデータは、上述したようなコンピュータ読取可能記憶媒体に記憶され得る。コンピュータシステムが、コンピュータ読取可能記憶媒体に記憶されたコードおよび／またはデータを読込んで実行する際に、当該コンピュータシステムは、データ構造およびコードとして具体化されコンピュータ読取可能記憶媒体内に記憶された方法および処理を行なう。
【００１８】
さらに、ここに記載された方法および処理は、ハードウェアモジュールまたは装置に含まれ得る。これらのモジュールまたは装置は、特定用途向け集積回路（application-specific integrated circuit：ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（field-programmable gate array：ＦＰＧＡ）、特定のときに特定のソフトウェアモジュールもしくは１つのコードを実行する専用もしくは共有プロセッサ、および／または、現在公知もしくは将来開発される他のプログラマブルロジックデバイスを含み得るが、これらに限定されない。ハードウェアモジュールまたは装置が起動されると、それらはその中に含まれる方法および処理を行なう。
【００１９】
開示された実施形態は、スイッチファブリックを動作させるための方法およびシステムを提供する。図１に示すように、スイッチファブリック１２２は、第１の組の物理ポート（たとえば物理ポート１  １１０、物理ポートｘ  １１２）を含んでもよく、ゲートウェイ１２４は、１つの物理リンク１１６を用いて第１の組の物理ポートに接続された第２の組の物理ポート（たとえば物理ポート１１８、物理ポートｙ  １２０）を含んでもよい。たとえば、スイッチファブリック１２２は、データセンタ内の複数のサーバおよび／または仮想マシンを接続するＩｎｆｉｎｉＢａｎｄ（ＩｎｆｉｎｉＢａｎｄはＩｎｆｉｎｉＢａｎｄ  Ｔｒａｄｅ  Ａｓｓｏｃｉａｔｉｏｎ  Ｃｏｒｐ．の登録商標）スイッチファブリックであってもよく、ゲートウェイ１２４は、イーサネットゲートウェイであってもよい。イーサネットゲートウェイは、ＩｎｆｉｎｉＢａｎｄスイッチファブリックにおけるスイッチポートに接続されたターゲットチャネルアダプタ（ＴＣＡ）として現われるので、イーサネットゲートウェイにおけるイーサネットポートは、１つのＩｎｆｉｎｉＢａｎｄリンクを有効に共有し得る。
【００２０】
物理リンク１１６により、ゲートウェイ１２４における物理ポートがヘッドオブライン・ブロッキングを被る可能性があることを、当業者は理解するだろう。たとえば、ゲートウェイ１２４におけるビジーなポートに向かう古いパケットは、たとえ他のポートがビジーでなかったとしても、ゲートウェイ１２４における他のポートに向かう新しいパケットをブロックし得る。結果として、ゲートウェイ１２４におけるすべてのポートに利用可能な帯域幅が、ゲートウェイ１２４における最も遅いポートの帯域幅によって制限される可能性がある。たとえば、ゲートウェイ１２４は４つの１０ギガビットイーサネットポートを含んでもよく、これは合計４０ギガビットの帯域幅を提供することになる。しかしながら、イーサネットポート間のヘッドオブライン・ブロッキングは、ゲートウェイ１２４の帯域幅を１つの１０ギガビットイーサネットポートの帯域幅に制限する可能性がある。
【００２１】
１つ以上の実施形態において、スイッチファブリック１２２は、サーバ、仮想マシン、および／またはトラフィックの送信元の他の環境の変更を必要とすることなく、ゲートウェイ１２４におけるポートへのトラフィックにおけるノンブロッキング動作を提供する機能を含む。このようなノンブロッキング動作を可能にするために、スイッチファブリック１２２におけるスイッチング装置１１４は、物理ポートのための一組の仮想リンク（たとえば仮想リンク１  １０２、仮想リンクｍ  １０４、仮想リンク１  １０６、仮想リンクｎ  １０８）をスイッチファブリック１２２内に生成し得る。たとえば、スイッチング装置１１４は、ＩｎｆｉｎｉＢａｎｄスイッチ上のハードウェアおよび／またはファームウェアによって提供されてもよく、一組の仮想リンクは、一組のＩｎｆｉｎｉＢａｎｄ仮想レーン（virtual lanes：ＶＬｓ）として、スイッチング装置１１４によってＩｎｆｉｎｉＢａｎｄスイッチ内に生成されてもよい。
【００２２】
スイッチング装置１１４は、一組の仮想ポート番号１２８を用いて、上記一組の仮想リンクとゲートウェイ１２４における物理ポートとの間の一組のマッピング１２６も生成し得る。たとえば、ゲートウェイ１２４における各々の物理ポートは、１つ以上の仮想ポート番号１２８によって表現されてもよく、当該仮想ポート番号１２８はスイッチファブリック１２２において１つ以上の固有の宛先識別子（たとえば宛先アドレス）にマップされる。結果として、物理リンク１１６によりゲートウェイ１２４全体に１つの物理ポート番号しか割当てられなくても、仮想ポート番号は、ゲートウェイ１２４上の個々の物理ポートの識別を可能にする抽象化要素（abstractions）であり得る。ゲートウェイ１２４における物理ポートは、スイッチファブリック１２２における仮想リンクと一組のサービスレベルとの間の一組のマッピングに、さらに関連付けられ得る。
【００２３】
スイッチング装置１１４は、マッピングを用いて、仮想リンクからゲートウェイ１２４における物理ポートへのトラフィックにおけるノンブロッキング動作を提供し得る。たとえば、スイッチング装置１１４は、ノンブロッキング動作を提供するために用いられる仮想出力キュー（ＶＯＱｓ）１３０にマッピングを関連付け得る。各々のＶＯＱは、スイッチファブリック１２２における仮想ポート番号および仮想リンクに関連付けられ得る。結果として、スイッチング装置１１４は、スイッチファブリック１２２における入力物理ポート（たとえば物理ポート１  １１０、物理ポートｘ  １１２）毎に十分なＶＯＱを提供し得て、ゲートウェイ１２４における出力物理ポート（たとえば物理ポート１  １１８、物理ポートｙ  １２０）間のヘッドオブライン・ブロッキングを回避し得る。スイッチファブリックにおける仮想リンクと物理ポートとの間のマッピングを用いて物理ポート間のノンブロッキング動作を提供することについては、図２に関連して以下でさらに詳しく説明する。
【００２４】
図２は、開示された実施形態に係る、第１の組の物理ポートのうちの第１の物理ポート２３４から、１つの物理リンクによって第１の組の物理ポートに接続された第２の組の物理ポートのうちの第２の物理ポート２３６への、パケット２０２のルーティングを示す。たとえば、パケット２０２は、ＩｎｆｉｎｉＢａｎｄスイッチファブリック（たとえば図１のスイッチファブリック１２２）におけるＩｎｆｉｎｉＢａｎｄ物理ポート２３４から受信され得る。次いで、パケット２０２は、１つの物理リンクを用いてスイッチファブリックに接続されたゲートウェイにおけるＩｎｆｉｎｉＢａｎｄおよび／またはイーサネット物理ポート２３６に送られ得る。
【００２５】
図２に示すように、パケット２０２は、パケット２０２における固有の宛先識別子２１６および／またはサービスレベル２１８に基づいて送られ得る。宛先識別子２１６は、パケット２０２の宛先のアドレスを表現し得る。たとえば、ＩｎｆｉｎｉＢａｎｄパケットのための宛先識別子２１６は、パケットのローカルルーティングヘッダ（Local Routing Header：ＬＲＨ）における１６ビット宛先ローカル識別子（destination local identifier：ＤＬＩＤ）を用いて特定され得る。パケット２０２のための要求されたクオリティ・オブ・サービス（ＱｏＳ）レベルを定義するためにサービスレベル（service level：ＳＬ）２１８が用いられ得る。たとえば、ＩｎｆｉｎｉＢａｎｄパケットのＬＲＨは、スイッチファブリックにおけるトラフィック分離、ポリシー・エンフォースメント、および／またはノンブロッキング動作に関連付けられた１６のＳＬのうちの１つを特定し得る。
【００２６】
スイッチファブリックにおける宛先識別子２２０の、一組の仮想ポート番号２２２へのマッピングを含む転送テーブル２０４を用いて、宛先識別子２１６に関連付けられた宛先仮想ポート番号２２８を識別し得る。たとえば、転送テーブル２０４は、一組のＤＬＩＤによって表現されたＩｎｆｉｎｉＢａｎｄ宛先のための出力ポートを特定する、ＩｎｆｉｎｉＢａｎｄスイッチのための線形転送テーブルであり得る。
【００２７】
１つ以上の実施形態において、スイッチファブリックにおける有効な物理ポート番号の代わりに、仮想ポート番号２２２を用いて第２の組の物理ポートを識別する。たとえば、転送テーブル２０４における各々の仮想ポート番号は、ＩｎｆｉｎｉＢａｎｄスイッチファブリックに接続されたイーサネットゲートウェイにおける別の物理ポートを識別し得る。しかしながら、第２の組の物理ポートが１つの物理リンクを用いてスイッチファブリックに接続されているので、第２の組の物理ポートはスイッチファブリックにおける１つの物理ポート番号を共有し得る。したがって、仮想ポート番号２２２が表現し得る抽象化要素は、ＩｎｆｉｎｉＢａｎｄサブネットマネージャなどの包括的なファブリックマネージメントソフトウェアに対して、ＩｎｆｉｎｉＢａｎｄファブリックと第２の組の物理ポートとの間の接続を提供する物理リンクが１つもないという錯覚を与える。代わりに、仮想ポート番号２２２は、スイッチファブリックのハードウェアおよび／またはファームウェアにインプリメントされたスイッチング装置（たとえば図１のスイッチング装置１１４）を用いて第２の組の物理ポートにマップされ得る。
【００２８】
さらに仮想ポート番号を用いて、第２の組の物理ポートのうちの各々のポートがＩｎｆｉｎｉＢａｎｄファブリック上の専用物理ポートに直接接続されているという錯覚、および、それゆえにポートが固有のＩｎｆｉｎｉＢａｎｄファブリックエンドポートを固有の宛先アドレスで表現するという錯覚を、サブネットマネージャに与えることができる。このように、第２の組の物理ポートのうちの異なるポートを対象とするパケットも、ＩｎｆｉｎｉＢａｎｄエンドポート宛先に到達する前に、ＩｎｆｉｎｉＢａｎｄファブリックを通って完全に独立して送られ得る。
【００２９】
必要に応じて、インプリメンテーションは、ＩｎｆｉｎｉＢａｎｄファブリックへの実際の接続を表現する１つの物理ポートのためのループバック転送機構をサポートすることによって、第２の組の物理ポートのうちのポートがＩｎｆｉｎｉＢａｎｄファブリック上で互いに通信するための能力も含むことができる。したがって、当該インプリメンテーションは、複数の仮想スイッチポート抽象化要素が暗に含む完全な一組のＩｎｆｉｎｉＢａｎｄのフィーチャー（features）に対処し得る。しかしながら、第２の組の物理ポートのうちのポートが複数の独立したゲートウェイポートを表現するならば、ゲートウェイポートがＩｎｆｉｎｉＢａｎｄファブリックを介して互いの間でパケットを送信するという本来の必要がなくなり、したがってこの余分なインプリメンテーションのせいで複雑になるのが回避できる。
【００３０】
代替的な抽象化は、１つのポートが１つの物理ポートを接続し、他のポートが第２の組の物理ポートのうちのポートの各々を接続している第２のＩｎｆｉｎｉＢａｎｄスイッチとして、１つの物理ポートと第２の組の物理ポートとの間の接続を表現するものである。この抽象化は、第２の組の物理ポートのうちの各々のポートがＩｎｆｉｎｉＢａｎｄファブリック上の個々のエンドポートを固有のＩｎｆｉｎｉＢａｎｄアドレスで表現するという概念を維持するが、１つの中間ＩｎｆｉｎｉＢａｎｄリンクに関連付けられた如何なる制限も依然としてモデルの中に存在するということを本質的に暗に含む。
【００３１】
いずれの抽象化モデルにおいても、どの仮想スイッチポートが現在接続されているか、および、どの仮想エンドポートが仮想スイッチポートに現在接続されているかについての変更に繋がるであろう仮想ＩｎｆｉｎｉＢａｎｄホットプラグ（hot-plug）／アンプラグ（un-plug）動作として構成の変更を表現することによって、第２の組の物理ポートのうちのポートについての如何なる静的または動的構成および接続にも対処することが可能である。モデルの唯一の制限事項は、如何なるＩｎｆｉｎｉＢａｎｄスイッチ表現のための物理スイッチポートおよび仮想スイッチポートの合計も、ＩｎｆｉｎｉＢａｎｄスイッチのための外部ポートの最大数としてＩｎｆｉｎｉＢａｎｄ仕様によって定義される２５５ポートを超え得ることがないということである。
【００３２】
スイッチファブリックにおける、仮想リンク２２６へのＳＬ２２４の一組のマッピング２０６は、サービスレベル２１８に関連付けられたターゲット仮想リンク２３０を識別するためにも用いられ得る。たとえば、マッピング２０６は、ＩｎｆｉｎｉＢａｎｄスイッチのためのＳＬ−ＶＬマッピングテーブル（SL-to-VL mapping table）内に記憶され得る。ＳＬ−ＶＬマッピングテーブルは、パケット２０２における抽象ＳＬ２１８がスイッチファブリックにおいて具体的なＶＬにマップされることを可能にし得る。結果として、ＳＬ２１８は、異なる番号のＶＬを有するＩｎｆｉｎｉＢａｎｄスイッチ間でパケット２０２が送られる際にフロー制御とＱｏＳとが提供されることを可能にし得る。
【００３３】
次いで、宛先仮想ポート番号２２８とターゲット仮想リンク２３０とを用いて物理ポート２３６のＶＯＱ２３２が識別され、パケット２０２がＶＯＱ２３２内に配置され得る。ＶＯＱ２３２は、宛先仮想ポート番号２２８とターゲット仮想リンク２３０との組合せによって識別されるので、物理ポート２３６および第２の組の物理ポートのうちの他の物理ポート間のヘッドオブライン・ブロッキングを防止するのに十分なＶＯＱが提供され得る。たとえば、スイッチファブリックは、第２の組の物理ポートのうちの４２のポートと９の仮想リンクとをサポートし得る。結果として、第１の組の物理ポートのうちの各々の入力ポート（たとえば物理ポート２３４）は、第２の組の物理ポートのためのＶＯＱを４２×９個、すなわち３７８個、有し得る。
【００３４】
たとえば、ＩｎｆｉｎｉＢａｎｄスイッチのポート３７〜４０は４つのイーサネットゲートウェイにマップされてもよく、その各々が４つの独立した１０ギガビットイーサネットポートを含む。３７、３８、３９または４０の宛先仮想ポート番号（たとえば宛先仮想ポート番号２２８）をもたらす転送テーブル２０４のルックアップによってトラフィックを対応するゲートウェイに送信させ、ＳＬ−ＶＬマッピングテーブルにおけるマッピング２０６を用いてターゲット仮想リンク２３０を識別してもよい。ポート３７〜４０へのこのようなデータの伝送は、４０ギガビットイーサネットゲートウェイモードにおけるゲートウェイの使用中に、および／またはイーサネットゲートウェイが使用不可であり、対応するポートがＩｎｆｉｎｉＢａｎｄポートとして使用される場合に、起こり得る。
【００３５】
０〜６３が有効なＩｎｆｉｎｉＢａｎｄポート番号であり得るため、イーサネットポートを表現する仮想ポート番号は６４で始まり得る。ポート６４〜７１は、ポート３７に対応するイーサネットゲートウェイにおける個々のイーサネットポートをエンコードする仮想ポート番号であり得る。特に、ポート６４〜６５はゲートウェイの第１のイーサネットポートを表現してもよく、ポート６６〜６７はゲートウェイの第２のイーサネットポートを表現してもよく、ポート６８〜６９はゲートウェイの第３のイーサネットポートを表現してもよく、ポート７０〜７１はゲートウェイの第４のイーサネットポートを表現してもよい。同様に、ポート７２〜７９は、ポート３８によって表現されたゲートウェイの４つのイーサネットポートに割当てられてもよく、ポート８０〜８７は、ポート３９によって表現されたゲートウェイの４つのイーサネットポートに割当てられてもよく、ポート８８〜９５は、ポート４０によって表現されたゲートウェイの４つのイーサネットポートに割当てられてもよい。
【００３６】
さらに、各々の仮想ポート番号は、２つまでのＶＬに関連付けられ得る。１つのＶＬのみが用いられるならば、ＳＬ−ＶＬマッピングテーブルにおける値はすべて０に設定され得る。ポート６４〜６５はＶＬ０またはＶＬ１に関連付けられ、ターゲットＶＬはＳＬ−ＶＬマッピングテーブルにおける０または１の値によって特定され得る。ポート６６〜６７はＶＬ２またはＶＬ３に関連付けられ、ターゲットＶＬはＶＬ２とＳＬ−ＶＬマッピングテーブルにおける０または１の値との合計によって特定され得る。ポート６８〜６９はＶＬ４またはＶＬ５に関連付けられ、ターゲットＶＬはＶＬ４とＳＬ−ＶＬマッピングテーブルにおける０または１の値との合計によって特定され得る。ポート７０〜７１はＶＬ６またはＶＬ７に関連付けられ、ターゲットＶＬはＶＬ６とＳＬ−ＶＬマッピングテーブルにおける０または１の値との合計によって特定され得る。次いで、ターゲットＶＬおよび仮想ポート番号は、ＩｎｆｉｎｉＢａｎｄスイッチの各々の入力ポートに関するＶＯＱを分けるようにマップされて、ゲートウェイのイーサネットポート間のノンブロッキング動作を提供し得る。
【００３７】
その結果、如何なるＳＬおよび／または仮想リンクも複数のＱｏＳレベルでオーバーロードされ得るように、宛先仮想ポート番号２２８を用いて同じＳＬ（たとえばＳＬ２１８）を異なる仮想リンクに再びマップし得る。たとえば、物理ポート２３６に送られたトラフィックについて複数のＱｏＳレベルを提供するために、ＩｎｆｉｎｉＢａｎｄＶＬアービトレーションおよび／またはフェアキューイングスキームなどのアービトレーションスキームが、ＶＯＱ２３２と物理ポート２３６のための他のＶＯＱとに適用され得る。所与の物理ポートのための追加の仮想ポート番号（たとえば仮想ポート番号２２２）を用いて、ＱｏＳレベルをさらに拡張するパケット（たとえばパケット２０２）ヘッダのルックアップを引起し得る。ルックアップを追加することで、結果として、パケットヘッダが変更されてもよいし変更されなくてもよい。
【００３８】
一旦パケット２０２がＶＯＱ２３２内に存在すると、ＶＯＱ２３２に関連付けられた物理ポート２３６および／またはＱｏＳレベルのための出力バッファがフルになったことに基づいて、パケット２０２がＶＯＱ２３２から除去され得る。たとえば、物理ポート２３６による処理がパケット２０２に予定されるまで、および／または物理ポート２３６の出力バッファがパケット２０２を受入れ可能になるまで、パケット２０２がＶＯＱ２３２にバッファリングされ得る。その結果、第２の組の物理ポートのうちの他の物理ポートは、遅延、停止（たとえばイーサネットの中断）、および／または物理ポート２３６へのトラフィックのバーストによって引起され得る物理ポート２３６におけるレイテンシの増加に影響されるおそれはない。
【００３９】
逆に、スイッチファブリックのための従来のルックアップスキームは、物理ポート２３６と第２の組の物理ポートのうちの他の物理ポートとのために１つのポート番号を発生するだけであり得る。さらに、１つのターゲット仮想リンク２３０のみがマッピング２０６から利用可能であり得る。結果として、スイッチは、第２の組の物理ポートのうちの異なる物理ポートを区別することができず、第２の組の物理ポートにおけるブロッキング動作によって、第２の組の物理ポートの全体の帯域幅が小さくなってしまう可能性がある。
【００４０】
図３は、開示された実施形態に係るデータの処理を示すフローチャートである。１つ以上の実施形態において、１つ以上のステップは省略されてもよく、繰返されてもよく、および／または異なる順序で行なわれてもよい。したがって、図３に示されたステップの特定の配置は、実施形態の範囲を限定するものとして解釈されるべきではない。
【００４１】
まず、第１の組の物理ポートのための一組の仮想リンクがスイッチファブリック内に生成される（動作３０２）。たとえば、仮想リンクを表現する１６ＶＬまでＩｎｆｉｎｉＢａｎｄスイッチファブリック内に生成され得る。次に、一組の仮想ポート番号を用いて、上記一組の仮想リンクと第２の組の物理ポートとの間の一組のマッピングをスイッチファブリック内に生成する（動作３０４）。第２の組の物理ポートは、１つの物理リンクを用いて第１の組の物理ポートに接続され得る。たとえば、第２の組の物理ポートはＩｎｆｉｎｉＢａｎｄポートおよび／またはイーサネットポートを含んでもよく、それらは１つのＩｎｆｉｎｉＢａｎｄリンクを用いてＩｎｆｉｎｉＢａｎｄスイッチファブリックにおける第１の組のＩｎｆｉｎｉＢａｎｄポートに接続されている。
【００４２】
マッピングは、スイッチファブリックにおける宛先の固有の宛先識別子から仮想ポート番号への第１のマッピングと、パケットに関連付けられたＳＬから仮想リンクへの第２のマッピングとを含み得る。固有の宛先識別子は、第２の組の物理ポートのうちの１つ以上のポートに関連付けられ得る。仮想ポート番号および仮想リンクは、第２の組の物理ポートのうちの物理ポートの仮想出力キュー（ＶＯＱ）にさらに関連付けられ得る。結果として、仮想ポート番号は、第２の組の物理ポートのうちの物理ポートの抽象化要素を表現し、複数のＱｏＳレベルおよび／または分離されたトラフィックフローを用いたＳＬおよび／または仮想リンクのオーバーロードを可能にし得る。
【００４３】
最後に、マッピングを用いて、第１の組の物理ポートから第２の組の物理ポートへのトラフィックにおけるノンブロッキング動作を提供する（動作３０６）。たとえば、第１および第２のマッピングを用いて、宛先識別子とサービスレベルとを含むパケットをＶＯＱ内に配置し得る。次いで、ＶＯＱに関連付けられた物理ポートおよび／またはＱｏＳレベルのための出力バッファがフルになったことに基づいて、パケットがＶＯＱから除去され得る。
【００４４】
図４は、開示された実施形態に係るコンピュータシステム４００を示す。コンピュータシステム４００は、プロセッサ４０２、メモリ４０４、ストレージ４０６、および／または、電子演算装置に見られる他のコンポーネントを含む。プロセッサ４０２は、コンピュータシステム４００における他のプロセッサを用いる並列処理および／またはマルチスレッドオペレーションをサポートし得る。コンピュータシステム４００は、キーボード４０８、マウス４１０、およびディスプレイ４１２などの入力／出力（input/output：Ｉ／Ｏ）装置も含み得る。
【００４５】
コンピュータシステム４００は、本実施形態のさまざまなコンポーネントを実行する機能を含み得る。特に、コンピュータシステム４００は、コンピュータシステム４００上のハードウェアおよびソフトウェアリソースと、ユーザのための専門タスクを行なう１つ以上のアプリケーションとの使用を調整するオペレーティングシステム（図示せず）を含み得る。ユーザのためのタスクを行なうために、アプリケーションは、コンピュータシステム４００上のハードウェアリソースの使用をオペレーティングシステムから取得するとともに、オペレーティングシステムによって提供されたハードウェアおよび／またはソフトウェアフレームワークを介してユーザとやりとりし得る。
【００４６】
１つ以上の実施形態において、コンピュータシステム４００は、スイッチファブリックを動作させるためのシステムを提供する。スイッチファブリックは、第１の組の物理ポートと、１つの物理リンクを用いて第１の組の物理ポートに接続された第２の組の物理ポートとを含み得る。システムは、第１の組の物理ポートのための一組の仮想リンクをスイッチファブリック内に生成するスイッチング装置を提供し得る。次に、スイッチング装置は、一組の仮想ポート番号を用いて、上記一組の仮想リンクと第２の組の物理ポートとの間の一組のマッピングを生成し得る。最後に、スイッチング装置は、マッピングを用いて、上記一組の仮想リンクから第２の組の物理ポートへのトラフィックにおけるノンブロッキング動作を提供し得る。
【００４７】
さらに、コンピュータシステム４００の１つ以上のコンポーネントは、遠隔に位置してネットワークを介して他のコンポーネントと接続されてもよい。本実施形態の部品（たとえば物理ポート、スイッチファブリック、ゲートウェイ、物理リンク、スイッチング装置など）は、実施形態を実現する分散システムの異なるノード上に位置することもあり得る。たとえば、本実施形態は、１つの物理リンクを用いて接続された２組の遠隔物理ポートにおけるノンブロッキング動作を提供するクラウドコンピューティングシステムを用いて実現され得る。
【００４８】
さまざまな実施形態の上述の記載は、例示および説明の目的で提示されたにすぎない。それらは網羅的なものとして意図されたものではなく、または、開示された形態に本発明を限定するように意図されたものではない。したがって、多くの変形例および変更例が当業者には明らかであろう。さらに、上記の開示は、本発明を限定するように意図されたものではない。
【図１】
0006483720.tif 000002
【図２】
0006483720.tif 000003
【図３】
0006483720.tif 000004
【図４】
0006483720.tif 000005