(58)【調査した分野】(Int.Cl.,DB名)
前記第1のハイパーバイザおよび前記第2のハイパーバイザの各々は、前記第1および第2のホストチャネルアダプタの各々の物理機能を通じて、前記第1のホストチャネルアダプタおよび前記第2のホストチャネルアダプタの各々にアクセスするように構成される、請求項2に記載のシステム。
2つのサブネット管理パケットのうち前記大きい方のLIDを含むサブネット管理パケットが前記少なくとも1つのスイッチに送信されて、前記少なくとも1つのスイッチに前記線形のフォワーディングテーブルを更新するように指示する、請求項4に記載のシステム。
前記仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへのライブマイグレーションを実行するように動作した後、前記システムが、前記少なくとも1つのスイッチのサブセットに、前記線形のフォワーディングテーブルを更新するように指示するように構成される、請求項4または5に記載のシステム。
前記仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへのライブマイグレーションを実行するように動作した後、前記システムが、前記サブネットの再ルーティングが不要であると判断するように構成される、請求項1から6のいずれか1項に記載のシステム。
前記仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへとライブマイグレートした後、前記少なくとも1つのスイッチのサブセットに、前記線形のフォワーディングテーブルを更新するように指示するステップをさらに含む、請求項10に記載の方法。
前記仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへとライブマイグレートした後、前記サブネットの再ルーティングが不要であると判断するステップをさらに含む、請求項9から11のいずれか1項に記載の方法。
命令を格納するコンピュータプログラムであって、前記命令は、1つ以上のコンピュータによって読み取られて実行されると、前記1つ以上のコンピュータに請求項9から12のいずれか1項に記載の方法を実行させる、コンピュータプログラム。
【発明を実施するための形態】
【0006】
詳細な説明:
本発明は、同様の参照番号が同様の要素を指している添付図面の図において、限定のためではなく例示のために説明されている。なお、この開示における「ある」または「1つの」または「いくつかの」実施形態への参照は必ずしも同じ実施形態に対するものではなく、そのような参照は少なくとも1つを意味する。特定の実現例が説明されるが、これらの特定の実現例が例示的な目的のためにのみ提供されることが理解される。当業者であれば、他の構成要素および構成が、この発明の範囲および精神から逸脱することなく使用され得ることを認識するであろう。
【0007】
図面および詳細な説明全体にわたって同様の要素を示すために、共通の参照番号が使用され得る。したがって、ある図で使用される参照番号は、要素が別のところで説明される場合、そのような図に特有の詳細な説明において参照される場合もあり、または参照されない場合もある。
【0008】
ネットワークにおける仮想マシン(virtual machine:VM)マイグレーションをサポートすることができるシステムおよび方法がこの明細書中に記載される。
【0009】
この発明の以下の説明は、高性能ネットワークについての一例として、インフィニバンド(IB)ネットワークを使用する。他のタイプの高性能ネットワークが何ら限定されることなく使用され得ることが、当業者には明らかであるだろう。以下の説明ではまた、ファブリックトポロジーについての一例として、ファットツリートポロジーを使用する。他のタイプのファブリックトポロジーが何ら限定されることなく使用され得ることが当業者には明らかであるだろう。
【0010】
本発明の一実施形態に従うと、仮想化は、クラウドコンピューティングにおける効率的なリソース利用および融通性のあるリソース割当てに有益であり得る。ライブマイグレーションは、アプリケーションにトランスペアレントな態様で物理サーバ間で仮想マシン(VM)を移動させることによってリソース使用を最適化することを可能にする。このため、仮想化は、ライブマイグレーションによる統合、リソースのオン・デマンド・プロビジョニングおよび融通性を可能にし得る。
【0011】
インフィニバンド(登録商標)
インフィニバンド(IB)は、インフィニバンド・トレード・アソシエーション(InfiniBand
TM Trade Association)によって開発されたオープン標準無損失ネットワーク技術である。この技術は、特に高性能コンピューティング(high-performance computing:HPC)アプリケーションおよびデータセンタを対象とする、高スループットおよび少ない待ち時間の通信を提供するシリアルポイントツーポイント全二重相互接続(serial point-to-point full-duplex interconnect)に基づいている。
【0012】
インフィニバンドアーキテクチャ(InfiniBand Architecture:IBA)は、2層トポロジー分割をサポートする。低層では、IBネットワークはサブネットと呼ばれ、1つのサブネットは、スイッチおよびポイントツーポイントリンクを使用して相互接続される一組のホストを含み得る。より高いレベルでは、1つのIBファブリックは、ルータを使用して相互接続され得る1つ以上のサブネットを構成する。
【0013】
1つのサブネット内で、ホストは、スイッチおよびポイントツーポイントリンクを使用して接続され得る。加えて、サブネットにおける指定されたサブネットデバイス上に存在する、1つのマスター管理エンティティ、すなわちサブネットマネージャ(subnet manager:SM)があり得る。サブネットマネージャは、IBサブネットを構成し、起動し、維持する役割を果たす。加えて、サブネットマネージャ(SM)は、IBファブリックにおいてルーティングテーブル計算を行なう役割を果たし得る。ここで、たとえば、IBネットワークのルーティングは、ローカルサブネットにおけるすべての送信元と宛先とのペア間の適正な負荷バランシングを目標とする。
【0014】
サブネット管理インターフェイスを通して、サブネットマネージャは、サブネット管理パケット(subnet management packet:SMP)と呼ばれる制御パケットを、サブネット管理エージェント(subnet management agent:SMA)と交換する。サブネット管理エージェントは、すべてのIBサブネットデバイス上に存在する。SMPを使用することにより、サブネットマネージャは、ファブリックを発見し、エンドノードおよびスイッチを構成し、SMAから通知を受信することができる。
【0015】
一実施形態によれば、IBネットワークにおけるサブネット間およびサブネット内のルーティングは、スイッチに格納されたLFTに基づき得る。LFTは、使用中のルーティングメカニズムに従って、SMによって計算される。サブネットでは、エンドノード上のホストチャネルアダプタ(Host Channel Adapter:HCA)ポートおよびスイッチが、ローカル識別子(LID)を使用してアドレス指定される。LFTにおける各エントリは、宛先LID(destination LID:DLID)と出力ポートとからなる。テーブルにおけるLIDごとに1つのエントリのみがサポートされる。パケットがあるスイッチに到着すると、その出力ポートは、そのスイッチのフォワーディングテーブルにおいてDLIDを検索することによって判断される。所与の送信元−宛先ペア(LIDペア)間のネットワークにおいてパケットは同じ経路を通るため、ルーティングは決定論的である。
【0016】
一般に、マスターサブネットマネージャを除く他のすべてのサブネットマネージャは、耐故障性のために待機モードで作動する。しかしながら、マスターサブネットマネージャが故障した状況では、待機中のサブネットマネージャによって、新しいマスターサブネットマネージャが取り決められる。マスターサブネットマネージャはまた、サブネットの周期的なスイープ(sweep)を行なってあらゆるトポロジー変化を検出し、それに応じてネットワークを再構成する。
【0017】
さらに、サブネット内のホストおよびスイッチは、ローカル識別子(LID)を使用してアドレス指定可能であり、単一のサブネットは49151個のユニキャストLIDに制限可能である。サブネット内で有効なローカルアドレスであるLIDの他に、各IBデバイスは、64ビットのグローバル一意識別子(global unique identifier:GUID)を有し得る。GUIDは、IBレイヤー3(L3)アドレスであるグローバル識別子(global identifier:GID)を形成するために使用され得る。
【0018】
SMは、ネットワーク初期化時間に、ルーティングテーブル(すなわち、サブネット内のノードの各ペア間の接続/ルート)を計算し得る。さらに、トポロジーが変化するたびに、ルーティングテーブルは、接続性および最適性能を確実にするために更新され得る。通常動作中、SMは、トポロジー変化をチェックするためにネットワークの周期的なライトスイープ(light sweep)を実行し得る。ライトスイープ中に変化が発見された場合、または、ネットワーク変化を信号で伝えるメッセージ(トラップ)をSMが受信した場合、SMは、発見された変化に従ってネットワークを再構成し得る。
【0019】
たとえば、SMは、リンクがダウンした場合、デバイスが追加された場合、またはリンクが除去された場合など、ネットワークトポロジーが変化する場合に、ネットワークを再構成し得る。再構成ステップは、ネットワーク初期化中に行なわれるステップを含み得る。さらに、再構成は、ネットワーク変化が生じたサブネットに制限されるローカルスコープを有し得る。また、ルータを用いる大規模ファブリックのセグメント化は、再構成スコープを制限し得る。
【0020】
一実施形態によれば、IBネットワークは、ネットワークファブリックを共有するシステムの論理グループの分離をもたらすためにセキュリティメカニズムとしてパーティショニングをサポートし得る。ファブリックにおけるノード上の各HCAポートは、1つ以上のパーティションのメンバであり得る。パーティションメンバーシップは、SMの一部であり得る集中型パーティションマネージャによって管理される。SMは、各ポートに関するパーティションメンバーシップ情報を、16ビットのパーティションキー(partition key:Pキー)のテーブルとして構成することができる。SMはまた、LIDに関連付けられたPキー情報を含むパーティション実施テーブルを用いて、スイッチおよびルータを構成することができる。加えて、一般的な場合には、スイッチポートのパーティションメンバーシップは、(リンクに向かう)出口方向に向かってポートを介してルーティングされたLIDに間接的に関連付けられたすべてのメンバーシップの集合を表わし得る。
【0021】
一実施形態によれば、ノード間の通信のために、管理キューペア(QP0およびQP1)を除き、キューペア(Queue Pair:QP)およびエンドツーエンドコンテキスト(End-to-End context:EEC)を特定のパーティションに割当てることができる。次に、Pキー情報を、送信されたすべてのIBトランスポートパケットに追加することができる。パケットがHCAポートまたはスイッチに到着すると、そのPキー値を、SMによって構成されたテーブルに対して確認することができる。無効のPキー値が見つかった場合、そのパケットは直ちに廃棄される。このように、通信は、パーティションを共有するポート間でのみ許可される。
【0022】
一実施形態に従ったインフィニバンド環境100の例を示す
図1に、インフィニバンドファブリックの一例を示す。
図1に示す例では、ノードA101〜E105は、インフィニバンドファブリック120を使用して、それぞれのホストチャネルアダプタ111〜115を介して通信する。一実施形態に従うと、さまざまなノード(たとえばノードA101〜E105)はさまざまな物理デバイスによって表わすことができる。一実施形態に従うと、さまざまなノード(たとえばノードA101〜E105)は仮想マシンなどのさまざまな仮想デバイスによって表わすことができる。
【0023】
インフィニバンドにおける仮想マシン
過去10年の間に、ハードウェア仮想化サポートによってCPUオーバーヘッドが実質的に排除され、メモリ管理ユニットを仮想化することによってメモリオーバーヘッドが著しく削減され、高速SANストレージまたは分散型ネットワークファイルシステムの利用によってストレージオーバーヘッドが削減され、シングルルートI/O仮想化(Single Root Input/Output Virtualization:SR−IOV)のようなデバイス・パススルー技術を使用することによってネットワークI/Oオーバーヘッドが削減されてきたことに応じて、仮想化された高性能コンピューティング(High Performance Computing:HPC)環境の将来見通しが大幅に改善されてきた。現在では、クラウドが、高性能相互接続ソリューションを用いて仮想HPC(virtual HPC:vHPC)クラスタに対応し、必要な性能を提供することができる。
【0024】
しかしながら、インフィニバンド(IB)などの無損失ネットワークと連結されたとき、仮想マシン(VM)のライブマイグレーションなどのいくつかのクラウド機能は、これらのソリューションにおいて用いられる複雑なアドレス指定およびルーティングスキームのせいで、依然として問題となる。IBは、高帯域および低レイテンシを提供する相互接続ネットワーク技術であり、このため、HPCおよび他の通信集約型のワークロードに非常によく適している。
【0025】
IBデバイスをVMに接続するための従来のアプローチは直接割当てされたSR−IOVを利用することによるものである。しかしながら、IBに割当てられたVMのライブマイグレーションを実現するために、SR−IOVを用いるホストチャネルアダプタ(HCA)は難易度の高いものであることが判明した。各々のIBが接続されているノードは、3つの異なるアドレス(すなわちLID、GUIDおよびGID)を有する。ライブマイグレーションが発生すると、これらのアドレスのうち1つ以上が変化する。マイグレーション中のVM(VM-in-migration)と通信する他のノードは接続性を失う可能性がある。これが発生すると、IBサブネットマネージャ(Subnet Manager:SM)にサブネット管理(Subnet Administration:SA)経路記録クエリを送信することによって、再接続すべき仮想マシンの新しいアドレスを突きとめることにより、失われた接続を回復させるように試みることができる。
【0026】
IBは3つの異なるタイプのアドレスを用いる。第1のタイプのアドレスは16ビットのローカル識別子(LID)である。少なくとも1つの固有のLIDは、SMによって各々のHCAポートおよび各々のスイッチに割当てられる。LIDはサブネット内のトラフィックをルーティングするために用いられる。LIDが16ビット長であるので、65536個の固有のアドレス組合せを構成することができ、そのうち49151個(0×0001−0×BFFF)だけをユニキャストアドレスとして用いることができる。結果として、入手可能なユニキャストアドレスの数は、IBサブネットの最大サイズを定義することとなる。第2のタイプのアドレスは、製造業者によって各々のデバイス(たとえば、HCAおよびスイッチ)ならびに各々のHCAポートに割当てられた64ビットのグローバル一意識別子(GUID)である。SMは、HCAポートに追加のサブネット固有GUIDを割当ててもよく、これは、SR−IOVが用いられる場合に有用となる。第3のタイプのアドレスは128ビットのグローバル識別子(GID)である。GIDは有効なIPv6ユニキャストアドレスであり、少なくとも1つが各々のHCAポートに割当てられている。GIDは、ファブリックアドミニストレータによって割当てられたグローバルに固有の64ビットプレフィックスと各々のHCAポートのGUIDアドレスとを組合わせることによって形成される。
【0027】
ファットツリー(Fat Tree:FTree)トポロジーおよびルーティング
一実施形態によれば、IBベースのHPCシステムのいくつかは、ファットツリートポロジーを採用して、ファットツリーが提供する有用な特性を利用する。これらの特性は、各送信元宛先ペア間の複数経路の利用可能性に起因する、フルバイセクションバンド幅および固有の耐故障性を含む。ファットツリーの背後にある初期の考えは、ツリーがトポロジーのルート(root)に近づくにつれて、より利用可能な帯域幅を用いて、ノード間のより太いリンクを採用することであった。より太いリンクは、上位レベルのスイッチにおける輻輳を回避するのに役立てることができ、バイセクションバンド幅が維持される。
【0028】
図2は、一実施形態に従った、ネットワーク環境におけるツリートポロジーの例を示す。
図2に示すように、ネットワークファブリック200において、1つ以上のエンドノード201〜204が接続され得る。ネットワークファブリック200は、複数のリーフスイッチ211〜214と複数のスパインスイッチまたはルート(root)スイッチ231〜234とを含むファットツリートポロジーに基づき得る。加えて、ネットワークファブリック200は、スイッチ221〜224といった1つ以上の中間スイッチを含み得る。
【0029】
また、
図2に示すように、エンドノード201〜204の各々は、マルチホームノード、すなわち、複数のポートを通してネットワークファブリック200の2つ以上の部分に接続される単一のノードであり得る。たとえば、ノード201はポートH1およびH2を含み、ノード202はポートH3およびH4を含み、ノード203はポートH5およびH6を含み、ノード204はポートH7およびH8を含み得る。
【0030】
加えて、各スイッチは複数のスイッチポートを有し得る。たとえば、ルートスイッチ231はスイッチポート1〜2を有し、ルートスイッチ232はスイッチポート3〜4を有し、ルートスイッチ233はスイッチポート5〜6を有し、ルートスイッチ234はスイッチポート7〜8を有し得る。
【0031】
一実施形態によれば、ファットツリールーティングメカニズムは、IBベースのファットツリートポロジーに関して最も人気のあるルーティングアルゴリズムのうちの1つである。ファットツリールーティングメカニズムはまた、OFED(Open Fabric Enterprise Distribution:IBベースのアプリケーションを構築しデプロイするための標準ソフトウェアスタック)サブネットマネージャ、すなわちOpenSMにおいて実現される。
【0032】
ファットツリールーティングメカニズムの目的は、ネットワークファブリックにおけるリンクにわたって最短経路ルートを均一に広げるLFTを生成することである。このメカニズムは、索引付け順序でファブリックを横断し、エンドノードの目標LID、ひいては対応するルートを各スイッチポートに割当てる。同じリーフスイッチに接続されたエンドノードについては、索引付け順序は、エンドノードが接続されるスイッチポートに依存し得る(すなわち、ポートナンバリングシーケンス)。各ポートについては、メカニズムはポート使用カウンタを維持することができ、新しいルートが追加されるたびに、ポート使用カウンタを使用して使用最小ポートを選択することができる。
【0033】
上述のように、パーティショニングされたサブネットでは、共通のパーティションのメンバではないノードは通信することを許可されない。実際には、これは、ファットツリールーティングアルゴリズムによって割当てられたルートのうちのいくつかがユーザトラフィックのために使用されないことを意味する。ファットツリールーティングメカニズムが、それらのルートについてのLFTを、他の機能的経路と同じやり方で生成する場合、問題が生じる。この動作は、リンク上でバランシングを劣化させるおそれがある。なぜなら、ノードが索引付けの順序でルーティングされているからである。パーティションに気づかずにルーティングが行なわれるため、ファットツリーでルーティングされたサブネットにより、通常、パーティション間の分離が不良なものとなる。
【0034】
入出力(Input/Output:I/O)仮想化
一実施形態に従うと、I/O仮想化(I/O Virtualization:IOV)は、仮想マシン(VM)が基礎をなす物理リソースにアクセスできるようにすることによって、I/Oを利用できるようにすることができる。ストレージトラフィックとサーバ間通信とを組合せると、シングルサーバのI/Oリソースにとって抗し難い高い負荷が課され、結果として、データの待機中に、バックログが発生し、プロセッサがアイドル状態になる可能性がある。I/O要求の数が増えるにつれて、IOVにより利用可能性がもたらされ、最新のCPU仮想化において見られる性能レベルに匹敵するように、(仮想化された)I/Oリソースの性能、スケーラビリティおよび融通性を向上させることができる。
【0035】
一実施形態に従うと、I/Oリソースの共有を可能にして、VMからリソースへのアクセスが保護されることを可能にし得るようなIOVが所望される。IOVは、VMにエクスポーズされる論理装置を、その物理的な実装から分離する。現在、エミュレーション、準仮想化、直接的な割当て(direct assignment:DA)、およびシングルルートI/O仮想化(single root-I/O virtualization:SR−IOV)などのさまざまなタイプのIOV技術が存在し得る。
【0036】
一実施形態に従うと、あるタイプのIOV技術としてソフトウェアエミュレーションがある。ソフトウェアエミュレーションは分離されたフロントエンド/バックエンド・ソフトウェアアーキテクチャを可能にし得る。フロントエンドはVMに配置されたデバイスドライバであり得、I/Oアクセスをもたらすためにハイパーバイザによって実現されるバックエンドと通信し得る。物理デバイス共有比率は高く、VMのライブマイグレーションはネットワークダウンタイムのわずか数ミリ秒で実現可能である。しかしながら、ソフトウェアエミュレーションはさらなる不所望な計算上のオーバーヘッドをもたらしてしまう。
【0037】
一実施形態に従うと、別のタイプのIOV技術として直接的なデバイスの割当てがある。直接的なデバイスの割当てでは、I/OデバイスをVMに連結する必要があるが、デバイスはVM間では共有されない。直接的な割当てまたはデバイス・パススルーは、最小限のオーバーヘッドでほぼ固有の性能を提供する。物理デバイスはハイパーバイザをバイパスし、直接、VMに取付けられている。しかしながら、このような直接的なデバイスの割当ての欠点は、仮想マシン間で共有がなされないため、1枚の物理ネットワークカードが1つのVMと連結されるといったように、スケーラビリティが制限されてしまうことである。
【0038】
一実施形態に従うと、シングルルートIOV(Single Root IOV:SR−IOV)は、ハードウェア仮想化によって、物理装置がその同じ装置の複数の独立した軽量のインスタンスとして現われることを可能にし得る。これらのインスタンスは、パススルー装置としてVMに割当てることができ、仮想機能(Virtual Function:VF)としてアクセスすることができる。ハイパーバイザは、(1つのデバイスごとに)固有の、十分な機能を有する物理機能(Physical Function:PF)によってデバイスにアクセスする。SR−IOVは、純粋に直接的に割当てする際のスケーラビリティの問題を軽減する。しかしながら、SR−IOVによって提示される問題は、それがVMマイグレーションを損なう可能性があることである。これらのIOV技術の中でも、SR−IOVは、ほぼ固有の性能を維持しながらも、複数のVMから単一の物理デバイスに直接アクセスすることを可能にする手段を用いてPCI Express(PCIe)規格を拡張することができる。これにより、SR−IOVは優れた性能およびスケーラビリティを提供することができる。
【0039】
SR−IOVは、PCIeデバイスが、各々のゲストに1つの仮想デバイスを割当てることによって複数のゲスト間で共有することができる複数の仮想デバイスをエクスポーズすることを可能にする。各々のSR−IOVデバイスは、少なくとも1つの物理機能(PF)と、1つ以上の関連付けられた仮想機能(VF)とを有する。PFは、仮想マシンモニタ(virtual machine monitor:VMM)またはハイパーバイザによって制御される通常のPCIe機能であるのに対して、VFは軽量のPCIe機能である。各々のVFはそれ自体のベースアドレス(base address:BAR)を有しており、固有のリクエスタIDが割当てられている。固有のリクエスタIDは、I/Oメモリ管理ユニット(I/O memory management unit:IOMMU)がさまざまなVFへの/からのトラフィックストリームを区別することを可能にする。IOMMUはまた、メモリを適用して、PFとVFとの間の変換を中断する。
【0040】
しかし、残念ながら、直接的デバイス割当て技術は、仮想マシンのトランスペアレントなライブマイグレーションがデータセンタ最適化のために所望されるような状況においては、クラウドプロバイダにとって障壁となる。ライブマイグレーションの本質は、VMのメモリ内容がリモートハイパーバイザにコピーされるという点である。さらに、VMがソースハイパーバイザにおいて中断され、VMの動作が宛先において再開される。ソフトウェアエミュレーション方法を用いる場合、ネットワークインターフェイスは、それらの内部状態がメモリに記憶され、さらにコピーされるように仮想的である。このため、ダウンタイムは数ミリ秒にまで減らされ得る。
【0041】
しかしながら、SR−IOVなどの直接的デバイス割当て技術が用いられる場合、マイグレーションはより困難になる。このような状況においては、ネットワークインターフェイスの内部状態全体は、それがハードウェアに結び付けられているのでコピーすることができない。代わりに、VMに割当てられたSR−IOV VFが分離され、ライブマイグレーションが実行されることとなり、新しいVFが宛先において付与されることとなる。インフィニバンドおよびSR−IOVの場合、このプロセスがダウンタイムを数秒のオーダでもたらす可能性がある。さらに、SR−IOV共有型ポートモデルにおいては、VMのアドレスがマイグレーション後に変化することとなり、これにより、SMにオーバーヘッドが追加され、基礎をなすネットワークファブリックの性能に対して悪影響が及ぼされることとなる。
【0042】
インフィニバンドSR−IOVアーキテクチャ−共有ポート
さまざまなタイプのSR−IOVモデル(たとえば共有ポートモデルおよび仮想スイッチモデル)があり得る。
【0043】
図3は、一実施形態に従った例示的な共有ポートアーキテクチャを示す。図に示されるように、ホスト300(たとえばホストチャネルアダプタ)はハイパーバイザ310と対話し得る。ハイパーバイザ310は、さまざまな仮想機能330、340および350をいくつかの仮想マシンに割当て得る。同様に、物理機能はハイパーバイザ310によって処理することができる。
【0044】
一実施形態に従うと、
図3に示されるような共有ポートアーキテクチャを用いる場合、ホスト(たとえばHCA)は、物理機能320と仮想機能330、350、350との間において単一の共有LIDおよび共有キュー対(Queue Pair:QP)のスペースがあるネットワークにおいて単一のポートとして現われる。しかしながら、各々の機能(すなわち、物理機能および仮想機能)はそれら自体のGIDを有し得る。
【0045】
図3に示されるように、一実施形態に従うと、さまざまなGIDを仮想機能および物理機能に割当てることができ、特別のキュー対であるQP0およびQP1(すなわちインフィニバンド管理パケットのために用いられる専用のキュー対)が物理機能によって所有される。これらのQPはVFにも同様にエクスポーズされるが、VFはQP0を使用することが許可されておらず(VFからQP0に向かって入来するすべてのSMPが廃棄され)、QP1は、PFが所有する実際のQP1のプロキシとして機能し得る。
【0046】
一実施形態に従うと、共有ポートアーキテクチャは、(仮想機能に割当てられることによってネットワークに付随する)VMの数によって制限されることのない高度にスケーラブルなデータセンタを可能にし得る。なぜなら、ネットワークにおける物理的なマシンおよびスイッチによってLIDスペースが消費されるだけであるからである。
【0047】
しかしながら、共有ポートアーキテクチャの欠点は、トランスペアレントなライブマイグレーションを提供することができない点であり、これにより、フレキシブルなVM配置についての可能性が妨害されてしまう。各々のLIDが特定のハイパーバイザに関連付けられており、かつハイパーバイザ上に常駐するすべてのVM間で共有されているので、マイグレートしているVM(すなわち、宛先ハイパーバイザにマイグレートする仮想マシン)は、そのLIDを宛先ハイパーバイザのLIDに変更させなければならない。さらに、QP0アクセスが制限された結果、サブネットマネージャはVMの内部で実行させることができなくなる。
【0048】
インフィニバンドSR−IOVアーキテクチャモデル−仮想スイッチ(vSwitch)
さまざまなタイプのSR−IOVモデル(たとえば共有ポートモデルおよび仮想スイッチモデル)があり得る。
【0049】
図4は、一実施形態に従った例示的なvSwitchアーキテクチャを示す。図に示されるように、ホスト400(たとえばホストチャネルアダプタ)はハイパーバイザ410と対話することができ、当該ハイパーバイザ410は、さまざまな仮想機能430、440および450をいくつかの仮想マシンに割当てることができる。同様に、物理機能はハイパーバイザ410によって処理することができる。仮想スイッチ415もハイパーバイザ401によって処理することができる。
【0050】
一実施形態に従うと、vSwitchアーキテクチャにおいては、各々の仮想機能430、440、450は完全な仮想ホストチャネルアダプタ(virtual Host Channel Adapter:vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSMについては、HCA400は、仮想スイッチ415を介して追加のノードが接続されているスイッチのように見えている。ハイパーバイザ410はPF420を用いることができ、(仮想機能に付与された)VMはVFを用いる。
【0051】
一実施形態に従うと、vSwitchアーキテクチャは、トランスペアレントな仮想化を提供する。しかしながら、各々の仮想機能には固有のLIDが割当てられているので、利用可能な数のLIDが速やかに消費される。同様に、多くのLIDアドレスが(すなわち、各々の物理機能および各々の仮想機能ごとに1つずつ)使用されている場合、より多くの通信経路をSMによって計算しなければならず、それらのLFTを更新するために、より多くのサブネット管理パケット(SMP)をスイッチに送信しなければならない。たとえば、通信経路の計算は大規模ネットワークにおいては数分かかる可能性がある。LIDスペースが49151個のユニキャストLIDに制限されており、(VFを介する)各々のVMとして、物理ノードおよびスイッチがLIDを1つずつ占有するので、ネットワークにおける物理ノードおよびスイッチの数によってアクティブなVMの数が制限されてしまい、逆の場合も同様に制限される。
【0052】
インフィニバンドSR−IOVアーキテクチャモデル−LIDが予めポピュレートされたvSwitch
一実施形態に従うと、本開示は、LIDが予めポピュレートされたvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。
【0053】
図5は、一実施形態に従った、LIDが予めポピュレートされた例示的なvSwitchアーキテクチャを示す。図に示されるように、いくつかのスイッチ501〜504は、ネットワーク切替環境500(たとえばIBサブネット)内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックはホストチャネルアダプタ510、520、530などのいくつかのハードウェアデバイスを含み得る。さらに、ホストチャネルアダプタ510、520および530は、それぞれ、ハイパーバイザ511、521および531と対話することができる。各々のハイパーバイザは、さらに、ホストチャネルアダプタと共に、いくつかの仮想機能514、515、516、524、525、526、534、535および536と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン1 550はハイパーバイザ511によって仮想機能1 514に割当てることができる。ハイパーバイザ511は、加えて、仮想マシン2 551を仮想機能2 515に割当て、仮想マシン3 552を仮想機能3 516に割当てることができる。ハイパーバイザ531は、さらに、仮想マシン4 553を仮想機能1 534に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上における十分な機能を有する物理機能513、523および533を介してホストチャネルアダプタにアクセスすることができる。
【0054】
一実施形態に従うと、スイッチ501〜504の各々はいくつかのポート(図示せず)を含み得る。いくつかのポートは、ネットワーク切替環境500内においてトラフィックを方向付けるために線形のフォワーディングテーブルを設定するのに用いられる。
【0055】
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521、531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して追加のノードが接続されているスイッチのように見えている。
【0056】
一実施形態に従うと、本開示は、LIDが予めポピュレートされたvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。
図5を参照すると、LIDは、さまざまな物理機能513、523および533に、さらには、仮想機能514〜516、524〜526、534〜536(その時点でアクティブな仮想マシンに関連付けられていない仮想機能であっても)にも、予めポピュレートされている。たとえば、物理機能513はLID1が予めポピュレートされており、仮想機能1 534はLID10が予めポピュレートされている。ネットワークがブートされているとき、LIDはSR−IOV vSwitch対応のサブネットにおいて予めポピュレートされている。VFのすべてがネットワークにおけるVMによって占有されていない場合であっても、ポピュレートされたVFには、
図5に示されるようにLIDが割当てられている。
【0057】
一実施形態に従うと、多くの同様の物理的なホストチャネルアダプタが2つ以上のポートを有することができ(冗長性のために2つのポートが共用となっている)、仮想HCAも2つのポートで表わされ、1つまたは2つ以上の仮想スイッチを介して外部IBサブネットに接続され得る。
【0058】
一実施形態に従うと、LIDが予めポピュレートされたvSwitchアーキテクチャにおいては、各々のハイパーバイザは、それ自体のための1つのLIDをPFを介して消費し、各々の追加のVFごとに1つ以上のLIDを消費することができる。IBサブネットにおけるすべてのハイパーバイザにおいて利用可能なすべてのVFを合計すると、サブネットにおいて実行することが可能なVMの最大量が得られる。たとえば、サブネット内の1ハイパーバイザごとに16個の仮想機能を備えたIBサブネットにおいては、各々のハイパーバイザは、サブネットにおいて17個のLID(16個の仮想機能ごとに1つのLIDと、物理機能のために1つのLID)を消費する。このようなIBサブネットにおいては、単一のサブネットについて理論上のハイパーバイザ限度は利用可能なユニキャストLIDの数によって規定されており、(49151個の利用可能なLIDをハイパーバイザごとに17個のLIDで割って得られる)2891であり、VMの総数(すなわち限度)は(ハイパーバイザごとに2891個のハイパーバイザに16のVFを掛けて得られる)46256である(実質的には、IBサブネットにおける各々のスイッチ、ルータまたは専用のSMノードが同様にLIDを消費するので、これらの数は実際にはより小さくなる)。なお、vSwitchが、LIDをPFと共有することができるので、付加的なLIDを占有する必要がないことに留意されたい。
【0059】
一実施形態に従うと、LIDが予めポピュレートされたvSwitchアーキテクチャにおいては、ネットワークが一旦ブートされると、すべてのLIDについて通信経路が計算される。新しいVMを始動させる必要がある場合、システムは、サブネットにおいて新しいLIDを追加する必要はない。それ以外の場合、経路の再計算を含め、ネットワークを完全に再構成させ得る動作は、最も時間を消費する要素となる。代わりに、VMのための利用可能なポートはハイパーバイザのうちの1つに位置し(すなわち利用可能な仮想機能)、仮想マシンは利用可能な仮想機能に付与されている。
【0060】
一実施形態に従うと、LIDが予めポピュレートされたvSwitchアーキテクチャはまた、同じハイパーバイザによってホストされているさまざまなVMに達するために、さまざまな経路を計算して用いる能力を可能にする。本質的には、これは、LIDを連続的にすることを必要とするLMCの制約によって拘束されることなく、1つの物理的なマシンに向かう代替的な経路を設けるために、このようなサブネットおよびネットワークがLIDマスク制御ライク(LID-Mask-Control-like:LMCライク)な特徴を用いることを可能にする。VMをマイグレートしてその関連するLIDを宛先に送達する必要がある場合、不連続なLIDを自由に使用できることは特に有用となる。
【0061】
一実施形態に従うと、LIDが予めポピュレートされたvSwitchアーキテクチャについての上述の利点と共に、いくつかの検討事項を考慮に入れることができる。たとえば、ネットワークがブートされているときに、SR−IOV vSwitch対応のサブネットにおいてLIDが予めポピュレートされているので、(たとえば起動時の)最初の経路計算はLIDが予めポピュレートされていなかった場合よりも時間が長くかかる可能性がある。
【0062】
インフィニバンドSR−IOVアーキテクチャモデル−動的LID割当てがなされたvSwitch
一実施形態に従うと、本開示は、動的LID割当てがなされたvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。
【0063】
図6は、一実施形態に従った、動的LID割当てがなされた例示的なvSwitchアーキテクチャを示す。図に示されるように、いくつかのスイッチ501〜504は、ネットワーク切替環境600(たとえばIBサブネット)内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックは、ホストチャネルアダプタ510、520、530などのいくつかのハードウェアデバイスを含み得る。ホストチャネルアダプタ510、520および530は、さらに、ハイパーバイザ511、521および531とそれぞれ対話することができる。各々のハイパーバイザは、さらに、ホストチャネルアダプタと共に、いくつかの仮想機能514、515、516、524、525、526、534、535および536と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン1 550はハイパーバイザ511によって仮想機能1 514に割当てることができる。ハイパーバイザ511は、加えて、仮想マシン2 551を仮想機能2 515に割当て、仮想マシン3 552を仮想機能3 516に割当てることができる。ハイパーバイザ531はさらに、仮想マシン4 553を仮想機能1 534に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上における十分な機能を有する物理機能513、523および533を介してホストチャネルアダプタにアクセスすることができる。
【0064】
一実施形態に従うと、スイッチ501〜504の各々はいくつかのポート(図示せず)を含み得る。いくつかのポートは、ネットワーク切替環境600内においてトラフィックを方向付けるために線形のフォワーディングテーブルを設定するのに用いられる。
【0065】
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521および531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
【0066】
一実施形態に従うと、本開示は、動的LID割当てがなされたvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。
図6を参照すると、LIDには、さまざまな物理機能513、523および533が動的に割当てられており、物理機能513がLID1を受取り、物理機能523がLID2を受取り、物理機能533がLID3を受取る。アクティブな仮想マシンに関連付けられたそれらの仮想機能はまた、動的に割当てられたLIDを受取ることもできる。たとえば、仮想マシン1 550がアクティブであり、仮想機能1 514に関連付けられているので、仮想機能514にはLID5が割当てられ得る。同様に、仮想機能2 515、仮想機能3 516および仮想機能1 534は、各々、アクティブな仮想機能に関連付けられている。このため、これらの仮想機能にLIDが割当てられ、LID7が仮想機能2 515に割当てられ、LID11が仮想機能3 516に割当てられ、仮想機能9が仮想機能1 535に割当てられている。LIDが予めポピュレートされたvSwitchとは異なり、アクティブな仮想マシンにその時点で関連付けられていない仮想機能はLIDの割当てを受けない。
【0067】
一実施形態に従うと、動的LID割当てがなされていれば、最初の経路計算を実質的に減らすことができる。ネットワークが初めてブートしており、VMが存在していない場合、比較的少数のLIDを最初の経路計算およびLFT分配のために用いることができる。
【0068】
一実施形態に従うと、多くの同様の物理的なホストチャネルアダプタが2つ以上のポートを有することができ(冗長性のために2つのポートが共用となっている)、仮想HCAも2つのポートで表わされ、1つまたは2つ以上の仮想スイッチを介して外部IBサブネットに接続され得る。
【0069】
一実施形態に従うと、動的LID割当てがなされたvSwitchを利用するシステムにおいて新しいVMが作成される場合、どのハイパーバイザ上で新しく追加されたVMをブートすべきであるかを決定するために、自由なVMスロットが発見され、固有の未使用のユニキャストLIDも同様に発見される。しかしながら、新しく追加されたLIDを処理するためのスイッチのLFTおよびネットワークに既知の経路が存在しない。新しく追加されたVMを処理するために新しいセットの経路を計算することは、いくつかのVMが毎分ごとにブートされ得る動的な環境においては望ましくない。大規模なIBサブネットにおいては、新しい1セットのルートの計算には数分かかる可能性があり、この手順は、新しいVMがブートされるたびに繰返されなければならないだろう。
【0070】
有利には、一実施形態に従うと、ハイパーバイザにおけるすべてのVFがPFと同じアップリンクを共有しているので、新しいセットのルートを計算する必要はない。ネットワークにおけるすべての物理スイッチのLFTを繰返し、(VMが作成されている)ハイパーバイザのPFに属するLIDエントリから新しく追加されたLIDにフォワーディングポートをコピーし、かつ、特定のスイッチの対応するLFTブロックを更新するために単一のSMPを送信するだけでよい。これにより、当該システムおよび方法では、新しいセットのルートを計算する必要がなくなる。動的LID割当てをサポートするvSwitchのシステムおよび方法のさらなる詳細が、引用によりこの明細書中に援用されている添付物Aに記載されている。
【0071】
一実施形態に従うと、動的LID割当てアーキテクチャを用いたvSwitchにおいて割当てられたLIDは連続的ある必要はない。各々のハイパーバイザ上のVM上で割当てられたLIDをLIDが予めポピュレートされたvSwitchと動的LID割当てがなされたvSwitchとで比較すると、動的LID割当てアーキテクチャにおいて割当てられたLIDが不連続であり、そこに予めポピュレートされたLIDが本質的に連続的であることが分かるだろう。さらに、vSwitch動的LID割当てアーキテクチャにおいては、新しいVMが作成されると、次に利用可能なLIDが、VMの生存期間の間中ずっと用いられる。逆に、LIDが予めポピュレートされたvSwitchにおいては、各々のVMは、対応するVFに既に割当てられているLIDを引継ぎ、ライブマイグレーションのないネットワークにおいては、所与のVFに連続的に付与されたVMが同じLIDを得る。
【0072】
一実施形態に従うと、動的LID割当てアーキテクチャを用いたvSwitchは、いくらかの追加のネットワークおよびランタイムSMオーバーヘッドを犠牲にして、予めポピュレートされたLIDアーキテクチャモデルを用いたvSwitchの欠点を解決することができる。VMが作成されるたびに、作成されたVMに関連付けられた、新しく追加されたLIDで、サブネットにおける物理スイッチのLFTを更新することができる。この動作のために、1スイッチごとに1つのサブネット管理パケット(SMP)が送信される必要がある。各々のVMがそのホストハイパーバイザと同じ経路を用いているので、LMCのような機能も利用できなくなる。しかしながら、すべてのハイパーバイザに存在するVFの合計に対する制限はなく、VFの数は、ユニキャストLIDの限度を上回る可能性もある。このような場合、当然、アクティブなVM上でVFのすべてが必ずしも同時に付与されることが可能になるわけではなく、より多くの予備のハイパーバイザおよびVFを備えることにより、ユニキャストLID限度付近で動作する際に、断片化されたネットワークの障害を回復および最適化させるための融通性が追加される。
【0073】
インフィニバンドSR−IOVアーキテクチャモデル−動的LID割当てがなされかつLIDが予めポピュレートされたvSwitch
図7は、一実施形態に従った、動的LID割当てがなされてLIDが予めポピュレートされたvSwitchを備えた例示的なvSwitchアーキテクチャを示す。図に示されるように、いくつかのスイッチ501〜504は、ネットワーク切替環境500(たとえばIBサブネット)内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックはホストチャネルアダプタ510、520、530などのいくつかのハードウェアデバイスを含み得る。ホストチャネルアダプタ510、520および530は、それぞれ、さらに、ハイパーバイザ511、521および531と対話することができる。各々のハイパーバイザは、さらに、ホストチャネルアダプタと共に、いくつかの仮想機能514、515、516、524、525、526、534、535および536と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン1 550は、ハイパーバイザ511によって仮想機能1 514に割当てることができることができる。ハイパーバイザ511は、加えて、仮想マシン2 551を仮想機能2 515に割当てることができる。ハイパーバイザ521は、仮想マシン3 552を仮想機能3 526に割当てることができる。ハイパーバイザ531は、さらに、仮想マシン4 553を仮想機能2 535に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上における十分な機能を有する物理機能513、523および533を介してホストチャネルアダプタにアクセスすることができる。
【0074】
一実施形態に従うと、スイッチ501〜504の各々はいくつかのポート(図示せず)を含み得る。これらいくつかのポートは、ネットワーク切替環境700内においてトラフィックを方向付けるために線形のフォワーディングテーブルを設定するのに用いられる。
【0075】
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521、531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は、完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
【0076】
一実施形態に従うと、本開示は、動的LID割当てがなされLIDが予めポピュレートされたハイブリッドvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。
図7を参照すると、ハイパーバイザ511には、予めポピュレートされたLIDアーキテクチャを用いたvSwitchが配置され得るとともに、ハイパーバイザ521には、LIDが予めポピュレートされて動的LID割当てがなされたvSwitchが配置され得る。ハイパーバイザ531には、動的LID割当てがなされたvSwitchが配置され得る。このため、物理機能513および仮想機能514〜516には、それらのLIDが予めポピュレートされている(すなわち、アクティブな仮想マシンに付与されていない仮想機能であってもLIDが割当てられている)。物理機能523および仮想機能1 524にはそれらのLIDが予めポピュレートされ得るとともに、仮想機能2 525および仮想機能3 526にはそれらのLIDが動的に割当てられている(すなわち、仮想機能2 525は動的LID割当てのために利用可能であり、仮想機能3 526は、仮想マシン3 552が付与されているので、11というLIDが動的に割当てられている)。最後に、ハイパーバイザ3 531に関連付けられた機能(物理機能および仮想機能)にはそれらのLIDを動的に割当てることができる。これにより、結果として、仮想機能1 534および仮想機能3 536が動的LID割当てのために利用可能となるとともに、仮想機能2 535には、仮想マシン4 553が付与されているので、9というLIDが動的に割当てられている。
【0077】
LIDが予めポピュレートされたvSwitchおよび動的LID割当てがなされたvSwitchがともに(いずれかの所与のハイパーバイザ内で独立して、または組合わされて)利用されている、
図7に示されるような一実施形態に従うと、ホストチャネルアダプタごとの予めポピュレートされたLIDの数はファブリックアドミニストレータによって定義することができ、(ホストチャネルアダプタごとに)0<=予めポピュレートされたVF<=総VFの範囲内になり得る。動的LID割当てのために利用可能なVFは、(ホストチャネルアダプタごとに)VFの総数から予めポピュレートされたVFの数を減じることによって見出すことができる。
【0078】
一実施形態に従うと、多くの同様の物理的なホストチャネルアダプタが2つ以上のポートを有することができ(冗長性のために2つのポートが共用となっている)、仮想HCAも2つのポートで表わされ、1つまたは2つ以上の仮想スイッチを介して外部IBサブネットに接続され得る。
【0079】
複数のvSwitchを備えた動的な再構成
一実施形態に従うと、本開示は、複数のvSwitchを備えた動的なネットワーク再構成のためのシステムおよび方法を提供する。動的なクラウド環境においては、ライブマイグレーションが処理可能であり、スケーラブルであり得る。VMがマイグレートされ、そのアドレスを宛先に伝えなければならない場合、ネットワーク再構成が必要となる。基礎をなすIBルーティング(たとえば線形のフォワーディングテーブルおよびルート)に影響を及ぼさない高レベルのアドレスであるので、仮想またはエイリアスのGUID(virtual GUID:vGUID)と、結果的にGIDとについてのマイグレーションはさほど負荷を及ぼすものではない。さらに、vGUIDのマイグレーションの場合、マイグレーションが完了したときに、入来するVMに関連付けられたvGUIDをVM上で割当てられるであろうVFに設定するために、SMPを宛先ハイパーバイザに送信しなければならない。しかしながら、LIDのマイグレーションはそれほど単純ではない。なぜなら、ルートを再計算しなければならず、物理スイッチのLFTを再構成する必要があるからである。ルートおよび分配の再計算には、大規模なサブネット上で分のオーダで経過するかなり長い時間が必要がとなり、スケーラビリティについて問題をもたらす。
【0080】
一実施形態に従うと、vSwitchは、vSwitchを介してアクセスされるすべてのVFがPFと同じアップリンクを共有する特性を有する。トポロジーに依存しない動的再構成メカニズムは、この特性を利用して、動的なマイグレーション環境上で再構成を実行可能にすることができる。LID再構成時間は、経路計算を排除し経路分配を減らすことによって最小限にすることができる。当該方法は、上述の2つのvSwitchアーキテクチャ(LIDが予めポピュレートされ動的LID割当てがなされている)に関してわずかに異なっているが、基本的には同じである。
【0081】
一実施形態に従うと、動的再構成方法は概して2つのステップを含む。すなわち、(a)関与するハイパーバイザにおいてLIDを更新する:1つのサブネット管理パケット(SMP)が、ライブマイグレーションに関与するハイパーバイザの各々に送信されて、これらハイパーバイザの各々に、適切なLIDを対応するVFに設定するように/設定し直すように指示する;(b)物理スイッチ上において線形のフォワーディングテーブル(LFT)を更新する。2つのSMPうち一方または大きい方が1つ以上のスイッチ上に送信され、これらに、対応するLFTエントリを更新させて、マイグレートされた仮想マシンの新しい位置を反映させるようにする。これは、仮想マシンをマイグレートしてネットワークを再構成するための手順において、以下に、より具体的に記載される。
【0083】
LIDが予めポピュレートされたvSwitchにおける再構成
図8は、一実施形態に従った、仮想マシンマイグレーション前における、LIDが予めポピュレートされた例示的なvSwitchアーキテクチャを示す。図に示されるように、いくつかのスイッチ501〜504は、ネットワーク切替環境800(たとえばIBサブネット)内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックは、ホストチャネルアダプタ510、520、530などのいくつかのハードウェアデバイスを含み得る。ホストチャネルアダプタ510、520および530は、それぞれ、さらにハイパーバイザ511、521および531と対話することができる。各々のハイパーバイザは、ホストチャネルアダプタと共に、いくつかの仮想機能514、515、516、524、525、526、534、535および536と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン1 550はハイパーバイザ511によって仮想機能1 514に割当てることができる。ハイパーバイザ511は、加えて、仮想マシン2 551を仮想機能2 515に割当てることができ、仮想マシン3 552を仮想機能3 516に割当てることができる。ハイパーバイザ531はさらに、仮想マシン4 553を仮想機能1 534に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上における十分な機能を有する物理機能513、523および533を介してホストチャネルアダプタにアクセスすることができる。
【0084】
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521、531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
【0085】
一実施形態に従うと、スイッチ501〜504の各々はいくつかのポート(図示せず)を含み得る。いくつかのポートは、ネットワーク切替環境800内においてトラフィックを方向付けるために、スイッチ501に関連付けられた線形のフォワーディングテーブル810などの線形のフォワーディングテーブルを設定するのに用いられる。図に示されるように、線形のフォワーディングテーブル810は、仮想マシン2 551(すなわちLID3)にアドレス指定されたトラフィックをスイッチ501のポート2を介して転送する。同様に、VMが実行されていなくても経路がすべてのLIDのために存在しているので、線形のフォワーディングテーブルはスイッチ501のポート4を介してLID12へのフォワーディング経路を定義することができる。
【0086】
図9は、一実施形態に従った、仮想マシンマイグレーション後における、LIDが予めポピュレートされた例示的なvSwitchアーキテクチャを示す。図に示されるように、いくつかのスイッチ501〜504は、ネットワーク切替環境900(たとえばIBサブネット)内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックはホストチャネルアダプタ510、520、530などのいくつかのハードウェアデバイスを含み得る。ホストチャネルアダプタ510、520および530は、それぞれ、ハイパーバイザ511、521および531と対話することができる。各々のハイパーバイザは、ホストチャネルアダプタと共に、いくつかの仮想機能514、515、516、524、525、526、534、535および536と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン1 550はハイパーバイザ511によって仮想機能1 514に割当てることができる。ハイパーバイザ511は、加えて、仮想マシン2 551を仮想機能2 515に割当てることができ、仮想マシン3 552を仮想機能3 516に割当てることができる。ハイパーバイザ531はさらに、仮想マシン4 553を仮想機能1 534に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上における十分な機能を有する物理機能513、523および533を介してホストチャネルアダプタにアクセスすることができる。
【0087】
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521、531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
【0088】
一実施形態に従うと、スイッチ501〜504の各々はいくつかのポート(図示せず)を含み得る。いくつかのポートは、ネットワーク切替環境900内においてトラフィックを方向付けるために、スイッチ501に関連付けられた線形のフォワーディングテーブル910などの線形のフォワーディングテーブルを設定する際に用いられる。
【0089】
一実施形態に従うと、仮想マシン2 551をハイパーバイザ511からハイパーバイザ531にマイグレートする必要があり、かつ、ハイパーバイザ531上の仮想機能3 536が利用可能である場合、仮想マシン2は仮想機能3 536に付与することができる。このような状況では、LIDはスワップすることができる(すなわち、マイグレートしているVMに割当てられたLIDのエントリは、ライブマイグレーションが完了した後、宛先ハイパーバイザにおいて用いられることになっているVFのLIDとスワップすることができる)。スイッチ501上の線形のフォワーディングテーブル910は図示されるように更新することができる。すなわち、LID3へのトラフィックが、ここで、ポート4(それ以前にはポート2)を介して転送され、LID12への経路が、ここで、ポート2(それ以前にはポート4)を介して転送される。
【0090】
一実施形態に従うと、LIDが予めポピュレートされたvSwitchアーキテクチャの場合、VMが実行されていなくても、経路はすべてのLIDのために存在している。LIDをマイグレートして最初のルーティングの平衡度を維持するために、すべてのスイッチ上の2つのLFTエントリがスワップされ得る。マイグレートしているVMに割当てられたLIDのエントリが、ライブマイグレーションの完了後に、宛先ハイパーバイザにおいて用いられることとなるVFのLIDとスワップされ得る(すなわち、マイグレートしている仮想マシンが宛先ハイパーバイザに付与する仮想機能)。
図7および8を再び参照すると、LID2を備えたVM1 550をハイパーバイザ551からハイパーバイザ531へマイグレートする必要があり、かつ、ハイパーバイザ531上のLID12を備えたVF3 536が利用可能であり、マイグレートしている仮想マシン1 551に付与されるべきであると決定された場合、スイッチ501のLFTを更新することができる。マイグレーション前に、LID2がポート2を介して転送され、LID12がポート4を介して転送された。マイグレーション後に、LID2がポート4を介して転送され、LID12がポート2を介して転送される。この場合、この更新のためにSMPを1つだけ送信する必要がある。なぜなら、LFTがブロックごとに64個のLIDのブロックで更新され、LID2およびLID12がともに、LID0からLID63を含む同じブロックの一部となるからである。逆に、ハイパーバイザ531上のVF3のLIDが64以上であった場合、2つのLFTブロックの更新が必要となり得るので、2つのSMPが送信される必要があるだろう。2つのLFTブロックとは、すなわち、LID2(VM LID)を含むブロックと、63よりも大きい、スワップされるべきLIDを含むブロックとである。
【0091】
動的LID割当てがなされたvSwitchにおける再構成
一実施形態に従うと、動的LID割当てがなされたvSwitchアーキテクチャの場合、VFの経路は、VMがその時点でホストされているハイパーバイザの対応するPFの経路と同じ経路を追従する。VMが移動すると、システムは、宛先ハイパーバイザのPFに割当てられているLIDを見出して、すべてのスイッチのLFTをすべて繰返し、VM LIDのための経路を宛先ハイパーバイザの経路で更新しなければならない。LIDが予めポピュレートされた再構成において用いられるLIDスワッピング技術とは対照的に、SMPが1つだけ、更新される必要のあるスイッチに常に送信される必要がある。なぜなら、プロセスに関与するLIDが1つしか存在しないからである。
【0092】
再構成の従来のコスト
一実施形態に従うと、完全にネットワークを再構成する方法に必要な時間RC
tは、式1に示されるように、経路計算のために必要な時間PC
tとすべてのスイッチに対するLFT分配に必要な時間LFTD
tとの合計である。
【0094】
一実施形態に従うと、経路の計算の複雑さは、サブネットのサイズに合わせて多項式的に大きくなり、PC
tは大規模なサブネット上においては数分のオーダとなる。
【0095】
経路が計算された後、IBサブネットなどのネットワークにおけるスイッチのLFTを更新することができる。LFT分配時間LFTD
tは、サブネットのサイズおよびスイッチの量に応じて直線的に大きくなる。上述のとおり、LFTが64個のLIDのブロック上で更新され、このため、わずか数個のスイッチを備え最大64個までのLIDが消費される小規模なサブネットにおいては、経路分配中に各々のスイッチごとにSMPを1つだけ送信する必要がある。49151個のLIDが消費された十分にポピュレートされたIBサブネットなどの他の状況においては、従来のモデルでは、1個のスイッチ毎に768個のSMPが経路分配中に送信される必要がある。
【0096】
SMPは、向きが定められたルーティング(directed routing)または宛先ベースのルーティングを用いることができる。向きが定められたルーティングを用いる場合、各々の中間スイッチは、その時点のホップポインタで、パケットのヘッダを処理して更新し、経路を逆転させてから、パケットを次のホップに転送しなければならない。宛先ベースのルーティングにおいては、各々のパケットが直ちに転送される。必然的に、向きが定められたルーティングにより、転送されたパケットに待ち時間を追加することができる。それにもかかわらず、向きが定められたルーティングは、OpenSMによって従来のすべてのSMPのために用いられている。これは、LFTがまだスイッチに分配されていない場合、または、再構成が行なわれており、スイッチに向かうルートが変化している場合には、最初のトポロジー発見プロセスのために必要である。
【0097】
ここで、nをネットワークにおけるいくつかのスイッチとすると、mは、各々のスイッチ上で更新されるであろうすべてのLFTブロックの数であって、消費されたLIDの数によって決定され、kは、各々のSMPが各々のスイッチに達する前にネットワークを横断するのに必要とされる平均時間であり、rは、向きが定められたルーティングにより各々のSMPのために追加された平均時間である。パイプライン化がないと想定すると、LFT分配時間LFTD
tは、式2においてさらに分解することができる:
【0099】
式1と式2とを組合わせることにより、ネットワークを完全に再構成するために必要な時間についての結果である式3が得られる:
【0101】
大規模なサブネットにおいては、従来より、スイッチm個当たりより多くのLIDと、結果としてより多くのLFTブロックとが用いられる場合、かつ、より多くのスイッチnがネットワークに存在している場合に、LFTD
tがより大きくなったとしても、経路計算に必要な時間PC
tはLFT分配に必要な時間LFTD
tよりもはるかに大きくなる。式2および式3におけるn・mの部分は、再構成のために送信される必要のあるSMPの総数を定義している。
【0102】
vSwitchアーキテクチャを用いたライブマイグレーションのための再構成コスト
従来の再構成技術を用いることによりVMマイグレーションが使用不可能になるだろう。大規模なサブネットにおいては、式3におけるPC
tが非常に大きくなり、RC
tよりも優位となる。ライブマイグレーションが従来の完全な再構成をトリガした場合、これは完了するのに概して数分かかるだろう。
【0103】
一実施形態に従うと、LIDが予めポピュレートされたvSwitchまたは動的LID割当てがなされたvSwitchを利用することにより、再構成時間のPC
t部分を本質的になくすことができる。なぜなら、各々のスイッチのLFTにおけるLIDエントリをスワップするかまたはコピーするために経路が既に計算されているからである。さらに、スイッチ1個当たりにm個のSMPを送信する必要性がなくなる。なぜなら、VMがマイグレートされると、LFTブロックの総数にかかわらず、提案されたvSwitchスキームのうちのいずれが用いられるかに応じて、2つのLIDうち1つだけまたは大きい方のLIDだけが影響を受けるからである。結果として、各マイグレーションごとに、m′∈{1,2}SMPだけがスイッチに送信される必要がある(LIDが予めポピュレートされている場合に2つのLIDエントリが同じLFTブロックに位置していなければ、m′=2となり、他の場合にはm′=1となる)。同様に、0<n′<n個のスイッチが更新されなければならない場合もある。
【0104】
一実施形態に従うと、ここで、一実施形態に従った、潜在的な仮想マシンマイグレーション経路でLIDが予めポピュレートされた例示的なvSwitchアーキテクチャを示す
図10を参照する。図に示されるように、いくつかのスイッチ501〜504は、ネットワーク切替環境1000(たとえばIBサブネット)内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックは、ホストチャネルアダプタ510、520、530などのいくつかのハードウェアデバイスを含み得る。ホストチャネルアダプタ510、520および530は、それぞれ、ハイパーバイザ511、521および531と対話することができる。各々のハイパーバイザは、さらに、ホストチャネルアダプタと共に、いくつかの仮想機能514、515、516、524、525、526、534、535および536と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン1 550はハイパーバイザ511によって仮想機能1 514に割当てることができる。ハイパーバイザ511は、加えて、仮想マシン2 551を仮想機能2 515に割当て、仮想マシン3 552を仮想機能3 516に割当てることができる。ハイパーバイザ531はさらに、仮想マシン4 553を仮想機能1 534に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上における十分な機能を有する物理機能513、523および533を介してホストチャネルアダプタにアクセスすることができる。
【0105】
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521、531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
【0106】
一実施形態に従うと、スイッチ501〜504の各々はいくつかのポート(図示せず)を含み得る。いくつかのポートは、ネットワーク切替環境1000内においてトラフィックを方向付けるために、スイッチ501に関連付けられた線形のフォワーディングテーブル1010などの線形のフォワーディングテーブルを設定するのに用いられる。
【0107】
一実施形態に従うと、
図10は、VM2 551が潜在的にハイパーバイザ511からハイパーバイザ521に(ここでは3つの利用可能な仮想機能がある)をマイグレートすることができるネットワーク切替環境1000における状況を示す。LID3がハイパーバイザ521において利用可能なLIDのうちのいずれか(6、7または8)とスワップされていた場合、スイッチ501は更新される必要が全くないだろう。なぜなら、最初のルーティングで既にLID3がルーティングされ、LID6、LID7およびLID8がスイッチ501上の同じポート(ポート2)を共有しているからである。特に、スイッチ503(すなわちリーフスイッチ)だけが更新される必要があり得るので、この例の場合、n′=1となる。
【0108】
一実施形態に従うと、最終的に、開示された再構成メカニズムのコストvSwitch RC
tが式4において見出され、大規模なサブネットにおいては、vSwitch RC
tがRC
tよりもはるかに小さくなる。
【0110】
一実施形態に従うと、SMPパケットのための宛先ベースのルーティングを用いることができる。VMがマイグレートされると、スイッチに属するLIDのためのルートは影響を受けないだろう。したがって、宛先ベースのルーティングにより、確実にSMPをスイッチに適切に送達することができ、rを式4から省いて式5を得ることができる:
【0112】
一実施形態に従うと、パイプライン化を用いて、vSwitch再構成時間をさらに減らすことができる。
【0113】
図11は、一実施形態に従った、ネットワークにおいて仮想マシンマイグレーションをサポートするための方法のフローチャートである。ステップ1110において、当該方法は、1つ以上のマイクロプロセッサを含む1つ以上のコンピュータにおいて、少なくともリーフスイッチを含む1つ以上のスイッチを設けることができ、当該1つ以上のスイッチの各々は複数のポートを含む。当該方法はさらに、複数のホストチャネルアダプタを設けることができ、ホストチャネルアダプタの各々は少なくとも1つの仮想機能を含み、複数のホストチャネルアダプタは1つ以上のスイッチを介して相互接続されている。当該方法はさらに、複数のハイパーバイザを設けることができ、複数のハイパーバイザの各々は、複数のホストチャネルアダプタのうち少なくとも1つに関連付けられている。当該方法はさらに、複数の仮想マシンを設けることができる。複数の仮想マシンの各々は少なくとも1つの仮想機能に関連付けられている。
【0114】
ステップ1120において、当該方法は、予めポピュレートされたローカル識別子(LID)アーキテクチャを用いた仮想スイッチ、または、動的LID割当てアーキテクチャを用いた仮想スイッチのうち1つ以上を備えた複数のホストチャネルアダプタを配置することができる。
【0115】
ステップ1130において、当該方法は、複数のハイパーバイザのうち第1のハイパーバイザ上で動作している、複数の仮想マシンのうち第1の仮想マシンを、複数のハイパーバイザのうち第2のハイパーバイザにライブマイグレートすることができる。この場合、第1のハイパーバイザは、複数のホストチャネルアダプタのうち第1のホストチャネルアダプタに関連付けられ、第2のハイパーバイザは、複数のホストチャネルアダプタのうち第2のホストチャネルアダプタに関連付けられている。
【0116】
本発明は、本開示の教示に従ってプログラミングされた1つ以上のプロセッサ、メモリおよび/またはコンピュータ読取り可能記憶媒体を含む、1つ以上の従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを使用して、便宜的に実現され得る。ソフトウェア技術の当業者には明らかであるように、本開示の教示に基づいて、熟練したプログラマーが適切なソフトウェアコーディングを容易に準備することができる。
【0117】
いくつかの実施形態においては、本発明は、本発明のプロセスのうちいずれかを行なうようにコンピュータをプログラミングするために使用可能な命令を格納する記憶媒体またはコンピュータ読取り可能媒体であるコンピュータプログラム製品を含む。記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気カードまたは光カード、ナノシステム(分子メモリICを含む)、または、命令および/もしくはデータを格納するのに適した任意のタイプの媒体もしくはデバイスを含み得るものの、それらに限定されない。
【0118】
この発明の前述の記載は、例示および説明のために提供されてきた。それは、網羅的であるよう、またはこの発明を開示された形態そのものに限定するよう意図されてはいない。当業者には、多くの修正および変形が明らかになるだろう。修正および変形は、開示された特徴のあらゆる関連する組合せを含む。実施形態は、この発明の原理およびその実際的な適用を最良に説明するために選択および説明されたものであり、それにより、他の当業者が、特定の使用に適したさまざまな修正を考慮して、さまざまな実施形態についてこの発明を理解することを可能にする。この発明の範囲は、請求項およびそれらの均等物によって定義されることが意図されている。