JP6920281B2 - 高性能コンピューティング環境において仮想マシンの仮想マシンファブリックプロファイルを規定するためのシステムおよび方法 - Google Patents

高性能コンピューティング環境において仮想マシンの仮想マシンファブリックプロファイルを規定するためのシステムおよび方法 Download PDF

Info

Publication number
JP6920281B2
JP6920281B2 JP2018510841A JP2018510841A JP6920281B2 JP 6920281 B2 JP6920281 B2 JP 6920281B2 JP 2018510841 A JP2018510841 A JP 2018510841A JP 2018510841 A JP2018510841 A JP 2018510841A JP 6920281 B2 JP6920281 B2 JP 6920281B2
Authority
JP
Japan
Prior art keywords
fabric
relationship
virtual
vguid
management
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.)
Active
Application number
JP2018510841A
Other languages
English (en)
Other versions
JP2019509529A (ja
JP2019509529A5 (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 JP2019509529A publication Critical patent/JP2019509529A/ja
Publication of JP2019509529A5 publication Critical patent/JP2019509529A5/ja
Application granted granted Critical
Publication of JP6920281B2 publication Critical patent/JP6920281B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • H04L49/358Infiniband Switches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/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]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • H04L45/484Routing tree calculation using multiple routing trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/65Re-configuration of fast packet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/45579I/O management, e.g. providing access to device drivers or storage
    • 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/45583Memory management, e.g. access or allocation
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/645Fibre channel identifiers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/668Internet protocol [IP] address subnets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Description

著作権に関する注意
本特許文献の開示の一部には、著作権保護の対象となるものが含まれている。著作権者は、この特許文献または特許開示の何者かによる複製が、特許商標庁の特許ファイルまたは記録にある限り、それに対して異議を唱えないが、そうでなければ、いかなる場合もすべての著作権を留保する。
発明の分野
本発明は、概してコンピュータシステムに関し、具体的には仮想マシンの仮想マシンファブリックプロファイルを規定することに関する。
背景
導入されるクラウドコンピューティングアーキテクチャがより大規模になるのに応じて、従来のネットワークおよびストレージに関する性能および管理の障害が深刻な問題になってきている。クラウドコンピューティングファブリックのための基礎としてインフィニバンドTM(InfiniBand:IB)技術などの高性能な無損失相互接続を用いることへの関心がますます高まってきている。これは、本発明の実施形態が対応するように意図された一般領域である。
概要
本明細書に記載されているのは、仮想マシンの仮想マシンファブリックプロファイルを規定するためのシステムおよび方法である。ある例示的な実施形態は、仮想マシン識別子、仮想ホストチャネルアダプタインスタンスID、および仮想グローバル一意識別子を提供することができる。仮想マシン識別子、仮想ホストチャネルアダプタインスタンスID、および仮想グローバル一意識別子は、仮想マシン識別子にアクセスすることにより、仮想ホストチャネルアダプタインスタンスIDおよび仮想グローバル一意識別子を取出すことができるように、相互にマッピングすることができる。さらに、管理パーティションを規定するP_Keyと仮想グローバル一意識別子との間の関係を作成することができ、上記P_Keyと仮想グローバル一意識別子との間の関係は、仮想グローバル一意識別子を、P_Keyによって規定される管理パーティションのメンバとして規定する。
一実施形態に従うインフィニバンドTM環境の一例を示す図である。 一実施形態に従う分割されたクラスタ環境の一例を示す図である。 一実施形態に従うネットワーク環境におけるツリートポロジーの一例を示す図である。 一実施形態に従う例示的な共有ポートアーキテクチャを示す図である。 一実施形態に従う例示的なvSwitchアーキテクチャを示す図である。 一実施形態に従う例示的なvPortアーキテクチャを示す図である。 一実施形態に従うLIDが予めポピュレートされている例示的なvSwitchアーキテクチャを示す図である。 一実施形態に従う動的LID割当てがなされた例示的なvSwitchアーキテクチャを示す図である。 一実施形態に従う、vSwitchに動的LID割当てがなされかつLIDが予めポピュレートされている、例示的なvSwitchアーキテクチャを示す図である。 一実施形態に従う例示的なマルチサブネットインフィニバンドTMファブリックを示す図である。 一実施形態に従う、例示的な物理および論理サブネットリソースを含む例示的なインフィニバンドTMファブリックおよびサブネットを示す図である。 一実施形態に従う、異なる管理パーティションのメンバとしての例示的なサブネットリソースを含む例示的なインフィニバンドTMファブリックおよびサブネットを示す図である。 一実施形態に従う、管理パーティションおよびリソースドメイン双方を含む、階層管理スキームのメンバとしての例示的なサブネットリソースを含む例示的なインフィニバンドTMファブリックおよびサブネットを示す図である。 一実施形態に従う、ファブリックレベルリソースドメインに対応付けられた管理パーティションのメンバおよび対応付けられたリソースに対して相互アクセス権を割当てるための方法のフローチャートを示す図である。 一実施形態に従う、VMファブリックプロファイル情報を格納するための例示的なデータベース構造を示す図である。 一実施形態に従う、VMファブリックプロファイルをサブネットリソースが利用できるようにするためのフローチャートを示す図である。 一実施形態に従う、仮想マシンの仮想マシンファブリックプロファイルを作成するためのフローチャートを示す図である。
詳細な説明
本発明は、同様の参照番号が同様の要素を指している添付図面の図において、限定のためではなく例示のために説明されている。なお、この開示における「ある」または「1つの」または「いくつかの」実施形態への参照は必ずしも同じ実施形態に対するものではなく、そのような参照は少なくとも1つを意味する。特定の実現例が説明されるが、これらの特定の実現例が例示的な目的のためにのみ提供されることが理解される。当業者であれば、他の構成要素および構成が、この発明の範囲および精神から逸脱することなく使用され得ることを認識するであろう。
図面および詳細な説明全体にわたって同様の要素を示すために、共通の参照番号が使用され得る。したがって、ある図で使用される参照番号は、要素が別のところで説明される場合、そのような図に特有の詳細な説明において参照される場合もあり、または参照されない場合もある。
本明細書に記載されているのは、仮想マシンの仮想マシンファブリックプロファイルを規定するためのシステムおよび方法である。
この発明の以下の説明は、高性能ネットワークの一例として、インフィニバンドTM(IB)ネットワークを使用する。以下の説明全体にわたり、インフィニバンドTMの仕様(インフィニバンド仕様、IB仕様、またはレガシーIB仕様など、さまざまな呼ばれ方がある)を引用することがある。このような引用は、2015年3月に発表され、http://www.inifinibandta.orgから入手可能な、本明細書にその全体を引用により援用するInfiniBand Trade Association Architecture Specification, Volume 1, Version 1.3を引用することであると理解される。他のタイプの高性能ネットワークが何ら限定されることなく使用され得ることが、当業者には明らかであるだろう。以下の説明ではまた、ファブリックトポロジーについての一例として、ファットツリートポロジーを使用する。他のタイプのファブリックトポロジーが何ら限定されることなく使用され得ることが当業者には明らかであるだろう。
インフィニバンド TM
インフィニバンドTM(IB)は、インフィニバンドTM・トレード・アソシエーション(InfiniBandTM Trade Association)によって開発されたオープン標準無損失ネットワーク技術である。この技術は、特に高性能コンピューティング(high-performance computing:HPC)アプリケーションおよびデータセンタを対象とする、高スループットおよび少ない待ち時間の通信を提供するシリアルポイントツーポイント全二重相互接続(serial point-to-point full-duplex interconnect)に基づいている。
インフィニバンドTM・アーキテクチャ(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ネットワークにおけるサブネット内のルーティングは、スイッチに格納されたリニアフォワーディングテーブル(linear forwarding table)(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は、リンクがダウンした場合、デバイスが追加された場合、またはリンクが除去された場合など、ネットワークトポロジーが変化する場合に、ネットワークを再構成し得る。再構成ステップは、ネットワーク初期化中に行なわれるステップを含み得る。さらに、再構成は、ネットワーク変化が生じたサブネットに制限されるローカルスコープを有し得る。また、ルータを用いる大規模ファブリックのセグメント化は、再構成スコープを制限し得る。
一実施形態に従ったインフィニバンドTM環境100の一例を示す図1に、インフィニバンドTMファブリックの一例を示す。図1に示す例では、ノードA101〜E105は、インフィニバンドTMファブリック120を使用して、それぞれのホストチャネルアダプタ111〜115を介して通信する。一実施形態に従うと、さまざまなノード(たとえばノードA101〜E105)はさまざまな物理デバイスによって表わすことができる。一実施形態に従うと、さまざまなノード(たとえばノードA101〜E105)は仮想マシンなどのさまざまな仮想デバイスによって表わすことができる。
インフィニバンド TM におけるデータパーティション
一実施形態に従うと、IBネットワークは、ネットワークファブリックを共有するシステムの論理グループを分離するためのセキュリティメカニズムとしてのパーティショニングをサポートし得る。ファブリックにおけるノード上の各HCAポートは、1つ以上のパーティションのメンバである可能性がある。一実施形態に従うと、本開示は、IBサブネット内に規定することができる2種類のパーティションとして、データパーティション(以下の段落でより詳細に説明する)と管理パーティション(本開示において後に詳細に説明する)とを提供する。
データパーティションメンバーシップは、SMの一部であり得る集中型パーティションマネージャによって管理される。SMは、各ポートに関するデータパーティションメンバーシップ情報を、16ビットのパーティションキー(partition key:P_Key)のテーブルとして構成することができる。SMはまた、これらのポートを介してデータトラフィックを送信または受信するエンドノードに関連付けられたP_Key情報を含むデータパーティション実施テーブルを用いて、スイッチポートおよびルータポートを構成することができる。加えて、一般的な場合には、スイッチポートのデータパーティションメンバーシップは、(リンクに向かう)出口方向に向かってポートを介してルーティングされたLIDに間接的に関連付けられたすべてのメンバーシップの集合を表わし得る。
一実施形態に従うと、データパーティションはポートの論理グループであり、あるグループのメンバは同じ論理グループの他のメンバとしか通信できない。ホストチャネルアダプタ(HCA)およびスイッチにおいて、データパーティションメンバーシップ情報を用いてパケットをフィルタリングすることにより、分離を実施することができる。無効なパーティショニング情報を有するパケットは、当該パケットが入口ポートに達すると直ちにドロップすることができる。パーティショニングされたIBシステムにおいて、データパーティションを用いることにより、テナントクラスタを作成できる。データパーティションを適所で実施すると、ノードは異なるテナントクラスタに属する他のノードと通信することができない。このようにして、欠陥があるまたは悪意があるテナントノードが存在していても、システムのセキュリティを保証することができる。
一実施形態に従うと、ノード間の通信のために、マネージメントキューペア(QP0およびQP1)を除き、キューペア(Queue Pair:QP)およびエンドツーエンドコンテキスト(End-to-End context:EEC)を特定のデータパーティションに割当てることができる。次に、P_Key情報を、送信されたすべてのIBトランスポートパケットに追加することができる。パケットがHCAポートまたはスイッチに到着すると、そのP_Key値を、SMによって構成されたテーブルに対して確認することができる。無効のP_Key値が見つかった場合、そのパケットは直ちに廃棄される。このようにして、通信は、データパーティションを共有するポート間でのみ許可される。
一実施形態に従い、データがパーティショニングされたクラスタ環境の一例を示す図2に、IBパーティションの一例が示される。図2に示す例では、ノードA101〜E105は、インフィニバンドTMファブリック120を使用して、それぞれのホストチャネルアダプタ111〜115を介して通信する。ノードA〜Eは、データパーティション、すなわち、データパーティション1 130、データパーティション2 140、およびデータパーティション3 150に配置されている。データパーティション1はノードA 101とノードD 104とを含む。データパーティション2はノードA 101とノードB 102とノードC 103とを含む。データパーティション3はノードC 103とノードE 105とを含む。データパーティションのこの配置により、ノードD 104およびノードE 105は、1つのデータパーティションを共有していないので、通信することができない。一方、たとえばノードA 101およびノードC 103は、どちらもデータパーティション2 140のメンバなので、通信することができる。
インフィニバンド TM における仮想マシン
過去10年の間に、ハードウェア仮想化サポートによってCPUオーバーヘッドが実質的に排除され、メモリ管理ユニットを仮想化することによってメモリオーバーヘッドが著しく削減され、高速SANストレージまたは分散型ネットワークファイルシステムの利用によってストレージオーバーヘッドが削減され、シングルルートI/O仮想化(Single Root Input/Output Virtualization:SR−IOV)のようなデバイス・パススルー技術を使用することによってネットワークI/Oオーバーヘッドが削減されてきたことに応じて、仮想化された高性能コンピューティング(High Performance Computing:HPC)環境の将来見通しが大幅に改善されてきた。現在では、クラウドが、高性能相互接続ソリューションを用いて仮想HPC(virtual HPC:vHPC)クラスタに対応し、必要な性能を提供することができる。
しかしながら、インフィニバンドTM(IB)などの無損失ネットワークと連結されたとき、仮想マシン(VM)のライブマイグレーションなどのいくつかのクラウド機能は、これらのソリューションにおいて用いられる複雑なアドレス指定およびルーティングスキームのせいで、依然として問題となる。IBは、高帯域および低レイテンシを提供する相互接続ネットワーク技術であり、このため、HPCおよび他の通信集約型の作業負荷に非常によく適している。
IBデバイスをVMに接続するための従来のアプローチは直接割当てされたSR−IOVを利用することによるものである。しかしながら、SR−IOVを用いてIBホストチャネルアダプタ(HCA)に割当てられたVMのライブマイグレーションを実現することは難易度の高いものであることが判明した。各々の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)に近づくにつれて、より利用可能な帯域幅を用いて、ノード間のより太いリンクを採用することであった。より太いリンクは、上位レベルのスイッチにおける輻輳を回避するのに役立てることができ、バイセクション帯域幅が維持される。
図3は、一実施形態に従った、ネットワーク環境におけるツリートポロジーの例を示す。図3に示すように、ネットワークファブリック200において、1つ以上のエンドノード201〜204が接続され得る。ネットワークファブリック200は、複数のリーフスイッチ211〜214と複数のスパインスイッチまたはルート(root)スイッチ231〜234とを含むファットツリートポロジーに基づき得る。加えて、ネットワークファブリック200は、スイッチ221〜224などの1つ以上の中間スイッチを含み得る。
また、図3に示すように、エンドノード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を、他の機能的経路と同じやり方で生成する場合、問題が生じる。この動作は、リンク上でバランシングを劣化させるおそれがある。なぜなら、ノードが索引付けの順序でルーティングされているからである。データパーティションに気づかずにルーティングが行なわれるため、ファットツリーでルーティングされたサブネットにより、概して、データパーティション間の分離が不良なものとなる。
一実施形態に従うと、ファットツリーは、利用可能なネットワークリソースでスケーリングすることができる階層ネットワークトポロジーである。さらに、ファットツリーは、さまざまなレベルの階層に配置された商品スイッチを用いて容易に構築される。さらに、k−ary−n−tree、拡張された一般化ファットツリー(Extended Generalized Fat-Tree:XGFT)、パラレルポート一般化ファットツリー(Parallel Ports Generalized Fat-Tree:PGFT)およびリアルライフファットツリー(Real Life Fat-Tree:RLFT)を含むファットツリーのさまざまな変形例が、一般に利用可能である。
また、k−ary−n−treeは、nレベルのファットツリーであって、kエンドノードと、n・kn−1スイッチとを備え、各々が2kポートを備えている。各々のスイッチは、ツリーにおいて上下方向に同数の接続を有している。XGFTファットツリーは、スイッチのための異なる数の上下方向の接続と、ツリーにおける各レベルでの異なる数の接続とをともに可能にすることによって、k−ary−n−treeを拡張させる。PGFT定義はさらに、XGFTトポロジーを拡張して、スイッチ間の複数の接続を可能にする。多種多様なトポロジーはXGFTおよびPGFTを用いて定義することができる。しかしながら、実用化するために、現代のHPCクラスタにおいて一般に見出されるファットツリーを定義するために、PGFTの制限バージョンであるRLFTが導入されている。RLFTは、ファットツリーにおけるすべてのレベルに同じポートカウントスイッチを用いている。
入出力(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仮想化(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が宛先において付与されることとなる。インフィニバンドTMおよびSR−IOVの場合、このプロセスがダウンタイムを数秒のオーダでもたらす可能性がある。さらに、SR−IOV共有型ポートモデルにおいては、VMのアドレスがマイグレーション後に変化することとなり、これにより、SMにオーバーヘッドが追加され、基礎をなすネットワークファブリックの性能に対して悪影響が及ぼされることとなる。
インフィニバンド TM SR−IOVアーキテクチャ−共有ポート
さまざまなタイプのSR−IOVモデル(たとえば共有ポートモデル、仮想スイッチモデルおよび仮想ポートモデル)があり得る。
図4は、一実施形態に従った例示的な共有ポートアーキテクチャを示す。図に示されるように、ホスト300(たとえばホストチャネルアダプタ)はハイパーバイザ310と対話し得る。ハイパーバイザ310は、さまざまな仮想機能330、340および350をいくつかの仮想マシンに割当て得る。同様に、物理機能はハイパーバイザ310によって処理することができる。
一実施形態に従うと、図4に示されるような共有ポートアーキテクチャを用いる場合、ホスト(たとえばHCA)は、物理機能320と仮想機能330、350、350との間において単一の共有LIDおよび共有キュー対(Queue Pair:QP)のスペースがあるネットワークにおいて単一のポートとして現われる。しかしながら、各々の機能(すなわち、物理機能および仮想機能)はそれら自体のGIDを有し得る。
図4に示されるように、一実施形態に従うと、さまざまなGIDを仮想機能および物理機能に割当てることができ、特別のキュー対であるQP0およびQP1(すなわちインフィニバンドTM管理パケットのために用いられる専用のキュー対)が物理機能によって所有される。これらのQPはVFにも同様にエクスポーズされるが、VFはQP0を使用することが許可されておらず(VFからQP0に向かって入来するすべてのSMPが廃棄され)、QP1は、PFが所有する実際のQP1のプロキシとして機能し得る。
一実施形態に従うと、共有ポートアーキテクチャは、(仮想機能に割当てられることによってネットワークに付随する)VMの数によって制限されることのない高度にスケーラブルなデータセンタを可能にし得る。なぜなら、ネットワークにおける物理的なマシンおよびスイッチによってLIDスペースが消費されるだけであるからである。
しかしながら、共有ポートアーキテクチャの欠点は、トランスペアレントなライブマイグレーションを提供することができない点であり、これにより、フレキシブルなVM配置についての可能性が妨害されてしまう。各々のLIDが特定のハイパーバイザに関連付けられており、かつハイパーバイザ上に常駐するすべてのVM間で共有されているので、マイグレートしているVM(すなわち、宛先ハイパーバイザにマイグレートする仮想マシン)は、そのLIDを宛先ハイパーバイザのLIDに変更させなければならない。さらに、QP0アクセスが制限された結果、サブネットマネージャはVMの内部で実行させることができなくなる。
インフィニバンド TM SR−IOVアーキテクチャモデル−仮想スイッチ(vSwitch)
図5は、一実施形態に従った例示的な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の数が制限されてしまい、逆の場合も同様に制限される。
インフィニバンド TM SR−IOVアーキテクチャモデル−仮想ポート(vPort)
図6は、一実施形態に従った例示的なvPortの概念を示す。図に示されるように、ホスト300(たとえばホストチャネルアダプタ)は、さまざまな仮想機能330、340および350をいくつかの仮想マシンに割当てることができるハイパーバイザ410と対話することができる。同様に、物理機能はハイパーバイザ310によって処理することができる。
一実施形態に従うと、ベンダーに実装の自由を与えるためにvPort概念は緩やかに定義されており(たとえば、当該定義では、実装がSRIOV専用とすべきであるとは規定されていない)、vPortの目的は、VMがサブネットにおいて処理される方法を標準化することである。vPort概念であれば、空間ドメインおよび性能ドメインの両方においてよりスケーラブルであり得る、SR−IOV共有のポートのようなアーキテクチャおよびvSwitchのようなアーキテクチャの両方、または、これらのアーキテクチャの組合せが規定され得る。また、vPortはオプションのLIDをサポートするとともに、共有のポートとは異なり、SMは、vPortが専用のLIDを用いていなくても、サブネットにおいて利用可能なすべてのvPortを認識する。
インフィニバンド TM SR−IOVアーキテクチャモデル−LIDが予めポピュレートされたvSwitch
一実施形態に従うと、本開示は、LIDが予めポピュレートされたvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。
図7は、一実施形態に従った、LIDが予めポピュレートされた例示的なvSwitchアーキテクチャを示す。図に示されるように、いくつかのスイッチ501〜504は、ネットワーク切替環境600(たとえばIBサブネット)内においてインフィニバンドTMファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックはホストチャネルアダプタ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アーキテクチャを提供するためのシステムおよび方法を提供する。図7を参照すると、LIDは、さまざまな物理機能513、523および533に、さらには、仮想機能514〜516、524〜526、534〜536(その時点でアクティブな仮想マシンに関連付けられていない仮想機能であっても)にも、予めポピュレートされている。たとえば、物理機能513はLID1が予めポピュレートされており、仮想機能1 534はLID10が予めポピュレートされている。ネットワークがブートされているとき、LIDはSR−IOV vSwitch対応のサブネットにおいて予めポピュレートされている。VFのすべてがネットワークにおけるVMによって占有されていない場合であっても、ポピュレートされたVFには、図7に示されるように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が予めポピュレートされていなかった場合よりも時間が長くかかる可能性がある。
インフィニバンド TM SR−IOVアーキテクチャモデル−動的LID割当てがなされたvSwitch
一実施形態に従うと、本開示は、動的LID割当てがなされたvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。
図8は、一実施形態に従った、動的LID割当てがなされた例示的なvSwitchアーキテクチャを示す。図に示されるように、いくつかのスイッチ501〜504は、ネットワーク切替環境700(たとえばIBサブネット)内においてインフィニバンドTMファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックは、ホストチャネルアダプタ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の各々はいくつかのポート(図示せず)を含み得る。いくつかのポートは、ネットワーク切替環境700内においてトラフィックを方向付けるためにリニアフォワーディングテーブルを設定するのに用いられる。
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521および531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
一実施形態に従うと、本開示は、動的LID割当てがなされたvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。図8を参照すると、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に割当てられ、LID9が仮想機能1 534に割当てられている。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において割当てられた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限度付近で動作する際に、断片化されたネットワークの障害を回復および最適化させるための融通性が追加される。
インフィニバンド TM SR−IOVアーキテクチャモデル−動的LID割当てがなされかつLIDが予めポピュレートされたvSwitch
図9は、一実施形態に従った、動的LID割当てがなされてLIDが予めポピュレートされたvSwitchを備えた例示的なvSwitchアーキテクチャを示す。図に示されるように、いくつかのスイッチ501〜504は、ネットワーク切替環境800(たとえばIBサブネット)内においてインフィニバンドTMファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックはホストチャネルアダプタ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の各々はいくつかのポート(図示せず)を含み得る。これらいくつかのポートは、ネットワーク切替環境800内においてトラフィックを方向付けるためにリニアフォワーディングテーブルを設定するのに用いられる。
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521、531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は、完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
一実施形態に従うと、本開示は、動的LID割当てがなされLIDが予めポピュレートされたハイブリッドvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。図9を参照すると、ハイパーバイザ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がともに(いずれかの所与のハイパーバイザ内で独立して、または組合わされて)利用されている、図8に示されるような一実施形態に従うと、ホストチャネルアダプタごとの予めポピュレートされたLIDの数はファブリックアドミニストレータによって定義することができ、(ホストチャネルアダプタごとに)0<=予めポピュレートされたVF<=総VFの範囲内になり得る。動的LID割当てのために利用可能なVFは、(ホストチャネルアダプタごとに)VFの総数から予めポピュレートされたVFの数を減じることによって見出すことができる。
一実施形態に従うと、多くの同様の物理的なホストチャネルアダプタが2つ以上のポートを有することができ(冗長性のために2つのポートが共用となっている)、仮想HCAも2つのポートで表わされ、1つまたは2つ以上の仮想スイッチを介して外部IBサブネットに接続され得る。
インフィニバンド TM −サブネット間通信
一実施形態に従うと、1つのサブネット内にインフィニバンドTMファブリックを提供することに加え、本開示の実施形態は、2つ以上のサブネットにまたがるインフィニバンドTMファブリックを提供することもできる。
図10は、一実施形態に従う例示的なマルチサブネットインフィニバンドTMファブリックを示す。この図に示されるように、サブネットA 1000の内部の多数のスイッチ1001〜1004は、サブネットA 1000(たとえばIBサブネット)内におけるインフィニバンドTMファブリックなどのファブリックのメンバ間の通信を提供することができる。このファブリックは、たとえばチャネルアダプタ1010などの多数のハードウェアデバイスを含み得る。ホストチャネルアダプタ1010は、ハイパーバイザ1011と対話することができる。ハイパーバイザは、対話の相手であるホストチャネルアダプタとともに、多数の仮想機能1014をセットアップすることができる。加えて、ハイパーバイザは、仮想マシンを仮想機能各々に割当てることができる。たとえば、仮想マシン1 1015は仮想機能1 1014に割当てられる。ハイパーバイザは、その対応付けられたホストチャネルアダプタに、各ホストチャネルアダプタ上の物理機能1013などの十分な機能を有する物理機能を通して、アクセスすることができる。
さらに図10を参照して、一実施形態に従うと、多数のスイッチ1021〜1024は、サブネットB 1040(たとえばIBサブネット)内におけるインフィニバンドTMファブリックなどのファブリックのメンバ間の通信を提供することができる。このファブリックは、たとえばホストチャネルアダプタ1030などの多数のハードウェアデバイスを含み得る。ホストチャネルアダプタ1030は、ハイパーバイザ1031と対話することができる。ハイパーバイザは、対話の相手であるホストチャネルアダプタとともに、多数の仮想機能1034をセットアップすることができる。加えて、ハイパーバイザは、仮想マシンを仮想機能各々に割当てることができる。たとえば、仮想マシン2 1035は仮想機能2 1034に割当てられる。ハイパーバイザは、その対応付けられたホストチャネルアダプタに、各ホストチャネルアダプタ上の物理機能1033などの十分な機能を有する物理機能を通して、アクセスすることができる。なお、各サブネット(すなわちサブネットAおよびサブネットB)内に示されているホストチャネルアダプタは1つだけであるが、各サブネット内に複数のホストチャネルアダプタおよびそれらに対応するコンポーネントが含まれていてもよいことが、理解されるはずである。
一実施形態に従うと、各ホストチャネルアダプタはさらに、仮想スイッチ1012および仮想スイッチ1032などの仮想スイッチに対応付けられていてもよく、上記のように各HCAは異なるアーキテクチャモデルでセットアップされてもよい。図10のサブネットはどちらもLIDが予めポピュレートされているvSwitchのアーキテクチャモデルを使用するものとして示されているが、これは、このようなサブネット構成すべてが同様のアーキテクチャモデルに従う必要があることを示唆しようとしているのではない。
一実施形態に従うと、各サブネット内の少なくとも1つのスイッチがルータに対応付けられていてもよい。たとえば、サブネットA 1000内のスイッチ1002はルータ1005に対応付けられ、サブネットB 1040内のスイッチ1021はルータ1006に対応付けられている。
一実施形態に従うと、サブネットA内の仮想マシン1などの発信ソースにおけるトラッフィックを、サブネットB内の仮想マシン2などの異なるサブネットを宛先としてそれに向ける場合、トラフィックは、サブネットA内のルータ、すなわち、ルータ1005に向ければよく、そうすると、ルータ1005はこのトラッフィックをルータ1006とのリンクを介してサブネットBに送ることができる。
ファブリックマネージャ
上述のように、インフィニバンドTMファブリックなどのネットワークファブリックは、ファブリックの各サブネット内の相互接続されたルータを用いることで、複数のサブネットにまたがることができる。一実施形態に従うと、ファブリックマネージャ(図示せず)はホスト上で実現することができる。このホストは、ネットワークファブリックのメンバであり、ファブリック内で使用されることにより、ファブリックの一部である物理リソースおよび論理リソース双方を管理することができる。たとえば、特に、ファブリックリソースを発見すること、物理サーバ間の接続性を制御すること、リアルタイムのネットワーク統計を収集して観察すること、災害復旧(disaster recovery)、およびサービス品質(quality of service:QoS)設定を設定することなどの管理タスクを、ユーザは、ファブリックマネージャを通して実行することができる。一実施形態に従うと、ファブリックマネージャは、ファブリック内に規定されたすべてのサブネットにまたがっていてもよい。すなわち、ファブリックマネージャは、リソースがどのサブネットのメンバであるかに関係なく、ファブリックのメンバであるかまたは少なくともファブリックに対応付けられている物理リソースおよび論理リソースを管理することができる。
一実施形態に従うと、ファブリックマネージャはグラフィカルユーザインターフェイス(graphical user interface:GUI)を含み得る。ユーザは、GUIを通して管理機能を実行することができる。ファブリックマネージャGUIは、ユーザがファブリックリソースをモニタリングし制御することを可能にする可視化ツールを取入れてもよい。たとえば、一実施形態において、ユーザは、ファブリック全体のサーバについて、サーバ接続、構成設定およびパフォーマンス統計を、ファブリックインターフェイスを通して見ることができる。ファブリックマネージャGUIを通してモニタリングおよび/または管理することができるファブリック機能のその他の例は、サブネット間ファブリックトポロジーを発見すること、これらのトポロジーの視覚表現を見ること、ファブリックプロファイル(たとえば仮想マシンファブリックプロファイル)を作成すること、および、ファブリックマネージャデータベースを構築し管理することを含む。ファブリックマネージャデータベースは、ネットワークファブリックが必要としネットワークファブリックに関連する、ファブリックプロファイル、メタデータ、構成設定、およびその他のデータを格納することができる。一実施形態に従うと、ファブリックマネージャデータベースはファブリックレベルデータベースである。
加えて、ファブリックマネージャは、どのサブネットがどのルータポートを介してどのパーティション番号を用いて通信することを許可されるかについて、法的なサブネット間接続性を規定することができる。一実施形態に従うと、ファブリックマネージャは、集中型ファブリック管理ユーティリティである。上に挙げた例は限定を意図しているのではない。
一実施形態に従うと、ファブリックマネージャの機能の一部はユーザによって開始されることができ、その他の機能はユーザから引き離されてもよくまたは自動化されてもよい(たとえば、機能の一部は、起動に応じてまたはその他所定のイベント時に、ファブリックマネージャによって実行されてもよい)。
管理イベントの例示的な実施形態において、ユーザは、ファブリックマネージャインターフェイスで、ネットワークファブリックデバイス向けの構成変更を開始してもよい。構成変更要求を受けた後に、ファブリックマネージャは、この構成変更要求が適切に実行されることを保証してもよい。たとえば、ファブリックマネージャは、要求をデバイスに伝え構成変更がデバイスの構成に書込まれることを保証してもよい。一実施形態において、物理デバイスは、構成変更が無事に終了したことをファブリックマネージャに伝える。一実施形態に従うと、それに応じて、ファブリックマネージャはインターフェイスを更新し、要求が実行されたことを視覚的に確認できるようにしてもよい。さらに、ファブリックマネージャは、たとえば災害復旧のためまたはそれ以外の目的のために、デバイスの構成をファブリックマネージャデータベースに永続化(persist)してもよい。
一実施形態に従うと、ファブリックマネージャは、GUIのいくつかの、すべての、またはより多くの機能を含む、コマンドラインインターフェイスなどのその他のインターフェイスを有し得る。
ファブリックレベルリソースドメイン
上述のように、ファブリックマネージャは、ユーザがファブリックマネージャのインターフェイスを用いてネットワークファブリック全体にわたって管理タスクを実行できるようにする。一実施形態に従うと、ファブリックマネージャのその他の機能は、階層的なロール(role)ベースのアクセス制御を容易にすることである。一実施形態において、ロールベースのアクセス制御は、ファブリックレベルリソースドメインを通して実現される。
一実施形態に従うと、ロールベースのアクセス制御は、ファブリックユーザという概念に基づく。人間であるアドミニストレータからのアクセスおよび外部管理アプリケーションからのアクセスはいずれも、ファブリックインフラストラクチャまたはファブリックリソースのすべてまたはサブセットに対する法的処理を定める認証されたコンテキストを表わすことができる。たとえば、ユーザは、ファブリックにおいて、ユーザプロファイルによって表わすことができる。すなわち、ファブリック内において、ユーザを、そのユーザのプロファイルを作成し属性をこのプロファイルに割当てることによって定義することができる。ユーザプロファイルには、ユーザ名属性およびパスワード属性を割当てることができ、ユーザ名は、ファブリック内で固有であるため、ユーザを一意に特定する。さらに、ユーザプロファイルは、ファブリック内のさまざまなリソースに特定のアクセスレベルを割当てる、ファブリック内に規定された特定の役割に、対応付けられてもよい。一実施形態に従うと、ユーザプロファイルのセットアップは、ファブリックマネージャインターフェイスを通して実現することができる。ユーザプロファイルのすべてまたは一部を、ファブリックマネージャデータベースに格納することができる。加えて、一実施形態において、ファブリックマネージャは、マイクロソフト(登録商標)のアクティブディレクトリまたはLDAPディレクトリなどの周知のユーザディレクトリと一体化してもよく、または、たとえば遠隔認証のためのRADIUSネットワーキングプロトコルと一体化してもよい。
一実施形態に従うと、ファブリックマネージャは、ファブリックレベルリソースドメイン(本明細書では「リソースドメイン」または簡単に「ドメイン」と呼ぶ)を通して自身が発見したファブリックリソースを管理することができる。リソースドメインは、ファブリックレベルで規定されたファブリックリソースの論理的なグルーピングである。ファブリックリソースは、物理リソースおよび論理リソース双方を含む。リソースの例の一部は、特に、ファブリックデバイス(HCA、物理ノード、およびスイッチなど)、ファブリックプロファイル(仮想マシンファブリックプロファイル、およびユーザプロファイルなど)、仮想マシン、クラウド、および入出力モジュールを含む。
一実施形態に従うと、ファブリックマネージャによって発見され管理されるすべてのファブリックリソースは、デフォルトでファブリック内に存在する(すなわちセットアップまたは構成する必要がない)デフォルトドメイン内にあり、これらのファブリックリソースには、ファブリックマネージャインターフェイスを通してアクセスすることができる。デフォルトドメインは、最高レベルのドメインである、すなわち、その他すべてのリソースドメインに対する親(parent)ドメインであり、その他すべてのリソースドメインはデフォルトドメイン内に存在する。デフォルトドメインはファブリックレベルアドミニストレータに対応付けられる。ファブリックレベルアドミニストレータもデフォルトで存在し、デフォルトでデフォルトドメイン内の管理上の権利を有するように構成される。
一実施形態に従うと、リソースドメインは、階層形式のリソース管理を表わす。たとえば、デフォルトドメインを構成し管理するプロセスは、ファブリックレベルアドミニストレータしか利用できない。しかしながら、子(child)ドメインは、ファブリックレベルアドミニストレータが、デフォルトドメイン内に作成することができる。たとえば、ファブリックレベルアドミニストレータは、子ドメインを作成することができ、ドメインリソースを子ドメインに追加することができる。加えて、ファブリックレベルアドミニストレータは、ドメインレベルの「ドメイン管理」ユーザを作成することができ、ドメイン管理ユーザを子ドメインに追加する(すなわち対応付ける)ことができる。ドメイン管理ユーザをリソースドメインのメンバにすることにより、ドメイン管理ユーザが、子ドメインとそれに含まれるファブリックリソースのサブセットとを管理できるようにする。一実施形態に従うと、ドメイン管理ユーザは、子メインの外部にあるリソース(すなわちこのドメイン管理が対応付けられているレベルと同様のまたはそれよりも高いレベルのリソース)を管理することはできない。しかしながら、ドメイン管理は、リソースドメインの子ドメインとして作成されたリソースドメインに含まれているリソースを管理することができる。一実施形態に従うと、ファブリックマネージャは、リソースドメインの境界が厳密に守られることを保証するセキュリティを提供する役割を担う。
図11は、リソースドメインの階層構造を示す。図示のように、デフォルトドメイン1102がネットワークファブリック1100内に存在する。ファブリックレベルアドミニストレータ1110は、ファブリックレベルリソース1112、1124、および1134の管理のためのアクセス権を有する。ファブリックレベルアドミニストレータ1110はまた、新たなリソースドメインをデフォルトドメイン1102内に作成し管理することができる。リソースドメイン1120および1130と、対応するドメインレベルドメイン管理ユーザ1122および1132とは、ファブリックレベルアドミニストレータ1110によって作成されたものである。ドメイン管理ユーザ1122は、(ファブリックレベルアドミニストレータ1110によりリソースドメイン1120に割当てられた)ファブリックリソース1124を管理するためのアクセス権を有するが、(より高いレベルの)ファブリックリソース1112または(同様のレベルの)ドメインリソース1134を管理するためのアクセス権は有しない。同様に、ドメイン管理ユーザ1132は、(ファブリックレベルアドミニストレータ1110によりリソースドメイン1130に割当てられた)ファブリックリソース1134を管理するためのアクセス権を有するが、(より高いレベルの)ファブリックリソース1112または(同様のレベルの)ドメインリソース1124を管理するためのアクセス権は有しない。
管理パーティション
一実施形態に従うと、リソースドメインは、アドミニストレーションまたは(本明細書における呼称である)「管理」パーティションにより、サブネットレベルで表わすことができる。管理パーティションは、サブネットレベルでアクセス権をサブネットリソースに与えるグループメンバーシップを表わす。一実施形態に従うと、管理パーティションのメンバは、管理パーティションに対応付けられているいずれのサブネットリソースへのアクセス権も有するという点において、特権があると考えられる。ファブリックマネージャレベルにおいて、管理パーティションは、リソースドメインと対応するドメイン管理ユーザとに対応付けられる。このようにして、マルチテナント環境においてユーザとロールの分離をサブネットレベルで保証することができる。さらに、特定のリソースドメインに対応付けられている管理パーティションのメンバであるリソースがリソースドメインのメンバにもなるように、リソースドメインメンバーシップを管理パーティションメンバーシップに対応付けることができる。
一実施形態に従うと、管理パーティションは、サブネットレベルにおいて、データパーティションの規定と同じやり方で規定することができるが、作成されたパーティションが管理パーティションであることを示す追加の属性を伴う。(先に詳述した)データパーティションと同様、管理パーティションは、一実施形態に従い、アドミニストレータにより、ファブリックマネージャインターフェイスを通して作成することができる。一実施形態において、ファブリックマネージャは、パーティションの作成中、「管理パーティション」フラグを任意のパラメータとしてサポートすることができる。作成したアドミニストレータによって選択される場合、ファブリックマネージャは、新たに作成されたパーティションが管理パーティションであることを示す追加の属性を含みかつファブリックマネージャおよびローカルマスタサブネットマネージャによって管理パーティションとして扱われるであろう。
一実施形態に従うと、ファブリックマネージャは、作成されたリソースドメインごとに対応する管理パーティションを自動的に作成し、自動的に作成したパーティションを対応するリソースドメインに対応付けるように構成されてもよい。このような実施形態において、ファブリックレベルリソースがリソースドメインに追加されると、ファブリックマネージャはまた、これらを、自動的に作成されリソースドメインに対応付けられた管理パーティションに対応付ける。このように、リソースドメインに追加されたリソースは、アドミニストレータ(たとえばファブリックレベルアドミニストレータまたはドメイン管理)によるさらに他の動作を伴うことなく、リソースドメインに追加されると互いにサブネットレベルアクセス権を有することになる。
加えて、一実施形態に従うと、ネットワークのサブネット全体は、トップレベルドメイン(たとえばデフォルトドメイン)を有するドメイン階層における特別なリソースドメインを表わすことができる。たとえば、ドメイン階層において、デフォルトドメインがトップレベルドメインを表わす場合、ネットワークファブリックの各サブネットは、ファブリックマネージャにより、デフォルトドメインの子ドメインとして認識されることができる。サブネット全体をトップレベルドメインの子ドメインとして認識することを、ファブリックマネージャのデフォルト挙動として構成してもよく、または、これらデフォルトドメインがアドミニストレータによって手作業で定められてもよい。ここでも、ユーザとロールを分離し、ドメイン境界を守り、サブネットレベルにおけるリソースの対応付けを実施するために、サブネットリソースドメイン全体に対応する管理パーティションを規定することができる。一実施形態に従うと、サブネット内に規定され当該サブネット内の各リソース(メンバであるかまたは管理パーティションに対応付けられている)を含む管理パーティションは、「ドメイングローバル」管理パーティションと名付けることができる。なぜなら、この構成の中で、サブネット内のすべてのリソースはその他すべてのリソースへのアクセス権を有するからである。
一実施形態に従うと、管理パーティションは、ドメイン管理にとってトランスペアレントであってもよい。上述のように、ドメイングローバル管理パーティションは、ファブリックマネージャレベルでリソースドメインに対して自動的に作成することができ、その後、このドメインの範囲に割当てられたまたはこのドメインの範囲内に作成されたすべてのリソースを対応する管理パーティションに自動的に対応付けることができる。しかしながら、別の実施形態において、ドメイン管理は、関連するリソースドメイン内に種々の管理パーティションを明示的に作成することができ、その後、当該ドメイン内のリソースを、リソースドメインに対してデフォルトで作成された管理パーティションの代わりに明示的に作成された管理パーティションに対応付けることができる。
一実施形態に従うと、ファブリックマネージャは、共有管理パーティションおよびプライベート管理パーティション双方の作成をサポートできる。デフォルトドメイン内のファブリックレベルアドミニストレータによって作成された管理パーティションは、個々のリソースドメインが利用できるようにすることができる共有パーティションであってもよい。ドメイン管理がメンバであるドメインによって作成された管理パーティションは、そのコンテキストに管理パーティションが作成されている特定のリソースドメインのみに対応付けられ当該特定のリソースドメインのみが利用できるプライベートパーティションであってもよい。
一実施形態に従うと、HCAおよびvHCAのエンドポートは、データパーティションのメンバであってもよいのと同じく、管理パーティションのメンバであってもよい。しかしながら、一実施形態に従うと、管理パーティションはその他のサブネットリソースに対応付けることができるという点で、管理パーティションはデータパーティションと区別される。たとえば、データパーティションは管理パーティションに対応付けることができる。さらに、一実施形態に従うと、管理パーティションを子または親としての別の管理パーティションに対応付けることにより、これらの管理パーティションは階層的概念となり、対応付けられているリソースドメインの階層に対応させることができる。
技術的な問題として、従来の専門用語では、HCA(およびvHCA)のエンドポートをパーティションの「メンバ」と呼ぶことができ、一実施形態に従うと、その他のリソースは管理パーティション「に対応付ける」ことができる。以下、これら2つの概念の技術的相違点について説明する。しかしながら、便宜上かつ読み易さのために、本文献では、管理パーティションについて、「メンバ」および「〜に対応付ける」という表現を区別なく使用する場合がある。これらの表現が区別なく使用されていても、それとは関係なく、管理パーティションへのエンドポート/HCAのメンバーシップと、管理パーティションに対応付けられたリソースとの間の技術的相違が読み手によって一貫して適用されることを意図していることが理解されるはずである。
一実施形態に従うと、管理パーティションは、データパーティションの規定と同じく、P_Keyによって規定される。しかしながら、エンドポートは、自身がメンバであるデータパーティションを認識しているものの、エンドポートは自身がメンバであるのがどの管理パーティションなのかを認識している必要はない。よって、一実施形態において、管理パーティションを規定するP_Keyは、メンバのエンドポートのP_Keyテーブルに入力されない。このように、管理パーティションがIBパケットトラッフィック用に使用されなければ、管理パーティションの作成が、限りあるリソースであるP_Keyテーブルエントリを無駄に使うことはない。しかしながら、別の実施形態において、管理パーティションは管理パーティションとしてもデータパーティションとしても機能する場合がある。このような実施形態において、管理パーティションのメンバであるエンドポートのP_Keyテーブルすべてが、それぞれのP_Keyテーブルの管理パーティションのP_Keyエントリを有することができる。一実施形態に従うと、データパーティションは、管理パーティションではない何らかのパーティションであると定義してもよい。
一実施形態に従うと、データパーティションは1つ以上の管理パーティションに対応付けることができる。たとえば、P_Key値によって規定されるデータパーティションは、自身の固有のP_Key値によって規定される管理パーティションに対応付けることができる。加えて、このデータパーティションは、別の固有のP_Key値によって規定される第2の管理パーティションに対応付けることができる。一実施形態に従うと、データパーティションを特定の管理パーティションに対応付けることにより、当該特定の管理パーティションのメンバであるエンドポートの最大メンバーシップレベルを規定することができる。
上述の通り、管理パーティションは、サブネットリソースにアクセス権を与えるグループメンバーシップを表わす。一実施形態に従うと、管理パーティションのどのエンドポートメンバも、当該管理パーティションへのエンドポートのメンバーシップのみに基づいて、同じ管理パーティションに対応付けられているいずれのサブネットリソースへのアクセス権も有する。したがって、管理パーティションのメンバであるエンドポートはいずれも、同じ管理パーティションに対応付けられているいずれのデータパーティションへのアクセス権も有する。なお、これは、メンバエンドポートが、対応付けられたデータパーティションのメンバであることを必ずしも意味しておらず、対応付けられたデータパーティションへのアクセス権を有しそれ故にこのデータパーティションのメンバであり得ることを意味している。
このような手法により、アドミニストレータが、たとえばデータパーティションへのアクセス権を、エンドポートに、データパーティションのP_KeyをこのエンドポートのP_Keyテーブルに手作業で含めることによって与える必要は、なくなる。一実施形態において、エンドポートがサブネット内で初期化されると、マスタサブネットマネージャは、管理パーティションの規定(たとえばP_Key)を保持するとともに規定された管理パーティションへのメンバーシップを規定しかつ規定された管理パーティションとの対応付けを規定する関係を保持するデータストア(たとえば以下で説明する管理パーティションレジストリ)にクエリすることによって、このエンドポートがメンバであるのはどの管理パーティションかを判断することができる。次に、サブネットマネージャはさらに、エンドポートがメンバである管理パーティションに対応付けられているデータパーティションがあるか否かを確かめるためにチェックすることができる。SMが、1)エンドポートが管理パーティションのメンバであること、および、2)当該管理パーティションがデータパーティションに対応付けられていることを見出した場合、SMは、対応付けられているデータパーティションのP_KeyをエンドポートのP_Keyテーブルに自動的に置くことにより、データパーティションへアクセス権をエンドポートの自動的に与える。このように、管理パーティションは、アドミニストレータによる手作業のパーティションマッピングと比較して、より簡単でよりスケーラブルな解決策を表わす。
図12は、管理パーティションおよびデータパーティション双方を有する例示的なネットワークファブリックを示す。図12に示されるように、管理パーティション1230、1240、および1250がファブリック内において規定されている。ノードA 1201〜E 1205が、それぞれのHCA1211〜1215によってファブリックに物理的に接続されている。加えて、各HCAは、少なくとも1つの管理パーティションのメンバである。HCA1211およびHCA1214は、管理パーティション1230のメンバである。HCA1211はまた、HCA1212および1213とともに管理パーティション1240のメンバである。HCA1213はさらに、HCA1215とともに管理パーティション1250のメンバである。
さらに図12を参照して、一実施形態に従うと、データパーティション1232、1242、および1252がファブリック内に規定されている。データパーティション1232は管理パーティション1230に対応付けられ、データパーティション1242は管理パーティション1240に対応付けられ、データパーティション1252は管理パーティション1250に対応付けられている。一実施形態に従うと、HCA1211およびHCA1214は、管理パーティション1230へのそれぞれのメンバーシップに基づく、データパーティション1232へのメンバーシップへのアクセス権を有する。同様に、HCA1211〜1213は、管理パーティション1240へのそれぞれのメンバーシップに基づく、データパーティション1242へのメンバーシップへのアクセス権を有する。加えて、HCA1213および1215は、管理パーティション1250へのそれぞれのメンバーシップに基づく、データパーティション1252へのメンバーシップへのアクセス権を有する。
一実施形態に従うと、管理パーティションは、物理HCAの仮想機能をvHCAに登録できるか否かを判断するために使用することもできる。一実施形態に従うと、vHCAは、特定の仮想マシン(VM)のために計画され構成されたホストチャネルアダプタを表わす。vHCAはVMとともにマイグレートするのに対し、VFは物理アダプタとともに留まっているという点において、vHCAは仮想機能(VF)と異なる。しかしながら、上述のように、物理HCAもvHCAも(また、より低いレベルでは、これらの(v)HCAのエンドポートも)管理パーティションのメンバになり得る。よって、一実施形態に従うと、管理パーティションへのメンバーシップを、SMが使用することにより、物理HCAからの要求である、この要求を出している物理HCAの仮想機能をvHCAに登録することを求める要求が許可可能か否かを、判断することができる。
図13は、HCAおよびvHCAを管理パーティションのメンバとして有する例示的なネットワークファブリックを示す。図13に示されるように、サブネット1302はネットワークファブリック1300の一部である。HCA1310、1324、1332、および1344は、サブネット1302内でそれぞれのエンドポートを通してネットワークファブリック1300に物理的に接続されている物理HCAを表わす。HCA1310は、物理機能(PF)1312と仮想機能(VF)1314および1316とに対応付けられている。HCA1324は、PF1326とVF1328および1329とに対応付けられている。HCA1332は、PF1334とVF1336および1338とに対応付けられている。HCA1344は、PF1346とVF1348および1349とに対応付けられている。さらに、vHCA1320は、VF1314が登録され仮想マシン(VM)1318に対応付けられたものとして示されている(すなわち、VM1318は、ネットワークファブリック1300へのアクセス権を、vHCA1320を通して取得し、最終的には物理HCA1310を通して取得する)。vHCA1340は、VF1337が登録されVM1338に対応付けられている。
引き続き図13を参照して、図示の通り、HCA1310および1324ならびにvHCA1320は、管理パーティション1350のメンバである。加えて、HCA1332および1344ならびにvHCA1340は、管理パーティション1360のメンバである。結果として、HCA1310および1324ならびにvHCA1320は各々管理パーティション1350のメンバであるため、vHCA1320に、HCA1310のVF1314もしくは1316を、またはHCA1324のVF1328もしくは1329を正式に登録することができる。同様に、HCA1332および1324ならびにvHCA1340が各々管理パーティション1360のメンバであるため、vHCA1340に、HCA1330のVF1336もしくは1338を、またはHCA1344のVF1348もしくは1349を、正式に登録することができる。
上述のように、ファブリックレベルのファブリックデータベースは、ファブリックおよびファブリックリソースに関連する情報を保持し、ファブリックマネージャによって管理される。一実施形態に従うと、ファブリックデータベースは、ファブリックリソースのインベントリーの「完全な知識」を有することができる(すなわち、ネットワークファブリックの一部であるすべてのリソースは、少なくともファブリックデータベースに保持されている記録によって表わされる)。さらに、ファブリック内の各リソースに対応付けられたアクセス権およびネームスペースは、ファブリックデータベースに格納されても、ファブリックデータベースに含まれる情報および関係から導出することも、可能である。
たとえば、一実施形態に従うと、管理パーティションへのメンバーシップおよび/または管理パーティションに対するリソースの対応付けに関する情報は、ファブリックデータベースに格納できる。この情報を保持するテーブルと、これらのテーブルをまとめてリンクする関係とは、ファブリックデータベースのサブセットであってもよく、管理パーティションレジストリと呼ぶことができる。一実施形態に従うと、管理パーティションレジストリは、管理パーティショングループリソースを集めたものである。たとえば、管理パーティションレジストリ内の管理パーティショングループは、特定の管理パーティションのHCAメンバ(vHCAを含む)と、対応付けられたリソースとを集めたものであってもよく、このグループは、当該特定の管理パーティションを規定するP_Keyによってルックアップされる。加えて、管理パーティショングループのメンバおよび対応付けられたリソースを、メンバHCAもしくはvHCAそれぞれに対するGUIDもしくはvGUIDなどのキー、または、対応付けられたデータパーティションに対するP_Keyを用いて、レジストリ内でルックアップすることができる。管理パーティションのP_Keyと、メンバまたは対応付けられたリソースの固有識別子との間の関係はそれぞれ、管理パーティションへのメンバーシップまたは対応付けを規定し、管理パーティションレジストリによって維持され、より高いレベルではファブリックデータベースによって維持される。
一実施形態に従うと、管理パーティションレジストリのすべてまたは一部は、記録としてSMのキャッシュに保持されていてもよい。たとえば、特定のサブネットのリソースに対応する管理パーティションレジストリの記録を、当該特定のサブネットのサブネットマネージャ(たとえばマスタサブネットマネージャ)の常駐メモリのキャッシュに複製することができる。管理パーティションレジストリの記録は、(たとえばSMがブートするときは)SMによってファブリックデータベースから取出され(すなわちコピーされ)てもよく、または、ファブリックデータベースに永続化される前にキャッシュに置かれてもよい。キャッシュは、揮発性または不揮発性メモリであってもよい。いつレジストリ記録がキャッシュに置かれるかには関係なく、管理パーティションレジストリのキャッシュされたコピーと、ファブリックレベルデータベースで発見された管理パーティションレジストリのコピーとの間には、同期が成立し得る。
クエリを受けるたびに管理パーティション情報を永続化状態から(すなわちファブリックデータベースから)取出すのではなく、SM上の高速キャッシュ内の管理パーティションレジストリのうちのすべてまたはサブネット関連部分を保持することにより、管理パーティション情報のルックアップがSMに課すオーバーヘッドは最小になる。これは特に、サブネットリソース間でアクセス権が自動的に割当てられるときのサブネット初期化中において重要である。
一実施形態に従うと、論理名または識別子は、リソースドメイン内のリソースに割当てることができる(たとえばファブリックレベルまたはドメインレベルの管理ユーザによって)。これらの論理名は、リソースドメインにとってプライベートなものであってもよい。ファブリックマネージャは、ファブリックデータベースを通して、ファブリック内で使用される固有の識別子(たとえばvGUIDおよびP_Key)をファブリック内のリソースに与えられた論理または識別名にマッピングする関係を作成することができる。
たとえば、一実施形態に従うと、ファブリックデータベースは、リソースの記録、およびリソースのドメインメンバーシップおよび/または管理パーティションメンバーシップを格納することができる。論理名は、ファブリックマネージャによってリソースが発見されると、リソースに割当てることができる。これらの名称は、ファブリックデータベース内のファブリックリソースの固有識別子にリンクさせることができる。加えて、ファブリックマネージャは、ファブリックマネージャデータベース内の関係を通して、リソースドメインおよび管理パーティションへの各リソースのメンバーシップを追跡することができる。これらの記録および関係を用いて、ファブリックマネージャは、全く異なるリソースドメインおよび管理パーティションにおける同様の論理名を可能にする。一実施形態に従うと、論理ドメイン名スキームは、特定のドメインリソースがメンバである1つまたは複数のリソースドメインの階層を反映することができる。このような実施形態において、論理リソース名は、リソースがメンバである最高レベルのリソースドメインに固有であってもよい。
一実施形態に従うと、ファブリックにおけるリソースの識別子は、この識別子が何であるかに関わらず、管理パーティションの範囲内で固有であってもよい。そうすると、リソース名を、対応する管理パーティションでプレフィックスすることにより、グローバルな固有性(すなわちファブリックレベルで)を得ることができる。
図14は、一実施形態に従う、リソースドメインおよび管理ドメイン双方を有する例示的なネットワークファブリックを示す。図14に示されるように、ファブリックマネージャ1402はネットワークファブリック1400上で実行している。一実施形態に従うと、ファブリックマネージャ1402は、ネットワークファブリック1400のノード(図示せず)から実行することができる。ファブリックマネージャ1402は、ファブリックレベルアドミニストレータ1404によって管理され、ファブリックマネージャデータベース1414を含む。管理パーティションレジストリ1416は、論理名テーブル1418と同様、ファブリックマネージャデータベース1414の一部である。
引き続き図14を参照すると、サブネット1420がネットワークファブリック1400内に規定されている。サブネットマネージャ1422は、サブネット1420に対応付けられており、一実施形態に従うと、ネットワークファブリック1400における動作のためにサブネット1420が必要とするセマンティックランタイム動作を実行する。サブネット1420が必要とするセットアップおよび管理タスクは、ファブリックレベルアドミニストレータ1404およびファブリックマネージャ1402によって実行されてもよい。
ノード1444、1454、1474および1484は、 サブネット1420の一部である。HCA1446は、ノード1444に対応付けられ、PF1448とVF1450および1452とを含む。同様に、HCA1456は、ノード1454に対応付けられ、PF1458とVF1460および1462とを含む。HCA1476は、ノード1474に対応付けられ、PF1478とVF1480および1482とを含む。さらに、HCA1486は、ノード1484に対応付けられ、PF1488とVF1490および1492とを含む。VM1440はノード1444上で実行しており、VM1470はノード1474上で実行している。vHCA1442は、VM1440のために計画および構成されており、VM1440に対応付けられ、HCA1446の仮想機能1452が登録されている。vHCA1472は、VM1470のために計画および構成されており、VM1470に対応付けられ、HCA1476の仮想機能1482が登録されている。
一実施形態に従うと、HCA1446、1456、1476、および1486はドメインリソースとみなされ、各々の記録はファブリックマネージャデータベース1414に格納される。この記録は、ファブリック内のHCAリソースを特定するために使用されるGUIDなどの識別子を含み得る。さらに、vHCA1442および1472も、ドメインリソースとみなされ、各々の記録はファブリックマネージャデータベース1414に格納される。この記録は、vHCAを特定するために使用されるGUIDなどの識別子を含み得る。
さらに図14を参照すると、一実施形態に従い、リソースドメイン1410およびリソースドメイン1412がファブリックマネージャ1402内に作成されている。一実施形態に従うと、ファブリックレベルアドミニストレータ1404は、リソースドメイン1410およびリソースドメイン1412を作成する役割を担う。加えて、ドメイン管理1406は、リソースドメイン1410に対応付けられたドメインレベルアドミニストレータである。同様に、ドメイン管理1408は、リソースドメイン1412に対応付けられたドメインレベルアドミニストレータである。一実施形態に従うと、ファブリックレベルアドミニストレータ1404は、リソースドメインの階層性に従う、それぞれのリソースドメインの管理として、ドメイン管理1406および1408を作成することができる。
一実施形態に従うと、管理パーティション1424および管理パーティション1426は、サブネット1420内に規定されている。管理パーティション1424はリソースドメイン1410に対応付けられ、管理パーティション1426はリソースドメイン1412に対応付けられている。
図14に示されるように、vHCA1442とHCA1446および1456とは、リソースドメイン1410のメンバである。一実施形態に従うと、管理パーティション1424はリソースドメイン1410に対応付けられているので、vHCA1442とHCA1446および1456とが、リソースドメイン1410のメンバとして追加されると、これらは管理パーティション1424のメンバにもなり、管理パーティション1424を規定するP_KeyとHCA1446、1456およびvHCA1442の識別子との間の関係が、管理パーティションレジストリ1416内に作成される。一実施形態に従うと、この関係は、HCA1446、1456およびvHCA1442を、管理パーティション1424のメンバとして定義する。
同様に、vHCA1472とHCA1476および1486とは、リソースドメイン1412のメンバである。一実施形態に従うと、管理パーティション1426はリソースドメイン1410に対応付けられているので、vHCA1472とHCA1466および1486とが、リソースドメイン1412のメンバとして追加されると、これらは管理パーティション1426のメンバにもなり、管理パーティション1426を規定するP_Keyと、HCA1476、1486およびvHCA1472の識別子との間の関係が、管理パーティションレジストリ1416内に生成される。一実施形態に従うと、この関係は、HCA1476、1486およびvHCA1472を、管理パーティション1426のメンバとして定義する。
上述のように、一実施形態に従うと、VM1440(vHCA1442を含む)、ノード1444(HCA1446を含む)およびノード1454(HCA1456を含む)は、リソースドメイン1410のメンバである。本発明の一実施形態において、ファブリックレベルアドミニストレータ1404は、ノード1444およびノード1454をリソースドメイン1410に追加する役割を担う。たとえば、ファブリックレベルアドミニストレータ1404は、ファブリックマネージャ1402のインターフェイスを通して、ノード1444および1454をリソースドメイン1410に追加することができる。ファブリックレベルアドミニストレータ1404がノード1444および1454をリソースドメイン1410に追加すると、ドメイン管理1406はノード1444および1454に対して管理タスクを実行することができる。しかしながら、リソースドメインの階層スキームに従うと、ドメイン管理1406は、ノード1444および1454に対して、これらがリソースドメイン1410に追加される前に(すなわちこれらがより高いレベルのデフォルトドメイン(図示せず)のメンバである間)、管理タスクを実行することはできない。さらに、一実施形態に従うと、ドメイン管理1408は、ノード1444および1454に対して管理タスクを実行できない。なぜなら、ノード1444および1454は、ドメイン管理1408が対応付けられていないパラレルレベルのリソースドメインのメンバであるからである。
引き続き図14を参照すると、一実施形態に従い、管理パーティション1424および1426がサブネット1420内に規定されている。リソースドメインの階層スキームに従い、一実施形態では、管理パーティション1424および1426はファブリックレベルアドミニストレータ1404によって規定されたものである。別の実施形態では、ドメイン管理1406が管理パーティション1424を規定し、ドメイン管理1408が管理パーティション1426を規定している。一実施形態に従うと、管理パーティション1424はリソースドメイン1410に対応付けられ、管理パーティション1426はリソースドメイン1412に対応付けられる。上述のように、一実施形態に従うと、管理パーティション1424および1426はそれぞれ、サブネットレベルにおいてリソースドメイン1410および1412を表わす。それぞれのリソースドメインに対応付けられることに加えて、管理パーティション1424および1426は、それぞれドメイン管理1406および1408(すなわち、管理パーティション各々が対応付けられているリソースドメインの対応する管理ユーザ)に対応付けられる。上述のように、一実施形態に従うと、管理パーティションとドメインレベル管理との間のこの対応付けによって、サブネットレベルにおけるマルチテナント環境内のユーザとロールの分離を保証することができる。
一実施形態に従い、データパーティション1428および1430がサブネット1420内に規定されている。リソースドメインの階層スキームに従い、一実施形態では、データパーティション1428および1430がファブリックレベルアドミニストレータ1404によって規定されている。別の実施形態では、ドメイン管理1406がデータパーティション1428を規定し、ドメイン管理1408がデータパーティション1430を規定している。図14に示されるように、データパーティション1428は管理パーティション1424に対応付けられ、データパーティション1430は管理パーティション1426に対応付けられている。加えて、先に説明し図14に示しているように、HCA1446、1456およびvHCA1442は、管理パーティション1424のメンバである。結果として、一実施形態に従うと、HCA1446、1456およびvHCA1442は、データパーティション1428が対応付けられている管理パーティション(すなわち管理パーティション1424)のメンバであるため、データパーティション1428へのアクセス許可を有する。
一実施形態に従い、データパーティション1428が管理パーティション1424に対応付けられると、データパーティション1428の識別子(たとえばデータパーティション1428のP_Key)と、管理パーティション1424のP_Keyとの間の関係が、管理パーティションレジストリ1416内に作成される。この関係は、データパーティション1428を、管理パーティション1424に対応付けられているものとして定義する。同様に、データパーティション1430が管理パーティション1426に対応付けられると、データパーティション1430の識別子(たとえばデータパーティション1430のP_Key)と管理パーティション1426のP_Keyとの間の関係が管理パーティションレジストリ1416内に作成される。この関係は、データパーティション1430を、管理パーティション1426に対応付けられているものとして定義する。
一実施形態に従うと、データパーティション1428に加わることを求める要求をHCA1446および1456またはvHCA1442から受けた場合、SM1422は、管理パーティションレジストリ1416をチェックし、HCA1446および1456ならびにvHCA1442が管理パーティション1424のメンバであることと、データパーティション1428が管理パーティション1424に対応付けられていることとを見出すことができる。そうすると、SM1422は、HCA1446および1456ならびにvHCA1442が管理パーティション1424のメンバでありデータパーティション1428が管理パーティション1424に対応付けられていることに基づいて、HCA1446および1456ならびにvHCA1442が、データパーティション1428のメンバになることを許可することができる。HCA1446および1456ならびにvHCA1442をデータパーティション1428に加わらせるのに、ファブリックレベルアドミニストレータ1404またはドメインレベルアドミニストレータ1406からのマッピングは不要であろう。
加えて、vHCA1442には、HCA1446のVF1452もしくは1450を、または、HCA1456のVF1462もしくは1460を登録することができる。なぜなら、HCA1446および1456ならびにvHCA1442は、管理パーティション1424のメンバであるからである(vHCA1442はVF1452が登録されたものとして示されている)。ここでもまた、SM1422は、管理パーティションレジストリ1416をチェックしてHCA1446および1456ならびにvHCA1442が管理パーティション1424のメンバであることを見出すことができる。HCA1446および1456ならびにvHCA1442が管理パーティション1424のメンバであることを発見すると、SM1422は、いかなるファブリックユーザからも介入されることなく、vHCA1442に、VF1452、1450、1462、および1460のうちのいずれかを登録することができる。
仮想マシンファブリックプロファイル
上述のように、効率的なハードウェアリソースの利用およびスケーラビリティを改善するために、IBファブリック等のファブリックにおいて仮想マシン(VM)を用いることができる。しかしながら、仮想マシン(VM)のライブマイグレーションは、これらのソリューションにおいて用いられるアドレス指定およびルーティングスキームのせいで、依然として問題である。一実施形態に従う方法およびシステムは、このようなVMのマイグレーションの問題を克服することを目的とし、アドレス指定スキームをサポートすることが可能な、予め定められ、非常に入手し易く、かつ物理的な場所に左右されない仮想マシンファブリックプロファイルを、容易にする。一実施形態に従うと、VMファブリックプロファイルにより、ファブリック接続性を用いてVMの集中型セットアップおよび構成管理を可能にし、かつ、SR−IOVに基づいて、VMに対し、最適化されたVMマイグレーションをサポートする。一実施形態に従うと、VMファブリックプロファイルは、仮想マシンに関する、詳細なファブリック構成情報の、単一の集中型リポジトリを表わす。ファブリックマネージャに対応付けられたデータベース(たとえばファブリックデータベース)は、VMファブリックプロファイルを構成する情報を永続化することができる。
一実施形態に従うと、VMファブリックプロファイルは、IBファブリック等のネットワークファブリックにおいて、仮想マシン識別子(VM−id)により、特定することができる。一実施形態において、VM−idは、ファブリック全体にわたって固有であってもよい、汎用一意識別子(universally unique identifier:UUID)である固有の128ビット数である。しかしながら、必要なVM−idの固有性は、異なる態様で管理される複数のVMマネージャドメインにわたる固有性のみである(たとえばVM−idは管理パーティション内で固有であってもよい)。したがって、他の実施形態において、VM−idは、少なくともこのようなドメインにわたって固有である何か他の適切なタイプのIDであってもよい。一実施形態に従うと、ファブリックレベルまたはサブネットレベルのすべての管理エンティティは、VMファブリックプロファイルのVM−idを参照することにより、VMファブリックプロファイルに関する情報をルックアップする。
図15は、VMファブリックプロファイル情報を格納するための例示的なデータベース構造を示す。図15は、従来のリレーショナルデータベース設計のいくつかのテーブルを示す。しかしながら、何らかの適切なデータ構造を用いて、VMファブリックプロファイルデータ(たとえばフラットファイルテーブル、または境界が定められた構造等)を格納することができる。図15において、アスタリスク(*)はキー値を示す。図15は、VMファブリックプロファイルデータを、より大きなファブリックデータベース1500の一部として示しているが、その他の実施形態において、VMプロファイルデータは自身のデータベースに含まれていてもよい、または、ファブリックデータベース1500にアクセスできる別のデータベースであってもよい。
図15に示されるように、VMファブリックプロファイルのコンテンツは、ルックアップキーとして使用される仮想マシン識別子(VM−id)1502と、ファブリックの管理における使い易さのためおよび品質改善のための論理名1504と、たとえばVMファブリックプロファイルと、ファブリックに対して規定されたその他のプロファイルとを区別するために使用されるプロファイルタイプ1506と、ファブリックに対して規定されたすべてのプロファイルからなる組の中の固有idであるプロファイルID1508と、最高シーケンスが最も最近の更新を表わすプロファイルのシーケンス番号であってもよいコンテンツ更新エニュメレータ(CUE)1510とを含み得るが、これらに限定されない。図15に示されるように、このVMファブリックプロファイルのコンテンツは、VMプロファイルテーブル1512に格納することができ、VM−idは、各VMファブリックプロファイルを特定するための固有のキーの働きをする。
上述のように、仮想HCA(vHCA)を、物理HCAの仮想機能とともに使用することにより、VMへのネットワークアクセスを提供してもよい。一実施形態に従うと、各VMファブリックプロファイルは、少なくとも1つのvHCAにも対応付けられる。vHCAは、特定のVMに対して計画および構成することができ、この構成は、vHCAが構成されたVMのファブリックプロファイルとともに、含まれ格納されてもよい。そうすると、構成されたvHCAは、物理HCAによって規定することができ物理HCAとともに常駐できる仮想機能と異なり、仮想マシンとともにマイグレートすることができる。さらに図15を参照すると、vHCAは、ファブリックマネージャデータベースにおいて、VM−id1502とvHCAインスタンスID1514との固有の組合わせとして表わすことができる。加えて、この組合わせは、VM−idキー1502を用いて、VMプロファイルテーブル1512に関連するvHCAテーブルに格納することができる。
物理HCAと同様に、vHCAは複数の(仮想)ポートを有し得る。一実施形態に従うと、これらの仮想ポートは、物理ポートと全く同じように、ネットワーク環境におけるエンドポートとして働くことができる。一例として、vHCAポートを含むすべてのエンドポートに、GUID(たとえばIBネットワークで使用される64ビットGUID)を割当てることができる。このGUIDを用いて、SMのルーティングテーブルのLID宛先アドレスを要求することができる。一実施形態に従うと、仮想GUID(vGUID)は、各vHCAポートの現在のファブリックアドレスを表わし得る。一実施形態において、vGUIDは、上述のように、VMファブリックプロファイルに割当てられかつVMファブリックプロファイルとともに格納されるGUIDのリストからのvHCAポートに割当てることができる。vGUIDは、ファブリックマネージャGUIDポリシーに従ってファブリックマネージャにより所有され制御されるGUIDの専用プールからのファブリックプロファイルに割当てることができる。たとえば、フリーでファブリックの広さの固有vGUIDは、ファブリックプロファイルがファブリックマネージャに作成されたときにVMのために構成されたvHCAに割当てることができる。
引き続き図15を参照して、一実施形態に従うと、vHCAポートは、ファブリックマネージャデータベースにおいて、vHCAインスタンスID1514とvGUID1522との固有の組合わせとして表わすことができる。vHCA構成はまた、vHCAポート番号1520を含み得る。この構成は、vHCAインスタンスID1514キーによってvHCAテーブルに関連付けることができ最終的にはVM−idキー1502によってVMプロファイルテーブル1512に関連付けることができるvHCAポートテーブル1518に格納することができる。
一実施形態に従うと、vHCAは、データパーティションおよび管理パーティション双方のメンバであってもよい。vHCAのパーティションメンバーシップは、VMファブリックプロファイルにおいて、vHCAがメンバであるパーティション(管理パーティションおよびデータパーティション双方)にvHCA記録をリンクするファブリックデータベース内の関係によって表わすことができる。一実施形態において、たとえばvGUIDキー1522は、データとネットワークファブリックにおいて規定された管理パーティションP_Keyとを含むテーブル(図示せず)に関連付けることができる。一実施形態において、vGUIDキーは、関係により、(上記)管理パーティションレジストリにリンクされる。一実施形態において、これに代えてまたはこれに加えて、管理パーティションレジストリをvHCAインスタンスID1514にリンクする関係があってもよい。これらの関係により、ファブリックコンポーネントは、vHCAがメンバであるのはどのデータパーティションおよび管理パーティションであるかを識別することができる。
図15は、専ら例示を目的として提供されており、当業者は、VMファブリックプロファイルを構成するデータの記憶装置を設計および監理する数多くのやり方が存在することを理解するであろう。さらに、上記VMファブリックプロファイルコンテンツのリストは、限定ではなく例示を意図したものであり、仮想マシンファブリックプロファイルのその他の実施形態は、より多くのまたはより少ないその他のコンテンツを含み得る。一実施形態に従うと、図15に示されるデータベースコンポーネントは、ファブリックについてその他の関連情報を保持するより大きなファブリックマネージャデータベースの一部であってもよく、その他のテーブルと相互に関連付けることにより、ファブリックマネージャおよびその他のファブリックコンポーネントの機能を向上させることができる。
一実施形態において、ユーザは、ファブリックマネージャのインターフェイスを通して仮想マシンファブリックプロファイルと対話する。たとえば、ユーザは、ファブリックマネージャを通してVMファブリックプロファイルを作成、編集、および削除し得る。一実施形態に従うと、ファブリックプロファイル情報の一部は、VMファブリックプロファイル(たとえばVMファブリックプロファイルの論理名)を作成または編集するユーザによって提供され、この情報のその他の部分は、ファブリックマネージャによって、または、ファブリックマネージャが作成されているサブネットのローカルSMによって提供される(たとえばVM−id、vHCAインスタンスID、またはvGUID)。
一実施形態に従うと、仮想マシンファブリックプロファイルの作成は、VMファブリックプロファイルが対応付けられているファブリックリソースの管理特権を表わす管理コンテキストにおいて行なわれてもよい。たとえば、ドメイン管理は、VMファブリックプロファイルに対して構成されているvHCAと同じリソースドメイン(および同じ管理パーティション)のメンバであるHCAを有するノードが使用するために、VMファブリックプロファイルを作成する。作成されたVMファブリックプロファイルは、(論理)リソースでありかつそれが作成されたリソースドメインのメンバであるとみなされる。このように、同じ管理パーティションのメンバであるおかげで、VMファブリックプロファイルのvHCAは、リソースドメインのメンバでもあるHCAのVFのうちいずれかとともに登録される許可を得る。こうして管理オーバーヘッドは緩和される。
一実施形態に従うと、ファブリックレベルまたはドメインレベルアドミニストレータユーザは、「仮想マシンマネージャ」(Virtual Machine Manager:VMM)と名付けられたファブリックマネージャのコンポーネントを用いることにより、VMファブリックプロファイルをセットアップし構成することができる。VMMは、VMファブリックプロファイルの作成においてファブリックREST APIを使用することができる。ユーザは、たとえばファブリックマネージャのGUIを通してVMMにアクセスすることができる。一実施形態に従うと、管理ユーザは、VMファブリックプロファイルに関連する特定のパラメータ(プロファイルに対応付けられるvHCAの論理名、プロファイルタイプ、および数など)を提供することができ、その他のパラメータ(VM−id、vGUID、およびプロファイルに対応付けられた各vHCAのvHCAインスタンスIDなど)は、VMMによって自動的に生成し割当てることができる。VMファブリックプロファイルの更新および削除などのその他のCRUDアクションは、ファブリックマネージャ、具体的にはVMMを通して、アドミニストレータユーザが利用することもできる。
一実施形態に従うと、VMファブリックプロファイルの構築に必要なパラメータすべてがVMMを介して供給されると、ファブリックマネージャは、アドミニストレータユーザおよびVMMによって指定された属性を有するVMファブリックプロファイルオブジェクトのインスタンスを作成し、このVMファブリックプロファイルオブジェクトをファブリックレベルデータベースに永続化することができる。
一実施形態に従うと、オペレーショナルネットワークファブリックにおいて、VMファブリックプロファイルは、SMのキャッシュに、1つまたは複数の記録として保持することができる。VMファブリックプロファイルは、(たとえばSMが起動したときに)SMによってファブリックデータベースから取出され(すなわちコピーされ)てもよく、または、ファブリックデータベースに永続化される前にキャッシュに置かれてもよい。このキャッシュは、揮発性メモリであっても不揮発性メモリであってもよい。VM−idを、キャッシュにクエリするためのキーとして用いることにより、特定のVMファブリックプロファイルの属性を取出してもよい。
クエリを受けるたびに、VMファブリックプロファイルを、永続化された状態から(すなわちファブリックデータベースから)取出すのではなく、SM上の高速キャッシュに保持することによって、VMファブリックプロファイル属性のルックアップがSMに対して課す可能性があるオーバーヘッドを最小にすることができる。これは、VMおよびホストの起動中に、どのHCA VMとペアにすることができどのHCA VMとペアにするかを確定するのにファブリックプロファイルデータが必要なときは、特に重要である。
図16は、VMファブリックプロファイルをサブネットリソースが利用できるようにするためのフローチャートである。
ステップ1610において、VMのセットアップパラメータおよび構成を含むVMファブリックプロファイルが規定される。
ステップ1620において、VMファブリックプロファイルはファブリックレベルデータベースに格納される。
ステップ1630において、VMファブリックプロファイルは、サブネットマネージャ上の高速メモリキャッシュを通して利用できるようにされる。
ステップ1640において、VMファブリックプロファイルデータが、高速メモリキャッシュに向けられたVM−idルックアップ要求に基づいてサブネットマネージャから戻される。
図17は、仮想マシンの仮想マシンファブリックプロファイルを作成するためのフローチャートである。
ステップ1710において、仮想マシン識別子(VM−id)が生成される。
ステップ1720において、仮想ホストチャネルアダプタ(vHCA)を特定する仮想ホストチャネルアダプタインスタンスIDが生成される。
ステップ1730において、仮想グローバル一意識別子(vGUID)が、グローバル一意識別子のプールから、vHCAの仮想ポートの現在のファブリックアドレスとして割当てられる。
ステップ1740において、管理パーティションを規定するP_KeyとvGUIDとの間の第1の関係が作成される。このP_KeyとvGUIDとの間の関係は、vGUIDが現在のファブリックアドレスとして割当てられている仮想ポートを、P_Keyによって規定される管理パーティションのメンバとして規定する。
ステップ1750において、VM−idとvHCAインスタンスIDとの間の第2の関係が作成される。この第2の関係により、vHCAインスタンスIDを、VM−idへのアクセスを通して取出すことができる。
ステップ1760において、VM−idとvGUIDとの間の第3の関係が作成される。この第3の関係により、vGUIDを、VM−idへのアクセスを通して取出すことができる。
ステップ1770において、VM−id、仮想ホストチャネルアダプタインスタンスID、vGUID、第1の関係、第2の関係、および第3の関係を、VM−id、仮想ホストチャネルアダプタ、vGUID、第1の関係、第2の関係、および第3の関係を保存するフォーマットで永続化する。
本発明の多数の特徴は、ハードウェア、ソフトウェア、ファームウェア、またはこれらを組合わせたものにおいて、これを用いて、またはこれに支援されて、実施することができる。したがって、本発明の特徴は、処理システム(たとえば1つ以上のプロセッサを含む)を用いて実現し得る。
この発明の特徴は、ここに提示された特徴のうちのいずれかを行なうように処理システムをプログラミングするために使用可能な命令を格納した記憶媒体またはコンピュータ読取可能媒体であるコンピュータプログラムプロダクトにおいて、それを使用して、またはその助けを借りて実現され得る。記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリ装置、磁気カードもしくは光カード、ナノシステム(分子メモリICを含む)、または、命令および/もしくはデータを格納するのに好適な任意のタイプの媒体もしくは装置を含み得るものの、それらに限定されない。
この発明の特徴は、機械読取可能媒体のうちのいずれかに格納された状態で、処理システムのハードウェアを制御するために、および処理システムがこの発明の結果を利用する他の機構とやり取りすることを可能にするために、ソフトウェアおよび/またはファームウェアに取込まれ得る。そのようなソフトウェアまたはファームウェアは、アプリケーションコード、装置ドライバ、オペレーティングシステム、および実行環境/コンテナを含み得るものの、それらに限定されない。
この発明の特徴はまた、たとえば、特定用途向け集積回路(application specific integrated circuit:ASIC)などのハードウェアコンポーネントを使用して、ハードウェアにおいて実現されてもよい。ここに説明された機能を行なうようにハードウェアステートマシンを実現することは、関連技術の当業者には明らかであろう。
加えて、この発明は、この開示の教示に従ってプログラミングされた1つ以上のプロセッサ、メモリおよび/またはコンピュータ読取可能記憶媒体を含む、1つ以上の従来の汎用または特殊デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを使用して都合よく実現され得る。ソフトウェア技術の当業者には明らかであるように、この開示の教示に基づいて、適切なソフトウェアコーディングが、熟練したプログラマによって容易に準備され得る。
この発明のさまざまな実施形態が上述されてきたが、それらは限定のためではなく例示のために提示されたことが理解されるべきである。この発明の精神および範囲から逸脱することなく、形状および詳細のさまざまな変更を行なうことができることは、関連技術の当業者には明らかであろう。
この発明は、特定された機能およびそれらの関係の実行を示す機能的構築ブロックの助けを借りて上述されてきた。説明の便宜上、これらの機能的構築ブロックの境界は、この明細書中ではしばしば任意に規定されてきた。特定された機能およびそれらの関係が適切に実行される限り、代替的な境界を規定することができる。このため、そのようないかなる代替的な境界も、この発明の範囲および精神に含まれる。
この発明の前述の説明は、例示および説明のために提供されてきた。それは、網羅的であるよう、またはこの発明を開示された形態そのものに限定するよう意図されてはいない。この発明の幅および範囲は、上述の例示的な実施形態のいずれによっても限定されるべきでない。多くの変更および変形が、当業者には明らかになるだろう。これらの変更および変形は、開示された特徴の関連するあらゆる組合せを含む。実施形態は、この発明の原理およびその実用的応用を最良に説明するために選択され説明されたものであり、それにより、考えられる特定の使用に適したさまざまな実施形態についての、およびさまざまな変更例を有するこの発明を、当業者が理解できるようにする。この発明の範囲は、請求項およびそれらの同等例によって定義されるよう意図されている。

Claims (7)

  1. 仮想マシン(VM)の仮想マシンファブリックプロファイルを作成する方法であって、
    プロセッサを含むノードが、仮想マシン識別子(VM−id)を生成するステップと、
    前記ノードが、仮想ホストチャネルアダプタ(vHCA)を特定するvHCAインスタンスIDを生成するステップと、
    前記ノードが、グローバル一意識別子のプールからの仮想グローバル一意識別子(vGUID)を、前記vHCAの仮想ポートの現在のファブリックアドレスとして割当てるステップと、
    前記ノードが、管理パーティションを規定するP_Keyと前記vGUIDとの間の第1の関係を作成するステップとを含み、前記P_Keyと前記vGUIDとの間の前記第1の関係は、前記vGUIDが前記現在のファブリックアドレスとして割当てられている前記仮想ポートを、前記P_Keyによって規定される前記管理パーティションのメンバとして規定し、
    前記ノードが、前記VM−idと前記vHCAインスタンスIDとの間の第2の関係を作成するステップを含み、前記第2の関係により、前記vHCAインスタンスIDを、前記VM−idへのアクセスを通して取出すことができ、
    前記ノードが、前記VM−idと前記vGUIDとの間の第3の関係を作成するステップを含み、前記第3の関係により、前記vGUIDを、前記VM−idへのアクセスを通して取出すことができ、
    前記ノードが、前記VM−id、前記vHCAインスタンスID、前記vGUID、前記第1の関係、前記第2の関係、および前記第3の関係を、前記VM−id、前記vHCA、前記vGUID、前記第1の関係、前記第2の関係、および前記第3の関係を保存するフォーマットで、永続化するステップを含む、方法。
  2. 前記VM−id、前記vHCAインスタンスID、前記vGUID、前記第1の関係、前記第2の関係、前記第3の関係、および前記P_Key、サブネットのサブネットマネージャのキャッシュに置かれ、前記P_Keyによって規定される前記管理パーティションは前記サブネット内に定められる、請求項1に記載の方法。
  3. 前記キャッシュに置かれた前記VM−id、前記vHCAインスタンスID、前記vGUID、前記第1の関係、前記第2の関係、前記第3の関係、および前記P_Keyは、コピーである、請求項2に記載の方法。
  4. 前記キャッシュは揮発性メモリである、請求項2または3に記載の方法。
  5. 前記サブネットマネージャが、前記キャッシュから、前記vHCAインスタンスIDおよび前記vGUIDを取出すステップと、
    前記サブネットマネージャが、前記vHCAインスタンスIDおよび前記vGUIDを物理ホストチャネルアダプタに送るステップとをさらに含む、請求項2〜4のいずれか一項に記載の方法。
  6. 仮想マシン(VM)の仮想マシンファブリックプロファイルを作成し前記仮想マシンファブリックプロファイルにアクセスするためのシステムであって、
    プロセッサを含むノードと、
    前記ノードにアクセス可能なメモリとを備え、
    前記ノードは、
    仮想マシン識別子(VM−id)を生成するように動作し、
    仮想ホストチャネルアダプタ(vHCA)を特定するvHCAインスタンスIDを生成するように動作し、
    グローバル一意識別子のプールからの仮想グローバル一意識別子(vGUID)を、前記vHCAの仮想ポートの現在のファブリックアドレスとして割当てるように動作し、
    管理パーティションを規定するP_Keyと前記vGUIDとの間の第1の関係を作成するように動作し、前記P_Keyと前記vGUIDとの間の前記第1の関係は、前記vGUIDが前記現在のファブリックアドレスとして割当てられている前記仮想ポートを、前記P_Keyによって規定される前記管理パーティションのメンバとして規定し、前記ノードはさらに、
    前記VM−idと前記vHCAインスタンスIDとの間の第2の関係を作成するように動作し、前記第2の関係により、前記vHCAインスタンスIDを、前記VM−idへのアクセスを通して取出すことができ、前記ノードはさらに、
    前記VM−idと前記vGUIDとの間の第3の関係を作成するように動作し、前記第3の関係により、前記vGUIDを、前記VM−idへのアクセスを通して取出すことができ、前記ノードはさらに、
    前記VM−id、前記vHCAインスタンスID、前記vGUID、前記第1の関係、前記第2の関係、および前記第3の関係を、前記VM−id、前記vHCA、前記vGUID、前記第1の関係、前記第2の関係、および前記第3の関係を保存するフォーマットで、永続化するように動作する、システム。
  7. コンピュータシステムに請求項1〜のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
JP2018510841A 2016-01-27 2017-01-26 高性能コンピューティング環境において仮想マシンの仮想マシンファブリックプロファイルを規定するためのシステムおよび方法 Active JP6920281B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662287712P 2016-01-27 2016-01-27
US62/287,712 2016-01-27
US15/415,668 US10326860B2 (en) 2016-01-27 2017-01-25 System and method for defining virtual machine fabric profiles of virtual machines in a high-performance computing environment
US15/415,668 2017-01-25
PCT/US2017/015169 WO2017132399A1 (en) 2016-01-27 2017-01-26 System and method for defining virtual machine fabric profiles of virtual machines in a high-performance computing environment

Publications (3)

Publication Number Publication Date
JP2019509529A JP2019509529A (ja) 2019-04-04
JP2019509529A5 JP2019509529A5 (ja) 2020-01-16
JP6920281B2 true JP6920281B2 (ja) 2021-08-18

Family

ID=59359236

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018510841A Active JP6920281B2 (ja) 2016-01-27 2017-01-26 高性能コンピューティング環境において仮想マシンの仮想マシンファブリックプロファイルを規定するためのシステムおよび方法
JP2018510731A Active JP6913669B2 (ja) 2016-01-27 2017-01-27 高性能コンピューティング環境においてファブリックレベルグループメンバーシップをサブネットレベルパーティションメンバーシップに関連付けるためのシステムおよび方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2018510731A Active JP6913669B2 (ja) 2016-01-27 2017-01-27 高性能コンピューティング環境においてファブリックレベルグループメンバーシップをサブネットレベルパーティションメンバーシップに関連付けるためのシステムおよび方法

Country Status (5)

Country Link
US (14) US10326860B2 (ja)
EP (2) EP3408740B1 (ja)
JP (2) JP6920281B2 (ja)
CN (2) CN107851034B (ja)
WO (2) WO2017132399A1 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10972375B2 (en) 2016-01-27 2021-04-06 Oracle International Corporation System and method of reserving a specific queue pair number for proprietary management traffic in a high-performance computing environment
US11018947B2 (en) 2016-01-27 2021-05-25 Oracle International Corporation System and method for supporting on-demand setup of local host channel adapter port partition membership in a high-performance computing environment
US10326860B2 (en) 2016-01-27 2019-06-18 Oracle International Corporation System and method for defining virtual machine fabric profiles of virtual machines in a high-performance computing environment
US10834226B2 (en) * 2016-07-15 2020-11-10 International Business Machines Corporation Live migration of containers based on geo-location
US10868685B2 (en) 2017-03-24 2020-12-15 Oracle International Corporation System and method to provide explicit multicast local identifier assignment for per-partition default multicast local identifiers defined as subnet manager policy input in a high performance computing environment
US10841199B2 (en) 2017-03-24 2020-11-17 Oracle International Corporation System and method for optimized path record handling in homogenous fabrics without host stack cooperation in a high performance computing environment
US11968132B2 (en) 2017-03-24 2024-04-23 Oracle International Corporation System and method to use queue pair 1 for receiving multicast based announcements in multiple partitions in a high performance computing environment
US10560277B2 (en) 2017-03-24 2020-02-11 Oracle International Corporation System and method to provide multicast group MLID dynamic discovery on received multicast messages for relevant MGID in a high performance computing environment
JP6874565B2 (ja) * 2017-06-27 2021-05-19 富士通株式会社 情報処理システム、情報処理方法及び情報処理装置
US10552225B2 (en) * 2017-07-04 2020-02-04 Vmware, Inc. Virtual device migration or cloning based on device profiles
JP6911619B2 (ja) * 2017-08-02 2021-07-28 富士通株式会社 情報処理システム及び情報処理方法
CN109542581B (zh) * 2017-09-22 2020-10-13 深圳市中兴微电子技术有限公司 一种设备共享方法、装置及存储介质
CN107861900B (zh) * 2017-10-24 2019-12-31 华大半导体有限公司 信号选择模块和信号选择系统
CN107861820A (zh) * 2017-12-08 2018-03-30 郑州云海信息技术有限公司 一种虚拟机资源分配方法及系统
CN108156028A (zh) * 2017-12-19 2018-06-12 国网内蒙古东部电力有限公司呼伦贝尔供电公司 一种基于网管数据采集的适配器及综合网管系统
TWI651667B (zh) * 2017-12-28 2019-02-21 中華電信股份有限公司 一種虛實網路資源拓樸之介面系統
US10552199B2 (en) * 2018-02-26 2020-02-04 Nutanix, Inc. System and method for binary throttling for live migration of virtual machines
US10552209B2 (en) * 2018-03-15 2020-02-04 Nutanix, Inc. System and method for throttling for live migration of virtual machines
US10552200B2 (en) 2018-03-22 2020-02-04 Nutanix, Inc. System and method for dynamic throttling for live migration of virtual machines
GB201808820D0 (en) * 2018-05-30 2018-07-11 Nordic Semiconductor Asa Direct memory access controller
US11563677B1 (en) 2018-06-28 2023-01-24 Cable Television Laboratories, Inc. Systems and methods for secure network management of virtual network function
US11822946B2 (en) * 2018-06-28 2023-11-21 Cable Television Laboratories, Inc. Systems and methods for secure network management of virtual network functions
US10608892B2 (en) * 2018-07-27 2020-03-31 Vmware, Inc. Methods, systems and appratus for custom interface specification in a cloud management system
US10552268B1 (en) * 2018-10-05 2020-02-04 EMC IP Holding Company LLC Broken point continuous backup in virtual datacenter
US11194620B2 (en) 2018-10-31 2021-12-07 Nutanix, Inc. Virtual machine migration task management
US11188368B2 (en) 2018-10-31 2021-11-30 Nutanix, Inc. Asynchronous workload migration control
US11076027B1 (en) * 2018-12-03 2021-07-27 Amazon Technologies, Inc. Network communications protocol selection based on network topology or performance
CN109379239B (zh) * 2018-12-25 2022-07-29 杭州迪普科技股份有限公司 一种OpenStack环境中配置接入交换机的方法及装置
US11102074B2 (en) * 2019-01-11 2021-08-24 Cisco Technology, Inc. Software defined access fabric without subnet restriction to a virtual network
US11108540B2 (en) * 2019-01-18 2021-08-31 EMC IP Holding Company, LLC Securing cluster communications in a non-secure network
US11265247B2 (en) 2019-05-14 2022-03-01 Red Hat, Inc. Downtime reduction with VF MAC filter programming by hypervisors
US11416435B2 (en) * 2019-09-03 2022-08-16 Pensando Systems Inc. Flexible datapath offload chaining
US11700206B2 (en) 2019-11-19 2023-07-11 Oracle International Corporation System and method for supporting RDMA bandwidth restrictions in a private fabric in a high performance computing environment
CN112835739A (zh) * 2019-11-22 2021-05-25 北京百度网讯科技有限公司 宕机处理方法和装置
US11561916B2 (en) * 2020-01-13 2023-01-24 Hewlett Packard Enterprise Development Lp Processing task deployment in adapter devices and accelerators
US11669473B2 (en) * 2020-06-26 2023-06-06 Advanced Micro Devices, Inc. Allreduce enhanced direct memory access functionality
US11436177B2 (en) * 2020-07-24 2022-09-06 Dell Products L.P. Floating device location identification system
US11722360B2 (en) * 2021-01-18 2023-08-08 Nokia Solutions And Networks Oy Software defined networking control plane resiliency testing
US11700274B1 (en) * 2021-02-04 2023-07-11 Cisco Technology, Inc. Systems and methods for protecting pod deployment
CN114553884B (zh) * 2022-01-24 2023-05-30 中国科学院计算技术研究所 一种基于按需建域的区块链跨链交互方法及系统
US11656926B1 (en) 2022-01-26 2023-05-23 Bank Of America Corporation Systems and methods for automatically applying configuration changes to computing clusters
US11956164B2 (en) * 2022-04-29 2024-04-09 Hewlett Packard Enterprise Development Lp Remote management of a switch stack

Family Cites Families (137)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421711B1 (en) 1998-06-29 2002-07-16 Emc Corporation Virtual ports for data transferring of a data storage system
US6799208B1 (en) 2000-05-02 2004-09-28 Microsoft Corporation Resource manager architecture
US7103626B1 (en) * 2000-05-24 2006-09-05 Hewlett-Packard Development, L.P. Partitioning in distributed computer system
US7636772B1 (en) 2000-10-19 2009-12-22 International Business Machines Corporation Method and apparatus for dynamic retention of system area network management information in non-volatile store
US6941350B1 (en) 2000-10-19 2005-09-06 International Business Machines Corporation Method and apparatus for reliably choosing a master network manager during initialization of a network computing system
US7409432B1 (en) 2000-10-19 2008-08-05 International Business Machines Corporation Efficient process for handover between subnet managers
US6594712B1 (en) 2000-10-20 2003-07-15 Banderacom, Inc. Inifiniband channel adapter for performing direct DMA between PCI bus and inifiniband link
US6718392B1 (en) 2000-10-24 2004-04-06 Hewlett-Packard Development Company, L.P. Queue pair partitioning in distributed computer system
US6480500B1 (en) 2001-06-18 2002-11-12 Advanced Micro Devices, Inc. Arrangement for creating multiple virtual queue pairs from a compressed queue pair based on shared attributes
US6438130B1 (en) 2001-06-28 2002-08-20 Mellanox Technologies Ltd. Forwarding database cache
US20030005039A1 (en) * 2001-06-29 2003-01-02 International Business Machines Corporation End node partitioning using local identifiers
US7010600B1 (en) 2001-06-29 2006-03-07 Cisco Technology, Inc. Method and apparatus for managing network resources for externally authenticated users
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
US6829685B2 (en) 2001-11-15 2004-12-07 International Business Machines Corporation Open format storage subsystem apparatus and method
US20030101158A1 (en) 2001-11-28 2003-05-29 Pinto Oscar P. Mechanism for managing incoming data messages in a cluster
US7433948B2 (en) 2002-01-23 2008-10-07 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
US20040030763A1 (en) 2002-08-08 2004-02-12 Manter Venitha L. Method for implementing vendor-specific mangement in an inifiniband device
US7010633B2 (en) 2003-04-10 2006-03-07 International Business Machines Corporation Apparatus, system and method for controlling access to facilities based on usage classes
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
US20050044301A1 (en) 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US8165136B1 (en) 2003-09-03 2012-04-24 Cisco Technology, Inc. Virtual port based SPAN
US7188198B2 (en) 2003-09-11 2007-03-06 International Business Machines Corporation Method for implementing dynamic virtual lane buffer reconfiguration
US7185025B2 (en) 2003-09-30 2007-02-27 Motorola, Inc. Subnet replicated database elements
US20050071709A1 (en) 2003-09-30 2005-03-31 Rosenstock Harold N. InfiniBand architecture subnet derived database elements
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
US7680142B1 (en) 2004-05-11 2010-03-16 Sun Microsystems, Inc. Communications chip having a plurality of logic analysers
US7483442B1 (en) 2004-06-08 2009-01-27 Sun Microsystems, Inc. VCRC checking and generation
US9264384B1 (en) 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US7808904B2 (en) * 2004-11-18 2010-10-05 Fortinet, Inc. Method and apparatus for managing subscriber profiles
US7509419B2 (en) * 2005-01-13 2009-03-24 International Business Machines Corporation Method for providing remote access redirect capability in a channel adapter of a system area network
US7398337B2 (en) 2005-02-25 2008-07-08 International Business Machines Corporation Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization
US7376770B2 (en) 2005-02-25 2008-05-20 International Business Machines Corporation System and method for virtual adapter resource allocation matrix that defines the amount of resources of a physical I/O adapter
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
US8751649B2 (en) 2005-06-07 2014-06-10 Extreme Networks Port management system
US7496045B2 (en) 2005-07-28 2009-02-24 International Business Machines Corporation Broadcast of shared I/O fabric error messages in a multi-host environment to all affected root nodes
US7802000B1 (en) * 2005-08-01 2010-09-21 Vmware Virtual network in server farm
US9813283B2 (en) 2005-08-09 2017-11-07 Oracle International Corporation Efficient data transfer between servers and remote peripherals
US7577134B2 (en) 2005-08-19 2009-08-18 Brocade Communications Systems, Inc. Port expander for fibre channel fabrics in storage area networks
US20070081544A1 (en) 2005-10-12 2007-04-12 Matsushita Electric Industrial Co., Ltd. Gateway apparatus, server apparatus, and method for address management
US20070165596A1 (en) 2006-01-18 2007-07-19 Boyd William T Creation and management of routing table for PCI bus address based routing with integrated DID
US7484029B2 (en) 2006-02-09 2009-01-27 International Business Machines Corporation Method, apparatus, and computer usable program code for migrating virtual adapters from source physical adapters to destination physical adapters
US7783788B1 (en) * 2006-04-28 2010-08-24 Huawei Technologies Co., Ltd. Virtual input/output server
US7606968B2 (en) 2006-05-08 2009-10-20 Mcdata Corporation Multi-level content addressable memory
US7996583B2 (en) 2006-08-31 2011-08-09 Cisco Technology, Inc. Multiple context single logic virtual host channel adapter supporting multiple transport protocols
US20080059686A1 (en) * 2006-08-31 2008-03-06 Keith Iain Wilkinson Multiple context single logic virtual host channel adapter supporting multiple transport protocols
US7870306B2 (en) 2006-08-31 2011-01-11 Cisco Technology, Inc. Shared memory message switch and cache
US7865633B2 (en) 2006-08-31 2011-01-04 Cisco Technology, Inc. Multiple context single logic virtual host channel adapter
US20080114961A1 (en) * 2006-11-15 2008-05-15 Cisco Technology, Inc. Transparent device switchover in a storage area network
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
US20090031381A1 (en) * 2007-07-24 2009-01-29 Honeywell International, Inc. Proxy video server for video surveillance
US8014387B2 (en) * 2007-08-27 2011-09-06 International Business Machines Corporation Providing a fully non-blocking switch in a supernode of a multi-tiered full-graph interconnect architecture
US8185896B2 (en) 2007-08-27 2012-05-22 International Business Machines Corporation Method for data processing using a multi-tiered full-graph interconnect architecture
US8041773B2 (en) * 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
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
US7949721B2 (en) 2008-02-25 2011-05-24 International Business Machines Corporation Subnet management discovery of point-to-point network topologies
US8009589B2 (en) 2008-02-25 2011-08-30 International Business Machines Corporation Subnet management in virtual host channel adapter topologies
CN101639835A (zh) 2008-07-30 2010-02-03 国际商业机器公司 多租户场景中应用数据库分区的方法和装置
US7949640B2 (en) 2008-10-31 2011-05-24 Gravic, Inc. Referential integrity, consistency, and completeness loading of databases
EP2192721A1 (en) 2008-11-28 2010-06-02 Thomson Licensing A method of operating a network subnet manager
US20100145963A1 (en) 2008-12-04 2010-06-10 Morris Robert P Methods, Systems, And Computer Program Products For Resolving A Network Identifier Based On A Geospatial Domain Space Harmonized With A Non-Geospatial Domain Space
US8336079B2 (en) 2008-12-31 2012-12-18 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
JP2010192944A (ja) * 2009-02-13 2010-09-02 Sony Corp コンテンツ配信装置、コンテンツ利用装置、コンテンツ配信システム、コンテンツ配信方法、およびプログラム
JP2010198351A (ja) * 2009-02-25 2010-09-09 Fujitsu Ltd 権利付コンテンツ管理装置
US9973446B2 (en) 2009-08-20 2018-05-15 Oracle International Corporation Remote shared server peripherals over an Ethernet network for resource virtualization
US8745618B2 (en) * 2009-08-25 2014-06-03 International Business Machines Corporation Cache partitioning with a partition table to effect allocation of ways and rows of the cache to virtual machine in virtualized environments
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
JP5427574B2 (ja) 2009-12-02 2014-02-26 株式会社日立製作所 仮想計算機の移動管理方法、前記移動管理方法を用いた計算機、前記移動管理方法を用いた仮想化機構および前記移動管理方法を用いた計算機システム
US8769428B2 (en) * 2009-12-09 2014-07-01 Citrix Systems, Inc. Methods and systems for generating a combined display of taskbar button group entries generated on a local machine and on a remote machine
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
US9582319B2 (en) 2010-08-13 2017-02-28 International Business Machines Corporation Migrating virtual machines across network separated data centers
US20120047313A1 (en) 2010-08-19 2012-02-23 Microsoft Corporation Hierarchical memory management in virtualized systems for non-volatile memory models
EP2617159B1 (en) * 2010-09-17 2018-04-04 Oracle International Corporation System and method for facilitating protection against run-away subnet manager instances in a middleware machine environment
US9331963B2 (en) 2010-09-24 2016-05-03 Oracle International Corporation Wireless host I/O using virtualized I/O controllers
WO2012101775A1 (ja) 2011-01-26 2012-08-02 富士通株式会社 参照支援装置、参照支援方法、及び参照支援プログラム
US8948399B2 (en) 2011-05-27 2015-02-03 Novell, Inc. Dynamic key management
US9270650B2 (en) 2011-06-03 2016-02-23 Oracle International Corporation System and method for providing secure subnet management agent (SMA) in an infiniband (IB) network
US8713649B2 (en) 2011-06-03 2014-04-29 Oracle International Corporation System and method for providing restrictions on the location of peer subnet manager (SM) instances in an infiniband (IB) network
US8842671B2 (en) 2011-06-07 2014-09-23 Mellanox Technologies Ltd. Packet switching based on global identifier
US9332005B2 (en) * 2011-07-11 2016-05-03 Oracle International Corporation System and method for providing switch based subnet management packet (SMP) traffic protection in a middleware machine environment
WO2013012889A2 (en) 2011-07-19 2013-01-24 Grassroots Biotechnology, Inc. Regulatory polynucleotides and uses thereof
WO2013020126A1 (en) 2011-08-04 2013-02-07 Midokura Pte. Ltd. System and method for implementing and managing virtual networks
US8681606B2 (en) 2011-08-30 2014-03-25 International Business Machines Corporation Implementing redundancy on infiniband (IB) networks
US8862865B2 (en) 2011-08-30 2014-10-14 International Business Machines Corporation Rebooting infiniband clusters
US8665723B2 (en) 2011-08-30 2014-03-04 International Business Machines Corporation Managing data on Infiniband (IB) networks
US9397960B2 (en) 2011-11-08 2016-07-19 Mellanox Technologies Ltd. Packet steering
US9311122B2 (en) * 2012-03-26 2016-04-12 Oracle International Corporation System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment
US9432304B2 (en) 2012-03-26 2016-08-30 Oracle International Corporation System and method for supporting live migration of virtual machines based on an extended host channel adaptor (HCA) model
EP2850804B1 (en) 2012-05-10 2020-09-23 Oracle International Corporation System and method for supporting state synchronization in a network environment
US9609284B2 (en) 2012-05-22 2017-03-28 Otoy, Inc. Portable mobile light stage
US9959423B2 (en) 2012-07-30 2018-05-01 Microsoft Technology Licensing, Llc Security and data isolation for tenants in a business data system
US9917800B2 (en) 2012-08-24 2018-03-13 Cisco Technology, Inc. System and method for centralized virtual interface card driver logging in a network environment
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
US20140237156A1 (en) 2012-10-25 2014-08-21 Plx Technology, Inc. Multi-path id routing in a pcie express fabric environment
CN104871153B8 (zh) * 2012-10-29 2019-02-01 华为技术有限公司 用于分布式大规模并行处理数据库的方法和系统
US9083550B2 (en) * 2012-10-29 2015-07-14 Oracle International Corporation Network virtualization over infiniband
US9135198B2 (en) 2012-10-31 2015-09-15 Avago Technologies General Ip (Singapore) Pte Ltd Methods and structure for serial attached SCSI expanders that self-configure by setting routing attributes of their ports based on SMP requests
US9467410B2 (en) 2012-12-20 2016-10-11 Mcafee, Inc. Just-in-time, email embedded URL reputation determination
US9160659B2 (en) 2013-02-26 2015-10-13 Red Hat Israel, Ltd. Paravirtualized IP over infiniband bridging
US9268798B2 (en) 2013-04-26 2016-02-23 Oracle International Corporation Support for cloud-based multi-tenant environments using connection labeling
US9785687B2 (en) 2013-06-06 2017-10-10 Oracle International Corporation System and method for transparent multi key-value weighted attributed connection using uni-tag connection pools
US9747341B2 (en) 2013-06-06 2017-08-29 Oracle International Corporation System and method for providing a shareable global cache for use with a database environment
US9559990B2 (en) 2013-08-27 2017-01-31 Oracle International Corporation System and method for supporting host channel adapter (HCA) filtering in an engineered system for middleware and application execution
US9276959B2 (en) * 2013-11-11 2016-03-01 Amazon Technologies, Inc. Client-configurable security options for data streams
US9542348B2 (en) 2014-04-08 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Arbitration monitoring for serial attached small computer system interface systems during discovery
US9800471B2 (en) 2014-05-13 2017-10-24 Brocade Communications Systems, Inc. Network extension groups of global VLANs in a fabric switch
US9519328B2 (en) 2014-05-21 2016-12-13 Intel Corporation Techniques for selectively reducing power levels of ports and core switch logic in infiniband switches
KR20160007824A (ko) 2014-07-02 2016-01-21 에스케이하이닉스 주식회사 데이터 저장 장치
JP2016018387A (ja) 2014-07-08 2016-02-01 富士通株式会社 情報処理システム、制御方法及び制御プログラム
US9723008B2 (en) 2014-09-09 2017-08-01 Oracle International Corporation System and method for providing an integrated firewall for secure network communication in a multi-tenant environment
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
EP3238393A4 (en) 2014-12-27 2018-08-08 Intel Corporation Technologies for high-performance network fabric security
US10503442B2 (en) 2015-01-28 2019-12-10 Avago Technologies International Sales Pte. Limited Method and apparatus for registering and storing virtual machine unique information capabilities
US10038592B2 (en) 2015-03-17 2018-07-31 Brocade Communications Systems LLC Identifier assignment to a new switch in a switch group
US10084639B2 (en) * 2015-03-20 2018-09-25 Oracle International Corporation System and method for efficient network reconfiguration in fat-trees
US10764162B2 (en) * 2015-03-25 2020-09-01 Gigamon Inc. In-fabric traffic analysis
US9876698B2 (en) 2015-04-09 2018-01-23 International Business Machines Corporation Interconnect congestion control in a storage grid
US10225142B2 (en) 2015-06-30 2019-03-05 Vmware, Inc. Method and system for communication between a management-server and remote host systems
US10162681B2 (en) 2015-07-24 2018-12-25 International Business Machines Corporation Reducing redundant validations for live operating system migration
US10432470B2 (en) 2015-09-23 2019-10-01 International Business Machines Corporation Distributed subnet manager for InfiniBand networks
US9692660B2 (en) 2015-09-23 2017-06-27 International Business Machines Corporation Election and use of configuration manager
US10360205B2 (en) 2015-09-23 2019-07-23 International Business Machines Corporation Cooperative MKEY locking for managing infiniband networks
US10498654B2 (en) 2015-12-28 2019-12-03 Amazon Technologies, Inc. Multi-path transport design
US9537798B1 (en) * 2016-01-19 2017-01-03 International Business Machines Corporation Ethernet link aggregation with shared physical ports
US9628374B1 (en) * 2016-01-19 2017-04-18 International Business Machines Corporation Ethernet link aggregation with shared physical ports
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
US10326860B2 (en) * 2016-01-27 2019-06-18 Oracle International Corporation System and method for defining virtual machine fabric profiles of virtual machines in a high-performance computing environment
US10659340B2 (en) * 2016-01-28 2020-05-19 Oracle International Corporation System and method for supporting VM migration between subnets in a high performance computing environment
US10666611B2 (en) * 2016-01-28 2020-05-26 Oracle International Corporation System and method for supporting multiple concurrent SL to VL mappings in a high performance computing environment
US10225185B2 (en) * 2016-04-18 2019-03-05 International Business Machines Corporation Configuration mechanisms in a switchless network
US10592453B2 (en) * 2018-08-01 2020-03-17 EMC IP Holding Company LLC Moving from back-to-back topology to switched topology in an InfiniBand network

Also Published As

Publication number Publication date
JP6913669B2 (ja) 2021-08-04
US11805008B2 (en) 2023-10-31
CN107852342B (zh) 2021-01-26
US10334074B2 (en) 2019-06-25
EP3408740A1 (en) 2018-12-05
CN107851034B (zh) 2021-08-06
US20170214633A1 (en) 2017-07-27
US11128524B2 (en) 2021-09-21
US10178201B2 (en) 2019-01-08
US20200195494A1 (en) 2020-06-18
US10771324B2 (en) 2020-09-08
US20170214570A1 (en) 2017-07-27
EP3408969A1 (en) 2018-12-05
EP3408969B1 (en) 2020-06-10
US10594547B2 (en) 2020-03-17
WO2017132570A1 (en) 2017-08-03
JP2019505104A (ja) 2019-02-21
US10756961B2 (en) 2020-08-25
US10326860B2 (en) 2019-06-18
US10469621B2 (en) 2019-11-05
US11451434B2 (en) 2022-09-20
US20170214766A1 (en) 2017-07-27
US20190141166A1 (en) 2019-05-09
CN107851034A (zh) 2018-03-27
US20190297170A1 (en) 2019-09-26
US10440152B2 (en) 2019-10-08
US20170212779A1 (en) 2017-07-27
US20200127890A1 (en) 2020-04-23
EP3408740B1 (en) 2021-09-15
US10560318B2 (en) 2020-02-11
WO2017132399A1 (en) 2017-08-03
US20170212778A1 (en) 2017-07-27
CN107852342A (zh) 2018-03-27
US11252023B2 (en) 2022-02-15
US20170214767A1 (en) 2017-07-27
US20170214736A1 (en) 2017-07-27
JP2019509529A (ja) 2019-04-04
US11012293B2 (en) 2021-05-18
US20200021484A1 (en) 2020-01-16
US20210234765A1 (en) 2021-07-29
US20170212784A1 (en) 2017-07-27

Similar Documents

Publication Publication Date Title
JP6920281B2 (ja) 高性能コンピューティング環境において仮想マシンの仮想マシンファブリックプロファイルを規定するためのシステムおよび方法
US10841244B2 (en) System and method for supporting a scalable representation of link stability and availability in a high performance computing environment
JP2022003791A (ja) 高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムおよび方法
US11018947B2 (en) System and method for supporting on-demand setup of local host channel adapter port partition membership in a high-performance computing environment
US10972375B2 (en) System and method of reserving a specific queue pair number for proprietary management traffic in a high-performance computing environment

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191202

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210506

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: 20210629

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210726

R150 Certificate of patent or registration of utility model

Ref document number: 6920281

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150