(57)【要約】  ハイブリッド再構成方式は、ネットワークのうちさまざまな下位区分を選択するためのさまざまなルーティングアルゴリズムを用いた高速の部分的ネットワーク再構成を可能にし得る。部分的な再構成は、初期の全体構成よりも桁違いに高速であり得るので、無損失ネットワークにおける性能駆動型の再構成を検討することが可能となり得る。
2019526943.tif 000002
【特許請求の範囲】
【請求項１】
高性能コンピューティング環境において高速ハイブリッド再構成をサポートするためのシステムであって、
１つ以上のマイクロプロセッサと、
第１のサブネットとを含み、前記第１のサブネットは、
複数のスイッチを含み、前記複数のスイッチは少なくともリーフスイッチを含み、前記複数のスイッチの各々は複数のスイッチポートを含み、前記第１のサブネットはさらに、
各々が少なくとも１つのホストチャネルアダプタポートを含む複数のホストチャネルアダプタと、
複数のエンドノードとを含み、前記複数のエンドノードの各々は、前記複数のホストチャネルアダプタのうち少なくとも１つのホストチャネルアダプタに関連付けられており、
前記第１のサブネットのうちの前記複数のスイッチは、複数のレベルを有するネットワークアーキテクチャに配置され、前記複数のレベルの各々は、前記複数のスイッチのうち少なくとも１つのスイッチを含み、
前記複数のスイッチは、最初に第１の構成方法に従って構成され、前記第１の構成方法は、前記複数のエンドノードについての第１の順序付けに関連付けられており、
前記複数のスイッチのサブセットは前記第１のサブネットのサブ・サブネットとして構成されており、前記第１のサブネットの前記サブ・サブネットは、前記第１のサブネットの前記複数のレベルよりも少ないいくつかのレベルを含み、
前記第１のサブネットの前記サブ・サブネットは第２の構成方法に従って再構成される、システム。
【請求項２】
前記第１のサブネットの前記複数のエンドノードは前記複数のスイッチを介して相互接続される、請求項１に記載のシステム。
【請求項３】
前記複数のエンドノードのサブセットは前記第１のサブネットの前記サブ・サブネットに関連付けられており、
前記第１のサブネットの前記サブ・サブネットは、前記複数のエンドノードのサブセット間のトラフィックが前記第１のサブネットの前記サブ・サブネットとして構成された前記複数のスイッチの前記サブセットに制限されるように構成されている、請求項２に記載のシステム。
【請求項４】
前記第２の再構成方法は、前記第１のサブネットの前記サブ・サブネットに関連付けられた前記複数のエンドノードの前記サブセットのうち少なくとも２つのエンドノードについての第２の順序付けに関連付けられている、請求項３に記載のシステム。
【請求項５】
前記第１のサブネットの前記サブ・サブネットに関連付けられた前記複数のエンドノードの前記サブセットのうち前記少なくとも２つのエンドノードについての前記第２の順序付けは、システムアドミニストレータから受取られる、請求項４に記載のシステム。
【請求項６】
前記第１のサブネットの前記サブ・サブネットに関連付けられた前記複数のエンドノードの前記サブセットのうち少なくとも２つのエンドノードについての前記第２の順序付けは、管理エンティティから受取られる、請求項４に記載のシステム。
【請求項７】
前記第１のサブネットはインフィニバンドサブネットを含み、
前記管理エンティティは、
サブネットマネージャ、
ファブリックマネージャ、および、
グローバルファブリックマネージャからなる群から選択される管理エンティティである、請求項６に記載のシステム。
【請求項８】
高性能コンピューティング環境において高速ハイブリッド再構成をサポートするための方法であって、
１つ以上のマイクロプロセッサにおいて第１のサブネットを設けるステップを含み、前記第１のサブネットは、
複数のスイッチを含み、前記複数のスイッチは少なくともリーフスイッチを含み、前記複数のスイッチの各々は複数のスイッチポートを含み、前記第１のサブネットはさらに、
各々が少なくとも１つのホストチャネルアダプタポートを含む複数のホストチャネルアダプタと、
複数のエンドノードとを含み、前記複数のエンドノードの各々は、前記複数のホストチャネルアダプタのうち少なくとも１つのホストチャネルアダプタに関連付けられており、前記方法はさらに、
複数のレベルを有するネットワークアーキテクチャにおいて、前記第１のサブネットのうちの前記複数のスイッチを配置するステップを含み、前記複数のレベルの各々は、前記複数のスイッチのうち少なくとも１つのスイッチを含み、前記方法はさらに、
第１の構成方法に従って前記複数のスイッチを構成するステップを含み、前記第１の構成方法は、前記複数のエンドノードについての第１の順序付けに関連付けられており、前記方法はさらに、
前記複数のスイッチのサブセットを前記第１のサブネットのサブ・サブネットとして構成するステップを含み、前記第１のサブネットの前記サブ・サブネットは、前記第１のサブネットの前記複数のレベルよりも少ないいくつかのレベルを含み、前記方法はさらに、
第２の構成方法に従って前記第１のサブネットの前記サブ・サブネットを再構成するステップを含む、方法。
【請求項９】
前記第１のサブネットの前記複数のエンドノードは前記複数のスイッチを介して相互接続される、請求項８に記載の方法。
【請求項１０】
前記複数のエンドノードのサブセットは前記第１のサブネットの前記サブ・サブネットに関連付けられており、
前記第１のサブネットの前記サブ・サブネットは、前記複数のエンドノードのサブセット間のトラフィックが前記第１のサブネットの前記サブ・サブネットとして構成された前記複数のスイッチの前記サブセットに制限されるように構成されている、請求項９に記載の方法。
【請求項１１】
前記第２の再構成方法は、前記第１のサブネットの前記サブ・サブネットに関連付けられた前記複数のエンドノードの前記サブセットのうちの少なくとも２つのエンドノードについての第２の順序付けに関連付けられている、請求項１０に記載の方法。
【請求項１２】
前記第１のサブネットの前記サブ・サブネットに関連付けられた前記複数のエンドノードの前記サブセットのうちの前記少なくとも２つのエンドノードについての前記第２の順序付けは、システムアドミニストレータから受取られる、請求項１１に記載の方法。
【請求項１３】
前記第１のサブネットの前記サブ・サブネットに関連付けられた前記複数のエンドノードの前記サブセットのうちの前記少なくとも２つのエンドノードについての前記第２の順序付けは、管理エンティティから受取られる、請求項１１に記載の方法。
【請求項１４】
前記第１のサブネットはインフィニバンドサブネットを含み、
前記管理エンティティは、
サブネットマネージャ、
ファブリックマネージャ、および、
グローバルファブリックマネージャからなる群から選択される管理エンティティである、請求項１３に記載の方法。
【請求項１５】
高性能コンピューティング環境において高速ハイブリッド再構成をサポートするための命令が格納された非一時的なコンピュータ読取り可能記憶媒体であって、前記命令が１つ以上のコンピュータによって読出されて実行されると、前記１つ以上のコンピュータに、
１つ以上のマイクロプロセッサにおいて第１のサブネットを設けるステップを実行させ、前記第１のサブネットは、
複数のスイッチを含み、前記複数のスイッチは少なくともリーフスイッチを含み、前記複数のスイッチの各々は複数のスイッチポートを含み、前記第１のサブネットはさらに、
各々が少なくとも１つのホストチャネルアダプタポートを含む複数のホストチャネルアダプタと、
複数のエンドノードとを含み、前記複数のエンドノードの各々は、前記複数のホストチャネルアダプタのうち少なくとも１つのホストチャネルアダプタに関連付けられており、前記１つ以上のコンピュータに、さらに、
前記第１のサブネットのうちの前記複数のスイッチを、複数のレベルを有するネットワークアーキテクチャに配置するステップを実行させ、前記複数のレベルの各々は、前記複数のスイッチのうち少なくとも１つのスイッチを含み、前記１つ以上のコンピュータに、さらに、
第１の構成方法に従って前記複数のスイッチを構成するステップを実行させ、前記第１の構成方法は、前記複数のエンドノードについての第１の順序付けに関連付けられており、前記１つ以上のコンピュータに、さらに、
前記複数のスイッチのサブセットを前記第１のサブネットのサブ・サブネットとして構成するステップを実行させ、前記第１のサブネットの前記サブ・サブネットは、前記第１のサブネットの前記複数のレベルよりも少ないいくつかのレベルを含み、前記１つ以上のコンピュータに、さらに、
前記第１のサブネットの前記サブ・サブネットを第２の構成方法に従って再構成するステップを実行させる、非一時的なコンピュータ読取り可能記憶媒体。
【請求項１６】
前記第１のサブネットの前記複数のエンドノードは前記複数のスイッチを介して相互接続される、請求項１５に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項１７】
前記複数のエンドノードのサブセットは前記第１のサブネットの前記サブ・サブネットに関連付けられており、
前記第１のサブネットの前記サブ・サブネットは、前記複数のエンドノードのサブセット間のトラフィックが前記第１のサブネットの前記サブ・サブネットとして構成された前記複数のスイッチの前記サブセットに制限されるように構成されている、請求項１６に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項１８】
前記第２の再構成方法は、前記第１のサブネットの前記サブ・サブネットに関連付けられた前記複数のエンドノードの前記サブセットのうち少なくとも２つのエンドノードについての第２の順序付けに関連付けられている、請求項１７に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項１９】
前記第１のサブネットの前記サブ・サブネットに関連付けられた前記複数のエンドノードの前記サブセットのうちの前記少なくとも２つのエンドノードについての前記第２の順序付けは、システムアドミニストレータから受取られる、請求項１８に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項２０】
前記第１のサブネットの前記サブ・サブネットに関連付けられた前記複数のエンドノードの前記サブセットのうちの前記少なくとも２つのエンドノードについての前記第２の順序付けは、管理エンティティから受取られ、
前記第１のサブネットはインフィニバンドサブネットを含み、
前記管理エンティティは、
サブネットマネージャ、
ファブリックマネージャ、および、
グローバルファブリックマネージャからなる群から選択される管理エンティティである、請求項１８に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項２１】
機械読取り可能なフォーマットのプログラム命令を含むコンピュータプログラムであって、前記プログラム命令がコンピュータシステムによって実行されると、前記コンピュータシステムに請求項８から１３のいずれかに記載の方法を実行させる、コンピュータプログラム。
【請求項２２】
非一時的な機械読取り可能データ記憶媒体に格納された、請求項２１に記載のコンピュータプログラムを含むコンピュータプログラムプロダクト。
【請求項２３】
請求項８から１３のいずれかに記載の方法を実行するための手段を含む装置。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示：
この特許文献の開示の一部は、著作権保護の対象となる資料を含む。この特許文献または特許開示は特許商標庁の特許ファイルまたは記録に記載されているため、著作権保有者は、何人によるその複写複製に対しても異議はないが、その他の場合には如何なるときもすべての著作権を保有する。
【０００２】
発明の分野：
本発明は、概して、コンピュータシステムに関し、特に、ＳＲ−ＩＯＶ  ｖＳｗｉｔｃｈアーキテクチャを用いるコンピュータシステム仮想化およびライブマイグレーションをサポートすることに関する。
【背景技術】
【０００３】
背景：
導入されるクラウドコンピューティングアーキテクチャがより大規模になるのに応じて、従来のネットワークおよびストレージに関する性能および管理の障害が深刻な問題になってきている。クラウドコンピューティングファブリックのための基礎としてインフィニバンド（登録商標）（InfiniBand：ＩＢ）技術を用いることへの関心がますます高まってきている。これは、本発明の実施形態が対応するように意図された一般領域である。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要：
一実施形態に従うと、システムおよび方法は、大規模な無損失ネットワークにおいて性能駆動型の再構成を提供することができる。ハイブリッド再構成方式は、ネットワークのうちさまざまな下位区分を選択するためのさまざまなルーティングアルゴリズムを用いた高速の部分的なネットワーク再構成を可能にし得る。部分的な再構成は、初期の全体構成よりも桁違いに高速であり得るので、無損失ネットワークにおける性能駆動型の再構成を検討することが可能となり得る。提案されているメカニズムは、大型のＨＰＣシステムおよびクラウドが、隔離されたタスクを実行する複数のテナント（たとえば、さまざまなパーティション上のさまざまなテナント）によって共有されるという点を利用している。このようなシナリオにおいては、テナント間の相互通信が不可能となり、このため、ワークロード展開および配置スケジューラは、効率的なリソース利用を確実にするためにフラグメンテーションを回避しようと試みるはずである。すなわち、テナント当たりのトラフィックの大部分をネットワークのうち集約された下位区分内に含めることができ、ＳＭは、全体的な性能を向上させるためにいくつかの下位区分を再構成することができる。ＳＭは、ファットツリートポロジーおよびファットツリールーティングアルゴリズムを用いることができる。このようなハイブリッド再構成方式は、ネットワークを再構成するために提供されるノード順序付けを用いるカスタムのファットツリールーティングアルゴリズムを用いることによって、サブツリー内の性能をうまく再構成および向上させることができる。ＳＭがネットワーク全体を再構成することを所望する場合、ＳＭは、デフォルトのファットツリールーティングアルゴリズムを用いて、単一のサブネットにおけるさまざまな使用事例のための２つの異なるルーティングアルゴリズムの組合せを効果的に発揮することができる。
【０００５】
一実施形態に従うと、高性能コンピューティング環境において高速ハイブリッド再構成をサポートするための例示的な方法は、１つ以上のマイクロプロセッサにおいて第１のサブネットを設け得る。第１のサブネットは複数のスイッチを含み、複数のスイッチは少なくともリーフスイッチを含み、複数のスイッチの各々は、複数のスイッチポートと、各々が少なくとも１つのホストチャネルアダプタポートを含む複数のホストチャネルアダプタと、複数のエンドノードとを含み、複数のエンドノードの各々は、複数のホストチャネルアダプタのうち少なくとも１つのホストチャネルアダプタに関連付けられている。当該方法は、複数のレベルを有するネットワークアーキテクチャにおいて第１のサブネットのうちの複数のスイッチを配置し得る。複数のレベルの各々は、複数のスイッチのうち少なくとも１つのスイッチを含む。当該方法は、第１の構成方法に従って複数のスイッチを構成し得る。第１の構成方法は、複数のエンドノードについての第１の順序付けに関連付けられている。当該方法は、複数のスイッチのサブセットを第１のサブネットのサブ・サブネット（sub-subnet）として構成し得る。第１のサブネットのサブ・サブネットは第１のサブネットの複数のレベルよりも少ないいくつかのレベルを含む。当該方法は、第２の構成方法に従って第１のサブネットのサブ・サブネットを再構成し得る。
【図面の簡単な説明】
【０００６】
【図１】一実施形態に従ったインフィニバンド環境の一例を示す図である。
【図２】一実施形態に従った、ネットワーク環境におけるツリートポロジーの一例を示す図である。
【図３】一実施形態に従った例示的な共有ポートアーキテクチャを示す図である。
【図４】一実施形態に従った例示的なｖＳｗｉｔｃｈアーキテクチャを示す図である。
【図５】一実施形態に従った、ＬＩＤが予めポピュレートされた例示的なｖＳｗｉｔｃｈアーキテクチャを示す図である。
【図６】一実施形態に従った、動的ＬＩＤ割当てがなされた例示的なｖＳｗｉｔｃｈアーキテクチャを示す図である。
【図７】一実施形態に従った、動的ＬＩＤ割当てがなされかつＬＩＤが予めポピュレートされているｖＳｗｉｔｃｈを備えた例示的なｖＳｗｉｔｃｈアーキテクチャを示す図である。
【図８】一実施形態に従ったスイッチタプルを示す図である。
【図９】一実施形態に従った、ノードルーティングの段階についてのシステムを示す図である。
【図１０】一実施形態に従った、ノードルーティングの段階についてのシステムを示す図である。
【図１１】一実施形態に従った、ノードルーティングの段階についてのシステムを示す図である。
【図１２】一実施形態に従った、ノードルーティングの段階についてのシステムを示す図である。
【図１３】一実施形態に従った、２よりも大きい数のレベルを有するファットツリートポロジーを含むシステムを示す図である。
【図１４】一実施形態に従った、高速ハイブリッド再構成のためのシステムを示す図である。
【図１５】一実施形態に従った、高速ハイブリッド再構成のためのシステムを示す図である。
【図１６】一実施形態に従った、高性能コンピューティング環境における高速ハイブリッド再構成をサポートするための例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【０００７】
詳細な説明：
本発明は、同様の参照番号が同様の要素を指している添付図面の図において、限定のためではなく例示のために説明されている。なお、この開示における「ある」または「１つの」または「いくつかの」実施形態への参照は必ずしも同じ実施形態に対するものではなく、そのような参照は少なくとも１つを意味する。特定の実現例が説明されるが、これらの特定の実現例が例示的な目的のためにのみ提供されることが理解される。当業者であれば、他の構成要素および構成が、この発明の範囲および精神から逸脱することなく使用され得ることを認識するであろう。
【０００８】
図面および詳細な説明全体にわたって同様の要素を示すために、共通の参照番号が使用され得る。したがって、ある図で使用される参照番号は、要素が別のところで説明される場合、そのような図に特有の詳細な説明において参照される場合もあり、または参照されない場合もある。
【０００９】
高性能コンピューティング環境における高速ハイブリッド再構成をサポートするシステムおよび方法がこの明細書中に記載される。
【００１０】
この発明の以下の説明は、高性能ネットワークについての一例として、インフィニバンド（ＩＢ）ネットワークを使用する。他のタイプの高性能ネットワークが何ら限定されることなく使用され得ることが、当業者には明らかであるだろう。以下の説明ではまた、ファブリックトポロジーについての一例として、ファットツリートポロジーを使用する。他のタイプのファブリックトポロジーが何ら限定されることなく使用され得ることが当業者には明らかであるだろう。
【００１１】
本発明の一実施形態に従うと、仮想化は、クラウドコンピューティングにおける効率的なリソース利用および融通性のあるリソース割当てに有益であり得る。ライブマイグレーションは、アプリケーションにトランスペアレントな態様で物理サーバ間で仮想マシン（virtual machine：ＶＭ）を移動させることによってリソース使用を最適化することを可能にする。このため、仮想化は、ライブマイグレーションによる統合、リソースのオン・デマンド・プロビジョニングおよび融通性を可能にし得る。
【００１２】
インフィニバンド（登録商標）
インフィニバンド（ＩＢ）は、インフィニバンド・トレード・アソシエーション（InfiniBandTMTrade Association）によって開発されたオープン標準無損失ネットワーク技術である。この技術は、特に高性能コンピューティング（high-performance computing：ＨＰＣ）アプリケーションおよびデータセンタを対象とする、高スループットおよび少ない待ち時間の通信を提供するシリアルポイントツーポイント全二重相互接続（serial point-to-point full-duplex interconnect）に基づいている。
【００１３】
インフィニバンドアーキテクチャ（InfiniBand Architecture：ＩＢＡ）は、２層トポロジー分割をサポートする。より低い層では、ＩＢネットワークはサブネットと称され、１つのサブネットは、スイッチおよびポイントツーポイントリンクを使用して相互接続される一組のホストを含み得る。より高いレベルでは、１つのＩＢファブリックは、ルータを使用して相互接続され得る１つ以上のサブネットを構成する。
【００１４】
１つのサブネット内で、ホストは、スイッチおよびポイントツーポイントリンクを使用して接続され得る。加えて、サブネットにおける指定されたサブネットデバイス上に存在する、１つのマスター管理エンティティ、すなわちサブネットマネージャ（subnet manager：ＳＭ）があり得る。サブネットマネージャは、ＩＢサブネットを構成し、起動し、維持する役割を果たす。加えて、サブネットマネージャ（ＳＭ）は、ＩＢファブリックにおいてルーティングテーブル計算を行なう役割を果たし得る。ここで、たとえば、ＩＢネットワークのルーティングは、ローカルサブネットにおけるすべての送信元と宛先とのペア間の適正な負荷バランシングを目標とする。
【００１５】
サブネット管理インターフェイスを通して、サブネットマネージャは、サブネット管理パケット（subnet management packet：ＳＭＰ）と称される制御パケットを、サブネット管理エージェント（subnet management agent：ＳＭＡ）と交換する。サブネット管理エージェントは、すべてのＩＢサブネットデバイス上に存在する。ＳＭＰを使用することにより、サブネットマネージャは、ファブリックを発見し、エンドノードおよびスイッチを構成し、ＳＭＡから通知を受信することができる。
【００１６】
一実施形態によれば、ＩＢネットワークにおけるサブネット間およびサブネット内のルーティングは、スイッチに格納されたＬＦＴに基づき得る。ＬＦＴは、使用中のルーティングメカニズムに従って、ＳＭによって計算される。サブネットでは、エンドノード上のホストチャネルアダプタ（Host Channel Adapter：ＨＣＡ）ポートおよびスイッチが、ローカル識別子（ＬＩＤ）を使用してアドレス指定される。ＬＦＴにおける各エントリは、宛先ＬＩＤ（destination LID：ＤＬＩＤ）と出力ポートとからなる。テーブルにおけるＬＩＤごとに１つのエントリのみがサポートされる。パケットがあるスイッチに到着すると、その出力ポートは、そのスイッチのフォワーディングテーブルにおいてＤＬＩＤを検索することによって判断される。所与の送信元−宛先ペア（ＬＩＤペア）間のネットワークにおいてパケットは同じ経路を通るため、ルーティングは決定論的である。
【００１７】
一般に、マスターサブネットマネージャを除く他のすべてのサブネットマネージャは、耐故障性のために待機モードで作動する。しかしながら、マスターサブネットマネージャが故障した状況では、待機中のサブネットマネージャによって、新しいマスターサブネットマネージャが取り決められる。マスターサブネットマネージャはまた、サブネットの周期的なスイープ（sweep）を行なってあらゆるトポロジー変化を検出し、それに応じてネットワークを再構成する。
【００１８】
さらに、サブネット内のホストおよびスイッチは、ローカル識別子（ＬＩＤ）を使用してアドレス指定可能であり、単一のサブネットは４９１５１個のユニキャストＬＩＤに制限可能である。サブネット内で有効なローカルアドレスであるＬＩＤの他に、各ＩＢデバイスは、６４ビットのグローバル一意識別子（global unique identifier：ＧＵＩＤ）を有し得る。ＧＵＩＤは、ＩＢレイヤー３（Ｌ３）アドレスであるグローバル識別子（global identifier：ＧＩＤ）を形成するために使用され得る。
【００１９】
ＳＭは、ネットワーク初期化時間に、ルーティングテーブル（すなわち、サブネット内のノードの各ペア間の接続／ルート）を計算し得る。さらに、トポロジーが変化するたびに、ルーティングテーブルは、接続性および最適性能を確実にするために更新され得る。通常動作中、ＳＭは、トポロジー変化をチェックするためにネットワークの周期的なライトスイープ（light sweep）を実行し得る。ライトスイープ中に変化が発見された場合、または、ネットワーク変化を信号で伝えるメッセージ（トラップ）をＳＭが受信した場合、ＳＭは、発見された変化に従ってネットワークを再構成し得る。
【００２０】
たとえば、ＳＭは、リンクがダウンした場合、デバイスが追加された場合、またはリンクが除去された場合など、ネットワークトポロジーが変化する場合に、ネットワークを再構成し得る。再構成ステップは、ネットワーク初期化中に行なわれるステップを含み得る。さらに、再構成は、ネットワーク変化が生じたサブネットに制限されるローカルスコープを有し得る。また、ルータを用いる大規模ファブリックのセグメント化は、再構成の範囲を制限し得る。
【００２１】
一実施形態によれば、ＩＢネットワークは、ネットワークファブリックを共有するシステムの論理グループの分離をもたらすためにセキュリティメカニズムとしてパーティショニングをサポートし得る。ファブリックにおけるノード上の各ＨＣＡポートは、１つ以上のパーティションのメンバであり得る。パーティションメンバーシップは、ＳＭの一部であり得る集中型パーティションマネージャによって管理される。ＳＭは、各ポートに関するパーティションメンバーシップ情報を、１６ビットのパーティションキー（partition key：Ｐキー）のテーブルとして構成することができる。ＳＭはまた、ＬＩＤに関連付けられたＰキー情報を含むパーティション実施テーブルを用いて、スイッチおよびルータを構成することができる。加えて、一般的な場合には、スイッチポートのパーティションメンバーシップは、（リンクに向かう）出口方向に向かってポートを介してルーティングされたＬＩＤに間接的に関連付けられたすべてのメンバーシップの集合を表わし得る。
【００２２】
一実施形態によれば、ノード間の通信のために、管理キューペア（ＱＰ０およびＱＰ１）を除き、キューペア（Queue Pair：ＱＰ）およびエンドツーエンドコンテキスト（End-to-End context：ＥＥＣ）を特定のパーティションに割当てることができる。次に、Ｐキー情報を、送信されたすべてのＩＢトランスポートパケットに追加することができる。パケットがＨＣＡポートまたはスイッチに到着すると、そのＰキー値を、ＳＭによって構成されたテーブルに対して確認することができる。無効のＰキー値が見つかった場合、そのパケットは直ちに廃棄される。このように、通信は、パーティションを共有するポート間でのみ許可される。
【００２３】
一実施形態に従ったインフィニバンド環境１００の例を示す図１に、インフィニバンドファブリックの一例を示す。図１に示す例では、ノードＡ１０１〜Ｅ１０５は、インフィニバンドファブリック１２０を使用して、それぞれのホストチャネルアダプタ１１１〜１１５を介して通信する。一実施形態に従うと、さまざまなノード（たとえばノードＡ１０１〜Ｅ１０５）はさまざまな物理デバイスによって表わすことができる。一実施形態に従うと、さまざまなノード（たとえばノードＡ１０１〜Ｅ１０５）は仮想マシンなどのさまざまな仮想デバイスによって表わすことができる。
【００２４】
インフィニバンドにおける仮想マシン
過去１０年の間に、ハードウェア仮想化サポートによってＣＰＵオーバーヘッドが実質的に排除され、メモリ管理ユニットを仮想化することによってメモリオーバーヘッドが著しく削減され、高速ＳＡＮストレージまたは分散型ネットワークファイルシステムの利用によってストレージオーバーヘッドが削減され、シングルルートＩ／Ｏ仮想化（Single Root Input/Output Virtualization：ＳＲ−ＩＯＶ）のようなデバイス・パススルー技術を使用することによってネットワークＩ／Ｏオーバーヘッドが削減されてきたことに応じて、仮想化された高性能コンピューティング（High Performance Computing：ＨＰＣ）環境の将来見通しが大幅に改善されてきた。現在では、クラウドが、高性能相互接続ソリューションを用いて仮想ＨＰＣ（virtual HPC：ｖＨＰＣ）クラスタに対応し、必要な性能を提供することができる。
【００２５】
しかしながら、インフィニバンド（ＩＢ）などの無損失ネットワークと連結されたとき、仮想マシン（ＶＭ）のライブマイグレーションなどのいくつかのクラウド機能は、これらのソリューションにおいて用いられる複雑なアドレス指定およびルーティングスキームのせいで、依然として問題となる。ＩＢは、高帯域および低レイテンシを提供する相互接続ネットワーク技術であり、このため、ＨＰＣおよび他の通信集約型のワークロードに非常によく適している。
【００２６】
ＩＢデバイスをＶＭに接続するための従来のアプローチは直接割当てされたＳＲ−ＩＯＶを利用することによるものである。しかしながら、ＩＢに割当てられたＶＭのライブマイグレーションを実現するためには、ＳＲ−ＩＯＶを用いるホストチャネルアダプタ（ＨＣＡ）が難易度の高いものであることが判明した。各々のＩＢが接続されているノードは、３つの異なるアドレス（すなわちＬＩＤ、ＧＵＩＤおよびＧＩＤ）を有する。ライブマイグレーションが発生すると、これらのアドレスのうち１つ以上が変化する。マイグレーション中のＶＭ（VM-in-migration）と通信する他のノードは接続性を失う可能性がある。これが発生すると、ＩＢサブネットマネージャ（Subnet Manager：ＳＭ）にサブネット管理（Subnet Administration：ＳＡ）経路記録クエリを送信することによって、再接続すべき仮想マシンの新しいアドレスを突きとめることにより、失われた接続を回復させるように試みることができる。
【００２７】
ＩＢは３つの異なるタイプのアドレスを用いる。第１のタイプのアドレスは１６ビットのローカル識別子（ＬＩＤ）である。少なくとも１つの固有のＬＩＤは、ＳＭによって各々のＨＣＡポートおよび各々のスイッチに割当てられる。ＬＩＤはサブネット内のトラフィックをルーティングするために用いられる。ＬＩＤが１６ビット長であるので、６５５３６個の固有のアドレス組合せを構成することができ、そのうち４９１５１個（０×０００１−０×ＢＦＦＦ）だけをユニキャストアドレスとして用いることができる。結果として、入手可能なユニキャストアドレスの数は、ＩＢサブネットの最大サイズを定義することとなる。第２のタイプのアドレスは、製造業者によって各々のデバイス（たとえば、ＨＣＡおよびスイッチ）ならびに各々のＨＣＡポートに割当てられた６４ビットのグローバル一意識別子（ＧＵＩＤ）である。ＳＭは、ＨＣＡポートに追加のサブネット固有ＧＵＩＤを割当ててもよく、これは、ＳＲ−ＩＯＶが用いられる場合に有用となる。第３のタイプのアドレスは１２８ビットのグローバル識別子（ＧＩＤ）である。ＧＩＤは有効なＩＰｖ６ユニキャストアドレスであり、少なくとも１つが各々のＨＣＡポートに割当てられている。ＧＩＤは、ファブリックアドミニストレータによって割当てられたグローバルに固有の６４ビットプレフィックスと各々のＨＣＡポートのＧＵＩＤアドレスとを組合わせることによって形成される。
【００２８】
ファットツリー（Fat Tree：ＦＴｒｅｅ）トポロジーおよびルーティング
一実施形態によれば、ＩＢベースのＨＰＣシステムのいくつかは、ファットツリートポロジーを採用して、ファットツリーが提供する有用な特性を利用する。これらの特性は、各送信元宛先ペア間の複数経路の利用可能性に起因する、フルバイセクション帯域幅および固有の耐故障性を含む。ファットツリーの背後にある初期の考えは、ツリーがトポロジーのルート（root）に近づくにつれて、より利用可能な帯域幅を用いて、ノード間のより太いリンクを採用することであった。より太いリンクは、上位レベルのスイッチにおける輻輳を回避するのに役立てることができ、バイセクション帯域幅が維持される。
【００２９】
図２は、一実施形態に従った、ネットワーク環境におけるツリートポロジーの例を示す。図２に示すように、ネットワークファブリック２００において、１つ以上のエンドノード２０１〜２０４が接続され得る。ネットワークファブリック２００は、複数のリーフスイッチ２１１〜２１４と複数のスパインスイッチまたはルート（root）スイッチ２３１〜２３４とを含むファットツリートポロジーに基づき得る。加えて、ネットワークファブリック２００は、スイッチ２２１〜２２４などの１つ以上の中間スイッチを含み得る。
【００３０】
また、図２に示すように、エンドノード２０１〜２０４の各々は、マルチホームノード、すなわち、複数のポートを通してネットワークファブリック２００の２つ以上の部分に接続される単一のノードであり得る。たとえば、ノード２０１はポートＨ１およびＨ２を含み、ノード２０２はポートＨ３およびＨ４を含み、ノード２０３はポートＨ５およびＨ６を含み、ノード２０４はポートＨ７およびＨ８を含み得る。
【００３１】
加えて、各スイッチは複数のスイッチポートを有し得る。たとえば、ルートスイッチ２３１はスイッチポート１〜２を有し、ルートスイッチ２３２はスイッチポート３〜４を有し、ルートスイッチ２３３はスイッチポート５〜６を有し、ルートスイッチ２３４はスイッチポート７〜８を有し得る。
【００３２】
一実施形態によれば、ファットツリールーティングメカニズムは、ＩＢベースのファットツリートポロジーに関して最も人気のあるルーティングアルゴリズムのうちの１つである。ファットツリールーティングメカニズムはまた、ＯＦＥＤ（Open Fabric Enterprise Distribution：ＩＢベースのアプリケーションを構築しデプロイするための標準ソフトウェアスタック）サブネットマネージャ、すなわちＯｐｅｎＳＭにおいて実現される。
【００３３】
ファットツリールーティングメカニズムの目的は、ネットワークファブリックにおけるリンクにわたって最短経路ルートを均一に広げるＬＦＴを生成することである。このメカニズムは、索引付け順序でファブリックを横断し、エンドノードの目標ＬＩＤ、ひいては対応するルートを各スイッチポートに割当てる。同じリーフスイッチに接続されたエンドノードについては、索引付け順序は、エンドノードが接続されるスイッチポートに依存し得る（すなわち、ポートナンバリングシーケンス）。各ポートについては、メカニズムはポート使用カウンタを維持することができ、新しいルートが追加されるたびに、このポート使用カウンタを使用して使用最小ポートを選択することができる。
【００３４】
一実施形態に従うと、パーティショニングされたサブネットでは、共通のパーティションのメンバではないノードは通信することを許可されない。実際には、これは、ファットツリールーティングアルゴリズムによって割当てられたルートのうちのいくつかがユーザトラフィックのために使用されないことを意味する。ファットツリールーティングメカニズムが、それらのルートについてのＬＦＴを、他の機能的経路と同じやり方で生成する場合、問題が生じる。この動作は、リンク上でバランシングを劣化させるおそれがある。なぜなら、ノードが索引付けの順序でルーティングされているからである。パーティションに気づかずにルーティングが行なわれるため、ファットツリーでルーティングされたサブネットにより、通常、パーティション間の分離が不良なものとなる。
【００３５】
入出力（Input/Output：Ｉ／Ｏ）仮想化
一実施形態に従うと、Ｉ／Ｏ仮想化（I/O Virtualization：ＩＯＶ）は、仮想マシン（ＶＭ）が基礎をなす物理リソースにアクセスできるようにすることによって、Ｉ／Ｏを利用できるようにすることができる。ストレージトラフィックとサーバ間通信とを組合わせると、シングルサーバのＩ／Ｏリソースにとって抗し難い高い負荷が課され、結果として、データの待機中に、バックログが発生し、プロセッサがアイドル状態になる可能性がある。Ｉ／Ｏ要求の数が増えるにつれて、ＩＯＶにより、利用可能性をもたらすことができるとともに、最新のＣＰＵ仮想化において見られる性能レベルに匹敵するように、（仮想化された）Ｉ／Ｏリソースの性能、スケーラビリティおよび融通性を向上させることができる。
【００３６】
一実施形態に従うと、Ｉ／Ｏリソースの共有を可能にして、ＶＭからリソースへのアクセスが保護されることを可能にし得るようなＩＯＶが所望される。ＩＯＶは、ＶＭにエクスポーズされる論理装置を、その物理的な実装から分離する。現在、エミュレーション、準仮想化、直接的な割当て（direct assignment：ＤＡ）、およびシングルルートＩ／Ｏ仮想化（single root-I/O virtualization：ＳＲ−ＩＯＶ）などのさまざまなタイプのＩＯＶ技術が存在し得る。
【００３７】
一実施形態に従うと、あるタイプのＩＯＶ技術としてソフトウェアエミュレーションがある。ソフトウェアエミュレーションは分離されたフロントエンド／バックエンド・ソフトウェアアーキテクチャを可能にし得る。フロントエンドはＶＭに配置されたデバイスドライバであり得、Ｉ／Ｏアクセスをもたらすためにハイパーバイザによって実現されるバックエンドと通信し得る。物理デバイス共有比率は高く、ＶＭのライブマイグレーションはネットワークダウンタイムのわずか数ミリ秒で実現可能である。しかしながら、ソフトウェアエミュレーションはさらなる不所望な計算上のオーバーヘッドをもたらしてしまう。
【００３８】
一実施形態に従うと、別のタイプのＩＯＶ技術として直接的なデバイスの割当てがある。直接的なデバイスの割当てでは、Ｉ／ＯデバイスをＶＭに連結する必要があるが、デバイスはＶＭ間では共有されない。直接的な割当てまたはデバイス・パススルーは、最小限のオーバーヘッドでほぼ固有の性能を提供する。物理デバイスはハイパーバイザをバイパスし、直接、ＶＭに取付けられている。しかしながら、このような直接的なデバイスの割当ての欠点は、仮想マシン間で共有がなされないため、１枚の物理ネットワークカードが１つのＶＭと連結されるといったように、スケーラビリティが制限されてしまうことである。
【００３９】
一実施形態に従うと、シングルルートＩＯＶ（Single Root IOV：ＳＲ−ＩＯＶ）は、ハードウェア仮想化によって、物理装置がその同じ装置の複数の独立した軽量のインスタンスとして現われることを可能にし得る。これらのインスタンスは、パススルー装置としてＶＭに割当てることができ、仮想機能（Virtual Function：ＶＦ）としてアクセスすることができる。ハイパーバイザは、（１つのデバイスごとに）固有の、十分な機能を有する物理機能（Physical Function：ＰＦ）によってデバイスにアクセスする。ＳＲ−ＩＯＶは、純粋に直接的に割当てする際のスケーラビリティの問題を軽減する。しかしながら、ＳＲ−ＩＯＶによって提示される問題は、それがＶＭマイグレーションを損なう可能性があることである。これらのＩＯＶ技術の中でも、ＳＲ−ＩＯＶは、ほぼ固有の性能を維持しながらも、複数のＶＭから単一の物理デバイスに直接アクセスすることを可能にする手段を用いてＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）規格を拡張することができる。これにより、ＳＲ−ＩＯＶは優れた性能およびスケーラビリティを提供することができる。
【００４０】
ＳＲ−ＩＯＶは、ＰＣＩｅデバイスが、各々のゲストに１つの仮想デバイスを割当てることによって複数のゲスト間で共有することができる複数の仮想デバイスをエクスポーズすることを可能にする。各々のＳＲ−ＩＯＶデバイスは、少なくとも１つの物理機能（ＰＦ）と、１つ以上の関連付けられた仮想機能（ＶＦ）とを有する。ＰＦは、仮想マシンモニタ（virtual machine monitor：ＶＭＭ）またはハイパーバイザによって制御される通常のＰＣＩｅ機能であるのに対して、ＶＦは軽量のＰＣＩｅ機能である。各々のＶＦはそれ自体のベースアドレス（base address：ＢＡＲ）を有しており、固有のリクエスタＩＤが割当てられている。固有のリクエスタＩＤは、Ｉ／Ｏメモリ管理ユニット（I/O memory management unit：ＩＯＭＭＵ）がさまざまなＶＦへの／からのトラフィックストリームを区別することを可能にする。ＩＯＭＭＵはまた、メモリを適用して、ＰＦとＶＦとの間の変換を中断する。
【００４１】
しかし、残念ながら、直接的デバイス割当て技術は、仮想マシンのトランスペアレントなライブマイグレーションがデータセンタ最適化のために所望されるような状況においては、クラウドプロバイダにとって障壁となる。ライブマイグレーションの本質は、ＶＭのメモリ内容がリモートハイパーバイザにコピーされるという点である。さらに、ＶＭがソースハイパーバイザにおいて中断され、ＶＭの動作が宛先において再開される。ソフトウェアエミュレーション方法を用いる場合、ネットワークインターフェイスは、それらの内部状態がメモリに記憶され、さらにコピーされるように仮想的である。このため、ダウンタイムは数ミリ秒にまで減らされ得る。
【００４２】
しかしながら、ＳＲ−ＩＯＶなどの直接的デバイス割当て技術が用いられる場合、マイグレーションはより困難になる。このような状況においては、ネットワークインターフェイスの内部状態全体は、それがハードウェアに結び付けられているのでコピーすることができない。代わりに、ＶＭに割当てられたＳＲ−ＩＯＶ  ＶＦが分離され、ライブマイグレーションが実行されることとなり、新しいＶＦが宛先において付与されることとなる。インフィニバンドおよびＳＲ−ＩＯＶの場合、このプロセスがダウンタイムを数秒のオーダでもたらす可能性がある。さらに、ＳＲ−ＩＯＶ共有型ポートモデルにおいては、ＶＭのアドレスがマイグレーション後に変化することとなり、これにより、ＳＭにオーバーヘッドが追加され、基礎をなすネットワークファブリックの性能に対して悪影響が及ぼされることとなる。
【００４３】
インフィニバンドＳＲ−ＩＯＶアーキテクチャ−共有ポート
さまざまなタイプのＳＲ−ＩＯＶモデル（たとえば共有ポートモデルおよび仮想スイッチモデル）があり得る。
【００４４】
図３は、一実施形態に従った例示的な共有ポートアーキテクチャを示す。図に示されるように、ホスト３００（たとえばホストチャネルアダプタ）はハイパーバイザ３１０と対話し得る。ハイパーバイザ３１０は、さまざまな仮想機能３３０、３４０および３５０をいくつかの仮想マシンに割当て得る。同様に、物理機能はハイパーバイザ３１０によって処理することができる。
【００４５】
一実施形態に従うと、図３に示されるような共有ポートアーキテクチャを用いる場合、ホスト（たとえばＨＣＡ）は、物理機能３２０と仮想機能３３０、３５０、３５０との間において単一の共有ＬＩＤおよび共有キュー対（Queue Pair：ＱＰ）のスペースがあるネットワークにおいて単一のポートとして現われる。しかしながら、各々の機能（すなわち、物理機能および仮想機能）はそれら自体のＧＩＤを有し得る。
【００４６】
図３に示されるように、一実施形態に従うと、さまざまなＧＩＤを仮想機能および物理機能に割当てることができ、特別のキュー対であるＱＰ０およびＱＰ１（すなわちインフィニバンド管理パケットのために用いられる専用のキュー対）が物理機能によって所有される。これらのＱＰはＶＦにも同様にエクスポーズされるが、ＶＦはＱＰ０を使用することが許可されておらず（ＶＦからＱＰ０に向かって入来するすべてのＳＭＰが廃棄され）、ＱＰ１は、ＰＦが所有する実際のＱＰ１のプロキシとして機能し得る。
【００４７】
一実施形態に従うと、共有ポートアーキテクチャは、（仮想機能に割当てられることによってネットワークに付随する）ＶＭの数によって制限されることのない高度にスケーラブルなデータセンタを可能にし得る。なぜなら、ネットワークにおける物理的なマシンおよびスイッチによってＬＩＤスペースが消費されるだけであるからである。
【００４８】
しかしながら、共有ポートアーキテクチャの欠点は、トランスペアレントなライブマイグレーションを提供することができない点であり、これにより、フレキシブルなＶＭ配置についての可能性が妨害されてしまう。各々のＬＩＤが特定のハイパーバイザに関連付けられており、かつハイパーバイザ上に常駐するすべてのＶＭ間で共有されているので、マイグレートしているＶＭ（すなわち、宛先ハイパーバイザにマイグレートする仮想マシン）は、そのＬＩＤを宛先ハイパーバイザのＬＩＤに変更させなければならない。さらに、ＱＰ０アクセスが制限された結果、サブネットマネージャはＶＭの内部で実行させることができなくなる。
【００４９】
インフィニバンドＳＲ−ＩＯＶアーキテクチャモデル−仮想スイッチ（ｖＳｗｉｔｃｈ）
さまざまなタイプのＳＲ−ＩＯＶモデル（たとえば共有ポートモデルおよび仮想スイッチモデル）があり得る。
【００５０】
図４は、一実施形態に従った例示的なｖＳｗｉｔｃｈアーキテクチャを示す。図に示されるように、ホスト４００（たとえばホストチャネルアダプタ）はハイパーバイザ４１０と対話することができ、当該ハイパーバイザ４１０は、さまざまな仮想機能４３０、４４０および４５０をいくつかの仮想マシンに割当てることができる。同様に、物理機能はハイパーバイザ４１０によって処理することができる。仮想スイッチ４１５もハイパーバイザ４０１によって処理することができる。
【００５１】
一実施形態に従うと、ｖＳｗｉｔｃｈアーキテクチャにおいては、各々の仮想機能４３０、４４０、４５０は完全な仮想ホストチャネルアダプタ（virtual Host Channel Adapter：ｖＨＣＡ）であり、これは、ハードウェアにおいて、ＶＦに割当てられたＶＭに、ＩＢアドレス一式（たとえばＧＩＤ、ＧＵＩＤ、ＬＩＤ）および専用のＱＰスペースが割当てられていることを意味する。残りのネットワークおよびＳＭについては、ＨＣＡ４００は、仮想スイッチ４１５を介して追加のノードが接続されているスイッチのように見えている。ハイパーバイザ４１０はＰＦ４２０を用いることができ、（仮想機能に付与された）ＶＭはＶＦを用いる。
【００５２】
一実施形態に従うと、ｖＳｗｉｔｃｈアーキテクチャは、トランスペアレントな仮想化を提供する。しかしながら、各々の仮想機能には固有のＬＩＤが割当てられているので、利用可能な数のＬＩＤが速やかに消費される。同様に、多くのＬＩＤアドレスが（すなわち、各々の物理機能および各々の仮想機能ごとに１つずつ）使用されている場合、より多くの通信経路をＳＭによって計算しなければならず、それらのＬＦＴを更新するために、より多くのサブネット管理パケット（ＳＭＰ）をスイッチに送信しなければならない。たとえば、通信経路の計算は大規模ネットワークにおいては数分かかる可能性がある。ＬＩＤスペースが４９１５１個のユニキャストＬＩＤに制限されており、（ＶＦを介する）各々のＶＭとして、物理ノードおよびスイッチがＬＩＤを１つずつ占有するので、ネットワークにおける物理ノードおよびスイッチの数によってアクティブなＶＭの数が制限されてしまい、逆の場合も同様に制限される。
【００５３】
インフィニバンドＳＲ−ＩＯＶアーキテクチャモデル−ＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈ
一実施形態に従うと、本開示は、ＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈアーキテクチャを提供するためのシステムおよび方法を提供する。
【００５４】
図５は、一実施形態に従った、ＬＩＤが予めポピュレートされた例示的なｖＳｗｉｔｃｈアーキテクチャを示す。図に示されるように、いくつかのスイッチ５０１〜５０４は、ネットワーク切替環境５００（たとえばＩＢサブネット）内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックはホストチャネルアダプタ５１０、５２０、５３０などのいくつかのハードウェアデバイスを含み得る。さらに、ホストチャネルアダプタ５１０、５２０および５３０は、それぞれ、ハイパーバイザ５１１、５２１および５３１と対話することができる。各々のハイパーバイザは、さらに、ホストチャネルアダプタと共に、いくつかの仮想機能５１４、５１５、５１６、５２４、５２５、５２６、５３４、５３５および５３６と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン１  ５５０はハイパーバイザ５１１によって仮想機能１  ５１４に割当てることができる。ハイパーバイザ５１１は、加えて、仮想マシン２  ５５１を仮想機能２  ５１５に割当て、仮想マシン３  ５５２を仮想機能３  ５１６に割当てることができる。ハイパーバイザ５３１は、さらに、仮想マシン４  ５５３を仮想機能１  ５３４に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上における十分な機能を有する物理機能５１３、５２３および５３３を介してホストチャネルアダプタにアクセスすることができる。
【００５５】
一実施形態に従うと、スイッチ５０１〜５０４の各々はいくつかのポート（図示せず）を含み得る。いくつかのポートは、ネットワーク切替環境５００内においてトラフィックを方向付けるために線形のフォワーディングテーブルを設定するのに用いられる。
【００５６】
一実施形態に従うと、仮想スイッチ５１２、５２２および５３２は、それぞれのハイパーバイザ５１１、５２１、５３１によって処理することができる。このようなｖＳｗｉｔｃｈアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ（ｖＨＣＡ）であり、これは、ハードウェアにおいて、ＶＦに割当てられたＶＭに、ＩＢアドレス一式（たとえばＧＩＤ、ＧＵＩＤ、ＬＩＤ）および専用のＱＰスペースが割当てられていることを意味する。残りのネットワークおよびＳＭ（図示せず）については、ＨＣＡ５１０、５２０および５３０は、仮想スイッチを介して追加のノードが接続されているスイッチのように見えている。
【００５７】
一実施形態に従うと、本開示は、ＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈアーキテクチャを提供するためのシステムおよび方法を提供する。図５を参照すると、ＬＩＤは、さまざまな物理機能５１３、５２３および５３３に、さらには、仮想機能５１４〜５１６、５２４〜５２６、５３４〜５３６（その時点でアクティブな仮想マシンに関連付けられていない仮想機能であっても）にも、予めポピュレートされている。たとえば、物理機能５１３はＬＩＤ１が予めポピュレートされており、仮想機能１  ５３４はＬＩＤ１０が予めポピュレートされている。ネットワークがブートされているとき、ＬＩＤはＳＲ−ＩＯＶ  ｖＳｗｉｔｃｈ対応のサブネットにおいて予めポピュレートされている。ＶＦのすべてがネットワークにおけるＶＭによって占有されていない場合であっても、ポピュレートされたＶＦには、図５に示されるようにＬＩＤが割当てられている。
【００５８】
一実施形態に従うと、多くの同様の物理的なホストチャネルアダプタが２つ以上のポートを有することができ（冗長性のために２つのポートが共用となっている）、仮想ＨＣＡも２つのポートで表わされ、１つまたは２つ以上の仮想スイッチを介して外部ＩＢサブネットに接続され得る。
【００５９】
一実施形態に従うと、ＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈアーキテクチャにおいては、各々のハイパーバイザは、それ自体のための１つのＬＩＤをＰＦを介して消費し、各々の追加のＶＦごとに１つ以上のＬＩＤを消費することができる。ＩＢサブネットにおけるすべてのハイパーバイザにおいて利用可能なすべてのＶＦを合計すると、サブネットにおいて実行することが可能なＶＭの最大量が得られる。たとえば、サブネット内の１ハイパーバイザごとに１６個の仮想機能を備えたＩＢサブネットにおいては、各々のハイパーバイザは、サブネットにおいて１７個のＬＩＤ（１６個の仮想機能ごとに１つのＬＩＤと、物理機能のために１つのＬＩＤ）を消費する。このようなＩＢサブネットにおいては、単一のサブネットについて理論上のハイパーバイザ限度は利用可能なユニキャストＬＩＤの数によって規定されており、（４９１５１個の利用可能なＬＩＤをハイパーバイザごとに１７個のＬＩＤで割って得られる）２８９１であり、ＶＭの総数（すなわち限度）は（ハイパーバイザごとに２８９１個のハイパーバイザに１６のＶＦを掛けて得られる）４６２５６である（実質的には、ＩＢサブネットにおける各々のスイッチ、ルータまたは専用のＳＭノードが同様にＬＩＤを消費するので、これらの数は実際にはより小さくなる）。なお、ｖＳｗｉｔｃｈが、ＬＩＤをＰＦと共有することができるので、付加的なＬＩＤを占有する必要がないことに留意されたい。
【００６０】
一実施形態に従うと、ＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈアーキテクチャにおいては、ネットワークが一旦ブートされると、すべてのＬＩＤについて通信経路が計算される。新しいＶＭを始動させる必要がある場合、システムは、サブネットにおいて新しいＬＩＤを追加する必要はない。それ以外の場合、経路の再計算を含め、ネットワークを完全に再構成させ得る動作は、最も時間を消費する要素となる。代わりに、ＶＭのための利用可能なポートはハイパーバイザのうちの１つに位置し（すなわち利用可能な仮想機能）、仮想マシンは利用可能な仮想機能に付与されている。
【００６１】
一実施形態に従うと、ＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈアーキテクチャはまた、同じハイパーバイザによってホストされているさまざまなＶＭに達するために、さまざまな経路を計算して用いる能力を可能にする。本質的には、これは、ＬＩＤを連続的にすることを必要とするＬＭＣの制約によって拘束されることなく、１つの物理的なマシンに向かう代替的な経路を設けるために、このようなサブネットおよびネットワークがＬＩＤマスク制御ライク（LID-Mask-Control-like：ＬＭＣライク）な特徴を用いることを可能にする。ＶＭをマイグレートしてその関連するＬＩＤを宛先に送達する必要がある場合、不連続なＬＩＤを自由に使用できることは特に有用となる。
【００６２】
一実施形態に従うと、ＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈアーキテクチャについての上述の利点と共に、いくつかの検討事項を考慮に入れることができる。たとえば、ネットワークがブートされているときに、ＳＲ−ＩＯＶ  ｖＳｗｉｔｃｈ対応のサブネットにおいてＬＩＤが予めポピュレートされているので、（たとえば起動時の）最初の経路計算はＬＩＤが予めポピュレートされていなかった場合よりも時間が長くかかる可能性がある。
【００６３】
インフィニバンドＳＲ−ＩＯＶアーキテクチャモデル−動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈ
一実施形態に従うと、本開示は、動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈアーキテクチャを提供するためのシステムおよび方法を提供する。
【００６４】
図６は、一実施形態に従った、動的ＬＩＤ割当てがなされた例示的なｖＳｗｉｔｃｈアーキテクチャを示す。図に示されるように、いくつかのスイッチ５０１〜５０４は、ネットワーク切替環境６００（たとえばＩＢサブネット）内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックは、ホストチャネルアダプタ５１０、５２０、５３０などのいくつかのハードウェアデバイスを含み得る。ホストチャネルアダプタ５１０、５２０および５３０は、さらに、ハイパーバイザ５１１、５２１および５３１とそれぞれ対話することができる。各々のハイパーバイザは、さらに、ホストチャネルアダプタと共に、いくつかの仮想機能５１４、５１５、５１６、５２４、５２５、５２６、５３４、５３５および５３６と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン１  ５５０はハイパーバイザ５１１によって仮想機能１  ５１４に割当てることができる。ハイパーバイザ５１１は、加えて、仮想マシン２  ５５１を仮想機能２  ５１５に割当て、仮想マシン３  ５５２を仮想機能３  ５１６に割当てることができる。ハイパーバイザ５３１はさらに、仮想マシン４  ５５３を仮想機能１  ５３４に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上における十分な機能を有する物理機能５１３、５２３および５３３を介してホストチャネルアダプタにアクセスすることができる。
【００６５】
一実施形態に従うと、スイッチ５０１〜５０４の各々はいくつかのポート（図示せず）を含み得る。いくつかのポートは、ネットワーク切替環境６００内においてトラフィックを方向付けるために線形のフォワーディングテーブルを設定するのに用いられる。
【００６６】
一実施形態に従うと、仮想スイッチ５１２、５２２および５３２は、それぞれのハイパーバイザ５１１、５２１および５３１によって処理することができる。このようなｖＳｗｉｔｃｈアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ（ｖＨＣＡ）であり、これは、ハードウェアにおいて、ＶＦに割当てられたＶＭに、ＩＢアドレス一式（たとえばＧＩＤ、ＧＵＩＤ、ＬＩＤ）および専用のＱＰスペースが割当てられていることを意味する。残りのネットワークおよびＳＭ（図示せず）については、ＨＣＡ５１０、５２０および５３０は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
【００６７】
一実施形態に従うと、本開示は、動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈアーキテクチャを提供するためのシステムおよび方法を提供する。図６を参照すると、ＬＩＤには、さまざまな物理機能５１３、５２３および５３３が動的に割当てられており、物理機能５１３がＬＩＤ１を受取り、物理機能５２３がＬＩＤ２を受取り、物理機能５３３がＬＩＤ３を受取る。アクティブな仮想マシンに関連付けられたそれらの仮想機能はまた、動的に割当てられたＬＩＤを受取ることもできる。たとえば、仮想マシン１  ５５０がアクティブであり、仮想機能１  ５１４に関連付けられているので、仮想機能５１４にはＬＩＤ５が割当てられ得る。同様に、仮想機能２  ５１５、仮想機能３  ５１６および仮想機能１  ５３４は、各々、アクティブな仮想機能に関連付けられている。このため、これらの仮想機能にＬＩＤが割当てられ、ＬＩＤ７が仮想機能２  ５１５に割当てられ、ＬＩＤ１１が仮想機能３  ５１６に割当てられ、仮想機能９が仮想機能１  ５３５に割当てられている。ＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈとは異なり、アクティブな仮想マシンにその時点で関連付けられていない仮想機能はＬＩＤの割当てを受けない。
【００６８】
一実施形態に従うと、動的ＬＩＤ割当てがなされていれば、最初の経路計算を実質的に減らすことができる。ネットワークが初めてブートしており、ＶＭが存在していない場合、比較的少数のＬＩＤを最初の経路計算およびＬＦＴ分配のために用いることができる。
【００６９】
一実施形態に従うと、多くの同様の物理的なホストチャネルアダプタが２つ以上のポートを有することができ（冗長性のために２つのポートが共用となっている）、仮想ＨＣＡも２つのポートで表わされ、１つまたは２つ以上の仮想スイッチを介して外部ＩＢサブネットに接続され得る。
【００７０】
一実施形態に従うと、動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈを利用するシステムにおいて新しいＶＭが作成される場合、どのハイパーバイザ上で新しく追加されたＶＭをブートすべきであるかを決定するために、自由なＶＭスロットが発見され、固有の未使用のユニキャストＬＩＤも同様に発見される。しかしながら、新しく追加されたＬＩＤを処理するためのスイッチのＬＦＴおよびネットワークに既知の経路が存在しない。新しく追加されたＶＭを処理するために新しいセットの経路を計算することは、いくつかのＶＭが毎分ごとにブートされ得る動的な環境においては望ましくない。大規模なＩＢサブネットにおいては、新しい１セットのルートの計算には数分かかる可能性があり、この手順は、新しいＶＭがブートされるたびに繰返されなければならないだろう。
【００７１】
有利には、一実施形態に従うと、ハイパーバイザにおけるすべてのＶＦがＰＦと同じアップリンクを共有しているので、新しいセットのルートを計算する必要はない。ネットワークにおけるすべての物理スイッチのＬＦＴを繰返し、（ＶＭが作成されている）ハイパーバイザのＰＦに属するＬＩＤエントリから新しく追加されたＬＩＤにフォワーディングポートをコピーし、かつ、特定のスイッチの対応するＬＦＴブロックを更新するために単一のＳＭＰを送信するだけでよい。これにより、当該システムおよび方法では、新しいセットのルートを計算する必要がなくなる。
【００７２】
一実施形態に従うと、動的ＬＩＤ割当てアーキテクチャを用いたｖＳｗｉｔｃｈにおいて割当てられたＬＩＤは連続的である必要はない。各々のハイパーバイザ上のＶＭ上で割当てられたＬＩＤをＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈと動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈとで比較すると、動的ＬＩＤ割当てアーキテクチャにおいて割当てられたＬＩＤが不連続であり、そこに予めポピュレートされたＬＩＤが本質的に連続的であることが分かるだろう。さらに、ｖＳｗｉｔｃｈ動的ＬＩＤ割当てアーキテクチャにおいては、新しいＶＭが作成されると、次に利用可能なＬＩＤが、ＶＭの生存期間の間中ずっと用いられる。逆に、ＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈにおいては、各々のＶＭは、対応するＶＦに既に割当てられているＬＩＤを引継ぎ、ライブマイグレーションのないネットワークにおいては、所与のＶＦに連続的に付与されたＶＭが同じＬＩＤを得る。
【００７３】
一実施形態に従うと、動的ＬＩＤ割当てアーキテクチャを用いたｖＳｗｉｔｃｈは、いくらかの追加のネットワークおよびランタイムＳＭオーバーヘッドを犠牲にして、予めポピュレートされたＬＩＤアーキテクチャモデルを用いたｖＳｗｉｔｃｈの欠点を解決することができる。ＶＭが作成されるたびに、作成されたＶＭに関連付けられた、新しく追加されたＬＩＤで、サブネットにおける物理スイッチのＬＦＴを更新することができる。この動作のために、１スイッチごとに１つのサブネット管理パケット（ＳＭＰ）が送信される必要がある。各々のＶＭがそのホストハイパーバイザと同じ経路を用いているので、ＬＭＣのような機能も利用できなくなる。しかしながら、すべてのハイパーバイザに存在するＶＦの合計に対する制限はなく、ＶＦの数は、ユニキャストＬＩＤの限度を上回る可能性もある。このような場合、当然、アクティブなＶＭ上でＶＦのすべてが必ずしも同時に付与されることが可能になるわけではなく、より多くの予備のハイパーバイザおよびＶＦを備えることにより、ユニキャストＬＩＤ限度付近で動作する際に、断片化されたネットワークの障害を回復および最適化させるための融通性が追加される。
【００７４】
インフィニバンドＳＲ−ＩＯＶアーキテクチャモデル−動的ＬＩＤ割当てがなされかつＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈ
図７は、一実施形態に従った、動的ＬＩＤ割当てがなされてＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈを備えた例示的なｖＳｗｉｔｃｈアーキテクチャを示す。図に示されるように、いくつかのスイッチ５０１〜５０４は、ネットワーク切替環境５００（たとえばＩＢサブネット）内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックはホストチャネルアダプタ５１０、５２０、５３０などのいくつかのハードウェアデバイスを含み得る。ホストチャネルアダプタ５１０、５２０および５３０は、それぞれ、さらに、ハイパーバイザ５１１、５２１および５３１と対話することができる。各々のハイパーバイザは、さらに、ホストチャネルアダプタと共に、いくつかの仮想機能５１４、５１５、５１６、５２４、５２５、５２６、５３４、５３５および５３６と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン１  ５５０は、ハイパーバイザ５１１によって仮想機能１  ５１４に割当てることができることができる。ハイパーバイザ５１１は、加えて、仮想マシン２  ５５１を仮想機能２  ５１５に割当てることができる。ハイパーバイザ５２１は、仮想マシン３  ５５２を仮想機能３  ５２６に割当てることができる。ハイパーバイザ５３１は、さらに、仮想マシン４  ５５３を仮想機能２  ５３５に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上における十分な機能を有する物理機能５１３、５２３および５３３を介してホストチャネルアダプタにアクセスすることができる。
【００７５】
一実施形態に従うと、スイッチ５０１〜５０４の各々はいくつかのポート（図示せず）を含み得る。これらいくつかのポートは、ネットワーク切替環境７００内においてトラフィックを方向付けるために線形のフォワーディングテーブルを設定するのに用いられる。
【００７６】
一実施形態に従うと、仮想スイッチ５１２、５２２および５３２は、それぞれのハイパーバイザ５１１、５２１、５３１によって処理することができる。このようなｖＳｗｉｔｃｈアーキテクチャにおいては、各々の仮想機能は、完全な仮想ホストチャネルアダプタ（ｖＨＣＡ）であり、これは、ハードウェアにおいて、ＶＦに割当てられたＶＭに、ＩＢアドレス一式（たとえばＧＩＤ、ＧＵＩＤ、ＬＩＤ）および専用のＱＰスペースが割当てられていることを意味する。残りのネットワークおよびＳＭ（図示せず）については、ＨＣＡ５１０、５２０および５３０は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
【００７７】
一実施形態に従うと、本開示は、動的ＬＩＤ割当てがなされＬＩＤが予めポピュレートされたハイブリッドｖＳｗｉｔｃｈアーキテクチャを提供するためのシステムおよび方法を提供する。図７を参照すると、ハイパーバイザ５１１には、予めポピュレートされたＬＩＤアーキテクチャを用いたｖＳｗｉｔｃｈが配置され得るとともに、ハイパーバイザ５２１には、ＬＩＤが予めポピュレートされて動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈが配置され得る。ハイパーバイザ５３１には、動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈが配置され得る。このため、物理機能５１３および仮想機能５１４〜５１６には、それらのＬＩＤが予めポピュレートされている（すなわち、アクティブな仮想マシンに付与されていない仮想機能であってもＬＩＤが割当てられている）。物理機能５２３および仮想機能１  ５２４にはそれらのＬＩＤが予めポピュレートされ得るとともに、仮想機能２  ５２５および仮想機能３  ５２６にはそれらのＬＩＤが動的に割当てられている（すなわち、仮想機能２  ５２５は動的ＬＩＤ割当てのために利用可能であり、仮想機能３  ５２６は、仮想マシン３  ５５２が付与されているので、１１というＬＩＤが動的に割当てられている）。最後に、ハイパーバイザ３  ５３１に関連付けられた機能（物理機能および仮想機能）にはそれらのＬＩＤを動的に割当てることができる。これにより、結果として、仮想機能１  ５３４および仮想機能３  ５３６が動的ＬＩＤ割当てのために利用可能となるとともに、仮想機能２  ５３５には、仮想マシン４  ５５３が付与されているので、９というＬＩＤが動的に割当てられている。
【００７８】
ＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈおよび動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈがともに（いずれかの所与のハイパーバイザ内で独立して、または組合わされて）利用されている、図７に示されるような一実施形態に従うと、ホストチャネルアダプタごとの予めポピュレートされたＬＩＤの数はファブリックアドミニストレータによって定義することができ、（ホストチャネルアダプタごとに）０＜＝予めポピュレートされたＶＦ＜＝総ＶＦの範囲内になり得る。動的ＬＩＤ割当てのために利用可能なＶＦは、（ホストチャネルアダプタごとに）ＶＦの総数から予めポピュレートされたＶＦの数を減じることによって見出すことができる。
【００７９】
一実施形態に従うと、多くの同様の物理的なホストチャネルアダプタが２つ以上のポートを有することができ（冗長性のために２つのポートが共用となっている）、仮想ＨＣＡも２つのポートで表わされ、１つまたは２つ以上の仮想スイッチを介して外部ＩＢサブネットに接続され得る。
【００８０】
高速ハイブリッド再構成
一実施形態に従うと、高性能コンピューティング（High Performance Computing：ＨＰＣ）クラスタは、何千ものノードおよび何百万ものコアから成る大規模並列システムである。従来より、このようなシステムは科学学界に関連があり、複雑で高粒度の演算を実行するのに用いることができる。しかしながら、クラウドコンピューティングパラダイムおよびビッグデータ・アナリティクスが出現したことで、コンピュータ科学学会は、ＨＰＣおよびビッグデータの集約がなされるであろうこと、クラウドが、関連するサービスをより広範囲の視聴対象者に対して提供するための手段になりつつあることに同意する傾向がある。大型の従来のＨＰＣクラスタは、通常、多様に広がっているユーザ間で共有される環境であるが予測可能なワークロードである。しかしながら、クラウドおよびよりダイナミックなプリペイド型モデルの影響を受けた場合、システムのワークロードおよび利用は予測不可能になる可能性があり、これにより、ランタイム中に性能を最適化する必要が生じる可能性がある。
【００８１】
一実施形態に従うと、性能を向上させるために調整および再構成することができるコンポーネントのうちの１つとして、基礎的な相互接続ネットワークが挙げられる。相互接続ネットワークは、ノード間に通信が集中するせいで、大規模な並列アーキテクチャにおいて重要な部分を成している。そのため、典型的には、無損失の層２フロー制御を採用する高性能ネットワーク技術が非常に優れた性能を提供するので、この高性能ネットワーク技術が用いられている。しかしながら、この性能は複雑度および管理コストを増すことによって得られるものであり、ネットワークの再構成が難易度の高いものになる可能性がある。無損失ネットワークにおいてはパケットが欠落することがないので、ルーティング機能によってループの形成が可能になれば、デッドロックが発生する可能性がある。サブネットマネージャ（Subnet Manager：ＳＭ）ソフトウェアはネットワークを管理することに関わっている。タスクの中でも、このＳＭは、ネットワークにおけるノード間においてデッドロックのない通信パス（経路）を計算して、対応する線形のフォワーディングテーブル（Linear Forwarding Table：ＬＦＴ）をスイッチに分配する役割を果たしている。再構成が必要になった場合、ＳＭは、デッドロックのないルートの新しいセットを再計算する。しかしながら、移行段階中に新しいＬＦＴを分配すると、新しいルーティング機能Ｒｎｅｗが古いルーティング機能Ｒｏｌｄと共存することになる。ＲｏｌｄおよびＲｎｅｗはともにデッドロックがないが、これらを組合わせるとそうならない可能性もある。さらに、パス演算は、再構成のうちよりコストのかかる段階であるとともに、トポロジーおよび選択されたルーティング機能次第では最大で数分かかる可能性もある。これにより、再構成が重大な障害が発生しない限り回避されるべき過度な動作に変えられてしまうような障害物が導入される可能性がある。障害が発生した場合、性能の低下を犠牲にして、デッドロックのない接続性を迅速に回復させるために、再構成が最小限に維持される。
【００８２】
一実施形態に従うと、システムおよび方法は、大規模な無損失ネットワークにおいて性能駆動型の再構成を提供することができる。ハイブリッド再構成方式は、ネットワークのうちさまざまな下位区分を選択するためのさまざまなルーティングアルゴリズムを用いた高速の部分的ネットワーク再構成を可能にし得る。部分的な再構成は、初期の全体構成よりも桁違いに高速であり得るので、無損失ネットワークにおける性能駆動型の再構成を検討することが可能となり得る。提案されているメカニズムは、大型のＨＰＣシステムおよびクラウドが、隔離されたタスクを実行する複数のテナント（たとえば、さまざまなパーティション上のさまざまなテナント）によって共有されるという点を利用している。このようなシナリオにおいては、テナント間の相互通信が不可能となり、このため、ワークロード展開および配置スケジューラは、効率的なリソース利用を確実にするためにフラグメンテーションを回避しようと試みるはずである。すなわち、テナント当たりのトラフィックの大部分をネットワークのうち集約された下位区分内に含めることができる。ＳＭは、全体的な性能を向上させるためにいくつかの下位区分を再構成することができる。ＳＭは、ファットツリートポロジーおよびファットツリールーティングアルゴリズムを用いることができる。このようなハイブリッド再構成方式は、ネットワークを再構成するために提供されるノード順序付けを用いるカスタムのファットツリールーティングアルゴリズムを用いることによって、サブツリー内の性能をうまく再構成および向上させることができる。ＳＭがネットワーク全体を再構成することを所望する場合、ＳＭは、デフォルトのファットツリールーティングアルゴリズムを用いて、単一のサブネットにおけるさまざまな使用事例のための２つの異なるルーティングアルゴリズムの組合せを効果的に発揮することができる。
【００８３】
一実施形態に従うと、ファットツリールーティングアルゴリズム（ＦＴｒｅｅ）はファットツリートポロジーのためのトポロジー認識型ルーティングアルゴリズムである。ＦＴｒｅｅが初めにネットワークトポロジーを発見し、各々のスイッチには、トポロジーにおけるその位置を識別するタプルで印が付けられている。各々のタプルは、（ｌ，ａｈ，...，ａ１）の形式の値のベクトルであり、この場合、「ｌ」はスイッチが位置するレベルを表わしている。さらに、「ａｈ」は、最上位のサブツリー内におけるスイッチインデックスを表わしており、「ａ１」がその第１のサブツリーなどの内部におけるサブツリーのインデックスを表わすようになるまで再帰的に数字「ａｈ−１」を表わしている。ｎレベルのファットツリーの場合、ルートレベル（最上位またはコア）のスイッチはレベルｌ＝０に位置するものの、リーフスイッチ（この場合、そこにノードが接続されている）はレベルｌ＝ｎ−１に位置する。一例としての２−ａｒｙ−４−ｔｒｅｅについてのタプル割当てが図８に示される。
【００８４】
図８は、一実施形態に従ったスイッチタプルを示す。より具体的には、この図は、一例であるファットツリー、ＸＧＦＴ（４；２，２，２，２；２，２，２，１）について実現された、ＯｐｅｎＳＭのファットツリールーティングアルゴリズムによって割当てられたものとしてスイッチタプルを示している。ファットツリー８００は、スイッチ８０１〜８０８、８１１〜８１８、９２１〜１４２８、および８３１〜８３８を含み得る。ファットツリーが（リーフレベルで行３になるまで、ルートレベルで行０として印が付けられている）ｎ＝４スイッチレベルを有しているので、ファットツリーは、ｍ＝２つの第１レベルのサブツリーで構成されており、この場合、各々は、ｎ′＝ｎ−１＝３スイッチレベルである。これは、レベル１からレベル３までのスイッチを囲む破線によって規定されている２つのボックスによって図中に示されており、第１レベルのサブツリーは０または１の識別子を受取る。それらの第１レベルのサブツリーの各々は、ｍ２＝２つの第２レベルのサブツリーで構成されており、この場合、リーフスイッチの上では、各々、ｎ″＝ｎ′―１＝２のスイッチレベルとなっている。これは、レベル２からレベル３までのスイッチを囲む点線によって規定されている４つのボックスによって図中に示されており、第２レベルのサブツリーは各々、０または１の識別子を受取る。同様に、リーフスイッチの各々もサブツリーと見なすことができ、鎖線によって規定された８つのボックスによって図中に示されており、これらのサブツリーの各々は０または１の識別子を受取る。
【００８５】
一実施形態に従うと、図に例示されるように、４つの数字のタプルなどのタプルをさまざまなスイッチに割当てることができ、タプルの各々の数字は、タプルにおける各々の値の位置についての特定のサブツリー対応関係を示している。たとえば、スイッチ８１４（スイッチ１＿３と称され得る）には、レベル１におけるその位置と０番目の第１レベルのサブツリーとを表わしているタプル１．０．１．１を割当てることができる。
【００８６】
一実施形態に従うと、一旦タプルが割当てられると、ＦＴｒｅｅは、昇順のタプル順序で各々のリーフスイッチを繰返し、ノードが昇順のポート順序で接続されている下向きの各スイッチポートの場合、アルゴリズムは、それらのＬＩＤに基づいて、選択されたノードをルーティングする。図９〜図１３は、一実施形態に従ってノードがどのようにルーティングされるかについてのさまざまな段階を示している。
【００８７】
図９は、一実施形態に従った、ノードルーティングの段階についてのシステムを示す。図におけるスイッチ９０１〜９１２は１〜１２までの数字で印が付けられている。各々のスイッチは複数のポート（図示せず）を含み得る。たとえば、各々のスイッチは３２個のポート（下向きの１６個および上向きの１６個）を含み得る。スイッチ１、２、３、４の各々も２つ以上のノードにリンクさせることができ、たとえば、ノードＡ９２０およびノードＢ９２１をスイッチ１にリンクさせ、ノードＣ９２２およびノードＤ９２３をスイッチ２にリンクさせ、ノードＥ９２４およびノードＦ９２５をスイッチ３にリンクさせ、かつ、ノードＧ９２６およびノードＨ９２７をスイッチ４にリンクさせることができる。ＦＴｒｅｅは、ルート同士のバランスを取るためにポート使用カウンタを維持しているとともに、下向きのルートを選択しつつロード量の最も少ないポートからファブリックを上方向に横断することを開始する。図に示されるように、最初の繰返し時には、すべてのポートカウンタはゼロであるため、第１の利用可能な上向きのポートが選択される。レベルが上がるごとに、新しく到達したスイッチ、この場合スイッチ５  ９０５が、到達したスイッチが経由した入力ポートからルーティングされたノード（ノードＡ９２０）に向かってトラフィック全体を下方向にルーティングするためのスイッチとして選択される。図中の破線は、ノードＡに割当てられたルートを表わしている。
【００８８】
図１０は、一実施形態に従った、ノードルーティングの段階についてのシステムを示す。図中のスイッチ９０１〜９１２は１〜１２までの数字で印が付けられている。各々のスイッチは複数のポート（図示せず）を含み得る。たとえば、各々のスイッチは３２個のポート（下向きの１６個および上向きの１６個）を含み得る。スイッチ１、２、３、４の各々も、２つ以上のノードにリンクさせることができ、たとえば、ノードＡ９２０およびノードＢ９２１をスイッチ１にリンクさせ、ノードＣ９２２およびノードＤ９２３をスイッチ２にリンクさせ、ノードＥ９２４およびノードＦ９２５をスイッチ３にリンクさせ、かつ、ノードＧ９２６およびノードＨ９２７をスイッチ４にリンクさせることができる。ＦＴｒｅｅは、図９に示されるルーティングステップの後、ファブリックを下方向に横断し、ルートを同様の態様でスイッチに向かって上方向に割当てる。これは、図においては、スイッチ５からスイッチ２に向かうとともにルーティングアルゴリズムを表わしている長い矢印として示されている。次いで、ルート割当てが、スイッチ２からスイッチ５に向かって上向きに進められる。図中の破線はノードＡに割当てられたルートを表わしている。
【００８９】
図１１は、一実施形態に従った、ノードルーティングの段階についてのシステムを示す。図中のスイッチ９０１〜９１２は１〜１２までの数字で印が付けられている。各々のスイッチは複数のポート（図示せず）を含み得る。たとえば、各々のスイッチは３２個のポート（下向きの１６個および上向きの１６個）を含み得る。スイッチ１、２、３、４の各々も、２つ以上のノードにリンクさせることができ、たとえば、ノードＡ９２０およびノードＢ９２１をスイッチ１にリンクさせ、ノードＣ９２２およびノードＤ９２３をスイッチ２にリンクさせ、ノードＥ９２４およびノードＦ９２５をスイッチ３にリンクさせ、かつ、ノードＧ９２６およびノードＨ９２７をスイッチ４にリンクさせることができる。図９および図１０に記載されているのと同じまたは同様の再帰的な動作は、選択されたノードのためのルートエントリがファブリックにおける必要なスイッチのすべてに追加されるまで続けられる。図１１に示されるように、上向きに昇っていく動作によって下降するルートが示されている。ＦＴｒｅｅメカニズムがツリーを（スイッチ５からスイッチ９まで）上向きに横断するのに応じて、ルートがスイッチ９とスイッチ５との間でノードＡに割当てられる（下向きのルート）。
【００９０】
図１２は、一実施形態に従った、ノードルーティングの段階についてのシステムを示す。図中のスイッチ９０１〜９１２は１〜１２までの数字で印が付けられている。各々のスイッチは複数のポート（図示せず）を含み得る。たとえば、各々のスイッチは３２個のポート（下向きの１６個および上向きの１６個）を含み得る。スイッチ１、２、３、４の各々も、２つ以上のノードにリンクさせることができ、たとえば、ノードＡ９２０およびノードＢ９２１をスイッチ１にリンクさせ、ノードＣ９２２およびノードＤ９２３をスイッチ２にリンクさせ、ノードＥ９２４およびノードＦ９２５をスイッチ３にリンクさせ、かつ、ノードＧ９２６およびノードＨ９２７をスイッチ４にリンクさせることができる。図９、図１０および図１１に記載されているのと同じまたは同様の再帰的な動作は、選択されたノードのためのルートエントリがファブリックにおける必要なスイッチのすべてに追加されるまで続けられる。図１２に示されるように、下向きに下降する動作によって上昇するルートがスイッチ９とスイッチ７との間に存在し、下向きに下降する動作によって上に昇っていく２つのルートが実行され、一方のルートがスイッチ７とスイッチ３との間に存在し、もう一方のルートがスイッチ７とスイッチ４との間に存在している。図中の破線は、ノードＡに割当てられたルートを表わしている。この時点で、すべてのノードからノードＡまでのルートがシステムにおいて規定されている。このような動作は、すべてのノードのすべてのルートが計算されてしまうまで、ポートカウンタを維持しながら、システムにおける各ノードごとに繰返すことができる。
【００９１】
ノードＡに向かうルーティングが完了していても、ノードＡに向かうルートのないブランクのスイッチ（スイッチ６、８、１０、１１、１２）がいくつか存在していることに留意されたい。実際には、ＦＴｒｅｅはこれらのブランクのスイッチにおいてもルートを追加することができる。ノードＡに向かうパケットがたとえばスイッチ１２に到達した場合、このスイッチは、それが、受取ったパケットをスイッチ６に向かって下方向に転送しなければならないことを認識している一方で、スイッチ６は、スイッチ１２から受取ったパケットをその宛先Ａを到達させるためにスイッチ１に転送しなければならないことを認識している。しかしながら、より低いレベルのスイッチは、ノードＡに向かうトラフィックをスイッチ１２に転送することはないだろう。なぜなら、上向きのルートが常にパケットをスイッチ９に向かって押し進めることになるからである。宛先ノードカウンタ毎に１つのルートスイッチを用いることにより、幅広い輻輳ツリーの成長が阻止されることに留意されたい。
【００９２】
一実施形態に従うと、高速ハイブリッド再構成方法は、ＨＰＣシステムおよびクラウド環境が、隔離されたタスクを実行する複数のテナントによって共有されている（すなわち、テナント間の相互通信が許可されていない）という概念に基づき得る。より適切なリソース利用を実現するために、ワークロード展開または仮想マシン配置スケジューラは、リソースのフラグメンテーションを可能な限り回避しようと試みる。結果として、テナントごとのワークロードは、不必要なネットワークトラフィックおよびクロステナントのネットワーク干渉を回避するために、物理ネットワーク接続に対して近傍にある物理的マシン上にマッピングされる。２レベルよりも高いレベルのファットツリートポロジーの場合、これは、マルチレベル・ファットツリーのサブツリー内にテナントごとのトラフィックを含めることができることを意味している。
【００９３】
図１３は、一実施形態に従った、２レベルよりも高いレベルを有するファットツリートポロジーを含むシステムを示す。いくつかのスイッチレベル（図示される実施形態においては３つのスイッチレベル）を有するファットツリートポロジーサブネット１３００内においては、サブツリー１３１０（この明細書中においてはサブ・サブネットとしても称される）を規定することができる。この場合、サブツリー１３１０内のトラフィックは全体が含まれている。すなわち、サブツリー１３１０内の（すなわち、エンドノードＡからエンドノードＰにわたるエンドノード１３２０間における）トラフィックは、トポロジーの残りの部分に流れ込んだり、この残りの部分から流れ出したりすることはない。一例として、エンドノード１３２０はすべて同じパーティションに属し得る（たとえば、１３２０におけるすべてのノードが共通のパーティションキー（Ｐ＿Ｋｅｙ）を共有している）。なお、図示されていないが、エンドノードの各々がホストチャネルアダプタ（ＨＣＡ）を介して交換網に接続され得ることに留意されたい。
【００９４】
一実施形態に従うと、高速ハイブリッド再構成方法は、部分的な再構成を適用して、内部のトラフィックパターンのみに基づいてサブ・サブネット内でローカルに最適化することができる。このような部分的な再構成を適用することによって、当該方法は、より少ないレベルを有するファットツリーとして再構成を有効に処理することができ、このため、パス演算および全体的な再構成のコストを下げることができる。実際には、性能駆動型の再構成は、共有された高度にダイナミックな環境においてさえも魅力的なものとなる。さらに、部分的な再構成を適用する場合、当該方法は、サブ・サブネット１３１０内のノードの転送エントリを変更するだけでよい。ファブリックをルーティングするために用いられる初期のルーティングアルゴリズムがＦＴｒｅｅまたはその同様のものであり、仮想レーンを用いることなく上向き／下向きルーティングの変形例を適用することによって確実にデッドロックが解消されると想定すると、当該方法は、所与のサブツリーを隔離されたものとして再ルーティングするために任意の最適なルーティングアルゴリズムを用いることができる（ハイブリッド再構成）。
【００９５】
一実施形態に従うと、一旦ファットツリーのサブツリーが再構成されれば、すべてのエンドノード間の接続は、再構成されたサブ・サブネットの外側にあるものであったとしても、依然として維持されている。これは、スイッチが、トラフィックをどの宛先に向けて転送すべきかを規定するＬＦＴを有しているからである。すなわち、すべてのスイッチＳは、他のノードが、Ｓを介してｘに向かうよう定められたパケットを実際に転送し得ない場合であっても、すべての宛先ｘごとに、ＬＦＴにおいて、有効な転送エントリを有している。たとえば、サブツリー内で選択された初期のルーティングの後、（ここではスイッチ５と称される）リーフスイッチよりも１レベル高いレベルにあるスイッチは、トラフィックをノードＡに向けて下方向にルーティングすることが選択されるとともに、スイッチ５と同じレベルにあるスイッチ６は、トラフィックをノードＢに向けてルーティングすることが選択されていた。サブツリーの再構成の後、スイッチ５は、このとき、トラフィックをノードＢに向けてルーティングするのに用いられ、スイッチ６は、ノードＡに向けてルーティングするのに用いられる。この場合、サブツリー内に位置するノードＥおよびノードＦがノードＡまたはノードＢに向けてトラフィックを送信する場合、新しく計算されたパスが用いられることとなり、トラフィックは全体がサブツリー内に残ることとなる。しかしながら、サブツリー（図示せず）の外側に位置するノードがトラフィックをノードＡおよびノードＢに送信する場合、古いパス（すなわち、それらのパスがサブツリーの外側にあるので再構成の一部とはならない）が用いられることとなり、ＡおよびＢに向かうトラフィックが、サブネット全体の元のルーティングによって指定されるスイッチにおけるサブツリーに入ることとなる。サブツリー外におけるこのような挙動は、潜在的には、たとえばサブツリー内部のロードバランシングに干渉することによって、サブツリー再構成の目的を妨害する可能性がある。しかしながら、（たとえば、サブツリーがパーティション全体を含む場合に）サブツリー境界を横断するトラフィックがほとんどなくなるようにまたは当該トラフィックが全くなくなるようにサブツリーが構成されている場合、このような干渉はほんの些細な問題となる。
【００９６】
一実施形態に従うと、部分的な再構成を適用するために、当該方法は、初めに、再構成されなければならないサブツリーにあるすべてのノードおよびスイッチを選択し得る。当該方法は、どのサブツリーを再構成するべきであるかを選択するためにスイッチタプルを用いることができる。部分的な再構成の場合、当該方法は、サブツリーにあり再構成される必要のあるすべてのノードおよびスイッチを選択することができる。サブツリーにおけるすべてのノードを選択して検討する必要がある。サブツリーにおけるすべてのエンティティの選択プロセスは以下のステップで行うことができる。
【００９７】
１）アドミニストレータ（またはファブリック利用を監視する自動化されたソリューション）は、再構成に関与するはずであるノードのリストを提供する。
【００９８】
２）ステップ１からのノードのリーフスイッチのタプル同士が比較されて、共通の先祖サブツリーが選択される。
【００９９】
３）ステップ２において選択されたサブツリーに属するすべてのスイッチには再構成のために印が付けられることとなる。
【０１００】
４）ステップ３におけるスイッチのリストから、リーフスイッチが選ばれて、選ばれたリーフスイッチに接続されたすべてのノードが、再構成プロセスに関与することとなる。
【０１０１】
５）最後に、ルーティングアルゴリズムは、ステップ４において選択されたノードについてのみルートの新しいセットを計算し、ステップ３において選択されたスイッチに対してのみＬＦＴを分配しなければならない。
【０１０２】
一実施形態に従うと、ファットツリーのような多段式スイッチトポロジーにおいては、有効なバイセクション帯域幅は、通常、さまざまなトラフィックパターンに対しては、理論上のバイセクション帯域幅未満となる。これは、どのノード対が通信のために選択されたかに応じて、上向き方向に共有されるリンクが存在する可能性があるからである。一例が図１４に示される。
【０１０３】
図１４は、一実施形態に従った、高速ハイブリッド再構成のためのシステムを示す。いくつかのスイッチレベル（図示された実施形態においては３つのスイッチレベル）を有するファットツリートポロジーサブネット１４００内では、サブ・サブネット１４１０内のトラフィック全体が含まれているサブツリー１４１０を規定することができる。すなわち、サブ・サブネット１４１０内の（すなわち、エンドノードＡからエンドノードＰにわたるエンドノード１４２０間における）トラフィックは、トポロジーの残りの部分に流れ込んだり、この残りの部分から流れ出したりすることはない。一例として、エンドノード１４２０はすべて、同じパーティションに属し得る。
【０１０４】
図に示されるように、エンドノード１４２０（エンドノードＡ〜Ｐ）は、ＦＴｒｅｅルーティングアルゴリズムでグローバルにルーティングされた３レベルのファットツリーの（１４１０として示される）２レベルのサブツリー内において通信することができる。図示された実施形態においては、ルーティング方法、すなわちＦＴｒｅｅは、ノードＡ、Ｅ、ＩおよびＭに向かって下方向にルーティングするためにスイッチ５を選択し、ノードＢ、Ｆ、ＪおよびＮに向かって下方向にルーティングするためにスイッチ６を選択し、ノードＣ、Ｇ、ＫおよびＯに向かって下方向にルーティングするためにスイッチ７を選択し、ノードＤ、Ｈ、ＬおよびＰに向かって下方向にルーティングするためにスイッチ８を選択していた。このサブツリーは理論上のフルバイセクション帯域幅を有しているが、ノードＢ、ＣおよびＤがノードＥ、ＩおよびＭのそれぞれにトラフィックを送信している図示される通信パターンでの有効なバイセクション帯域幅は、フル帯域幅の１／３である。これは、すべての宛先ノードが第２のレベルにある同じスイッチ（スイッチ５）を介してルーティングされているとともに、スイッチ１とスイッチ５とを接続する太い破線のリンクが３つのすべての流れによって共有されており、トラフィックに関する障害になるからである。しかしながら、リンクの共有を回避してフル帯域幅を提供するのに十分な空のリンクが存在している。ポート順序に基づいた同じルーティング順序になるとは限らないフレキシブルな再構成を可能にするために、高速ハイブリッド再構成方式は、ファットツリールーティングメカニズム（ＮｏＦＴｒｅｅとも称され得る）を用いることができる。このファットツリールーティングメカニズムは、ユーザによって定義されたノード順序付けを用いて、ファットツリーネットワークをルーティングするものである。これにより向上をもたらすことができる。１ノード当たりの受信トラフィックを決定するための単純な方法として、ＩＢポートカウンタを読取ることが挙げられる。これにより、アドミニストレータは、テナントによって実行されるジョブについての詳細に精通している必要がなくなる。
【０１０５】
一実施形態に従うと、ＮｏＦＴｒｅｅは、高速ハイブリッド再構成方式のコンテキストにおいて用いることができ、スイッチおよびノードが上述のとおり選択された後、サブツリーをルーティングする。当該方式は以下のステップに従い得る。
【０１０６】
１）ルーティングされるべきノードについての順序付けされたリストは、ユーザまたは監視ソリューションによって提供される。
【０１０７】
２）ＮｏＦＴｒｅｅは、リーフスイッチ毎にノードに再度順序付けをする。次いで、順序付けられたノードの各々は、所与のリーフスイッチにおいてルーティングされるべきリーフｓｗ＋１スロット当たりｎ％の最大ノードに配置される。この場合、ｎは、ノードについての再順序付けされたリストにおけるノードの全体位置である。
【０１０８】
３）各々のリーフスイッチに接続されているが提供されたノード順序付けリスト内には存在しない残りのノードは、ノードが接続されるポート順序に基づいて、残りのリーフスイッチルーティングスロットを埋めている。ポートの順序付けがユーザによって提供されていない場合、ＮｏＦＴｒｅｅはＦＴｒｅｅルーティングアルゴリズムとして機能することができる。
【０１０９】
４）ＮｏＦＴｒｅｅは再び各々のリーフスイッチを繰返し、先のステップ全体を経て構築されたノード順序に基づいて各々のノードをルーティングする。
【０１１０】
図１５は、一実施形態に従った、高速ハイブリッド再構成のためのシステムを示す。いくつかのスイッチレベル（図示される実施形態においては３つのスイッチレベル）を有するファットツリートポロジーサブネット１５００内において、サブ・サブネット１５１０内のトラフィック全体が含まれているサブツリー１５１０を規定することができる。すなわち、サブ・サブネット１５１０内の（すなわち、エンドノードＡからエンドノードＰにわたるエンドノード１５２０間における）トラフィックは、トポロジーの残りの部分に流れ込んだり、この残りの部分から流れ出したりすることはない。一例として、エンドノード１５２０はすべて、同じパーティションに属し得る。
【０１１１】
図に示されるように、エンドノード１５２０（エンドノードＡ〜Ｐ）は、ＦＴｒｅｅルーティングアルゴリズムでグローバルにルーティングされた３レベルのファットツリーの（１５１０として示される）２レベルのサブツリー内において通信することができる。図示される実施形態においては、ルーティング方法では、ＮｏＦＴｒｅｅは、供給された／受取られたノード順序Ｅ、Ｉ、Ｍを用いて図１５のサブツリーを再構成しており、ノードＡ、Ｅ、ＪおよびＮに向かって下方向にルーティングするためにスイッチ５を選択し、ノードＢ、Ｆ、ＩおよびＯに向かって下方向にルーティングするためにスイッチ６を選択し、ノードＣ、Ｇ、ＫおよびＭに向かって下方向にルーティングするためにスイッチ７を選択し、ノードＤ、Ｈ、ＬおよびＰに向かって下方向にルーティングするためにスイッチ８を選択している。
【０１１２】
この場合、ＮｏＦＴｒｅｅが再構成のために用いている供給された／受取られたノード順序はＥ、Ｉ、Ｍである。リーフスイッチ１からのノードがノード順序付けでは規定されていないので、スイッチ１に接続されたノードはポート順序に基づいてルーティングされる。ノードＥは、全体的なノード順序付けにおける第１のノードであるとともに、リーフスイッチ２において順序付けされるべき第１のノードであるので、ノードＥはスイッチ２においてルーティングされる（スイッチ５から下方向にルーティングされる）べき第１のノードになる。リーフスイッチ２上のノードの残り（ノードＦ、Ｇ、Ｈ）は、ポート順序に従ってルーティングされる。次いで、当該メカニズムは、第３のリーフスイッチ（スイッチ３）へと進み、ここで、提供された／受取られたノード順序付けからノードＩが接続される。ノードＩは、提供された／受取られたノード順序付けにおける第２のノードであるとともにスイッチ３において順序付けられるべき第１のノードであるので、ノードＩは、スイッチ３においてルーティングされる（スイッチ６から下方向にルーティングされる）べき第２のノードとなる。スイッチ４に接続されたノードは同じ態様でルーティングされる。残りのルーティングが、上述され図示されるように行なわれる。このシナリオにおいては、３００％の性能向上を達成することができる。なぜなら、ノードＢ、ＣおよびＤからノードＥ、ＩおよびＭに流れ込むトラフィックと共有される上向きのリンクがもはや存在しないからである。
【０１１３】
図１６は、一実施形態に従った、高性能コンピューティング環境における高速ハイブリッド再構成をサポートするための例示的な方法を示すフローチャートである。
【０１１４】
ステップ１６１０において、当該方法は、１つ以上のマイクロプロセッサにおいて第１のサブネットを提供し得る。第１のサブネットは複数のスイッチを含み、複数のスイッチは少なくともリーフスイッチを含み、複数のスイッチの各々は、複数のスイッチポートと、各々が少なくとも１つのホストチャネルアダプタポートを含む複数のホストチャネルアダプタと、複数のエンドノードとを含む。複数のエンドノードの各々は、複数のホストチャネルアダプタのうち少なくとも１つのホストチャネルアダプタに関連付けられている。
【０１１５】
ステップ１６２０において、当該方法は、複数のレベルを有するネットワークアーキテクチャにおいて第１のサブネットのうちの複数のスイッチを配置し得る。複数のレベルの各々は複数のスイッチのうち少なくとも１つのスイッチを含む。
【０１１６】
ステップ１６３０において、当該方法は、第１の構成方法に従って複数のスイッチを構成し得る。第１の構成方法は、複数のエンドノードについての第１の順序付けに関連付けられている。
【０１１７】
ステップ１６４０において、当該方法は、複数のスイッチのサブセットを第１のサブネットのサブ・サブネットとして構成し得る。第１のサブネットのサブ・サブネットは第１のサブネットの複数のレベルよりも少ないいくつかのレベルを含む。
【０１１８】
ステップ１６５０において、当該方法は、第２の構成方法に従って第１のサブネットのサブ・サブネットを再構成し得る。
【０１１９】
本発明のさまざまな実施形態を上述してきたが、これら実施形態が限定ではなく例示として提示されていることが理解されるべきである。これら実施形態は本発明の原理およびその実用化を説明するために選択され記載されている。これら実施形態は、新しい特徴および／もしくは改善された特徴を提供することによって、ならびに／または、リソース利用の低減、容量の増加、効率の向上および待ち時間の低下などの利点を提供することによって、システムおよび方法の性能を向上させるために本発明が利用されているシステムおよび方法を例示している。
【０１２０】
いくつかの実施形態においては、本発明の特徴は、全体的または部分的に、プロセッサ、メモリなどの記憶媒体、および他のコンピュータと通信するためのネットワークカードを含むコンピュータにおいて実現される。いくつかの実施形態においては、本発明の特徴は、コンピュータの１つ以上のクラスタがローカルエリアネットワーク（Local Area Network：ＬＡＮ）、スイッチファブリックネットワーク（たとえば、インフィニバンド）、またはワイドエリアネットワーク（Wide Area Network：ＷＡＮ）などのネットワークによって接続されている分散コンピューティング環境において実現される。分散コンピューティング環境は、一箇所においてすべてのコンピュータを有していてもよく、または、ＷＡＮによって接続されているさまざまな遠隔地理位置においてコンピュータのクラスタを有していてもよい。
【０１２１】
いくつかの実施形態においては、本発明の特徴は、全体的または部分的に、ウェブ技術を用いたセルフサービスの調整された態様でユーザに送達される共有型で融通性のあるリソースに基づいて、クラウド・コンピューティング・システムの一部またはサービスとしてクラウドにおいて実現される。（米国標準技術局（National Institute of Standards and Technology）よって定義される）クラウドの５つの特徴がある。すなわち、オン・デマンドのセルフサービス、広域ネットワークアクセス、リソースプール化、高速伸縮性、およびメジャードサービスである。たとえば、この明細書中に引用によって援用されている「クラウドコンピューティングのＮＩＳＴ定義（The NIST Definition of Cloud Computing）」（特殊出版（Special Publication）８００〜１４５（２０１１））を参照されたい。クラウド展開モデルは、パブリック、プライベートおよびハイブリッドを含む。クラウドサービスモデルは、ソフトウェア・アズ・ア・サービス（Software as a Service：ＳａａＳ）、プラットフォーム・アズ・ア・サービス（Platform as a Service：ＰａａＳ）、データベース・アズ・ア・サービス（Database as a Service：ＤＢａａＳ）およびインフラストラクチャ・アズ・ア・サービス（Infrastructure as a Service：ＩａａＳ）を含む。この明細書中に用いられているように、クラウドは、セルフサービスの調整された態様で、共有される融通性のあるリソースをユーザに対して配信する、ハードウェア技術とソフトウェア技術とネットワーク技術とウェブ技術とを組合せたものである。特に既定のない限り、クラウドは、この明細書中において用いられているとおり、パブリッククラウド、プライベートクラウドおよびハイブリッドクラウドの実施形態を包含しており、すべてのクラウド展開モデルは、クラウドＳａａＳ、クラウドＤＢａａＳ、クラウドＰａａＳおよびクラウドＩａａＳを含むもののこれらに限定されない。
【０１２２】
いくつかの実施形態においては、本発明の特徴が、ハードウェア、ソフトウェア、ファームウェアまたはそれらの組合せを用いて、またはそれらの組合せの助けを借りて実現される。いくつかの実施形態においては、本発明の特徴は、本発明の１つ以上の機能を実行するように構成されたかまたはプログラムされたプロセッサを用いて実現される。プロセッサは、いくつかの実施形態においては、シングルプロセッサもしくはマルチチッププロセッサ、デジタル信号プロセッサ（digital signal processor：ＤＳＰ）、システム・オン・ア・チップ（system on a chip：ＳＯＣ）、特定用途向け集積回路（application specific integrated circuit：ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（field programmable gate array：ＦＰＧＡ）もしくは他のプログラマブルロジックデバイス、ステートマシン、離散的なゲートもしくはトランジスタ論理、離散的なハードウェアコンポーネント、または、この明細書中に記載される機能を実行するように設計されたそれらのいずれかの組合せである。いくつかの実現例においては、本発明の特徴が、所与の機能に特有の回路類によって実現され得る。他の実現例においては、これらの特徴は、たとえば、コンピュータ読取り可能記憶媒体上に格納された命令を用いて特定の機能を実行するように構成されたプロセッサにおいて実現され得る。
【０１２３】
いくつかの実施形態においては、本発明の特徴は、処理システムおよび／またはネットワーキングシステムのハードウェアを制御するために、かつ、プロセッサおよび／またはネットワークが本発明の特徴を利用する他のシステムと対話することを可能にするために、ソフトウェアおよび／またはファームウェアに組込まれている。このようなソフトウェアまたはファームウェアは、アプリケーションコード、デバイスドライバ、オペレーティングシステム、仮想マシン、ハイパーバイザ、アプリケーションプログラムインターフェイス、プログラミング言語、および実行環境／コンテナを含み得るがこれらに限定されない。適切なソフトウェアコーディングは、ソフトウェア技術に精通した当業者にとって明らかになるように、熟練したプログラマであれば本開示の教示に基づいて容易に準備することができる。
【０１２４】
いくつかの実施形態においては、本発明は、命令が格納されている記憶媒体またはコンピュータ読取り可能媒体であるコンピュータプログラムプロダクトを含む。これらの命令は、本発明のプロセスまたは機能のいずれかを実行するようにコンピュータなどのシステムをプログラムするかまたは他の場合には構成するのに用いることができる。記憶媒体またはコンピュータ読取り可能媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および磁気光ディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気もしくは光カード、（分子メモリＩＣを含む）ナノシステムを含む任意のタイプのディスク、ならびに、命令および／もしくはデータを格納するのに適した任意のタイプの媒体もしくは装置、を含み得るが、これらには限定されない。特定の実施形態においては、記憶媒体またはコンピュータ読取り可能媒体は、非一時的な記憶媒体または非一時的なコンピュータ読取り可能媒体である。
【０１２５】
上述の記載は、網羅的となるよう意図されたものではなく、または、本発明を開示されたとおりの形態に限定するように意図されたものではない。加えて、本発明の実施形態が特定の一連のトランザクションおよびステップを用いて記載されてきたが、本発明の範囲が上述の一連のトランザクションおよびステップに限定されないことが当業者にとって明らかとなるはずである。さらに、本発明の実施形態がハードウェアとソフトウェアとの特定の組合わせを用いて記載されてきたが、ハードウェアとソフトウェアとの他の組合せが本発明の範囲内であることも認識されるはずである。さらに、さまざまな実施形態が本発明の特徴の特定の組合せを記載しているが、当業者にとっては、一実施形態の特徴が別の実施形態に組込まれ得るようにこれらの特徴のさまざまな組合せが本発明の範囲内にあるものとして明らかになるであろうことが理解されるはずである。さらに、本発明の精神および範囲から逸脱することなく、形態、詳細、実施および適用のさまざまな追加、削減、削除、変形および他の変更がなされ得ることが当業者にとって明らかになるだろう。本発明のより広範な精神および範囲が、添付の特許請求の範囲およびその同等例によって規定されることが意図されている。
【図１】
2019526943.tif 000003
【図２】
2019526943.tif 000004
【図３】
2019526943.tif 000005
【図４】
2019526943.tif 000006
【図５】
2019526943.tif 000007
【図６】
2019526943.tif 000008
【図７】
2019526943.tif 000009
【図８】
2019526943.tif 000010
【図９】
2019526943.tif 000011
【図１０】
2019526943.tif 000012
【図１１】
2019526943.tif 000013
【図１２】
2019526943.tif 000014
【図１３】
2019526943.tif 000015
【図１４】
2019526943.tif 000016
【図１５】
2019526943.tif 000017
【図１６】
2019526943.tif 000018
【国際調査報告】
2019526943.tif 000019
2019526943.tif 000020
2019526943.tif 000021