JP2019503598A - 高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムおよび方法 - Google Patents

高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムおよび方法 Download PDF

Info

Publication number
JP2019503598A
JP2019503598A JP2018504731A JP2018504731A JP2019503598A JP 2019503598 A JP2019503598 A JP 2019503598A JP 2018504731 A JP2018504731 A JP 2018504731A JP 2018504731 A JP2018504731 A JP 2018504731A JP 2019503598 A JP2019503598 A JP 2019503598A
Authority
JP
Japan
Prior art keywords
switches
subnet
key
host channel
switch
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.)
Pending
Application number
JP2018504731A
Other languages
English (en)
Other versions
JP2019503598A5 (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
Priority claimed from US15/412,972 external-priority patent/US11271870B2/en
Priority claimed from US15/415,497 external-priority patent/US11770349B2/en
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2019503598A publication Critical patent/JP2019503598A/ja
Publication of JP2019503598A5 publication Critical patent/JP2019503598A5/ja
Priority to JP2021145456A priority Critical patent/JP7297830B2/ja
Priority to JP2023097755A priority patent/JP2023120292A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • 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/451Execution arrangements for user interfaces
    • 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
    • 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/44Star or tree networks
    • 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/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • 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/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/14Network analysis or design
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation of link capacity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • 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
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/111Switch interfaces, e.g. port details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/113Arrangements for redundant switching, e.g. using parallel planes
    • H04L49/118Address processing within a device, e.g. using internal ID or tags for routing within a switch
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • 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
    • 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
    • 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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/45595Network integration; Enabling network access in virtual machine instances
    • 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/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムおよび方法。ある方法は、1つ以上のスイッチ、複数のホストチャネルアダプタ、および複数のエンドノードを備える少なくとも1つのサブネットを提供することができる。この方法は、複数のエンドノードを複数のパーティションの少なくとも1つに関連付けることができ、複数のパーティションの各々はP_Key値に関連付けられる。この方法は、1つ以上のスイッチの各々を、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることができる。この方法は、ホストチャネルアダプタの各々を、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることができる。

Description

著作権表示:
この特許文献の開示の一部は、著作権保護の対象となる資料を含む。著作権保有者は、この特許文献または特許開示の、それが特許商標庁の特許ファイルまたは記録に現れているとおりの、何人による複写複製にも異議を唱えないが、それ以外の場合にはすべての著作権をどのようなものであろうと所有する。
発明の分野:
本発明は、一般にコンピュータシステムに関し、特に、高性能コンピューティング環境においてスケーラブルビットマップに基づくP_Keyテーブルをサポートすることに関する。
背景:
導入されるクラウドコンピューティングアーキテクチャがより大規模になるのに応じて、従来のネットワークおよびストレージに関する性能および管理の障害が深刻な問題になってきている。クラウドコンピューティングファブリックのための基礎としてインフィニバンド(登録商標)(InfiniBand:IB)技術などの高性能な無損失相互接続を用いることへの関心がますます高まってきている。これは、本発明の実施形態が対応するように意図された一般領域である。
概要:
本明細書では、高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムおよび方法を説明する。ある例示的方法は、1つ以上のスイッチを含む少なくとも1つのサブネットを提供し得、1つ以上のスイッチは少なくともリーフスイッチを含み、1つ以上のスイッチの各々は、複数のスイッチポートを含み、少なくとも1つのサブネットはさらに、複数のホストチャネルアダプタを含み、ホストチャネルアダプタの1つ以上は、少なくとも1つの仮想機能、少なくとも1つの仮想スイッチ、および少なくとも1つの物理機能を含み、複数のホストチャネルアダプタの各々は、複数のホストチャネルアダプタポートを含み、複数のホストチャネルアダプタは、1つ以上のスイッチを介して相互接続され、少なくとも1つのサブネットはさらに、複数の物理ホストおよびハイパーバイザを含み、複数の物理ホストおよびハイパーバイザの各々は、複数のホストチャネルアダプタのうちの少なくとも1つのホストチャネルアダプタに関連付けられ、少なくとも1つのサブネットはさらに、複数の仮想マシンを含み、複数の仮想マシンの各々は、少なくとも1つの仮想機能に関連付けられている。この方法は、複数の物理ホストおよび仮想マシンの各々を複数のパーティションの少なくとも1つに関連付けることができ、複数のパーティションの各々はP_Key値に関連付けられる。この方法は、1つ以上のスイッチポートの各々を、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることができる。この方法は、ホストチャネルアダプタポートの各々を、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることができる。
本明細書では、高性能コンピューティング環境においてビットマップに基づくハードウェア実現例を使用してレガシーP_Keyテーブル抽象化をサポートするためのシステムおよび方法を説明する。ある例示的方法は、1つ以上のマイクロプロセッサを含む1つ以上のコンピュータに少なくとも1つのサブネットを提供することができ、少なくとも1つのサブネットは、1つ以上のスイッチを含み、1つ以上のスイッチは少なくともリーフスイッチを含み、1つ以上のスイッチの各々は、複数のスイッチポートを含み、少なくとも1つのサブネットはさらに、複数のホストチャネルアダプタを含み、各ホストチャネルアダプタは、少なくとも1つのホストチャネルアダプタポートを含み、複数のホストチャネルアダプタは、1つ以上のスイッチを介して相互接続され、少なくとも1つのサブネットはさらに、複数のエンドノードを含み、複数のエンドノードの各々は、複数のホストチャネルアダプタのうちの少なくとも1つのホストチャネルアダプタに関連付けられる。この方法は、エンドノードの各々を複数のパーティションの少なくとも1つに関連付けることができ、複数のパーティションの各々はP_Key値に関連付けられる。この方法は、1つ以上のスイッチポートの各々を、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることができる。この方法は、ホストチャネルアダプタポートの各々を、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることができる。この方法は、複数のビットマップに基づくP_Keyテーブルの各々を、仮想P_Keyテーブルに関連付けることができる。
一実施形態によれば、複数のホストチャネルアダプタの1つ以上は、少なくとも1つの仮想機能、少なくとも1つの仮想スイッチ、および少なくとも1つの物理機能を含むことができる。複数のエンドノードは、物理ホスト、仮想マシン、または物理ホストと仮想マシンとの組み合わせを含むことができ、仮想マシンは、少なくとも1つの仮想機能に関連付けられる。
一実施形態によるインフィニバンド環境の一例を示す図である。 一実施形態による、パーティショニングされたクラスタ環境を示す図である。 一実施形態による、ネットワーク環境におけるツリートポロジを示す図である。 一実施形態に従った例示的な共有ポートアーキテクチャを示す図である。 一実施形態に従った例示的なvSwitchアーキテクチャを示す図である。 一実施形態に従った例示的なvPortアーキテクチャを示す図である。 一実施形態に従った、LIDが予めポピュレートされた例示的なvSwitchアーキテクチャを示す図である。 一実施形態に従った、動的LID割当てがなされた例示的なvSwitchアーキテクチャを示す図である。 一実施形態に従った、動的LID割当てがなされかつLIDが予めポピュレートされているvSwitchを備えた例示的なvSwitchアーキテクチャを示す図である。 一実施形態による例示的なマルチサブネットインフィニバンドファブリックを示す。 一実施形態による、パーティション分離のための連想テーブルを有する例示的なインフィニバンドファブリックを示す。 一実施形態による、パーティション分離のためのビットマップを有する例示的なインフィニバンドファブリックを示す。 一実施形態による、高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするための方法のフローチャートである。 一実施形態による、パーティション分離のためのビットマップと、レガシー管理エンティティのためのP_Key抽象化とを有する例示的なファブリックを示す。 一実施形態による、パーティション分離のためのビットマップと、レガシー管理エンティティのためのP_Key抽象化とを有する例示的なファブリックを示す。 一実施形態による、高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするための方法のフローチャートである。 一実施形態による、高性能コンピューティング環境においてビットマップに基づくハードウェア実現例を使用してレガシーP_Keyテーブル抽象化をサポートするための方法のフローチャートである。
詳細な説明:
本発明は、同様の参照番号が同様の要素を指している添付図面の図において、限定のためではなく例示のために説明されている。なお、この開示における「ある」または「1つの」または「いくつかの」実施形態への参照は必ずしも同じ実施形態に対するものではなく、そのような参照は少なくとも1つを意味する。特定の実現例が説明されるが、これらの特定の実現例が例示的な目的のためにのみ提供されることが理解される。当業者であれば、他の構成要素および構成が、この発明の範囲および精神から逸脱することなく使用され得ることを認識するであろう。
図面および詳細な説明全体にわたって同様の要素を示すために、共通の参照番号が使用され得る。したがって、ある図で使用される参照番号は、要素が別のところで説明される場合、そのような図に特有の詳細な説明において参照される場合もあり、または参照されない場合もある。
本明細書では、高性能コンピューティング環境においてビットマップに基づくハードウェア実現例を使用して構成可能なレガシーP_Keyテーブル抽象化をサポートするシステムおよび方法を説明する。
本発明の以下の説明は、高性能ネットワークのための例としてインフィニバンドTM(IB)ネットワークを使用する。以下の説明を通して、インフィニバンドTM規格(様々に、インフィニバンド規格、IB規格、またはレガシーIB規格とも呼ばれる)を参照することができる。このような参照は、引用によりその全体が本明細書に援用される、http://www.inifinibandta.orgで入手可能なインフィニバンド(登録商標)トレード・アソシエーション・アーキテクチャ規格、第1巻、バージョン1.3(2015年3月リリース)を参照すると理解される。他のタイプの高性能ネットワークが何ら限定されることなく使用され得ることが、当業者には明らかであるだろう。以下の説明ではまた、ファブリックトポロジーについての一例として、ファットツリートポロジーを使用する。他のタイプのファブリックトポロジーが何ら限定されることなく使用され得ることが当業者には明らかであるだろう。
現代(たとえばExascale(エクサスケール)時代)におけるクラウドの要求を満たすために、仮想マシンがリモート・ダイレクト・メモリ・アクセス(Remote Direct Memory Access:RDMA)などの低オーバーヘッドネットワーク通信パラダイムを利用できることが望ましい。RDMAはOSスタックをバイパスし、ハードウェアと直接通信することで、シングルルートI/O仮想化(Single-Root I/O Virtualization:SR−IOV)ネットワークアダプタのようなパススルー技術が使用可能となる。一実施形態に従うと、高性能な無損失相互接続ネットワークにおける適用可能性のために、仮想スイッチ(virtual switch:vSwitch)SR−IOVアーキテクチャを提供することができる。ライブマイグレーションを実際に選択できるようにするためにネットワーク再構成時間が重要となるので、ネットワークアーキテクチャに加えて、スケーラブルであるとともにトポロジーに依存しない動的な再構成メカニズムを提供することができる。
一実施形態に従うと、さらには、vSwitchを用いる仮想化された環境のためのルーティング戦略を提供することができ、ネットワークトポロジー(たとえばファットツリートポロジー)のための効率的なルーティングアルゴリズムを提供することができる。動的な再構成メカニズムは、ファットツリーにおいて課されるオーバーヘッドを最小限にするためにさらに調整することができる。
本発明の一実施形態に従うと、仮想化は、クラウドコンピューティングにおける効率的なリソース利用および融通性のあるリソース割当てに有益であり得る。ライブマイグレーションは、アプリケーションにトランスペアレントな態様で物理サーバ間で仮想マシン(virtual machine:VM)を移動させることによってリソース使用を最適化することを可能にする。このため、仮想化は、ライブマイグレーションによる統合、リソースのオン・デマンド・プロビジョニングおよび融通性を可能にし得る。
インフィニバンド(登録商標)
インフィニバンド(IB)は、インフィニバンド・トレード・アソシエーション(InfiniBandTMTrade Association)によって開発されたオープン標準無損失ネットワーク技術である。この技術は、特に高性能コンピューティング(high-performance computing:HPC)アプリケーションおよびデータセンタを対象とする、高スループットおよび少ない待ち時間の通信を提供するシリアルポイントツーポイント全二重相互接続(serial point-to-point full-duplex interconnect)に基づいている。
インフィニバンド・アーキテクチャ(InfiniBand Architecture:IBA)は、2層トポロジー分割をサポートする。低層では、IBネットワークはサブネットと呼ばれ、1つのサブネットは、スイッチおよびポイントツーポイントリンクを使用して相互接続される一組のホストを含み得る。より高いレベルでは、1つのIBファブリックは、ルータを使用して相互接続され得る1つ以上のサブネットを構成する。
1つのサブネット内で、ホストは、スイッチおよびポイントツーポイントリンクを使用して接続され得る。加えて、サブネットにおける指定されたデバイス上に存在する、1つのマスター管理エンティティ、すなわちサブネットマネージャ(subnet manager:SM)があり得る。サブネットマネージャは、IBサブネットを構成し、起動し、維持する役割を果たす。加えて、サブネットマネージャ(SM)は、IBファブリックにおいてルーティングテーブル計算を行なう役割を果たし得る。ここで、たとえば、IBネットワークのルーティングは、ローカルサブネットにおけるすべての送信元と宛先とのペア間の適正な負荷バランシングを目標とする。
サブネット管理インターフェイスを通して、サブネットマネージャは、サブネット管理パケット(subnet management packet:SMP)と呼ばれる制御パケットを、サブネット管理エージェント(subnet management agent:SMA)と交換する。サブネット管理エージェントは、すべてのIBサブネットデバイス上に存在する。SMPを使用することにより、サブネットマネージャは、ファブリックを発見し、エンドノードおよびスイッチを構成し、SMAから通知を受信することができる。
一実施形態によれば、IBネットワークにおけるサブネット内のルーティングは、スイッチに格納されたLFTに基づき得る。LFTは、使用中のルーティングメカニズムに従って、SMによって計算される。サブネットでは、エンドノード上のホストチャネルアダプタ(Host Channel Adapter:HCA)ポートおよびスイッチが、ローカル識別子(LID)を使用してアドレス指定される。LFTにおける各エントリは、宛先LID(destination LID:DLID)と出力ポートとからなる。テーブルにおけるLIDごとに1つのエントリのみがサポートされる。パケットがあるスイッチに到着すると、その出力ポートは、そのスイッチのフォワーディングテーブルにおいてDLIDを検索することによって判断される。所与の送信元−宛先ペア(LIDペア)間のネットワークにおいてパケットは同じ経路を通るため、ルーティングは決定論的である。
一般に、マスターサブネットマネージャを除く他のすべてのサブネットマネージャは、耐故障性のために待機モードで作動する。しかしながら、マスターサブネットマネージャが故障した状況では、待機中のサブネットマネージャによって、新しいマスターサブネットマネージャが取り決められる。マスターサブネットマネージャはまた、サブネットの周期的なスイープ(sweep)を行なってあらゆるトポロジー変化を検出し、それに応じてネットワークを再構成する。
さらに、サブネット内のホストおよびスイッチは、ローカル識別子(LID)を用いてアドレス指定され得るとともに、単一のサブネットは49151個のユニキャストLIDに制限され得る。サブネット内で有効なローカルアドレスであるLIDの他に、各IBデバイスは、64ビットのグローバル一意識別子(global unique identifier:GUID)を有し得る。GUIDは、IBレイヤー3(L3)アドレスであるグローバル識別子(global identifier:GID)を形成するために使用され得る。
SMは、ネットワーク初期化時間に、ルーティングテーブル(すなわち、サブネット内のノードの各ペア間の接続/ルート)を計算し得る。さらに、トポロジーが変化するたびに、ルーティングテーブルは、接続性および最適性能を確実にするために更新され得る。通常動作中、SMは、トポロジー変化をチェックするためにネットワークの周期的なライトスイープ(light sweep)を実行し得る。ライトスイープ中に変化が発見された場合、または、ネットワーク変化を信号で伝えるメッセージ(トラップ)をSMが受信した場合、SMは、発見された変化に従ってネットワークを再構成し得る。
たとえば、SMは、リンクがダウンした場合、デバイスが追加された場合、またはリンクが除去された場合など、ネットワークトポロジーが変化する場合に、ネットワークを再構成し得る。再構成ステップは、ネットワーク初期化中に行なわれるステップを含み得る。さらに、再構成は、ネットワーク変化が生じたサブネットに制限されるローカルスコープを有し得る。また、ルータを用いる大規模ファブリックのセグメント化は、再構成スコープを制限し得る。
一実施形態に従ったインフィニバンド環境100の例を示す図1に、インフィニバンドファブリックの一例を示す。図1に示す例では、ノードA101〜E105は、インフィニバンドファブリック120を使用して、それぞれのホストチャネルアダプタ111〜115を介して通信する。一実施形態に従うと、さまざまなノード(たとえばノードA101〜E105)はさまざまな物理デバイスによって表わすことができる。一実施形態に従うと、さまざまなノード(たとえばノードA101〜E105)は仮想マシンなどのさまざまな仮想デバイスによって表わすことができる。
インフィニバンドにおけるパーティショニング
一実施形態によれば、IBネットワークは、ネットワークファブリックを共有するシステムの論理グループの分離をもたらすためにセキュリティメカニズムとしてパーティショニングをサポートし得る。ファブリックにおけるノード上の各HCAポートは、1つ以上のパーティションのメンバであり得る。パーティションメンバーシップは、SMの一部であり得る集中型パーティションマネージャによって管理される。SMは、各ポートに関するパーティションメンバーシップ情報を、16ビットのパーティションキー(partition key:P_キー)のテーブルとして構成することができる。SMはまた、これらのポートを介してデータトラフィックを送信または受信するエンドノードに関連付けられたP_Key情報を含むパーティション実施テーブルを用いて、スイッチポートおよびルータポートを構成することができる。加えて、一般的な場合には、スイッチポートのパーティションメンバーシップは、(リンクに向かう)出口方向に向かってポートを介してルーティングされたLIDに間接的に関連付けられたすべてのメンバーシップの集合を表わし得る。
一実施形態によれば、パーティションは、あるグループのメンバが同じ論理グループの他のメンバとしか通信できないような、ポートの論理グループである。ホストチャネルアダプタ(HCA)およびスイッチでは、パーティションメンバシップ情報を使用してパケットをフィルタリングして分離を実行できる。無効なパーティショニング情報を持つパケットは、そのパケットが着信ポートに到着するとすぐにドロップすることができる。パーティショニングされたIBシステムでは、パーティションを使用してテナントクラスタを作成できる。パーティションの適所における実施で、ノードは異なるテナントクラスタに属する他のノードと通信することはできない。このようにして、侵害されたテナントノードまたは悪意のあるテナントノードが存在する場合でも、システムのセキュリティを保証することができる。
一実施形態によれば、ノード間の通信のために、管理キューペア(QP0およびQP1)を除き、キューペア(Queue Pair:QP)およびエンドツーエンドコンテキスト(End-to-End context:EEC)を特定のパーティションに割当てることができる。次に、P_キー情報を、送信されたすべてのIBトランスポートパケットに追加することができる。パケットがHCAポートまたはスイッチに到着すると、そのP_キー値を、SMによって構成されたテーブルに対して確認することができる。無効のP_キー値が見つかった場合、そのパケットは直ちに廃棄される。このように、通信は、パーティションを共有するポート間でのみ許可される。
IBパーティションのある例が、図2に示されており、それは、一実施形態による、パーティショニングされたクラスタ環境を示している。図2に示す例では、ノードA〜E101〜105は、インフィニバンドファブリック120を使用して、それぞれのホストチャネルアダプタ111〜115を介して通信する。ノードA〜Eは、パーティション、すなわちパーティション1,130、パーティション2,140、およびパーティション3,150に配置される。パーティション1は、ノードA101およびノードD104を含む。パーティション2は、ノードA101、ノードB102、およびノードC103を含む。パーティション3は、ノードC103およびノードE105を含む。パーティションの配置のため、ノードD104とノードE105とは、これらのノードがパーティションを共有しないので、通信することができない。一方、例えば、ノードA101とノードC103とは、これらのノードが両方ともパーティション2,140のメンバであるため、通信が許可される。
インフィニバンドにおける仮想マシン
過去10年の間に、ハードウェア仮想化サポートによってCPUオーバーヘッドが実質的に排除され、メモリ管理ユニットを仮想化することによってメモリオーバーヘッドが著しく削減され、高速SANストレージまたは分散型ネットワークファイルシステムの利用によってストレージオーバーヘッドが削減され、シングルルートI/O仮想化(Single Root Input/Output Virtualization:SR−IOV)のようなデバイス・パススルー技術を使用することによってネットワークI/Oオーバーヘッドが削減されてきたことに応じて、仮想化された高性能コンピューティング(High Performance Computing:HPC)環境の将来見通しが大幅に改善されてきた。現在では、クラウドが、高性能相互接続ソリューションを用いて仮想HPC(virtual HPC:vHPC)クラスタに対応し、必要な性能を提供することができる。
しかしながら、インフィニバンド(IB)などの無損失ネットワークと連結されたとき、仮想マシン(VM)のライブマイグレーションなどのいくつかのクラウド機能は、これらのソリューションにおいて用いられる複雑なアドレス指定およびルーティングスキームのせいで、依然として問題となる。IBは、高帯域および低レイテンシを提供する相互接続ネットワーク技術であり、このため、HPCおよび他の通信集約型の作業負荷に非常によく適している。
IBデバイスをVMに接続するための従来のアプローチは直接割当てされたSR−IOVを利用することによるものである。しかしながら、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は、ファットツリーにおけるすべてのレベルに同じポートカウントスイッチを用いている。
入出力(Input/Output:I/O)仮想化
一実施形態に従うと、I/O仮想化(I/O Virtualization:IOV)は、基礎をなす物理リソースに仮想マシン(VM)がアクセスすることを可能にすることによって、I/Oを利用可能にすることができる。ストレージトラフィックとサーバ間通信とを組合せると、シングルサーバのI/Oリソースにとって抗し難い高い負荷が課され、結果として、データの待機中に、バックログが発生し、プロセッサがアイドル状態になる可能性がある。I/O要求の数が増えるにつれて、IOVにより利用可能性をもたらすことができ、最新のCPU仮想化において見られる性能レベルに匹敵するように、(仮想化された)I/Oリソースの性能、スケーラビリティおよび融通性を向上させることができる。
一実施形態に従うと、I/Oリソースの共有を可能にして、VMからリソースへのアクセスが保護されることを可能にし得るようなIOVが所望される。IOVは、VMにエクスポーズされる論理装置を、その物理的な実装から分離する。現在、エミュレーション、準仮想化、直接的な割当て(direct assignment:DA)、およびシングルルートI/O仮想化(SR−IOV)などのさまざまなタイプのIOV技術が存在し得る。
一実施形態に従うと、あるタイプのIOV技術としてソフトウェアエミュレーションがある。ソフトウェアエミュレーションは分離されたフロントエンド/バックエンド・ソフトウェアアーキテクチャを可能にし得る。フロントエンドはVMに配置されたデバイスドライバであり得、I/Oアクセスをもたらすためにハイパーバイザによって実現されるバックエンドと通信し得る。物理デバイス共有比率は高く、VMのライブマイグレーションはネットワークダウンタイムのわずか数ミリ秒で実現可能である。しかしながら、ソフトウェアエミュレーションはさらなる不所望な計算上のオーバーヘッドをもたらしてしまう。
一実施形態に従うと、別のタイプのIOV技術として直接的なデバイスの割当てがある。直接的なデバイスの割当てでは、I/OデバイスをVMに連結する必要があるが、デバイスはVM間では共有されない。直接的な割当てまたはデバイス・パススルーは、最小限のオーバーヘッドでほぼ固有の性能を提供する。物理デバイスはハイパーバイザをバイパスし、直接、VMに取付けられている。しかしながら、このような直接的なデバイスの割当ての欠点は、仮想マシン間で共有がなされないため、1枚の物理ネットワークカードが1つのVMと連結されるといったように、スケーラビリティが制限されてしまうことである。
一実施形態に従うと、シングルルートIOV(Single Root IOV:SR−IOV)は、ハードウェア仮想化によって、物理装置がその同じ装置の複数の独立した軽量のインスタンスとして現われることを可能にし得る。これらのインスタンスは、パススルー装置としてVMに割当てることができ、仮想機能(Virtual Function:VF)としてアクセスすることができる。ハイパーバイザは、(1つのデバイスごとに)固有の、十分な機能を有する物理機能(Physical Function:PF)によってデバイスにアクセスする。SR−IOVは、純粋に直接的に割当てする際のスケーラビリティの問題を軽減する。しかしながら、SR−IOVによって提示される問題は、それがVMマイグレーションを損なう可能性があることである。これらのIOV技術の中でも、SR−IOVは、ほぼ固有の性能を維持しながらも、複数のVMから単一の物理デバイスに直接アクセスすることを可能にする手段を用いてPCI Express(PCIe)規格を拡張することができる。これにより、SR−IOVは優れた性能およびスケーラビリティを提供することができる。
SR−IOVは、PCIeデバイスが、各々のゲストに1つの仮想デバイスを割当てることによって複数のゲスト間で共有することができる複数の仮想デバイスをエクスポーズすることを可能にする。各々のSR−IOVデバイスは、少なくとも1つの物理機能(PF)と、1つ以上の関連付けられた仮想機能(VF)とを有する。PFは、仮想マシンモニタ(virtual machine monitor:VMM)またはハイパーバイザによって制御される通常のPCIe機能であるのに対して、VFは軽量のPCIe機能である。各々のVFはそれ自体のベースアドレス(base address:BAR)を有しており、固有のリクエスタIDが割当てられている。固有のリクエスタIDは、I/Oメモリ管理ユニット(I/O memory management unit:IOMMU)がさまざまなVFへの/からのトラフィックストリームを区別することを可能にする。IOMMUはまた、メモリを適用して、PFとVFとの間の変換を中断する。
しかし、残念ながら、直接的デバイス割当て技術は、仮想マシンのトランスペアレントなライブマイグレーションがデータセンタ最適化のために所望されるような状況においては、クラウドプロバイダにとって障壁となる。ライブマイグレーションの本質は、VMのメモリ内容がリモートハイパーバイザにコピーされるという点である。さらに、VMがソースハイパーバイザにおいて中断され、VMの動作が宛先において再開される。ソフトウェアエミュレーション方法を用いる場合、ネットワークインターフェイスは、それらの内部状態がメモリに記憶され、さらにコピーされるように仮想的である。このため、ダウンタイムは数ミリ秒にまで減らされ得る。
しかしながら、SR−IOVなどの直接的デバイス割当て技術が用いられる場合、マイグレーションはより困難になる。このような状況においては、ネットワークインターフェイスの内部状態全体は、それがハードウェアに結び付けられているのでコピーすることができない。代わりに、VMに割当てられたSR−IOV VFが分離され、ライブマイグレーションが実行されることとなり、新しいVFが宛先において付与されることとなる。インフィニバンドおよびSR−IOVの場合、このプロセスがダウンタイムを数秒のオーダでもたらす可能性がある。さらに、SR−IOV共有型ポートモデルにおいては、VMのアドレスがマイグレーション後に変化することとなり、これにより、SMにオーバーヘッドが追加され、基礎をなすネットワークファブリックの性能に対して悪影響が及ぼされることとなる。
インフィニバンドSR−IOVアーキテクチャ−共有ポート
さまざまなタイプのSR−IOVモデル(たとえば共有ポートモデル、仮想スイッチモデルおよび仮想ポートモデル)があり得る。
図4は、一実施形態に従った例示的な共有ポートアーキテクチャを示す。図に示されるように、ホスト300(たとえばホストチャネルアダプタ)はハイパーバイザ310と対話し得る。ハイパーバイザ310は、さまざまな仮想機能330、340および350をいくつかの仮想マシンに割当て得る。同様に、物理機能はハイパーバイザ310によって処理することができる。
一実施形態に従うと、図4に示されるような共有ポートアーキテクチャを用いる場合、ホスト(たとえばHCA)は、物理機能320と仮想機能330、350、350との間において単一の共有LIDおよび共有キュー対(Queue Pair:QP)のスペースがあるネットワークにおいて単一のポートとして現われる。しかしながら、各々の機能(すなわち、物理機能および仮想機能)はそれら自体のGIDを有し得る。
図4に示されるように、一実施形態に従うと、さまざまなGIDを仮想機能および物理機能に割当てることができ、特別のキュー対であるQP0およびQP1(すなわちインフィニバンド管理パケットのために用いられる専用のキュー対)が物理機能によって所有される。これらのQPはVFにも同様にエクスポーズされるが、VFはQP0を使用することが許可されておらず(VFからQP0に向かって入来するすべてのSMPが廃棄され)、QP1は、PFが所有する実際のQP1のプロキシとして機能し得る。
一実施形態に従うと、共有ポートアーキテクチャは、(仮想機能に割当てられることによってネットワークに付随する)VMの数によって制限されることのない高度にスケーラブルなデータセンタを可能にし得る。なぜなら、ネットワークにおける物理的なマシンおよびスイッチによってLIDスペースが消費されるだけであるからである。
しかしながら、共有ポートアーキテクチャの欠点は、トランスペアレントなライブマイグレーションを提供することができない点であり、これにより、フレキシブルなVM配置についての可能性が妨害されてしまう。各々のLIDが特定のハイパーバイザに関連付けられており、かつハイパーバイザ上に常駐するすべてのVM間で共有されているので、マイグレートしているVM(すなわち、宛先ハイパーバイザにマイグレートする仮想マシン)は、そのLIDを宛先ハイパーバイザのLIDに変更させなければならない。さらに、QP0アクセスが制限された結果、サブネットマネージャはVMの内部で実行させることができなくなる。
インフィニバンドSR−IOVアーキテクチャモデル−仮想スイッチ(vSwitch)
図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の数が制限されてしまい、逆の場合も同様に制限される。
インフィニバンド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を認識する。
インフィニバンドSR−IOVアーキテクチャモデル−LIDが予めポピュレートされたvSwitch
一実施形態に従うと、本開示は、LIDが予めポピュレートされたvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。
図7は、一実施形態に従った、LIDが予めポピュレートされた例示的なvSwitchアーキテクチャを示す。図に示されるように、いくつかのスイッチ501〜504は、ネットワーク切替環境600(たとえばIBサブネット)内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックはホストチャネルアダプタ510、520、530などのいくつかのハードウェアデバイスを含み得る。さらに、ホストチャネルアダプタ510、520および530は、それぞれ、ハイパーバイザ511、521および531と対話することができる。各々のハイパーバイザは、さらに、ホストチャネルアダプタと共に、いくつかの仮想機能514、515、516、524、525、526、534、535および536と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン1 550はハイパーバイザ511によって仮想機能1 514に割当てることができる。ハイパーバイザ511は、加えて、仮想マシン2 551を仮想機能2 515に割当て、仮想マシン3 552を仮想機能3 516に割当てることができる。ハイパーバイザ531は、さらに、仮想マシン4 553を仮想機能1 534に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上で十分な機能を有する物理機能513、523および533を介してホストチャネルアダプタにアクセスすることができる。
一実施形態に従うと、スイッチ501〜504の各々はいくつかのポート(図示せず)を含み得る。いくつかのポートは、ネットワーク切替環境600内においてトラフィックを方向付けるためにリニアフォワーディングテーブルを設定するのに用いられる。
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521、531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して追加のノードが接続されているスイッチのように見えている。
一実施形態に従うと、本開示は、LIDが予めポピュレートされたvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。図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が予めポピュレートされていなかった場合よりも時間が長くかかる可能性がある。
インフィニバンドSR−IOVアーキテクチャモデル−動的LID割当てがなされたvSwitch
一実施形態に従うと、本開示は、動的LID割当てがなされたvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。
図8は、一実施形態に従った、動的LID割当てがなされた例示的なvSwitchアーキテクチャを示す。図に示されるように、いくつかのスイッチ501〜504は、ネットワーク切替環境700(たとえばIBサブネット)内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックは、ホストチャネルアダプタ510、520、530などのいくつかのハードウェアデバイスを含み得る。ホストチャネルアダプタ510、520および530は、さらに、ハイパーバイザ511、521および531とそれぞれ対話することができる。各々のハイパーバイザは、さらに、ホストチャネルアダプタと共に、いくつかの仮想機能514、515、516、524、525、526、534、535および536と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン1 550はハイパーバイザ511によって仮想機能1 514に割当てることができる。ハイパーバイザ511は、加えて、仮想マシン2 551を仮想機能2 515に割当て、仮想マシン3 552を仮想機能3 516に割当てることができる。ハイパーバイザ531はさらに、仮想マシン4 553を仮想機能1 534に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上において十分な機能を有する物理機能513、523および533を介してホストチャネルアダプタにアクセスすることができる。
一実施形態に従うと、スイッチ501〜504の各々はいくつかのポート(図示せず)を含み得る。いくつかのポートは、ネットワーク切替環境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限度付近で動作する際に、断片化されたネットワークの障害を回復および最適化させるための融通性が追加される。
インフィニバンドSR−IOVアーキテクチャモデル−動的LID割当てがなされかつLIDが予めポピュレートされたvSwitch
図9は、一実施形態に従った、動的LID割当てがなされてLIDが予めポピュレートされたvSwitchを備えた例示的なvSwitchアーキテクチャを示す。図に示されるように、いくつかのスイッチ501〜504は、ネットワーク切替環境800(たとえばIBサブネット)内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックはホストチャネルアダプタ510、520、530などのいくつかのハードウェアデバイスを含み得る。ホストチャネルアダプタ510、520および530は、それぞれ、さらに、ハイパーバイザ511、521および531と対話することができる。各々のハイパーバイザは、さらに、ホストチャネルアダプタと共に、いくつかの仮想機能514、515、516、524、525、526、534、535および536と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン1 550は、ハイパーバイザ511によって仮想機能1 514に割当てることができる。ハイパーバイザ511は、加えて、仮想マシン2 551を仮想機能2 515に割当てることができる。ハイパーバイザ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がともに(いずれかの所与のハイパーバイザ内で独立して、または組合わされて)利用されている、図9に示されるような一実施形態に従うと、ホストチャネルアダプタごとの予めポピュレートされたLIDの数はファブリックアドミニストレータによって定義することができ、(ホストチャネルアダプタごとに)0<=予めポピュレートされたVF<=総VFの範囲内になり得る。動的LID割当てのために利用可能なVFは、(ホストチャネルアダプタごとに)VFの総数から予めポピュレートされたVFの数を減じることによって見出すことができる。
一実施形態に従うと、多くの同様の物理的なホストチャネルアダプタが2つ以上のポートを有することができ(冗長性のために2つのポートが共用となっている)、仮想HCAも2つのポートで表わされ、1つまたは2つ以上の仮想スイッチを介して外部IBサブネットに接続され得る。
インフィニバンド−サブネット間通信(ファブリックマネージャ)
一実施形態によれば、本開示の実施形態は、単一サブネット内にインフィニバンドファブリックを提供することに加えて、2つ以上のサブネットにまたがるインフィニバンドファブリックを提供することもできる。
図10は、一実施形態による例示的なマルチサブネットインフィニバンドファブリックを示す。図に示すように、サブネットA1000内では、ある数のスイッチ1001〜1004が、サブネットA1000(例えば、IBサブネット)内において、インフィニバンドファブリックなどのファブリックのメンバ間において通信を提供することができる。ファブリックは、例えば、チャネルアダプタ1010などのある数のハードウェアデバイスを含むことができる。ホストチャネルアダプタ1010は、次いで、ハイパーバイザ1011と対話することができる。ハイパーバイザは、次いで、それが対話するホストチャネルアダプタと関連して、ある数の仮想機能1014をセットアップすることができる。ハイパーバイザは、加えて、仮想マシンを仮想機能の各々に割り当てることができ、仮想マシン1 10105が仮想機能1 1014に割り当てられるなどする。ハイパーバイザは、各ホストチャネルアダプタ上において、物理機能1013など、十分な機能を有する物理機能を介して、それらの関連付けられるホストチャネルアダプタにアクセスできる。サブネットB1040内では、ある数のスイッチ1021〜1024が、サブネットB1040(例えば、IBサブネット)内において、インフィニバンドファブリックなどのファブリックのメンバ間において通信を提供することができる。ファブリックは、例えば、チャネルアダプタ1030などのある数のハードウェアデバイスを含むことができる。ホストチャネルアダプタ1030は、次いで、ハイパーバイザ1031と対話することができる。ハイパーバイザは、次いで、それが対話するホストチャネルアダプタと関連して、ある数の仮想機能1034をセットアップすることができる。ハイパーバイザは、加えて、仮想マシンを仮想機能の各々に割り当てることができ、仮想マシン2 1035が仮想機能2 1034に割り当てられるなどする。ハイパーバイザは、各ホストチャネルアダプタ上において、物理機能1033など、十分な機能を有する物理機能を介して、それらの関連付けられるホストチャネルアダプタにアクセスできる。各サブネット(すなわち、サブネットAおよびサブネットB)内には1つのホストチャネルアダプタしか示されていないが、複数のホストチャネルアダプタおよびそれらの対応するコンポーネントを各サブネット内に含めることができることを理解されたい。
一実施形態によれば、ホストチャネルアダプタの各々は、仮想スイッチ1012および仮想スイッチ1032などの仮想スイッチにさらに関連付けることができ、各HCAは、上述したように、異なるアーキテクチャモデルでセットアップすることができる。図10内の両方のサブネットは、事前にポピュレートされたLIDアーキテクチャモデルを有するvSwitchを使用しているように示されているが、これはすべてのそのようなサブネット構成が同様のアーキテクチャモデルに従わなければならないことを意味するものではない。
一実施形態によれば、各サブネット内の少なくとも1つのスイッチはルータに関連付けられることができ、サブネットA1000内のスイッチ1002はルータ1005に関連付けられ、サブネットB1040内のスイッチ1021はルータ1006に関連付けられるなどする。
一実施形態によれば、少なくとも1つのデバイス(例えば、スイッチ、ノードなど)をファブリックマネージャ(図示せず)に関連付けることができる。ファブリックマネージャは、例えば、サブネット間ファブリックトポロジを発見し、ファブリックプロファイル(例えば、仮想マシンファブリックプロファイル)を作成し、仮想マシンファブリックプロファイルを構築するための基礎を形成する仮想マシン関連データベースオブジェクトを構築するために使用することができる。加えて、ファブリックマネージャは、どのサブネットがどのパーティション番号を使用してどのルータポートを介して通信することが許可されているかに関して、法的なサブネット間接続を定義することができる。
一実施形態によれば、サブネットA内の仮想マシン1などの発信元でのトラフィックが、サブネットB内の仮想マシン2などの異なるサブネットの宛先にアドレス指定されている場合、トラフィックはサブネットA内のルータ、すなわちルータ1005にアドレス指定され、ルータ1005は次いでそのトラフィックをルータ1006とのそれのリンクを介してサブネットBに渡すことができる。
スケーラブルなビットマップに基づくP_Keyテーブル
一実施形態によれば、仮想マシンを使用を提供された拡張されたインフィニバンドネットワークのため、可能性のあるパーティションの数が劇的に増加している。しかしながら、P_Key管理およびルーティングを扱う現在の方法では、トラフィックがファブリックを通過する際にかなりのオーバヘッド時間が追加される。従来、インフィニバンド規格では、SMが索引付けされたテーブルとしてアクセスできる16ビットのP_Key値の配列として、P_Keyテーブルを定義している。この規格のハードウェア実現例は、ワイヤ速度パケットレートでIBパケットのパーティションチェックを実行するためにルックアップを実行するために連想メモリを使用することを意味する。実際には、これはハードウェアにより実現されるP_Keyテーブルの可能なサイズを、16ビットのP_Key値が表す64K値空間よりも桁違いに小さく制限する。
一実施形態によれば、インフィニバンド規格は、パーティションメンバシップを16ビットP_Keyを介して定義し、ファブリック内の各ポートでP_Key値の固定テーブルを使用してパーティション分離を実施する。サブネットマネージャは、異なるテーブルエントリで異なるP_Key値をプログラミングできる。そのパーティション関連付けに基づいてP_Keyでそのヘッダにおいてマークされたパケットがポートに到着すると、下位のハードウェアは、入来するパケットを、チェックするハードウェアに関連付けられるP_Keyテーブル内のすべての値と比較することができる(すなわち、テーブルで連想ルックアップを実行する)。しかしながら、このルックアップは多数のパーティションではうまくスケーリングせず、テーブル内である数のパーティション上でルックアップを実行している間に不要なオーバヘッドが発生する可能性がある。
図11は、一実施形態による、パーティション分離のための連想テーブルを有する例示的なインフィニバンドファブリックを示す。図11に示すように、1つ以上のエンドノード1141〜1144を、ネットワークファブリック1100において接続することができる。ネットワークファブリック1100は、複数のリーフスイッチ1111〜1114と、複数のスパインスイッチまたはルートスイッチ1131〜1134とを含む、ファットツリートポロジに基づくことができる。加えて、ネットワークファブリック1100は、スイッチ1121〜1124のような1つ以上の中間スイッチを含むことができる。また、図11に示すように、エンドノード1141〜1144の各々はマルチホームノードであってもよい。
一実施形態によれば、ノード1141〜1144の各々は、ある数のパーティションのうちの1つ以上に属することができ、各パーティションは、あるP_Key値に関連付けられる。上述したように、P_Key値は、ファブリック内で送信される各パケットに含めることができ、サブネット内におけるパーティション実施の程度を変化させることができる。P_Key値の各々は、ある数のテーブル、例えばテーブル1101〜1108(ここでは「ポートP_Keyテーブル」とも呼ばれる)に格納され、各テーブルは、例えば、スイッチのポート、またはホストノードに属するHCAポートなど、ファブリックの他のメンバのポートに関連付けられる。各テーブル1101〜1108は、サブネットマネージャによって設定することができる。
一実施形態によれば、各ポートP_Keyテーブルは、各エントリが16ビットP_Key値を含むことができるN個のエントリの配列を含むことができ、Nの値は、(ポートのステータスおよび能力を発見する一環としてSMによって検索される)ポートの能力である。ポートがパーティションのメンバであるはずである(つまり、フルまたは制限付き)ことを意味するポリシー情報をSMがポートが持っている場合、SMはポートP_Keyテーブルにおいて次に利用可能なエントリを見つけて、関連する16ビットP_Key値をそのエントリに格納できる。P_Key値が成功裡に格納される(SMAによってSMに確認される)と、SMは、ポートハードウェアがポートを通過するすべてのパケットについて新たなP_Keyテーブルエントリの一致を含むことを予期することができ、パケットP_Key値が更新されたP_Keyテーブルエントリにおける新たな値と一致するパケットを受け入れる(すなわち、ポートを通過させる)ことができる。
一実施形態によれば、サブネット内のポートがもはやパーティションのメンバではないと想定される場合、SMは関連するP_Keyテーブルエントリをクリアする(0を書き込む)ことができる。P_Key値が成功裡にクリアされる(SMAによってSMに確認される)と、SMは、ポートハードウェアが、丁度ポートP_Keyテーブルからクリアされたものに対応するパケットP_Key値を有する、そのポートを通過するすべてのパケットについてP_Key一致に失敗することを予期し得、次いでパケットをドロップし得る。
一実施形態によれば、SMは、既存の値を最初にクリアすることなく、有効なP_Keyテーブルエントリを新たな値と置き換えることができる。この場合の期待される効果は、エントリの内容が最初にクリアされ、次いでその後新たな値で更新された場合と同じである。
すでに説明したように、図11に示す実施形態は、多数のパーティションを持たないサブネットの範囲内で十分にスケーリングすることができる。しかしながら、例えば、エンドノードおよび1つ以上のvSwitchアーキテクチャの仮想化を利用するサブネットなど、任意の所与のサブネット内に多数のパーティションが存在すると、上述の連想テーブルルックアップはオーバヘッド時間の大幅な増加を招き得、IB規格によって規定された関連するリンク速度要件が満たされるべきである場合、ハードウェアで実現することが可能でさえないかもしれない。
一実施形態によれば、IBファブリック内の各ポートに関連付けられるP_Keyテーブルを利用する代わりに、例示的な方法およびシステムは、ビットマップを利用して、可能なすべてのP_Key値の表現、‐16ビット(すなわち64kの可能な値)をハードウェアにおいて実現できる。そのような方法およびシステムでは、ハードウェア実現例内において、各可能なP_Key値を単一ビットとして表現することができ、単一ビットの値(例えば、1または0)は、P_Key値が許可される(すなわち、パケットは、パーティションチェックを実行するポートを通過することを許可される)か、またはポートに関連付けられない(すなわち、IBパケットは、次いで、IB規格によって規定された関連するポートタイプについてのP_Key実施規則に従ってそのパーティション番号に対する制限付きおよびフルメンバエントリの両方についてのビットマップエントリとパケットP_Keyを相関させることに基づいて、パーティション実施規則に従ってチェックされ得る)かを定義できる。
図12は、一実施形態による、パーティション分離のためのビットマップを有する例示的なインフィニバンドファブリックを示す。図12に示すように、1つ以上のエンドノード1241〜1244を、ネットワークファブリック1200において接続することができる。ネットワークファブリック1200は、複数のリーフスイッチ1211〜1214と、複数のスパインスイッチまたはルートスイッチ1231〜1234とを含む、ファットツリートポロジに基づくことができる。加えて、ネットワークファブリック1200は、スイッチ1221〜1224のような1つ以上の中間スイッチを含むことができる。また、図12に示すように、エンドノード1241〜1244の各々はマルチホームノードであってもよい。
一実施形態によれば、ノード1241〜1244の各々は、ある数のパーティションのうちの1つ以上に属することができ、各パーティションは、あるP_Key値に関連付けられる。上述したように、P_Key値は、ファブリック内で送信される各パケットに含めることができ、サブネット内におけるパーティション実施の程度を変化させることができる。各P_Key値は、ビットマップ1201〜1208のようなある数のビットマップで参照することができ、各ビットマップは、例えば、スイッチのポート、またはホストノードに属する(関連付けられる)HCAポートなど、ファブリックの他のメンバのポートに関連付けられる。各ビットマップ1201〜1208は、サブネットマネージャによって設定することができる。
一実施形態によれば、P_Keyを連想テーブルルックアップの代わりにビットマップで表すことにより、これにより、柔軟性が増大し、ファブリックにおけるパーティション分離およびパケットルーティングのオーバヘッド時間が短縮できる。どのノードも任意のパーティションのメンバになることができる。これにより、任意のスイッチポートが、SMが構成したP_Keyだけをそのスイッチポートを介して許可されるようにすることができる(そうでない場合、パケットはドロップされ得る)。ビットマップに基づくP_Keyテーブルを利用することにより、方法およびシステムはほんのわずかな数のパーティションまたは数百のものを許容することができる。そのような方法およびシステムは、スイッチを通過することになっているパーティションのみを許可することを確実にすることができる。このような方法およびシステムは、より多くの数のパーティションが利用可能であっても、より大きなパーティション分離を可能にすることができる。
一実施形態によれば、ビットマップスキームを使用することにより、P_Key値の連想ルックアップを有する代わりに、ハードウェアはパケットヘッダからP_Key値を取ることができ、連想ルックアップ機構に値を送る代わりに、P_Key値を取り、それを(例えば、64Kビットの)ビット配列に索引付する。次いで、IBパケットが、IB規格によって規定された関連するポートタイプについてのP_Key実施規則に従ってそのパーティション番号に対する制限付きおよびフルメンバエントリの両方についてのビットマップエントリとパケットP_Keyを相関させることに基づいて、パーティション実施規則に従ってチェックされ得る。これは、例えば、スケーリングの増加(すなわち、パフォーマンスの損失なしにより多数のパーティションP_Keyを可能にすること)に至り得る。
一実施形態によれば、上述のビットマップスキームは、エンドノードでパーティション分離を実施することに加えて、エンドノードに向けて接続されるポートに対する第1のリーフスイッチ、第1のリーフスイッチとルートスイッチとの間の任意のスイッチ、および最後のリーフスイッチなど、中間スイッチでパーティション実施を追加的にサポートすることができる。スイッチからスイッチへのリンクが、ファブリックのルーティングに応じて、多くの異なるノードによって使用される。従来のシステムでは、パーティション実施は主にエンドノード上で使用され、エンドノードに直接接続されるポートに対する最後のリーフスイッチで実施されたかも知れないが、リーフスイッチよりも高いレベルでのスイッチでは実施されない(つまり、パーティション実施はスイッチ間のリンク上では使用されなかった)。しかしながら、許可されたP_Keyおよび許可されていないP_Keyに関連付けられるパーティションビットマップを使用することで得られる速度および効率により、パーティション実施がこれらの中間リンクで起こり得る。各スイッチポートは許可されているパーティションがそのポートを介して送信されることを許すにすぎないことを確実にすることによって、中間リンクで通過できないポートに遭遇するパケットは、(エンドノードまたはリーフスイッチにおける代わりに)はるかによりすぐにドロップされ得、最終的にドロップされるパケットに対するリンク帯域幅使用率に関してパフォーマンスの低下を少なくすることができる。
一実施形態によれば、SMは、パーティションに応じて、完全なファブリックのどこでどのトラフィックがルーティングされることが許可されるかを、ビットマップで判断して設定することができる。SMは、次いで、ビットマップを使用してパーティション実施をセットアップできる。SMは、どのエンドノードがどのパーティションのメンバであるかに関するポリシー構成を受信することができる。このポリシー情報に基づいて、(ビットマップを介して)SMはエンドノード上でパーティション実施を設定できる。SMは、接続を切り替えるようにスイッチを構成することもできる。これを行った後、SMはビットマップを使用してファブリック内のトラフィックフローを制限できる。SMは、ビットマップ内のパーティション毎の値を1または0、パスまたはドロップ(すなわち、許可する、または許可しない)にセットする。これにより、許可されていないトラフィックを、宛先ノードまたは宛先ノードの前の最後のリーフスイッチにおいてではなく、トラフィックのルーティングにおいて早期にドロップできる。
一実施形態によれば、各ビットマップは、各ポートに対するP_Key実施のための64Kビット配列を含むビット配列とすることができる。このようなビットマップは、任意の種類のIBポート:スイッチ外部ポート、スイッチ管理ポート(すなわち、スイッチポート0)、TCAポート(例えば、IBイーサネット(登録商標)ブリッジ/ゲートウェイノード実装用)、HCAポートおよびルータポートに関連付けられ得る。次いで、IBパケットを、IB規格によって規定された関連するポートタイプについてのP_Key実施規則に従ってそのパーティション番号に対する制限付きおよびフルメンバエントリの両方についてのビットマップエントリとパケットP_Keyを相関させることに基づいて、パーティション実施規則に従ってチェックし得る。
一実施形態によれば、単一のパーティション番号を2つのビット配列索引に関連付けることができ、1つは制限付きメンバシップを表すものであり、1つはフルメンバシップを表すものである。したがって、ポートがフルメンバシップのみを表すか、フルおよび制限付きメンバシップの両方を表すと考えられるかに応じて、フルメンバ索引のみまたはフルおよび制限付きメンバ索引の両方を設定して、対応するメンバシップトラフィックを許可する必要がある。しかしながら、制限付きパーティションメンバが別の制限付きメンバと通信することが許可されていない一方で、フルメンバがフルメンバおよび制限付きメンバの両方と通信することが許可されているという事実のため、ルックアップ実装はこれを考慮し、パケットを開始しているエンドノードが、制限付きメンバのパケットを、それがパーティションの制限付きメンバであるにすぎない場合に送信することが許可されるにすぎず、しかしながら、それは、対応して、フルメンバパケットを受信することが許可されるにすぎないことになるようにしなければならない。
図13は、一実施形態による、高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするための方法のフローチャートである。
ステップ1310において、パケットは、送信元(例えば、送信元ノードまたは送信元仮想マシン)から発信され、宛先(例えば、宛先ノードまたは宛先仮想マシン)に宛てられ得る。パケットは、他の情報の中でもとりわけ、送信元と宛先との間の共通パーティションなどのパーティション情報に対応するP_Key値を含むことができるヘッダを含むことができる。
ステップ1320において、パケットは、算出されたルートに沿ってインフィニバンドファブリックのようなファブリックを横断することを開始できる。ルートは、例えば、サブネットマネージャによって算出することができる。
ステップ1330において、パケットは、ファブリック内のルーティングされた経路に沿ってスイッチのアドレス指定されたポートに到達することができる。
ステップ1340で、アドレス指定されたポートが位置するスイッチは、パケットP_Keyをビットマップの内容と照合することができる(すなわち、IBパケットは、IB規格によって規定された関連するポートタイプについてのP_Key実施規則に従ってそのパーティション番号に対する制限付きおよびフルメンバエントリの両方についてのビットマップエントリとパケットP_Keyを相関させることに基づいて、パーティション実施規則に従ってチェックされ得る)。
ステップ1350で、チェックの結果が「許可」である場合、これは、パケットがルーティングされた経路に沿って宛先へ(DLID)進むことを許可する。
ステップ1360で、チェックの結果が「不許可」である場合、スイッチはアドレス指定されたポートでパケットをドロップし、パケットがルーティングされた経路に沿って進まないようにすることができる。
図13に示され、上述された実施形態は、ファブリック内の1つのスイッチのみでのパケットP_Keyのチェックを開示するが、ルーティングされた経路に沿った各スイッチおよびノードは、各アドレス指定されたポートで関連付けられるビットマップを使用してP_Keyのチェックを実行して、パケットが許可されているかいないかを判断することができることが理解されるべきである。
ビットマップに基づくHW実現例を使用する構成可能なレガシーP_Keyテーブル抽象化
一実施形態によれば、上記のビットマップに基づく実現例は、レガシーサブネットマネージャ実現例によって直接使用することができないという点で問題がある。これは、インフィニバンド規格(インフィニバンド(登録商標)トレード・アソシエーション・アーキテクチャ規格、第1巻、バージョン1.3(2015年3月リリース))で定義されているサブネットマネージャなどの、現在定義されている管理エンティティが、ビットマップに基づくP_Key実現例と対話するように定義されていないためであり、それらは、代わりに、IB規格によって定義されたレガシーP_Keyテーブルに基づくスキームと対話するように定義される。
一実施形態によれば、DRAMにおけるマッピングテーブルを、マッピングテーブルを実装するソフトウェアベースのSMAの使用によって達成することができる。このマッピングテーブルを用いて、ビットマップに基づくP_Keyテーブルのレガシー準拠のビューを提供することが可能である。そのようなレガシー準拠のビューは、仮想P_Keyテーブル、または構成可能なレガシーP_Keyテーブル抽象化と呼ぶことができる。
一実施形態によれば、仮想P_Keyテーブルのサイズは、その目的のために割り当てられ得るDRAMの量によって制限される。特定の実施形態では、アクセス可能なDRAMの量は、仮想P_Keyテーブルに関連付けられるスイッチまたは他のデバイス(エンドノードなど)内に含まれる。ある実施形態では、DRAMの外部ソースを利用して、より大きな仮想P_Keyテーブルを管理エンティティによってアクセス可能にすることができる。
一実施形態によれば、各仮想P_Keyテーブルは、構成パラメータ(またはヘッダファイル定数)で定義されたサイズを有することができ、関連するSMA属性インスタンスに関連付けられる対応するメモリデータ構造(例えば、埋め込みプロセッササブシステムメモリデータ構造(EPS))によって実現することができる。
一実施形態によれば、管理エンティティ(例えば、サブネットマネージャ)が現在クリアされている(値ゼロを含む)(仮想の)P_KeyテーブルエントリにP_Key値を格納する度毎に、SMA実現例はHWアクセスを呼び出して、P_Key値によって索引付けされたHWビット配列を1にセットでき、次いで、仮想P_Keyテーブルエントリ(例えば、EPSメモリデータ構造)を更新して、SMによって指定されるP_Keyテーブルエントリ番号が指定されたP_Key値を含むようにすることができる。
一実施形態によれば、SMが仮想P_KeyテーブルにおけるエントリからP_Key値をクリアする度毎に、SMA実現例はメモリデータ構造からの古いP_Key値を使用し、次いで、仮想P_Keyテーブルエントリ(すなわち、EPSメモリデータ構造)もクリアされる前に、対応するHWビット配列索引をHWアクセスインターフェイスを介してクリアすることができる。
一実施形態によれば、SMが、現在クリアされていない(仮想)P_Keyテーブルエントリに新たなP_Key値を書き込む度毎に、SMA実現例はまずEPSメモリデータ構造からの古いP_Key値を使用し、次いで、対応するHWビット配列索引をHWアクセスインターフェイスを介してクリアすることができる。古い値がクリアされた後、SMA実現例は、新たに追加されたP_Key値に対応するビット配列エントリを設定し、次いで、メモリデータ構造を更新して、指定されたP_Keyテーブルエントリが指定されたP_Key値を含むようにすることができる。
図14は、一実施形態による、パーティション分離のためのビットマップと、レガシー管理エンティティのためのP_Key抽象化とを有する例示的なファブリックを示す。図に示す実施形態では、スイッチ1400は、ある数のポート1420を備えることができ、これらのポートの各々は、上述したように、P_Key実施のためのビットマップに基づくP_Keyテーブル1410に関連付けることができる。スイッチ1400は、加えて、メモリ(例えばDRAM)1430を備えることができる。
一実施形態によれば、サブネットマネージャ1440(例えばレガシーサブネットマネージャ)は、ビットマップに基づくP_Keyテーブル1410を照会/設定することができないことがあり得る。このような状況において、スイッチのメモリ1430内にP_Keyテーブル抽象化1450(すなわち「仮想P_Keyテーブル」)を設けることができる。次いで、サブネットマネージャは、サブネットマネージャが連想メモリ/ルックアップに基づいてレガシーP_Keyテーブルと対話するであろうのと同じ態様で、仮想P_Keyテーブルを照会し、それと対話することができる。より具体的には、SM1440は、スイッチ1400に関連付けられるSMA1441とインターフェイスすることができる。このインターフェイスは、P_Key管理のために、IB規格で定義されたSMA属性および方法を利用することができるため、SMは基礎となる実装についての知識がない。
一実施形態によれば、仮想P_Keyテーブルに含まれる各P_Keyは16ビットを含むため、そして仮想P_Keyテーブルに含まれるべき可能性のあるP_Key値の数(すなわち、最大64KP_Keyまで)のため、仮想P_Keyテーブルのサイズは、スイッチに含まれる、および/またはスイッチによって仮想P_Keyテーブルに割り当てられるメモリ1430の量によって制限され得る。例えば、36ポートスイッチの各ポートについて64KP_Keyを表現するには、必要なメモリサイズは4メガバイトより大きくなり得る。
図15は、一実施形態による、パーティション分離のためのビットマップと、レガシー管理エンティティのためのP_Key抽象化とを有する例示的なファブリックを示す。図に示す実施形態では、スイッチ1400は、ある数のポート1420を備えることができ、これらのポートの各々は、上述したように、P_Key実施のためのビットマップに基づくP_Keyテーブル1410に関連付けることができる。外部メモリ1530は、スイッチ1400によってアクセス可能である。
一実施形態によれば、サブネットマネージャ1440(例えばレガシーサブネットマネージャ)は、ビットマップに基づくP_Keyテーブル1410を照会/設定することができないことがあり得る。このような状況において、外部メモリ1530内にP_Keyテーブル抽象化1450(すなわち「仮想P_Keyテーブル」)を設けることができる。次いで、サブネットマネージャは、サブネットマネージャが連想メモリ/ルックアップに基づいてレガシーP_Keyテーブルと対話するであろうのと同じ態様で、仮想P_Keyテーブルを照会し、それと対話することができる。より具体的には、SM1440は、スイッチ1400に関連付けられるSMA1441とインターフェイスしてそのような照会を実行することができる。このインターフェイスは、P_Key管理のために、IB規格で定義されたSMA属性および方法を利用することができるため、SMは基礎となる実装についての知識がない。
一実施形態によれば、仮想P_Keyテーブルに含まれる各P_Keyは16ビットを含むため、そして仮想P_Keyテーブルに含まれるべき可能性のあるP_Key値の数(すなわち、最大64KP_Keyまで)のため、仮想P_Keyテーブルのサイズは、外部メモリ1530の量によって制限され得る。上述した状況とは異なり、外部メモリは、しばしば、スイッチ自体に含まれるメモリの量よりもはるかに大きくなり得る。そのような状況では、仮想P_Keyテーブルの潜在的なサイズは、図14に関して上述したものよりもはるかに大きい。そのような場合、たとえば、各スイッチポートに対して64KのP_Keyを表現することが可能であろう。
図16は、一実施形態による、高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするための方法のフローチャートである。ステップ1610において、この方法は、1つ以上のマイクロプロセッサを含む1つ以上のコンピュータに少なくとも1つのサブネットを提供することができ、少なくとも1つのサブネットは1つ以上のスイッチを含み、1つ以上のスイッチは少なくともリーフスイッチを含み、1つ以上のスイッチの各々は、複数のスイッチポートを含み、少なくとも1つのサブネットはさらに、複数のホストチャネルアダプタを含み、各ホストチャネルアダプタは、少なくとも1つのホストチャネルアダプタポートを含み、少なくとも1つのサブネットはさらに、複数のエンドノードを含み、複数のエンドノードの各々は、複数のホストチャネルアダプタのうちの少なくとも1つのホストチャネルアダプタに関連付けられる。
ステップ1620において、この方法は、複数の物理ホストおよび仮想マシンの各々を複数のパーティションの少なくとも1つに関連付けることができ、複数のパーティションの各々はP_Key値に関連付けられる。
ステップ1630において、この方法は、スイッチポートの各々を、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることができる。
ステップ1640において、この方法は、ホストチャネルアダプタポートの各々を、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることができる。
図17は、一実施形態による、高性能コンピューティング環境においてビットマップに基づくハードウェア実現例を使用してレガシーP_Keyテーブル抽象化をサポートするための方法のフローチャートである。この方法は、1つ以上のマイクロプロセッサを含む1つ以上のコンピュータに少なくとも1つのサブネットを提供することができ、少なくとも1つのサブネットは、1つ以上のスイッチを含み、1つ以上のスイッチは少なくともリーフスイッチを含み、1つ以上のスイッチの各々は、複数のスイッチポートを含み、少なくとも1つのサブネットはさらに、複数のホストチャネルアダプタを含み、各ホストチャネルアダプタは、少なくとも1つのホストチャネルアダプタポートを含み、複数のホストチャネルアダプタは1つ以上のスイッチを介して相互接続され、少なくとも1つのサブネットはさらに、複数のエンドノードを含み、複数のエンドノードの各々は、複数のホストチャネルアダプタのうちの少なくとも1つのホストチャネルアダプタに関連付けられ、少なくとも1つのサブネットはさらに、複数の仮想マシンを含み、複数の仮想マシンの各々は少なくとも1つ仮想機能に関連付けられる。
ステップ1720において、この方法は、複数のエンドノードの各々を複数のパーティションの少なくとも1つに関連付けることができ、複数のパーティションの各々はP_Key値に関連付けられる。
ステップ1730において、この方法は、1つ以上のスイッチのスイッチポートの各々を、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることができる。
ステップ1740において、この方法は、ホストチャネルアダプタポートの各々を、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることができる。
ステップ1750において、この方法は、複数のビットマップに基づくP_Keyテーブルの各々を、仮想P_Keyテーブルに関連付けることができる。
一実施形態によれば、高性能コンピューティング環境においてビットマップに基づくハードウェア実現例を使用してレガシーP_Keyテーブル抽象化をサポートするためのシステムは、1つ以上のマイクロプロセッサと、少なくとも1つのサブネットとを備え、少なくとも1つのサブネットは、1つ以上のスイッチを含み、1つ以上のスイッチは少なくともリーフスイッチを含み、1つ以上のスイッチの各々は、複数のスイッチポートを含み、少なくとも1つのサブネットはさらに、複数のホストチャネルアダプタを含み、各ホストチャネルアダプタは、少なくとも1つのホストチャネルアダプタポートを含み、少なくとも1つのサブネットはさらに、複数のエンドノードを含み、複数のエンドノードの各々は、複数のホストチャネルアダプタのうちの少なくとも1つのホストチャネルアダプタに関連付けられ、複数のエンドノードの各々は、複数のパーティションのうちの少なくとも1つに関連付けられ、複数のパーティションの各々は、P_Key値に関連付けられ、スイッチポートのうちの1つ以上は、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けられ、ホストチャネルアダプタポートのうちの1つ以上は、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けられ、複数のビットマップに基づくP_Keyテーブルの各々は、仮想P_Keyテーブルに関連付けられる。
一実施形態によれば、上記のシステムは、さらに、複数のエンドノードの1つを介して動作するサブネットマネージャをさらに備え、サブネットマネージャは、1つ以上のスイッチの各々上の複数のポートを通る許可されたトラフィックおよび許可されないトラフィックを判断する。
一実施形態によれば、上記のシステムにおいて、サブネットマネージャは、関連付けられる仮想P_Keyテーブルを介して、1つ以上のスイッチの各々上の複数のポートの各々を通る許可されたトラフィックおよび許可されないトラフィックの判断に基づいて、ビットマップに基づくP_Keyテーブルの各々を構成する。
一実施形態によれば、上記システムにおいて、仮想P_Keyテーブルの各々は、それぞれのスイッチおよびホストチャネルアダプタにおいてメモリ上にホストされる。
一実施形態によれば、上記システムにおいて、各仮想P_Keyテーブルは、それぞれのスイッチおよびホストチャネルアダプタにおけるメモリ量に基づいてサイズが制限される。
一実施形態によれば、上記のシステムにおいて、各仮想P_Keyテーブルは、それぞれのスイッチおよびホストチャネルアダプタから外部のメモリ上にホストされる。
一実施形態によれば、上記のシステムは、2つ以上のサブネットを備え、2つ以上のサブネットの各々は、2つ以上のサブネットの各々における少なくとも1つのルータポートによって相互接続される。
一実施形態によれば、高性能コンピューティング環境においてビットマップに基づくハードウェア実装を使用してレガシーP_Keyテーブル抽象化をサポートするための方法は、1つ以上のマイクロプロセッサを含む1つ以上のコンピュータにおいて、少なくとも1つのサブネットを提供することを備え、少なくとも1つのサブネットは、1つ以上のスイッチを含み、1つ以上のスイッチは少なくともリーフスイッチを含み、1つ以上のスイッチの各々は、複数のスイッチポートを含み、少なくとも1つのサブネットはさらに、複数のホストチャネルアダプタを含み、各ホストチャネルアダプタは、少なくとも1つのホストチャネルアダプタポートを含み、少なくとも1つのサブネットはさらに、複数のエンドノードを含み、複数のエンドノードの各々は、複数のホストチャネルアダプタのうちの少なくとも1つのホストチャネルアダプタに関連付けられ、方法はさらに、複数のエンドノードの各々を複数のパーティションの少なくとも1つに関連付けることを備え、複数のパーティションの各々はP_Key値に関連付けられ、方法はさらに、1つ以上のスイッチポートの各々を、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることと、ホストチャネルアダプタポートの各々を、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることと、複数のビットマップに基づくP_Keyテーブルの各々を、仮想P_Keyテーブルに関連付けることとを備える。
一実施形態によれば、上記の方法はさらに、1つ以上のマイクロプロセッサを含む1つ以上のコンピュータにおいて、複数のエンドノードの1つを介して動作するサブネットマネージャを提供することと、サブネットマネージャによって、1つ以上のスイッチの各々上の複数のポートを通る許可されたトラフィックおよび許可されないトラフィックを判断することとをさらに備える。
一実施形態によれば、上記の方法はさらに、サブネットマネージャによって、関連付けられる仮想P_Keyテーブルを介して、1つ以上のスイッチの各々上の複数のポートの各々を通る許可されたトラフィックおよび許可されないトラフィックの判断に基づいて、ビットマップに基づくP_Keyテーブルの各々を構成することをさらに備える。
一実施形態によれば、上記の方法において、仮想P_Keyテーブルの各々は、それぞれのスイッチおよびホストチャネルアダプタにおいてメモリ上にホストされる。
一実施形態によれば、上記の方法において、各仮想P_Keyテーブの各々は、それぞれのスイッチおよびホストチャネルアダプタにおけるメモリ量に基づいてサイズが制限される。
一実施形態によれば、上記の方法において、仮想P_Keyテーブルの各々は、それぞれのスイッチおよびホストチャネルアダプタから外部のメモリ上にホストされる。
一実施形態によれば、上記の方法において、1つ以上のサブネットは、2つ以上のサブネットを備え、2つ以上のサブネットの各々は、2つ以上のサブネットの各々における少なくとも1つのルータによって相互接続される。
一実施形態によれば、高性能コンピューティング環境においてビットマップに基づくハードウェア実装を使用してレガシーP_Keyテーブル抽象化をサポートするための命令をそこに記憶して含む、非一時的なコンピュータ可読記憶媒体であって、命令は、1つ以上のコンピュータによって読み取られ実行されると、1つ以上のコンピュータに、1つ以上のマイクロプロセッサを含む1つ以上のコンピュータに少なくとも1つのサブネットを提供することを含むステップを実行させ、少なくとも1つのサブネットは、1つ以上のスイッチを含み、1つ以上のスイッチは少なくともリーフスイッチを含み、1つ以上のスイッチの各々は、複数のスイッチポートを含み、少なくとも1つのサブネットはさらに、複数のホストチャネルアダプタを含み、各ホストチャネルアダプタは、少なくとも1つのホストチャネルアダプタポートを含み、少なくとも1つのサブネットはさらに、複数のエンドノードを含み、複数のエンドノードの各々は、複数のホストチャネルアダプタのうちの少なくとも1つのホストチャネルアダプタに関連付けられ、命令は、さらに、1つ以上のコンピュータによって読み取られ実行されると、1つ以上のコンピュータに、複数のエンドノードの各々を複数のパーティションの少なくとも1つに関連付けることを含むステップを実行させ、複数のパーティションの各々はP_Key値に関連付けられ、命令は、さらに、1つ以上のコンピュータによって読み取られ実行されると、1つ以上のコンピュータに、1つ以上のスイッチポートの各々を、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることと、ホストチャネルアダプタポートの各々を、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることと、複数のビットマップに基づくP_Keyテーブルの各々を、仮想P_Keyテーブルに関連付けることとを含むステップを実行させる。
一実施形態によれば、上記の非一時的なコンピュータ可読記憶媒体において、上記のステップは、さらに、1つ以上のマイクロプロセッサを含む1つ以上のコンピュータにサブネットマネージャを提供することを含み、サブネットマネージャは複数のエンドノードの1つを介して動作し、上記ステップはさらに、サブネットマネージャによって、1つ以上のスイッチの各々上の複数のポートを通る許可されたトラフィックおよび許可されないトラフィックを判断することとを含む。
一実施形態によれば、上記の非一時的なコンピュータ可読記憶媒体において、上記のステップは、さらに、サブネットマネージャによって、関連付けられる仮想P_Keyテーブルを介して、1つ以上のスイッチの各々上の複数のポートの各々を通る許可されたトラフィックおよび許可されないトラフィックの判断に基づいて、ビットマップに基づくP_Keyテーブルの各々を構成することをさらに含む。
一実施形態によれば、上記の非一時的なコンピュータ可読記憶媒体において、仮想P_Keyテーブルの各々は、それぞれのスイッチおよびホストチャネルアダプタにおいてメモリ上にホストされる。
一実施形態によれば、上記の非一時的なコンピュータ可読記憶媒体において、各仮想P_Keyテーブの各々は、それぞれのスイッチおよびホストチャネルアダプタにおけるメモリ量に基づいてサイズが制限される。
一実施形態によれば、上記の非一時的なコンピュータ可読記憶媒体において、仮想P_Keyテーブルの各々は、それぞれのスイッチおよびホストチャネルアダプタから外部のメモリ上にホストされる。
一実施形態によれば、コンピュータプログラムは、コンピュータシステムによって実行されると、コンピュータシステムに上記の方法を実行させる、機械可読フォーマットにおけるプログラム命令を含む。
一実施形態によれば、非一時的な機械可読データ記憶媒体に記憶される上記のコンピュータプログラムを備えるコンピュータプログラム製品。
本発明の多くの特徴は、ハードウェア、ソフトウェア、ファームウェアまたはそれらの組合せにおいて、それらを用いて、またはそれらの支援により、実行可能である。したがって、本発明の特徴は、(たとえば、1つ以上のプロセッサを含む)処理システムを用いて実現され得る。
この発明の特徴は、ここに提示された特徴のうちのいずれかを行なうように処理システムをプログラミングするために使用可能な命令を格納した記憶媒体またはコンピュータ読取り可能媒体であるコンピュータプログラム製品において、それを使用して、またはその助けを借りて実現され得る。記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリ装置、磁気カードもしくは光カード、ナノシステム(分子メモリICを含む)、または、命令および/もしくはデータを格納するのに好適な任意のタイプの媒体もしくは装置を含み得るものの、それらに限定されない。
この発明の特徴は、機械読取り可能媒体のうちのいずれかに格納された状態で、処理システムのハードウェアを制御するために、および処理システムがこの発明の結果を利用する他の機構とやり取りすることを可能にするために、ソフトウェアおよび/またはファームウェアに取込まれ得る。そのようなソフトウェアまたはファームウェアは、アプリケーションコード、装置ドライバ、オペレーティングシステム、および実行環境/コンテナを含み得るものの、それらに限定されない。
この発明の特徴はまた、たとえば、特定用途向け集積回路(application specific integrated circuit:ASIC)などのハードウェアコンポーネントを使用して、ハードウェアにおいて実現されてもよい。ここに説明された機能を行なうようにハードウェアステートマシンを実現することは、関連技術の当業者には明らかであろう。
加えて、この発明は、この開示の教示に従ってプログラミングされた1つ以上のプロセッサ、メモリおよび/またはコンピュータ読取り可能記憶媒体を含む、1つ以上の従来の汎用または特殊デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを使用して都合よく実現され得る。ソフトウェア技術の当業者には明らかであるように、この開示の教示に基づいて、適切なソフトウェアコーディングが、熟練したプログラマによって容易に準備され得る。
この発明のさまざまな実施形態が上述されてきたが、それらは限定のためではなく例示のために提示されたことが理解されるべきである。この発明の精神および範囲から逸脱することなく、形状および詳細のさまざまな変更を行なうことができることは、関連技術の当業者には明らかであろう。
この発明は、特定された機能およびそれらの関係の実行を示す機能的構築ブロックの助けを借りて上述されてきた。説明の便宜上、これらの機能的構築ブロックの境界は、この明細書中ではしばしば任意に規定されてきた。特定された機能およびそれらの関係が適切に実行される限り、代替的な境界を規定することができる。このため、そのようないかなる代替的な境界も、この発明の範囲および精神に含まれる。
この発明の前述の説明は、例示および説明のために提供されてきた。それは、網羅的であるよう、またはこの発明を開示された形態そのものに限定するよう意図されてはいない。この発明の幅および範囲は、上述の例示的な実施形態のいずれによっても限定されるべきでない。多くの変更および変形が、当業者には明らかになるだろう。これらの変更および変形は、開示された特徴の関連するあらゆる組合せを含む。実施形態は、この発明の原理およびその実用的応用を最良に説明するために選択され説明されたものであり、それにより、考えられる特定の使用に適したさまざまな実施形態についての、およびさまざまな変更例を有するこの発明を、当業者が理解できるようにする。この発明の範囲は、請求項およびそれらの同等例によって定義されるよう意図されている。

Claims (22)

  1. 高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムであって、
    1つ以上のマイクロプロセッサと、
    少なくとも1つのサブネットとを備え、前記少なくとも1つのサブネットは、
    1つ以上のスイッチを含み、前記1つ以上のスイッチは少なくともリーフスイッチを含み、前記1つ以上のスイッチの各々は、複数のスイッチポートを含み、前記少なくとも1つのサブネットはさらに、
    複数のホストチャネルアダプタを含み、各ホストチャネルアダプタは、少なくとも1つのホストチャネルアダプタポートを含み、前記少なくとも1つのサブネットはさらに、
    複数のエンドノードを含み、前記複数のエンドノードの各々は、前記複数のホストチャネルアダプタのうちの少なくとも1つのホストチャネルアダプタに関連付けられ、
    前記複数のエンドノードの各々は、複数のパーティションのうちの少なくとも1つに関連付けられ、
    前記複数のパーティションの各々は、P_Key値に関連付けられ、
    前記複数のスイッチポートのうちのあるスイッチポートは、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けられ、
    前記複数のホストチャネルアダプタポートのうちのあるホストチャネルアダプタポートは、前記複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けられる、システム。
  2. 前記1つ以上のスイッチの1つまたは前記複数のホストチャネルアダプタの1つで実行されるサブネットマネージャをさらに備え、
    前記サブネットマネージャは、前記1つ以上のスイッチの各々上の複数のポートを通る許可されたトラフィックおよび許可されないトラフィックを判断する、請求項1に記載のシステム。
  3. 前記サブネットマネージャは、前記1つ以上のスイッチの各々上の複数のポートの各々を通る許可されたトラフィックおよび許可されないトラフィックの前記判断に基づいて、前記ビットマップに基づくP_Keyテーブルの各々を構成する、請求項2に記載のシステム。
  4. 前記1つ以上のスイッチのうちのあるスイッチが、P_Key値を含む少なくともヘッダを含むパケットを、アドレス指定されたポートで受信すると、前記1つ以上のスイッチのうちの前記あるスイッチは、許可されたまたは許可されないインジケータを受信するよう、前記パケットの前記ヘッダに含まれる前記P_Key値を、関連付けられるビットマップに基づくP_Key値で索引付けする、請求項1に記載のシステム。
  5. 許可された値を受信すると、前記スイッチは、前記パケットが前記アドレス指定されたポートを通過することを可能にする、請求項4に記載のシステム。
  6. 許可されない値を受信すると、前記スイッチは、前記パケットを前記アドレス指定されたポートでドロップする、請求項4に記載のシステム。
  7. 前記1つ以上のサブネットは、2つ以上のサブネットを含み、前記2つ以上のサブネットの各々は、前記2つ以上のサブネットの各々において少なくとも1つのルータによって相互接続される、先行する請求項のいずれか1つに記載のシステム。
  8. 高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするための方法であって、
    1つ以上のマイクロプロセッサを含む1つ以上のコンピュータに少なくとも1つのサブネットを提供することを備え、前記少なくとも1つのサブネットは、
    1つ以上のスイッチを含み、前記1つ以上のスイッチは少なくともリーフスイッチを含み、前記1つ以上のスイッチの各々は、複数のスイッチポートを含み、前記少なくとも1つのサブネットはさらに、
    複数のホストチャネルアダプタを含み、各ホストチャネルアダプタは、少なくとも1つのホストチャネルアダプタポートを含み、前記少なくとも1つのサブネットはさらに、
    複数のエンドノードを含み、前記複数のエンドノードの各々は、前記複数のホストチャネルアダプタのうちの少なくとも1つのホストチャネルアダプタに関連付けられ、前記方法はさらに、
    前記複数の物理ホスト仮想マシンの各々を複数のパーティションの少なくとも1つに関連付けることを備え、前記複数のパーティションの各々はP_Key値に関連付けられ、前記方法はさらに、
    前記複数のスイッチポートのうちのあるスイッチポートを、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることと、
    前記複数のホストチャネルアダプタポートのうちのあるホストチャネルアダプタポートを、前記複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることとを備える、高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするための方法。
  9. 前記1つ以上のマイクロプロセッサを含む前記1つ以上のコンピュータにおいて、
    前記1つ以上のスイッチの1つまたは前記複数のホストチャネルアダプタの1つで実行されるサブネットマネージャを提供することと、
    前記サブネットマネージャによって、前記1つ以上のスイッチの各々上の複数のポートを通る許可されたトラフィックおよび許可されないトラフィックを判断することとをさらに備える、請求項8に記載の方法。
  10. 前記サブネットマネージャによって、前記1つ以上のスイッチの各々上の複数のポートの各々を通る許可されたトラフィックおよび許可されないトラフィックの前記判断に基づいて、前記ビットマップに基づくP_Keyテーブルの各々を構成することをさらに備える、請求項9に記載の方法。
  11. 前記1つ以上のスイッチのうちのあるスイッチが、P_Key値を含む少なくともヘッダを含むパケットを、アドレス指定されたポートで受信すると、許可されたまたは許可されないインジケータを受信するよう、前記1つ以上のスイッチのうちの前記あるスイッチによって、前記パケットの前記ヘッダに含まれる前記P_Key値を、関連付けられるビットマップに基づくP_Key値で索引付けすることをさらに備える、請求項8〜10のいずれか1つに記載の方法。
  12. 許可された値を受信すると、前記スイッチによって、前記パケットが前記アドレス指定されたポートを通過することを可能にすることをさらに備える、請求項11に記載の方法。
  13. 許可されない値を受信すると、前記スイッチによって、前記パケットを前記アドレス指定されたポートでドロップすることをさらに備える、請求項11に記載の方法。
  14. 前記1つ以上のサブネットは、2つ以上のサブネットを含み、前記2つ以上のサブネットの各々は、前記2つ以上のサブネットの各々において少なくとも1つのルータによって相互接続される、請求項8〜13のいずれか1つに記載の方法。
  15. 高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするための命令をそこに記憶して含む、非一時的なコンピュータ可読記憶媒体であって、前記命令は、1つ以上のコンピュータによって読み取られ実行されると、前記1つ以上のコンピュータに、
    1つ以上のマイクロプロセッサを含む1つ以上のコンピュータに少なくとも1つのサブネットを提供することを含むステップを実行させ、前記少なくとも1つのサブネットは、
    1つ以上のスイッチを含み、前記1つ以上のスイッチは少なくともリーフスイッチを含み、前記1つ以上のスイッチの各々は、複数のスイッチポートを含み、前記少なくとも1つのサブネットはさらに、
    複数のホストチャネルアダプタを含み、各ホストチャネルアダプタは、少なくとも1つのホストチャネルアダプタポートを含み、前記少なくとも1つのサブネットはさらに、
    複数のエンドノードを含み、前記複数のエンドノードの各々は、前記複数のホストチャネルアダプタのうちの少なくとも1つのホストチャネルアダプタに関連付けられ、前記命令は、さらに、1つ以上のコンピュータによって読み取られ実行されると、前記1つ以上のコンピュータに、
    前記複数のエンドノードの各々を複数のパーティションの少なくとも1つに関連付けることを含むステップを実行させ、前記複数のパーティションの各々はP_Key値に関連付けられ、前記命令は、さらに、1つ以上のコンピュータによって読み取られ実行されると、前記1つ以上のコンピュータに、
    前記複数のスイッチポートのうちのあるスイッチポートを、複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることと、
    前記複数のホストチャネルアダプタポートのうちのあるホストチャネルアダプタポートを、前記複数のビットマップに基づくP_Keyテーブルのうちのあるビットマップに基づくP_Keyテーブルに関連付けることとを含むステップを実行させる、非一時的なコンピュータ可読記憶媒体。
  16. 前記ステップは、さらに、前記1つ以上のマイクロプロセッサを含む前記1つ以上のコンピュータにおいて、
    前記1つ以上のスイッチの1つまたは前記複数のホストチャネルアダプタの1つで実行されるサブネットマネージャを提供することと、
    前記サブネットマネージャによって、前記1つ以上のスイッチの各々上の複数のポートを通る許可されたトラフィックおよび許可されないトラフィックを判断することとを含む、請求項15に記載の非一時的なコンピュータ可読記憶媒体。
  17. 前記ステップは、さらに、前記サブネットマネージャによって、前記1つ以上のスイッチの各々上の複数のポートの各々を通る許可されたトラフィックおよび許可されないトラフィックの前記判断に基づいて、前記ビットマップに基づくP_Keyテーブルの各々を構成することを含む、請求項16に記載の非一時的なコンピュータ可読記憶媒体。
  18. 前記ステップは、さらに、前記1つ以上のスイッチのうちのあるスイッチが、P_Key値を含む少なくともヘッダを含むパケットを、アドレス指定されたポートで受信すると、許可されたまたは許可されないインジケータを受信するよう、前記1つ以上のスイッチのうちの前記あるスイッチによって、前記パケットの前記ヘッダに含まれる前記P_Key値を、関連付けられるビットマップに基づくP_Key値で索引付けすることを含む、請求項15〜17のいずれか1つに記載の一時的なコンピュータ可読記憶媒体。
  19. 前記ステップは、さらに、許可された値を受信すると、前記スイッチによって、前記パケットが前記アドレス指定されたポートを通過することを可能にすることを含む、請求項18に記載の非一時的なコンピュータ可読記憶媒体。
  20. 前記ステップは、さらに、許可されない値を受信すると、前記スイッチによって、前記パケットを前記アドレス指定されたポートでドロップすることを含む、請求項18に記載の非一時的なコンピュータ可読記憶媒体。
  21. コンピュータシステムによって実行されると、前記コンピュータシステムに請求項8〜14のいずれか1つに記載の方法を実行させる、機械可読フォーマットにおけるプログラム命令を含む、コンピュータプログラム。
  22. 非一時的な機械可読データ記憶媒体に記憶される請求項21のコンピュータプログラムを備えるコンピュータプログラム製品。
JP2018504731A 2016-01-27 2017-01-26 高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムおよび方法 Pending JP2019503598A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021145456A JP7297830B2 (ja) 2016-01-27 2021-09-07 高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムおよび方法
JP2023097755A JP2023120292A (ja) 2016-01-27 2023-06-14 高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムおよび方法

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201662287704P 2016-01-27 2016-01-27
US62/287,704 2016-01-27
US15/412,972 2017-01-23
US15/412,972 US11271870B2 (en) 2016-01-27 2017-01-23 System and method for supporting scalable bit map based P_Key table in a high performance computing environment
US15/415,497 2017-01-25
US15/415,497 US11770349B2 (en) 2016-01-27 2017-01-25 System and method for supporting configurable legacy P_Key table abstraction using a bitmap based hardware implementation in a high performance computing environment
PCT/US2017/015156 WO2017132392A1 (en) 2016-01-27 2017-01-26 System and method for supporting scalable bit map based p_key table in a high performance computing environment

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2021145456A Division JP7297830B2 (ja) 2016-01-27 2021-09-07 高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムおよび方法

Publications (2)

Publication Number Publication Date
JP2019503598A true JP2019503598A (ja) 2019-02-07
JP2019503598A5 JP2019503598A5 (ja) 2020-01-30

Family

ID=65528946

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2018504731A Pending JP2019503598A (ja) 2016-01-27 2017-01-26 高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムおよび方法
JP2021145456A Active JP7297830B2 (ja) 2016-01-27 2021-09-07 高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムおよび方法
JP2023097755A Pending JP2023120292A (ja) 2016-01-27 2023-06-14 高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムおよび方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2021145456A Active JP7297830B2 (ja) 2016-01-27 2021-09-07 高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムおよび方法
JP2023097755A Pending JP2023120292A (ja) 2016-01-27 2023-06-14 高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムおよび方法

Country Status (4)

Country Link
EP (1) EP3408982B1 (ja)
JP (3) JP2019503598A (ja)
CN (1) CN107852378B (ja)
WO (1) WO2017132392A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11341082B2 (en) * 2019-11-19 2022-05-24 Oracle International Corporation System and method for supporting target groups for congestion control in a private fabric in a high performance computing environment
CN111309258B (zh) 2020-02-14 2021-10-15 苏州浪潮智能科技有限公司 一种b+树的存取方法、装置和计算机可读存储介质
CN115459968B (zh) * 2022-08-25 2023-06-06 中国人民解放军国防科技大学 用于高性能计算机系统的隔离方法及高性能计算机系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050271074A1 (en) * 2004-06-08 2005-12-08 Johnsen Bjorn D Method and apparatus for verifying service level in a communications network

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08242240A (ja) * 1995-03-06 1996-09-17 Hitachi Ltd Atm交換機およびパス切替方法
KR100776453B1 (ko) * 2001-07-30 2007-11-16 엘지노텔 주식회사 에이티엠 교환기에서의 서브 포트 멀티캐스팅 방법
US20030174725A1 (en) * 2002-03-15 2003-09-18 Broadcom Corporation IP multicast packet replication process and apparatus therefore
US7221676B2 (en) * 2002-07-30 2007-05-22 Brocade Communications Systems, Inc. Supporting local IB packet communication between separate subnets
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
US20050273650A1 (en) * 2004-06-07 2005-12-08 Tsou Henry H Systems and methods for backing up computer data to disk medium
US7443860B2 (en) * 2004-06-08 2008-10-28 Sun Microsystems, Inc. Method and apparatus for source authentication in a communications network
JP4368251B2 (ja) * 2004-06-09 2009-11-18 富士通株式会社 フレーム転送処理方法及び装置
US8756424B2 (en) * 2010-11-30 2014-06-17 Marvell Israel (M.I.S.L) Ltd. Load balancing hash computation for network switches
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
US9245626B2 (en) * 2012-10-26 2016-01-26 Cisco Technology, Inc. System and method for packet classification and internet protocol lookup in a network environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050271074A1 (en) * 2004-06-08 2005-12-08 Johnsen Bjorn D Method and apparatus for verifying service level in a communications network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FEROZ ZAHID ET AL.: "artition-aware routing to improve network isolation in InfiniBand based multi-tenant clusters", 2015 15TH IEEE/ACM INTERNATIONAL SYMPOSIUM ON CLUSTER, CLOUD AND GRID COMPUTING, JPN6020045997, May 2015 (2015-05-01), pages 189 - 198, XP055322241, ISSN: 0004540072, DOI: 10.1109/CCGrid.2015.96 *

Also Published As

Publication number Publication date
JP2022003791A (ja) 2022-01-11
JP2023120292A (ja) 2023-08-29
EP3408982B1 (en) 2020-12-09
EP3408982A1 (en) 2018-12-05
WO2017132392A1 (en) 2017-08-03
CN107852378B (zh) 2020-12-08
CN107852378A (zh) 2018-03-27
JP7297830B2 (ja) 2023-06-26

Similar Documents

Publication Publication Date Title
JP7407164B2 (ja) 高性能コンピューティング環境における仮想ルータポートにわたるsmp接続性チェックのためのルータsma抽象化をサポートするためのシステムおよび方法
JP7241146B2 (ja) 高性能コンピューティング環境での線形転送テーブル(lft)探索のためにグローバルルートヘッダ(grh)におけるサブネットプレフィックス値を用いるためのシステムおよび方法
JP7472200B2 (ja) 無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法
JP6920281B2 (ja) 高性能コンピューティング環境において仮想マシンの仮想マシンファブリックプロファイルを規定するためのシステムおよび方法
US11716292B2 (en) System and method for supporting scalable representation of switch port status in a high performance computing environment
JP6850804B2 (ja) 高性能コンピューティング環境においてデュアルポート仮想ルータをサポートするためのシステムおよび方法
CN107111513B (zh) 为高性能云计算环境提供InfiniBand SR-IOV vSWITCH体系架构的系统和方法
JP7297830B2 (ja) 高性能コンピューティング環境においてスケーラブルなビットマップに基づくP_Keyテーブルをサポートするためのシステムおよび方法
CN107852377B (zh) 用于在高性能计算环境中支持交换机端口状况的可伸缩表示的系统和方法
US20220174025A1 (en) System and method for supporting scalable bit map based p_key table 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: 20191211

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191211

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210225

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210706

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20210907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20210907

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20220104

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20220315

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20220405

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20220412

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20220517

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20220517