(57)【特許請求の範囲】
【請求項１】
２つのコンピューティング・デバイスを接続する物理的接続を確立するステップであって、前記物理的接続内を流れるネットワーク・トラフィックが複数の仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）チャネルに論理的に分割される、前記確立するステップと、
前記物理的接続の帯域幅を、前記複数のＶＬＡＮチャネルのうち少なくとも２つに割り振るステップと、
前記複数のＶＬＡＮチャネルの１つに割り振られた前記帯域幅を複数のトラフィック・クラス間でさらに分割して前記複数のトラフィック・クラスに割り当てるステップと
を含む方法。
【請求項２】
前記複数のＶＬＡＮチャネルおよび前記複数のトラフィック・クラスは、ＩＥＥＥ  ８０２．１ＱおよびＩＥＥＥ  ８０２．１Ｑの派生標準の少なくとも１つに基づいて構成される、請求項１に記載の方法。
【請求項３】
前記複数のＶＬＡＮチャネルの前記１つに割り当てられた前記ネットワーク・トラフィックが前記割り振られた帯域幅を現在使用しているかどうかを判定するステップと、
使用していない場合、前記複数のＶＬＡＮチャネルの前記１つに割り当てられた前記帯域幅の少なくとも一部を異なるＶＬＡＮチャネルに割り振るステップと、
前記帯域幅の前記一部を前記異なるＶＬＡＮチャネルから前記複数のＶＬＡＮチャネルの前記１つに再割り当てするステップと
をさらに含む、請求項１に記載の方法。
【請求項４】
前記ＶＬＡＮチャネルはサービスＶＬＡＮ（Ｓ−ＶＬＡＮ）に関連付けられている、請求項１に記載の方法。
【請求項５】
前記ＶＬＡＮチャネルは、Ｓ−ＶＬＡＮに割り当てられているカスタマーＶＬＡＮ（Ｃ−ＶＬＡＮ）に関連付けられる、請求項１に記載の方法。
【請求項６】
前記Ｓ−ＶＬＡＮおよびＣ−ＶＬＡＮは、ＩＥＥＥ  ８０２．１ＱｉｎＱおよびＩＥＥＥ  ８０２．１ＱｉｎＱの派生標準の少なくとも１つに基づいて構成される、請求項５に記載の方法。
【請求項７】
前記物理的接続の前記複数のＶＬＡＮチャネルのサブセットのみに帯域幅が割り振られる、請求項１に記載の方法。
【請求項８】
コンピュータ可読プログラム・コードが具現化されたコンピュータ可読記憶媒体を備えるコンピュータ・プログラムであって、前記コンピュータ可読プログラム・コードは、
２つのコンピューティング・デバイスを接続する物理的接続を確立し、前記物理的接続内を流れるネットワーク・トラフィックが複数の仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）チャネルに論理的に分割され、
前記物理的接続の帯域幅を、前記複数のＶＬＡＮチャネルのうち少なくとも２つに割り振り、
前記複数のＶＬＡＮチャネルの１つに割り振られた前記帯域幅を複数のトラフィック・クラス間でさらに分割して前記複数のトラフィック・クラスに割り当てる
ようにコンピュータを動作させる、コンピュータ・プログラム。
【請求項９】
物理的接続を介してコンピューティング・デバイスに接続されるように構成されたポートであって、前記物理的接続内を流れるネットワーク・トラフィックが複数の仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）チャネルに論理的に分割される、前記ポートと、
前記ポートの帯域幅を、前記複数のＶＬＡＮチャネルのうち少なくとも２つに割り振り、前記複数のＶＬＡＮチャネルの１つに割り振られた前記帯域幅を複数のトラフィック・クラス間でさらに分割して前記複数のトラフィック・クラスに割り当てるように構成された帯域幅スケジューラと
を備えるネットワーク・デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にはネットワーク・ファブリックにおける帯域幅の割当に関し、より詳細には、ネットワーク・ファブリック内の特定の論理的データ・フローに帯域幅を割り当てることに関する。
【背景技術】
【０００２】
コンピュータ・システムは、しばしば、共通の筐体内で共に結合された複数のコンピュータを使用する。そのようなコンピュータは、例えば別個のサーバが筐体内で共通のバックボーンによって結合されたものであってよい。各サーバはプラグ接続可能な基板であり、少なくとも１つのプロセッサ、オンボード・メモリ、および入出力（Ｉ／Ｏ）インターフェースを含む。さらにそれらのサーバを１つのスイッチに接続して各サーバの能力を拡張することもできる。例えば、そのスイッチにより、サーバは他のイーサネット（Ｒ）・ネットワークやＰＣＩｅスロットにアクセスできるようになり、また、同じ筐体もしくは異なる筐体内のサーバ間でも通信できるようになる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
複数のスイッチを組み合わせて１つの論理的スイッチを作り出すことができる。また、複数のスイッチとサーバ間の各物理的接続は、接続内の特定のデータ・フローに最小量の帯域幅が割り当てられるように管理することができる。すなわち、物理的接続内の１つのデータ・フローに、別のデータ・フローよりも多くの帯域幅を割り当てることができる。システム管理者が特定のデータ・フローに帯域幅を割り当てる能力を高めると、システム管理者のネットワークに対する制御性も向上する。
【課題を解決するための手段】
【０００４】
本発明の実施形態は、２つのコンピューティング・デバイスを接続する物理的接続を提供する方法およびコンピュータ可読記憶媒体を開示し、物理的接続内を流れるネットワーク・トラフィックが、複数の仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）チャネルに論理的に分割される。本発明の方法およびコンピュータ可読記憶媒体は、物理的接続の帯域幅を複数のＶＬＡＮチャネルの少なくとも２つに割り振り、複数のＶＬＡＮチャネルの１つに割り振られた帯域幅を複数のトラフィック・クラス間でさらに分割する。
【０００５】
別の実施形態では、ネットワーク・デバイスは、物理的接続を介してコンピューティング・デバイスに接続されるように構成されたポートを備え、物理的接続内を流れるネットワーク・トラフィックが複数の仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）チャネルに論理的に分割される。ネットワーク・デバイスは、ポートの帯域幅を、複数のＶＬＡＮチャネルのうち少なくとも２つに割り振り、複数のＶＬＡＮチャネルの１つに割り振られた帯域幅を複数のトラフィック・クラス間でさらに分割するように構成された帯域幅スケジューラも備える。
【０００６】
上記態様がどのようにして実現されるかを詳細に理解できるように、添付図面を参照して上記で簡単に要約した本発明の実施形態をより詳細に説明することができる。
【０００７】
ただし、添付図面は本発明の典型的な実施形態を示すものに過ぎず、本発明には、等しい効果を持つ他の実施形態が可能である場合があることから、したがって本発明の範囲を制限するものとは解釈すべきでないことに留意されたい。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態による分散型の仮想スイッチを含むシステム・アーキテクチャを示す図である。
【図２】本発明の一実施形態による仮想スイッチを実装するシステムのハードウェア表現図である。
【図３】本発明の一実施形態による仮想スイッチの図である。
【図４】本発明の実施形態により、図１のシステム内で仮想ローカル・アクセス・ネットワークを使用する場合を説明する図である。
【図５】本発明の一実施形態による、仮想ローカル・エリア・ネットワークＩＤに基づいてネットワーク・トラフィックを識別するデータ・フレームの図である。
【図６】本発明の実施形態により、図１のシステムでＥＴＳ（EnhancedTransmission Selection、拡張伝送選択）の強化バージョンを使用する場合を示す図である。
【図７】本発明の一実施形態による、仮想ローカル・エリア・ネットワークを使用するＥＴＳの強化バージョンを説明する図である。
【図８】本発明の一実施形態による、仮想ローカル・エリア・ネットワークを使用するＥＴＳの強化バージョンを説明する図である。
【図９】本発明の一実施形態による、図２のシステムで仮想ローカル・エリア・ネットワークを使用するＥＴＳの強化バージョンを説明する図である。
【発明を実施するための形態】
【０００９】
ＩＥＥＥ  ８０２．１Ｑ（または８０２．１ｐ）では、１つの物理的接続上のデータ・フローを８つの異なる優先度またはトラフィック・クラスに論理的に分けることができる。同標準では、物理的接続の全帯域幅を８つのトラフィック・クラス間で分割する技術も提供される。例えば、管理者が、任意のトラフィック・クラスに必ず提供しなければならない最小帯域幅を設定することができる。さらに柔軟性を高めるために、８０２．１Ｑａｚ（以下ではEnhanced Transmission Selection（ＥＴＳ）と称する）は、トラフィック・クラス間で帯域幅を再割当するための標準を提供している。あるトラフィック・クラスに割り当てられたネットワーク・トラフィックがそのクラスに割り当てられた分の帯域幅を使用しない場合、ＥＴＳによれば、他のトラフィック・クラスがその空き帯域幅を使用することができる。ＥＴＳは厳密な優先度（すなわち、特定のトラフィック・クラスの帯域幅を共用することができない）と共存することさえ可能である。２つのトラフィック・クラスの帯域幅が厳密な優先度付けの対象ではない場合、ＥＴＳによれば、一方のトラフィック・クラスの未使用帯域幅を他方のトラフィック・クラスが使用することができる。例えば、２つのトラフィック・クラスに関連付けられたデータ・フローにバースト性がある場合、すなわち、高負荷が短時間生じる場合は、高負荷が同時に発生しない限り、現在高負荷がかかっているトラフィック・クラスが、もう一方のトラフィック・クラスに割り当てられた帯域幅の一部またはすべてを使用することができる。高負荷が同時に発生して両方のトラフィック・クラスが割り当てられた帯域幅をすべて使用している場合、ＥＴＳでは、一方のトラフィック・クラスが他方のトラフィック・クラスの帯域幅を借りることはできない。
【００１０】
ＩＥＥＥ  ８０２．１Ｑは、ＣＥＥ（converged enhancedEthernet（Ｒ）、コンバージド・エンハンスド・イーサネット）ネットワークにおける仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）の使用についても標準化している。一般に、ＶＬＡＮでは、物理ＬＡＮの終端局が同じネットワーク・スイッチ上にない場合でも、ＬＡＮの終端局を一緒にグループ化することができる。すなわち、２つの異なるスイッチに関連付けられた２つの物理的接続を論理的に接続し、同じＬＡＮ（すなわちＶＬＡＮ）の一部にすることができる。パケットは、そのパケットを特定のＶＬＡＮに割り当てるＶＬＡＮ  ＩＤ（すなわちＶＬＡＮタグ）を含んでいる。ＶＬＡＮは従来はルータによって提供されていたセグメント化サービスを提供し、ＬＡＮの拡張性、セキュリティ、およびネットワーク管理性を向上させる。
【００１１】
ＩＥＥＥ  ８０２．１ＱではサービスＶＬＡＮ（Ｓ−ＶＬＡＮ）を識別するために１２ビットが用意され、すなわち、４０９６個のＳ−ＶＬＡＮを一意にアドレス指定することができる。後続のルーティング標準では、各Ｓ−ＶＬＡＮが、関連付けられた複数のカスタマーＶＬＡＮ（Ｃ−ＶＬＡＮ）を有することができるようになった。例えばＩＥＥＥ  ８０２．１ＱｉｎＱでは、各Ｓ−ＶＬＡＮに最大で４０９６個のＣ−ＶＬＡＮを関連付けることができる。この標準に準拠したＬＡＮは、最大で１６，７７７，２１６個（２∧１２＊２∧１２）のＶＬＡＮを有することができる。しかし、ＩＥＥＥ  ８０２．１ＱおよびＥＴＳでは、特定の物理的接続（またはリンク）の帯域幅を制御するために使用できる異なるトラフィック・クラスが８つしかない。この８つのトラフィック・クラスのみに依拠して帯域幅を管理するのではなく、本明細書に記載された実施形態は、強化されたＥＴＳスケジューラを使用して、物理的接続の帯域幅を個々のＶＬＡＮに割り振ることを開示する。トラフィック・クラスだけに依拠するのではなく、ＶＬＡＮ  ＩＤを使用することにより、１台のネットワーク・デバイスによって帯域幅を例えば数百万個の一意のＶＬＡＮに対して割り振ることが可能になる。したがって、ＶＬＡＮ  ＩＤの使用によってネットワーク・ファブリックの粒度制御およびそのパフォーマンスを改善することができる。
【００１２】
以下では本発明の実施形態を参照する。ただし、本発明は記載される特定の実施形態に限定されないことを理解されたい。以下の特徴および要素の組み合わせは、異なる実施形態に関係するか否かに関係なく、本発明を実施することを企図する。さらに、本発明の実施形態は、他の可能な解決法または従来技術あるいはその両方を上回る効果を実現することが可能であるが、特定の効果が任意の実施形態によって実現されるか否かは本発明を限定するものではない。したがって、以下の態様、特徴、実施形態、および効果は例示的なものに過ぎず、請求項に明示的に述べられる場合を除いて、特許請求の範囲の要素または限定事項とは見なされない。同様に、「本発明」の言及は、本明細書に開示される本発明の主題の一般化と解釈すべきでなく、また、請求項に明示的に述べられる場合を除いて特許請求の範囲の要素または限定事項であるとも解釈すべきでない。
【００１３】
当業者には理解されるように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として実施することができる。したがって、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、または、本明細書で一般に「回路」、「モジュール」、もしくは「システム」と称するソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形をとることができる。さらに、本発明の態様は、コンピュータ可読のプログラム・コードが具現化された１つまたは複数のコンピュータ可読媒体として内部に具現化されたコンピュータ・プログラム製品の形をとることができる。
【００１４】
１つまたは複数のコンピュータ可読媒体の任意の組み合わせを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体である。コンピュータ可読記憶媒体は、これらに限定されないが、例えば、電子、磁気、光学、電磁気、赤外線、もしくは半導体のシステム、装置、デバイス、またはそれらの適切な組み合わせである。コンピュータ可読記憶媒体のより具体的な例（ただし完全な網羅ではない列挙）は、１つまたは複数の配線を有する電気接続、携帯可能コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、消去可能プログラム可能読取専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、携帯可能コンパクト・ディスク読取専用メモリ（ＣＤ−ＲＯＭ）、光学記憶装置、磁気記憶装置、またはそれらの適切な組み合わせを含む。本明細書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによる使用のために、またはそれらとの関連でプログラムを保持または記憶することが可能な任意の有形媒体とすることができる。
【００１５】
コンピュータ可読信号媒体は、例えばベースバンドや搬送波の一部としてコンピュータ可読のプログラム・コードが内部に具現化された伝搬データ信号を含むことができる。そのような伝搬信号は、電磁気、光学、またはそれらの適切な組み合わせを含む各種形態をとることができるが、これらに限定されない。コンピュータ可読信号媒体は、命令実行システム、装置、またはデバイスによる使用のために、またはそれらとの関連でプログラムを通信、伝搬、または移送することが可能な、コンピュータ可読記憶媒体以外の任意のコンピュータ可読媒体であってよい。
【００１６】
コンピュータ可読媒体上に具現化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦ等、またはそれらの適切な組み合わせを含む適当な媒体を使用して伝送することができるが、これらに限定されない。
【００１７】
本発明の態様の動作を実施するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋（Ｒ）等のオブジェクト指向のプログラミング言語と、「Ｃ」プログラミング言語または類似のプログラミング言語等の従来の手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組み合わせで記述することができる。プログラム・コードは、独立型のソフトウェア・パッケージとして、すべてがユーザのコンピュータで実行されても、一部がユーザのコンピュータで実行されても、一部がユーザのコンピュータで実行され、一部がリモート・コンピュータで実行されても、またはすべてがリモート・コンピュータまたはサーバで実行されてもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）やワイド・エリア・ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続しても、外部のコンピュータに接続してもよい（例えばインターネット・サービス・プロバイダを使用してインターネットを通じて）。
【００１８】
以下、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本発明の態様を説明する。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組み合わせはコンピュータ・プログラム命令によって実施できることが理解されよう。コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施する手段を作り出すべく、このようなコンピュータ・プログラム命令は汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。
【００１９】
コンピュータ可読媒体に記憶された命令により、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施する命令を含んだ製品を作り出すべく、このようなコンピュータ・プログラム命令はコンピュータ可読媒体に記憶され、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスに特定の方式で機能するように指示するものであってよい。
【００２０】
コンピュータまたは他のプログラム可能装置で実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで説明する機能／動作を実施する処理を提供するように、コンピュータによって実行されるプロセスを作出するべく、コンピュータ・プログラム命令はコンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させるものであってよい。
【００２１】
本発明の実施形態は、クラウド・コンピューティングのインフラストラクチャを通じてエンド・ユーザに提供することができる。クラウド・コンピューティングとは、一般に、スケーラブルなコンピューティング資源をネットワークを通じてサービスとして提供することを言う。より正式には、クラウド・コンピューティングは、コンピューティング資源とその基盤となる技術的アーキテクチャ（例えばサーバ、記憶機構、ネットワーク）との間の抽象化を提供するコンピューティング能力であって、設定可能なコンピューティング資源の共有プールに必要時にネットワークを通じて利便にアクセスすることを可能にすることより、コンピューティング資源を最小限の管理労力やサービス・プロバイダの対話で迅速に準備し、提供するものであると定義することができる。したがって、クラウド・コンピューティングにより、ユーザは、コンピューティング資源を提供するために使用される基盤物理システム（またはそのシステムの場所）に関係なく、「クラウド」内の仮想コンピューティング資源（例えば、記憶領域、データ、アプリケーション、さらには完全な仮想化コンピューティング・システム）を利用することができる。
【００２２】
通例、クラウド・コンピューティング資源は従量課金方式でユーザに提供され、ユーザは、実際に使用したコンピューティング資源だけについて課金される（例えば、ユーザが利用した記憶空間の量や、ユーザがインスタンス化した仮想化システムの数等）。ユーザは、クラウド内にある資源にはいつでもインターネットを介してどこからでもアクセスすることができる。本発明の文脈では、ユーザは、サーバで運用または記憶されているクラウド内の利用可能なアプリケーションやそれに関連するデータにアクセスすることができる。例えば、クラウド内で仮想スイッチを実装しているサーバ上でアプリケーションを実行することができる。それにより、ユーザは、そのクラウドに接続されたネットワーク（例えばインターネット）に結合されたコンピューティング・システムであればどのコンピューティング・システムからでもその情報にアクセスできるようになる。
【００２３】
図１は、本発明の一実施形態による、仮想スイッチを含むシステム・アーキテクチャを示す図である。第１のサーバ１０５は、メモリ１１０に結合された少なくとも１つのプロセッサ１０９を備える。プロセッサ１０９は、１つもしくは複数のプロセッサ（例えばマイクロプロセッサ）またはマルチコア・プロセッサであってよい。メモリ１１０は、サーバ１０５の主記憶を構成するランダム・アクセス・メモリ（ＲＡＭ）デバイス、ならびに補助レベルのメモリ、例えば、キャッシュ・メモリ、不揮発性メモリまたはバックアップ・メモリ（例えばプログラム可能メモリやフラッシュ・メモリ）、読取専用メモリ等であってよい。また、メモリ１１０は、サーバ１０５内に物理的に配置されているメモリ記憶領域、またはサーバ１０５に結合された別のコンピューティング・デバイス上に物理的に配置されているメモリ記憶領域を含むことができる。
【００２４】
サーバ１０５は、オペレーティング・システム１０７の制御下で動作し、仮想マシン１１１等の各種のコンピュータ・ソフトウェア・アプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、およびデータ構造を実行することができる。
【００２５】
サーバ１０５は、ネットワーク・アダプタ１１５（例えばコンバージド（converged）・ネットワーク・アダプタ）を含むことができる。コンバージド・ネットワーク・アダプタは、コンバージド・エンハンスド・イーサネット（ＣＥＥ）に対応したペリフェラル・コンポーネント・インターコネクト・エクスプレス（ＰＣＩｅ）アダプタ等のシングル・ルートＩ／Ｏ仮想化（ＳＲ−ＩＯＶ）アダプタを含むことができる。システム１００の別の実施形態は、マルチルートＩ／Ｏ仮想化（ＭＲ−ＩＯＶ）アダプタを含むことができる。ネットワーク・アダプタ１１５はさらに、ファイバー・チャネル・オーバー・イーサネット（ＦＣｏＥ）プロトコル、RDMAオーバー・イーサネット、インターネット・スモール・コンピュータ・システム・インターフェース（ｉＳＣＳＩ）等を実装するためにも使用することができる。一般に、イーサネット（Ｒ）またはＰＣＩに基づく通信方法を使用してデータを転送するネットワーク・アダプタ１１５は、仮想マシン１１１の１つまたは複数に結合することができる。また、アダプタは、仮想マシン１１１間での共用アクセスを容易にすることができる。図ではアダプタ１１５はサーバ１０５の内部に含まれているが、他の実施形態では、アダプタをサーバ１０５から切り離された物理的に別のデバイスとすることもできる。
【００２６】
一実施形態では、各ネットワーク・アダプタ１１５は、仮想マシン１１１へのアクセスを連携調整することでアダプタ１１５間のデータ転送を容易にするコンバージド・アダプタ仮想ブリッジ（図示せず）を含むものであってよい。各コンバージド・アダプタ仮想ブリッジは、自身のドメイン（すなわちアドレス指定可能な空間）内を流れるデータを認識することができる。認識されたドメイン・アドレスを、その特定のコンバージド・アダプタ仮想ブリッジのドメイン外にデータを送信することなく、直接ルーティングすることができる。
【００２７】
各ネットワーク・アダプタ１１５は、ブリッジ・エレメント１２０の１つに結合する１つまたは複数のイーサネット・ポートを備えることができる。また、ＰＣＩｅ通信を容易にするために、サーバがＰＣＩホスト・ブリッジ１１７を有するようにしてもよい。そして、このＰＣＩホスト・ブリッジが仮想スイッチ１８０中のスイッチ・エレメント上にあるアップストリームＰＣＩポート１２２に接続する。そうすることにより、アップストリームＰＣＩポート１２２と同じスイッチ・モジュール上または異なるスイッチ・モジュール上にある適切なダウンストリームＰＣＩポート１２３に、スイッチング層１３０を介してデータがルーティングされる。その後、ＰＣＩデバイス１５０にデータを送信することができる。本明細書では、「仮想スイッチ」は、互いに接続され、その結果、スイッチ・エレメントの１つに接続するデバイスには１つのスイッチのように見える複数の分散型ハードウェア・スイッチ・エレメントの意味で使用される。
【００２８】
ブリッジ・エレメント１２０は、分散型仮想スイッチ１８０全体にデータ・フレームを送信するように構成することができる。例えば、２つの４０ギガビット・イーサネット接続または１つの１００ギガビット・イーサネット接続を使用して、ネットワーク・アダプタ１１５とブリッジ・エレメント１２０を接続することができる。ブリッジ・エレメント１２０は、ネットワーク・アダプタ１１５から送信されたデータ・フレームをスイッチング層１３０に転送する。ブリッジ・エレメント１２０は、受け取ったデータ・フレームを転送する際に使用されるアドレス・データを格納する参照テーブルを含むことができる。例えば、ブリッジ・エレメント１２０は、受け取ったデータ・フレームに関連付けられたアドレス・データを、参照テーブルに格納されたアドレス・データと比較することができる。そのため、ネットワーク・アダプタ１１５は、分散型仮想スイッチ１８０のネットワーク・トポロジを認識する必要がない。
【００２９】
分散型仮想スイッチ１８０は、一般に、独立しているが互いに接続された複数のハードウェア・コンポーネント上に配置されていて差し支えない複数のブリッジ・エレメント１２０を含む。ネットワーク・アダプタ１１５から見ると、仮想スイッチ１８０は、物理的には異なるコンポーネント上にある複数のスイッチから構成される場合があるにも関わらず、１つのスイッチのように動作する。スイッチ１８０を分散させることにより障害発生時に冗長性が得られ、１つの大きなスイッチに比べて高い費用効果で、より多くのサーバを相互接続するように拡張することができる。
【００３０】
各ブリッジ・エレメント１２０は、受け取ったデータ・フレームをスイッチング層１３０で使用されるプロトコルに変換する１つまたは複数のトランスポート層モジュール１２５に接続することができる。例えば、トランスポート層モジュール１２５は、イーサネット（Ｒ）またはＰＣＩ通信方法のどちらかを使用して受信したデータを、汎用的なフォーマットのパケット（すなわちセル）に変換し、そのパケットがスイッチング層１３０（すなわちセル・ファブリック）を介して送信される。したがって、スイッチ１８０から成るスイッチ・モジュールは、少なくとも２つの異なる通信プロトコル、例えばイーサネット（Ｒ）およびＰＣＩｅ通信標準に対応している。すなわち、少なくとも１つのスイッチ・モジュールが、異なるプロトコルのペイロードを同じスイッチング層１３０上で転送するために必要なロジックを有する。
【００３１】
図１には示していないが、一実施形態では、スイッチング層１３０は、同じ筐体兼ラック内にあるブリッジ・エレメント１２０同士を接続するローカル・ラック相互接続と、他の筐体兼ラック内にあるブリッジ・エレメント１２０に接続するリンクとを備えるものであってよい。
【００３２】
セルのルーティング後、スイッチング層１３０はトランスポート層モジュール１２６と通信し、トランスポート層モジュール１２６は、セルを再変換して、該当する通信プロトコルに対応するデータ・フレームまたはメッセージにする。ブリッジ・エレメント１２０の一部は、ＬＡＮまたはＷＡＮ（例えばインターネット）へのアクセスを提供するイーサネット・ネットワーク１５５との通信を容易にすることができる。さらに、ＰＣＩデータは、ＰＣＩｅデバイス１５０に接続するダウンストリームＰＣＩポート１２３にルーティングすることができる。ＰＣＩｅデバイス１５０は、アドイン・ボード用の拡張カード・インターフェース等の受動バックプレーン相互接続、またはスイッチ１８０に接続されたどのサーバからでもアクセス可能な共通記憶領域とすることができる。
【００３３】
第２のサーバ１０６は、オペレーティング・システム１０７に接続されたプロセッサ１０９、および第１のサーバ１０５と同様の１つまたは複数の仮想マシン１１１を含むメモリ１１０を含むことができる。サーバ１０６のメモリ１１０は、仮想ブリッジ１１４を有するハイパーバイザ１１３をも含む。ハイパーバイザ１１３は、異なる仮想マシン１１１間で共有されるデータを管理する。具体的には、仮想ブリッジ１１４により、接続された仮想マシン１１１間の直接的な通信が可能となるので、仮想マシン１１１がブリッジ・エレメント１２０またはスイッチング層１３０を使用してハイパーバイザ１１３に通信可能に結合された他の仮想マシン１１１にデータを送信する必要はない。
【００３４】
入出力管理コントローラ（ＩＯＭＣ）１４０（すなわち専用プロセッサ）が、ＩＯＭＣ１４０をスイッチング層１３０にアクセスさせる少なくとも１つのブリッジ・エレメント１２０に結合される。ＩＯＭＣ１４０の機能の１つは、管理者からの指示を受け取って分散型仮想スイッチ１８０の異なるハードウェア要素を構成することである。一実施形態では、そのような指示を、別個のスイッチング・ネットワークからスイッチング層１３０を介して受け取ってもよい。
【００３５】
図には１つのＩＯＭＣ１４０を示すが、システム１００は複数のＩＯＭＣ１４０を含んでよい。一実施形態では、そのようなＩＯＭＣ１４０を階層化して、１つのＩＯＭＣ１４０をマスタとして選択し、その他のＩＯＭＣ１４０をメンバ（またはスレーブ）として選択することができる。
【００３６】
図２は、一実施形態によるシステム１００のハードウェア・レベルの図である。サーバ２１０とサーバ２１２を物理的に同じ筐体２０５内に配置するが、筐体２０５は任意数のサーバを含んでよい。筐体２０５は、複数のスイッチ・モジュール２５０、２５１も含み、スイッチ・モジュール２５０、２５１は１つまたは複数のサブスイッチ２５４を含む。一実施形態では、スイッチ・モジュール２５０、２５１、２５２はハードウェア・コンポーネント（例えばＰＣＢ基板、ＦＰＧＡ基板、システム・オン・チップ等）であり、物理的な支持およびネットワーク・アダプタ１１５とブリッジ・エレメント１２０間の接続を提供する。一般に、スイッチ・モジュール２５０、２５１、２５２は、システム２００内の異なる筐体２０５、２０７およびサーバ２１０、２１２、２１４を接続するハードウェアを含む。
【００３７】
スイッチ・モジュール２５０、２５１、２５２（すなわち筐体相互接続要素）は、１つまたは複数のサブスイッチ２５４およびＩＯＭＣ２５５、２５６、２５７を含む。サブスイッチ２５４は、ブリッジ・エレメント１２０の論理的または物理的なグループ化を含むことができる。各ブリッジ・エレメント１２０は、物理的にサーバ２１０、２１２に接続することができる。例えば、ブリッジ・エレメント１２０は、イーサネット（Ｒ）またはＰＣＩ通信プロトコルを使用して送信されたデータを、スイッチング層１３０に接続された他のブリッジ・エレメント１２０にルーティングすることができる。ただし、一実施形態では、ネットワーク・アダプタ１１５からスイッチング層１３０に接続してＰＣＩまたはＰＣＩｅ通信を行うに当たって、ブリッジ・エレメント１２０は必要はない。
【００３８】
各スイッチ・モジュール２５０、２５１、２５２は、システム２００内の種々のハードウェア資源を管理および構成するためのＩＯＭＣ２５５、２５６、２５７を含む。一実施形態では、各スイッチ・モジュール２５０、２５１、２５２に対応するそれぞれのＩＯＭＣは、特定のスイッチ・モジュールのハードウェア資源を構成する役目を担うことができる。ただし、スイッチ・モジュール同士はスイッチング層１３０を使用して相互接続されているため、１つのスイッチ・モジュール上のＩＯＭＣが別のスイッチ・モジュール上のハードウェア資源を管理してもよい。
【００３９】
筐体２０５内の点線は、サーバ２１０、２１２とスイッチ・モジュール２５０、２５１間のミッドプレーン２２０を定義する。すなわち、ミッドプレーン２２０は、ネットワーク・アダプタ１１５とサブスイッチ２５４の間でデータを送信するデータ経路を含む。
【００４０】
各ブリッジ・エレメント１２０はスイッチング層１３０に接続する。また、ブリッジ・エレメント１２０は、ネットワーク・アダプタ１１５すなわちアップリンクにも接続することができる。本発明で使用するようなブリッジ・エレメント１２０のアップリンク・ポートは、システム２００の接続性または機能を拡張するサービスを提供する。筐体２０７内に示すように、ブリッジ・エレメント１２０の１つは、イーサネット（Ｒ）またはＰＣＩコネクタ２６０への接続を含む。イーサネット通信のために、コネクタ２６０を介してシステム２００はＬＡＮまたはＷＡＮ（例えばインターネット）にアクセスすることができる。あるいは、ポート・コネクタ２６０を介してシステムがＰＣＩｅ拡張スロット、例えばＰＣＩｅデバイス１５０に接続してもよい。デバイス１５０は、各サーバ２１０、２１２、２１４がスイッチング層１３０を介してアクセスすることができる追加の記憶領域またはメモリとすることができる。システム２００が少なくとも２つの異なる通信方法に対応するネットワーク・デバイスを有するスイッチング層１３０にアクセスできることは有利である。
【００４１】
図示するように、サーバ２１０、２１２、２１４は、複数のネットワーク・アダプタ１１５を有することができる。これにより、アダプタ１１５の１つが故障した場合に冗長性が得られる。また、各アダプタ１１５は、ミッドプレーン２２０を介して異なるスイッチ・モジュール２５０、２５１、２５２に接続することができる。図示するように、サーバ２１０の一方のアダプタはスイッチ・モジュール２５０内のブリッジ・エレメント１２０に通信可能に結合され、他方のアダプタはスイッチ・モジュール２５１内のブリッジ・エレメント１２０に接続される。スイッチ・モジュール２５０、２５１のどちらかが故障した場合でも、サーバ２１０はもう１つのスイッチ・モジュールを介してスイッチング層１３０になおアクセス可能である。そして、故障したスイッチ・モジュールを交換（例えばホット・スワップ）することによって、ＩＯＭＣ２５５、２５６、２５７およびブリッジ・エレメント１２０は新しいスイッチ・モジュール上のハードウェア要素を含むべく、ルーティング・テーブルおよび参照テーブルを更新する。
【００４２】
図３は、本発明の一実施形態による仮想スイッチング層を示す図である。システム１００および２００内の各サブスイッチ２５４は、メッシュ接続方式を介してスイッチング層１３０およびブリッジ・エレメント１２０を使用して互いに接続される。すなわち、どのサブスイッチ２５４を用いるかに関わらず、セル（すなわちデータ・パケット）を他のスイッチ・モジュール２５０、２５１、２５２上にある他のサブスイッチ２５４にルーティングすることができる。これは、各サブスイッチ２５４を直接接続することによって実現してもよく、この場合には各サブスイッチ２５４がすべての他のサブスイッチ２５４への専用のデータ経路を有する。あるいは、スイッチング層１３０が茎−葉（spine-leaf）アーキテクチャを使用してもよく、この場合には各サブスイッチ２５４（すなわち葉ノード）が少なくとも１つの茎ノードに接続される。茎ノードは、サブスイッチ２５４から受け取ったセルを正しい送信先のサブスイッチ２５４にルーティングする。ただし、本発明は、サブスイッチ２５４を相互接続するどの特定の技術にも限定されるものではない。
【００４３】
ＶＬＡＮを実装するネットワーク・ファブリック
図４は、本発明の実施形態による、図２のシステム内での仮想ローカル・アクセス・ネットワークの使用を説明する図である。具体的には、図４は、サーバ２１０およびサブスイッチ２５４を含むように図２を簡略化した図である。ネットワーク・アダプタ１１５は、ミッドプレーン２２０を介してブリッジ・エレメント１２０に接続する。ただし、ミッドプレーン２２０は、ネットワーク・アダプタ１１５とブリッジ・エレメント１２０間のＬＡＮを構成する物理的接続の１つのみを示すように簡略化している。一実施形態では、各ネットワーク・アダプタ１１５は、それぞれのブリッジ・エレメント１２０への接続を１つまたは複数有する。
【００４４】
点線は、ネットワーク・アダプタ１１５と特定のブリッジ・エレメント１２０間の異なるＶＬＡＮチャネル４０５Ａ〜Ｃを定義する。ネットワーク・アダプタ１１５は、ブリッジ・エレメント１２０への物理的なイーサネット接続を１つだけ有しても２つ有してもよいが（例えば１つの１００Ｇ／ｂｉｔ接続または２つの４０Ｇ／ｂｉｔ接続）、それらの接続を論理的にＶＬＡＮに分割することができ、ＶＬＡＮには２地点間通信のための１つまたは複数のＶＬＡＮチャネルが含まれる。すなわち、ミッドプレーン２２０内の各物理的接続は、数百万とは言わないまでも数千の異なるＶＬＡＮとそれぞれのＶＬＡＮチャネルに分割することができる。さらに、ＶＬＡＮチャネルは、ＩＥＥＥ  ８０２．１ＱｉｎＱで定義されるようにＳ−ＶＬＡＮまたはＣ−ＶＬＡＮ用のＳ−チャネルまたはＣ−チャネルとすることができる。ＶＬＡＮにパケットを割り当てることにより、より多様な粒度でＬＡＮ制御することが可能になる。例えば、管理者は、各ＶＬＡＮに異なるセキュリティ・プロトコルを割り当てたり、各ＶＬＡＮのパケットを異なる形で管理したりすることができる。
【００４５】
図４では、各ネットワーク・アダプタ１１５は、アダプタ１１５がミッドプレーン２２０を介してブリッジ・エレメント１２０に物理的に接続されている限り、ブリッジ・エレメント１２０への１つまたは複数のＶＬＡＮチャネルを確立することができる。したがって、一番上のネットワーク・アダプタ１１５は、図示されたＶＬＡＮチャネルに加えて、他のブリッジ・エレメント１２０へのＶＬＡＮチャネルをも有することができる。システム４００は、一意にアドレス指定可能なＶＬＡＮの数だけＶＬＡＮチャネルを割り当てることができる。ＩＥＥＥ  ８０２．１Ｑの場合、これは４０９６個のＳ−ＶＬＡＮになる。ＶＬＡＮチャネルは、ミッドプレーン２２０の異なる物理的接続間に任意の態様で分散させることができる。８０２．１Ｑによるすべての物理的接続には、同じＶＬＡＮチャネル（またはＶＬＡＮチャネルのサブセット）を設定可能であることに留意されたい。
【００４６】
図５は、本発明の一実施形態によるＶＬＡＮ  ＩＤに基づいてネットワーク・トラフィックを識別するためのデータ・フレームである。具体的には、データ・フレーム５００は、ＩＥＥＥ  ８０２．１ＱｉｎＱに対応するデータ・フレームの一部を示している。データ・フレーム５００は、外側タグ（Ｓタグ）５０１と内側タグ（Ｃタグ）５０２の２つの異なる部分に分割される。外側タグ５０１は、最初にＶＬＡＮをＣＥＥネットワークに導入したＩＥＥＥ  ８０２．１Ｑで定義されるタグと同じである。しかしながら、管理者のＬＡＮの制御能力を高めるために、ＩＥＥＥ  ８０２．１ＱｉｎＱでは内側タグ５０２を追加して二重タギングの考えを導入した。したがって、本明細書に開示される実施形態を使用すると、ＩＥＥＥ  ８０２．１Ｑまたは８０２．１ＱｉｎＱに基づいて確立されたＶＬＡＮをアドレス指定することができる。
【００４７】
タグ５０１、５０２は、イーサタイプ／サイズ５０５、優先度コード・ポイント（ＰＣＰ）５１０、および基準フォーマット・インディケータ（ＣＦＩ）５１５、ならびにＳ−ＶＬＡＮ  ＩＤ５２０またはＣ−ＶＬＡＮ  ＩＤ５２５を含む。イーサタイプ５０５は通例は１６ビット（すなわち２バイト）のフィールドであり、そのデータ・パケットのペイロードにカプセル化されているプロトコルを示すために使用される。ＰＣＰ５１０は、Ｓ−ＶＬＡＮまたはＣ−ＶＬＡＮにそれぞれ割り当てられた優先度またはトラフィック・クラス（すなわち優先度１〜優先度８）を参照する３ビットのフィールドである。ＣＦＩ５１５は、ＭＡＣアドレス（データ・フレーム５００中の他の場所に格納される）が非正規フォーマットであるか否かを示す１ビットのフィールドである。
【００４８】
ＩＥＥＥ  ８０２．１Ｑおよび８０２．１ＱｉｎＱの場合、Ｓ−ＶＬＡＮ  ＩＤ５２０は１２ビットであり、そのフレーム５００が属するＳ−ＶＬＡＮを指定する。Ｃ−ＶＬＡＮ  ＩＤは、ＩＥＥＥ  ８０２．１Ｑ標準では定義されていないが、これも１２ビットの長さであり、フレーム５００が属するＣ−ＶＬＡＮを指定する。すなわち、ＩＥＥＥ  ８０２．１ＱｉｎＱは、各Ｓ−ＶＬＡＮが最高で４０９６個の一意にアドレス指定可能なＣ−ＶＬＡＮを有し、それにより１６００万を超えるアドレス指定可能なＶＬＡＮを提供するべくＩＥＥＥ  ８０２．１Ｑを拡張したものである。ただし、ＩＥＥＥ  ８０２．１Ｑのみで定義されたデータ・フレームには、部分５０５Ａ、５１０Ａ、５１５Ａ、および５２０は含まれるが、部分５０５Ｂ、５１０Ｂ、５１５Ｂ、および５２５は含まれない。いずれの場合も、本明細書に開示される実施形態は、ＩＥＥＥ  ８０２．１Ｑおよび８０２．１ＱｉｎＱに限定されず、これらの標準に関連する標準もしくは派生標準（例えばＩＥＥＥ  ８０２．１ＱａｔやＩＥＥＥ  ８０２．１ａｋ）、または現在もしくは将来のＶＬＡＮ生成に対応する他の標準で使用することができる。
【００４９】
一般に、データ・フレーム５００は、送信元からネットワークを通じて宛先に送信されるより大きなデータ・フレーム（すなわちデータ・パケット）の一部である。データ・フレーム全体は他の区画をも含み、それらには例えばプリアンブル、送信元および宛先のアドレス、ペイロード、誤り訂正符号等が含まれる。
【００５０】
ＶＬＡＮチャネル内の帯域幅の割当
図６は、本発明の一実施形態による、図１のシステムにおいてＶＬＡＮを使用するＥＴＳの強化バージョンを示す。図６は、ブリッジ・エレメント１２０、メモリ６３９、およびポート６３０を示す。メモリ６３９は、ランダム・アクセス・メモリ（ＲＡＭ）デバイスから成るキャッシュ・メモリ、不揮発性またはバックアップ・メモリ（例えばプログラム可能メモリまたはフラッシュ・メモリ）、読取専用メモリ等を表す。メモリ６３９は、２つのコンピューティング・デバイス、例えば２つのブリッジ・エレメント１２０間の物理的接続に関連付けられた帯域幅を分割するＥＴＳスケジューラ６４０を含む。一実施形態では、ＥＴＳスケジューラ６４０はＩＥＥＥ  ８０２．１Ｑａｚに準拠するように構成される。
【００５１】
ブリッジ・エレメント１２０がポート６３０を使用することによって、コンピューティング・デバイスへの接続を確立する。例えば、ポート６３０は、イーサネット・ケーブルが接続される物理的なコネクタである。図示するように、ポート６３０は、その物理的接続を使用するＶＬＡＮチャネルへの帯域幅の割当を表すように論理的に分割することができる。例えば、ＥＴＳスケジューラ６４０は、ファブリック内のＶＬＡＮチャネルまたはＶＬＡＮの数に応じて帯域幅を割り当てるように構成することができる。各ＶＬＡＮチャネルには、ポート６３０が利用できる帯域幅のある一定の割合を保証することができる。ＶＬＡＮチャネルの１つが割り当てられた帯域幅を現在使用していない場合、ＥＴＳスケジューラ６４０は、別のＶＬＡＮチャネルに関連付けられたネットワーク・トラフィックがその帯域幅を使用することを一時的に許可することができる。
【００５２】
さらに、帯域幅をＶＬＡＮチャネルのブロックまたはグループに割り当てることができる。すなわち、ＶＬＡＮチャネル１〜３に対してポートの帯域幅の２％を割り当てることができる。さらに、一実施形態では、ＥＴＳスケジューラ６４０は、ポート６３０を使用するＶＬＡＮチャネルのサブセットに帯域幅を割り当てることができる。したがって、ポート６３０を使用するすべてのＶＬＡＮチャネルにＥＴＳスケジューラ６４０によって帯域幅を割り当てなければならない、または保証しなければならないという訳ではない。
【００５３】
一実施形態では、ＥＴＳスケジューラ６４０は、仮想スイッチ１８０内の他の場所にあるメモリに配置することができる。
【００５４】
図７〜図８は、本発明の一実施形態によるＥＴＳスケジューラ階層を示す。１つのＶＬＡＮチャネルまたはＶＬＡＮチャネルのグループに対して帯域幅を割り当てることに専ら依拠するのではなく、ＥＴＳスケジューラは、ＶＬＡＮ内のトラフィック・クラスに対して帯域幅を割り当てることができる。図５のデータ・フレーム５００で示すように、ＶＬＡＮに割り当てられる各フレームを、そのＶＬＡＮ内の特定のトラフィック・クラス（すなわちＰＣＰ５１０で表される値）に割り当てることもできる。各データ・フレームをＶＬＡＮに対して、そのＶＬＡＮのＶＬＡＮ  ＩＤ（すなわちＳ−ＶＬＡＮ  ＩＤ５２０またはＣ−ＶＬＡＮ  ＩＤ５２５あるいはその両方）および特定のトラフィック・クラスに基づいて割り当てることができる。
【００５５】
メモリ７３９は、ＥＴＳ  ＶＬＡＮスケジューラ７４１およびＥＴＳ優先度スケジューラ７４２から構成されるＥＴＳスケジューラ階層を含むことができる。ＥＴＳ  ＶＬＡＮスケジューラ７４１は、図６のＥＴＳスケジューラ６４０と同様の機能を実行することができる。すなわち、ＥＴＳ  ＶＬＡＮスケジューラ７４１は、出口ポート７３０を使用する１つまたは複数のＶＬＡＮチャネルに帯域幅を割り当てることができる。ＶＬＡＮチャネル間で帯域幅を割り振るのに加えて、ＥＴＳスケジューラ階層のＥＴＳ優先度スケジューラ７４２は、さらにトラフィック・クラス間で帯域幅を分割することができる。すなわち、ＥＴＳ優先度スケジューラ７４２は、特定のＶＬＡＮチャネルに割り当てられた帯域幅を、ＶＬＡＮチャネル内の異なるトラフィック・クラス（すなわち優先度１〜８）間でさらに分割することができる。
【００５６】
図８は、ＶＬＡＮチャネルまたはＶＬＡＮに割り当てられた帯域幅をトラフィック・クラスに基づいて割り振る例を示す。図に示すように、ＥＴＳ  ＶＬＡＮスケジューラ７４１は、ポート７３０に関連付けられた帯域幅の１５％を、ＶＬＡＮチャネル１に割り当てられたネットワーク・トラフィックに割り振っている。また、ＥＴＳ優先度スケジューラ７４２はさらにこの１５％分の割当を異なるトラフィック・クラス（すなわち優先度１〜８）間で分割している。その結果、優先度８がポート７３０の全帯域幅の６％を受け取るのに対し、優先度１は全帯域幅の１％しか受け取らない。したがって、ＶＬＡＮチャネル１の優先度８に割り当てられたネットワーク・トラフィックにはポートの帯域幅の少なくとも６％が保証されるのに対し、優先度１には１％が保証される。このようにして、ポート７３０の帯域幅を任意に分割して所望の配分を行うことができる。
【００５７】
さらに、複数のＶＬＡＮチャネルを一緒にグループ化する場合に、ＥＴＳスケジューラ階層を使用して帯域幅を割り当ててもよい。例えば、ＥＴＳ  ＶＬＡＮスケジューラ７４１がポートの帯域幅の１５％をＶＬＡＮチャネル１〜３に割り当てる場合、ＥＴＳ優先度スケジューラ７４２は、その帯域幅の一部を、ＶＬＡＮチャネルに関連付けられた各トラフィック・クラスに割り当てることができる。例えば、ＶＬＡＮチャネル１の優先度１とＶＬＡＮチャネル２の優先度５がすべての帯域幅を受け取り、その他の優先度には帯域幅が割り当てられない。あるいは、ＥＴＳ優先度スケジューラ７４２は、ＶＬＡＮチャネルそれぞれの各トラフィック・クラスを同じように扱ってもよい。その場合、帯域幅の配分は、配分が複数のＶＬＡＮチャネルに対して適用される点を除いて図８に示す配分と同様になる。すなわち、各ＶＬＡＮチャネルの優先度１に対してグループとして全帯域幅の１％が割り当てられ、各ＶＬＡＮチャネルの優先度５に合計２％が割り当てられ、最終的に多数のＶＬＡＮチャネルに対して１５％分の割当が分散される。ただし、ＶＬＡＮと同様に、あるＶＬＡＮ自体に帯域幅が割り振られる場合でも、当該ＶＬＡＮチャネル内のすべてのトラフィック・クラスに帯域幅を割り当てなければならない訳ではない。
【００５８】
図では別個の構成要素として示すが、一実施形態では、ＥＴＳ  ＶＬＡＮスケジューラ７４１とＥＴＳ優先度スケジューラ７４２は一体化して１つの構成要素としてもよい。
【００５９】
図９は、図２に示すシステムを簡略化した図である。図９は、サーバとネットワーク・デバイス（すなわちブリッジ・エレメント１２０）との間、ネットワーク・デバイス同士の間、ネットワーク・デバイスと他のＷＡＮまたはＬＡＮとの間、およびネットワーク・デバイスと他のコンピューティング・デバイスとの間の接続を示している。
【００６０】
図に示すように、図９は、仮想マシン１１１を持つサーバ８０５を含み、仮想マシン１１１では２つの異なるアプリケーション８１０、８１５が実行されていてよい。各アプリケーション８１０、８１５は各々、別個のＶＬＡＮ、より具体的には、アプリケーション８１０、８１５からのデータ・パケットを仮想スイッチ１８０内の少なくとも１つのブリッジ・エレメント１２０にルーティングするＳチャネルに関連付けられる。図を分かりやすくするために、サーバ８０５とブリッジ・エレメント１２０間の物理的接続は省略している。さらに、ＶＬＡＮチャネル４０５Ｄおよび４０５Ｅは、同じ接続に関連付けても、異なる物理的接続に関連付けてもよい。
【００６１】
仮想スイッチ１８０は、入口ポート８２５、出口ポート８３０、８３５、８３８、およびＥＴＳスケジューラ８４０を含む複数のブリッジ・エレメント１２０Ａ〜Ｃを含む。図には示さないが、サーバ８０５は、ＥＴＳスケジューラ、および、ネットワーク内のＶＬＡＮに基づいて帯域幅を割り振るべく論理的に分割された出口ポートも含むことができる。
【００６２】
ブリッジ・エレメント１２０Ａは、それぞれのＶＬＡＮチャネルに割り当てられた２つのアプリケーション８１０、８１５からデータ・パケット（すなわちデータ・フレーム）を受け取る。キューを使用することにより、ブリッジ・エレメント１２０Ａは、仮想スイッチ１８０内のメッシュ・ネットワークを使用して、出口ポート８３０を介して仮想スイッチ１８０内の異なるネットワーク・デバイスにパケットを転送することができる。アプリケーション８１５に関連付けられたデータ経路８７０は、ＶＬＡＮチャネル４０５Ｅに割り当てられたデータ・フレームを転送する。ブリッジ・エレメント１２０ＡのＥＴＳスケジューラ８４０は、このネットワーク・トラフィックと、ＶＬＡＮチャネル４０５Ｄおよび４０５Ｅをサーバ８０５に向かう方向に流れるデータ・トラフィックとの両方に対して、帯域幅を割り当てることができる。
【００６３】
ＥＴＳスケジューラ８４０がポート８３０についての帯域幅の割当を設定した後、ブリッジ・エレメント１２０Ａがデータ・フレームを受け取ると、ＶＬＡＮ  ＩＤを調べてそのフレームが属するＶＬＡＮを判定する。次いでパケットを転送するが、ブリッジ・エレメント１２０Ａは、そのＶＬＡＮについて利用可能な帯域幅の量を把握している。例えば、ＥＴＳスケジューラ８４０が帯域幅の４％を当該ＶＬＡＮに割り当てた場合は、対応するＶＬＡＮ  ＩＤを有するデータ・フレームすべてに対して、対応するＶＬＡＮチャネルを介して転送されるに当たって、少なくともそれだけの帯域幅が保証される。
【００６４】
ＥＴＳスケジューラ８４０がＥＴＳスケジューラ階層を有する場合、スケジューラ８４０は、ＶＬＡＮチャネル４０５Ｅを含むＶＬＡＮ内のトラフィック・クラスに基づいて、割り当てられた帯域幅をさらに分割することができる。ＥＴＳスケジューラ８４０は、アプリケーション８１０のＶＬＡＮチャネル４０５Ｄ（すなわちデータ経路８７５）についても同じ処理を実行することができる。ここで、受信したデータ・フレーム中の優先度コードとＶＬＡＮ  ＩＤとの両方を使用して、正しい量の帯域幅を用いてパケットが転送されることを保証する。そのようにして、ＥＴＳスケジューラ８４０は、データ経路８７０および８７５のＶＬＡＮおよびトラフィック・クラスが、ポート８３０の帯域幅の最小限の割合を利用できることを保証することができる。
【００６５】
一方、ブリッジ・エレメント１２０Ｂおよび１２０ＣのＥＴＳスケジューラ８４０は、データ経路８７０および８７５に対して異なる割合の帯域幅を割り当てることができる。すなわち、ブリッジ・エレメント１２０Ａを通って流れるデータ経路８７０のネットワーク・トラフィックに与えられる帯域幅の割当は、例えば、ブリッジ・エレメント１２０Ｃを通って流れるデータ経路８７０のネットワーク・トラフィックに与えられる帯域幅の割当より多いか少ないかの何れであってもよい。あるいは、ブリッジ・エレメント１２０ＣのＥＴＳスケジューラ８４０は、データ経路８７０のデータ・フレームに対して帯域幅を割り当てない、または保証しなくてもよい。一般に、システム管理者は、特定のブリッジ・エレメント１２０の需要を満たすようにブリッジ・エレメント１２０Ａ〜ＣのＥＴＳスケジューラ８４０を構成することができる。例えば、ブリッジ・エレメント１２０Ｂは異なるＷＡＮにデータ・トラフィックを送信する一方、ブリッジ・エレメント１２０Ｃは別のサーバや仮想スイッチ１８０に接続された記憶装置等であるコンピューティング・デバイスにデータ・トラフィックを転送するようにしてもよい。このような異なる構成により、管理者は異なるブリッジ・エレメント１２０に対して異なる態様で帯域幅を割り当てることができる。
【００６６】
ＩＥＥＥ  ８０２．１Ｑａｚで定義されるＥＴＳでは、トラフィック・クラスのものを上回る粒度で物理的接続の帯域幅を割り当てる手段は提供されない。先述のように、ＩＥＥＥ  ８０２．１Ｑでは、ネットワーク管理者は最大で４０９６個の異なるＶＬＡＮを設定可能であるのに対し、ＩＥＥＥ  ８０２．１ＱｉｎＱでは１６００万を超えるＶＬＡＮが提供される。トラフィック・クラスではなくＶＬＡＮに基づいて帯域幅を割り当てることができると、ネットワーク管理者による帯域幅割当能力が向上する。本明細書に開示されるＥＴＳスケジューラ８４０は、アプリケーション８１０（すなわちＶＬＡＮチャネル４０５Ｄ）とアプリケーション８１５（すなわちＶＬＡＮチャネル４０５Ｅ）とに対して帯域幅の異なる部分を割り当てることができる。アプリケーション間で異なる態様で帯域幅を割り当てるためにＶＬＡＮチャネル４０５Ｄ、Ｅを異なるトラフィック・クラスに割り当てるのではなく、特定のＶＬＡＮへのデータ・フレームのメンバーシップに基づいて、帯域幅を受信したデータ・フレームに割り当てるようにＥＴＳスケジューラ８４０を構成することができる。
【００６７】
出口ポート８３０、８３５、８３８をＶＬＡＮ  ＩＤ（例えばＳ−ＶＬＡＮまたはＣ−ＶＬＡＮ）に基づいて分割して相異なる数千または数百万個に配分することができる。現在、ＥＴＳでは帯域幅の割当は１％刻みである（すなわち最大１００個のＶＬＡＮに対して帯域幅の１％ずつを割り当てることができる）が、本明細書に開示される実施形態は、それよりはるかに高い精度で帯域幅を割り当てることが可能な将来の帯域幅割振方式と共に使用することができる。将来のＥＴＳスケジューラ８４０の方式では、物理的接続の帯域幅を、ＩＥＥＥ  ８０２．１ＱｉｎＱを使用する場合に現在可能である１６００万個の異なるＶＬＡＮの間での任意の組み合わせに分割できるようになる可能性がある。８つのトラフィック・クラスに基づいてＶＬＡＮに割り当てられた帯域幅をさらに分割するＥＴＳスケジューラ階層を用いれば、その数をさらに増大させることができる。
【００６８】
結び
ＩＥＥＥ  ８０２．１ＱおよびＥＴＳでは、特定の物理的接続（またはリンク）の帯域幅を制御するために使用できる異なるトラフィック・クラスは８つしか提供されない。それら８つのトラフィック・クラスのみに依拠して帯域幅を管理するのではなく、本明細書に記載された実施形態は、ネットワーク・デバイスにより個々のＶＬＡＮに対して帯域幅を設定することを可能にする強化されたＥＴＳスケジューラの使用を開示する。ＶＬＡＮ  ＩＤに基づいてポート内の帯域幅を割り振ることにより、ネットワーク・デバイスによって、数百万個の一意のＶＬＡＮに対して帯域幅を割り当てることができる。したがって、本発明の技術により、ネットワーク・ファブリック制御制御およびそのパフォーマンスを改善することができる。
【００６９】
図のフローチャートおよびブロック図は、本発明の各種実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能、および動作を説明するものである。これに関して、フローチャートまたはブロック図の各ブロックは、指定された（１つまたは複数の）論理的機能を実施する１つまたは複数の実行可能命令を含むモジュール、セグメント、またはコードの一部を表すことができる。一部の代替的な実装では、ブロックに記された機能は図に記された順序と異なる順序で行ってよいことにも留意されたい。例えば、関係する機能に応じて、相次いで示す２つのブロックを実際には実質的に同時に実行してもよいし、または２つのブロックを時に逆の順序で実行してもよい。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組み合わせは、指定された機能もしくは動作、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用ハードウェアを利用したシステムによって実施できることにも留意されたい。
【００７０】
前述の説明は本発明の実施形態を対象とするが、本発明の基本的な範囲から逸脱することなくその他のさらなる本発明の実施形態を考案することができ、本発明の範囲は添付の特許請求の範囲によって決定される。
【図１】
0005967633.tif 000002
【図２】
0005967633.tif 000003
【図３】
0005967633.tif 000004
【図４】
0005967633.tif 000005
【図５】
0005967633.tif 000006
【図６】
0005967633.tif 000007
【図７】
0005967633.tif 000008
【図８】
0005967633.tif 000009
【図９】
0005967633.tif 000010