(57)【特許請求の範囲】
【請求項１】
ネットワークアーキテクチャのサブネットにおいて仮想マシンのライブマイグレーションをサポートするためのシステムであって、
１つ以上のマイクロプロセッサと、
１つ以上のスイッチとを含み、前記１つ以上のスイッチは少なくともリーフスイッチを含み、前記１つ以上のスイッチの各々は複数のポートと、線形のフォワーディングテーブルとを含み、
各スイッチの前記線形のフォワーディングテーブルは、特定の宛先のローカル識別子を含む流入サブネットトトラフィックを転送するための特定のポートを指定し、前記システムはさらに、
第１のホストチャネルアダプタと、第２のホストチャネルアダプタとを含み、前記第１および第２のホストチャネルアダプタの各々は少なくとも１つの仮想機能を含み、前記第１および第２のホストチャネルアダプタは前記１つ以上のスイッチを介して相互接続され、前記システムはさらに、
第１のハイパーバイザと、第２のハイパーバイザとを含み、前記第１のハイパーバイザは、前記第１のホストチャネルアダプタに関連付けられ、前記第２のハイパーバイザは、前記第２のホストチャネルアダプタに関連付けられ、前記システムはさらに、
前記第１のハイパーバイザ上で動作する仮想マシンを含み、前記仮想マシンは、ローカル識別子（ＬＩＤ）および前記第１のホストチャネルアダプタの前記仮想機能に関連付けられ、
前記第１のハイパーバイザ上で動作している、前記仮想マシンは、前記第２のホストチャネルアダプタに関連付けられた前記第２のハイパーバイザへのライブマイグレーションを実行するように動作し、
前記ライブマイグレーションは、前記１つ以上のスイッチの少なくとも１つに、サブネット管理パケット（ＳＭＰ）を送信するように、前記１つ以上のマイクロプロセッサを構成し、
前記サブネット管理パケットは、前記少なくとも１つのスイッチに、前記仮想マシンに関連付けられたＬＩＤを含む前記線形のフォワーディングテーブル内の複数の宛先ローカル識別子（ＬＩＤｓ）のブロックを更新するように指示し、
前記ブロックの前記更新は、前記仮想マシンに関連付けられた前記ＬＩＤを宛先ＬＩＤ
として特定する流入サブネットトトラフィックを転送するための前記特定のポートを変更することを含む、システム。
【請求項２】
前記第１および第２のホストチャネルアダプタの各々は物理機能を含み、前記物理機能はＬＩＤに関連付けられている、請求項１に記載のシステム。
【請求項３】
前記第１のハイパーバイザおよび前記第２のハイパーバイザの各々は、前記第１および第２のホストチャネルアダプタの各々の物理機能を通じて、前記第１のホストチャネルアダプタおよび前記第２のホストチャネルアダプタの各々にアクセスするように構成される、請求項２に記載のシステム。
【請求項４】
前記第１および第２のホストチャネルアダプタの各々に、予めポピュレートされたＬＩＤアーキテクチャを用いた仮想スイッチの各々が配置され、
前記仮想マシンが前記第１のハイパーバイザから前記第２のハイパーバイザへのライブマイグレーションを実行するように動作した後、前記システムは、マイグレートされた前記仮想マシンに関連付けられたＬＩＤを更新するために、前記第１のハイパーバイザに第１のサブネット管理パケットを送信し、かつ前記第２のハイパーバイザに第２のサブネット管理パケットを送信するように構成され、
２つのサブネット管理パケットのうち大きい方のＬＩＤを含むサブネット管理パケットが前記少なくとも１つのスイッチに送信されて、前記少なくとも１つのスイッチに前記線形のフォワーディングテーブルを更新するように指示する、請求項１から３のいずれか１項に記載のシステム。
【請求項５】
２つのサブネット管理パケットのうち前記大きい方のＬＩＤを含むサブネット管理パケットが前記少なくとも１つのスイッチに送信されて、前記少なくとも１つのスイッチに前記線形のフォワーディングテーブルを更新するように指示する、請求項４に記載のシステム。
【請求項６】
前記仮想マシンが前記第１のハイパーバイザから前記第２のハイパーバイザへのライブマイグレーションを実行するように動作した後、前記システムが、前記少なくとも１つのスイッチのサブセットに、前記線形のフォワーディングテーブルを更新するように指示するように構成される、請求項４または５に記載のシステム。
【請求項７】
前記仮想マシンが前記第１のハイパーバイザから前記第２のハイパーバイザへのライブマイグレーションを実行するように動作した後、前記システムが、前記サブネットの再ルーティングが不要であると判断するように構成される、請求項１から６のいずれか１項に記載のシステム。
【請求項８】
前記サブネットはインフィニバンドサブネットを含む、請求項１から７のいずれか１項に記載のシステム。
【請求項９】
ネットワークアーキテクチャのサブネットにおいて仮想マシンのライブマイグレーションをサポートするための方法であって、
１つ以上のマイクロプロセッサを含む１つ以上のコンピュータにおいて、１つ以上のスイッチ、第１のホストチャネルアダプタ、第２のホストチャネルアダプタ、第１のハイパーバイザ、第２のハイパーバイザ、および仮想マシンを設けるステップを含み、
前記１つ以上のスイッチは少なくともリーフスイッチを含み、前記１つ以上のスイッチの各々は複数のポートと、線形のフォワーディングテーブルとを含み、
各スイッチの前記線形のフォワーディングテーブルは、特定の宛先のローカル識別子を含む流入サブネットトトラフィックを転送するための特定のポートを指定し、
前記第１のホストチャネルアダプタおよび前記第２のホストチャネルアダプタの各々が少なくとも１つの仮想機能を含み、前記第１および第２のホストチャネルアダプタの各々が前記１つ以上のスイッチを介して相互接続され、
前記第１のハイパーバイザは、前記第１のホストチャネルアダプタに関連付けられ、前記第２のハイパーバイザは、前記第２のホストチャネルアダプタに関連付けられ、
前記第１のハイパーバイザ上で動作する前記仮想マシンが、ローカル識別子（ＬＩＤ）および前記第１のホストチャネルアダプタの前記仮想機能に関連付けられ、前記方法はさらに、
前記第１のハイパーバイザ上で動作する前記仮想マシンを、前記第２のホストチャネルアダプタに関連付けられた前記第２のハイパーバイザにライブマイグレートするステップとを含み、
前記ライブマイグレーションは、前記１つ以上のマイクロプロセッサに、前記１つ以上のスイッチの少なくとも１つにサブネット管理パケット（ＳＭＰ）を送信する処理をさらに実行させ、
前記サブネット管理パケットは、前記少なくとも１つのスイッチに、前記仮想マシンに関連付けられたＬＩＤを含む前記線形のフォワーディングテーブル内の複数の宛先ローカル識別子（ＬＩＤｓ）のブロックを更新するように指示し、
前記ブロックの前記更新は、前記仮想マシンに関連付けられた前記ＬＩＤを宛先ＬＩＤとして特定する流入サブネットトトラフィックを転送するための特定のポートを変更することを含む、方法。
【請求項１０】
前記第１および第２のホストチャネルアダプタの各々に、予めポピュレートされたＬＩＤアーキテクチャを用いた仮想スイッチの各々が配置され、前記方法はさらに、
前記仮想マシンが前記第１のハイパーバイザから前記第２のハイパーバイザへとライブマイグレートした後、マイグレートされた前記仮想マシンに関連付けられたＬＩＤを更新するために、前記第１のハイパーバイザに第１のサブネット管理パケットを送信し、前記第２のハイパーバイザに第２のサブネット管理パケットを送信するステップと、
２つのサブネット管理パケットのうち大きい方のＬＩＤを含むサブネット管理パケットを前記少なくとも１つのスイッチに送信して、前記少なくとも１つのスイッチに前記線形のフォワーディングテーブルを更新するように指示するステップとを含む、請求項９に記載の方法。
【請求項１１】
前記仮想マシンが前記第１のハイパーバイザから前記第２のハイパーバイザへとライブマイグレートした後、前記少なくとも１つのスイッチのサブセットに、前記線形のフォワーディングテーブルを更新するように指示するステップをさらに含む、請求項１０に記載の方法。
【請求項１２】
前記仮想マシンが前記第１のハイパーバイザから前記第２のハイパーバイザへとライブマイグレートした後、前記サブネットの再ルーティングが不要であると判断するステップをさらに含む、請求項９から１１のいずれか１項に記載の方法。
【請求項１３】
命令を格納するコンピュータプログラムであって、前記命令は、１つ以上のコンピュータによって読み取られて実行されると、前記１つ以上のコンピュータに請求項９から１２のいずれか１項に記載の方法を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示：
この特許文献の開示の一部は、著作権保護の対象となる資料を含む。この特許文献または特許開示は特許商標庁の特許ファイルまたは記録に記載されているため、著作権保有者は、何人によるその複写複製に対しても異議はないが、その他の場合には如何なるときもすべての著作権を保有する。
【０００２】
発明の分野：
本発明は、概して、コンピュータシステムに関し、特に、ＳＲ−ＩＯＶ  ｖＳｗｉｔｃｈアーキテクチャを用いるコンピュータシステム仮想化およびライブマイグレーションをサポートすることに関する。
【背景技術】
【０００３】
背景：
導入されるクラウドコンピューティングアーキテクチャがより大規模になるのに応じて、従来のネットワークおよびストレージに関する性能および管理の障害が深刻な問題になってきている。クラウドコンピューティングファブリックのための基礎としてインフィニバンド（登録商標）（InfiniBand：ＩＢ）技術を用いることへの関心がますます高まってきている。これは、本発明の実施形態が対応するように意図された一般領域である。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要：
サブネットにおいて仮想マシンマイグレーションをサポートするためのシステムおよび方法がこの明細書中に記載される。例示的な方法は、１つ以上のマイクロプロセッサを含む１つ以上のコンピュータにおいて、１つ以上のスイッチを設けることができ、当該１つ以上のスイッチは少なくともリーフスイッチを含み、当該１つ以上のスイッチの各々は複数のポートを含み、当該方法はさらに、当該１つ以上のスイッチを介して相互接続される複数のホストチャネルアダプタと、複数のハイパーバイザとを設けることができる。当該複数のハイパーバイザの各々は当該複数のホストチャネルアダプタのうちの１つに関連付けられている。当該方法はさらに、複数の仮想マシンを設けることができる。当該方法はさらに、予めポピュレートされたローカル識別子（local identifier：ＬＩＤ）アーキテクチャを用いた仮想スイッチ、または動的ＬＩＤ割当てアーキテクチャを用いた仮想スイッチのうち１つ以上を有する複数のホストチャネルアダプタを配置することができる。当該方法は、加えて、当該複数のハイパーバイザのうち第１のハイパーバイザ上で動作する、当該複数の仮想マシンのうち第１の仮想マシンを、当該複数のハイパーバイザのうち第２のハイパーバイザにライブマイグレートすることができる。当該第１のハイパーバイザは、当該複数のホストチャネルアダプタのうち第１のホストチャネルアダプタに関連付けられ、当該第２のハイパーバイザは、当該複数のホストチャネルアダプタのうち第２のホストチャネルアダプタに関連付けられる。
【図面の簡単な説明】
【０００５】
【図１】一実施形態に従ったインフィニバンド環境の一例を示す図である。
【図２】一実施形態に従った、ネットワーク環境におけるツリートポロジーの一例を示す図である。
【図３】一実施形態に従った例示的な共有ポートアーキテクチャを示す図である。
【図４】一実施形態に従った例示的なｖＳｗｉｔｃｈアーキテクチャを示す図である。
【図５】一実施形態に従った、ＬＩＤが予めポピュレートされた例示的なｖＳｗｉｔｃｈアーキテクチャを示す図である。
【図６】一実施形態に従った、動的ＬＩＤ割当てがなされた例示的なｖＳｗｉｔｃｈアーキテクチャを示す図である。
【図７】一実施形態に従った、動的ＬＩＤ割当てがなされかつＬＩＤが予めポピュレートされているｖＳｗｉｔｃｈを備えた例示的なｖＳｗｉｔｃｈアーキテクチャを示す図である。
【図８】一実施形態に従った、仮想マシンマイグレーション前の、ＬＩＤが予めポピュレートされた例示的なｖＳｗｉｔｃｈアーキテクチャを示す図である。
【図９】一実施形態に従った、仮想マシンマイグレーション後の、ＬＩＤが予めポピュレートされた例示的なｖＳｗｉｔｃｈアーキテクチャを示す図である。
【図１０】一実施形態に従った、潜在的な仮想マシンマイグレーション経路を備えた、ＬＩＤが予めポピュレートされた例示的なｖＳｗｉｔｃｈアーキテクチャを示す図である。
【図１１】一実施形態に従った、サブネットにおいて仮想マシンマイグレーションをサポートするための方法を示すフローチャートである。
【発明を実施するための形態】
【０００６】
詳細な説明：
本発明は、同様の参照番号が同様の要素を指している添付図面の図において、限定のためではなく例示のために説明されている。なお、この開示における「ある」または「１つの」または「いくつかの」実施形態への参照は必ずしも同じ実施形態に対するものではなく、そのような参照は少なくとも１つを意味する。特定の実現例が説明されるが、これらの特定の実現例が例示的な目的のためにのみ提供されることが理解される。当業者であれば、他の構成要素および構成が、この発明の範囲および精神から逸脱することなく使用され得ることを認識するであろう。
【０００７】
図面および詳細な説明全体にわたって同様の要素を示すために、共通の参照番号が使用され得る。したがって、ある図で使用される参照番号は、要素が別のところで説明される場合、そのような図に特有の詳細な説明において参照される場合もあり、または参照されない場合もある。
【０００８】
ネットワークにおける仮想マシン（virtual machine：ＶＭ）マイグレーションをサポートすることができるシステムおよび方法がこの明細書中に記載される。
【０００９】
この発明の以下の説明は、高性能ネットワークについての一例として、インフィニバンド（ＩＢ）ネットワークを使用する。他のタイプの高性能ネットワークが何ら限定されることなく使用され得ることが、当業者には明らかであるだろう。以下の説明ではまた、ファブリックトポロジーについての一例として、ファットツリートポロジーを使用する。他のタイプのファブリックトポロジーが何ら限定されることなく使用され得ることが当業者には明らかであるだろう。
【００１０】
本発明の一実施形態に従うと、仮想化は、クラウドコンピューティングにおける効率的なリソース利用および融通性のあるリソース割当てに有益であり得る。ライブマイグレーションは、アプリケーションにトランスペアレントな態様で物理サーバ間で仮想マシン（ＶＭ）を移動させることによってリソース使用を最適化することを可能にする。このため、仮想化は、ライブマイグレーションによる統合、リソースのオン・デマンド・プロビジョニングおよび融通性を可能にし得る。
【００１１】
インフィニバンド（登録商標）
インフィニバンド（ＩＢ）は、インフィニバンド・トレード・アソシエーション（InfiniBandTM Trade 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：ＬＭＣライク）な特徴を用いることを可能にする。ＶＭをマイグレートしてその関連するＬＩＤを宛先に送達する必要がある場合、不連続なＬＩＤを自由に使用できることは特に有用となる。
【００６１】
一実施形態に従うと、ＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈアーキテクチャについての上述の利点と共に、いくつかの検討事項を考慮に入れることができる。たとえば、ネットワークがブートされているときに、ＳＲ−ＩＯＶ  ｖＳｗｉｔｃｈ対応のサブネットにおいてＬＩＤが予めポピュレートされているので、（たとえば起動時の）最初の経路計算はＬＩＤが予めポピュレートされていなかった場合よりも時間が長くかかる可能性がある。
【００６２】
インフィニバンドＳＲ−ＩＯＶアーキテクチャモデル−動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈ
一実施形態に従うと、本開示は、動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈアーキテクチャを提供するためのシステムおよび方法を提供する。
【００６３】
図６は、一実施形態に従った、動的ＬＩＤ割当てがなされた例示的なｖＳｗｉｔｃｈアーキテクチャを示す。図に示されるように、いくつかのスイッチ５０１〜５０４は、ネットワーク切替環境６００（たとえばＩＢサブネット）内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックは、ホストチャネルアダプタ５１０、５２０、５３０などのいくつかのハードウェアデバイスを含み得る。ホストチャネルアダプタ５１０、５２０および５３０は、さらに、ハイパーバイザ５１１、５２１および５３１とそれぞれ対話することができる。各々のハイパーバイザは、さらに、ホストチャネルアダプタと共に、いくつかの仮想機能５１４、５１５、５１６、５２４、５２５、５２６、５３４、５３５および５３６と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン１  ５５０はハイパーバイザ５１１によって仮想機能１  ５１４に割当てることができる。ハイパーバイザ５１１は、加えて、仮想マシン２  ５５１を仮想機能２  ５１５に割当て、仮想マシン３  ５５２を仮想機能３  ５１６に割当てることができる。ハイパーバイザ５３１はさらに、仮想マシン４  ５５３を仮想機能１  ５３４に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上における十分な機能を有する物理機能５１３、５２３および５３３を介してホストチャネルアダプタにアクセスすることができる。
【００６４】
一実施形態に従うと、スイッチ５０１〜５０４の各々はいくつかのポート（図示せず）を含み得る。いくつかのポートは、ネットワーク切替環境６００内においてトラフィックを方向付けるために線形のフォワーディングテーブルを設定するのに用いられる。
【００６５】
一実施形態に従うと、仮想スイッチ５１２、５２２および５３２は、それぞれのハイパーバイザ５１１、５２１および５３１によって処理することができる。このようなｖＳｗｉｔｃｈアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ（ｖＨＣＡ）であり、これは、ハードウェアにおいて、ＶＦに割当てられたＶＭに、ＩＢアドレス一式（たとえばＧＩＤ、ＧＵＩＤ、ＬＩＤ）および専用のＱＰスペースが割当てられていることを意味する。残りのネットワークおよびＳＭ（図示せず）については、ＨＣＡ５１０、５２０および５３０は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
【００６６】
一実施形態に従うと、本開示は、動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈアーキテクチャを提供するためのシステムおよび方法を提供する。図６を参照すると、ＬＩＤには、さまざまな物理機能５１３、５２３および５３３が動的に割当てられており、物理機能５１３がＬＩＤ１を受取り、物理機能５２３がＬＩＤ２を受取り、物理機能５３３がＬＩＤ３を受取る。アクティブな仮想マシンに関連付けられたそれらの仮想機能はまた、動的に割当てられたＬＩＤを受取ることもできる。たとえば、仮想マシン１  ５５０がアクティブであり、仮想機能１  ５１４に関連付けられているので、仮想機能５１４にはＬＩＤ５が割当てられ得る。同様に、仮想機能２  ５１５、仮想機能３  ５１６および仮想機能１  ５３４は、各々、アクティブな仮想機能に関連付けられている。このため、これらの仮想機能にＬＩＤが割当てられ、ＬＩＤ７が仮想機能２  ５１５に割当てられ、ＬＩＤ１１が仮想機能３  ５１６に割当てられ、仮想機能９が仮想機能１  ５３５に割当てられている。ＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈとは異なり、アクティブな仮想マシンにその時点で関連付けられていない仮想機能はＬＩＤの割当てを受けない。
【００６７】
一実施形態に従うと、動的ＬＩＤ割当てがなされていれば、最初の経路計算を実質的に減らすことができる。ネットワークが初めてブートしており、ＶＭが存在していない場合、比較的少数のＬＩＤを最初の経路計算およびＬＦＴ分配のために用いることができる。
【００６８】
一実施形態に従うと、多くの同様の物理的なホストチャネルアダプタが２つ以上のポートを有することができ（冗長性のために２つのポートが共用となっている）、仮想ＨＣＡも２つのポートで表わされ、１つまたは２つ以上の仮想スイッチを介して外部ＩＢサブネットに接続され得る。
【００６９】
一実施形態に従うと、動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈを利用するシステムにおいて新しいＶＭが作成される場合、どのハイパーバイザ上で新しく追加されたＶＭをブートすべきであるかを決定するために、自由なＶＭスロットが発見され、固有の未使用のユニキャストＬＩＤも同様に発見される。しかしながら、新しく追加されたＬＩＤを処理するためのスイッチのＬＦＴおよびネットワークに既知の経路が存在しない。新しく追加されたＶＭを処理するために新しいセットの経路を計算することは、いくつかのＶＭが毎分ごとにブートされ得る動的な環境においては望ましくない。大規模なＩＢサブネットにおいては、新しい１セットのルートの計算には数分かかる可能性があり、この手順は、新しいＶＭがブートされるたびに繰返されなければならないだろう。
【００７０】
有利には、一実施形態に従うと、ハイパーバイザにおけるすべてのＶＦがＰＦと同じアップリンクを共有しているので、新しいセットのルートを計算する必要はない。ネットワークにおけるすべての物理スイッチのＬＦＴを繰返し、（ＶＭが作成されている）ハイパーバイザのＰＦに属するＬＩＤエントリから新しく追加されたＬＩＤにフォワーディングポートをコピーし、かつ、特定のスイッチの対応するＬＦＴブロックを更新するために単一のＳＭＰを送信するだけでよい。これにより、当該システムおよび方法では、新しいセットのルートを計算する必要がなくなる。動的ＬＩＤ割当てをサポートするｖＳｗｉｔｃｈのシステムおよび方法のさらなる詳細が、引用によりこの明細書中に援用されている添付物Ａに記載されている。
【００７１】
一実施形態に従うと、動的ＬＩＤ割当てアーキテクチャを用いたｖＳｗｉｔｃｈにおいて割当てられたＬＩＤは連続的ある必要はない。各々のハイパーバイザ上のＶＭ上で割当てられたＬＩＤをＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈと動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈとで比較すると、動的ＬＩＤ割当てアーキテクチャにおいて割当てられたＬＩＤが不連続であり、そこに予めポピュレートされたＬＩＤが本質的に連続的であることが分かるだろう。さらに、ｖＳｗｉｔｃｈ動的ＬＩＤ割当てアーキテクチャにおいては、新しいＶＭが作成されると、次に利用可能なＬＩＤが、ＶＭの生存期間の間中ずっと用いられる。逆に、ＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈにおいては、各々のＶＭは、対応するＶＦに既に割当てられているＬＩＤを引継ぎ、ライブマイグレーションのないネットワークにおいては、所与のＶＦに連続的に付与されたＶＭが同じＬＩＤを得る。
【００７２】
一実施形態に従うと、動的ＬＩＤ割当てアーキテクチャを用いたｖＳｗｉｔｃｈは、いくらかの追加のネットワークおよびランタイムＳＭオーバーヘッドを犠牲にして、予めポピュレートされたＬＩＤアーキテクチャモデルを用いたｖＳｗｉｔｃｈの欠点を解決することができる。ＶＭが作成されるたびに、作成されたＶＭに関連付けられた、新しく追加されたＬＩＤで、サブネットにおける物理スイッチのＬＦＴを更新することができる。この動作のために、１スイッチごとに１つのサブネット管理パケット（ＳＭＰ）が送信される必要がある。各々のＶＭがそのホストハイパーバイザと同じ経路を用いているので、ＬＭＣのような機能も利用できなくなる。しかしながら、すべてのハイパーバイザに存在するＶＦの合計に対する制限はなく、ＶＦの数は、ユニキャストＬＩＤの限度を上回る可能性もある。このような場合、当然、アクティブなＶＭ上でＶＦのすべてが必ずしも同時に付与されることが可能になるわけではなく、より多くの予備のハイパーバイザおよびＶＦを備えることにより、ユニキャストＬＩＤ限度付近で動作する際に、断片化されたネットワークの障害を回復および最適化させるための融通性が追加される。
【００７３】
インフィニバンドＳＲ−ＩＯＶアーキテクチャモデル−動的ＬＩＤ割当てがなされかつＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈ
図７は、一実施形態に従った、動的ＬＩＤ割当てがなされてＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈを備えた例示的なｖＳｗｉｔｃｈアーキテクチャを示す。図に示されるように、いくつかのスイッチ５０１〜５０４は、ネットワーク切替環境５００（たとえばＩＢサブネット）内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックはホストチャネルアダプタ５１０、５２０、５３０などのいくつかのハードウェアデバイスを含み得る。ホストチャネルアダプタ５１０、５２０および５３０は、それぞれ、さらに、ハイパーバイザ５１１、５２１および５３１と対話することができる。各々のハイパーバイザは、さらに、ホストチャネルアダプタと共に、いくつかの仮想機能５１４、５１５、５１６、５２４、５２５、５２６、５３４、５３５および５３６と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン１  ５５０は、ハイパーバイザ５１１によって仮想機能１  ５１４に割当てることができることができる。ハイパーバイザ５１１は、加えて、仮想マシン２  ５５１を仮想機能２  ５１５に割当てることができる。ハイパーバイザ５２１は、仮想マシン３  ５５２を仮想機能３  ５２６に割当てることができる。ハイパーバイザ５３１は、さらに、仮想マシン４  ５５３を仮想機能２  ５３５に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上における十分な機能を有する物理機能５１３、５２３および５３３を介してホストチャネルアダプタにアクセスすることができる。
【００７４】
一実施形態に従うと、スイッチ５０１〜５０４の各々はいくつかのポート（図示せず）を含み得る。これらいくつかのポートは、ネットワーク切替環境７００内においてトラフィックを方向付けるために線形のフォワーディングテーブルを設定するのに用いられる。
【００７５】
一実施形態に従うと、仮想スイッチ５１２、５２２および５３２は、それぞれのハイパーバイザ５１１、５２１、５３１によって処理することができる。このようなｖＳｗｉｔｃｈアーキテクチャにおいては、各々の仮想機能は、完全な仮想ホストチャネルアダプタ（ｖＨＣＡ）であり、これは、ハードウェアにおいて、ＶＦに割当てられたＶＭに、ＩＢアドレス一式（たとえばＧＩＤ、ＧＵＩＤ、ＬＩＤ）および専用のＱＰスペースが割当てられていることを意味する。残りのネットワークおよびＳＭ（図示せず）については、ＨＣＡ５１０、５２０および５３０は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
【００７６】
一実施形態に従うと、本開示は、動的ＬＩＤ割当てがなされＬＩＤが予めポピュレートされたハイブリッドｖＳｗｉｔｃｈアーキテクチャを提供するためのシステムおよび方法を提供する。図７を参照すると、ハイパーバイザ５１１には、予めポピュレートされたＬＩＤアーキテクチャを用いたｖＳｗｉｔｃｈが配置され得るとともに、ハイパーバイザ５２１には、ＬＩＤが予めポピュレートされて動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈが配置され得る。ハイパーバイザ５３１には、動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈが配置され得る。このため、物理機能５１３および仮想機能５１４〜５１６には、それらのＬＩＤが予めポピュレートされている（すなわち、アクティブな仮想マシンに付与されていない仮想機能であってもＬＩＤが割当てられている）。物理機能５２３および仮想機能１  ５２４にはそれらのＬＩＤが予めポピュレートされ得るとともに、仮想機能２  ５２５および仮想機能３  ５２６にはそれらのＬＩＤが動的に割当てられている（すなわち、仮想機能２  ５２５は動的ＬＩＤ割当てのために利用可能であり、仮想機能３  ５２６は、仮想マシン３  ５５２が付与されているので、１１というＬＩＤが動的に割当てられている）。最後に、ハイパーバイザ３  ５３１に関連付けられた機能（物理機能および仮想機能）にはそれらのＬＩＤを動的に割当てることができる。これにより、結果として、仮想機能１  ５３４および仮想機能３  ５３６が動的ＬＩＤ割当てのために利用可能となるとともに、仮想機能２  ５３５には、仮想マシン４  ５５３が付与されているので、９というＬＩＤが動的に割当てられている。
【００７７】
ＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈおよび動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈがともに（いずれかの所与のハイパーバイザ内で独立して、または組合わされて）利用されている、図７に示されるような一実施形態に従うと、ホストチャネルアダプタごとの予めポピュレートされたＬＩＤの数はファブリックアドミニストレータによって定義することができ、（ホストチャネルアダプタごとに）０＜＝予めポピュレートされたＶＦ＜＝総ＶＦの範囲内になり得る。動的ＬＩＤ割当てのために利用可能なＶＦは、（ホストチャネルアダプタごとに）ＶＦの総数から予めポピュレートされたＶＦの数を減じることによって見出すことができる。
【００７８】
一実施形態に従うと、多くの同様の物理的なホストチャネルアダプタが２つ以上のポートを有することができ（冗長性のために２つのポートが共用となっている）、仮想ＨＣＡも２つのポートで表わされ、１つまたは２つ以上の仮想スイッチを介して外部ＩＢサブネットに接続され得る。
【００７９】
複数のｖＳｗｉｔｃｈを備えた動的な再構成
一実施形態に従うと、本開示は、複数のｖＳｗｉｔｃｈを備えた動的なネットワーク再構成のためのシステムおよび方法を提供する。動的なクラウド環境においては、ライブマイグレーションが処理可能であり、スケーラブルであり得る。ＶＭがマイグレートされ、そのアドレスを宛先に伝えなければならない場合、ネットワーク再構成が必要となる。基礎をなすＩＢルーティング（たとえば線形のフォワーディングテーブルおよびルート）に影響を及ぼさない高レベルのアドレスであるので、仮想またはエイリアスのＧＵＩＤ（virtual GUID：ｖＧＵＩＤ）と、結果的にＧＩＤとについてのマイグレーションはさほど負荷を及ぼすものではない。さらに、ｖＧＵＩＤのマイグレーションの場合、マイグレーションが完了したときに、入来するＶＭに関連付けられたｖＧＵＩＤをＶＭ上で割当てられるであろうＶＦに設定するために、ＳＭＰを宛先ハイパーバイザに送信しなければならない。しかしながら、ＬＩＤのマイグレーションはそれほど単純ではない。なぜなら、ルートを再計算しなければならず、物理スイッチのＬＦＴを再構成する必要があるからである。ルートおよび分配の再計算には、大規模なサブネット上で分のオーダで経過するかなり長い時間が必要がとなり、スケーラビリティについて問題をもたらす。
【００８０】
一実施形態に従うと、ｖＳｗｉｔｃｈは、ｖＳｗｉｔｃｈを介してアクセスされるすべてのＶＦがＰＦと同じアップリンクを共有する特性を有する。トポロジーに依存しない動的再構成メカニズムは、この特性を利用して、動的なマイグレーション環境上で再構成を実行可能にすることができる。ＬＩＤ再構成時間は、経路計算を排除し経路分配を減らすことによって最小限にすることができる。当該方法は、上述の２つのｖＳｗｉｔｃｈアーキテクチャ（ＬＩＤが予めポピュレートされ動的ＬＩＤ割当てがなされている）に関してわずかに異なっているが、基本的には同じである。
【００８１】
一実施形態に従うと、動的再構成方法は概して２つのステップを含む。すなわち、（ａ）関与するハイパーバイザにおいてＬＩＤを更新する：１つのサブネット管理パケット（ＳＭＰ）が、ライブマイグレーションに関与するハイパーバイザの各々に送信されて、これらハイパーバイザの各々に、適切なＬＩＤを対応するＶＦに設定するように／設定し直すように指示する；（ｂ）物理スイッチ上において線形のフォワーディングテーブル（ＬＦＴ）を更新する。２つのＳＭＰうち一方または大きい方が１つ以上のスイッチ上に送信され、これらに、対応するＬＦＴエントリを更新させて、マイグレートされた仮想マシンの新しい位置を反映させるようにする。これは、仮想マシンをマイグレートしてネットワークを再構成するための手順において、以下に、より具体的に記載される。
【００８２】
【数１】
0006763860.tif 000002
【００８３】
ＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈにおける再構成
図８は、一実施形態に従った、仮想マシンマイグレーション前における、ＬＩＤが予めポピュレートされた例示的なｖＳｗｉｔｃｈアーキテクチャを示す。図に示されるように、いくつかのスイッチ５０１〜５０４は、ネットワーク切替環境８００（たとえばＩＢサブネット）内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックは、ホストチャネルアダプタ５１０、５２０、５３０などのいくつかのハードウェアデバイスを含み得る。ホストチャネルアダプタ５１０、５２０および５３０は、それぞれ、さらにハイパーバイザ５１１、５２１および５３１と対話することができる。各々のハイパーバイザは、ホストチャネルアダプタと共に、いくつかの仮想機能５１４、５１５、５１６、５２４、５２５、５２６、５３４、５３５および５３６と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン１  ５５０はハイパーバイザ５１１によって仮想機能１  ５１４に割当てることができる。ハイパーバイザ５１１は、加えて、仮想マシン２  ５５１を仮想機能２  ５１５に割当てることができ、仮想マシン３  ５５２を仮想機能３  ５１６に割当てることができる。ハイパーバイザ５３１はさらに、仮想マシン４  ５５３を仮想機能１  ５３４に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上における十分な機能を有する物理機能５１３、５２３および５３３を介してホストチャネルアダプタにアクセスすることができる。
【００８４】
一実施形態に従うと、仮想スイッチ５１２、５２２および５３２は、それぞれのハイパーバイザ５１１、５２１、５３１によって処理することができる。このようなｖＳｗｉｔｃｈアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ（ｖＨＣＡ）であり、これは、ハードウェアにおいて、ＶＦに割当てられたＶＭに、ＩＢアドレス一式（たとえばＧＩＤ、ＧＵＩＤ、ＬＩＤ）および専用のＱＰスペースが割当てられていることを意味する。残りのネットワークおよびＳＭ（図示せず）については、ＨＣＡ５１０、５２０および５３０は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
【００８５】
一実施形態に従うと、スイッチ５０１〜５０４の各々はいくつかのポート（図示せず）を含み得る。いくつかのポートは、ネットワーク切替環境８００内においてトラフィックを方向付けるために、スイッチ５０１に関連付けられた線形のフォワーディングテーブル８１０などの線形のフォワーディングテーブルを設定するのに用いられる。図に示されるように、線形のフォワーディングテーブル８１０は、仮想マシン２  ５５１（すなわちＬＩＤ３）にアドレス指定されたトラフィックをスイッチ５０１のポート２を介して転送する。同様に、ＶＭが実行されていなくても経路がすべてのＬＩＤのために存在しているので、線形のフォワーディングテーブルはスイッチ５０１のポート４を介してＬＩＤ１２へのフォワーディング経路を定義することができる。
【００８６】
図９は、一実施形態に従った、仮想マシンマイグレーション後における、ＬＩＤが予めポピュレートされた例示的なｖＳｗｉｔｃｈアーキテクチャを示す。図に示されるように、いくつかのスイッチ５０１〜５０４は、ネットワーク切替環境９００（たとえばＩＢサブネット）内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックはホストチャネルアダプタ５１０、５２０、５３０などのいくつかのハードウェアデバイスを含み得る。ホストチャネルアダプタ５１０、５２０および５３０は、それぞれ、ハイパーバイザ５１１、５２１および５３１と対話することができる。各々のハイパーバイザは、ホストチャネルアダプタと共に、いくつかの仮想機能５１４、５１５、５１６、５２４、５２５、５２６、５３４、５３５および５３６と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン１  ５５０はハイパーバイザ５１１によって仮想機能１  ５１４に割当てることができる。ハイパーバイザ５１１は、加えて、仮想マシン２  ５５１を仮想機能２  ５１５に割当てることができ、仮想マシン３  ５５２を仮想機能３  ５１６に割当てることができる。ハイパーバイザ５３１はさらに、仮想マシン４  ５５３を仮想機能１  ５３４に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上における十分な機能を有する物理機能５１３、５２３および５３３を介してホストチャネルアダプタにアクセスすることができる。
【００８７】
一実施形態に従うと、仮想スイッチ５１２、５２２および５３２は、それぞれのハイパーバイザ５１１、５２１、５３１によって処理することができる。このようなｖＳｗｉｔｃｈアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ（ｖＨＣＡ）であり、これは、ハードウェアにおいて、ＶＦに割当てられたＶＭに、ＩＢアドレス一式（たとえばＧＩＤ、ＧＵＩＤ、ＬＩＤ）および専用のＱＰスペースが割当てられていることを意味する。残りのネットワークおよびＳＭ（図示せず）については、ＨＣＡ５１０、５２０および５３０は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
【００８８】
一実施形態に従うと、スイッチ５０１〜５０４の各々はいくつかのポート（図示せず）を含み得る。いくつかのポートは、ネットワーク切替環境９００内においてトラフィックを方向付けるために、スイッチ５０１に関連付けられた線形のフォワーディングテーブル９１０などの線形のフォワーディングテーブルを設定する際に用いられる。
【００８９】
一実施形態に従うと、仮想マシン２  ５５１をハイパーバイザ５１１からハイパーバイザ５３１にマイグレートする必要があり、かつ、ハイパーバイザ５３１上の仮想機能３  ５３６が利用可能である場合、仮想マシン２は仮想機能３  ５３６に付与することができる。このような状況では、ＬＩＤはスワップすることができる（すなわち、マイグレートしているＶＭに割当てられたＬＩＤのエントリは、ライブマイグレーションが完了した後、宛先ハイパーバイザにおいて用いられることになっているＶＦのＬＩＤとスワップすることができる）。スイッチ５０１上の線形のフォワーディングテーブル９１０は図示されるように更新することができる。すなわち、ＬＩＤ３へのトラフィックが、ここで、ポート４（それ以前にはポート２）を介して転送され、ＬＩＤ１２への経路が、ここで、ポート２（それ以前にはポート４）を介して転送される。
【００９０】
一実施形態に従うと、ＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈアーキテクチャの場合、ＶＭが実行されていなくても、経路はすべてのＬＩＤのために存在している。ＬＩＤをマイグレートして最初のルーティングの平衡度を維持するために、すべてのスイッチ上の２つのＬＦＴエントリがスワップされ得る。マイグレートしているＶＭに割当てられたＬＩＤのエントリが、ライブマイグレーションの完了後に、宛先ハイパーバイザにおいて用いられることとなるＶＦのＬＩＤとスワップされ得る（すなわち、マイグレートしている仮想マシンが宛先ハイパーバイザに付与する仮想機能）。図７および８を再び参照すると、ＬＩＤ２を備えたＶＭ１  ５５０をハイパーバイザ５５１からハイパーバイザ５３１へマイグレートする必要があり、かつ、ハイパーバイザ５３１上のＬＩＤ１２を備えたＶＦ３  ５３６が利用可能であり、マイグレートしている仮想マシン１  ５５１に付与されるべきであると決定された場合、スイッチ５０１のＬＦＴを更新することができる。マイグレーション前に、ＬＩＤ２がポート２を介して転送され、ＬＩＤ１２がポート４を介して転送された。マイグレーション後に、ＬＩＤ２がポート４を介して転送され、ＬＩＤ１２がポート２を介して転送される。この場合、この更新のためにＳＭＰを１つだけ送信する必要がある。なぜなら、ＬＦＴがブロックごとに６４個のＬＩＤのブロックで更新され、ＬＩＤ２およびＬＩＤ１２がともに、ＬＩＤ０からＬＩＤ６３を含む同じブロックの一部となるからである。逆に、ハイパーバイザ５３１上のＶＦ３のＬＩＤが６４以上であった場合、２つのＬＦＴブロックの更新が必要となり得るので、２つのＳＭＰが送信される必要があるだろう。２つのＬＦＴブロックとは、すなわち、ＬＩＤ２（ＶＭ  ＬＩＤ）を含むブロックと、６３よりも大きい、スワップされるべきＬＩＤを含むブロックとである。
【００９１】
動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈにおける再構成
一実施形態に従うと、動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈアーキテクチャの場合、ＶＦの経路は、ＶＭがその時点でホストされているハイパーバイザの対応するＰＦの経路と同じ経路を追従する。ＶＭが移動すると、システムは、宛先ハイパーバイザのＰＦに割当てられているＬＩＤを見出して、すべてのスイッチのＬＦＴをすべて繰返し、ＶＭ  ＬＩＤのための経路を宛先ハイパーバイザの経路で更新しなければならない。ＬＩＤが予めポピュレートされた再構成において用いられるＬＩＤスワッピング技術とは対照的に、ＳＭＰが１つだけ、更新される必要のあるスイッチに常に送信される必要がある。なぜなら、プロセスに関与するＬＩＤが１つしか存在しないからである。
【００９２】
再構成の従来のコスト
一実施形態に従うと、完全にネットワークを再構成する方法に必要な時間ＲＣｔは、式１に示されるように、経路計算のために必要な時間ＰＣｔとすべてのスイッチに対するＬＦＴ分配に必要な時間ＬＦＴＤｔとの合計である。
【００９３】
【数２】
0006763860.tif 000003
【００９４】
一実施形態に従うと、経路の計算の複雑さは、サブネットのサイズに合わせて多項式的に大きくなり、ＰＣｔは大規模なサブネット上においては数分のオーダとなる。
【００９５】
経路が計算された後、ＩＢサブネットなどのネットワークにおけるスイッチのＬＦＴを更新することができる。ＬＦＴ分配時間ＬＦＴＤｔは、サブネットのサイズおよびスイッチの量に応じて直線的に大きくなる。上述のとおり、ＬＦＴが６４個のＬＩＤのブロック上で更新され、このため、わずか数個のスイッチを備え最大６４個までのＬＩＤが消費される小規模なサブネットにおいては、経路分配中に各々のスイッチごとにＳＭＰを１つだけ送信する必要がある。４９１５１個のＬＩＤが消費された十分にポピュレートされたＩＢサブネットなどの他の状況においては、従来のモデルでは、１個のスイッチ毎に７６８個のＳＭＰが経路分配中に送信される必要がある。
【００９６】
ＳＭＰは、向きが定められたルーティング（directed routing）または宛先ベースのルーティングを用いることができる。向きが定められたルーティングを用いる場合、各々の中間スイッチは、その時点のホップポインタで、パケットのヘッダを処理して更新し、経路を逆転させてから、パケットを次のホップに転送しなければならない。宛先ベースのルーティングにおいては、各々のパケットが直ちに転送される。必然的に、向きが定められたルーティングにより、転送されたパケットに待ち時間を追加することができる。それにもかかわらず、向きが定められたルーティングは、ＯｐｅｎＳＭによって従来のすべてのＳＭＰのために用いられている。これは、ＬＦＴがまだスイッチに分配されていない場合、または、再構成が行なわれており、スイッチに向かうルートが変化している場合には、最初のトポロジー発見プロセスのために必要である。
【００９７】
ここで、ｎをネットワークにおけるいくつかのスイッチとすると、ｍは、各々のスイッチ上で更新されるであろうすべてのＬＦＴブロックの数であって、消費されたＬＩＤの数によって決定され、ｋは、各々のＳＭＰが各々のスイッチに達する前にネットワークを横断するのに必要とされる平均時間であり、ｒは、向きが定められたルーティングにより各々のＳＭＰのために追加された平均時間である。パイプライン化がないと想定すると、ＬＦＴ分配時間ＬＦＴＤｔは、式２においてさらに分解することができる：
【００９８】
【数３】
0006763860.tif 000004
【００９９】
式１と式２とを組合わせることにより、ネットワークを完全に再構成するために必要な時間についての結果である式３が得られる：
【０１００】
【数４】
0006763860.tif 000005
【０１０１】
大規模なサブネットにおいては、従来より、スイッチｍ個当たりより多くのＬＩＤと、結果としてより多くのＬＦＴブロックとが用いられる場合、かつ、より多くのスイッチｎがネットワークに存在している場合に、ＬＦＴＤｔがより大きくなったとしても、経路計算に必要な時間ＰＣｔはＬＦＴ分配に必要な時間ＬＦＴＤｔよりもはるかに大きくなる。式２および式３におけるｎ・ｍの部分は、再構成のために送信される必要のあるＳＭＰの総数を定義している。
【０１０２】
ｖＳｗｉｔｃｈアーキテクチャを用いたライブマイグレーションのための再構成コスト
従来の再構成技術を用いることによりＶＭマイグレーションが使用不可能になるだろう。大規模なサブネットにおいては、式３におけるＰＣｔが非常に大きくなり、ＲＣｔよりも優位となる。ライブマイグレーションが従来の完全な再構成をトリガした場合、これは完了するのに概して数分かかるだろう。
【０１０３】
一実施形態に従うと、ＬＩＤが予めポピュレートされたｖＳｗｉｔｃｈまたは動的ＬＩＤ割当てがなされたｖＳｗｉｔｃｈを利用することにより、再構成時間のＰＣｔ部分を本質的になくすことができる。なぜなら、各々のスイッチのＬＦＴにおけるＬＩＤエントリをスワップするかまたはコピーするために経路が既に計算されているからである。さらに、スイッチ１個当たりにｍ個のＳＭＰを送信する必要性がなくなる。なぜなら、ＶＭがマイグレートされると、ＬＦＴブロックの総数にかかわらず、提案されたｖＳｗｉｔｃｈスキームのうちのいずれが用いられるかに応じて、２つのＬＩＤうち１つだけまたは大きい方のＬＩＤだけが影響を受けるからである。結果として、各マイグレーションごとに、ｍ′∈｛１，２｝ＳＭＰだけがスイッチに送信される必要がある（ＬＩＤが予めポピュレートされている場合に２つのＬＩＤエントリが同じＬＦＴブロックに位置していなければ、ｍ′＝２となり、他の場合にはｍ′＝１となる）。同様に、０＜ｎ′＜ｎ個のスイッチが更新されなければならない場合もある。
【０１０４】
一実施形態に従うと、ここで、一実施形態に従った、潜在的な仮想マシンマイグレーション経路でＬＩＤが予めポピュレートされた例示的なｖＳｗｉｔｃｈアーキテクチャを示す図１０を参照する。図に示されるように、いくつかのスイッチ５０１〜５０４は、ネットワーク切替環境１０００（たとえばＩＢサブネット）内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックは、ホストチャネルアダプタ５１０、５２０、５３０などのいくつかのハードウェアデバイスを含み得る。ホストチャネルアダプタ５１０、５２０および５３０は、それぞれ、ハイパーバイザ５１１、５２１および５３１と対話することができる。各々のハイパーバイザは、さらに、ホストチャネルアダプタと共に、いくつかの仮想機能５１４、５１５、５１６、５２４、５２５、５２６、５３４、５３５および５３６と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン１  ５５０はハイパーバイザ５１１によって仮想機能１  ５１４に割当てることができる。ハイパーバイザ５１１は、加えて、仮想マシン２  ５５１を仮想機能２  ５１５に割当て、仮想マシン３  ５５２を仮想機能３  ５１６に割当てることができる。ハイパーバイザ５３１はさらに、仮想マシン４  ５５３を仮想機能１  ５３４に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上における十分な機能を有する物理機能５１３、５２３および５３３を介してホストチャネルアダプタにアクセスすることができる。
【０１０５】
一実施形態に従うと、仮想スイッチ５１２、５２２および５３２は、それぞれのハイパーバイザ５１１、５２１、５３１によって処理することができる。このようなｖＳｗｉｔｃｈアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ（ｖＨＣＡ）であり、これは、ハードウェアにおいて、ＶＦに割当てられたＶＭに、ＩＢアドレス一式（たとえばＧＩＤ、ＧＵＩＤ、ＬＩＤ）および専用のＱＰスペースが割当てられていることを意味する。残りのネットワークおよびＳＭ（図示せず）については、ＨＣＡ５１０、５２０および５３０は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
【０１０６】
一実施形態に従うと、スイッチ５０１〜５０４の各々はいくつかのポート（図示せず）を含み得る。いくつかのポートは、ネットワーク切替環境１０００内においてトラフィックを方向付けるために、スイッチ５０１に関連付けられた線形のフォワーディングテーブル１０１０などの線形のフォワーディングテーブルを設定するのに用いられる。
【０１０７】
一実施形態に従うと、図１０は、ＶＭ２  ５５１が潜在的にハイパーバイザ５１１からハイパーバイザ５２１に（ここでは３つの利用可能な仮想機能がある）をマイグレートすることができるネットワーク切替環境１０００における状況を示す。ＬＩＤ３がハイパーバイザ５２１において利用可能なＬＩＤのうちのいずれか（６、７または８）とスワップされていた場合、スイッチ５０１は更新される必要が全くないだろう。なぜなら、最初のルーティングで既にＬＩＤ３がルーティングされ、ＬＩＤ６、ＬＩＤ７およびＬＩＤ８がスイッチ５０１上の同じポート（ポート２）を共有しているからである。特に、スイッチ５０３（すなわちリーフスイッチ）だけが更新される必要があり得るので、この例の場合、ｎ′＝１となる。
【０１０８】
一実施形態に従うと、最終的に、開示された再構成メカニズムのコストｖＳｗｉｔｃｈ  ＲＣｔが式４において見出され、大規模なサブネットにおいては、ｖＳｗｉｔｃｈ  ＲＣｔがＲＣｔよりもはるかに小さくなる。
【０１０９】
【数５】
0006763860.tif 000006
【０１１０】
一実施形態に従うと、ＳＭＰパケットのための宛先ベースのルーティングを用いることができる。ＶＭがマイグレートされると、スイッチに属するＬＩＤのためのルートは影響を受けないだろう。したがって、宛先ベースのルーティングにより、確実にＳＭＰをスイッチに適切に送達することができ、ｒを式４から省いて式５を得ることができる：
【０１１１】
【数６】
0006763860.tif 000007
【０１１２】
一実施形態に従うと、パイプライン化を用いて、ｖＳｗｉｔｃｈ再構成時間をさらに減らすことができる。
【０１１３】
図１１は、一実施形態に従った、ネットワークにおいて仮想マシンマイグレーションをサポートするための方法のフローチャートである。ステップ１１１０において、当該方法は、１つ以上のマイクロプロセッサを含む１つ以上のコンピュータにおいて、少なくともリーフスイッチを含む１つ以上のスイッチを設けることができ、当該１つ以上のスイッチの各々は複数のポートを含む。当該方法はさらに、複数のホストチャネルアダプタを設けることができ、ホストチャネルアダプタの各々は少なくとも１つの仮想機能を含み、複数のホストチャネルアダプタは１つ以上のスイッチを介して相互接続されている。当該方法はさらに、複数のハイパーバイザを設けることができ、複数のハイパーバイザの各々は、複数のホストチャネルアダプタのうち少なくとも１つに関連付けられている。当該方法はさらに、複数の仮想マシンを設けることができる。複数の仮想マシンの各々は少なくとも１つの仮想機能に関連付けられている。
【０１１４】
ステップ１１２０において、当該方法は、予めポピュレートされたローカル識別子（ＬＩＤ）アーキテクチャを用いた仮想スイッチ、または、動的ＬＩＤ割当てアーキテクチャを用いた仮想スイッチのうち１つ以上を備えた複数のホストチャネルアダプタを配置することができる。
【０１１５】
ステップ１１３０において、当該方法は、複数のハイパーバイザのうち第１のハイパーバイザ上で動作している、複数の仮想マシンのうち第１の仮想マシンを、複数のハイパーバイザのうち第２のハイパーバイザにライブマイグレートすることができる。この場合、第１のハイパーバイザは、複数のホストチャネルアダプタのうち第１のホストチャネルアダプタに関連付けられ、第２のハイパーバイザは、複数のホストチャネルアダプタのうち第２のホストチャネルアダプタに関連付けられている。
【０１１６】
本発明は、本開示の教示に従ってプログラミングされた１つ以上のプロセッサ、メモリおよび／またはコンピュータ読取り可能記憶媒体を含む、１つ以上の従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを使用して、便宜的に実現され得る。ソフトウェア技術の当業者には明らかであるように、本開示の教示に基づいて、熟練したプログラマーが適切なソフトウェアコーディングを容易に準備することができる。
【０１１７】
いくつかの実施形態においては、本発明は、本発明のプロセスのうちいずれかを行なうようにコンピュータをプログラミングするために使用可能な命令を格納する記憶媒体またはコンピュータ読取り可能媒体であるコンピュータプログラム製品を含む。記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気カードまたは光カード、ナノシステム（分子メモリＩＣを含む）、または、命令および／もしくはデータを格納するのに適した任意のタイプの媒体もしくはデバイスを含み得るものの、それらに限定されない。
【０１１８】
この発明の前述の記載は、例示および説明のために提供されてきた。それは、網羅的であるよう、またはこの発明を開示された形態そのものに限定するよう意図されてはいない。当業者には、多くの修正および変形が明らかになるだろう。修正および変形は、開示された特徴のあらゆる関連する組合せを含む。実施形態は、この発明の原理およびその実際的な適用を最良に説明するために選択および説明されたものであり、それにより、他の当業者が、特定の使用に適したさまざまな修正を考慮して、さまざまな実施形態についてこの発明を理解することを可能にする。この発明の範囲は、請求項およびそれらの均等物によって定義されることが意図されている。
【図１】
0006763860.tif 000008
【図２】
0006763860.tif 000009
【図３】
0006763860.tif 000010
【図４】
0006763860.tif 000011
【図５】
0006763860.tif 000012
【図６】
0006763860.tif 000013
【図７】
0006763860.tif 000014
【図８】
0006763860.tif 000015
【図９】
0006763860.tif 000016
【図１０】
0006763860.tif 000017
【図１１】
0006763860.tif 000018