JP2018508856A - 高性能クラウドコンピューティング環境のためのインフィニバンドSR−IOV vSwitchアーキテクチャを提供するためのシステムおよび方法 - Google Patents

高性能クラウドコンピューティング環境のためのインフィニバンドSR−IOV vSwitchアーキテクチャを提供するためのシステムおよび方法 Download PDF

Info

Publication number
JP2018508856A
JP2018508856A JP2017535006A JP2017535006A JP2018508856A JP 2018508856 A JP2018508856 A JP 2018508856A JP 2017535006 A JP2017535006 A JP 2017535006A JP 2017535006 A JP2017535006 A JP 2017535006A JP 2018508856 A JP2018508856 A JP 2018508856A
Authority
JP
Japan
Prior art keywords
hypervisor
switches
host channel
virtual
lid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017535006A
Other languages
English (en)
Other versions
JP6763860B2 (ja
JP2018508856A5 (ja
Inventor
タソウラス,エバンジェロス
ヨンセン,ビョルン・ダグ
グラン,アーンスト・ガンナー
Original Assignee
オラクル・インターナショナル・コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2018508856A publication Critical patent/JP2018508856A/ja
Publication of JP2018508856A5 publication Critical patent/JP2018508856A5/ja
Application granted granted Critical
Publication of JP6763860B2 publication Critical patent/JP6763860B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Information Transfer Systems (AREA)

Abstract

トランスペアレントな仮想化およびライブマイグレーションをサポートする仮想スイッチ(vSwitch)アーキテクチャを実現するためのシステムおよび方法を提供する。一実施形態においては、ローカル識別子(LID)が予めポピュレートされたvSwitchが提供される。別の実施形態は、動的LID割当てがなされたvSwitchを提供する。別の実施形態は、LIDが予めポピュレートされ動的LID割当てがなされたvSwitchを提供する。さらに、本発明の実施形態は、ネットワーク環境においてVMのライブマイグレーションを可能にするスケーラブルな動的ネットワーク再構成方法を提供する。

Description

著作権表示:
この特許文献の開示の一部は、著作権保護の対象となる資料を含む。この特許文献または特許開示は特許商標庁の特許ファイルまたは記録に記載されているため、著作権保有者は、何人によるその複写複製に対しても異議はないが、その他の場合には如何なるときもすべての著作権を保有する。
発明の分野:
本発明は、概して、コンピュータシステムに関し、特に、SR−IOV vSwitchアーキテクチャを用いるコンピュータシステム仮想化およびライブマイグレーションをサポートすることに関する。
背景:
導入されるクラウドコンピューティングアーキテクチャがより大規模になるのに応じて、従来のネットワークおよびストレージに関する性能および管理の障害が深刻な問題になってきている。クラウドコンピューティングファブリックのための基礎としてインフィニバンド(登録商標)(InfiniBand:IB)技術を用いることへの関心がますます高まってきている。これは、本発明の実施形態が対応するように意図された一般領域である。
概要:
サブネットにおいて仮想マシンマイグレーションをサポートするためのシステムおよび方法がこの明細書中に記載される。例示的な方法は、1つ以上のマイクロプロセッサを含む1つ以上のコンピュータにおいて、1つ以上のスイッチを設けることができ、当該1つ以上のスイッチは少なくともリーフスイッチを含み、当該1つ以上のスイッチの各々は複数のポートを含み、当該方法はさらに、当該1つ以上のスイッチを介して相互接続される複数のホストチャネルアダプタと、複数のハイパーバイザとを設けることができる。当該複数のハイパーバイザの各々は当該複数のホストチャネルアダプタのうちの1つに関連付けられている。当該方法はさらに、複数の仮想マシンを設けることができる。当該方法はさらに、予めポピュレートされたローカル識別子(local identifier:LID)アーキテクチャを用いた仮想スイッチ、または動的LID割当てアーキテクチャを用いた仮想スイッチのうち1つ以上を有する複数のホストチャネルアダプタを配置することができる。当該方法は、加えて、当該複数のハイパーバイザのうち第1のハイパーバイザ上で動作する、当該複数の仮想マシンのうち第1の仮想マシンを、当該複数のハイパーバイザのうち第2のハイパーバイザにライブマイグレートすることができる。当該第1のハイパーバイザは、当該複数のホストチャネルアダプタのうち第1のホストチャネルアダプタに関連付けられ、当該第2のハイパーバイザは、当該複数のホストチャネルアダプタのうち第2のホストチャネルアダプタに関連付けられる。
一実施形態に従ったインフィニバンド環境の一例を示す図である。 一実施形態に従った、ネットワーク環境におけるツリートポロジーの一例を示す図である。 一実施形態に従った例示的な共有ポートアーキテクチャを示す図である。 一実施形態に従った例示的なvSwitchアーキテクチャを示す図である。 一実施形態に従った、LIDが予めポピュレートされた例示的なvSwitchアーキテクチャを示す図である。 一実施形態に従った、動的LID割当てがなされた例示的なvSwitchアーキテクチャを示す図である。 一実施形態に従った、動的LID割当てがなされかつLIDが予めポピュレートされているvSwitchを備えた例示的なvSwitchアーキテクチャを示す図である。 一実施形態に従った、仮想マシンマイグレーション前の、LIDが予めポピュレートされた例示的なvSwitchアーキテクチャを示す図である。 一実施形態に従った、仮想マシンマイグレーション後の、LIDが予めポピュレートされた例示的なvSwitchアーキテクチャを示す図である。 一実施形態に従った、潜在的な仮想マシンマイグレーション経路を備えた、LIDが予めポピュレートされた例示的なvSwitchアーキテクチャを示す図である。 一実施形態に従った、サブネットにおいて仮想マシンマイグレーションをサポートするための方法を示すフローチャートである。
詳細な説明:
本発明は、同様の参照番号が同様の要素を指している添付図面の図において、限定のためではなく例示のために説明されている。なお、この開示における「ある」または「1つの」または「いくつかの」実施形態への参照は必ずしも同じ実施形態に対するものではなく、そのような参照は少なくとも1つを意味する。特定の実現例が説明されるが、これらの特定の実現例が例示的な目的のためにのみ提供されることが理解される。当業者であれば、他の構成要素および構成が、この発明の範囲および精神から逸脱することなく使用され得ることを認識するであろう。
図面および詳細な説明全体にわたって同様の要素を示すために、共通の参照番号が使用され得る。したがって、ある図で使用される参照番号は、要素が別のところで説明される場合、そのような図に特有の詳細な説明において参照される場合もあり、または参照されない場合もある。
ネットワークにおける仮想マシン(virtual machine:VM)マイグレーションをサポートすることができるシステムおよび方法がこの明細書中に記載される。
この発明の以下の説明は、高性能ネットワークについての一例として、インフィニバンド(IB)ネットワークを使用する。他のタイプの高性能ネットワークが何ら限定されることなく使用され得ることが、当業者には明らかであるだろう。以下の説明ではまた、ファブリックトポロジーについての一例として、ファットツリートポロジーを使用する。他のタイプのファブリックトポロジーが何ら限定されることなく使用され得ることが当業者には明らかであるだろう。
本発明の一実施形態に従うと、仮想化は、クラウドコンピューティングにおける効率的なリソース利用および融通性のあるリソース割当てに有益であり得る。ライブマイグレーションは、アプリケーションにトランスペアレントな態様で物理サーバ間で仮想マシン(VM)を移動させることによってリソース使用を最適化することを可能にする。このため、仮想化は、ライブマイグレーションによる統合、リソースのオン・デマンド・プロビジョニングおよび融通性を可能にし得る。
インフィニバンド(登録商標)
インフィニバンド(IB)は、インフィニバンド・トレード・アソシエーション(InfiniBandTM Trade Association)によって開発されたオープン標準無損失ネットワーク技術である。この技術は、特に高性能コンピューティング(high-performance computing:HPC)アプリケーションおよびデータセンタを対象とする、高スループットおよび少ない待ち時間の通信を提供するシリアルポイントツーポイント全二重相互接続(serial point-to-point full-duplex interconnect)に基づいている。
インフィニバンドアーキテクチャ(InfiniBand Architecture:IBA)は、2層トポロジー分割をサポートする。低層では、IBネットワークはサブネットと呼ばれ、1つのサブネットは、スイッチおよびポイントツーポイントリンクを使用して相互接続される一組のホストを含み得る。より高いレベルでは、1つのIBファブリックは、ルータを使用して相互接続され得る1つ以上のサブネットを構成する。
1つのサブネット内で、ホストは、スイッチおよびポイントツーポイントリンクを使用して接続され得る。加えて、サブネットにおける指定されたサブネットデバイス上に存在する、1つのマスター管理エンティティ、すなわちサブネットマネージャ(subnet manager:SM)があり得る。サブネットマネージャは、IBサブネットを構成し、起動し、維持する役割を果たす。加えて、サブネットマネージャ(SM)は、IBファブリックにおいてルーティングテーブル計算を行なう役割を果たし得る。ここで、たとえば、IBネットワークのルーティングは、ローカルサブネットにおけるすべての送信元と宛先とのペア間の適正な負荷バランシングを目標とする。
サブネット管理インターフェイスを通して、サブネットマネージャは、サブネット管理パケット(subnet management packet:SMP)と呼ばれる制御パケットを、サブネット管理エージェント(subnet management agent:SMA)と交換する。サブネット管理エージェントは、すべてのIBサブネットデバイス上に存在する。SMPを使用することにより、サブネットマネージャは、ファブリックを発見し、エンドノードおよびスイッチを構成し、SMAから通知を受信することができる。
一実施形態によれば、IBネットワークにおけるサブネット間およびサブネット内のルーティングは、スイッチに格納されたLFTに基づき得る。LFTは、使用中のルーティングメカニズムに従って、SMによって計算される。サブネットでは、エンドノード上のホストチャネルアダプタ(Host Channel Adapter:HCA)ポートおよびスイッチが、ローカル識別子(LID)を使用してアドレス指定される。LFTにおける各エントリは、宛先LID(destination LID:DLID)と出力ポートとからなる。テーブルにおけるLIDごとに1つのエントリのみがサポートされる。パケットがあるスイッチに到着すると、その出力ポートは、そのスイッチのフォワーディングテーブルにおいてDLIDを検索することによって判断される。所与の送信元−宛先ペア(LIDペア)間のネットワークにおいてパケットは同じ経路を通るため、ルーティングは決定論的である。
一般に、マスターサブネットマネージャを除く他のすべてのサブネットマネージャは、耐故障性のために待機モードで作動する。しかしながら、マスターサブネットマネージャが故障した状況では、待機中のサブネットマネージャによって、新しいマスターサブネットマネージャが取り決められる。マスターサブネットマネージャはまた、サブネットの周期的なスイープ(sweep)を行なってあらゆるトポロジー変化を検出し、それに応じてネットワークを再構成する。
さらに、サブネット内のホストおよびスイッチは、ローカル識別子(LID)を使用してアドレス指定可能であり、単一のサブネットは49151個のユニキャストLIDに制限可能である。サブネット内で有効なローカルアドレスであるLIDの他に、各IBデバイスは、64ビットのグローバル一意識別子(global unique identifier:GUID)を有し得る。GUIDは、IBレイヤー3(L3)アドレスであるグローバル識別子(global identifier:GID)を形成するために使用され得る。
SMは、ネットワーク初期化時間に、ルーティングテーブル(すなわち、サブネット内のノードの各ペア間の接続/ルート)を計算し得る。さらに、トポロジーが変化するたびに、ルーティングテーブルは、接続性および最適性能を確実にするために更新され得る。通常動作中、SMは、トポロジー変化をチェックするためにネットワークの周期的なライトスイープ(light sweep)を実行し得る。ライトスイープ中に変化が発見された場合、または、ネットワーク変化を信号で伝えるメッセージ(トラップ)をSMが受信した場合、SMは、発見された変化に従ってネットワークを再構成し得る。
たとえば、SMは、リンクがダウンした場合、デバイスが追加された場合、またはリンクが除去された場合など、ネットワークトポロジーが変化する場合に、ネットワークを再構成し得る。再構成ステップは、ネットワーク初期化中に行なわれるステップを含み得る。さらに、再構成は、ネットワーク変化が生じたサブネットに制限されるローカルスコープを有し得る。また、ルータを用いる大規模ファブリックのセグメント化は、再構成スコープを制限し得る。
一実施形態によれば、IBネットワークは、ネットワークファブリックを共有するシステムの論理グループの分離をもたらすためにセキュリティメカニズムとしてパーティショニングをサポートし得る。ファブリックにおけるノード上の各HCAポートは、1つ以上のパーティションのメンバであり得る。パーティションメンバーシップは、SMの一部であり得る集中型パーティションマネージャによって管理される。SMは、各ポートに関するパーティションメンバーシップ情報を、16ビットのパーティションキー(partition key:Pキー)のテーブルとして構成することができる。SMはまた、LIDに関連付けられたPキー情報を含むパーティション実施テーブルを用いて、スイッチおよびルータを構成することができる。加えて、一般的な場合には、スイッチポートのパーティションメンバーシップは、(リンクに向かう)出口方向に向かってポートを介してルーティングされたLIDに間接的に関連付けられたすべてのメンバーシップの集合を表わし得る。
一実施形態によれば、ノード間の通信のために、管理キューペア(QP0およびQP1)を除き、キューペア(Queue Pair:QP)およびエンドツーエンドコンテキスト(End-to-End context:EEC)を特定のパーティションに割当てることができる。次に、Pキー情報を、送信されたすべてのIBトランスポートパケットに追加することができる。パケットがHCAポートまたはスイッチに到着すると、そのPキー値を、SMによって構成されたテーブルに対して確認することができる。無効のPキー値が見つかった場合、そのパケットは直ちに廃棄される。このように、通信は、パーティションを共有するポート間でのみ許可される。
一実施形態に従ったインフィニバンド環境100の例を示す図1に、インフィニバンドファブリックの一例を示す。図1に示す例では、ノードA101〜E105は、インフィニバンドファブリック120を使用して、それぞれのホストチャネルアダプタ111〜115を介して通信する。一実施形態に従うと、さまざまなノード(たとえばノードA101〜E105)はさまざまな物理デバイスによって表わすことができる。一実施形態に従うと、さまざまなノード(たとえばノードA101〜E105)は仮想マシンなどのさまざまな仮想デバイスによって表わすことができる。
インフィニバンドにおける仮想マシン
過去10年の間に、ハードウェア仮想化サポートによってCPUオーバーヘッドが実質的に排除され、メモリ管理ユニットを仮想化することによってメモリオーバーヘッドが著しく削減され、高速SANストレージまたは分散型ネットワークファイルシステムの利用によってストレージオーバーヘッドが削減され、シングルルートI/O仮想化(Single Root Input/Output Virtualization:SR−IOV)のようなデバイス・パススルー技術を使用することによってネットワークI/Oオーバーヘッドが削減されてきたことに応じて、仮想化された高性能コンピューティング(High Performance Computing:HPC)環境の将来見通しが大幅に改善されてきた。現在では、クラウドが、高性能相互接続ソリューションを用いて仮想HPC(virtual HPC:vHPC)クラスタに対応し、必要な性能を提供することができる。
しかしながら、インフィニバンド(IB)などの無損失ネットワークと連結されたとき、仮想マシン(VM)のライブマイグレーションなどのいくつかのクラウド機能は、これらのソリューションにおいて用いられる複雑なアドレス指定およびルーティングスキームのせいで、依然として問題となる。IBは、高帯域および低レイテンシを提供する相互接続ネットワーク技術であり、このため、HPCおよび他の通信集約型のワークロードに非常によく適している。
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)経路記録クエリを送信することによって、再接続すべき仮想マシンの新しいアドレスを突きとめることにより、失われた接続を回復させるように試みることができる。
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アドレスとを組合わせることによって形成される。
ファットツリー(Fat Tree:FTree)トポロジーおよびルーティング
一実施形態によれば、IBベースのHPCシステムのいくつかは、ファットツリートポロジーを採用して、ファットツリーが提供する有用な特性を利用する。これらの特性は、各送信元宛先ペア間の複数経路の利用可能性に起因する、フルバイセクションバンド幅および固有の耐故障性を含む。ファットツリーの背後にある初期の考えは、ツリーがトポロジーのルート(root)に近づくにつれて、より利用可能な帯域幅を用いて、ノード間のより太いリンクを採用することであった。より太いリンクは、上位レベルのスイッチにおける輻輳を回避するのに役立てることができ、バイセクションバンド幅が維持される。
図2は、一実施形態に従った、ネットワーク環境におけるツリートポロジーの例を示す。図2に示すように、ネットワークファブリック200において、1つ以上のエンドノード201〜204が接続され得る。ネットワークファブリック200は、複数のリーフスイッチ211〜214と複数のスパインスイッチまたはルート(root)スイッチ231〜234とを含むファットツリートポロジーに基づき得る。加えて、ネットワークファブリック200は、スイッチ221〜224といった1つ以上の中間スイッチを含み得る。
また、図2に示すように、エンドノード201〜204の各々は、マルチホームノード、すなわち、複数のポートを通してネットワークファブリック200の2つ以上の部分に接続される単一のノードであり得る。たとえば、ノード201はポートH1およびH2を含み、ノード202はポートH3およびH4を含み、ノード203はポートH5およびH6を含み、ノード204はポートH7およびH8を含み得る。
加えて、各スイッチは複数のスイッチポートを有し得る。たとえば、ルートスイッチ231はスイッチポート1〜2を有し、ルートスイッチ232はスイッチポート3〜4を有し、ルートスイッチ233はスイッチポート5〜6を有し、ルートスイッチ234はスイッチポート7〜8を有し得る。
一実施形態によれば、ファットツリールーティングメカニズムは、IBベースのファットツリートポロジーに関して最も人気のあるルーティングアルゴリズムのうちの1つである。ファットツリールーティングメカニズムはまた、OFED(Open Fabric Enterprise Distribution:IBベースのアプリケーションを構築しデプロイするための標準ソフトウェアスタック)サブネットマネージャ、すなわちOpenSMにおいて実現される。
ファットツリールーティングメカニズムの目的は、ネットワークファブリックにおけるリンクにわたって最短経路ルートを均一に広げるLFTを生成することである。このメカニズムは、索引付け順序でファブリックを横断し、エンドノードの目標LID、ひいては対応するルートを各スイッチポートに割当てる。同じリーフスイッチに接続されたエンドノードについては、索引付け順序は、エンドノードが接続されるスイッチポートに依存し得る(すなわち、ポートナンバリングシーケンス)。各ポートについては、メカニズムはポート使用カウンタを維持することができ、新しいルートが追加されるたびに、ポート使用カウンタを使用して使用最小ポートを選択することができる。
上述のように、パーティショニングされたサブネットでは、共通のパーティションのメンバではないノードは通信することを許可されない。実際には、これは、ファットツリールーティングアルゴリズムによって割当てられたルートのうちのいくつかがユーザトラフィックのために使用されないことを意味する。ファットツリールーティングメカニズムが、それらのルートについてのLFTを、他の機能的経路と同じやり方で生成する場合、問題が生じる。この動作は、リンク上でバランシングを劣化させるおそれがある。なぜなら、ノードが索引付けの順序でルーティングされているからである。パーティションに気づかずにルーティングが行なわれるため、ファットツリーでルーティングされたサブネットにより、通常、パーティション間の分離が不良なものとなる。
入出力(Input/Output:I/O)仮想化
一実施形態に従うと、I/O仮想化(I/O Virtualization:IOV)は、仮想マシン(VM)が基礎をなす物理リソースにアクセスできるようにすることによって、I/Oを利用できるようにすることができる。ストレージトラフィックとサーバ間通信とを組合せると、シングルサーバのI/Oリソースにとって抗し難い高い負荷が課され、結果として、データの待機中に、バックログが発生し、プロセッサがアイドル状態になる可能性がある。I/O要求の数が増えるにつれて、IOVにより利用可能性がもたらされ、最新のCPU仮想化において見られる性能レベルに匹敵するように、(仮想化された)I/Oリソースの性能、スケーラビリティおよび融通性を向上させることができる。
一実施形態に従うと、I/Oリソースの共有を可能にして、VMからリソースへのアクセスが保護されることを可能にし得るようなIOVが所望される。IOVは、VMにエクスポーズされる論理装置を、その物理的な実装から分離する。現在、エミュレーション、準仮想化、直接的な割当て(direct assignment:DA)、およびシングルルートI/O仮想化(single root-I/O virtualization:SR−IOV)などのさまざまなタイプのIOV技術が存在し得る。
一実施形態に従うと、あるタイプのIOV技術としてソフトウェアエミュレーションがある。ソフトウェアエミュレーションは分離されたフロントエンド/バックエンド・ソフトウェアアーキテクチャを可能にし得る。フロントエンドはVMに配置されたデバイスドライバであり得、I/Oアクセスをもたらすためにハイパーバイザによって実現されるバックエンドと通信し得る。物理デバイス共有比率は高く、VMのライブマイグレーションはネットワークダウンタイムのわずか数ミリ秒で実現可能である。しかしながら、ソフトウェアエミュレーションはさらなる不所望な計算上のオーバーヘッドをもたらしてしまう。
一実施形態に従うと、別のタイプのIOV技術として直接的なデバイスの割当てがある。直接的なデバイスの割当てでは、I/OデバイスをVMに連結する必要があるが、デバイスはVM間では共有されない。直接的な割当てまたはデバイス・パススルーは、最小限のオーバーヘッドでほぼ固有の性能を提供する。物理デバイスはハイパーバイザをバイパスし、直接、VMに取付けられている。しかしながら、このような直接的なデバイスの割当ての欠点は、仮想マシン間で共有がなされないため、1枚の物理ネットワークカードが1つのVMと連結されるといったように、スケーラビリティが制限されてしまうことである。
一実施形態に従うと、シングルルート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は優れた性能およびスケーラビリティを提供することができる。
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との間の変換を中断する。
しかし、残念ながら、直接的デバイス割当て技術は、仮想マシンのトランスペアレントなライブマイグレーションがデータセンタ最適化のために所望されるような状況においては、クラウドプロバイダにとって障壁となる。ライブマイグレーションの本質は、VMのメモリ内容がリモートハイパーバイザにコピーされるという点である。さらに、VMがソースハイパーバイザにおいて中断され、VMの動作が宛先において再開される。ソフトウェアエミュレーション方法を用いる場合、ネットワークインターフェイスは、それらの内部状態がメモリに記憶され、さらにコピーされるように仮想的である。このため、ダウンタイムは数ミリ秒にまで減らされ得る。
しかしながら、SR−IOVなどの直接的デバイス割当て技術が用いられる場合、マイグレーションはより困難になる。このような状況においては、ネットワークインターフェイスの内部状態全体は、それがハードウェアに結び付けられているのでコピーすることができない。代わりに、VMに割当てられたSR−IOV VFが分離され、ライブマイグレーションが実行されることとなり、新しいVFが宛先において付与されることとなる。インフィニバンドおよびSR−IOVの場合、このプロセスがダウンタイムを数秒のオーダでもたらす可能性がある。さらに、SR−IOV共有型ポートモデルにおいては、VMのアドレスがマイグレーション後に変化することとなり、これにより、SMにオーバーヘッドが追加され、基礎をなすネットワークファブリックの性能に対して悪影響が及ぼされることとなる。
インフィニバンドSR−IOVアーキテクチャ−共有ポート
さまざまなタイプのSR−IOVモデル(たとえば共有ポートモデルおよび仮想スイッチモデル)があり得る。
図3は、一実施形態に従った例示的な共有ポートアーキテクチャを示す。図に示されるように、ホスト300(たとえばホストチャネルアダプタ)はハイパーバイザ310と対話し得る。ハイパーバイザ310は、さまざまな仮想機能330、340および350をいくつかの仮想マシンに割当て得る。同様に、物理機能はハイパーバイザ310によって処理することができる。
一実施形態に従うと、図3に示されるような共有ポートアーキテクチャを用いる場合、ホスト(たとえばHCA)は、物理機能320と仮想機能330、350、350との間において単一の共有LIDおよび共有キュー対(Queue Pair:QP)のスペースがあるネットワークにおいて単一のポートとして現われる。しかしながら、各々の機能(すなわち、物理機能および仮想機能)はそれら自体のGIDを有し得る。
図3に示されるように、一実施形態に従うと、さまざまなGIDを仮想機能および物理機能に割当てることができ、特別のキュー対であるQP0およびQP1(すなわちインフィニバンド管理パケットのために用いられる専用のキュー対)が物理機能によって所有される。これらのQPはVFにも同様にエクスポーズされるが、VFはQP0を使用することが許可されておらず(VFからQP0に向かって入来するすべてのSMPが廃棄され)、QP1は、PFが所有する実際のQP1のプロキシとして機能し得る。
一実施形態に従うと、共有ポートアーキテクチャは、(仮想機能に割当てられることによってネットワークに付随する)VMの数によって制限されることのない高度にスケーラブルなデータセンタを可能にし得る。なぜなら、ネットワークにおける物理的なマシンおよびスイッチによってLIDスペースが消費されるだけであるからである。
しかしながら、共有ポートアーキテクチャの欠点は、トランスペアレントなライブマイグレーションを提供することができない点であり、これにより、フレキシブルなVM配置についての可能性が妨害されてしまう。各々のLIDが特定のハイパーバイザに関連付けられており、かつハイパーバイザ上に常駐するすべてのVM間で共有されているので、マイグレートしているVM(すなわち、宛先ハイパーバイザにマイグレートする仮想マシン)は、そのLIDを宛先ハイパーバイザのLIDに変更させなければならない。さらに、QP0アクセスが制限された結果、サブネットマネージャはVMの内部で実行させることができなくなる。
インフィニバンドSR−IOVアーキテクチャモデル−仮想スイッチ(vSwitch)
さまざまなタイプのSR−IOVモデル(たとえば共有ポートモデルおよび仮想スイッチモデル)があり得る。
図4は、一実施形態に従った例示的なvSwitchアーキテクチャを示す。図に示されるように、ホスト400(たとえばホストチャネルアダプタ)はハイパーバイザ410と対話することができ、当該ハイパーバイザ410は、さまざまな仮想機能430、440および450をいくつかの仮想マシンに割当てることができる。同様に、物理機能はハイパーバイザ410によって処理することができる。仮想スイッチ415もハイパーバイザ401によって処理することができる。
一実施形態に従うと、vSwitchアーキテクチャにおいては、各々の仮想機能430、440、450は完全な仮想ホストチャネルアダプタ(virtual Host Channel Adapter:vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSMについては、HCA400は、仮想スイッチ415を介して追加のノードが接続されているスイッチのように見えている。ハイパーバイザ410はPF420を用いることができ、(仮想機能に付与された)VMはVFを用いる。
一実施形態に従うと、vSwitchアーキテクチャは、トランスペアレントな仮想化を提供する。しかしながら、各々の仮想機能には固有のLIDが割当てられているので、利用可能な数のLIDが速やかに消費される。同様に、多くのLIDアドレスが(すなわち、各々の物理機能および各々の仮想機能ごとに1つずつ)使用されている場合、より多くの通信経路をSMによって計算しなければならず、それらのLFTを更新するために、より多くのサブネット管理パケット(SMP)をスイッチに送信しなければならない。たとえば、通信経路の計算は大規模ネットワークにおいては数分かかる可能性がある。LIDスペースが49151個のユニキャストLIDに制限されており、(VFを介する)各々のVMとして、物理ノードおよびスイッチがLIDを1つずつ占有するので、ネットワークにおける物理ノードおよびスイッチの数によってアクティブなVMの数が制限されてしまい、逆の場合も同様に制限される。
インフィニバンドSR−IOVアーキテクチャモデル−LIDが予めポピュレートされたvSwitch
一実施形態に従うと、本開示は、LIDが予めポピュレートされたvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。
図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を介してホストチャネルアダプタにアクセスすることができる。
一実施形態に従うと、スイッチ501〜504の各々はいくつかのポート(図示せず)を含み得る。いくつかのポートは、ネットワーク切替環境500内においてトラフィックを方向付けるために線形のフォワーディングテーブルを設定するのに用いられる。
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521、531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して追加のノードが接続されているスイッチのように見えている。
一実施形態に従うと、本開示は、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が割当てられている。
一実施形態に従うと、多くの同様の物理的なホストチャネルアダプタが2つ以上のポートを有することができ(冗長性のために2つのポートが共用となっている)、仮想HCAも2つのポートで表わされ、1つまたは2つ以上の仮想スイッチを介して外部IBサブネットに接続され得る。
一実施形態に従うと、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を占有する必要がないことに留意されたい。
一実施形態に従うと、LIDが予めポピュレートされたvSwitchアーキテクチャにおいては、ネットワークが一旦ブートされると、すべてのLIDについて通信経路が計算される。新しいVMを始動させる必要がある場合、システムは、サブネットにおいて新しいLIDを追加する必要はない。それ以外の場合、経路の再計算を含め、ネットワークを完全に再構成させ得る動作は、最も時間を消費する要素となる。代わりに、VMのための利用可能なポートはハイパーバイザのうちの1つに位置し(すなわち利用可能な仮想機能)、仮想マシンは利用可能な仮想機能に付与されている。
一実施形態に従うと、LIDが予めポピュレートされたvSwitchアーキテクチャはまた、同じハイパーバイザによってホストされているさまざまなVMに達するために、さまざまな経路を計算して用いる能力を可能にする。本質的には、これは、LIDを連続的にすることを必要とするLMCの制約によって拘束されることなく、1つの物理的なマシンに向かう代替的な経路を設けるために、このようなサブネットおよびネットワークがLIDマスク制御ライク(LID-Mask-Control-like:LMCライク)な特徴を用いることを可能にする。VMをマイグレートしてその関連するLIDを宛先に送達する必要がある場合、不連続なLIDを自由に使用できることは特に有用となる。
一実施形態に従うと、LIDが予めポピュレートされたvSwitchアーキテクチャについての上述の利点と共に、いくつかの検討事項を考慮に入れることができる。たとえば、ネットワークがブートされているときに、SR−IOV vSwitch対応のサブネットにおいてLIDが予めポピュレートされているので、(たとえば起動時の)最初の経路計算はLIDが予めポピュレートされていなかった場合よりも時間が長くかかる可能性がある。
インフィニバンドSR−IOVアーキテクチャモデル−動的LID割当てがなされたvSwitch
一実施形態に従うと、本開示は、動的LID割当てがなされたvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。
図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を介してホストチャネルアダプタにアクセスすることができる。
一実施形態に従うと、スイッチ501〜504の各々はいくつかのポート(図示せず)を含み得る。いくつかのポートは、ネットワーク切替環境600内においてトラフィックを方向付けるために線形のフォワーディングテーブルを設定するのに用いられる。
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521および531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
一実施形態に従うと、本開示は、動的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の割当てを受けない。
一実施形態に従うと、動的LID割当てがなされていれば、最初の経路計算を実質的に減らすことができる。ネットワークが初めてブートしており、VMが存在していない場合、比較的少数のLIDを最初の経路計算およびLFT分配のために用いることができる。
一実施形態に従うと、多くの同様の物理的なホストチャネルアダプタが2つ以上のポートを有することができ(冗長性のために2つのポートが共用となっている)、仮想HCAも2つのポートで表わされ、1つまたは2つ以上の仮想スイッチを介して外部IBサブネットに接続され得る。
一実施形態に従うと、動的LID割当てがなされたvSwitchを利用するシステムにおいて新しいVMが作成される場合、どのハイパーバイザ上で新しく追加されたVMをブートすべきであるかを決定するために、自由なVMスロットが発見され、固有の未使用のユニキャストLIDも同様に発見される。しかしながら、新しく追加されたLIDを処理するためのスイッチのLFTおよびネットワークに既知の経路が存在しない。新しく追加されたVMを処理するために新しいセットの経路を計算することは、いくつかのVMが毎分ごとにブートされ得る動的な環境においては望ましくない。大規模なIBサブネットにおいては、新しい1セットのルートの計算には数分かかる可能性があり、この手順は、新しいVMがブートされるたびに繰返されなければならないだろう。
有利には、一実施形態に従うと、ハイパーバイザにおけるすべてのVFがPFと同じアップリンクを共有しているので、新しいセットのルートを計算する必要はない。ネットワークにおけるすべての物理スイッチのLFTを繰返し、(VMが作成されている)ハイパーバイザのPFに属するLIDエントリから新しく追加されたLIDにフォワーディングポートをコピーし、かつ、特定のスイッチの対応するLFTブロックを更新するために単一のSMPを送信するだけでよい。これにより、当該システムおよび方法では、新しいセットのルートを計算する必要がなくなる。動的LID割当てをサポートするvSwitchのシステムおよび方法のさらなる詳細が、引用によりこの明細書中に援用されている添付物Aに記載されている。
一実施形態に従うと、動的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を得る。
一実施形態に従うと、動的LID割当てアーキテクチャを用いたvSwitchは、いくらかの追加のネットワークおよびランタイムSMオーバーヘッドを犠牲にして、予めポピュレートされたLIDアーキテクチャモデルを用いたvSwitchの欠点を解決することができる。VMが作成されるたびに、作成されたVMに関連付けられた、新しく追加されたLIDで、サブネットにおける物理スイッチのLFTを更新することができる。この動作のために、1スイッチごとに1つのサブネット管理パケット(SMP)が送信される必要がある。各々のVMがそのホストハイパーバイザと同じ経路を用いているので、LMCのような機能も利用できなくなる。しかしながら、すべてのハイパーバイザに存在するVFの合計に対する制限はなく、VFの数は、ユニキャストLIDの限度を上回る可能性もある。このような場合、当然、アクティブなVM上でVFのすべてが必ずしも同時に付与されることが可能になるわけではなく、より多くの予備のハイパーバイザおよびVFを備えることにより、ユニキャストLID限度付近で動作する際に、断片化されたネットワークの障害を回復および最適化させるための融通性が追加される。
インフィニバンド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を介してホストチャネルアダプタにアクセスすることができる。
一実施形態に従うと、スイッチ501〜504の各々はいくつかのポート(図示せず)を含み得る。これらいくつかのポートは、ネットワーク切替環境700内においてトラフィックを方向付けるために線形のフォワーディングテーブルを設定するのに用いられる。
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521、531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は、完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
一実施形態に従うと、本開示は、動的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が動的に割当てられている。
LIDが予めポピュレートされたvSwitchおよび動的LID割当てがなされたvSwitchがともに(いずれかの所与のハイパーバイザ内で独立して、または組合わされて)利用されている、図7に示されるような一実施形態に従うと、ホストチャネルアダプタごとの予めポピュレートされたLIDの数はファブリックアドミニストレータによって定義することができ、(ホストチャネルアダプタごとに)0<=予めポピュレートされたVF<=総VFの範囲内になり得る。動的LID割当てのために利用可能なVFは、(ホストチャネルアダプタごとに)VFの総数から予めポピュレートされたVFの数を減じることによって見出すことができる。
一実施形態に従うと、多くの同様の物理的なホストチャネルアダプタが2つ以上のポートを有することができ(冗長性のために2つのポートが共用となっている)、仮想HCAも2つのポートで表わされ、1つまたは2つ以上の仮想スイッチを介して外部IBサブネットに接続され得る。
複数のvSwitchを備えた動的な再構成
一実施形態に従うと、本開示は、複数のvSwitchを備えた動的なネットワーク再構成のためのシステムおよび方法を提供する。動的なクラウド環境においては、ライブマイグレーションが処理可能であり、スケーラブルであり得る。VMがマイグレートされ、そのアドレスを宛先に伝えなければならない場合、ネットワーク再構成が必要となる。基礎をなすIBルーティング(たとえば線形のフォワーディングテーブルおよびルート)に影響を及ぼさない高レベルのアドレスであるので、仮想またはエイリアスのGUID(virtual GUID:vGUID)と、結果的にGIDとについてのマイグレーションはさほど負荷を及ぼすものではない。さらに、vGUIDのマイグレーションの場合、マイグレーションが完了したときに、入来するVMに関連付けられたvGUIDをVM上で割当てられるであろうVFに設定するために、SMPを宛先ハイパーバイザに送信しなければならない。しかしながら、LIDのマイグレーションはそれほど単純ではない。なぜなら、ルートを再計算しなければならず、物理スイッチのLFTを再構成する必要があるからである。ルートおよび分配の再計算には、大規模なサブネット上で分のオーダで経過するかなり長い時間が必要がとなり、スケーラビリティについて問題をもたらす。
一実施形態に従うと、vSwitchは、vSwitchを介してアクセスされるすべてのVFがPFと同じアップリンクを共有する特性を有する。トポロジーに依存しない動的再構成メカニズムは、この特性を利用して、動的なマイグレーション環境上で再構成を実行可能にすることができる。LID再構成時間は、経路計算を排除し経路分配を減らすことによって最小限にすることができる。当該方法は、上述の2つのvSwitchアーキテクチャ(LIDが予めポピュレートされ動的LID割当てがなされている)に関してわずかに異なっているが、基本的には同じである。
一実施形態に従うと、動的再構成方法は概して2つのステップを含む。すなわち、(a)関与するハイパーバイザにおいてLIDを更新する:1つのサブネット管理パケット(SMP)が、ライブマイグレーションに関与するハイパーバイザの各々に送信されて、これらハイパーバイザの各々に、適切なLIDを対応するVFに設定するように/設定し直すように指示する;(b)物理スイッチ上において線形のフォワーディングテーブル(LFT)を更新する。2つのSMPうち一方または大きい方が1つ以上のスイッチ上に送信され、これらに、対応するLFTエントリを更新させて、マイグレートされた仮想マシンの新しい位置を反映させるようにする。これは、仮想マシンをマイグレートしてネットワークを再構成するための手順において、以下に、より具体的に記載される。
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を介してホストチャネルアダプタにアクセスすることができる。
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521、531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
一実施形態に従うと、スイッチ501〜504の各々はいくつかのポート(図示せず)を含み得る。いくつかのポートは、ネットワーク切替環境800内においてトラフィックを方向付けるために、スイッチ501に関連付けられた線形のフォワーディングテーブル810などの線形のフォワーディングテーブルを設定するのに用いられる。図に示されるように、線形のフォワーディングテーブル810は、仮想マシン2 551(すなわちLID3)にアドレス指定されたトラフィックをスイッチ501のポート2を介して転送する。同様に、VMが実行されていなくても経路がすべてのLIDのために存在しているので、線形のフォワーディングテーブルはスイッチ501のポート4を介してLID12へのフォワーディング経路を定義することができる。
図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を介してホストチャネルアダプタにアクセスすることができる。
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521、531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
一実施形態に従うと、スイッチ501〜504の各々はいくつかのポート(図示せず)を含み得る。いくつかのポートは、ネットワーク切替環境900内においてトラフィックを方向付けるために、スイッチ501に関連付けられた線形のフォワーディングテーブル910などの線形のフォワーディングテーブルを設定する際に用いられる。
一実施形態に従うと、仮想マシン2 551をハイパーバイザ511からハイパーバイザ531にマイグレートする必要があり、かつ、ハイパーバイザ531上の仮想機能3 536が利用可能である場合、仮想マシン2は仮想機能3 536に付与することができる。このような状況では、LIDはスワップすることができる(すなわち、マイグレートしているVMに割当てられたLIDのエントリは、ライブマイグレーションが完了した後、宛先ハイパーバイザにおいて用いられることになっているVFのLIDとスワップすることができる)。スイッチ501上の線形のフォワーディングテーブル910は図示されるように更新することができる。すなわち、LID3へのトラフィックが、ここで、ポート4(それ以前にはポート2)を介して転送され、LID12への経路が、ここで、ポート2(それ以前にはポート4)を介して転送される。
一実施形態に従うと、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を含むブロックとである。
動的LID割当てがなされたvSwitchにおける再構成
一実施形態に従うと、動的LID割当てがなされたvSwitchアーキテクチャの場合、VFの経路は、VMがその時点でホストされているハイパーバイザの対応するPFの経路と同じ経路を追従する。VMが移動すると、システムは、宛先ハイパーバイザのPFに割当てられているLIDを見出して、すべてのスイッチのLFTをすべて繰返し、VM LIDのための経路を宛先ハイパーバイザの経路で更新しなければならない。LIDが予めポピュレートされた再構成において用いられるLIDスワッピング技術とは対照的に、SMPが1つだけ、更新される必要のあるスイッチに常に送信される必要がある。なぜなら、プロセスに関与するLIDが1つしか存在しないからである。
再構成の従来のコスト
一実施形態に従うと、完全にネットワークを再構成する方法に必要な時間RCは、式1に示されるように、経路計算のために必要な時間PCとすべてのスイッチに対するLFT分配に必要な時間LFTDとの合計である。
一実施形態に従うと、経路の計算の複雑さは、サブネットのサイズに合わせて多項式的に大きくなり、PCは大規模なサブネット上においては数分のオーダとなる。
経路が計算された後、IBサブネットなどのネットワークにおけるスイッチのLFTを更新することができる。LFT分配時間LFTDは、サブネットのサイズおよびスイッチの量に応じて直線的に大きくなる。上述のとおり、LFTが64個のLIDのブロック上で更新され、このため、わずか数個のスイッチを備え最大64個までのLIDが消費される小規模なサブネットにおいては、経路分配中に各々のスイッチごとにSMPを1つだけ送信する必要がある。49151個のLIDが消費された十分にポピュレートされたIBサブネットなどの他の状況においては、従来のモデルでは、1個のスイッチ毎に768個のSMPが経路分配中に送信される必要がある。
SMPは、向きが定められたルーティング(directed routing)または宛先ベースのルーティングを用いることができる。向きが定められたルーティングを用いる場合、各々の中間スイッチは、その時点のホップポインタで、パケットのヘッダを処理して更新し、経路を逆転させてから、パケットを次のホップに転送しなければならない。宛先ベースのルーティングにおいては、各々のパケットが直ちに転送される。必然的に、向きが定められたルーティングにより、転送されたパケットに待ち時間を追加することができる。それにもかかわらず、向きが定められたルーティングは、OpenSMによって従来のすべてのSMPのために用いられている。これは、LFTがまだスイッチに分配されていない場合、または、再構成が行なわれており、スイッチに向かうルートが変化している場合には、最初のトポロジー発見プロセスのために必要である。
ここで、nをネットワークにおけるいくつかのスイッチとすると、mは、各々のスイッチ上で更新されるであろうすべてのLFTブロックの数であって、消費されたLIDの数によって決定され、kは、各々のSMPが各々のスイッチに達する前にネットワークを横断するのに必要とされる平均時間であり、rは、向きが定められたルーティングにより各々のSMPのために追加された平均時間である。パイプライン化がないと想定すると、LFT分配時間LFTDは、式2においてさらに分解することができる:
式1と式2とを組合わせることにより、ネットワークを完全に再構成するために必要な時間についての結果である式3が得られる:
大規模なサブネットにおいては、従来より、スイッチm個当たりより多くのLIDと、結果としてより多くのLFTブロックとが用いられる場合、かつ、より多くのスイッチnがネットワークに存在している場合に、LFTDがより大きくなったとしても、経路計算に必要な時間PCはLFT分配に必要な時間LFTDよりもはるかに大きくなる。式2および式3におけるn・mの部分は、再構成のために送信される必要のあるSMPの総数を定義している。
vSwitchアーキテクチャを用いたライブマイグレーションのための再構成コスト
従来の再構成技術を用いることによりVMマイグレーションが使用不可能になるだろう。大規模なサブネットにおいては、式3におけるPCが非常に大きくなり、RCよりも優位となる。ライブマイグレーションが従来の完全な再構成をトリガした場合、これは完了するのに概して数分かかるだろう。
一実施形態に従うと、LIDが予めポピュレートされたvSwitchまたは動的LID割当てがなされたvSwitchを利用することにより、再構成時間のPC部分を本質的になくすことができる。なぜなら、各々のスイッチの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個のスイッチが更新されなければならない場合もある。
一実施形態に従うと、ここで、一実施形態に従った、潜在的な仮想マシンマイグレーション経路で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を介してホストチャネルアダプタにアクセスすることができる。
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521、531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
一実施形態に従うと、スイッチ501〜504の各々はいくつかのポート(図示せず)を含み得る。いくつかのポートは、ネットワーク切替環境1000内においてトラフィックを方向付けるために、スイッチ501に関連付けられた線形のフォワーディングテーブル1010などの線形のフォワーディングテーブルを設定するのに用いられる。
一実施形態に従うと、図10は、VM2 551が潜在的にハイパーバイザ511からハイパーバイザ521に(ここでは3つの利用可能な仮想機能がある)をマイグレートすることができるネットワーク切替環境1000における状況を示す。LID3がハイパーバイザ521において利用可能なLIDのうちのいずれか(6、7または8)とスワップされていた場合、スイッチ501は更新される必要が全くないだろう。なぜなら、最初のルーティングで既にLID3がルーティングされ、LID6、LID7およびLID8がスイッチ501上の同じポート(ポート2)を共有しているからである。特に、スイッチ503(すなわちリーフスイッチ)だけが更新される必要があり得るので、この例の場合、n′=1となる。
一実施形態に従うと、最終的に、開示された再構成メカニズムのコストvSwitch RCが式4において見出され、大規模なサブネットにおいては、vSwitch RCがRCよりもはるかに小さくなる。
一実施形態に従うと、SMPパケットのための宛先ベースのルーティングを用いることができる。VMがマイグレートされると、スイッチに属するLIDのためのルートは影響を受けないだろう。したがって、宛先ベースのルーティングにより、確実にSMPをスイッチに適切に送達することができ、rを式4から省いて式5を得ることができる:
一実施形態に従うと、パイプライン化を用いて、vSwitch再構成時間をさらに減らすことができる。
図11は、一実施形態に従った、ネットワークにおいて仮想マシンマイグレーションをサポートするための方法のフローチャートである。ステップ1110において、当該方法は、1つ以上のマイクロプロセッサを含む1つ以上のコンピュータにおいて、少なくともリーフスイッチを含む1つ以上のスイッチを設けることができ、当該1つ以上のスイッチの各々は複数のポートを含む。当該方法はさらに、複数のホストチャネルアダプタを設けることができ、ホストチャネルアダプタの各々は少なくとも1つの仮想機能を含み、複数のホストチャネルアダプタは1つ以上のスイッチを介して相互接続されている。当該方法はさらに、複数のハイパーバイザを設けることができ、複数のハイパーバイザの各々は、複数のホストチャネルアダプタのうち少なくとも1つに関連付けられている。当該方法はさらに、複数の仮想マシンを設けることができる。複数の仮想マシンの各々は少なくとも1つの仮想機能に関連付けられている。
ステップ1120において、当該方法は、予めポピュレートされたローカル識別子(LID)アーキテクチャを用いた仮想スイッチ、または、動的LID割当てアーキテクチャを用いた仮想スイッチのうち1つ以上を備えた複数のホストチャネルアダプタを配置することができる。
ステップ1130において、当該方法は、複数のハイパーバイザのうち第1のハイパーバイザ上で動作している、複数の仮想マシンのうち第1の仮想マシンを、複数のハイパーバイザのうち第2のハイパーバイザにライブマイグレートすることができる。この場合、第1のハイパーバイザは、複数のホストチャネルアダプタのうち第1のホストチャネルアダプタに関連付けられ、第2のハイパーバイザは、複数のホストチャネルアダプタのうち第2のホストチャネルアダプタに関連付けられている。
本発明は、本開示の教示に従ってプログラミングされた1つ以上のプロセッサ、メモリおよび/またはコンピュータ読取り可能記憶媒体を含む、1つ以上の従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを使用して、便宜的に実現され得る。ソフトウェア技術の当業者には明らかであるように、本開示の教示に基づいて、熟練したプログラマーが適切なソフトウェアコーディングを容易に準備することができる。
いくつかの実施形態においては、本発明は、本発明のプロセスのうちいずれかを行なうようにコンピュータをプログラミングするために使用可能な命令を格納する記憶媒体またはコンピュータ読取り可能媒体であるコンピュータプログラム製品を含む。記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気カードまたは光カード、ナノシステム(分子メモリICを含む)、または、命令および/もしくはデータを格納するのに適した任意のタイプの媒体もしくはデバイスを含み得るものの、それらに限定されない。
この発明の前述の記載は、例示および説明のために提供されてきた。それは、網羅的であるよう、またはこの発明を開示された形態そのものに限定するよう意図されてはいない。当業者には、多くの修正および変形が明らかになるだろう。修正および変形は、開示された特徴のあらゆる関連する組合せを含む。実施形態は、この発明の原理およびその実際的な適用を最良に説明するために選択および説明されたものであり、それにより、他の当業者が、特定の使用に適したさまざまな修正を考慮して、さまざまな実施形態についてこの発明を理解することを可能にする。この発明の範囲は、請求項およびそれらの均等物によって定義されることが意図されている。

Claims (32)

  1. サブネットにおいて仮想マシンのライブマイグレーションをサポートするためのシステムであって、
    1つ以上のマイクロプロセッサと、
    1つ以上のスイッチとを含み、前記1つ以上のスイッチは少なくともリーフスイッチを含み、前記1つ以上のスイッチの各々は複数のポートを含み、前記システムはさらに、
    複数のホストチャネルアダプタを含み、前記ホストチャネルアダプタの各々は少なくとも1つの仮想機能を含み、前記複数のホストチャネルアダプタは前記1つ以上のスイッチを介して相互接続され、前記システムはさらに、
    複数のハイパーバイザを含み、前記複数のハイパーバイザの各々は、前記複数のホストチャネルアダプタのうち少なくとも1つのホストチャネルアダプタに関連付けられ、前記システムはさらに、
    複数の仮想マシンを含み、前記複数の仮想マシンの各々は、少なくとも1つの仮想機能に関連付けられ、
    前記複数のホストチャネルアダプタには、予めポピュレートされたローカル識別子(LID)アーキテクチャを用いた仮想スイッチまたは動的LID割当てアーキテクチャを用いた仮想スイッチのうち1つ以上が配置されており、
    前記複数のハイパーバイザのうち第1のハイパーバイザ上で動作している、前記複数の仮想マシンのうち第1の仮想マシンは、前記複数のハイパーバイザのうち第2のハイパーバイザへのライブマイグレーションを実行するように動作し、
    前記第1のハイパーバイザは、前記複数のホストチャネルアダプタのうち第1のホストチャネルアダプタに関連付けられ、前記第2のハイパーバイザは、前記複数のホストチャネルアダプタのうち第2のホストチャネルアダプタに関連付けられている、システム。
  2. 前記複数のホストチャネルアダプタの各々は物理機能を含み、前記物理機能はLIDに関連付けられている、請求項1に記載のシステム。
  3. 前記複数のハイパーバイザの各々は、前記物理機能を通じて、関連付けられたホストチャネルアダプタにアクセスするように構成される、請求項2に記載のシステム。
  4. 前記複数のホストチャネルアダプタに、予めポピュレートされたLIDアーキテクチャを用いた仮想スイッチが配置され、
    前記1つ以上のスイッチの各々は線形のフォワーディングテーブルに関連付けられ、
    前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへのライブマイグレーションを実行するように動作した後、前記システムは、マイグレートされた前記第1の仮想マシンに関連付けられたLIDを更新するために、前記第1のハイパーバイザに第1のサブネット管理パケットを送信し、かつ前記第2のハイパーバイザに第2のサブネット管理パケットを送信するように構成され、
    2つのサブネット管理パケットのうち大きい方のサブネット管理パケットが前記1つ以上のスイッチに送信されて、前記1つ以上のスイッチに前記線形のフォワーディングテーブルを更新するように指示する、請求項1から3のいずれか1項に記載のシステム。
  5. 大きい方のサブネット管理パケットが前記1つ以上のスイッチに送信されて、前記1つ以上のスイッチに前記線形のフォワーディングテーブルを更新するように指示する、請求項4に記載のシステム。
  6. 前記第1の仮想マシンが、前記第1のハイパーバイザから前記第2のハイパーバイザへのライブマイグレーションを実行するように動作した後、前記システムが前記サブネットの再ルーティングが不要であると判断するように構成される、請求項1から5のいずれか1項に記載のシステム。
  7. 前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへのライブマイグレーションを実行するように動作した後、前記システムは、前記1つ以上のスイッチのサブセットに、前記線形のフォワーディングテーブルを更新するように指示するように構成される、請求項4に記載のシステム。
  8. 前記複数のホストチャネルアダプタに、動的LID割当てアーキテクチャを用いた仮想スイッチが配置され、
    前記1つ以上のスイッチの各々は線形のフォワーディングテーブルに関連付けられ、
    前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへのライブマイグレーションを実行するように動作した後、前記システムは、マイグレートされた前記第1の仮想マシンに関連付けられたLIDを更新するために、第1のサブネット管理パケットを前記第1のハイパーバイザに送信し、かつ、第2のサブネット管理パケットを前記第2のハイパーバイザに送信するように構成され、
    1つのサブネット管理パケットが前記1つ以上のスイッチに送信されて、前記1つ以上のスイッチに前記線形のフォワーディングテーブルを更新するように指示する、請求項1、2または3のいずれかに記載のシステム。
  9. 前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへのライブマイグレーションを実行するように動作した後、前記システムが、前記サブネットの再ルーティングが不要であると判断するように構成される、請求項1、2、3または8のいずれかに記載のシステム。
  10. 前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへのライブマイグレーションを実行するように動作した後、前記システムが、前記1つ以上のスイッチのサブセットに、前記線形のフォワーディングテーブルを更新するように指示するように構成される、請求項1、2、3、8または9のいずれかに記載のシステム。
  11. 前記サブネットはインフィニバンドサブネットを含む、請求項1から10のいずれか1項に記載のシステム。
  12. サブネットにおいて仮想マシンのライブマイグレーションをサポートするための方法であって、
    1つ以上のマイクロプロセッサを含む1つ以上のコンピュータにおいて、1つ以上のスイッチ、複数のホストチャネルアダプタ、複数のハイパーバイザ、および複数の仮想マシンを設けるステップを含み、
    前記1つ以上のスイッチは少なくともリーフスイッチを含み、前記1つ以上のスイッチの各々は複数のポートを含み、
    前記ホストチャネルアダプタの各々が少なくとも1つの仮想機能を含み、前記複数のホストチャネルアダプタが前記1つ以上のスイッチを介して相互接続され、
    前記複数のハイパーバイザの各々が前記複数のホストチャネルアダプタのうち少なくとも1つに関連付けられ、
    前記複数の仮想マシンの各々が少なくとも1つの仮想機能に関連付けられ、前記方法はさらに、
    予めポピュレートされたローカル識別子(LID)アーキテクチャを用いた仮想スイッチまたは動的LID割当てアーキテクチャを用いた仮想スイッチのうち1つ以上を備えた前記複数のホストチャネルアダプタを配置するステップと、
    前記複数のハイパーバイザのうち第1のハイパーバイザ上で動作する、前記複数の仮想マシンのうち第1の仮想マシンを、前記複数のハイパーバイザのうち第2のハイパーバイザにライブマイグレートするステップとを含み、
    前記第1のハイパーバイザは、前記複数のホストチャネルアダプタのうち第1のホストチャネルアダプタに関連付けられ、前記第2のハイパーバイザは、前記複数のホストチャネルアダプタのうち第2のホストチャネルアダプタに関連付けられる、方法。
  13. 前記複数のホストチャネルアダプタの各々は物理機能を含み、前記物理機能はLIDに関連付けられている、請求項12に記載の方法。
  14. 前記複数のハイパーバイザの各々は、前記物理機能を通じて、関連付られたホストチャネルアダプタにアクセスするように構成される、請求項13に記載の方法。
  15. 前記複数のホストチャネルアダプタに、予めポピュレートされたLIDアーキテクチャを用いた仮想スイッチが配置され、前記方法はさらに、
    前記1つ以上のスイッチの各々を線形のフォワーディングテーブルに関連付けるステップと、
    前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへとライブマイグレートした後、マイグレートされた前記第1の仮想マシンに関連付けられたLIDを更新するために、前記第1のハイパーバイザに第1のサブネット管理パケットを送信し、前記第2のハイパーバイザに第2のサブネット管理パケットを送信するステップと、
    2つのサブネット管理パケットのうち大きい方のサブネット管理パケットを前記1つ以上のスイッチに送信して、前記1つ以上のスイッチに前記線形のフォワーディングテーブルを更新するように指示するステップとを含む、請求項12、13または14のいずれかに記載の方法。
  16. 大きい方のサブネット管理パケットが前記1つ以上のスイッチに送信されて、前記1つ以上のスイッチに前記線形のフォワーディングテーブルを更新するように指示する、請求項15に記載の方法。
  17. 前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへとライブマイグレートした後、前記サブネットの再ルーティングが不要であると判断するステップをさらに含む、請求項12、13、14または15のいずれかに記載の方法。
  18. 前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへとライブマイグレートした後、前記1つ以上のスイッチのサブセットに、前記線形のフォワーディングテーブルを更新するように指示するステップをさらに含む、請求項15に記載の方法。
  19. 前記複数のホストチャネルアダプタに、動的LID割当てアーキテクチャを用いた仮想スイッチが配置され、前記方法はさらに、
    前記1つ以上のスイッチの各々を線形のフォワーディングテーブルに関連付けるステップと、
    前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへとライブマイグレートした後、マイグレートされた前記第1の仮想マシンに関連付けられたLIDを更新するために、前記第1のハイパーバイザに第1のサブネット管理パケットを送信し、前記第2のハイパーバイザに第2のサブネット管理パケットを送信するステップと、
    1つのサブネット管理パケットを前記1つ以上のスイッチに送信して、前記1つ以上のスイッチに前記線形のフォワーディングテーブルを更新するように指示するステップとを含む、請求項12、13または14のいずれかに記載の方法。
  20. 前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへとライブマイグレートした後、前記サブネットの再ルーティングが不要であると判断するステップをさらに含む、請求項12、13、14または19のいずれかに記載の方法。
  21. 前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへとライブマイグレートした後、前記1つ以上のスイッチのサブセットに、前記線形のフォワーディングテーブルを更新するように指示するステップをさらに含む、請求項12、13、14、19または20のいずれかに記載の方法。
  22. 前記サブネットがインフィニバンドサブネットを含む、請求項12から21のいずれか1項に記載の方法。
  23. サブネットにおいて仮想マシンのライブマイグレーションをサポートするための命令が格納された非一時的なコンピュータ読取り可能記憶媒体であって、前記命令は、1つ以上のコンピュータによって読取られて実行されると、前記1つ以上のコンピュータに複数のステップを実行させ、前記複数のステップは、
    1つ以上のマイクロプロセッサを含む1つ以上のコンピュータにおいて、1つ以上のスイッチ、複数のホストチャネルアダプタ、複数のハイパーバイザ、および複数の仮想マシンを設けるステップを含み、
    前記1つ以上のスイッチは少なくともリーフスイッチを含み、前記1つ以上のスイッチの各々は複数のポートを含み、
    前記ホストチャネルアダプタの各々は少なくとも1つの仮想機能を含み、前記複数のホストチャネルアダプタは前記1つ以上のスイッチに相互接続され、
    前記複数のハイパーバイザの各々は前記複数のホストチャネルアダプタのうち少なくとも1つに関連付けられ、
    前記複数の仮想マシンの各々は少なくとも1つの仮想機能に関連付けられ、前記複数のステップはさらに、
    予めポピュレートされたローカル識別子(LID)アーキテクチャを用いた仮想スイッチまたは動的LID割当てアーキテクチャを用いた仮想スイッチのうち1つ以上を備えた前記複数のホストチャネルアダプタを配置するステップと、
    前記複数のハイパーバイザのうち第1のハイパーバイザ上で動作する、前記複数の仮想マシンのうち第1の仮想マシンを、前記複数のハイパーバイザのうち第2のハイパーバイザにライブマイグレートするステップとを含み、
    前記第1のハイパーバイザは、前記複数のホストチャネルアダプタのうち第1のホストチャネルアダプタに関連付けられ、前記第2のハイパーバイザは、前記複数のホストチャネルアダプタのうち第2のホストチャネルアダプタに関連付けられる、非一時的なコンピュータ読取り可能記憶媒体。
  24. 前記複数のホストチャネルアダプタの各々は物理機能を含み、前記物理機能はLIDに関連付けられている、請求項23に記載の非一時的なコンピュータ読取り可能記憶媒体。
  25. 前記複数のハイパーバイザの各々は、前記物理機能を通じて、関連付けられたホストチャネルアダプタにアクセスするように構成される、請求項24に記載の非一時的なコンピュータ読取り可能記憶媒体。
  26. 前記複数のホストチャネルアダプタに、予めポピュレートされたLIDアーキテクチャを用いた仮想スイッチが配置され、前記方法はさらに、
    前記1つ以上のスイッチの各々を線形のフォワーディングテーブルに関連付けるステップと、
    前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへとライブマイグレートした後、マイグレートされた前記第1の仮想マシンに関連付けられたLIDを更新するために、マイグレートされた前記第1の仮想マシンに関連付けられたLIDを更新するために、前記第1のハイパーバイザに第1のサブネット管理パケットを送信し、前記第2のハイパーバイザに第2のサブネット管理パケットを送信するステップと、
    2つのサブネット管理パケットのうち大きい方のサブネット管理パケットを前記1つ以上のスイッチに送信して、前記1つ以上のスイッチに前記線形のフォワーディングテーブルを更新するように指示するステップとを含む、請求項23、24または25のいずれかに記載の非一時的なコンピュータ読取り可能記憶媒体。
  27. 大きい方のサブネット管理パケットが前記1つ以上のスイッチに送信されて、前記1つ以上のスイッチに前記線形のフォワーディングテーブルを更新するように指示する、請求項26に記載の非一時的なコンピュータ読取り可能記憶媒体。
  28. 前記複数のステップはさらに、
    前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへとライブマイグレートした後、前記サブネットの再ルーティングが不要であると判断するステップをさらに含む、請求項23、24、25または26のいずれかに記載の非一時的なコンピュータ読取り可能記憶媒体。
  29. 前記複数のステップはさらに、
    前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへとライブマイグレートした後、前記1つ以上のスイッチのサブセットに前記線形のフォワーディングテーブルを更新するように指示するステップを含む、請求項26に記載の非一時的なコンピュータ読取り可能記憶媒体。
  30. 前記複数のホストチャネルアダプタに、動的LID割当てアーキテクチャを用いた仮想スイッチが配置され、前記方法はさらに、
    前記1つ以上のスイッチの各々を線形のフォワーディングテーブルに関連付けるステップと、
    前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへとライブマイグレートした後、マイグレートされた前記第1の仮想マシンに関連付けられたLIDを更新するために、前記第1のハイパーバイザに第1のサブネット管理パケットを送信し、前記第2のハイパーバイザに第2のサブネット管理パケットを送信するステップと、
    1つのサブネット管理パケットを前記1つ以上のスイッチに送信して、前記1つ以上のスイッチに前記線形のフォワーディングテーブルを更新するように指示するステップとを含む、請求項23、24または25のいずれかに記載の非一時的なコンピュータ読取り可能記憶媒体。
  31. 前記複数のステップはさらに、
    前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへとライブマイグレートした後、前記サブネットの再ルーティングが不要であると判断するステップを含む、請求項23、24、25または30のいずれかに記載の非一時的なコンピュータ読取り可能記憶媒体。
  32. 前記複数のステップはさらに、
    前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザへとライブマイグレートした後、前記1つ以上のスイッチのサブセットに前記線形のフォワーディングテーブルを更新するように指示するステップを含む、請求項23、24、25、30または31のいずれかに記載の非一時的なコンピュータ読取り可能記憶媒体。
JP2017535006A 2015-03-06 2016-02-24 高性能クラウドコンピューティング環境のためのインフィニバンドSR−IOV vSwitchアーキテクチャを提供するためのシステムおよび方法 Active JP6763860B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201562129273P 2015-03-06 2015-03-06
US62/129,273 2015-03-06
US201562161078P 2015-05-13 2015-05-13
US62/161,078 2015-05-13
US15/050,901 2016-02-23
US15/050,901 US9990221B2 (en) 2013-03-15 2016-02-23 System and method for providing an infiniband SR-IOV vSwitch architecture for a high performance cloud computing environment
PCT/US2016/019370 WO2016144547A1 (en) 2015-03-06 2016-02-24 SYSTEM AND METHOD FOR PROVIDING AN INFINIBAND SR-IOV vSWITCH ARCHITECTURE FOR A HIGH PERFORMANCE CLOUD COMPUTING ENVIRONMENT

Publications (3)

Publication Number Publication Date
JP2018508856A true JP2018508856A (ja) 2018-03-29
JP2018508856A5 JP2018508856A5 (ja) 2019-04-04
JP6763860B2 JP6763860B2 (ja) 2020-09-30

Family

ID=56850564

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017535006A Active JP6763860B2 (ja) 2015-03-06 2016-02-24 高性能クラウドコンピューティング環境のためのインフィニバンドSR−IOV vSwitchアーキテクチャを提供するためのシステムおよび方法

Country Status (6)

Country Link
US (4) US9990221B2 (ja)
EP (1) EP3265912B1 (ja)
JP (1) JP6763860B2 (ja)
KR (1) KR102445870B1 (ja)
CN (1) CN107111513B (ja)
WO (1) WO2016144547A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9990221B2 (en) 2013-03-15 2018-06-05 Oracle International Corporation System and method for providing an infiniband SR-IOV vSwitch architecture for a high performance cloud computing environment
US10397105B2 (en) * 2014-03-26 2019-08-27 Oracle International Corporation System and method for scalable multi-homed routing for vSwitch based HCA virtualization
US9866474B2 (en) * 2015-12-01 2018-01-09 Quanta Computer Inc. Centralized server switch management
US10178027B2 (en) 2016-01-27 2019-01-08 Oracle International Corporation System and method for supporting inter subnet partitions in a high performance computing environment
US10171353B2 (en) 2016-03-04 2019-01-01 Oracle International Corporation System and method for supporting dual-port virtual router in a high performance computing environment
US10402207B2 (en) 2016-06-16 2019-09-03 Quanta Computer Inc. Virtual chassis management controller
US10423437B2 (en) * 2016-08-17 2019-09-24 Red Hat Israel, Ltd. Hot-plugging of virtual functions in a virtualized environment
CN107783834B (zh) * 2016-08-30 2021-05-07 伊姆西公司 用于处理数据的方法和系统
US10176122B2 (en) * 2016-10-19 2019-01-08 Advanced Micro Devices, Inc. Direct memory access authorization in a processing system
US10552265B1 (en) 2017-09-14 2020-02-04 EMC IP Holding Company LLC Method of tracking and analyzing data integrity issues by leveraging cloud services
US10795717B2 (en) * 2018-09-18 2020-10-06 Microsoft Technology Licensing, Llc Hypervisor flow steering for address sharing
US10963283B2 (en) * 2018-12-27 2021-03-30 Nutanix, Inc. Configuration management for hybrid cloud
CN111506385A (zh) * 2019-01-31 2020-08-07 Ati科技无限责任公司 引擎抢占和复原
US11121960B2 (en) * 2019-05-30 2021-09-14 International Business Machines Corporation Detecting and managing relocation of network communication endpoints in a distributed computing environment
US11734036B2 (en) * 2021-03-03 2023-08-22 Dell Products L.P. System and method to monitor and manage a passthrough device
CN113535630A (zh) * 2021-09-14 2021-10-22 苏州浪潮智能科技有限公司 一种跨节点通信方法、装置、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005527898A (ja) * 2002-04-18 2005-09-15 インターナショナル・ビジネス・マシーンズ・コーポレーション チャネル・アダプタ障害に対する冗長性を提供する方法
JP2011028408A (ja) * 2009-07-23 2011-02-10 Fujitsu Ltd 仮想マシン移動制御プログラム,仮想マシン移動制御方法および仮想マシン移動制御装置
US20130254321A1 (en) * 2012-03-26 2013-09-26 Oracle International Corporation System and method for supporting live migration of virtual machines in a virtualization environment
JP2015514271A (ja) * 2012-03-26 2015-05-18 オラクル・インターナショナル・コーポレイション 仮想化環境においてバーチャルマシンのライブマイグレーションをサポートするためのシステムおよび方法

Family Cites Families (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055532A (en) 1996-05-14 2000-04-25 Soeder; Thomas B. Method and apparatus for recording and reading date data having coexisting formats
US20030208572A1 (en) 2001-08-31 2003-11-06 Shah Rajesh R. Mechanism for reporting topology changes to clients in a cluster
US7093024B2 (en) 2001-09-27 2006-08-15 International Business Machines Corporation End node partitioning using virtualization
US6988161B2 (en) 2001-12-20 2006-01-17 Intel Corporation Multiple port allocation and configurations for different port operation modes on a host
US20030120585A1 (en) 2001-12-21 2003-06-26 Richard Rosenblatt Confidential electronic trading and matching system incorporating execution via an auction market
US7484208B1 (en) 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
US7283473B2 (en) 2003-04-10 2007-10-16 International Business Machines Corporation Apparatus, system and method for providing multiple logical channel adapters within a single physical channel adapter in a system area network
US7493409B2 (en) 2003-04-10 2009-02-17 International Business Machines Corporation Apparatus, system and method for implementing a generalized queue pair in a system area network
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US7934020B1 (en) 2003-09-19 2011-04-26 Vmware, Inc. Managing network data transfers in a virtual computer system
US7555002B2 (en) 2003-11-06 2009-06-30 International Business Machines Corporation Infiniband general services queue pair virtualization for multiple logical ports on a single physical port
US8335909B2 (en) 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US7200704B2 (en) 2005-04-07 2007-04-03 International Business Machines Corporation Virtualization of an I/O adapter port using enablement and activation functions
US7581021B2 (en) 2005-04-07 2009-08-25 International Business Machines Corporation System and method for providing multiple virtual host channel adapters using virtual switches
US7613864B2 (en) 2005-04-22 2009-11-03 Sun Microsystems, Inc. Device sharing
US7565463B2 (en) 2005-04-22 2009-07-21 Sun Microsystems, Inc. Scalable routing and addressing
US7574536B2 (en) 2005-04-22 2009-08-11 Sun Microsystems, Inc. Routing direct memory access requests using doorbell addresses
US7478178B2 (en) 2005-04-22 2009-01-13 Sun Microsystems, Inc. Virtualization for device sharing
US7293129B2 (en) 2005-04-22 2007-11-06 Sun Microsystems, Inc. Flexible routing and addressing
US7620741B2 (en) 2005-04-22 2009-11-17 Sun Microsystems, Inc. Proxy-based device sharing
JP4883979B2 (ja) 2005-10-11 2012-02-22 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および通信制御方法
US7996583B2 (en) 2006-08-31 2011-08-09 Cisco Technology, Inc. Multiple context single logic virtual host channel adapter supporting multiple transport protocols
US9712486B2 (en) 2006-09-25 2017-07-18 Weaved, Inc. Techniques for the deployment and management of network connected devices
US7813366B2 (en) * 2006-12-19 2010-10-12 International Business Machines Corporation Migration of a virtual endpoint from one virtual plane to another
US20080189432A1 (en) 2007-02-02 2008-08-07 International Business Machines Corporation Method and system for vm migration in an infiniband network
US20080186990A1 (en) * 2007-02-02 2008-08-07 International Business Machines Corporation Translation module, method and computer program product for providing multiple infiniband address support for vm migration using infiniband address translation
US7836332B2 (en) 2007-07-18 2010-11-16 Hitachi, Ltd. Method and apparatus for managing virtual ports on storage systems
CN101842052B (zh) 2007-07-19 2013-11-20 北卡罗来纳大学查珀尔希尔分校 固定x射线数字化乳房断层合成系统和相关方法
US20090077268A1 (en) 2007-09-14 2009-03-19 International Business Machines Corporation Low Latency Multicast for Infiniband Host Channel Adapters
US8798056B2 (en) 2007-09-24 2014-08-05 Intel Corporation Method and system for virtual port communications
US8331381B2 (en) 2007-12-04 2012-12-11 International Business Machines Corporation Providing visibility of Ethernet components to a subnet manager in a converged InfiniBand over Ethernet network
CN101227298B (zh) 2008-01-09 2010-06-02 南京大学 基于片上网络的路由器功耗确定方法
US7962564B2 (en) 2008-02-25 2011-06-14 International Business Machines Corporation Discovery of a virtual topology in a multi-tasking multi-processor environment
US20090222640A1 (en) 2008-02-28 2009-09-03 Bauman Ellen M Memory Migration in a Logically Partitioned Computer System
JP4591571B2 (ja) 2008-08-04 2010-12-01 株式会社デンソー 電源装置
JP2010039730A (ja) 2008-08-05 2010-02-18 Fujitsu Ltd ネットワーク設定プログラム,ネットワーク設定方法及びネットワーク設定装置
US8739269B2 (en) 2008-08-07 2014-05-27 At&T Intellectual Property I, L.P. Method and apparatus for providing security in an intranet network
JP5172545B2 (ja) 2008-09-01 2013-03-27 ヤンマー株式会社 過給機の冷却構造
JP5272265B2 (ja) 2008-09-29 2013-08-28 株式会社日立製作所 Pciデバイス共有方法
US7996484B2 (en) 2008-12-11 2011-08-09 Microsoft Corporation Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory
US8862538B2 (en) 2008-12-18 2014-10-14 International Business Machines Corporation Maintaining a network connection of a workload during transfer
US7970913B2 (en) 2008-12-31 2011-06-28 International Business Machines Corporation Virtualizing sockets to enable the migration of a system environment
WO2010099407A1 (en) 2009-02-27 2010-09-02 Broadcom Corporation Method and system for virtual machine networking
US9817695B2 (en) 2009-04-01 2017-11-14 Vmware, Inc. Method and system for migrating processes between virtual machines
US8429647B2 (en) 2009-05-06 2013-04-23 Vmware, Inc. Virtual machine migration across network by publishing routes to the associated virtual networks via virtual router after the start of migration of the virtual machine
US8150971B2 (en) 2009-05-31 2012-04-03 Red Hat Israel, Ltd. Mechanism for migration of client-side virtual machine system resources
US8489744B2 (en) 2009-06-29 2013-07-16 Red Hat Israel, Ltd. Selecting a host from a host cluster for live migration of a virtual machine
EP2309680B1 (en) 2009-10-08 2017-07-19 Solarflare Communications Inc Switching API
US8370560B2 (en) 2009-11-16 2013-02-05 International Business Machines Corporation Symmetric live migration of virtual machines
US8327060B2 (en) 2009-11-30 2012-12-04 Red Hat Israel, Ltd. Mechanism for live migration of virtual machines with memory optimizations
US8589921B2 (en) 2009-11-30 2013-11-19 Red Hat Israel, Ltd. Method and system for target host optimization based on resource sharing in a load balancing host and virtual machine adjustable selection algorithm
US8650565B2 (en) 2009-12-14 2014-02-11 Citrix Systems, Inc. Servicing interrupts generated responsive to actuation of hardware, via dynamic incorporation of ACPI functionality into virtual firmware
US9389895B2 (en) 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
JP5190084B2 (ja) 2010-03-30 2013-04-24 株式会社日立製作所 仮想マシンのマイグレーション方法およびシステム
US8700811B2 (en) 2010-05-25 2014-04-15 Microsoft Corporation Virtual machine I/O multipath configuration
US8989187B2 (en) 2010-06-04 2015-03-24 Coraid, Inc. Method and system of scaling a cloud computing network
US8873551B2 (en) 2010-07-30 2014-10-28 Cisco Technology, Inc. Multi-destination forwarding in network clouds which include emulated switches
US8489699B2 (en) 2010-08-13 2013-07-16 Vmware, Inc. Live migration of virtual machine during direct access to storage over SR IOV adapter
US20120173757A1 (en) 2011-01-05 2012-07-05 International Business Machines Corporation Routing optimization for virtual machine migration between geographically remote data centers
US8407182B1 (en) 2011-01-21 2013-03-26 Symantec Corporation Systems and methods for facilitating long-distance live migrations of virtual machines
US9552215B2 (en) 2011-03-08 2017-01-24 Rackspace Us, Inc. Method and system for transferring a virtual machine
US8935506B1 (en) 2011-03-31 2015-01-13 The Research Foundation For The State University Of New York MemX: virtualization of cluster-wide memory
WO2012143965A1 (en) 2011-04-18 2012-10-26 Hitachi, Ltd. Plurality of coupled storage subsystems and method for setting port access limitation in a storage subsystem when migrating a logical volume
US9130935B2 (en) 2011-05-05 2015-09-08 Good Technology Corporation System and method for providing access credentials
US20120287931A1 (en) 2011-05-13 2012-11-15 International Business Machines Corporation Techniques for securing a virtualized computing environment using a physical network switch
US20120291024A1 (en) 2011-05-13 2012-11-15 International Business Machines Corporation Virtual Managed Network
US9218195B2 (en) 2011-05-17 2015-12-22 International Business Machines Corporation Vendor-independent resource configuration interface for self-virtualizing input/output device
US9225628B2 (en) 2011-05-24 2015-12-29 Mellanox Technologies Ltd. Topology-based consolidation of link state information
US8743890B2 (en) * 2011-06-03 2014-06-03 Oracle International Corporation System and method for supporting sub-subnet in an infiniband (IB) network
EP2719124B1 (en) 2011-06-07 2018-04-11 Hewlett-Packard Enterprise Development LP A scalable multi-tenant network architecture for virtualized datacenters
EP2725496A1 (en) 2011-06-21 2014-04-30 Fujitsu Limited Information processing device, virtual machine control method and program
JP5643990B2 (ja) 2011-07-29 2014-12-24 株式会社日立製作所 ネットワーク装置及びネットワークシステム
US8656389B2 (en) 2011-08-22 2014-02-18 Vmware, Inc. Virtual port command processing during migration of virtual machine
JP5776600B2 (ja) 2011-09-05 2015-09-09 富士通株式会社 データ中継装置、データ中継プログラムおよびデータ中継方法
US20130083690A1 (en) 2011-10-04 2013-04-04 International Business Machines Corporation Network Adapter Hardware State Migration Discovery in a Stateful Environment
US9014201B2 (en) 2011-11-09 2015-04-21 Oracle International Corporation System and method for providing deadlock free routing between switches in a fat-tree topology
US8879396B2 (en) 2011-11-15 2014-11-04 Oracle International Corporation System and method for using dynamic allocation of virtual lanes to alleviate congestion in a fat-tree topology
EP2788871B1 (en) 2011-12-07 2021-08-04 Citrix Systems, Inc. Controlling a network interface using virtual switch proxying
US8930690B2 (en) 2012-03-21 2015-01-06 Microsoft Corporation Offloading packet processing for networking device virtualization
US9135097B2 (en) * 2012-03-27 2015-09-15 Oracle International Corporation Node death detection by querying
US9201679B2 (en) 2012-05-31 2015-12-01 Red Hat Israel, Ltd. Multiple destination live migration
EP2811412A4 (en) 2012-06-25 2016-03-09 Hitachi Ltd COMPUTER SYSTEM AND METHOD FOR MIGRATION OF APPLICATION PROGRAM EXECUTION ENVIRONMENT
US9104645B2 (en) 2012-07-27 2015-08-11 Dell Products, Lp System and method of replicating virtual machines for live migration between data centers
US20140052877A1 (en) 2012-08-16 2014-02-20 Wenbo Mao Method and apparatus for tenant programmable logical network for multi-tenancy cloud datacenters
US9130858B2 (en) 2012-08-29 2015-09-08 Oracle International Corporation System and method for supporting discovery and routing degraded fat-trees in a middleware machine environment
CN102968344A (zh) 2012-11-26 2013-03-13 北京航空航天大学 一种多虚拟机迁移调度的方法
US8937949B2 (en) 2012-12-20 2015-01-20 Oracle International Corporation Method and system for Infiniband host channel adapter multicast packet replication mechanism
US9485188B2 (en) 2013-02-01 2016-11-01 International Business Machines Corporation Virtual switching based flow control
US10051054B2 (en) * 2013-03-15 2018-08-14 Oracle International Corporation System and method for efficient virtualization in lossless interconnection networks
US9990221B2 (en) 2013-03-15 2018-06-05 Oracle International Corporation System and method for providing an infiniband SR-IOV vSwitch architecture for a high performance cloud computing environment
US9577956B2 (en) 2013-07-29 2017-02-21 Oracle International Corporation System and method for supporting multi-homed fat-tree routing in a middleware machine environment
US10454991B2 (en) 2014-03-24 2019-10-22 Mellanox Technologies, Ltd. NIC with switching functionality between network ports
CN104184642B (zh) 2014-08-31 2017-05-10 西安电子科技大学 多级星型交换网络结构及优化方法
US10198288B2 (en) 2014-10-30 2019-02-05 Oracle International Corporation System and method for providing a dynamic cloud with subnet administration (SA) query caching
US9898430B2 (en) 2014-11-12 2018-02-20 Vmware, Inc. Tracking virtual machine memory modified by a single root I/O virtualization (SR-IOV) device
US10680876B2 (en) 2015-01-14 2020-06-09 Signify Holding B.V. Adaptive recovery from node failures in a network system
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US10063446B2 (en) 2015-06-26 2018-08-28 Intel Corporation Netflow collection and export offload using network silicon
US10432650B2 (en) 2016-03-31 2019-10-01 Stuart Staniford System and method to protect a webserver against application exploits and attacks
US11409619B2 (en) 2020-04-29 2022-08-09 The Research Foundation For The State University Of New York Recovering a virtual machine after failure of post-copy live migration

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005527898A (ja) * 2002-04-18 2005-09-15 インターナショナル・ビジネス・マシーンズ・コーポレーション チャネル・アダプタ障害に対する冗長性を提供する方法
JP2011028408A (ja) * 2009-07-23 2011-02-10 Fujitsu Ltd 仮想マシン移動制御プログラム,仮想マシン移動制御方法および仮想マシン移動制御装置
US20130254321A1 (en) * 2012-03-26 2013-09-26 Oracle International Corporation System and method for supporting live migration of virtual machines in a virtualization environment
JP2015514271A (ja) * 2012-03-26 2015-05-18 オラクル・インターナショナル・コーポレイション 仮想化環境においてバーチャルマシンのライブマイグレーションをサポートするためのシステムおよび方法

Also Published As

Publication number Publication date
EP3265912A1 (en) 2018-01-10
KR20170125790A (ko) 2017-11-15
US10514946B2 (en) 2019-12-24
US9990221B2 (en) 2018-06-05
JP6763860B2 (ja) 2020-09-30
US20180285142A1 (en) 2018-10-04
CN107111513B (zh) 2020-11-03
KR102445870B1 (ko) 2022-09-21
WO2016144547A1 (en) 2016-09-15
US20200110630A1 (en) 2020-04-09
US20160259661A1 (en) 2016-09-08
US11740922B2 (en) 2023-08-29
EP3265912B1 (en) 2022-04-20
US20210389969A1 (en) 2021-12-16
US11132216B2 (en) 2021-09-28
CN107111513A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
JP6850804B2 (ja) 高性能コンピューティング環境においてデュアルポート仮想ルータをサポートするためのシステムおよび方法
JP7109527B2 (ja) 無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法
JP7407164B2 (ja) 高性能コンピューティング環境における仮想ルータポートにわたるsmp接続性チェックのためのルータsma抽象化をサポートするためのシステムおよび方法
JP6763860B2 (ja) 高性能クラウドコンピューティング環境のためのインフィニバンドSR−IOV vSwitchアーキテクチャを提供するためのシステムおよび方法
JP6957451B2 (ja) 高性能コンピューティング環境での線形転送テーブル(lft)探索のためにグローバルルートヘッダ(grh)におけるサブネットプレフィックス値を用いるためのシステムおよび方法
JP6920281B2 (ja) 高性能コンピューティング環境において仮想マシンの仮想マシンファブリックプロファイルを規定するためのシステムおよび方法
US20210359937A1 (en) System and method for scalable multi-homed routing for vswitch based hca virtualization
JP7297830B2 (ja) 高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムおよび方法
JP2019526943A (ja) 高性能コンピューティング環境における高速ハイブリッド再構成をサポートするためのシステムおよび方法
JP6902527B2 (ja) 高性能コンピューティング環境においてスイッチポートステータスのスケーラブルな表現をサポートするためのシステムおよび方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190221

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200623

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200807

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200818

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200910

R150 Certificate of patent or registration of utility model

Ref document number: 6763860

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250