Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7832965B2 - Routing policy for graphics processing units - Google Patents
[go: Go Back, main page]

JP7832965B2 - Routing policy for graphics processing units - Google Patents

Routing policy for graphics processing units

Info

Publication number
JP7832965B2
JP7832965B2 JP2023579266A JP2023579266A JP7832965B2 JP 7832965 B2 JP7832965 B2 JP 7832965B2 JP 2023579266 A JP2023579266 A JP 2023579266A JP 2023579266 A JP2023579266 A JP 2023579266A JP 7832965 B2 JP7832965 B2 JP 7832965B2
Authority
JP
Japan
Prior art keywords
vcn
network device
network
subnet
packet
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
JP2023579266A
Other languages
Japanese (ja)
Other versions
JP2024524992A (en
JP2024524992A5 (en
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 US17/734,865 external-priority patent/US12309061B2/en
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2024524992A publication Critical patent/JP2024524992A/en
Publication of JP2024524992A5 publication Critical patent/JP2024524992A5/ja
Application granted granted Critical
Publication of JP7832965B2 publication Critical patent/JP7832965B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1553Interconnection of ATM switching modules, e.g. ATM switching fabrics
    • H04L49/1569Clos switching fabrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

関連出願の相互参照
本出願は、2021年6月25日に出願された米国仮出願第63/215,264号および2022年5月2日に出願された米国非仮出願第17/734,865号の米国特許法第119条(e)に基づく利益および優先権を主張する。前述の出願の全内容は、あらゆる目的のためにその全体が参照により本明細書に組み込まれる。
Cross-reference of Related Applications This application claims the benefit and priority under § 119(e) of U.S. Patent Act pursuant to U.S. Provisional Application No. 63/215,264 filed on 25 June 2021 and U.S. Non-Provisional Application No. 17/734,865 filed on 2 May 2022. The entire contents of the aforementioned applications are incorporated herein by reference for all purposes.

分野
本開示は、クラウド環境内の複数のホストマシン上でホストされるグラフィカル処理ユニット(GPU)のためのフレームワークおよびルーティングメカニズムに関する。
Field: This disclosure relates to a framework and routing mechanism for graphical processing units (GPUs) hosted on multiple host machines in a cloud environment.

背景
組織は、オンプレミスのハードウェアおよびソフトウェアの購入、更新、および保守のコストを削減するために、ビジネスアプリケーションおよびデータベースをクラウドに移行し続けている。高性能コンピューティング(HPC)アプリケーションは、特定の成果または結果を達成するために利用可能なコンピューティング能力の100%を一貫して消費する。HPCアプリケーションには、専用のネットワーク性能、高速記憶装置、高度なコンピューティング能力、および大量のメモリが必要であるが、今日のコモディティクラウドを構成する仮想化インフラストラクチャではこれらのリソースが不足している。
Background: Organizations continue to migrate business applications and databases to the cloud to reduce the costs of purchasing, updating, and maintaining on-premises hardware and software. High-performance computing (HPC) applications consistently consume 100% of the available computing power to achieve specific outcomes or results. HPC applications require dedicated network performance, high-speed storage, advanced computing power, and massive amounts of memory, but these resources are lacking in the virtualization infrastructure that makes up today's commodity clouds.

クラウドインフラストラクチャサービスプロバイダは、HPCアプリケーションの要件に対処するために、より新しく高速なCPUおよびグラフィカル処理ユニット(GPU)を提供する。通常、仮想トポロジは、複数のホストマシン上でホストされているさまざまなGPUをプロビジョニングして相互に通信するために構築される。実際には、さまざまなGPUを接続するためにリングトポロジが利用される。しかし、リングネットワークは常に本質的にブロッキングを起こす。そのため、システム全体の性能が低下する。本明細書で説明する実施形態は、複数のホストマシンにまたがるGPUの接続に関連するこれらおよび他の問題に対処する。 Cloud infrastructure service providers offer newer and faster CPUs and graphical processing units (GPUs) to meet the requirements of HPC applications. Typically, virtual topologies are constructed to provision and communicate with various GPUs hosted on multiple host machines. In practice, ring topologies are used to connect these various GPUs. However, ring networks inherently suffer from blocking, thus degrading the overall system performance. The embodiments described herein address these and other issues associated with connecting GPUs across multiple host machines.

概要
本開示は、概して、クラウド環境内の複数のホストマシン上でホストされるグラフィカル処理ユニット(GPU)のためのルーティングメカニズムに関する。本明細書では、方法、システム、1つまたは複数のプロセッサによって実行可能なプログラム、コード、または命令を記憶する非一時的なコンピュータ可読記憶媒体などを含むさまざまな実施形態が説明される。これらの例示的な実施形態は、本開示を限定したり定義したりするためではなく、本開示の理解を助けるための例を提供するために言及されている。追加の実施形態については詳細な説明セクションで説明し、さらに詳細な説明をその中で提供する。
Summary This disclosure generally relates to routing mechanisms for graphical processing units (GPUs) hosted on multiple host machines in a cloud environment. Various embodiments are described herein, including methods, systems, and non-temporary computer-readable storage media for storing programs, code, or instructions executable by one or more processors. These exemplary embodiments are mentioned not to limit or define the disclosure, but to provide examples to aid in understanding the disclosure. Additional embodiments are described in the detailed description section, which provides further details.

本開示の一実施形態は、ホストマシンのグラフィカル処理ユニット(GPU)によって送信され、ネットワーク装置によって受信されたパケットの場合、ネットワーク装置によって、パケットが受信されたネットワーク装置の受信ポートリンクを決定することと、ネットワーク装置によって、GPUルーティングポリシーに基づいて、受信ポートリンクに対応する発信ポートリンクを識別することであって、GPUルーティングポリシーはパケットを受信する前に事前設定され、ネットワーク装置の各受信ポートリンクとネットワーク装置の一意の発信ポートリンクのマッピングを確立する、ことと、ネットワーク装置によって、ネットワーク装置の発信ポートリンク上でパケットを転送することと、を含む方法を対象とする。 One embodiment of this disclosure relates to a method, in the case of a packet transmitted by a host machine's graphical processing unit (GPU) and received by a network device, comprising: the network device determining the receiving port link of the network device from which the packet was received; the network device identifying the outgoing port link corresponding to the receiving port link based on a GPU routing policy, wherein the GPU routing policy is pre-configured before the packet is received and establishes a mapping between each receiving port link of the network device and a unique outgoing port link of the network device; and the network device forwarding the packet on the outgoing port link of the network device.

本開示の一態様は、1つまたは複数のデータプロセッサと、命令を含む非一時的なコンピュータ可読記憶媒体とを備えるシステムを提供し、これは、1つまたは複数のデータプロセッサ上で実行されると、1つまたは複数のデータプロセッサに、本明細書に開示される1つまたは複数の方法の一部または全部を実行させる。 One aspect of this disclosure provides a system comprising one or more data processors and a non-temporary computer-readable storage medium containing instructions, which, when executed on one or more data processors, causes one or more data processors to execute some or all of the methods disclosed herein.

本開示の別の態様は、本明細書に開示される1つまたは複数の方法の一部または全部を1つまたは複数のデータプロセッサに実行させるように構成された命令を含む、非一時的な機械可読記憶媒体に具体的に具体化されるコンピュータプログラム製品を提供する。 Another aspect of this disclosure provides a computer program product, specifically embodied in a non-temporary, machine-readable storage medium, which includes instructions configured to cause one or more data processors to execute some or all of the methods disclosed herein.

前述のことは、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照することによってより明らかになるであろう。 The foregoing, along with other features and embodiments, will become clearer by referring to the following specification, claims, and accompanying drawings.

本開示の特徴、実施形態、および利点は、添付の図面を参照しながら以下の詳細な説明を読むと、よりよく理解される。 The features, embodiments, and advantages of this disclosure will be better understood by reading the following detailed description with reference to the accompanying drawings.

特定の実施形態による、クラウドサービスプロバイダインフラストラクチャによってホストされる仮想またはオーバーレイクラウドネットワークを示す配信環境の高レベル図である。This is a high-level diagram of a delivery environment showing a virtual or overlay cloud network hosted by a cloud service provider infrastructure, according to a specific embodiment. 特定の実施形態による、CSPI内の物理ネットワーク内の物理構成要素の簡略化されたアーキテクチャ図を示す図である。This figure shows a simplified architectural diagram of the physical components within the physical network in CSPI according to a specific embodiment. 特定の実施形態による、ホストマシンが複数のネットワーク仮想化装置(NVD)に接続されるCSPI内の配置例を示す図である。This figure shows an example of a configuration within CSPI in which a host machine is connected to multiple network virtualization devices (NVDs) according to a specific embodiment. 特定の実施形態による、マルチテナントをサポートするためのI/O仮想化を提供するためのホストマシンとNVDとの間の接続を示す図である。This figure shows a connection between a host machine and an NVD to provide I/O virtualization to support multi-tenancy, according to a specific embodiment. 特定の実施形態によるCSPIによって提供される物理ネットワークの簡略化されたブロック図を示す図である。This figure shows a simplified block diagram of the physical network provided by CSPI according to a specific embodiment. 特定の実施形態による、CLOSネットワーク構成を組み込んだクラウドインフラストラクチャの簡略化されたブロック図を示す図である。This figure shows a simplified block diagram of a cloud infrastructure incorporating a CLOS network configuration according to a specific embodiment. 特定の実施形態による、図6のクラウドインフラストラクチャにおけるフロー衝突を示す例示的なシナリオを示す図である。This figure shows an exemplary scenario illustrating flow collisions in the cloud infrastructure of Figure 6, according to a specific embodiment. 特定の実施形態による、クラウドインフラストラクチャに実装されるポリシーベースのルーティングメカニズムを示す図である。This diagram shows a policy-based routing mechanism implemented in a cloud infrastructure according to a specific embodiment. 特定の実施形態による、クラウドインフラストラクチャ内の異なるタイプの接続を示すクラウドインフラストラクチャのブロック図を示す図である。This figure shows a block diagram of a cloud infrastructure illustrating different types of connectivity within the cloud infrastructure according to a specific embodiment. 特定の実施形態による、クラウドインフラストラクチャに含まれるラックの例示的な構成を示す図である。This figure shows an exemplary configuration of racks included in a cloud infrastructure according to a specific embodiment. 特定の実施形態による、パケットをルーティングする際にネットワーク装置によって実行されるステップを示すフローチャートを示す図である。This diagram shows a flowchart illustrating the steps performed by a network device when routing packets, according to a specific embodiment. 特定の実施形態による、パケットをルーティングする際にネットワーク装置によって実行されるステップを示す別のフローチャートを示す図である。This figure shows another flowchart illustrating the steps performed by a network device when routing packets, according to a specific embodiment. 少なくとも1つの実施形態による、サービスシステムとしてのクラウドインフラストラクチャを実装するための1つのパターンを示すブロック図である。This is a block diagram showing one pattern for implementing a cloud infrastructure as a service system, according to at least one embodiment. 少なくとも1つの実施形態による、サービスシステムとしてのクラウドインフラストラクチャを実装するための別のパターンを示すブロック図である。This block diagram shows another pattern for implementing cloud infrastructure as a service system, according to at least one embodiment. 少なくとも1つの実施形態による、サービスシステムとしてのクラウドインフラストラクチャを実装するための別のパターンを示すブロック図である。This block diagram shows another pattern for implementing cloud infrastructure as a service system, according to at least one embodiment. 少なくとも1つの実施形態による、サービスシステムとしてのクラウドインフラストラクチャを実装するための別のパターンを示すブロック図である。This block diagram shows another pattern for implementing cloud infrastructure as a service system, according to at least one embodiment. 少なくとも1つの実施形態による例示的なコンピュータシステムを示すブロック図である。A block diagram illustrating an exemplary computer system according to at least one embodiment.

詳細な説明
以下の説明では、説明の目的で、特定の実施形態の完全な理解を提供するために特定の詳細が記載される。しかし、これらの特定の詳細がなくても、さまざまな実施形態を実施できることは明らかであろう。図および説明は、限定することを意図したものではない。「例示的な」という言葉は、本明細書では「実施例、例、または実例として機能する」という意味で使用される。本明細書で「例示的」として説明される任意の実施形態または設計は、必ずしも他の実施形態または設計よりも好ましいまたは有利であると解釈されるべきではない。
Detailed Description: The following description includes certain details to provide a complete understanding of a particular embodiment for illustrative purposes. However, it will be apparent that various embodiments can be carried out without these specific details. Figures and descriptions are not intended to be limiting. The term “exemplary” is used herein to mean “serving as an example, illustration, or illustration.” Any embodiment or design described herein as “exemplary” should not necessarily be construed as being preferable or advantageous over other embodiments or designs.

クラウドインフラストラクチャのアーキテクチャ例
クラウドサービスという用語は、一般に、クラウドサービスプロバイダ(CSP)によって提供されるシステムとインフラストラクチャ(クラウドインフラストラクチャ)を使用して、クラウドサービスプロバイダ(CSP)によってユーザまたは顧客がオンデマンド(例えば、加入モデルを介して)で利用できるようにするサービスを指すために使用される。通常、CSPのインフラストラクチャを構成するサーバおよびシステムは、顧客自身のオンプレミスのサーバおよびシステムとは別のものである。したがって、顧客は、サービス用のハードウェアおよびソフトウェアリソースを個別に購入することなく、CSPが提供するクラウドサービスを利用できる。クラウドサービスは、サービスの提供に使用されるインフラストラクチャの調達に顧客が投資することなく、加入顧客がアプリケーションやコンピューティングリソースに簡単かつ拡張可能にアクセスできるように設計されている。
Cloud Infrastructure Architecture Examples The term "cloud service" is generally used to refer to services that are made available on demand (e.g., via a subscription model) by a cloud service provider (CSP) to users or customers using systems and infrastructure (cloud infrastructure) provided by the CSP. Typically, the servers and systems that make up the CSP's infrastructure are separate from the customer's own on-premises servers and systems. Therefore, customers can use cloud services provided by the CSP without having to purchase hardware and software resources for the service separately. Cloud services are designed to allow subscribers to easily and scalably access applications and computing resources without the customer having to invest in procuring the infrastructure used to deliver the service.

さまざまなタイプのクラウドサービスを提供するクラウドサービスプロバイダがいくつかある。クラウドサービスには、Software-as-a-Service(SaaS)、Platform-as-a-Service(PaaS)、Infrastructor-as-a-Service(IaaS)など、さまざまな異なるタイプまたはモデルがある。 There are several cloud service providers that offer various types of cloud services. Cloud services come in many different types or models, such as Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS), and Infrastructure-as-a-Service (IaaS).

顧客は、CSPによって提供される1つまたは複数のクラウドサービスに加入することができる。顧客は、個人、組織、企業などの任意のエンティティにすることができる。顧客がCSPが提供するサービスに加入または登録すると、その顧客用にテナントまたはアカウントが作成される。その後、顧客は、このアカウントを介して、そのアカウントに関連付けられる加入済みの1つまたは複数のクラウドリソースにアクセスできる。 Customers can subscribe to one or more cloud services provided by the CSP. Customers can be any entity, such as an individual, organization, or company. When a customer subscribes to or registers for a service provided by the CSP, a tenant or account is created for that customer. The customer can then access one or more subscribed cloud resources associated with that account through this account.

上述したように、サービスとしてのインフラストラクチャ(IaaS)は、クラウドコンピューティングサービスの特定のタイプの1つである。IaaSモデルでは、CSPは、顧客が独自のカスタマイズ可能なネットワークを構築し、顧客リソースを展開するために使用できるインフラストラクチャ(クラウドサービスプロバイダインフラストラクチャまたはCSPIと呼ばれる)を提供する。したがって、顧客のリソースとネットワークは、CSPが提供するインフラストラクチャによって配信環境でホストされる。これは、顧客のリソースとネットワークが顧客が提供するインフラストラクチャによってホストされる従来のコンピューティングとは異なる。 As mentioned above, Infrastructure as a Service (IaaS) is a specific type of cloud computing service. In the IaaS model, the CSP provides the infrastructure (called Cloud Service Provider Infrastructure, or CSPI) that customers can use to build their own customizable networks and deploy their resources. Therefore, the customer's resources and network are hosted in the delivery environment by the infrastructure provided by the CSP. This differs from traditional computing, where the customer's resources and network are hosted by the infrastructure provided by the customer.

CSPIは、基板ネットワークまたは基礎ネットワークとも呼ばれる物理ネットワークを形成するさまざまなホストマシン、メモリリソース、およびネットワークリソースを含む、相互接続された高性能コンピューティングリソースを備えることができる。CSPIのリソースは、1つまたは複数の地理的地域に地理的に分散し得る1つまたは複数のデータセンターに分散し得る。仮想化ソフトウェアは、これらの物理リソースによって実行され、仮想化された配信環境を提供し得る。仮想化により、物理ネットワーク上にオーバーレイネットワーク(ソフトウェアベースのネットワーク、ソフトウェア定義のネットワーク、または仮想ネットワークとも呼ばれる)が作成される。CSPI物理ネットワークは、物理ネットワーク上に1つまたは複数のオーバーレイネットワークまたは仮想ネットワークを作成するための基礎を提供する。仮想ネットワークまたはオーバーレイネットワークには、1つまたは複数の仮想クラウドネットワーク(VCN)を含めることができる。仮想ネットワークは、ソフトウェア仮想化技術(例えば、ハイパーバイザ、ネットワーク仮想化装置(NVD)によって実行される機能(例えば、スマートNIC)、トップオブラック(TOR)スイッチ、NVDによって実行される1つまたは複数の機能を実装するスマートTOR、およびその他のメカニズム)を使用して実装され、物理ネットワーク上で実行できるネットワーク抽象化層を作成する。仮想ネットワークは、ピアツーピアネットワーク、IPネットワークなど、さまざまな形式を取ることができる。仮想ネットワークは通常、層3IPネットワークまたは層2VLANのいずれかである。この仮想またはオーバーレイネットワークの方法は、多くの場合、仮想またはオーバーレイ層3ネットワークと呼ばれる。仮想ネットワーク用に開発されたプロトコルの例には、IP-in-IP(または汎用ルーティングカプセル化(GRE))、仮想拡張LAN(VXLAN-IETF RFC7348)、仮想プライベートネットワーク(VPN)(例えば、MPLS層3仮想プライベートネットワーク(RFC4364))、VMwareのNSX、GENEVE(Generic Network Virtualization Encapsulation)などが含まれる。 CSPI can comprise interconnected high-performance computing resources, including various host machines, memory resources, and network resources that form a physical network also known as the underlying network or foundation network. CSPI resources can be distributed across one or more data centers that may be geographically distributed across one or more geographical regions. Virtualization software can run on these physical resources and provide a virtualized delivery environment. Virtualization creates an overlay network (also known as a software-based network, software-defined network, or virtual network) on top of the physical network. The CSPI physical network provides the foundation for creating one or more overlay networks or virtual networks on top of the physical network. A virtual network or overlay network may include one or more virtual cloud networks (VCNs). The virtual network is implemented using software virtualization technologies (e.g., hypervisors, functions performed by network virtualization devices (NVDs) (e.g., smart NICs), top-of-rack (TOR) switches, smart TORs implementing one or more functions performed by NVDs, and other mechanisms) to create a network abstraction layer that can run on the physical network. Virtual networks can take various forms, including peer-to-peer networks and IP networks. Virtual networks are typically either Layer 3 IP networks or Layer 2 VLANs. This virtual or overlay networking method is often referred to as a virtual or overlay Layer 3 network. Examples of protocols developed for virtual networks include IP-in-IP (or General Purpose Routing Encapsulation (GRE)), Virtual Extensible LAN (VXLAN-IETF RFC 7348), Virtual Private Networks (VPNs) (e.g., MPLS Layer 3 Virtual Private Network (RFC 4364)), VMware's NSX, and GENEVE (Generic Network Virtualization Encapsulation).

IaaSの場合、CSPによって提供されるインフラストラクチャ(CSPI)は、パブリックネットワーク(例えば、インターネット)を介して仮想化されたコンピューティングリソースを提供するように構成することができる。IaaSモデルでは、クラウドコンピューティングサービスプロバイダは、インフラストラクチャ構成要素(例えば、サーバ、記憶装置、ネットワークノード(例えば、ハードウェア)、展開ソフトウェア、プラットフォーム仮想化(例えば、ハイパーバイザ層)など)をホストすることができる。場合によっては、IaaSプロバイダは、これらのインフラストラクチャ構成要素に付随するさまざまなサービス(例えば、請求、監視、ロギング、セキュリティ、負荷分散、およびクラスタリングなど)を提供することもできる。したがって、これらのサービスはポリシー駆動型であり得るため、IaaSユーザは負荷分散を駆動するポリシーを実装して、アプリケーションの可用性と性能を維持できる可能性がある。CSPIは、顧客が可用性の高いホスト型配信環境で幅広いアプリケーションとサービスを構築および実行できるようにするインフラストラクチャとセットの補完的なクラウドサービスを提供する。CSPIは、顧客のオンプレミスネットワークなどのさまざまなネットワーク上の場所から安全にアクセスできる柔軟な仮想ネットワークで、高性能のコンピューティングリソースと機能、および記憶容量を提供する。顧客がCSPが提供するIaaSサービスに加入または登録すると、その顧客用に作成されたテナントは、顧客がクラウドリソースを作成、編成、管理できるCSPI内の安全で分離された分割になる。 In the case of IaaS, the infrastructure provided by the CSP (CSPI) can be configured to deliver virtualized computing resources over a public network (e.g., the internet). In the IaaS model, the cloud computing service provider can host infrastructure components (e.g., servers, storage, network nodes (e.g., hardware), deployment software, platform virtualization (e.g., hypervisor layer)). In some cases, the IaaS provider can also provide various services associated with these infrastructure components (e.g., billing, monitoring, logging, security, load balancing, and clustering). Therefore, since these services can be policy-driven, IaaS users may be able to implement policies that drive load balancing to maintain application availability and performance. The CSPI provides complementary cloud services in a set of infrastructure that enable customers to build and run a wide range of applications and services in a highly available hosted delivery environment. The CSPI provides high-performance computing resources and capabilities, as well as storage capacity, in a flexible virtual network that can be securely accessed from various network locations, including the customer's on-premises network. When a customer subscribes to or registers for an IaaS service provided by a CSP, the tenant created for that customer becomes a secure, isolated partition within the CSP where the customer can create, organize, and manage cloud resources.

顧客は、CSPIによって提供されるコンピューティング、メモリ、およびネットワーキングリソースを使用して独自の仮想ネットワークを構築することができる。コンピューティングインスタンスなどの1つまたは複数の顧客リソースまたはワークロードをこれらの仮想ネットワークに展開できる。例えば、顧客はCSPIによって提供されるリソースを使用して、仮想クラウドネットワーク(VCN)と呼ばれる1つまたは複数のカスタマイズ可能なプライベート仮想ネットワークを構築できる。顧客は、コンピューティングインスタンスなどの1つまたは複数の顧客リソースを顧客VCNに展開できる。コンピューティングインスタンスは、仮想マシン、ベアメタルインスタンスなどの形式を取ることができる。したがって、CSPIは、顧客が可用性の高い仮想ホスト環境で幅広いアプリケーションとサービスを構築および実行できるようにするインフラストラクチャとセットの補完的なクラウドサービスを提供する。顧客は、CSPIによって提供される基礎となる物理リソースを管理または制御しないが、オペレーティングシステム、記憶装置、および展開されたアプリケーションを制御できる。また、選択されたネットワーク構成要素(例えば、ファイアウォール)の制御が制限される可能性もある。 Customers can build their own virtual networks using the computing, memory, and networking resources provided by CSPI. They can deploy one or more customer resources or workloads, such as compute instances, into these virtual networks. For example, a customer can use resources provided by CSPI to build one or more customizable private virtual networks called Virtual Cloud Networks (VCNs). A customer can deploy one or more customer resources, such as compute instances, into their customer VCNs. Computing instances can take the form of virtual machines, bare-metal instances, etc. Therefore, CSPI provides complementary cloud services as part of an infrastructure set that enables customers to build and run a wide range of applications and services in a highly available virtual host environment. While customers do not manage or control the underlying physical resources provided by CSPI, they can control the operating system, storage, and deployed applications. They may also have limited control over selected network components (e.g., firewalls).

CSPは、顧客およびネットワーク管理者がCSPIリソースを使用してクラウドに展開されたリソースを構成、アクセス、および管理できるようにするコンソールを提供することができる。特定の実施形態では、コンソールは、CSPIにアクセスして管理するために使用できるウェブベースのユーザインターフェースを提供する。一部の実装では、コンソールはCSPによって提供されるWebベースのアプリケーションである。 A CSP can provide a console that allows customers and network administrators to configure, access, and manage resources deployed in the cloud using CSPI resources. In certain embodiments, the console provides a web-based user interface that can be used to access and manage CSPI. In some implementations, the console is a web-based application provided by the CSP.

CSPIは、単一テナントまたはマルチテナントのアーキテクチャをサポートすることができる。単一テナントアーキテクチャでは、ソフトウェア(例えば、アプリケーション、データベース)またはハードウェア構成要素(例えば、ホストマシンやサーバ)が単一の顧客またはテナントにサービスを提供する。マルチテナントアーキテクチャでは、ソフトウェアまたはハードウェア構成要素が複数の顧客またはテナントにサービスを提供する。したがって、マルチテナントアーキテクチャでは、CSPIリソースが複数の顧客またはテナント間で共有される。マルチテナントの状況では、予防策が講じられ、各テナントのデータが分離され、他のテナントから見えないようにCSPI内で保護策が講じられる。 CSPI can support single-tenant or multi-tenant architectures. In a single-tenant architecture, software (e.g., applications, databases) or hardware components (e.g., host machines and servers) serve a single customer or tenant. In a multi-tenant architecture, software or hardware components serve multiple customers or tenants. Therefore, in a multi-tenant architecture, CSPI resources are shared among multiple customers or tenants. In a multi-tenant environment, precautions are taken, data for each tenant is isolated, and protective measures are in place within CSPI to prevent it from being seen by other tenants.

物理ネットワークにおいて、ネットワークエンドポイント(「エンドポイント」)は、物理ネットワークに接続され、接続されているネットワークと往復通信するコンピューティング装置またはシステムを指す。物理ネットワーク内のネットワークエンドポイントは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、または他のタイプの物理ネットワークに接続できる。物理ネットワーク内の従来のエンドポイントの例には、モデム、ハブ、ブリッジ、スイッチ、ルータ、およびその他のネットワーキング装置、物理コンピュータ(またはホストマシン)などが含まれる。物理ネットワーク内の各物理装置には、装置との通信に使用できる固定ネットワークアドレスがある。この固定ネットワークアドレスは、層2アドレス(例えば、MACアドレス)、固定層3アドレス(例えば、IPアドレス)などであり得る。仮想化環境または仮想ネットワークでは、エンドポイントは、物理ネットワークの構成要素によってホストされる(例えば、物理ホストマシンによってホストされる)仮想マシンなどのさまざまな仮想エンドポイントを含むことができる。仮想ネットワーク内のこれらのエンドポイントは、オーバーレイ層2アドレス(例えば、オーバーレイMACアドレス)やオーバーレイ層3アドレス(例えば、オーバーレイIPアドレス)などのオーバーレイアドレスによってアドレス指定される。ネットワークオーバーレイは、ネットワーク管理者がソフトウェア管理を使用して(例えば、仮想ネットワークの制御プレーンを実装するソフトウェアを介して)ネットワークエンドポイントに関連付けられるオーバーレイアドレスを移動できるようにすることで、柔軟性を実現する。したがって、物理ネットワークとは異なり、仮想ネットワークでは、ネットワーク管理ソフトウェアを使用して、オーバーレイアドレス(例えば、オーバーレイIPアドレス)をあるエンドポイントから別のエンドポイントに移動することができる。仮想ネットワークは物理ネットワーク上に構築されるため、仮想ネットワーク内の構成要素間の通信には、仮想ネットワークと基礎となる物理ネットワークの両方が関与する。このような通信を容易にするために、CSPIの構成要素は、仮想ネットワーク内のオーバーレイアドレスをサブストレートネットワーク内の実際の物理アドレスにマッピングする、またはその逆のマッピングを学習して記憶するように構成される。これらのマッピングは、次いで通信を容易にするために使用される。顧客のトラフィックはカプセル化され、仮想ネットワーク内でのルーティングが容易になる。 In a physical network, a network endpoint ("endpoint") refers to a computing device or system that is connected to a physical network and communicates round-trip with the connected network. Network endpoints within a physical network can be connected to a local area network (LAN), a wide area network (WAN), or other types of physical networks. Examples of traditional endpoints within a physical network include modems, hubs, bridges, switches, routers, and other networking devices, as well as physical computers (or host machines). Each physical device within a physical network has a fixed network address that can be used to communicate with the device. This fixed network address may be a Layer 2 address (e.g., a MAC address), a fixed Layer 3 address (e.g., an IP address), etc. In a virtualized environment or virtual network, endpoints can include various virtual endpoints, such as virtual machines hosted by components of the physical network (e.g., hosted by a physical host machine). These endpoints within a virtual network are addressed by overlay addresses, such as overlay Layer 2 addresses (e.g., overlay MAC addresses) or overlay Layer 3 addresses (e.g., overlay IP addresses). Network overlays provide flexibility by allowing network administrators to move overlay addresses associated with network endpoints using software management (e.g., through software implementing the control plane of the virtual network). Therefore, unlike physical networks, virtual networks allow network management software to move overlay addresses (e.g., overlay IP addresses) from one endpoint to another. Because virtual networks are built on top of physical networks, communication between components within a virtual network involves both the virtual network and the underlying physical network. To facilitate such communication, CSPI components are configured to learn and remember mappings between overlay addresses in the virtual network and actual physical addresses in the underlying network, or vice versa. These mappings are then used to facilitate communication. Customer traffic is encapsulated and routed easily within the virtual network.

したがって、物理アドレス(例えば、物理IPアドレス)は、物理ネットワーク内の構成要素に関連付けられ、オーバーレイアドレス(例えば、オーバーレイIPアドレス)は、仮想ネットワーク内のエンティティに関連付けられる。物理IPアドレスとオーバーレイIPアドレスはどちらも実IPアドレスのタイプである。これらは、仮想IPアドレスとは別のものであり、仮想IPアドレスは複数の実際のIPアドレスにマッピングされる。仮想IPアドレスは、仮想IPアドレスと複数の実IPアドレスとの間の1対多のマッピングを提供する。 Therefore, physical addresses (e.g., physical IP addresses) are associated with components within a physical network, while overlay addresses (e.g., overlay IP addresses) are associated with entities within a virtual network. Both physical and overlay IP addresses are types of real IP addresses. They are distinct from virtual IP addresses, which map to multiple real IP addresses. Virtual IP addresses provide a one-to-many mapping between virtual IP addresses and multiple real IP addresses.

クラウドインフラストラクチャまたはCSPIは、世界中の1つまたは複数の地域にある1つまたは複数のデータセンターで物理的にホストされる。CSPIには、物理ネットワークまたは基板ネットワーク内の構成要素と、物理ネットワーク構成要素上に構築された仮想ネットワーク内の仮想化構成要素(例えば、仮想ネットワーク、コンピューティングインスタンス、仮想マシンなど)とが含まれ得る。特定の実施形態では、CSPIは、領域、地域、および可用性領域内で組織され、ホストされる。地域は通常、1つまたは複数のデータセンターを含む局所的な地理的エリアである。地域は通常、互いに独立しており、例えば国や大陸をまたぐなど、非常に離れた場所にある場合もある。例えば、第1の地域はオーストラリア、別の地域は日本、さらに別の地域はインドなどであってもよい。CSPIリソースは、各地域がCSPIリソースの独自の独立したサブセットを持つように地域間で分割される。各地域は、コンピューティングリソース(例えば、ベアメタルサーバ、仮想マシン、コンテナおよび関連インフラストラクチャ)、記憶リソース(例えば、ブロックボリューム記憶装置、ファイル記憶装置、オブジェクト記憶装置、アーカイブ記憶装置)、ネットワーキングリソース(例えば、仮想クラウドネットワーク(VCN)、負荷分散リソース、オンプレミスネットワークへの接続)、データベースリソース、エッジネットワーキングリソース(例えば、DNS)、ならびにアクセス管理および監視リソースなどのコアインフラストラクチャサービスおよびリソースのセットを提供し得る。通常、各地域には、領域内の他の地域に接続する複数のパスがある。 The cloud infrastructure, or CSPI, is physically hosted in one or more data centers located in one or more regions around the world. The CSPI may include components within a physical network or underpinning network, and virtualized components within a virtual network built on top of the physical network components (e.g., virtual networks, compute instances, virtual machines, etc.). In certain embodiments, the CSPI is organized and hosted within regions, areas, and availability regions. A region is typically a localized geographical area containing one or more data centers. Regions are typically independent of each other and may be located very far apart, for example, across countries or continents. For example, one region might be Australia, another Japan, and yet another India. CSPI resources are divided across regions such that each region has its own independent subset of CSPI resources. Each region may provide a set of core infrastructure services and resources, including computing resources (e.g., bare metal servers, virtual machines, containers, and related infrastructure), storage resources (e.g., block volume storage, file storage, object storage, archive storage), networking resources (e.g., virtual cloud networks (VCNs), load balancing resources, connectivity to on-premises networks), database resources, edge networking resources (e.g., DNS), and access management and monitoring resources. Typically, each region has multiple paths connecting to other regions within its territory.

一般に、アプリケーションは、最も頻繁に使用される地域に展開され(つまり、その地域に関連付けられるインフラストラクチャに展開される)、近くのリソースを使用する方が、遠くのリソースを使用するよりも高速であるためである。大規模な気象システムや地震などの地域全体のイベントのリスクを軽減するための冗長性など、さまざまな理由でアプリケーションを異なる地域に展開することもでき、法的管轄区域、税務領域、およびその他のビジネスまたは社会的基準などのさまざまな要件を満たす。 Generally, applications are deployed in the most frequently used regions (i.e., on infrastructure associated with those regions) because using nearby resources is faster than using distant ones. Applications can also be deployed in different regions for various reasons, such as redundancy to mitigate the risks of large-scale weather systems or region-wide events like earthquakes, and to meet various requirements such as legal jurisdictions, tax areas, and other business or social standards.

地域内のデータセンターはさらに組織化され、可用性領域(AD)に細分されることができる。可用性領域は、地域内にある1つまたは複数のデータセンターに対応し得る。地域は1つまたは複数の可用性領域で構成できる。このような配信環境では、CSPIリソースは、仮想クラウドネットワーク(VCN)などの地域固有、またはコンピューティングインスタンスなどの可用性領域固有のいずれかになる。 Data centers within a region can be further organized and subdivided into Availability Areas (ADs). An Availability Area may correspond to one or more data centers within a region. A region can consist of one or more Availability Areas. In such a delivery environment, CSPI resources can be either region-specific, such as virtual cloud networks (VCNs), or Availability Area-specific, such as compute instances.

地域内のADは互いに隔離されており、耐障害性であり、同時に故障する可能性が非常に低いように構成される。これは、ADがネットワーク、物理ケーブル、ケーブルパス、ケーブルエントリポイントなどの重要なインフラストラクチャリソースを共有しないことによって実現され、そのため、地域内の1つのAD障害が発生しても、同じ地域内の他のADの可用性に影響を与える可能性は低くなる。同じ地域内のADは、低遅延、高帯域幅のネットワークによって相互に接続でき、これにより、他のネットワーク(例えば、インターネット、顧客のオンプレミスネットワーク)への高可用性接続を提供し、高可用性と災害復旧の両方のために複数のADに複製システムを構築することが可能になる。クラウドサービスは、高可用性を確保し、リソース障害から保護するために複数のADを使用する。IaaSプロバイダが提供するインフラストラクチャが拡大するにつれて、追加の容量がさらなる地域とADに追加され得る。通常、可用性領域間のトラフィックは暗号化される。 Active Directory (ADs) within a region are isolated from each other, fault-tolerant, and configured to have a very low probability of simultaneous failure. This is achieved by ADs not sharing critical infrastructure resources such as networks, physical cables, cable paths, and cable entry points. Therefore, a failure in one AD within a region is unlikely to affect the availability of other ADs within the same region. ADs within the same region can be interconnected by low-latency, high-bandwidth networks, providing high-availability connectivity to other networks (e.g., the internet, customer on-premises networks) and enabling the construction of replicated systems across multiple ADs for both high availability and disaster recovery. Cloud services use multiple ADs to ensure high availability and protect against resource failures. As the infrastructure provided by the IaaS provider expands, additional capacity may be added to further regions and ADs. Typically, traffic between availability regions is encrypted.

特定の実施形態では、地域は領域にグループ化される。領域は地域の論理的な集合である。領域は互いに分離されており、データは共有されない。同じ領域内の地域は相互に通信できるが、異なる領域内の地域は相互に通信できない。CSPを持つ顧客のテナントまたはアカウントは単一の領域に存在し、その領域に属する1つまたは複数の地域に分散できる。通常、顧客がIaaSサービスに加入すると、領域内の顧客指定の地域(「ホーム」地域と呼ばれる)にその顧客のテナントまたはアカウントが作成される。顧客は、領域内の1つまたは複数の他の地域にわたって顧客のテナントを拡張できる。顧客は、顧客のテナントが存在する領域内にない地域にはアクセスできない。 In certain embodiments, regions are grouped into domains. A domain is a logical collection of regions. Domains are isolated from each other, and data is not shared. Regions within the same domain can communicate with each other, but regions in different domains cannot. A customer's tenant or account with a CSP resides in a single domain and can be distributed across one or more regions belonging to that domain. Typically, when a customer subscribes to an IaaS service, their tenant or account is created in a customer-designated region within the domain (referred to as the "home" region). A customer can extend their tenant across one or more other regions within the domain. A customer cannot access regions that are not in the domain where their tenant resides.

IaaSプロバイダは、複数の領域を提供することができ、各領域は特定の顧客またはユーザのセットのニーズに応える。例えば、商用領域が商用顧客に提供され得る。別の例として、特定の国内の顧客に対してその国に領域が提供され得る。さらに別の例として、政府領域が政府などに提供されてもよい。例えば、政府領域は特定の政府のニーズに応えることができ、商業領域よりも高いセキュリティレベルを備えている場合がある。例えば、Oracle Cloud Infrastructure(OCI)は現在、商用地域用の領域と政府クラウド地域用の2つの領域(例えば、FedRAMP認定およびIL5認定)を提供している。 An IaaS provider can offer multiple domains, each catering to the specific needs of a particular customer or user group. For example, a commercial domain might be offered to commercial customers. Another example is a domain offered to a specific country for a particular domestic customer. Yet another example is a government domain, which may be offered to a government. For instance, a government domain can meet the specific needs of a government and may offer a higher level of security than a commercial domain. For example, Oracle Cloud Infrastructure (OCI) currently offers two domains: one for commercial regions and another for government cloud regions (e.g., FedRAMP certified and IL5 certified).

特定の実施形態では、ADは、1つまたは複数の障害領域に再分割することができる。障害領域は、アンチアフィニティを提供するためのAD内のインフラストラクチャリソースのグループである。障害領域を使用すると、インスタンスが単一のAD内の同じ物理ハードウェア上に存在しないように、コンピューティングインスタンスを配信できる。これはアンチアフィニティとして知られている。障害領域とは、単一障害点を共有するセットのハードウェア構成要素(コンピュータ、スイッチなど)を指す。コンピューティングプールは論理的に障害領域に分割される。このため、1つの障害領域に影響を与えるハードウェア障害またはコンピューティングハードウェアメンテナンスイベントは、他の障害領域のインスタンスには影響しない。実施形態に応じて、各ADの障害領域の数は変化し得る。例えば、特定の実施形態では、各ADは3つの障害領域を含む。障害領域は、AD内の論理データセンターとして機能する。 In certain embodiments, an Active Directory (AD) can be subdivided into one or more fault regions. A fault region is a group of infrastructure resources within the AD to provide anti-affinity. Using fault regions, compute instances can be delivered in such a way that instances do not reside on the same physical hardware within a single AD. This is known as anti-affinity. A fault region refers to a set of hardware components (computers, switches, etc.) that share a single point of failure. A compute pool is logically divided into fault regions. Therefore, a hardware failure or compute hardware maintenance event affecting one fault region does not affect instances in other fault regions. Depending on the embodiment, the number of fault regions in each AD may vary. For example, in certain embodiments, each AD contains three fault regions. Fault regions function as logical data centers within the AD.

顧客がIaaSサービスに加入すると、CSPIからのリソースが顧客にプロビジョニングされ、顧客のテナントに関連付けられる。顧客は、これらのプロビジョニングされたリソースを使用して、プライベートネットワークを構築し、これらのネットワーク上にリソースを展開できる。CSPIによってクラウドでホストされる顧客ネットワークは、仮想クラウドネットワーク(VCN)と呼ばれる。顧客は、顧客に割り当てられるCSPIリソースを使用して1つまたは複数の仮想クラウドネットワーク(VCN)を設定できる。VCNは、仮想ネットワークまたはソフトウェア定義のプライベートネットワークである。顧客のVCNに展開される顧客リソースには、コンピューティングインスタンス(例えば、仮想マシン、ベアメタルインスタンス)およびその他のリソースを含めることができる。これらのコンピューティングインスタンスは、アプリケーション、ロードバランサ、データベースなどのさまざまな顧客のワークロードを表す場合がある。VCNに展開されたコンピューティングインスタンスは、インターネットなどのパブリックネットワークを介して、パブリックアクセス可能なエンドポイント(「パブリックエンドポイント」)と、同じVCN内の他のインスタンスまたは他のVCN(例えば、顧客の他のVCN、または顧客に属していないVCN)と、顧客のオンプレミスデータセンターまたはネットワークと、サービスエンドポイント、およびその他のタイプのエンドポイントと通信できる。 When a customer subscribes to an IaaS service, resources from CSPI are provisioned to the customer and associated with the customer's tenant. The customer can use these provisioned resources to build private networks and deploy resources on these networks. Customer networks hosted in the cloud by CSPI are called Virtual Cloud Networks (VCNs). A customer can configure one or more Virtual Cloud Networks (VCNs) using the CSPI resources allocated to them. A VCN is a virtual network or a software-defined private network. Customer resources deployed in a customer's VCN may include compute instances (e.g., virtual machines, bare metal instances) and other resources. These compute instances may represent various customer workloads such as applications, load balancers, and databases. Compute instances deployed in a VCN can communicate with publicly accessible endpoints ("public endpoints") over public networks such as the internet, with other instances within the same VCN or with other VCNs (e.g., other VCNs of the customer or VCNs not belonging to the customer), with the customer's on-premises data center or network, with service endpoints, and other types of endpoints.

CSPは、CSPIを利用して多様なサービスを提供することができる。場合によっては、CSPIの顧客自身がサービスプロバイダのように機能し、CSPIリソースを使用してサービスを提供し得る。サービスプロバイダは、識別情報(例えば、IPアドレス、DNS名およびポート)によって特徴付けられるサービスエンドポイントを公開し得る。顧客のリソース(例えば、コンピューティングインスタンス)は、その特定のサービスのサービスによって公開されるサービスエンドポイントにアクセスすることによって、特定のサービスを利用できる。これらのサービスエンドポイントは通常、エンドポイントに関連付けられるパブリックIPアドレスを使用して、インターネットなどのパブリック通信ネットワークを介してユーザが公的にアクセスできるエンドポイントである。公的にアクセス可能なネットワークエンドポイントは、パブリックエンドポイントと呼ばれることもある。 A CSP can provide a variety of services using CSPI. In some cases, the CSPI customer themselves may function as a service provider, providing services using CSPI resources. A service provider may expose service endpoints characterized by identifying information (e.g., IP address, DNS name, and port). A customer's resources (e.g., computing instances) can access specific services by accessing the service endpoints exposed by that particular service. These service endpoints are typically publicly accessible to users over public communication networks such as the internet, using the public IP address associated with the endpoint. Publicly accessible network endpoints are sometimes called public endpoints.

特定の実施形態では、サービスプロバイダは、サービスのエンドポイント(サービスエンドポイントと呼ばれることもある)を介してサービスを公開することができる。サービスの顧客は、次いで、このサービスエンドポイントを使用してサービスにアクセスできる。特定の実装では、サービスに提供されるサービスエンドポイントには、そのサービスを利用する予定の複数の顧客がアクセスできる。他の実装では、専用のサービスエンドポイントを顧客に提供して、その顧客だけがその専用のサービスエンドポイントを使用してサービスにアクセスできるようにすることもできる。 In certain embodiments, a service provider may expose a service through a service endpoint (sometimes called a service endpoint). Customers of the service can then access the service using this service endpoint. In certain implementations, the service endpoint provided to a service may be accessible to multiple customers who intend to use that service. In other implementations, a dedicated service endpoint may be provided to a customer, allowing only that customer to access the service using that dedicated endpoint.

特定の実施形態では、VCNが作成されると、VCNは、VCNに割り当てられるプライベートオーバーレイIPアドレスの範囲(例えば、10.0/16)であるプライベートオーバーレイクラスレス領域間ルーティング(CIDR)アドレス空間に関連付けられる。VCNには、関連するサブネット、ルートテーブルおよびゲートウェイが含まれる。VCNは単一地域内に存在するが、地域の1つもしくは複数またはすべての可用性領域にまたがることができる。ゲートウェイは、VCN用に構成された仮想インターフェースであり、VCNとVCN外部の1つまたは複数のエンドポイントとの間のトラフィックの通信を可能にする。1つまたは複数の異なるタイプのゲートウェイをVCNに対して構成して、異なるタイプのエンドポイントとの間の通信を可能にすることができる。 In certain embodiments, when a VCN is created, it is associated with a Private Overlay Classless Inter-Regional Routing (CIDR) address space, which is a range of private overlay IP addresses assigned to the VCN (e.g., 10.0/16). The VCN includes associated subnets, route tables, and gateways. While a VCN resides within a single region, it can span one, more, or all availability regions. A gateway is a virtual interface configured for the VCN, enabling traffic communication between the VCN and one or more endpoints outside the VCN. One or more different types of gateways can be configured for the VCN to enable communication with different types of endpoints.

VCNは、1つまたは複数のサブネットなどの1つまたは複数のサブネットワークに細分することができる。したがって、サブネットは、VCN内に作成できる構成の単位またはサブディビジョンである。VCNには1つまたは複数のサブネットを含めることができる。VCN内の各サブネットは、そのVCN内の他のサブネットと重複しない連続した範囲のオーバーレイIPアドレス(例えば、10.0.0.0/24および10.0.1.0/24)に関連付けられ、これらは、VCNのアドレス空間内のアドレス空間サブセットを表す。 A VCN can be subdivided into one or more subnets, such as one or more subnets. Therefore, a subnet is a unit or subdivision of configuration that can be created within a VCN. A VCN can contain one or more subnets. Each subnet within a VCN is associated with a contiguous range of overlay IP addresses (e.g., 10.0.0.0/24 and 10.0.1.0/24) that do not overlap with other subnets within that VCN, representing a subset of the address space within the VCN's address space.

各コンピューティングインスタンスは、コンピューティングインスタンスがVCNのサブネットに参加できるようにする仮想ネットワークインターフェースカード(VNIC)に関連付けられる。VNICは、物理ネットワークインターフェースカード(NIC)の論理表現である。一般に、VNICはエンティティ(例えば、コンピューティングインスタンス、サービス)と仮想ネットワークとの間のインターフェースである。VNICはサブネット内に存在し、1つまたは複数の関連付けられるIPアドレスと関連付けられるセキュリティルールまたはポリシーを持つ。VNICは、スイッチ上の層2ポートに相当する。VNICは、コンピューティングインスタンスとVCN内のサブネットに接続される。コンピューティングインスタンスに関連付けられるVNICにより、コンピューティングインスタンスをVCNのサブネットの一部にできるようになり、コンピューティングインスタンスが、コンピューティングインスタンスと同じサブネット上にあるエンドポイント、VCN内の異なるサブネットにあるエンドポイント、またはVCN外部のエンドポイントと通信(例えば、パケットの送受信)できるようにする。したがって、コンピューティングインスタンスに関連付けられるVNICによって、コンピューティングインスタンスがVCN内外のエンドポイントに接続する方法が決まる。コンピューティングインスタンスのVNICは、コンピューティングインスタンスが作成されてVCN内のサブネットに追加されるときに作成され、そのコンピューティングインスタンスに関連付けられる。コンピューティングインスタンスのセットを含むサブネットの場合、サブネットにはコンピューティングインスタンスのセットに対応するVNICが含まれ、各VNICはコンピュータインスタンスのセット内のコンピューティングインスタンスに接続される。 Each compute instance is associated with a virtual network interface card (VNIC) that allows the compute instance to join a subnet in the VCN. A VNIC is a logical representation of a physical network interface card (NIC). Generally, a VNIC is the interface between an entity (e.g., compute instance, service) and a virtual network. A VNIC resides within a subnet and has one or more associated IP addresses and associated security rules or policies. A VNIC is equivalent to a Layer 2 port on a switch. The VNIC connects the compute instance to the subnet in the VCN. The VNIC associated with a compute instance enables the compute instance to become part of a subnet in the VCN, allowing the compute instance to communicate (e.g., send and receive packets) with endpoints on the same subnet as the compute instance, endpoints on different subnets within the VCN, or endpoints outside the VCN. Therefore, the VNIC associated with a compute instance determines how the compute instance connects to endpoints both inside and outside the VCN. A compute instance's VNIC is created and associated with that compute instance when the compute instance is created and added to a subnet in the VCN. For a subnet containing a set of compute instances, the subnet includes a VNIC corresponding to the set of compute instances, and each VNIC connects to a compute instance within the set of compute instances.

各コンピューティングインスタンスには、そのコンピューティングインスタンスに関連付けられるVNICを介してプライベートオーバーレイIPアドレスが割り当てられる。このプライベートオーバーレイIPアドレスは、コンピューティングインスタンスの作成時にコンピューティングインスタンスに関連付けられるVNICに割り当てられ、コンピューティングインスタンスとの間のトラフィックのルーティングに使用される。特定のサブネット内のすべてのVNICは、同じルートテーブル、セキュリティリスト、およびDHCPオプションを使用する。前述したように、VCN内の各サブネットは、そのVCN内の他のサブネットと重複しない連続した範囲のオーバーレイIPアドレス(例えば、10.0.0.0/24および10.0.1.0/24)に関連付けられ、VCNのアドレス空間内のアドレス空間サブセットを表す。VCNの特定のサブネット上のVNICの場合、VNICに割り当てられるプライベートオーバーレイIPアドレスは、サブネットに割り当てられるオーバーレイIPアドレスの連続範囲からのアドレスである。 Each compute instance is assigned a private overlay IP address via the VNIC associated with that compute instance. This private overlay IP address is assigned to the VNIC associated with the compute instance when the compute instance is created and is used to route traffic to and from the compute instance. All VNICs within a given subnet use the same route table, security lists, and DHCP options. As mentioned earlier, each subnet within a VCN is associated with a contiguous range of overlay IP addresses that do not overlap with other subnets within that VCN (e.g., 10.0.0.0/24 and 10.0.1.0/24), representing a subset of the address space within the VCN's address space. For a VNIC on a particular subnet of a VCN, the private overlay IP address assigned to the VNIC is an address from the contiguous range of overlay IP addresses assigned to the subnet.

特定の実施形態では、コンピューティングインスタンスには、任意選択で、プライベートオーバーレイIPアドレスに加えて、例えばパブリックサブネット内の場合には1つまたは複数のパブリックIPアドレスなどの追加のオーバーレイIPアドレスが割り当てられてもよい。これらの複数のアドレスは、同じVNIC上で、またはコンピューティングインスタンスに関連付けられる複数のVNIC上で割り当てられる。しかし、各インスタンスにはプライマリVNICがあり、インスタンスの起動時に作成され、インスタンスに割り当てられるオーバーレイプライベートIPアドレスに関連付けられる。このプライマリVNICは削除できない。セカンダリVNICと呼ばれる追加のVNICは、プライマリVNICと同じ可用性領域内の既存のインスタンスに追加できる。すべてのVNICは、インスタンスと同じ可用性領域内にある。セカンダリVNICは、プライマリVNICと同じVCN内のサブネットに存在することも、同じVCNまたは別のVCN内の異なるサブネットに存在することもできる。 In certain embodiments, a compute instance may optionally be assigned additional overlay IP addresses in addition to its private overlay IP address, such as one or more public IP addresses in the case of a public subnet. These multiple addresses may be assigned on the same VNIC or on multiple VNICs associated with the compute instance. However, each instance has a primary VNIC, which is created when the instance is launched and associated with the overlay private IP address assigned to the instance. This primary VNIC cannot be deleted. Additional VNICs, called secondary VNICs, can be added to an existing instance within the same availability area as the primary VNIC. All VNICs reside within the same availability area as the instance. Secondary VNICs may reside on a subnet within the same VCN as the primary VNIC, or on a different subnet within the same or a different VCN.

コンピューティングインスタンスがパブリックサブネット内にある場合、任意選択でパブリックIPアドレスを割り当てることができる。サブネットは、サブネットの作成時にパブリックサブネットまたはプライベートサブネットとして指定できる。プライベートサブネットは、サブネット内のリソース(例えば、コンピューティングインスタンス)および関連するVNICがパブリックオーバーレイIPアドレスを持つことができないことを意味する。パブリックサブネットとは、サブネット内のリソースおよび関連するVNICがパブリックIPアドレスを持つことができることを意味する。顧客は、サブネットが単一の可用性領域に存在するか、地域または領域内の複数の可用性領域にまたがって存在するように指定できる。 If a compute instance is located within a public subnet, it can optionally be assigned a public IP address. A subnet can be designated as either a public or private subnet when it is created. A private subnet means that resources within the subnet (e.g., compute instances) and associated VNICs cannot have public overlay IP addresses. A public subnet means that resources within the subnet and associated VNICs can have public IP addresses. Customers can specify that a subnet resides in a single availability area or spans multiple availability areas within a region or area.

上で説明したように、VCNは1つまたは複数のサブネットに再分割することができる。特定の実施形態では、VCN用に構成された仮想ルータ(VR)(VCN VRまたは単にVRと呼ばれる)は、VCNのサブネット間の通信を可能にする。VCN内のサブネットの場合、VRはそのサブネット(つまり、そのサブネット上のコンピューティングインスタンス)がVCN内の他のサブネット上のエンドポイントおよびVCN外部の他のエンドポイントと通信できるようにする、そのサブネットの論理ゲートウェイを表す。VCN VRは、VCN内のVNICとVCNに関連付けられる仮想ゲートウェイ(「ゲートウェイ」)との間でトラフィックをルーティングするように構成された論理エンティティである。ゲートウェイについては、図1を参照して以下でさらに説明する。VCN VRは層3/IP層の概念である。一実施形態では、VCNに対して1つのVCN VRが存在し、VCN VRは、VCNのサブネットごとに1つのポートを備え、IPアドレスによってアドレス指定される潜在的に無制限の数のポートを有する。このように、VCN VRは、VCN VRが接続されているVCN内のサブネットごとに異なるIPアドレスを持つ。VRは、VCN用に構成されたさまざまなゲートウェイにも接続される。特定の実施形態では、サブネットのオーバーレイIPアドレス範囲からの特定のオーバーレイIPアドレスが、そのサブネットのVCN VRのポート用に予約される。例えば、関連付けられるアドレス範囲がそれぞれ10.0/16および10.1/16である2つのサブネットを持つVCNについて考えてみる。アドレス範囲10.0/16のVCN内の第1のサブネットの場合、この範囲のアドレスがそのサブネットのVCN VRのポート用に予約される。場合によっては、範囲の第1のIPアドレスがVCN VR用に予約され得る。例えば、オーバーレイIPアドレス範囲10.0/16のサブネットの場合、IPアドレス10.0.0.1がそのサブネットのVCN VRのポート用に予約され得る。同じVCN内のアドレス範囲10.1/16の第2のサブネットの場合、VCN VRにはIPアドレス10.1.0.1の第2のサブネット用のポートがあり得る。VCN VRには、VCN内のサブネットごとに異なるIPアドレスがある。 As described above, a VCN can be subdivided into one or more subnets. In certain embodiments, a virtual router (VR) configured for the VCN (referred to as a VCN VR or simply a VR) enables communication between subnets within the VCN. For subnets within a VCN, the VR represents a logical gateway for that subnet, allowing that subnet (i.e., the computing instances on that subnet) to communicate with endpoints on other subnets within the VCN and other endpoints outside the VCN. A VCN VR is a logical entity configured to route traffic between VNICs within the VCN and virtual gateways ("gateways") associated with the VCN. Gateways are described further below with reference to Figure 1. A VCN VR is a Layer 3/IP layer concept. In one embodiment, there is one VCN VR for a VCN, and the VCN VR has one port for each subnet of the VCN and a potentially unlimited number of ports addressed by IP addresses. Thus, a VCN VR has a different IP address for each subnet within the VCN to which it is connected. The VR is also connected to various gateways configured for the VCN. In certain embodiments, specific overlay IP addresses from the overlay IP address range of a subnet are reserved for the ports of the VCN VR in that subnet. For example, consider a VCN with two subnets whose associated address ranges are 10.0/16 and 10.1/16, respectively. For the first subnet in the VCN with address range 10.0/16, addresses in this range are reserved for the ports of the VCN VR in that subnet. In some cases, the first IP addresses in the range may be reserved for the VCN VR. For example, for the subnet with overlay IP address range 10.0/16, the IP address 10.0.0.1 may be reserved for the ports of the VCN VR in that subnet. For a second subnet within the same VPN address range 10.1/16, the VPN VR may have a port for the second subnet with IP address 10.1.0.1. The VPN VR has a different IP address for each subnet within the VPN.

他のいくつかの実施形態では、VCN内の各サブネットは、VRに関連付けられる予約またはデフォルトのIPアドレスを使用してサブネットによってアドレス指定可能な、それ自体の関連付けられるVRを有し得る。予約済みまたはデフォルトのIPアドレスは、例えば、そのサブネットに関連付けられるIPアドレスの範囲からの第1のIPアドレスである場合がある。サブネット内のVNICは、このデフォルトまたは予約されたIPアドレスを使用して、サブネットに関連付けられるVRと通信(例えば、パケットの送受信)できる。このような実施形態では、VRは、そのサブネットの入口/出口ポイントである。VCN内のサブネットに関連付けられるVRは、VCN内の他のサブネットに関連付けられる他のVRと通信できる。VRは、VCNに関連付けられるゲートウェイと通信することもできる。サブネットのVR機能は、サブネット内のVNICのVNIC機能を実行する1つまたは複数のNVD上で実行されているか、それによって実行される。 In some other embodiments, each subnet within a VCN may have its own associated VR, addressable by the subnet using a reserved or default IP address associated with the VR. The reserved or default IP address may be, for example, a first IP address from the range of IP addresses associated with that subnet. A VNIC within a subnet can communicate with the VR associated with the subnet using this default or reserved IP address (e.g., sending and receiving packets). In such embodiments, the VR is the entry/exit point for that subnet. A VR associated with a subnet within a VCN can communicate with other VRs associated with other subnets within the VCN. A VR can also communicate with the gateway associated with the VCN. The subnet's VR functionality is performed on, or by, one or more NVDs that perform the VNIC functionality of the VNIC within the subnet.

VCNに対してルートテーブル、セキュリティルール、およびDHCPオプションを構成することができる。ルートテーブルはVCNの仮想ルートテーブルであり、ゲートウェイまたは特別に構成されたインスタンスを経由してVCN内のサブネットからVCN外の宛先にトラフィックをルーティングするルールが含まれている。VCNのルートテーブルをカスタマイズして、VCNとの間でパケットを転送/ルーティングする方法を制御できる。DHCPオプションは、インスタンスの起動時に自動的に提供される構成情報を指す。 You can configure route tables, security rules, and DHCP options for a VCN. The route table is the VCN's virtual route table, containing rules that route traffic from subnets within the VCN to destinations outside the VCN, via a gateway or specially configured instance. You can customize the VCN's route table to control how packets are forwarded/routed to and from the VCN. DHCP options refer to configuration information automatically provided when an instance is launched.

VCNに対して構成されたセキュリティルールは、VCNに対するオーバーレイファイアウォールルールを表す。セキュリティルールには、入口および出口ルールを含めることができ、VCN内のインスタンスへの出入りが許可されるトラフィックのタイプ(例えば、プロトコルおよびポートに基づく)を指定できる。顧客は、特定のルールがステートフルであるかステートレスであるかを選択できる。例えば、顧客はソースCIDR0.0.0.0/0、宛先TCPポート22を使用してステートフル入口ルールを設定することで、任意の場所からセットのインスタンスへの受信SSHトラフィックを許可できる。セキュリティルールは、ネットワークセキュリティグループまたはセキュリティリストを使用して実装できる。ネットワークセキュリティグループは、そのグループ内のリソースにのみ適用されるセットのセキュリティルールで構成される。一方、セキュリティリストには、セキュリティリストを使用する任意のサブネット内のすべてのリソースに適用されるルールが含まれている。VCNには、デフォルトのセキュリティルールを含むデフォルトのセキュリティリストが提供され得る。VCNに対して構成されたDHCPオプションは、インスタンスの起動時にVCN内のインスタンスに自動的に提供される構成情報を提供する。 Security rules configured for a VCN represent overlay firewall rules for the VCN. Security rules can include ingress and egress rules, specifying the types of traffic (e.g., based on protocol and port) allowed to enter and exit instances within the VCN. Customers can choose whether specific rules are stateful or stateless. For example, a customer can configure a stateful ingress rule using source CIDR 0.0.0.0/0 and destination TCP port 22 to allow incoming SSH traffic from any location to a set of instances. Security rules can be implemented using network security groups or security lists. A network security group consists of a set of security rules that apply only to resources within that group. A security list, on the other hand, contains rules that apply to all resources within any subnet using the security list. A VCN may be provided with a default security list containing default security rules. DHCP options configured for a VCN provide configuration information that is automatically provided to instances within the VCN when instances are launched.

特定の実施形態では、VCNの構成情報は、VCN制御プレーンによって決定され、記憶される。VCNの構成情報には、例えば、VCNに関連付けられるアドレス範囲、VCN内のサブネットおよび関連情報、VCNに関連付けられる1つまたは複数のVR、VCN内のコンピューティングインスタンスおよび関連するVNIC、VCNに関連付けられるさまざまな仮想化ネットワーク機能を実行するNVD(例えば、VNIC、VR、ゲートウェイ)、VCNの状態情報、ならびにその他のVCN関連情報、に関する情報が含まれ得る。特定の実施形態では、VCN配信サービスは、VCN制御プレーンによって記憶された構成情報、またはその一部をNVDに公開する。配信情報は、VCN内のコンピューティングインスタンスとの間でパケットを転送するためにNVDによって記憶および使用される情報(例えば、転送テーブル、ルーティングテーブルなど)を更新するために使用され得る。 In certain embodiments, VCN configuration information is determined and stored by the VCN control plane. This VCN configuration information may include, for example, information about the address range associated with the VCN, subnets and associated information within the VCN, one or more VRs associated with the VCN, computing instances and associated VNICs within the VCN, NVDs (e.g., VNICs, VRs, gateways) performing various virtualization network functions associated with the VCN, VCN status information, and other VCN-related information. In certain embodiments, the VCN distribution service exposes the configuration information stored by the VCN control plane, or a portion thereof, to the NVD. The distribution information may be used to update information stored and used by the NVD for forwarding packets to and from computing instances within the VCN (e.g., forwarding tables, routing tables, etc.).

特定の実施形態では、VCNおよびサブネットの作成はVCN制御プレーン(CP)によって取り扱われ、コンピューティングインスタンスの起動はコンピューティング制御プレーンによって取り扱われる。コンピューティング制御プレーンは、コンピューティングインスタンスに物理リソースを割り当てる役割を担い、次にVCN制御プレーンを呼び出して、VNICを作成してコンピューティングインスタンスに接続する。また、VCN CPは、パケット転送およびルーティング機能を実行するように構成されたVCNデータプレーンにVCNデータマッピングを送信する。特定の実施形態では、VCN CPは、VCNデータプレーンに更新を提供する役割を担う配信サービスを提供する。VCN制御プレーンの例も図12、13、14、および15(参考文献1216、1316、1416、および1516を参照)にも示され、以下に説明する。 In certain embodiments, the creation of VCNs and subnets is handled by the VCN control plane (CP), and the startup of compute instances is also handled by the compute control plane. The compute control plane is responsible for allocating physical resources to compute instances and then calling the VCN control plane to create VNICs and connect them to the compute instances. The VCN CP also transmits VCN data mappings to the VCN data plane, which is configured to perform packet forwarding and routing functions. In certain embodiments, the VCN CP provides a distribution service responsible for providing updates to the VCN data plane. Examples of VCN control planes are also shown in Figures 12, 13, 14, and 15 (see references 1216, 1316, 1416, and 1516) and are described below.

顧客は、CSPIによってホストされるリソースを使用して1つまたは複数のVCNを作成することができる。顧客のVCNに展開されたコンピューティングインスタンスは、異なるエンドポイントと通信し得る。これらのエンドポイントには、CSPIによってホストされるエンドポイントとCSPI外部のエンドポイントが含まれ得る。 Customers can create one or more VCNs using resources hosted by CSPI. Computing instances deployed in a customer's VCN may communicate with different endpoints. These endpoints may include endpoints hosted by CSPI and endpoints outside of CSPI.

CSPIを使用してクラウドベースのサービスを実装するためのさまざまな異なるアーキテクチャが、図1、2、3、4、5、12、13、14、および15に示され、以下に説明する。図1は、特定の実施形態による、CSPIによってホストされるオーバーレイまたは顧客VCNを示す配信環境100の高レベル図である。図1に示される配信環境には、オーバーレイネットワーク内の複数の構成要素が含まれている。図1に示す配信環境100は、単なる一例であり、請求される実施形態の範囲を不当に限定することを意図するものではない。多くの変形、代替、および修正が可能である。例えば、一部の実装では、図1に示される配信環境は、図1に示されるものより多くの、または少ないシステムまたは構成要素を有してもよく、2つ以上のシステムを組み合わせることができ、あるいは、システムの構成や配置が異なる場合もある。 Various different architectures for implementing cloud-based services using CSPI are shown in Figures 1, 2, 3, 4, 5, 12, 13, 14, and 15, and are described below. Figure 1 is a high-level diagram of a delivery environment 100 showing an overlay or customer VCN hosted by CSPI, according to a particular embodiment. The delivery environment shown in Figure 1 includes multiple components within the overlay network. The delivery environment 100 shown in Figure 1 is merely an example and is not intended to unduly limit the scope of the claimed embodiments. Many variations, substitutions, and modifications are possible. For example, in some implementations, the delivery environment shown in Figure 1 may have more or fewer systems or components than those shown in Figure 1, may combine two or more systems, or may have different system configurations or arrangements.

図1に示される例に示されるように、配信環境100は、顧客が加入して仮想クラウドネットワーク(VCN)を構築するために使用できるサービスおよびリソースを提供するCSPI101を備える。特定の実施形態では、CSPI101は、加入顧客にIaaSサービスを提供する。CSPI101内のデータセンターは、1つまたは複数の地域に編成され得る。地域「地域US」102の一例を図1に示す。顧客は地域102に対して顧客VCN104を構成した。顧客は、VCN104上にさまざまなコンピューティングインスタンスを展開することができ、そのコンピューティングインスタンスには、仮想マシンまたはベアメタルインスタンスが含まれ得る。インスタンスの例には、アプリケーション、データベース、ロードバランサなどが含まれる。 As shown in the example in Figure 1, the distribution environment 100 includes a CSPI 101 that provides services and resources that customers can use to subscribe and build a virtual cloud network (VCN). In a particular embodiment, the CSPI 101 provides IaaS services to the subscriber customer. The data centers within the CSPI 101 may be organized into one or more regions. An example of region "Region US" 102 is shown in Figure 1. The customer has configured a customer VCN 104 for region 102. The customer can deploy various computing instances on the VCN 104, which may include virtual machines or bare metal instances. Examples of instances include applications, databases, load balancers, etc.

図1に示される実施形態では、顧客VCN104は、2つのサブネット、すなわち「Subnet-1」および「Subnet-2」を備え、各サブネットは独自のCIDRIPアドレス範囲を有する。図1において、Subnet-1のオーバーレイIPアドレス範囲は10.0/16、Subnet-2のアドレス範囲は10.1/16である。VCN仮想ルータ105は、VCN104のサブネット間およびVCN外部の他のエンドポイントとの通信を可能にするVCNの論理ゲートウェイを表す。VCN VR105は、VCN104内のVNICとVCN104に関連付けられるゲートウェイとの間でトラフィックをルーティングするように構成される。VCN VR105は、VCN104の各サブネットにポートを提供する。例えば、VR105は、Subnet-1にIPアドレス10.0.0.1のポートを提供し、Subnet-2にIPアドレス10.1.0.1のポートを提供し得る。 In the embodiment shown in Figure 1, the customer VCN 104 comprises two subnets, namely "Subnet-1" and "Subnet-2," each subnet having its own CIDRIP address range. In Figure 1, the overlay IP address range for Subnet-1 is 10.0/16, and the address range for Subnet-2 is 10.1/16. The VCN virtual router 105 represents the logical gateway of the VCN, enabling communication between subnets of VCN 104 and with other endpoints outside the VCN. The VCN VR 105 is configured to route traffic between VNICs within VCN 104 and gateways associated with VCN 104. The VCN VR 105 provides ports to each subnet of VCN 104. For example, VR105 may provide Subnet-1 with a port with IP address 10.0.0.1 and Subnet-2 with a port with IP address 10.1.0.1.

複数のコンピューティングインスタンスを各サブネット上に展開することができ、その場合、コンピューティングインスタンスは、仮想マシンインスタンスおよび/またはベアメタルインスタンスであり得る。サブネット内のコンピューティングインスタンスは、CSPI101内の1つまたは複数のホストマシンによってホストされ得る。コンピューティングインスタンスは、コンピューティングインスタンスに関連付けられるVNICを介してサブネットに参加する。例えば、図1に示すように、コンピューティングインスタンスC1は、コンピューティングインスタンスに関連付けられるVNICを介してSubnet-1の一部である。同様に、コンピューティングインスタンスC2は、C2に関連付けられるVNICを介してSubnet-1の一部である。同様に、複数のコンピューティングインスタンス(仮想マシンインスタンスまたはベアメタルインスタンスであり得る)がSubnet-1の一部になり得る。関連付けられるVNICを介して、各コンピューティングインスタンスにはプライベートオーバーレイIPアドレスとMACアドレスが割り当てられる。例えば、図1では、コンピューティングインスタンスC1は、オーバーレイIPアドレス10.0.0.2、MACアドレスM1を有し、一方、コンピューティングインスタンスC2は、プライベートオーバーレイIPアドレス10.0.0.3とMACアドレスM2を有する。Subnet-1の各コンピューティングインスタンス(コンピューティングインスタンスC1およびC2を含む)には、IPアドレス10.0.0.1を使用するVCN VR105へのデフォルトルートがあり、これは、Subnet-1のVCN VR105のポートのIPアドレスである。 Multiple computing instances can be deployed on each subnet, in which case the computing instances may be virtual machine instances and/or bare metal instances. Computing instances within a subnet may be hosted by one or more host machines within CSPI101. Computing instances join the subnet via a VNIC associated with the computing instance. For example, as shown in Figure 1, computing instance C1 is part of Subnet-1 via a VNIC associated with the computing instance. Similarly, computing instance C2 is part of Subnet-1 via a VNIC associated with C2. Similarly, multiple computing instances (which may be virtual machine instances or bare metal instances) may be part of Subnet-1. Each computing instance is assigned a private overlay IP address and a MAC address via its associated VNIC. For example, in Figure 1, computing instance C1 has the overlay IP address 10.0.0.2 and MAC address M1, while computing instance C2 has the private overlay IP address 10.0.0.3 and MAC address M2. Each compute instance of Subnet-1 (including compute instances C1 and C2) has a default route to VCN VR105 using the IP address 10.0.0.1, which is the IP address of the port on VCN VR105 for Subnet-1.

Subnet-2は、仮想マシンインスタンスおよび/またはベアメタルインスタンスを含む複数のコンピューティングインスタンスをその上に展開することができる。例えば、図1に示すように、コンピューティングインスタンスD1およびD2は、それぞれのコンピューティングインスタンスに関連付けられるVNICを介してSubnet-2の一部である。図1に示される実施形態では、コンピューティングインスタンスD1はオーバーレイIPアドレス10.1.0.2とMACアドレスMM1を有し、一方、コンピューティングインスタンスD2はプライベートオーバーレイIPアドレス10.1.0.3とMACアドレスMM2を有する。コンピューティングインスタンスD1およびD2を含むSubnet-2の各コンピューティングインスタンスには、Subnet-2のVCN VR105のポートのIPアドレスであるIPアドレス10.1.0.1を使用するVCN VR105へのデフォルトルートがある。 Subnet-2 can deploy multiple computing instances, including virtual machine instances and/or bare metal instances, on its surface. For example, as shown in Figure 1, computing instances D1 and D2 are part of Subnet-2 via VNICs associated with each computing instance. In the embodiment shown in Figure 1, computing instance D1 has the overlay IP address 10.1.0.2 and MAC address MM1, while computing instance D2 has the private overlay IP address 10.1.0.3 and MAC address MM2. Each computing instance of Subnet-2, including computing instances D1 and D2, has a default route to VCN VR105 using IP address 10.1.0.1, which is the IP address of the port of Subnet-2's VCN VR105.

VCNA104は、1つまたは複数のロードバランサを含むこともできる。例えば、ロードバランサをサブネットに提供し、サブネット上の複数のコンピューティングインスタンス全体でトラフィックの負荷を分散するように構成できる。VCN内のサブネット間でトラフィックの負荷を分散するために、ロードバランサを提供することもできる。 The VCN 104 may also include one or more load balancers. For example, a load balancer can be provided to a subnet and configured to distribute the traffic load across multiple computing instances on that subnet. A load balancer can also be provided to distribute the traffic load across subnets within the VCN.

VCN104上に展開された特定のコンピューティングインスタンスは、さまざまな異なるエンドポイントと通信することができる。これらのエンドポイントには、CSPI200によってホストされるエンドポイントとCSPI200の外部のエンドポイントが含まれ得る。CSPI101によってホストされるエンドポイントは、特定のコンピューティングインスタンスと同じサブネット上のエンドポイント(例えば、Subnet-1の2つのコンピューティングインスタンス間の通信)、同じVCN内にある異なるサブネット上のエンドポイント(例えば、Subnet-1内のコンピューティングインスタンスとSubnet-2内のコンピューティングインスタンスとの間の通信)、同じ地域内の異なるVCNのエンドポイント(例えば、Subnet-1内のコンピューティングインスタンスと同じ地域106または110内のVCNのエンドポイントとの間の通信、Subnet-1内のコンピューティングインスタンスと同じ地域のサービスネットワーク110内のエンドポイントとの間の通信)、または、異なる地域内のVCN内のエンドポイント(例えば、Subnet-1内のコンピューティングインスタンスと、異なる地域108内のVCN内のエンドポイントとの間の通信)を含み得る。CSPI101によってホストされるサブネット内のコンピューティングインスタンスは、CSPI101によってホストされない(すなわち、CSPI101の外部にある)エンドポイントと通信することもできる。これらの外部エンドポイントには、顧客のオンプレミスネットワーク116内のエンドポイント、他のリモートクラウドホストネットワーク118内のエンドポイント、インターネットなどのパブリックネットワークを介してアクセス可能なパブリックエンドポイント114、および他のエンドポイントが含まれる。 A specific computing instance deployed on VCN 104 can communicate with various different endpoints. These endpoints may include endpoints hosted by CSPI 200 and endpoints outside of CSPI 200. Endpoints hosted by CSPI 101 may include endpoints on the same subnet as a specific computing instance (e.g., communication between two computing instances in Subnet-1), endpoints on different subnets within the same VCN (e.g., communication between a computing instance in Subnet-1 and a computing instance in Subnet-2), endpoints in different VCNs within the same region (e.g., communication between a computing instance in Subnet-1 and an endpoint in a VCN in the same region 106 or 110, or between a computing instance in Subnet-1 and an endpoint in service network 110 in the same region), or endpoints in VCNs in different regions (e.g., communication between a computing instance in Subnet-1 and an endpoint in a VCN in a different region 108). Computing instances within a subnet hosted by CSPI 101 can also communicate with endpoints not hosted by CSPI 101 (i.e., outside of CSPI 101). These external endpoints include endpoints within the customer's on-premises network 116, endpoints within other remote cloud host networks 118, public endpoints 114 accessible via public networks such as the internet, and other endpoints.

同じサブネット上のコンピューティングインスタンス間の通信は、ソースコンピューティングインスタンスと宛先コンピューティングインスタンスに関連付けられるVNICを使用して容易になる。例えば、Subnet-1内のコンピューティングインスタンスC1は、Subnet-1内のコンピューティングインスタンスC2にパケットを送信したい場合がある。ソースコンピューティングインスタンスから発信され、宛先が同じサブネット内の別のコンピューティングインスタンスであるパケットの場合、パケットはまず、ソースコンピューティングインスタンスに関連付けられるVNICによって処理される。ソースコンピューティングインスタンスに関連付けられるVNICによって実行される処理は、パケットヘッダーからパケットの宛先情報を決定することと、ソースコンピューティングインスタンスに関連付けられるVNICに構成されるポリシー(例えば、セキュリティリスト)を識別することと、パケットの次のホップを決定することと、必要に応じてパケットのカプセル化/カプセル化解除機能を実行することと、次に、目的の宛先へのパケットの通信を容易にすることを目的として、パケットを次のホップに転送/ルーティングすることと、を含み得る。宛先コンピューティングインスタンスがソースコンピューティングインスタンスと同じサブネットにある場合、ソースコンピューティングインスタンスに関連付けられるVNICは、宛先コンピューティングインスタンスに関連付けられるVNICを識別し、処理のためにパケットをそのVNICに転送するように構成される。次に、宛先コンピューティングインスタンスに関連付けられるVNICが実行され、パケットが宛先コンピューティングインスタンスに転送される。 Communication between computing instances on the same subnet is facilitated using VNICs associated with the source and destination computing instances. For example, computing instance C1 in Subnet-1 may want to send a packet to computing instance C2, also in Subnet-1. For a packet originating from the source computing instance and destined for another computing instance on the same subnet, the packet is first processed by the VNIC associated with the source computing instance. The processing performed by the VNIC associated with the source computing instance may include determining the packet's destination information from the packet header, identifying the policies (e.g., security lists) configured in the VNIC associated with the source computing instance, determining the packet's next hop, performing packet encapsulation/decapsulation functions as needed, and then forwarding/routing the packet to the next hop to facilitate communication of the packet to its intended destination. If the destination computing instance is on the same subnet as the source computing instance, the VNIC associated with the source computing instance is configured to identify the VNIC associated with the destination computing instance and forward the packet to that VNIC for processing. Next, the VNIC associated with the destination computing instance is executed, and the packet is forwarded to the destination computing instance.

サブネット内のコンピューティングインスタンスから同じVCN内の異なるサブネット内のエンドポイントにパケットが通信される場合、その通信は、ソースおよび宛先のコンピューティングインスタンスおよびVCN VRに関連付けられるVNICによって容易にされる。例えば、図1のSubnet-1のコンピューティングインスタンスC1が、Subnet-2のコンピューティングインスタンスD1にパケットを送信したい場合、パケットはまずコンピューティングインスタンスC1に関連付けられるVNICによって処理される。コンピューティングインスタンスC1に関連付けられるVNICは、VCN VRのデフォルトルートまたはポート10.0.0.1を使用してパケットをVCN VR105にルーティングするように構成される。VCN VR105は、ポート10.1.0.1を使用してパケットをSubnet-2にルーティングするように構成される。その後、パケットはD1に関連付けられるVNICによって受信されて処理され、VNICはパケットをコンピューティングインスタンスD1に転送する。 When packets are communicated from a computing instance within a subnet to an endpoint in a different subnet within the same VCN, the communication is facilitated by the VNICs associated with the source and destination computing instances and VCN VRs. For example, if computing instance C1 in Subnet-1 in Figure 1 wants to send a packet to computing instance D1 in Subnet-2, the packet is first processed by the VNIC associated with computing instance C1. The VNIC associated with computing instance C1 is configured to route the packet to VCN VR 105 using the VCN VR's default route or port 10.0.0.1. VCN VR 105 is configured to route the packet to Subnet-2 using port 10.1.0.1. The packet is then received and processed by the VNIC associated with D1, which forwards the packet to computing instance D1.

VCN104内のコンピューティングインスタンスからVCN104の外部にあるエンドポイントにパケットが通信される場合、その通信は、ソースコンピューティングインスタンスに関連付けられるVNIC、VCN VR105、およびVCN104に関連付けられるゲートウェイによって容易にされる。1つまたは複数のタイプのゲートウェイをVCN104に関連付けることができる。ゲートウェイは、VCNと別のエンドポイントとの間のインターフェースであり、別のエンドポイントはVCNの外部にある。ゲートウェイは層3/IP層の概念であり、VCNがVCN外部のエンドポイントと通信できるようにする。したがって、ゲートウェイは、VCNと他のVCNまたはネットワークとの間のトラフィックフローを容易にする。さまざまな異なるタイプのゲートウェイをVCNに対して構成して、異なるタイプのエンドポイントとの異なるタイプの通信を容易にすることができる。ゲートウェイに応じて、通信はパブリックネットワーク(例えば、インターネット)経由で行われる場合もあれば、プライベートネットワーク経由で行われる場合もある。これらの通信には、さまざまな通信プロトコルが使用され得る。 When packets are communicated from a computing instance within VCN104 to an endpoint outside of VCN104, this communication is facilitated by the VNIC associated with the source computing instance, VCN VR105, and the gateway associated with VCN104. One or more types of gateways can be associated with VCN104. A gateway is an interface between the VCN and another endpoint, which is outside the VCN. A gateway is a Layer 3/IP layer concept that allows the VCN to communicate with endpoints outside the VCN. Therefore, gateways facilitate traffic flow between the VCN and other VCNs or networks. Different types of gateways can be configured for a VCN to facilitate different types of communication with different types of endpoints. Depending on the gateway, communication may take place over a public network (e.g., the Internet) or over a private network. Various communication protocols can be used for these communications.

例えば、コンピューティングインスタンスC1は、VCN104の外部のエンドポイントと通信したい場合がある。パケットは、最初に、ソースコンピューティングインスタンスC1に関連付けられるVNICによって処理され得る。VNIC処理により、パケットの宛先がC1のSubnet-1の外部にあると決定される。C1に関連付けられるVNICは、VCN104のVCN VR105にパケットを転送できる。次に、VCN VR105はパケットを処理し、処理の一部として、パケットの宛先に基づいて、VCN104に関連付けられる特定のゲートウェイをパケットの次のホップとして決定する。次に、VCN VR105は、特定の識別されたゲートウェイにパケットを転送することができる。例えば、宛先が顧客のオンプレミスネットワーク内のエンドポイントである場合、パケットは、VCN VR105によって、VCN104用に構成された動的ルーティングゲートウェイ(DRG)ゲートウェイ122に転送され得る。その後、パケットはゲートウェイから次のホップに転送され、最終的な目的の宛先へのパケットの通信が容易になり得る。 For example, computing instance C1 may want to communicate with an endpoint outside of VCN 104. The packet may first be processed by the VNIC associated with source computing instance C1. VNIC processing determines that the packet's destination is outside of Subnet-1 of C1. The VNIC associated with C1 can then forward the packet to VCN VR 105 of VCN 104. Next, VCN VR 105 processes the packet and, as part of the processing, determines a specific gateway associated with VCN 104 as the next hop for the packet, based on the packet's destination. VCN VR 105 can then forward the packet to the specific identified gateway. For example, if the destination is an endpoint within the customer's on-premises network, the packet may be forwarded by VCN VR 105 to a dynamic routing gateway (DRG) gateway 122 configured for VCN 104. The packet is then forwarded from the gateway to the next hop, facilitating communication of the packet to its final destination.

VCNに対してさまざまな異なるタイプのゲートウェイを構成することができる。VCN用に構成できるゲートウェイの例が図1に示され、以下に説明する。VCNに関連付けられるゲートウェイの例もまた、図12、13、14、および15(例えば、参照番号1234、1236、1238、1334、1336、1338、1434、1436、1438、1534、1536、および1538で参照されるゲートウェイ)に示され、以下で説明する。図1に示される実施形態に示されるように、動的ルーティングゲートウェイ(DRG)122は、顧客VCN104に追加するか、顧客VCN104に関連付けることができ、顧客VCN104と別のエンドポイントとの間のプライベートネットワークトラフィック通信のためのパスを提供し、別のエンドポイントは、顧客のオンプレミスネットワーク116、CSPI101の異なる地域のVCN108、またはCSPI101によってホストされていない他のリモートクラウドネットワーク118であり得る。顧客のオンプレミスネットワーク116は、顧客のリソースを使用して構築された顧客ネットワークまたは顧客データセンターであってもよい。顧客のオンプレミスネットワーク116へのアクセスは、一般に非常に制限されている。顧客のオンプレミスネットワーク116と、CSPI101によってクラウドに展開またはホストされる1つまたは複数のVCN104の両方を有する顧客の場合、顧客は、オンプレミスネットワーク116とクラウドベースのVCN104が相互に通信できるようにしたい場合がある。これにより、顧客は、CSPI101によってホストされる顧客のVCN104とオンプレミスネットワーク116を含む拡張ハイブリッド環境を構築できる。DRG122はこの通信を可能にする。このような通信を可能にするために、チャネルの一方のエンドポイントが顧客オンプレミスネットワーク116内にあり、他方のエンドポイントがCSPI101内にあり、顧客VCN104に接続される通信チャネル124が設定される。通信チャネル124は、インターネットなどのパブリック通信ネットワークまたはプライベート通信ネットワークを介することができる。インターネットなどのパブリック通信ネットワーク上のIPsecVPN技術、パブリックネットワークの代わりにプライベートネットワークを使用するOracleのFastConnect技術など、さまざまな異なる通信プロトコルが使用され得る。通信チャネル124の1つのエンドポイントを形成する顧客オンプレミスネットワーク116内の装置または機器は、図1に示されるCPE126などの顧客プレミス機器(CPE)と呼ばれる。CSPI101側では、エンドポイントはDRG122を実行するホストマシンである場合がある。 Various different types of gateways can be configured for a VCN. An example of a gateway that can be configured for a VCN is shown in Figure 1 and described below. Examples of gateways associated with a VCN are also shown in Figures 12, 13, 14, and 15 (for example, gateways referenced in reference numbers 1234, 1236, 1238, 1334, 1336, 1338, 1434, 1436, 1438, 1534, 1536, and 1538) and described below. As shown in the embodiment shown in Figure 1, a dynamic routing gateway (DRG) 122 can be added to or associated with a customer VCN 104, providing a path for private network traffic communication between the customer VCN 104 and another endpoint, where the other endpoint could be the customer's on-premises network 116, a different regional VCN 108 of CSPI 101, or another remote cloud network 118 not hosted by CSPI 101. The customer's on-premises network 116 may be a customer network or customer data center built using the customer's resources. Access to the customer's on-premises network 116 is generally very restricted. For a customer who has both the customer's on-premises network 116 and one or more VCNs 104 deployed or hosted in the cloud by CSPI 101, the customer may want to allow the on-premises network 116 and the cloud-based VCNs 104 to communicate with each other. This would allow the customer to build an enhanced hybrid environment that includes the customer's VCNs 104 hosted by CSPI 101 and the on-premises network 116. DRG 122 enables this communication. To enable such communication, a communication channel 124 is configured, with one endpoint of the channel located within the customer's on-premises network 116 and the other endpoint located within CSPI 101, and connected to the customer's VCNs 104. The communication channel 124 can be via a public communication network such as the internet or a private communication network. Various different communication protocols may be used, such as IPsecVPN technology on public communication networks like the Internet, or Oracle's FastConnect technology which uses a private network instead of a public network. A device or equipment within the customer's on-premises network 116 that forms one endpoint of communication channel 124 is called a customer-premises device (CPE), such as CPE 126 shown in Figure 1. On the CSPI 101 side, the endpoint may be a host machine running DRG 122.

特定の実施形態では、リモートピアリング接続(RPC)をDRGに追加することができ、これにより顧客はあるVCNを異なる地域内の別のVCNとピアリングできるようになる。このようなRPCを使用すると、顧客VCN104は、DRG122を使用して、別の地域のVCN108に接続することができる。DRG122はまた、CSPI101によってホストされない、Microsoft Adureクラウド、Amazon AWSクラウドなどの他のリモートクラウドネットワーク118と通信するために使用されてもよい。 In certain embodiments, a Remote Peering Connection (RPC) can be added to the DRG, allowing a customer to peer one VCN with another VCN in a different region. Using such an RPC, a customer VCN 104 can connect to a VCN 108 in another region using the DRG 122. The DRG 122 may also be used to communicate with other remote cloud networks 118, such as a Microsoft Adure cloud or an Amazon AWS cloud, which are not hosted by the CSPI 101.

図1に示すように、顧客VCN104用にインターネットゲートウェイ(IGW)120を構成することができ、VCN104上のコンピューティングインスタンスが、インターネットなどのパブリックネットワークを介してアクセス可能なパブリックエンドポイント114と通信できるようにする。IGW1120は、VCNをインターネットなどのパブリックネットワークに接続するゲートウェイである。IGW120は、VCN104などのVCN内のパブリックサブネット(パブリックサブネット内のリソースがパブリックオーバーレイIPアドレスを有する)が、インターネットなどのパブリックネットワーク114上のパブリックエンドポイント112に直接アクセスできるようにする。IGW120を使用すると、VCN104内のサブネットまたはインターネットから接続を開始することができる。 As shown in Figure 1, an Internet Gateway (IGW) 120 can be configured for the customer VCN 104, allowing computing instances on VCN 104 to communicate with public endpoints 114 accessible via a public network such as the Internet. The IGW 120 is a gateway that connects the VCN to a public network such as the Internet. The IGW 120 allows public subnets within a VCN, such as VCN 104 (where resources within the public subnet have public overlay IP addresses), to directly access public endpoints 112 on the public network 114, such as the Internet. Using the IGW 120, connections can be initiated from subnets within VCN 104 or from the Internet.

ネットワークアドレス変換(NAT)ゲートウェイ128は、顧客のVCN104用に構成することができ、専用のパブリックオーバーレイIPアドレスを持たない顧客のVCN内のクラウドリソースがインターネットにアクセスできるようにし、これをそれらのリソースを公開することなく行い、受信インターネット接続(L4~L7接続など)を誘導する。これにより、VCN104内のプライベートSubnet-1などのVCN内のプライベートサブネットが、インターネット上のパブリックエンドポイントにプライベートアクセスできるようになる。NATゲートウェイでは、プライベートサブネットからパブリックインターネットへの接続のみを開始でき、インターネットからプライベートサブネットへの接続は開始できない。 The Network Address Translation (NAT) gateway 128 can be configured for the customer's VCN 104, allowing cloud resources within the customer's VCN that do not have dedicated public overlay IP addresses to access the internet without exposing those resources, and directing incoming internet connections (such as L4-L7 connections). This allows private subnets within the VCN, such as Private Subnet-1 within VCN 104, to privately access public endpoints on the internet. The NAT gateway can only initiate connections from private subnets to the public internet; it cannot initiate connections from the internet to private subnets.

特定の実施形態では、サービスゲートウェイ(SGW)126は、顧客VCN104用に構成することができ、VCN104とサービスネットワーク110内のサポートされるサービスエンドポイントとの間のプライベートネットワークトラフィックのためのパスを提供する。特定の実施形態では、サービスネットワーク110はCSPによって提供され、さまざまなサービスを提供することができる。このようなサービスネットワークの例としては、顧客が使用できるさまざまなサービスを提供するOracleのServices Networkがある。例えば、顧客VCN104のプライベートサブネット内のコンピューティングインスタンス(例えばデータベースシステム)は、パブリックIPアドレスまたはインターネットへのアクセスを必要とせずに、データをサービスエンドポイント(例えばオブジェクト記憶装置)にバックアップすることができる。特定の実施形態では、VCNはSGWを1つだけ有することができ、接続はVCN内のサブネットからのみ開始でき、サービスネットワーク110からは開始できない。VCNが別のVCNとピアリングされている場合、通常、他のVCN内のリソースはSGWにアクセスできない。FastConnectまたはVPN Connectを使用してVCNに接続されているオンプレミスネットワーク内のリソースは、そのVCN用に構成されたサービスゲートウェイを使用することもできる。 In certain embodiments, a service gateway (SGW) 126 can be configured for a customer VCN 104 and provide a path for private network traffic between the VCN 104 and supported service endpoints within a service network 110. In certain embodiments, the service network 110 is provided by a CSP and can provide a variety of services. An example of such a service network is Oracle's Services Network, which provides a variety of services that customers can use. For example, a computing instance (e.g., a database system) in a private subnet of the customer VCN 104 can back up data to a service endpoint (e.g., object storage) without requiring a public IP address or access to the internet. In certain embodiments, a VCN may have only one SGW, and connections can only be initiated from subnets within the VCN and not from the service network 110. If a VCN is peered with another VCN, resources in the other VCN typically cannot access the SGW. Resources within an on-premises network connected to a VCN using FastConnect or VPN Connect can also use the service gateway configured for that VCN.

特定の実装では、SGW126は、サービスクラスレス領域間ルーティング(CIDR)ラベルの概念を使用し、これは、対象のサービスまたはサービスのグループのすべての地域パブリックIPアドレス範囲を表す文字列である。顧客は、SGWおよび関連するルートルールを設定してサービスへのトラフィックを制御するときに、サービスCIDRラベルを使用する。顧客は、将来サービスのパブリックIPアドレスが変更された場合にセキュリティルールを調整する必要なく、セキュリティルールを構成するときに任意選択でこれを利用できる。 In certain implementations, SGW126 uses the concept of Service Classless Inter-Regional Routing (CIDR) labels, which are strings representing all regional public IP address ranges for the service or group of services in question. Customers use service CIDR labels when configuring the SGW and associated route rules to control traffic to their services. Customers can optionally utilize this when configuring security rules, without having to adjust security rules if the public IP addresses of their services change in the future.

ローカルピアリングゲートウェイ(LPG)132は、顧客VCN104に追加することができ、VCN104が同じ地域内の別のVCNとピアリングできるようにするゲートウェイである。ピアリングとは、トラフィックがインターネットなどのパブリックネットワークを通過したり、トラフィックが顧客のオンプレミスネットワーク116を介してルーティングされたりすることなく、VCNがプライベートIPアドレスを使用して通信することを意味する。好ましい実施形態では、VCNは、確立するピアリングごとに別個のLPGを有する。ローカルピアリングまたはVCNピアリングは、異なるアプリケーションまたはインフラストラクチャ管理機能間のネットワーク接続を確立するために使用される一般的な方法である。 The Local Peering Gateway (LPG) 132 can be added to the customer VCN 104 and is a gateway that allows the VCN 104 to peer with other VCNs within the same region. Peering means that VCNs communicate using private IP addresses without traffic traversing a public network such as the internet or being routed through the customer's on-premises network 116. In a preferred embodiment, the VCN has a separate LPG for each peering it establishes. Local peering, or VCN peering, is a common method used to establish network connectivity between different applications or infrastructure management functions.

サービスネットワーク110におけるサービスのプロバイダなどのサービスプロバイダは、異なるアクセスモデルを使用してサービスへのアクセスを提供することができる。パブリックアクセスモデルによれば、サービスは、インターネットなどのパブリックネットワークを介して顧客VCN内のコンピューティングインスタンスによって公的にアクセスできるパブリックエンドポイントとして公開されてもよく、またはSGW126を介してプライベートにアクセスできてもよい。特定のプライベートアクセスモデルに従って、サービスは顧客のVCNのプライベートサブネット内のプライベートIPエンドポイントとしてアクセス可能になる。これはプライベートエンドポイント(PE)アクセスと呼ばれ、サービスプロバイダが顧客のプライベートネットワーク内のインスタンスとしてサービスを公開できるようになる。プライベートエンドポイントリソースは、顧客のVCN内のサービスを表す。各PEは、顧客のVCN内で顧客が選択したサブネット内のVNIC(1つまたは複数のプライベートIPを持つPE-VNICと呼ばれる)として現れる。したがって、PEは、VNICを使用してプライベート顧客VCNサブネット内でサービスを提示する方法を提供する。エンドポイントはVNICとして公開されるため、ルーティングルール、セキュリティリストなど、VNICに関連付けられているすべての機能がここでPE VNICで使用できるようになる。 Service providers, such as service providers in the service network 110, can provide access to their services using different access models. According to the public access model, a service may be exposed as a public endpoint accessible publicly by computing instances within the customer VCN via a public network such as the internet, or it may be privately accessible via SGW 126. According to a specific private access model, the service becomes accessible as a private IP endpoint within a private subnet of the customer's VCN. This is called private endpoint (PE) access, and it allows service providers to expose their services as instances within the customer's private network. A private endpoint resource represents a service within the customer's VCN. Each PE appears as a VNIC (referred to as a PE-VNIC with one or more private IPs) within a subnet selected by the customer within the customer's VCN. Thus, a PE provides a way to present a service within a private customer VCN subnet using a VNIC. Because the endpoint is exposed as a VNIC, all the functionality associated with a VNIC, such as routing rules and security lists, becomes available here in the PE VNIC.

サービスプロバイダは、PEを介したアクセスを可能にするためにサービスを登録することができる。プロバイダは、顧客テナントに対するサービスの可視性を制限するサービスにポリシーを関連付けることができる。プロバイダは、特にマルチテナントサービスの場合、単一の仮想IPアドレス(VIP)の下で複数のサービスを登録できる。同じサービスを表すこのようなプライベートエンドポイントが(複数のVCN内に)複数存在し得る。 A service provider can register services to enable access via a Public Access Point (PE). A provider can associate policies with services to restrict their visibility to customer tenants. A provider can register multiple services under a single virtual IP address (VIP), especially in the case of multi-tenant services. Multiple such private endpoints representing the same service may exist (within multiple VCNs).

その後、プライベートサブネット内のコンピューティングインスタンスは、PE VNICのプライベートIPアドレスまたはサービスDNS名を使用してサービスにアクセスすることができる。顧客VCNのコンピューティングインスタンスは、顧客VCNのPEのプライベートIPアドレスにトラフィックを送信することでサービスにアクセスできる。プライベートアクセスゲートウェイ(PAGW)130は、顧客サブネットプライベートエンドポイントとの間のすべてのトラフィックの入口/出口ポイントとして機能するサービスプロバイダVCN(例えば、サービスネットワーク110内のVCN)に接続できるゲートウェイリソースである。PAGW130を使用すると、プロバイダは内部IPアドレスリソースを利用せずにPE接続の数を拡張できる。プロバイダは、単一のVCNに登録されている任意の数のサービスに対して1つのPAGWを構成するだけで済む。プロバイダは、1つまたは複数の顧客の複数のVCNでサービスをプライベートエンドポイントとして表すことができる。顧客の観点から見ると、PE VNICは、顧客のインスタンスに接続されているのではなく、顧客が対話を希望するサービスに接続されているように見える。プライベートエンドポイント宛てのトラフィックは、PAGW130を介してサービスにルーティングされる。これらは、顧客からサービスへのプライベート接続(C2S接続)と呼ばれる。 Subsequently, compute instances within the private subnet can access the service using the PE VNIC's private IP address or service DNS name. Compute instances in the customer VCN can access the service by sending traffic to the customer VCN's PE's private IP address. The Private Access Gateway (PAGW) 130 is a gateway resource that can connect to a service provider VCN (e.g., a VCN in service network 110) and act as the entry/exit point for all traffic to and from the customer subnet private endpoint. Using the PAGW 130, the provider can scale the number of PE connections without utilizing internal IP address resources. The provider only needs to configure one PAGW for any number of services registered in a single VCN. The provider can represent a service as a private endpoint in multiple VCNs of one or more customers. From the customer's perspective, the PE VNIC appears to be connected to the service the customer wishes to interact with, rather than to the customer's instances. Traffic destined for the private endpoint is routed to the service via the PAGW 130. These are called customer-to-service private connections (C2S connections).

PE概念は、トラフィックが顧客VCN内のFastConnect/IPsecリンクおよびプライベートエンドポイントを通って流れることを可能にすることによって、サービスのプライベートアクセスを顧客のオンプレミスネットワークおよびデータセンターに拡張するために使用することもできる。サービスのプライベートアクセスは、LPG132と顧客のVCN内のPEとの間でトラフィックが流れることを許可することによって、顧客のピアリングされたVCNに拡張することもできる。 The PE concept can also be used to extend private access to a service to the customer's on-premises network and data center by allowing traffic to flow through FastConnect/IPsec links and private endpoints within the customer's VCN. Private access to the service can also be extended to the customer's peered VCN by allowing traffic to flow between LPG132 and the PE within the customer's VCN.

顧客は、VCN内のルーティングをサブネットレベルで制御できるため、顧客は、VCN104などの顧客のVCN内のどのサブネットが各ゲートウェイを使用するかを指定できる。VCNのルートテーブルは、VCNから特定のゲートウェイを経由するトラフィックを許可するかどうかを決定するために使用される。例えば、特定の例では、顧客VCN104内のパブリックサブネットのルートテーブルは、IGW120を介して非ローカルトラフィックを送信し得る。同じ顧客VCN104内のプライベートサブネットのルートテーブルは、SGW126を介してCSPサービス宛てのトラフィックを送信することができる。残りのトラフィックはすべて、NATゲートウェイ128経由で送信され得る。ルートテーブルはVCNから出るトラフィックのみを制御する。 Customers can control routing within their VPN at the subnet level, allowing them to specify which subnets within their VPN, such as VPN104, use which gateways. The VPN's route table is used to determine whether to allow traffic from the VPN through a particular gateway. For example, in a specific example, the route table for a public subnet within customer VPN104 might send non-local traffic through IGW120. The route table for a private subnet within the same customer VPN104 might send traffic destined for the CSP service through SGW126. All remaining traffic might be sent through NAT gateway 128. The route table only controls traffic leaving the VPN.

VCNに関連付けられるセキュリティリストは、受信接続を介してゲートウェイを介してVCNに入るトラフィックを制御するために使用される。サブネット内のすべてのリソースは、同じルートテーブルとセキュリティリストを使用する。セキュリティリストは、VCNのサブネット内のインスタンスに出入りできる特定のタイプのトラフィックを制御するために使用できる。セキュリティリストルールは、入口(受信)ルールと出口(送信)ルールを含み得る。例えば、入口ルールは許可されるソースアドレス範囲を指定し、一方、出口ルールは許可される宛先アドレス範囲を指定し得る。セキュリティルールでは、特定のプロトコル(例えば、TCP、ICMP)、特定のポート(例えば、SSHの場合は22、WindowsRDPの場合は3389)などを指定できる。特定の実装では、インスタンスのオペレーティングシステムが、セキュリティリストのルールに合わせた独自のファイアウォールルールを強制し得る。ルールはステートフル(例えば、接続が追跡され、応答トラフィックに対する明示的なセキュリティリストルールなしで応答が自動的に許可される)またはステートレスの場合がある。 The security list associated with a VCN is used to control traffic entering the VCN via the gateway through incoming connections. All resources within the subnet use the same route table and security list. The security list can be used to control specific types of traffic that can enter and leave instances within the VCN's subnet. Security list rules can include inbound (received) and outbound (transmitted) rules. For example, inbound rules might specify allowed source address ranges, while outbound rules might specify allowed destination address ranges. Security rules can specify specific protocols (e.g., TCP, ICMP), specific ports (e.g., 22 for SSH, 3389 for Windows RDP), etc. In certain implementations, the instance's operating system may enforce its own firewall rules aligned with the security list rules. Rules can be stateful (e.g., connections are tracked, and responses are automatically allowed without explicit security list rules for response traffic) or stateless.

顧客VCNからのアクセス(すなわち、VCN104上に展開されたリソースまたはコンピューティングインスタンスによる)は、パブリックアクセス、プライベートアクセス、または専用アクセスとして分類することができる。パブリックアクセスは、パブリックIPアドレスまたはNATを使用してパブリックエンドポイントにアクセスするアクセスモデルを指す。プライベートアクセスにより、プライベートIPアドレスを有するVCN104内の顧客ワークロード(例えば、プライベートサブネット内のリソース)が、インターネットなどのパブリックネットワークを経由せずにサービスにアクセスできるようになる。特定の実施形態では、CSPI101は、プライベートIPアドレスを有する顧客VCNワークロードが、サービスゲートウェイを使用してサービス(のパブリックサービスエンドポイント)にアクセスできるようにする。したがって、サービスゲートウェイは、顧客のVCNと顧客のプライベートネットワークの外側にあるサービスのパブリックエンドポイントとの間に仮想リンクを確立することにより、プライベートアクセスモデルを提供する。 Access from a customer VCN (i.e., by resources or computing instances deployed on VCN 104) can be classified as public access, private access, or dedicated access. Public access refers to an access model that accesses public endpoints using public IP addresses or NAT. Private access allows customer workloads within VCN 104 with private IP addresses (e.g., resources in a private subnet) to access services without going through a public network such as the Internet. In certain embodiments, CSPI 101 allows customer VCN workloads with private IP addresses to access services (their public service endpoints) using a service gateway. Thus, the service gateway provides a private access model by establishing a virtual link between the customer's VCN and the public endpoint of the service located outside the customer's private network.

さらに、CSPIは、FastConnectパブリックピアリングなどの技術を使用して専用のパブリックアクセスを提供することができ、顧客のオンプレミスインスタンスは、FastConnect接続を使用して、インターネットなどのパブリックネットワークを経由することなく、顧客のVCN内の1つまたは複数のサービスにアクセスできる。CSPIは、FastConnectプライベートピアリングを使用した専用プライベートアクセスも提供でき、プライベートIPアドレスを持つ顧客のオンプレミスインスタンスがFastConnect接続を使用して顧客のVCNワークロードにアクセスできる。FastConnectは、顧客のオンプレミスネットワークをCSPIおよびそのサービスに接続するために、パブリックインターネットを使用する代わりのネットワーク接続である。FastConnectは、インターネットベースの接続と比較して、より高帯域幅のオプションと、より信頼性が高く一貫したネットワークエクスペリエンスを備えた専用のプライベート接続を作成するための、簡単、弾力的、かつ経済的な方法を提供する。 Furthermore, CSPI can provide dedicated public access using technologies such as FastConnect public peering, allowing customers' on-premises instances to access one or more services within the customer's VCN using FastConnect connectivity without traversing public networks such as the internet. CSPI can also provide dedicated private access using FastConnect private peering, allowing customers' on-premises instances with private IP addresses to access the customer's VCN workloads using FastConnect connectivity. FastConnect is an alternative network connectivity that uses the public internet to connect a customer's on-premises network to CSPI and its services. Compared to internet-based connectivity, FastConnect provides a simple, resilient, and economical way to create dedicated private connectivity with higher bandwidth options and a more reliable and consistent network experience.

図1およびそれに付随する上記の説明では、仮想ネットワーク例におけるさまざまな仮想化構成要素について説明している。上で説明したように、仮想ネットワークは、基礎となる物理ネットワークまたは基板ネットワーク上に構築される。図2は、特定の実施形態による、仮想ネットワークの基礎を提供するCSPI200内の物理ネットワーク内の物理構成要素の簡略化されたアーキテクチャ図を示す。図示されるように、CSPI200は、クラウドサービスプロバイダ(CSP)によって提供される構成要素およびリソース(例えば、コンピューティング、メモリ、およびネットワーキングリソース)を含む配信環境を提供する。これらの構成要素およびリソースは、加入顧客、つまりCSPが提供する1つまたは複数のサービスに加入している顧客にクラウドサービス(例えば、IaaSサービス)を提供するために使用される。顧客が加入したサービスに基づいて、CSPI200のリソースのサブセット(例えば、コンピューティング、メモリ、およびネットワーキングリソース)が顧客にプロビジョニングされる。その後、顧客は、CSPI200によって提供される物理コンピューティング、メモリ、およびネットワーキングリソースを使用して、独自のクラウドベース(つまり、CSPIホスト型)のカスタマイズ可能なプライベート仮想ネットワークを構築できる。前述したように、これらの顧客ネットワークは仮想クラウドネットワーク(VCN)と呼ばれる。顧客は、コンピューティングインスタンスなどの1つまたは複数の顧客リソースをこれらの顧客VCNに展開できる。コンピューティングインスタンスは、仮想マシン、ベアメタルインスタンスなどの形式にすることができる。CSPI200は、顧客が可用性の高いホスト環境で幅広いアプリケーションとサービスを構築および実行できるようにするインフラストラクチャとセットの補完的なクラウドサービスを提供する。 Figure 1 and the accompanying description above illustrate the various virtualization components in a virtual network example. As described above, the virtual network is built on an underlying physical network or infrastructure network. Figure 2 shows a simplified architectural diagram of the physical components within the physical network in the CSPI200 that provides the foundation for the virtual network, according to a particular embodiment. As illustrated, the CSPI200 provides a delivery environment including components and resources (e.g., compute, memory, and networking resources) provided by a cloud service provider (CSP). These components and resources are used to deliver cloud services (e.g., IaaS services) to subscriber customers, i.e., customers who subscribe to one or more services provided by the CSP. Based on the services subscribed to by the customer, a subset of the CSPI200's resources (e.g., compute, memory, and networking resources) is provisioned to the customer. The customer can then use the physical compute, memory, and networking resources provided by the CSPI200 to build their own cloud-based (i.e., CSPI-hosted) customizable private virtual network. As mentioned earlier, these customer networks are called Virtual Cloud Networks (VCNs). Customers can deploy one or more customer resources, such as compute instances, to these customer VCNs. Compute instances can take the form of virtual machines, bare metal instances, etc. CSPI200 provides complementary cloud services in the form of infrastructure that enables customers to build and run a wide range of applications and services in a highly available hosted environment.

図2に示される例示的な実施形態では、CSPI200の物理構成要素には、1つまたは複数の物理ホストマシンまたは物理サーバ(例えば、202、206、208)、ネットワーク仮想化装置(NVD)(例えば、210、212)、トップオブラック(TOR)スイッチ(例えば、214、216)、ならびに物理ネットワーク(例えば、218)、および物理ネットワーク218内のスイッチが含まれる。物理ホストマシンまたはサーバは、VCNの1つまたは複数のサブネットに参加するさまざまなコンピューティングインスタンスをホストおよび実行できる。コンピューティングインスタンスには、仮想マシンインスタンスとベアメタルインスタンスが含まれ得る。例えば、図1に示されるさまざまなコンピューティングインスタンスは、図2に示す物理ホストマシンによってホストされ得る。VCN内の仮想マシンコンピューティングインスタンスは、1つのホストマシンまたは複数の異なるホストマシンによって実行できる。物理ホストマシンは、仮想ホストマシン、コンテナベースのホストまたは機能などをホストすることもできる。図1に示されるVNICおよびVCN VRは、図2に示したNVDによって実行することができる。図1に示されるゲートウェイは、図2に示されたホストマシンおよび/またはNVDによって実行され得る。 In the exemplary embodiment shown in Figure 2, the physical components of CSPI200 include one or more physical host machines or physical servers (e.g., 202, 206, 208), network virtualization devices (NVDs) (e.g., 210, 212), top-of-rack (TOR) switches (e.g., 214, 216), and a physical network (e.g., 218), and switches within the physical network 218. The physical host machines or servers can host and run various computing instances participating in one or more subnets of the VCN. Computing instances may include virtual machine instances and bare-metal instances. For example, the various computing instances shown in Figure 1 may be hosted by the physical host machines shown in Figure 2. Virtual machine computing instances within the VCN can run on one host machine or several different host machines. The physical host machines can also host virtual host machines, container-based hosts or functions, etc. The VNIC and VCN VR shown in Figure 1 can run on the NVD shown in Figure 2. The gateway shown in Figure 1 may be run by the host machine and/or NVD shown in Figure 2.

ホストマシンまたはサーバは、ホストマシン上に仮想化環境を作成し有効にするハイパーバイザ(仮想マシンモニタまたはVMMとも呼ばれる)を実行することができる。仮想化または仮想化環境は、クラウドベースのコンピューティングを容易にする。ホストマシン上のハイパーバイザによって、ホストマシン上で1つまたは複数のコンピューティングインスタンスを作成、実行、および管理できる。ホストマシン上のハイパーバイザにより、ホストマシンの物理コンピューティングリソース(例えば、コンピューティング、メモリ、およびネットワーキングリソース)を、ホストマシンによって実行されるさまざまなコンピューティングインスタンス間で共有できるようになる。 A host machine or server can run a hypervisor (also known as a virtual machine monitor or VMM) that creates and enables a virtualized environment on the host machine. Virtualization or a virtualized environment facilitates cloud-based computing. A hypervisor on a host machine allows one or more computing instances to be created, run, and managed on the host machine. A hypervisor on a host machine enables the sharing of the host machine's physical computing resources (e.g., compute, memory, and networking resources) among the various computing instances running on the host machine.

例えば、図2に示すように、ホストマシン202および208は、それぞれハイパーバイザ260および266を実行する。これらのハイパーバイザは、ソフトウェア、ファームウェア、もしくはハードウェア、またはそれらの組み合わせを使用して実装できる。通常、ハイパーバイザは、ホストマシンのオペレーティングシステム(OS)の上に位置するプロセスまたはソフトウェア層であり、次に、ホストマシンのハードウェアプロセッサ上で実行される。ハイパーバイザは、ホストマシンの物理コンピューティングリソース(例えば、プロセッサ/コアなどの処理リソース、メモリリソース、ネットワーキングリソース)を、ホストマシンによって実行されるさまざまな仮想マシンコンピューティングインスタンス間で共有できるようにすることによって、仮想化環境を提供する。例えば、図2では、ハイパーバイザ260は、ホストマシン202のOSの上に位置することができ、ホストマシン202のコンピューティングリソース(例えば、処理、メモリ、およびネットワーキングリソース)が、ホストマシン202によって実行されるコンピューティングインスタンス(例えば、仮想マシン)間で共有されることを可能にする。仮想マシンは独自のオペレーティングシステム(ゲストオペレーティングシステムと呼ばれる)を持つことができる。これはホストマシンのOSと同じ場合もあれば、異なる場合もある。ホストマシンによって実行される仮想マシンのオペレーティングシステムは、同じホストマシンによって実行される別の仮想マシンのオペレーティングシステムと同じであっても、異なっていてもよい。したがって、ハイパーバイザを使用すると、ホストマシンの同じコンピューティングリソースを共有しながら、複数のオペレーティングシステムを互いに並行して実行できる。図2に示されるホストマシンは、同じタイプまたは異なるタイプのハイパーバイザを備えていてもよい。 For example, as shown in Figure 2, host machines 202 and 208 run hypervisors 260 and 266, respectively. These hypervisors can be implemented using software, firmware, hardware, or a combination thereof. Typically, a hypervisor is a process or software layer that sits on top of the host machine's operating system (OS) and then runs on the host machine's hardware processor. A hypervisor provides a virtualized environment by allowing the host machine's physical computing resources (e.g., processing resources such as processors/cores, memory resources, and networking resources) to be shared among various virtual machine computing instances running on the host machine. For example, in Figure 2, hypervisor 260 can sit on top of the host machine 202's OS, enabling the host machine 202's computing resources (e.g., processing, memory, and networking resources) to be shared among computing instances (e.g., virtual machines) running on the host machine 202. Virtual machines can have their own operating systems (called guest operating systems). This may be the same as or different from the host machine's OS. The operating system of a virtual machine running on a host machine may be the same as or different from the operating system of another virtual machine running on the same host machine. Therefore, a hypervisor allows multiple operating systems to run in parallel while sharing the same computing resources on the host machine. The host machines shown in Figure 2 may have the same or different types of hypervisors.

コンピューティングインスタンスは、仮想マシンインスタンスまたはベアメタルインスタンスであり得る。図2において、ホストマシン202上のコンピューティングインスタンス268およびホストマシン208上のコンピューティングインスタンス274は、仮想マシンインスタンスの例である。ホストマシン206は、顧客に提供されるベアメタルインスタンスの一例である。 A computing instance can be a virtual machine instance or a bare metal instance. In Figure 2, computing instance 268 on host machine 202 and computing instance 274 on host machine 208 are examples of virtual machine instances. Host machine 206 is an example of a bare metal instance provided to a customer.

特定の例では、ホストマシン全体が単一の顧客にプロビジョニングされてもよく、そのホストマシンによってホストされる1つまたは複数のコンピューティングインスタンス(仮想マシンまたはベアメタルインスタンス)のすべてがその同じ顧客に属する。他の例では、ホストマシンが複数の顧客(つまり、複数のテナント)間で共有され得る。このようなマルチテナントのシナリオでは、ホストマシンが、異なる顧客に属する仮想マシンコンピューティングインスタンスをホストし得る。これらのコンピューティングインスタンスは、異なる顧客の異なるVCNのメンバーである場合がある。特定の実施形態では、ベアメタルコンピューティングインスタンスは、ハイパーバイザなしでベアメタルサーバによってホストされる。ベアメタルコンピューティングインスタンスがプロビジョニングされると、単一の顧客またはテナントがベアメタルインスタンスをホストするホストマシンの物理CPU、メモリ、およびネットワークインターフェースの制御を維持し、ホストマシンは他の顧客またはテナントと共有されない。 In certain examples, an entire host machine may be provisioned to a single customer, and all one or more computing instances (virtual machines or bare metal instances) hosted by that host machine belong to that same customer. In other examples, a host machine may be shared among multiple customers (i.e., multiple tenants). In such multi-tenant scenarios, a host machine may host virtual machine computing instances belonging to different customers. These computing instances may be members of different VCNs of different customers. In certain embodiments, bare metal computing instances are hosted by bare metal servers without a hypervisor. Once a bare metal computing instance is provisioned, a single customer or tenant maintains control of the physical CPU, memory, and network interfaces of the host machine hosting the bare metal instance, and the host machine is not shared with other customers or tenants.

前述したように、VCNの一部である各コンピューティングインスタンスは、そのコンピューティングインスタンスがVCNのサブネットのメンバーになることを可能にするVNICに関連付けられる。コンピューティングインスタンスに関連付けられるVNICにより、コンピューティングインスタンスとの間のパケットまたはフレームの通信が容易になる。VNICは、コンピューティングインスタンスの作成時にコンピューティングインスタンスに関連付けられる。特定の実施形態では、ホストマシンによって実行されるコンピューティングインスタンスの場合、そのコンピューティングインスタンスに関連付けられるVNICは、ホストマシンに接続されたNVDによって実行される。例えば、図2では、ホストマシン202は、VNIC276に関連付けられる仮想マシンコンピューティングインスタンス268を実行し、VNIC276は、ホストマシン202に接続されたNVD210によって実行される。別の例として、ホストマシン206によってホストされるベアメタルインスタンス272は、ホストマシン206に接続されたNVD212によって実行されるVNIC280に関連付けられる。さらに別の例として、VNIC284は、ホストマシン208によって実行されるコンピューティングインスタンス274に関連付けられ、VNIC284は、ホストマシン208に接続されたNVD212によって実行される。 As mentioned above, each computing instance that is part of a VCN is associated with a VNIC that enables that computing instance to be a member of the VCN's subnet. The VNIC associated with a computing instance facilitates the communication of packets or frames to and from the computing instance. The VNIC is associated with a computing instance when it is created. In certain embodiments, for a computing instance run by a host machine, the VNIC associated with that computing instance is run by an NVD connected to the host machine. For example, in Figure 2, host machine 202 runs a virtual machine computing instance 268 associated with VNIC 276, and VNIC 276 is run by an NVD 210 connected to host machine 202. In another example, a bare metal instance 272 hosted by host machine 206 is associated with VNIC 280, which is run by an NVD 212 connected to host machine 206. As yet another example, VNIC284 is associated with a computing instance 274 running on host machine 208, and VNIC284 is run on NVD212 connected to host machine 208.

ホストマシンによってホストされるコンピューティングインスタンスの場合、そのホストマシンに接続されたNVDは、コンピューティングインスタンスがメンバーであるVCNに対応するVCN VRも実行する。例えば、図2に示される実施形態では、NVD210は、コンピューティングインスタンス268がメンバーであるVCNに対応するVCN VR277を実行する。NVD212はまた、ホストマシン206および208によってホストされるコンピューティングインスタンスに対応するVCNに対応する1つまたは複数のVCN VR283を実行することもできる。 For computing instances hosted by a host machine, the NVD connected to that host machine also runs the VCN VR corresponding to the VCN to which the computing instance is a member. For example, in the embodiment shown in Figure 2, NVD 210 runs VCN VR 277 corresponding to the VCN to which computing instance 268 is a member. NVD 212 may also run one or more VCN VRs 283 corresponding to the VCNs to which computing instances hosted by host machines 206 and 208 are associated.

ホストマシンは、ホストマシンを他の装置に接続できるようにする1つまたは複数のネットワークインターフェースカード(NIC)を含むことができる。ホストマシン上のNICは、ホストマシンが別の装置に通信可能に接続できるようにする1つまたは複数のポート(またはインターフェース)を提供し得る。例えば、ホストマシンとNVD上に提供される1つまたは複数のポート(またはインターフェース)を使用して、ホストマシンをNVDに接続できる。ホストマシンは、別のホストマシンなどの他の装置に接続することもできる。 A host machine may include one or more network interface cards (NICs) that enable it to connect to other devices. The NICs on the host machine may provide one or more ports (or interfaces) that enable the host machine to communicate with another device. For example, the host machine can be connected to the NVD using one or more ports (or interfaces) provided on the host machine and the NVD. The host machine can also connect to other devices, such as another host machine.

例えば、図2では、ホストマシン202は、ホストマシン202のNIC232によって提供されるポート234とNVD210のポート236との間に延びるリンク220を使用してNVD210に接続される。ホストマシン206は、ホストマシン206のNIC244によって提供されるポート246とNVD212のポート248との間に延びるリンク224を使用してNVD212に接続される。ホストマシン208は、ホストマシン208のNIC250によって提供されるポート252とNVD212のポート254との間に延びるリンク226を使用してNVD212に接続される。 For example, in Figure 2, host machine 202 is connected to NVD 210 using a link 220 extending between port 234 provided by NIC 232 of host machine 202 and port 236 of NVD 210. Host machine 206 is connected to NVD 212 using a link 224 extending between port 246 provided by NIC 244 of host machine 206 and port 248 of NVD 212. Host machine 208 is connected to NVD 212 using a link 226 extending between port 252 provided by NIC 250 of host machine 208 and port 254 of NVD 212.

NVDは、通信リンクを介してトップオブザラック(TOR)スイッチに接続され、物理ネットワーク218(スイッチファブリックとも呼ばれる)に接続される。特定の実施形態では、ホストマシンとNVDとの間、およびNVDとTORスイッチとの間のリンクはイーサネットリンクである。例えば、図2では、NVD210および212は、リンク228および230を使用して、それぞれTORスイッチ214および216に接続される。特定の実施形態では、リンク220、224、226、228、および230はイーサネットリンクである。TORに接続されているホストマシンとNVDの集合は、ラックと呼ばれることもある。 The NVDs are connected to a top-of-the-rack (TOR) switch via communication links, and then to a physical network 218 (also called a switch fabric). In certain embodiments, the links between the host machines and the NVDs, and between the NVDs and the TOR switches, are Ethernet links. For example, in Figure 2, NVDs 210 and 212 are connected to TOR switches 214 and 216, respectively, using links 228 and 230. In certain embodiments, links 220, 224, 226, 228, and 230 are Ethernet links. The collection of host machines and NVDs connected to the TOR is sometimes referred to as a rack.

物理ネットワーク218は、TORスイッチが相互に通信できるようにする通信ファブリックを提供する。物理ネットワーク218は、多層ネットワークとすることができる。特定の実装では、物理ネットワーク218は、スイッチの多層Closネットワークであり、TORスイッチ214および216は、多層およびマルチノード物理スイッチングネットワーク218のリーフレベルノードを表す。2層ネットワーク、3層ネットワーク、4層ネットワーク、5層ネットワーク、および一般に「n」層ネットワークを含むがこれらに限定されない、異なるClosネットワーク構成が可能である。Closネットワークの例を図5に示し、以下で説明する。 The physical network 218 provides a communication fabric that enables TOR switches to communicate with each other. The physical network 218 can be a multi-layer network. In a specific implementation, the physical network 218 is a multi-layer Close network of switches, and TOR switches 214 and 216 represent leaf-level nodes of the multi-layer and multi-node physical switching network 218. Different Close network configurations are possible, including but not limited to 2-layer, 3-layer, 4-layer, 5-layer, and generally "n"-layer networks. An example of a Close network is shown in Figure 5 and described below.

ホストマシンとNVDとの間では、1対1構成、多対1構成、1対多構成などのさまざまな異なる接続構成が可能である。1対1構成の実装では、各ホストマシンが独自の個別のNVDに接続される。例えば、図2では、ホストマシン202は、ホストマシン202のNIC232を介してNVD210に接続される。多対1構成では、複数のホストマシンが1つのNVDに接続される。例えば、図2では、ホストマシン206および208は、それぞれNIC244および250を介して同じNVD212に接続される。 Various connection configurations are possible between the host machine and the NVD, including one-to-one, many-to-one, and one-to-many configurations. In a one-to-one configuration, each host machine is connected to its own individual NVD. For example, in Figure 2, host machine 202 is connected to NVD 210 via NIC 232 on host machine 202. In a many-to-one configuration, multiple host machines are connected to a single NVD. For example, in Figure 2, host machines 206 and 208 are connected to the same NVD 212 via NICs 244 and 250, respectively.

1対多構成では、1台のホストマシンが複数のNVDに接続される。図3は、ホストマシンが複数のNVDに接続されているCSPI300内の例を示している。図3に示されるように、ホストマシン302は、複数のポート306および308を含むネットワークインターフェースカード(NIC)304を備える。ホストマシン300は、ポート306およびリンク320を介して第1のNVD310に接続され、ポート308およびリンク322を介して第2のNVD312に接続される。ポート306および308はイーサネットポートであってもよく、ホストマシン302とNVD310および312との間のリンク320および322はイーサネットリンクであってもよい。NVD310は第1のTORスイッチ314に接続され、一方、NVD312は第2のTORスイッチ316に接続される。NVD310および312とTORスイッチ314および316との間のリンクは、イーサネットリンクであってもよい。TORスイッチ314および316は、多層物理ネットワーク318内のTier-0スイッチング装置を表す。 In a one-to-many configuration, one host machine is connected to multiple NVDs. Figure 3 shows an example within CSPI 300 where a host machine is connected to multiple NVDs. As shown in Figure 3, the host machine 302 has a network interface card (NIC) 304 with multiple ports 306 and 308. The host machine 300 is connected to the first NVD 310 via port 306 and link 320, and to the second NVD 312 via port 308 and link 322. Ports 306 and 308 may be Ethernet ports, and links 320 and 322 between the host machine 302 and the NVDs 310 and 312 may be Ethernet links. The NVD 310 is connected to the first TOR switch 314, while the NVD 312 is connected to the second TOR switch 316. The links between the NVDs 310 and 312 and the TOR switches 314 and 316 may be Ethernet links. TOR switches 314 and 316 represent Tier-0 switching devices within the multilayer physical network 318.

図3に示される配置は、物理スイッチネットワーク318とホストマシン302との間の2つの別個の物理ネットワークパスを提供する。TORスイッチ314を経由してNVD310を経由し、ホストマシン302に至る第1のパスと、TORスイッチ316を経由してNVD312を経由し、ホストマシン302に至る第2のパスである。個別のパスにより、ホストマシン302の可用性が向上する(高可用性と呼ばれる)。パスの1つ(例えば、パスの1つのリンクがダウンする)または装置(例えば、特定のNVDが機能しない)に問題がある場合、ホストマシン302との通信に他のパスが使用され得る。 The configuration shown in Figure 3 provides two separate physical network paths between the physical switch network 318 and the host machine 302. The first path goes through TOR switch 314 and NVD 310 to the host machine 302, and the second path goes through TOR switch 316 and NVD 312 to the host machine 302. These separate paths improve the availability of the host machine 302 (referred to as high availability). If one path (e.g., one link in the path goes down) or a device (e.g., a particular NVD is not functioning) malfunctions, the other path can be used for communication with the host machine 302.

図3に示す構成では、ホストマシンは、ホストマシンのNICによって提供される2つの異なるポートを使用して2つの異なるNVDに接続される。他の実施形態では、ホストマシンは、ホストマシンの複数のNVDへの接続を可能にする複数のNICを含むことができる。 In the configuration shown in Figure 3, the host machine connects to two different NVDs using two different ports provided by the host machine's NIC. In other embodiments, the host machine may include multiple NICs that enable connections to multiple NVDs of the host machine.

図2に戻り参照すると、NVDは、1つまたは複数のネットワークおよび/または記憶仮想化機能を実行する物理装置または構成要素である。NVDは、1つまたは複数の処理ユニット(例えば、CPU、ネットワーク処理ユニット(NPU)、FPGA、パケット処理パイプラインなど)、キャッシュを含むメモリ、およびポートを備えた任意の装置であり得る。さまざまな仮想化機能は、NVDの1つまたは複数の処理ユニットによって実行されるソフトウェア/ファームウェアによって実行され得る。 Returning to Figure 2, an NVD is a physical device or component that performs one or more network and/or memory virtualization functions. An NVD can be any device with one or more processing units (e.g., a CPU, a network processing unit (NPU), an FPGA, a packet processing pipeline, etc.), memory including a cache, and ports. Various virtualization functions may be performed by software/firmware executed by one or more processing units of the NVD.

NVDは、さまざまな異なる形式で実装することができる。例えば、特定の実施形態では、NVDは、スマートNICまたは内蔵プロセッサを搭載したインテリジェントNICと呼ばれるインターフェースカードとして実装される。スマートNICは、ホストマシン上のNICとは別の装置である。図2において、NVD210および212は、それぞれホストマシン202、ホストマシン206および208に接続されるスマートNICとして実装され得る。 NVDs can be implemented in various different forms. For example, in certain embodiments, an NVD is implemented as an interface card called a smart NIC or intelligent NIC with an embedded processor. A smart NIC is a separate device from the NIC on the host machine. In Figure 2, NVDs 210 and 212 may be implemented as smart NICs connected to host machines 202, 206, and 208, respectively.

しかし、スマートNICは、NVD実装の一例にすぎない。他のさまざまな実装が可能である。例えば、いくつかの他の実装では、NVD、またはNVDによって実行される1つもしくは複数の機能は、1つまたは複数のホストマシン、1つまたは複数のTORスイッチ、およびCSPI200の他の構成要素に組み込まれるか、またはそれらによって実行され得る。例えば、NVDは、NVDによって実行される機能がホストマシンによって実行されるホストマシン内で実現されてもよい。別の例として、NVDはTORスイッチの一部であってもよく、またはTORスイッチがパブリッククラウドに使用されるさまざまな複雑なパケット変換をTORスイッチが実行できるようにするNVDによって実行される機能を実行するように構成されてもよい。NVDの機能を実行するTORは、スマートTORと呼ばれることもある。さらに他の実装では、ベアメタル(BM)インスタンスではなく仮想マシン(VM)インスタンスが顧客に提供され、NVDによって実行される機能がホストマシンのハイパーバイザ内に実装され得る。他のいくつかの実装では、NVDの機能の一部が、一連のホストマシン上で実行される集中サービスにオフロードされ得る。 However, Smart NIC is just one example of an NVD implementation. Many other implementations are possible. For example, in some other implementations, NVD, or one or more functions performed by NVD, may be incorporated into or performed by one or more host machines, one or more TOR switches, and other components of CSPI200. For example, NVD may be implemented within a host machine where the functions performed by NVD are performed by the host machine. Another example is that NVD may be part of a TOR switch, or the TOR switch may be configured to perform functions performed by NVD, enabling the TOR switch to perform various complex packet translations used in public clouds. A TOR that performs NVD functions is sometimes called Smart TOR. Yet another implementation may provide customers with virtual machine (VM) instances rather than bare metal (BM) instances, and the functions performed by NVD may be implemented within the host machine's hypervisor. In some other implementations, some of NVD's functions may be offloaded to a centralized service running on a set of host machines.

特定の実施形態では、例えば、図2に示すようにスマートNICとして実装される場合、NVDは、1つまたは複数のホストマシンおよび1つまたは複数のTORスイッチへの接続を可能にする複数の物理ポートを備えることができる。NVD上のポートは、ホスト側ポート(「サウスポート」とも呼ばれる)またはネットワーク側もしくはTOR側ポート(「ノースポート」とも呼ばれる)として分類できる。NVDのホスト側ポートは、NVDをホストマシンに接続するために使用されるポートである。図2のホスト側ポートの例には、NVD210のポート236、ならびにNVD212のポート248および254が含まれる。NVDのネットワーク側ポートは、NVDをTORスイッチに接続するために使用されるポートである。図2のネットワーク側ポートの例には、NVD210のポート256とNVD212のポート258が含まれる。図2に示すように、NVD210は、NVD210のポート256からTORスイッチ214まで延びるリンク228を使用してTORスイッチ214に接続されている。同様に、NVD212は、NVD212のポート258からTORスイッチ216まで延びるリンク230を使用してTORスイッチ216に接続されている。 In certain embodiments, for example, when implemented as a smart NIC as shown in Figure 2, the NVD may have multiple physical ports that enable connections to one or more host machines and one or more TOR switches. The ports on the NVD can be classified as host-side ports (also called "southports") or network-side or TOR-side ports (also called "northports"). The host-side ports of the NVD are the ports used to connect the NVD to a host machine. Examples of host-side ports in Figure 2 include port 236 on NVD 210, and ports 248 and 254 on NVD 212. The network-side ports of the NVD are the ports used to connect the NVD to a TOR switch. Examples of network-side ports in Figure 2 include port 256 on NVD 210 and port 258 on NVD 212. As shown in Figure 2, NVD210 is connected to TOR switch 214 using a link 228 extending from port 256 of NVD210 to TOR switch 214. Similarly, NVD212 is connected to TOR switch 216 using a link 230 extending from port 258 of NVD212 to TOR switch 216.

NVDは、ホスト側ポートを介してホストマシンからパケットおよびフレーム(例えば、ホストマシンによってホストされるコンピューティングインスタンスによって生成されるパケットおよびフレーム)を受信し、必要なパケット処理を実行した後、NVDのネットワーク側ポートを介してTORスイッチにパケットとフレームとを転送できる。NVDは、NVDのネットワーク側ポートを介してTORスイッチからパケットとフレームとを受信し、必要なパケット処理を実行した後、NVDのホスト側ポートを介してパケットとフレームとをホストマシンに転送できる。 The NVD can receive packets and frames from the host machine via its host-side port (for example, packets and frames generated by computing instances hosted by the host machine), perform the necessary packet processing, and then forward the packets and frames to the TOR switch via the NVD's network-side port. The NVD can also receive packets and frames from the TOR switch via its network-side port, perform the necessary packet processing, and then forward the packets and frames back to the host machine via the NVD's host-side port.

特定の実施形態では、NVDとTORスイッチとの間に複数のポートおよび関連するリンクが存在し得る。これらのポートとリンクは集約されて、複数のポートまたはリンクのリンクアグリゲータグループ(LAGと呼ばれる)を形成することができる。リンク集約により、2つのエンドポイント間(例えば、NVDとTORスイッチとの間)の複数の物理リンクを1つの論理リンクとして扱うことができる。特定のLAG内のすべての物理リンクは、全二重モードで同じ速度で動作できる。LAGは、2つのエンドポイント間の接続の帯域幅と信頼性を向上させるのに役立つ。LAG内の物理リンクの1つがダウンすると、トラフィックはLAG内の他の物理リンクの1つに動的かつ透過的に再割り当てされる。集約された物理リンクは、個々のリンクよりも高い帯域幅を提供する。LAGに関連付けられる複数のポートは、単一の論理ポートとして扱われる。トラフィックは、LAGの複数の物理リンク間で負荷分散できる。2つのエンドポイント間に1つまたは複数のLAGを構成できる。2つのエンドポイントは、NVDとTORスイッチとの間、ホストマシンとNVDとの間などにあり得る。 In certain embodiments, multiple ports and associated links may exist between the NVD and the TOR switch. These ports and links can be aggregated to form a link aggregator group (LAG) of multiple ports or links. Link aggregation allows multiple physical links between two endpoints (e.g., between the NVD and the TOR switch) to be treated as a single logical link. All physical links within a given LAG can operate at the same speed in full-duplex mode. LAGs help improve the bandwidth and reliability of the connection between two endpoints. If one of the physical links in the LAG goes down, traffic is dynamically and transparently reassigned to one of the other physical links in the LAG. Aggregated physical links provide higher bandwidth than individual links. Multiple ports associated with a LAG are treated as a single logical port. Traffic can be load-balanced across the multiple physical links of the LAG. One or more LAGs can be configured between two endpoints. The two endpoints could be located between the NVD and the TOR switch, or between the host machine and the NVD, among other places.

NVDは、ネットワーク仮想化機能を実装または実行する。これらの機能は、NVDによって実行されるソフトウェア/ファームウェアによって実行される。ネットワーク仮想化機能の例には次のものが含まれるが、これらに限定されない。パケットのカプセル化およびカプセル化解除機能、VCNネットワークを作成するための機能、VCNセキュリティリスト(ファイアウォール)機能などのネットワークポリシーを実装する機能、VCN内のコンピューティングインスタンスとの間のパケットのルーティングおよび転送を容易にする機能など。特定の実施形態では、パケットを受信すると、NVDは、パケットを処理し、パケットがどのように転送またはルーティングされるかを決定するためのパケット処理パイプラインを実行するように構成される。このパケット処理パイプラインの一部として、NVDは、オーバーレイネットワークに関連付けられる1つまたは複数の仮想機能を実行でき、例えば、VCN内のcisに関連付けられるVNICの実行、VCNに関連付けられる仮想ルータ(VR)の実行、仮想ネットワーク内での転送またはルーティングを容易にするためのパケットのカプセル化とカプセル化解除、特定のゲートウェイ(例えば、ローカルピアリングゲートウェイ)の実行、セキュリティリスト、ネットワークセキュリティグループ、ネットワークアドレス変換(NAT)機能(例えば、ホストごとのパブリックIPからプライベートIPへの変換)、スロットル機能、およびその他の機能の実装である。 NVD implements or performs network virtualization functions. These functions are performed by software/firmware run by NVD. Examples of network virtualization functions include, but are not limited to, packet encapsulation and decapsulation functions, functions for creating VCN networks, functions for implementing network policies such as VCN security list (firewall) functions, and functions for facilitating the routing and forwarding of packets to and from computing instances within a VCN. In certain embodiments, upon receiving a packet, NVD is configured to run a packet processing pipeline to process the packet and determine how the packet should be forwarded or routed. As part of this packet processing pipeline, NVD can perform one or more virtual functions associated with the overlay network, such as: performing a VNIC associated with a cis within a VCN; performing a virtual router (VR) associated with a VCN; encapsulating and deencapsulating packets to facilitate forwarding or routing within the virtual network; performing specific gateways (e.g., local peering gateways); implementing security lists, network security groups, network address translation (NAT) functions (e.g., public IP to private IP translation on a per-host basis); throttling functions; and other functions.

特定の実施形態では、NVDにおけるパケット処理データパスは、各々が一連のパケット変換ステージから構成される複数のパケットパイプラインを備えることができる。特定の実装では、パケットを受信すると、パケットが解析され、単一のパイプラインに分類される。その後、パケットがドロップされるか、NVDのインターフェース経由で送信されるまで、パケットは1段階ずつ直線的に処理される。これらのステージは、基本的な機能パケット処理の構成要素(例えば、ヘッダーの確認、スロットルの強制、新しい層2ヘッダーの挿入、L4ファイアウォールの強制、VCNカプセル化/カプセル化解除など)を提供し、そのため、既存のステージを構成することで新しいパイプラインを構築でき、新しいステージを作成して既存のパイプラインに挿入することで新しい機能を追加できる。 In certain embodiments, the packet processing data path in an NVD may comprise multiple packet pipelines, each consisting of a series of packet translation stages. In a particular implementation, upon receiving a packet, it is parsed and classified into a single pipeline. The packet is then processed linearly, one step at a time, until it is dropped or transmitted through the NVD interface. These stages provide basic functional packet processing components (e.g., header verification, throttling enforcement, insertion of a new Layer 2 header, L4 firewall enforcement, VCN encapsulation/decapsulation, etc.). Therefore, new pipelines can be constructed by configuring existing stages, and new functionality can be added by creating new stages and inserting them into existing pipelines.

NVDは、VCNの制御プレーンおよびデータプレーンに対応する制御プレーン機能とデータプレーン機能の両方を実行することができる。VCN制御プレーンの例も図12、13、14、および15に示され(参考文献1216、1316、1416、および1516を参照)、以下に説明する。VCNデータプレーンの例を図12、13、14、および15に示し(参考文献1218、1318、1418、および1518を参照)、以下に説明する。制御プレーン機能には、データの転送方法を制御するネットワークの構成(例えば、ルートおよびルートテーブルの設定、VNICの構成など)に使用される機能が含まれる。特定の実施形態では、すべてのオーバーレイから基板へのマッピングを一元的に計算し、それらをNVDおよびDRG、SGW、IGWなどのさまざまなゲートウェイなどの仮想ネットワークエッジ装置に公開するVCN制御プレーンが提供される。ファイアウォールルールも同じメカニズムを使用して公開できる。特定の実施形態では、NVDは、そのNVDに関連するマッピングのみを取得する。データプレーン機能には、制御プレーンを使用して設定された構成に基づいてパケットを実際にルーティング/転送する機能が含まれる。VCNデータプレーンは、顧客のネットワークパケットがサブストレートネットワークを通過する前にカプセル化することによって実装される。カプセル化/カプセル化解除機能はNVDに実装される。特定の実施形態では、NVDは、ホストマシンの内外のすべてのネットワークパケットをインターセプトし、ネットワーク仮想化機能を実行するように構成される。 The NVD can perform both control plane and data plane functions corresponding to the VCN's control plane and data plane. Examples of the VCN control plane are shown in Figures 12, 13, 14, and 15 (see references 1216, 1316, 1416, and 1516) and are described below. Examples of the VCN data plane are shown in Figures 12, 13, 14, and 15 (see references 1218, 1318, 1418, and 1518) and are described below. Control plane functions include those used to configure the network that controls how data is transferred (e.g., setting routes and route tables, configuring VNICs, etc.). In certain embodiments, a VCN control plane is provided that centrally calculates all overlay-to-board mappings and exposes them to the NVD and various virtual network edge devices such as gateways like DRGs, SGWs, and IGWs. Firewall rules can also be exposed using the same mechanism. In certain embodiments, the NVD retrieves only the mappings relevant to that NVD. Data plane functionality includes the ability to actually route/forward packets based on the configuration set using the control plane. The VCN data plane is implemented by encapsulating customer network packets before they pass through the substrate network. Encapsulation/decapsulation functionality is implemented in the NVD. In certain embodiments, the NVD is configured to intercept all network packets, both inside and outside the host machine, and to perform network virtualization functions.

上で示したように、NVDは、VNICおよびVCN VRを含むさまざまな仮想化機能を実行する。NVDは、VNICに接続された1つまたは複数のホストマシンによってホストされるコンピューティングインスタンスに関連付けられるVNICを実行できる。例えば、図2に示すように、NVD210は、NVD210に接続されたホストマシン202によってホストされるコンピューティングインスタンス268に関連付けられるVNIC276の機能を実行する。別の例として、NVD212は、ホストマシン206によってホストされるベアメタルコンピューティングインスタンス272に関連付けられるVNIC280を実行し、ホストマシン208によってホストされるコンピューティングインスタンス274に関連付けられるVNIC284を実行する。ホストマシンは、異なる顧客に属する異なるVCNに属するコンピューティングインスタンスをホストすることができ、ホストマシンに接続されたNVDは、コンピューティングインスタンスに対応するVNICを実行する(つまり、VNIC関連機能を実行する)ことができる。 As shown above, NVD performs various virtualization functions, including VNICs and VCN VRs. NVD can run VNICs associated with computing instances hosted by one or more host machines connected to a VNIC. For example, as shown in Figure 2, NVD 210 performs the functions of VNIC 276 associated with computing instance 268 hosted by host machine 202 connected to NVD 210. As another example, NVD 212 runs VNIC 280 associated with bare-metal computing instance 272 hosted by host machine 206, and VNIC 284 associated with computing instance 274 hosted by host machine 208. A host machine can host computing instances belonging to different VCNs belonging to different customers, and an NVD connected to a host machine can run the VNIC corresponding to the computing instance (i.e., perform VNIC-related functions).

NVDは、コンピューティングインスタンスのVCNに対応するVCN仮想ルータも実行する。例えば、図2に示される実施形態では、NVD210は、コンピューティングインスタンス268が属するVCNに対応するVCN VR277を実行する。NVD212は、ホストマシン206および208によってホストされるコンピューティングインスタンスが属する1つまたは複数のVCNに対応する1つまたは複数のVCN VR283を実行する。特定の実施形態では、そのVCNに対応するVCN VRは、そのVCNに属する少なくとも1つのコンピューティングインスタンスをホストするホストマシンに接続されたすべてのNVDによって実行される。ホストマシンが異なるVCNに属するコンピューティングインスタンスをホストしている場合、そのホストマシンに接続されているNVDは、それらの異なるVCNに対応するVCN VRを実行し得る。 The NVD also runs a VCN virtual router corresponding to the VCN of the compute instance. For example, in the embodiment shown in Figure 2, NVD 210 runs a VCN VR 277 corresponding to the VCN to which compute instance 268 belongs. NVD 212 runs one or more VCN VRs 283 corresponding to one or more VCNs to which compute instances hosted by host machines 206 and 208 belong. In a particular embodiment, the VCN VR corresponding to that VCN is run by all NVDs connected to the host machine hosting at least one compute instance belonging to that VCN. If a host machine hosts compute instances belonging to different VCNs, the NVDs connected to that host machine may run VCN VRs corresponding to those different VCNs.

VNICおよびVCN VRに加えて、NVDは、さまざまなソフトウェア(例えば、デーモン)を実行し、NVDによって実行されるさまざまなネットワーク仮想化機能を容易にする1つまたは複数のハードウェア構成要素を含み得る。簡単にするために、これらのさまざまな構成要素は、図2に示される「パケット処理構成要素」としてグループ化される。例えば、NVD210はパケット処理構成要素286を備え、NVD212はパケット処理構成要素288を備える。例えば、NVDのパケット処理構成要素には、NVDのポートおよびハードウェアインターフェースと対話して、NVDを使用して受信および通信されるすべてのパケットを監視し、ネットワーク情報を記憶するように構成されたパケットプロセッサが含まれ得る。ネットワーク情報は、例えば、NVDによって扱われる異なるネットワークフローを識別するネットワークフロー情報、およびフローごとの情報(例えば、フローごとの統計)を含むことができる。特定の実施形態では、ネットワークフロー情報は、VNICごとに記憶され得る。パケットプロセッサは、ステートフルNATおよびL4ファイアウォール(FW)を実装するだけでなく、パケットごとの操作を実行することもできる。別の例として、パケット処理構成要素は、NVDによって記憶された情報を1つまたは複数の異なる複製ターゲットストアに複製するように構成された複製エージェントを含むことができる。さらに別の例として、パケット処理構成要素は、NVDのロギング機能を実行するように構成されたロギングエージェントを含むことができる。パケット処理構成要素には、NVDの性能と健全性とを監視するためのソフトウェアが含まれ得、場合によってはNVDに接続されている他の構成要素の状態と健全性とを監視するためのソフトウェアも含まれ得る。 In addition to VNICs and VCN VRs, NVDs may include one or more hardware components that run various software (e.g., daemons) and facilitate various network virtualization functions performed by the NVD. For simplicity, these various components are grouped as “packet processing components” as shown in Figure 2. For example, NVD 210 includes packet processing component 286, and NVD 212 includes packet processing component 288. For example, a packet processing component of an NVD may include a packet processor configured to interact with the NVD’s ports and hardware interfaces to monitor all packets received and communicated using the NVD and to store network information. Network information may include, for example, network flow information that identifies different network flows handled by the NVD, and per-flow information (e.g., per-flow statistics). In certain embodiments, network flow information may be stored per VNIC. The packet processor can not only implement stateful NAT and L4 firewalls (FW) but can also perform per-packet operations. As another example, a packet processing component may include a replication agent configured to replicate information stored by the NVD to one or more different replication target stores. Yet another example may include a logging agent configured to perform the NVD's logging function. The packet processing component may also include software for monitoring the performance and health of the NVD, and possibly software for monitoring the status and health of other components connected to the NVD.

図1は、VCN、VCN内のサブネット、サブネット上に展開されたコンピューティングインスタンス、コンピューティングインスタンスに関連付けられるVNIC、VCN用のVR、およびVCN用に構成されたゲートウェイのセットを含む例示的な仮想またはオーバーレイネットワークの構成要素を示す。図1に示されるオーバーレイ構成要素は、図2に示される1つまたは複数の物理構成要素によって実行またはホストされ得る。例えば、VCN内のコンピューティングインスタンスは、図2に示される1つまたは複数のホストマシンによって実行またはホストされ得る。ホストマシンによってホストされるコンピューティングインスタンスの場合、そのコンピューティングインスタンスに関連付けられるVNICは通常、そのホストマシンに接続されたNVDによって実行される(つまり、VNIC機能はそのホストマシンに接続されたNVDによって提供される)。VCNのVCN VR機能は、そのVCNの一部であるコンピューティングインスタンスをホストまたは実行しているホストマシンに接続されているすべてのNVDによって実行される。VCNに関連付けられるゲートウェイは、1つまたは複数の異なるタイプのNVDによって実行され得る。例えば、特定のゲートウェイはスマートNICによって実行され得、一方、他のゲートウェイは1つもしくは複数のホストマシンまたはNVDの他の実装によって実行され得る。 Figure 1 shows the components of an exemplary virtual or overlay network, including a VCN, subnets within the VCN, compute instances deployed on the subnets, VNICs associated with the compute instances, VRs for the VCN, and a set of gateways configured for the VCN. The overlay components shown in Figure 1 may run or host by one or more physical components shown in Figure 2. For example, compute instances within a VCN may run or host by one or more host machines shown in Figure 2. For compute instances hosted by host machines, the VNIC associated with that compute instance is typically run by an NVD connected to that host machine (i.e., VNIC functionality is provided by an NVD connected to that host machine). The VCN VR functionality of a VCN is run by all NVDs connected to the host machines hosting or running the compute instances that are part of that VCN. Gateways associated with a VCN may run by one or more different types of NVDs. For example, a particular gateway may run by a smart NIC, while other gateways may run by one or more host machines or other implementations of NVDs.

前述したように、顧客VCNのコンピューティングインスタンスはさまざまな異なるエンドポイントと通信でき、エンドポイントは、ソースコンピューティングインスタンスと同じサブネット内にあることも、ソースコンピューティングインスタンスと同じVCN内にある別のサブネット内にあることも、ソースコンピューティングインスタンスのVCN外にあるエンドポイントを備えることもできる。これらの通信は、コンピューティングインスタンスに関連付けられるVNIC、VCN VR、およびVCNに関連付けられるゲートウェイを使用して容易にされる。 As mentioned earlier, a customer VCN's compute instance can communicate with various different endpoints, which may be located within the same subnet as the source compute instance, within a different subnet within the same VCN as the source compute instance, or outside the VCN of the source compute instance. These communications are facilitated using the VNIC associated with the compute instance, the VCN VR, and the gateway associated with the VCN.

VCN内の同じサブネット上の2つのコンピューティングインスタンス間の通信の場合、通信は、ソースおよび宛先のコンピューティングインスタンスに関連付けられるVNICを使用して容易にされる。ソースコンピューティングインスタンスと宛先コンピューティングインスタンスは、同じホストマシンでホストされる場合も、異なるホストマシンでホストされる場合もある。ソースコンピューティングインスタンスから発信されたパケットは、ソースコンピューティングインスタンスをホストするホストマシンから、そのホストマシンに接続されているNVDに転送され得る。NVDでは、パケット処理パイプラインを使用してパケットが処理される。これには、ソースコンピューティングインスタンスに関連付けられるVNICの実行が含まれ得る。パケットの宛先エンドポイントは同じサブネット内にあるため、ソースコンピューティングインスタンスに関連付けられるVNICを実行すると、宛先コンピューティングインスタンスに関連付けられるVNICを実行するNVDにパケットが転送され、次に、パケットが処理されて宛先コンピューティングインスタンスに転送される。ソースコンピューティングインスタンスと宛先コンピューティングインスタンスに関連付けられるVNICは、同じNVD上で実行することも(例えば、ソースコンピューティングインスタンスと宛先コンピューティングインスタンスの両方が同じホストマシンでホストされている場合)、異なるNVD上で実行することもできる(例えば、ソースと宛先のコンピューティングインスタンスが、異なるNVDに接続された異なるホストマシンによってホストされている場合)。VNICは、NVDによって記憶されているルーティング/転送テーブルを使用して、パケットの次のホップを決定し得る。 For communication between two computing instances on the same subnet within a VCN, communication is facilitated using VNICs associated with the source and destination computing instances. The source and destination computing instances may be hosted on the same host machine or on different host machines. A packet originating from the source computing instance may be forwarded from the host machine hosting the source computing instance to an NVD connected to that host machine. The NVD processes the packet using a packet processing pipeline, which may include running the VNIC associated with the source computing instance. Because the packet's destination endpoint is within the same subnet, running the VNIC associated with the source computing instance forwards the packet to an NVD running the VNIC associated with the destination computing instance, which then processes the packet and forwards it to the destination computing instance. The VNICs associated with the source and destination computing instances can run on the same NVD (for example, if both the source and destination computing instances are hosted on the same host machine) or on different NVDs (for example, if the source and destination computing instances are hosted on different host machines connected to different NVDs). The VNIC can use the routing/forwarding tables stored by the NVD to determine the next hop for a packet.

サブネット内のコンピューティングインスタンスから同じVCN内の異なるサブネット内のエンドポイントにパケットが通信される場合、ソースコンピューティングインスタンスから発信されるパケットは、ソースコンピューティングインスタンスをホストするホストマシンからそのホストマシンに接続されているNVDに通信される。NVDでは、パケットはパケット処理パイプラインを使用して処理される。これには、1つまたは複数のVNICおよびVCNに関連付けられるVRの実行が含まれ得る。例えば、パケット処理パイプラインの一部として、NVDは、ソースコンピューティングインスタンスに関連付けられるVNICに対応する機能(VNICの実行とも呼ばれる)を実行または呼び出す。VNICによって実行される機能には、パケット上のVLANタグの確認が含まれ得る。パケットの宛先はサブネットの外にあるため、次にVCN VR機能がNVDによって呼び出され、実行される。次に、VCN VRは、宛先コンピューティングインスタンスに関連付けられるVNICを実行するNVDにパケットをルーティングする。次に、宛先コンピューティングインスタンスに関連付けられるVNICがパケットを処理し、宛先コンピューティングインスタンスにパケットを転送する。ソースコンピューティングインスタンスと宛先コンピューティングインスタンスに関連付けられるVNICは、同じNVD上で実行することも(例えば、ソースコンピューティングインスタンスと宛先コンピューティングインスタンスの両方が同じホストマシンでホストされている場合)、異なるNVD上で実行することもできる(例えば、ソースと宛先のコンピューティングインスタンスが、異なるNVDに接続された異なるホストマシンによってホストされている場合)。 When packets are communicated from a compute instance within a subnet to an endpoint in a different subnet within the same VCN, packets originating from the source compute instance are communicated from the host machine hosting the source compute instance to the NVD connected to that host machine. In the NVD, packets are processed using a packet processing pipeline. This may include the execution of one or more VNICs and VRs associated with the VCN. For example, as part of the packet processing pipeline, the NVD executes or invokes a function (also called VNIC execution) corresponding to the VNIC associated with the source compute instance. Functions executed by the VNIC may include checking the VLAN tag on the packet. Because the packet's destination is outside the subnet, the VCN VR function is then invoked and executed by the NVD. The VCN VR then routes the packet to the NVD running the VNIC associated with the destination compute instance. The VNIC associated with the destination compute instance then processes the packet and forwards it to the destination compute instance. The VNICs associated with the source and destination computing instances can run on the same NVD (for example, if both the source and destination computing instances are hosted on the same host machine) or on different NVDs (for example, if the source and destination computing instances are hosted on different host machines connected to different NVDs).

パケットの宛先がソースコンピューティングインスタンスのVCN外にある場合、ソースコンピューティングインスタンスから発信されたパケットは、ソースコンピューティングインスタンスをホストするホストマシンから、そのホストマシンに接続されているNVDに通信される。NVDは、ソースコンピューティングインスタンスに関連付けられるVNICを実行する。パケットの宛先エンドポイントはVCNの外部にあるため、パケットはそのVCNのVCN VRによって処理される。NVDはVCN VR機能を呼び出す。これにより、VCNに関連付けられる適切なゲートウェイを実行するNVDにパケットが転送され得る。例えば、宛先が顧客のオンプレミスネットワーク内のエンドポイントである場合、パケットはVCN VRによって、VCN用に構成されたDRGゲートウェイを実行するNVDに転送され得る。VCN VRは、ソースコンピューティングインスタンスに関連付けられるVNICを実行するNVDと同じNVD上で実行することも、別のNVDによって実行することもできる。ゲートウェイは、スマートNIC、ホストマシン、またはその他のNVD実装であり得るNVDによって実行できる。その後、パケットはゲートウェイによって処理され、目的の宛先エンドポイントへのパケットの通信を容易にする次のホップに転送される。例えば、図2に示される実施形態では、コンピューティングインスタンス268から発信されるパケットは、(NIC232を使用して)リンク220を介してホストマシン202からNVD210に通信され得る。NVD210では、VNIC276がソースコンピューティングインスタンス268に関連付けられているVNICであるため、呼び出される。VNIC276は、パケット内のカプセル化された情報を検査し、意図された宛先エンドポイントへのパケットの通信を容易にすることを目的としてパケットを転送する次のホップを決定し、次いで、決定された次のホップにパケットを転送するように構成される。 If the packet's destination is outside the source computing instance's VCN, the packet originating from the source computing instance is communicated from the host machine hosting the source computing instance to the NVD connected to that host machine. The NVD runs the VNIC associated with the source computing instance. Because the packet's destination endpoint is outside the VCN, the packet is processed by the VCN VR of that VCN. The NVD invokes the VCN VR function, which may forward the packet to an NVD running the appropriate gateway associated with the VCN. For example, if the destination is an endpoint within the customer's on-premises network, the packet may be forwarded by the VCN VR to an NVD running the DRG gateway configured for the VCN. The VCN VR can run on the same NVD running the VNIC associated with the source computing instance, or on a different NVD. The gateway can run on an NVD that is a smart NIC, a host machine, or other NVD implementation. Subsequently, the packet is processed by the gateway and forwarded to the next hop that facilitates the packet's communication to the intended destination endpoint. For example, in the embodiment shown in Figure 2, a packet originating from computing instance 268 may be communicated from host machine 202 to NVD 210 via link 220 (using NIC 232). At NVD 210, VNIC 276 is invoked because it is the VNIC associated with source computing instance 268. VNIC 276 is configured to examine the encapsulated information within the packet, determine the next hop to which the packet should be forwarded to facilitate its communication to the intended destination endpoint, and then forward the packet to the determined next hop.

VCN上に展開されたコンピューティングインスタンスは、さまざまな異なるエンドポイントと通信することができる。これらのエンドポイントには、CSPI200によってホストされるエンドポイントとCSPI200の外部のエンドポイントが含まれ得る。CSPI200によってホストされるエンドポイントには、同じVCNまたは他のVCN内のインスタンスが含まれ得、これらは顧客のVCNまたは顧客に属さないVCNである場合がある。CSPI200によってホストされるエンドポイント間の通信は、物理ネットワーク218を介して実行され得る。コンピューティングインスタンスは、CSPI200によってホストされていないエンドポイント、またはCSPI200の外部にあるエンドポイントと通信することもできる。これらのエンドポイントの例には、顧客のオンプレミスネットワークもしくはデータセンター内のエンドポイント、またはインターネットなどのパブリックネットワーク経由でアクセスできるパブリックエンドポイントが含まれる。CSPI200の外部のエンドポイントとの通信は、さまざまな通信プロトコルを使用して、パブリックネットワーク(例えば、インターネット)(図2には図示せず)またはプライベートネットワーク(図2には図示せず)を介して実行され得る。 Computing instances deployed on a VCN can communicate with various different endpoints. These endpoints may include endpoints hosted by CSPI200 and endpoints outside of CSPI200. Endpoints hosted by CSPI200 may include instances within the same VCN or other VCNs, which may be the customer's VCN or a VCN not belonging to the customer. Communication between endpoints hosted by CSPI200 may be performed over the physical network 218. Computing instances can also communicate with endpoints not hosted by CSPI200, or endpoints located outside of CSPI200. Examples of these endpoints include endpoints within the customer's on-premises network or data center, or public endpoints accessible via a public network such as the Internet. Communication with endpoints outside of CSPI200 may be performed over a public network (e.g., the Internet) (not shown in Figure 2) or a private network (not shown in Figure 2) using various communication protocols.

図2に示されるCSPI200のアーキテクチャは、単なる一例であり、限定することを意図したものではない。代替実施形態では、変形、代替、および修正が可能である。例えば、いくつかの実装では、CSPI200は、図2に示されるものより多くの、または少ないシステムまたは構成要素を有してもよく、2つ以上のシステムを組み合わせてもよいし、システムの異なる構成または配置を有してもよい。図2に示されるシステム、サブシステム、および他の構成要素は、ハードウェアまたはそれらの組み合わせを使用して、それぞれのシステムの1つまたは複数の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)で実装され得る。ソフトウェアは、非一時的な記憶媒体(例えば、メモリ装置)に記憶されてもよい。 The architecture of the CSPI200 shown in Figure 2 is merely an example and is not intended to be limiting. Alternative embodiments are possible, and variations, substitutions, and modifications are possible. For example, in some implementations, the CSPI200 may have more or fewer systems or components than those shown in Figure 2, or it may combine two or more systems, or have different configurations or arrangements of systems. The systems, subsystems, and other components shown in Figure 2 may be implemented using hardware or a combination thereof, with software (e.g., code, instructions, programs) executed by one or more processing units (e.g., processors, cores) of each system. The software may be stored in non-temporary storage media (e.g., memory devices).

図4は、特定の実施形態による、マルチテナントをサポートするためのI/O仮想化を提供するためのホストマシンとNVDとの間の接続を示す。図4に示すように、ホストマシン402は、仮想化環境を提供するハイパーバイザ404を実行する。ホストマシン402は、顧客/テナント#1に属するVM1 406と顧客/テナント#2に属するVM2 408という2つの仮想マシンインスタンスを実行する。ホストマシン402は、リンク414を介してNVD412に接続される物理NIC410を備える。各コンピューティングインスタンスは、NVD412によって実行されるVNICに接続される。図4の実施形態では、VM1 406はVNIC-VM1 420に接続され、VM2 408はVNIC-VM2 422に接続されている。 Figure 4 shows the connection between a host machine and NVD to provide I/O virtualization for supporting multi-tenancy, according to a specific embodiment. As shown in Figure 4, the host machine 402 runs a hypervisor 404 that provides the virtualization environment. The host machine 402 runs two virtual machine instances: VM1 406 belonging to customer/tenant #1 and VM2 408 belonging to customer/tenant #2. The host machine 402 includes a physical NIC 410 connected to NVD 412 via link 414. Each computing instance is connected to a VNIC run by NVD 412. In the embodiment of Figure 4, VM1 406 is connected to VNIC-VM1 420, and VM2 408 is connected to VNIC-VM2 422.

図4に示されるように、NIC410は、論理NICA416と論理NICB418という2つの論理NICを備える。各仮想マシンは、独自の論理NICに接続され、動作するように構成される。例えば、VM1 406は論理NICA416に接続され、VM2 408は論理NICB418に接続される。ホストマシン402は、複数のテナントによって共有される物理NIC410を1つだけ備えているが、論理NICにより、各テナントの仮想マシンは、自分たちが独自のホストマシンとNICとを持っていると認識する。 As shown in Figure 4, NIC 410 comprises two logical NICs: logical NIC A416 and logical NIC B418. Each virtual machine is configured to connect to and operate on its own logical NIC. For example, VM1 406 is connected to logical NIC A416, and VM2 408 is connected to logical NIC B418. While the host machine 402 has only one physical NIC 410 shared by multiple tenants, the logical NICs allow each tenant's virtual machine to perceive itself as having its own host machine and NIC.

特定の実施形態では、各論理NICには独自のVLAN IDが割り当てられる。したがって、特定のVLAN IDがテナント#1の論理NICA416に割り当てられ、別のVLAN IDがテナント#2の論理NICB418に割り当てられる。パケットがVM1 406から通信されると、テナント#1に割り当てられるタグがハイパーバイザによってパケットに接続され、パケットはリンク414を介してホストマシン402からNVD412に通信される。同様に、パケットがVM2 408から通信されると、テナント#2に割り当てられるタグがハイパーバイザによってパケットに接続され、次いで、パケットはリンク414を介してホストマシン402からNVD412に通信される。したがって、ホストマシン402からNVD412に通信されるパケット424は、特定のテナントおよび関連するVMを識別する関連タグ426を有する。NVD上では、ホストマシン402から受信したパケット424について、パケットに関連付けられるタグ426を使用して、パケットがVNIC-VM1 420によって処理されるべきかVNIC-VM2 422によって処理されるべきかを決定する。その後、パケットは対応するVNICによって処理される。図4に示される構成は、各テナントのコンピューティングインスタンスが独自のホストマシンとNICとを所有していると認識できるようにする。図4に示される設定は、マルチテナントをサポートするためのI/O仮想化を提供する。 In a particular embodiment, each logical NIC is assigned its own VLAN ID. Thus, a specific VLAN ID is assigned to logical NICA 416 of tenant #1, and another VLAN ID is assigned to logical NICB 418 of tenant #2. When a packet is communicated from VM1 406, the tag assigned to tenant #1 is attached to the packet by the hypervisor, and the packet is communicated from host machine 402 to NVD 412 via link 414. Similarly, when a packet is communicated from VM2 408, the tag assigned to tenant #2 is attached to the packet by the hypervisor, and the packet is then communicated from host machine 402 to NVD 412 via link 414. Therefore, the packet 424 communicated from host machine 402 to NVD 412 has an associated tag 426 that identifies a specific tenant and associated VM. On the NVD, for packets 424 received from host machine 402, the tag 426 associated with the packet is used to determine whether the packet should be processed by VNIC-VM1 420 or VNIC-VM2 422. The packet is then processed by the corresponding VNIC. The configuration shown in Figure 4 allows each tenant's computing instance to recognize that it owns its own host machine and NIC. The configuration shown in Figure 4 provides I/O virtualization to support multi-tenancy.

図5は、特定の実施形態による物理ネットワーク500の簡略化されたブロック図を示す。図5に示される実施形態は、Closネットワークとして構造化されている。Closネットワークは、高二分帯域幅と最大のリソース使用率を維持しながら、接続の冗長性を提供するように設計された特定のタイプのネットワークトポロジである。Closネットワークは、ノンブロッキングの多段階または多層スイッチングネットワークのタイプで、段階または層の数は2、3、4、5などになり得る。図5に示される実施形態は、層1、2、および3からなる3層ネットワークである。TORスイッチ504は、Closネットワーク内のTier-0スイッチを表す。1つまたは複数のNVDがTORスイッチに接続されている。Tier-0スイッチは、物理ネットワークのエッジ装置とも呼ばれる。Tier-0スイッチは、Tier-1スイッチ(リーフスイッチとも呼ばれる)に接続される。図5に示される実施形態では、「n」個のTier-0TORスイッチのセットが「n」個のTier-1スイッチのセットに接続され、一緒にポッドを形成する。ポッド内の各Tier-0スイッチは、ポッド内のすべてのTier-1スイッチに相互接続されるが、ポッド間のスイッチの接続はない。特定の実装では、2つのポッドはブロックと呼ばれる。各ブロックは、セットの「n」個のTier-2スイッチ(スパインスイッチと呼ばれることもある)によって提供されるか、またはそれに接続される。物理ネットワークトポロジには複数のブロックが存在し得る。Tier-2スイッチは、次に「n」個のTier-3スイッチ(スーパースパインスイッチと呼ばれることもある)に接続される。物理ネットワーク500を介したパケットの通信は、通常、1つまたは複数の層3通信プロトコルを使用して実行される。通常、TOR層を除く物理ネットワークのすべての層はn-方法冗長であるため、高可用性が可能になる。物理ネットワークの拡張を可能にするために、物理ネットワーク内のスイッチの相互の可視性を制御するポリシーをポッドとブロックに指定できる。 Figure 5 shows a simplified block diagram of a physical network 500 according to a particular embodiment. The embodiment shown in Figure 5 is structured as a Clos network. A Clos network is a particular type of network topology designed to provide connectivity redundancy while maintaining high bimodal bandwidth and maximum resource utilization. A Clos network is a type of non-blocking multi-stage or multi-layer switching network, where the number of stages or layers can be 2, 3, 4, 5, etc. The embodiment shown in Figure 5 is a three-layer network consisting of layers 1, 2, and 3. The TOR switch 504 represents a Tier-0 switch in the Clos network. One or more NVDs are connected to the TOR switch. Tier-0 switches are also called edge devices of the physical network. Tier-0 switches are connected to Tier-1 switches (also called leaf switches). In the embodiment shown in Figure 5, a set of "n" Tier-0 TOR switches is connected to a set of "n" Tier-1 switches, together forming a pod. Each Tier-0 switch within a pod is interconnected with all Tier-1 switches within that pod, but there are no switch connections between pods. In certain implementations, two pods are called blocks. Each block is supplied by or connected to a set of n Tier-2 switches (sometimes called spine switches). Multiple blocks can exist in a physical network topology. Tier-2 switches are then connected to n Tier-3 switches (sometimes called superspine switches). Packet communication over the physical network 500 is typically performed using one or more Layer 3 communication protocols. High availability is possible because all layers of the physical network, except the TOR layer, are typically n-way redundant. To enable scaling of the physical network, policies can be specified for pods and blocks to control the mutual visibility of switches within the physical network.

Closネットワークの特徴は、1つのTier-0スイッチから別のTier-0スイッチへ(またはTier-0スイッチに接続されたNVDからTier-0スイッチに接続された別のNVDへ)に到達する最大ホップ数が固定されていることである。例えば、3層Closネットワークでは、パケットが1つのNVDから別のNVDに到達するために最大7ホップが必要である。この場合、ソースNVDとターゲットNVDはClosネットワークのリーフ層に接続される。同様に、4層Closネットワークでは、ソースNVDとターゲットNVDがClosネットワークのリーフ層に接続されている場合、パケットが1つのNVDから別のNVDに到達するには最大9ホップが必要である。したがって、Closネットワークアーキテクチャは、ネットワーク全体で一貫した遅延を維持する。これは、データセンター内およびデータセンター間の通信にとって重要である。Closトポロジは水平方向に拡張し、コスト効率が優れている。ネットワークの帯域幅/スループット容量は、さまざまな層により多くのスイッチを追加し(例えば、リーフスイッチとスパインスイッチを増やす)、隣接する層のスイッチ間のリンクの数を増やすことで簡単に増やすことができる。 A key characteristic of a Clos network is that the maximum number of hops required to travel from one Tier-0 switch to another Tier-0 switch (or from one NVD connected to a Tier-0 switch to another NVD connected to a Tier-0 switch) is fixed. For example, in a 3-tier Clos network, a packet requires a maximum of 7 hops to travel from one NVD to another. In this case, the source and target NVDs are connected to the leaf layer of the Clos network. Similarly, in a 4-tier Clos network, if the source and target NVDs are connected to the leaf layer of the Clos network, a packet requires a maximum of 9 hops to travel from one NVD to another. Therefore, the Clos network architecture maintains consistent latency across the entire network, which is crucial for communication within and between data centers. Clos topologies are horizontally scalable and cost-effective. Network bandwidth/throughput capacity can be easily increased by adding more switches to various layers (e.g., increasing the number of leaf and spine switches) and increasing the number of links between switches in adjacent layers.

特定の実施形態では、CSPI内の各リソースには、クラウド識別子(CID)と呼ばれる固有の識別子が割り当てられる。この識別子はリソースの情報の一部として含まれており、例えば、コンソールまたはAPIを介してリソースを管理するために使用できる。CIDの構文の例は次のとおりである。
ocid1.<リソースタイプ>.<領域>.[地域][.将来の使用]。<一意のID>
ここで、
ocid1:CIDのバージョンを示すリテラル文字列、
リソースタイプ:リソースのタイプ(例えば、インスタンス、ボリューム、VCN、サブネット、ユーザ、グループなど)、
領域:リソースが存在する領域。値の例は、商用領域の場合は「c1」、政府クラウド領域の場合は「c2」、連邦政府クラウド領域の場合は「c3」などである。各領域には独自の領域名がある場合がある、
地域:リソースが存在する地域。地域がリソースに適用できない場合、この部分は空白になり得る、
将来の使用:将来の使用のために予約されている。
一意のID:IDの一意の部分。形式はリソースまたはサービスのタイプによって異なる場合がある。
In certain embodiments, each resource within the CSPI is assigned a unique identifier called a Cloud Identifier (CID). This identifier is included as part of the resource information and can be used, for example, to manage the resource via a console or API. An example of CID syntax is as follows:
ocid1. <Resource Type>. <Area>. [Region] [Future Use]. <Unique ID>
Here,
ocid1: A literal string indicating the CID version.
Resource type: The type of resource (e.g., instance, volume, VCN, subnet, user, group, etc.)
Domain: The domain where the resources reside. Examples of values include "c1" for commercial domains, "c2" for government cloud domains, and "c3" for federal government cloud domains. Each domain may have its own unique domain name.
Region: The region where the resource exists. If the region does not apply to the resource, this section may be blank.
Future Use: Reserved for future use.
Unique ID: The unique part of the ID. The format may vary depending on the type of resource or service.

図6は、特定の実施形態による、CLOSネットワーク構成を組み込んだクラウドインフラストラクチャ600のブロック図を示す。クラウドインフラストラクチャ600は、複数のラック(例えば、ラック1 610…ラックM、620)を含む。各ラックは、複数のホストマシン(本明細書ではホストとも呼ばれる)を含む。例えば、ラック1 610は、複数のホスト(例えば、K個のホストマシン)ホスト1-A、612からホスト1-K、614を含み、ラックMは、K個のホストマシン、すなわち、ホストM-A、622からホストM-K、624を含む。図6の図は、(すなわち、同じ数のホストマシン、例えばK個のホストマシンを含む各ラック)は、例示的であり、限定するものではないことを意図していることが理解される。例えば、ラックM、620には、ラック1 610に含まれるホストマシンの数と比較して、より多くのまたはより少ない数のホストマシンが含まれ得る。 Figure 6 shows a block diagram of a cloud infrastructure 600 incorporating a CLOS network configuration according to a specific embodiment. The cloud infrastructure 600 includes multiple racks (e.g., racks 1, 610… racks M, 620). Each rack contains multiple host machines (also referred to herein as hosts). For example, rack 1, 610 contains multiple hosts (e.g., K host machines), from host 1-A, 612 to host 1-K, 614, and rack M contains K host machines, i.e., from host M-A, 622 to host M-K, 624. It should be understood that the figures in Figure 6 (i.e., each rack containing the same number of host machines, e.g., K host machines) are illustrative and not limiting. For example, rack M, 620 may contain more or fewer host machines compared to the number of host machines contained in rack 1, 610.

各ホストマシンは、複数のグラフィカル処理ユニット(GPU)を含む。例えば、図6に示すように、ホストマシン1-A612は、N個のGPU、例えばGPU1、613を含む。さらに、図6の図(各ホストマシンに同じ数のGPU、つまりN個のGPUが含まれる)は、説明を目的としたものであり、限定的なものではなく、つまり、各ホストマシンには異なる数のGPUを含めることができることが理解される。各ラックには、ホストマシン上でホストされているGPUと通信可能に結合されたトップオブラック(TOR)スイッチが含まれている。例えば、ラック1 610は、ホスト1-A、612およびホスト1-K、614に通信可能に結合されたTORスイッチ(すなわち、TOR1)616を含み、ラックM620は、ホストM-A、622およびホストM-K、624に通信可能に結合されるTORスイッチ(すなわち、TOR M)626を含む。図6に示されるTORスイッチ(つまり、TOR1 616、およびTOR M626)は、各々には、ラックに含まれる各ホストマシン上でホストされるN個のGPUにTORスイッチを通信可能に接続するために使用されるN個のポートが含まれことが理解される。図6に示すように、TORスイッチのGPUへの結合は、例示的なものであり、限定的なものではない。例えば、いくつかの実施形態では、TORスイッチは、各々が各ホストマシン上のGPUに対応する複数のポートを有し得る。すなわち、ホストマシン上のGPUは、通信リンクを介してTORの固有のポートに接続され得る。さらに、ネットワーク装置(例えば、TOR1 616)によって受信されるトラフィックは、本明細書では、ネットワーク装置の特定の受信ポートリンク上で受信されるトラフィックとして特徴付けられる。例えば、ホスト1-A612のGPU1 613が(リンク617を使用して)TOR1 616にデータパケットを送信すると、そのデータパケットはTOR1スイッチのポート619で受信される。TOR1 616は、このデータパケットを、TORの第1の受信ポートリンク上で受信された情報として特徴付ける。同様の概念がTORのすべての発信ポートリンクに適用できることが理解される。 Each host machine contains multiple graphical processing units (GPUs). For example, as shown in Figure 6, host machine 1-A612 contains N GPUs, e.g., GPU1,613. Furthermore, the diagram in Figure 6 (each host machine containing the same number of GPUs, i.e., N GPUs) is for illustrative purposes only and is not limiting; it should be understood that each host machine can contain a different number of GPUs. Each rack contains a top-of-rack (TOR) switch that is communicatively coupled to the GPUs hosted on the host machines. For example, rack 1610 contains a TOR switch (i.e., TOR1)616 communicatively coupled to hosts 1-A,612 and 1-K,614, and rack M620 contains a TOR switch (i.e., TORM)626 communicatively coupled to hosts M-A,622 and M-K,624. It is understood that the TOR switches shown in Figure 6 (i.e., TOR1 616 and TOR M626) each contain N ports used to connect the TOR switch to N GPUs hosted on each host machine contained in the rack in a communicative manner. As shown in Figure 6, the coupling of the TOR switches to the GPUs is illustrative and not limiting. For example, in some embodiments, the TOR switches may each have a plurality of ports corresponding to a GPU on each host machine. That is, the GPUs on the host machines may be connected to specific ports of the TOR via communication links. Furthermore, traffic received by the network device (e.g., TOR1 616) is characterized herein as traffic received on a particular receiving port link of the network device. For example, when GPU1 613 on host 1-A612 sends a data packet to TOR1 616 (using link 617), that data packet is received at port 619 of the TOR1 switch. TOR1 616 characterizes this data packet as information received on the TOR's first receiving port link. It is understood that a similar concept applies to all of the TOR's outgoing port links.

各ラックからのTORスイッチは、複数のスパインスイッチ、例えばスパインスイッチ1 630およびスパインスイッチP640に通信可能に接続される。図6に示すように、TOR1、616は、2つのリンクを介してスパインスイッチ1 630に接続され、別の2つのリンクを介してスパインスイッチP640にそれぞれ接続される。特定のTORスイッチからスパインスイッチに送信される情報は、本明細書ではアップリンクを介して行われる通信と呼ばれ、一方、スパインスイッチからTORスイッチに送信される情報は、本明細書ではダウンリンクを介して行われる通信と呼ばれる。いくつかの実施形態によれば、TORスイッチおよびスパインスイッチはCLOSネットワーク構成(例えば、多段スイッチングネットワーク)で接続され、各TORスイッチはCLOSネットワーク内の「リーフ」ノードを形成する。 Each TOR switch from a rack is communicated to multiple spine switches, for example, spine switch 1630 and spine switch P640. As shown in Figure 6, TORs 1616 are connected to spine switch 1630 via two links and to spine switch P640 via two other links. Information transmitted from a particular TOR switch to a spine switch is referred to herein as communication via uplinks, while information transmitted from a spine switch to a TOR switch is referred to herein as communication via downlinks. According to some embodiments, the TOR switches and spine switches are connected in a CLOS network configuration (e.g., a multi-stage switching network), where each TOR switch forms a "leaf" node in the CLOS network.

いくつかの実施形態によれば、ホストマシンに含まれるGPUは、機械学習に関連するタスクを実行する。このような設定では、単一のタスクが多数のGPU(例えば64)にわたって実行/分散され得、さらに複数のホストマシンおよび複数のラックにわたって分散され得る。これらすべてのGPUは同じタスク(つまり、ワークロード)で動作しているため、すべてが時間同期された方法で相互に通信する必要がある。さらに、どの時点でも、GPUはコンピューティングモードまたは通信モードのいずれかになる。つまり、GPUはほぼ同時に相互に通信する。ワークロードの速度は、最も遅いGPUの速度によって決まる。 In some embodiments, GPUs within a host machine perform tasks related to machine learning. In such a configuration, a single task can be executed/distributed across a large number of GPUs (e.g., 64), and further distributed across multiple host machines and multiple racks. Since all these GPUs are working on the same task (i.e., workload), they all need to communicate with each other in a time-synchronized manner. Furthermore, at any given moment, a GPU can be either compute mode or communication mode; that is, the GPUs communicate with each other almost simultaneously. The speed of the workload is determined by the speed of the slowest GPU.

通常、ソースGPU(例えば、ホスト1-A612のGPU1、613)から宛先GPU(例えば、ホストM-A622のGPU1、623)にパケットをルーティングするために、等コストマルチパス(ECMP)ルーティングが利用される。ECMPルーティングでは、送信者から受信者へのトラフィックのルーティングに利用可能な複数の等コストパスがある場合、特定のパスを選択するために選択技術が使用される。したがって、トラフィックを受信するネットワーク装置(例えば、TORスイッチやスパインスイッチ)では、選択アルゴリズムを使用して、次のホップ上のネットワーク装置から別のネットワーク装置にトラフィックを転送するために使用される発信リンクが選択される。このような発信リンクの選択は、送信者から受信者へのパス内の各ネットワーク装置で行われる。ハッシュベースの選択アルゴリズムは広く使用されているECMP選択技術であり、ハッシュはパケットの4タプル(例えば、ソースポート、宛先ポート、ソースIP、宛先IP)に基づく場合がある。 Typically, Equal-Cost Multipath (ECMP) routing is used to route packets from a source GPU (e.g., GPUs 1 and 613 on host 1-A612) to a destination GPU (e.g., GPUs 1 and 623 on host M-A622). In ECMP routing, if there are multiple equal-cost paths available for routing traffic from sender to receiver, a selection technique is used to choose a specific path. Therefore, the network device receiving the traffic (e.g., a TOR switch or spine switch) uses a selection algorithm to choose the outgoing link used to forward the traffic from one network device to another on the next hop. Such outgoing link selection occurs at each network device in the sender-to-receiver path. Hash-based selection algorithms are a widely used ECMP selection technique, and the hash may be based on a 4-tuple of the packet (e.g., source port, destination port, source IP, destination IP).

ECMPルーティングは、フロー認識ルーティング技術であり、各フロー(すなわち、データパケットのストリーム)は、フローの存続期間中に特定のパスにハッシュされる。したがって、フロー内のパケットは、特定の発信ポート/リンクを使用してネットワーク装置から転送される。これは通常、フロー内のパケットが順番に到着することを保証するために行われる。つまり、パケットの並べ替えは必要ない。しかし、ECMPルーティングは帯域幅(またはスループット)を認識しない。つまり、TORスイッチとスパインスイッチは、並列リンク上のフローの統計的なフロー認識型(スループット非認識型)ECMP負荷分散を実行する。 ECMP routing is a flow-aware routing technique where each flow (i.e., a stream of data packets) is hashed to a specific path for the duration of the flow. Therefore, packets within a flow are forwarded from the network device using a specific outgoing port/link. This is typically done to ensure that packets within a flow arrive in order; in other words, packet reordering is not required. However, ECMP routing is bandwidth (or throughput) unaware. Therefore, TOR switches and spine switches perform statistical flow-aware (throughput-unaware) ECMP load balancing of flows on parallel links.

標準ECMPルーティング(すなわち、フロー認識ルーティングのみ)では、2つの別個の受信リンクを介してネットワーク装置によって受信されたフローが同じ発信リンクにハッシュされ、それによってフロー衝突が生じる可能性があるという問題がある。例えば、2つのフローが2つの別々の受信100Gリンク経由で受信し、各フローが同じ100G送信リンクにハッシュされる状況を考えてみる。このような状況では、受信帯域幅が200Gであるのに対し、送信帯域幅は100Gであるため、輻輳(つまり、フロー衝突)が発生し、パケットがドロップされる。例えば、以下で説明する図7は、フロー衝突700の例示的なシナリオを示す。 Standard ECMP routing (i.e., flow-aware routing only) has a problem where flows received by network devices via two separate receive links are hashed to the same transmit link, potentially leading to flow collisions. For example, consider a scenario where two flows are received via two separate 100G receive links, and each flow is hashed to the same 100G transmit link. In this situation, because the receive bandwidth is 200G while the transmit bandwidth is 100G, congestion (i.e., a flow collision) occurs, resulting in dropped packets. For example, Figure 7, described below, illustrates an exemplary scenario of flow collision 700.

図7に示すように、2つのフローがある。ホストマシンホスト1-A、612の第1のGPUからTORスイッチ616(実線で示す)に向けられるフロー1 710、同じホストマシン612上の別のGPUからTORスイッチ616(破線で示す)に向けられるフロー2 720。2つのフローは、別個のリンク、すなわちTORの別個の入力ポートリンク上のTORスイッチ616に向けられることに留意されたい。図7に示されるすべてのリンクは、100Gの容量(すなわち、帯域幅)を有するとする。TORスイッチ616がECMPルーティングアルゴリズムを実行する場合、2つのフローがハッシュされて、TORの同じ発信ポートリンク、例えば、TORスイッチ616をスパインスイッチ630に接続するリンク730に接続されたTORのポートを使用することが可能である。この場合、2つのフロー間に衝突が発生し(「X」マークで表される)、パケットがドロップされる。 As shown in Figure 7, there are two flows: Flow 1 710, directed from the first GPU of host machine host 1-A, 612 to TOR switch 616 (shown by a solid line); and Flow 2 720, directed from another GPU on the same host machine 612 to TOR switch 616 (shown by a dashed line). Note that the two flows are directed to TOR switch 616 on separate links, i.e., separate input port links of TOR. Assume that all links shown in Figure 7 have a capacity (i.e., bandwidth) of 100G. If TOR switch 616 is running the ECMP routing algorithm, the two flows can be hashed and use the same outgoing port link of TOR, for example, the port of TOR connected to link 730 that connects TOR switch 616 to spine switch 630. In this case, a collision occurs between the two flows (indicated by an "X" mark), and the packets are dropped.

このような衝突シナリオは、一般に、プロトコルに関係なく、あらゆるタイプのトラフィックにとって問題となる。例えば、TCPは、パケットがドロップされ、送信者がそのドロップされたパケットに対する確認応答を取得できない場合、パケットが再送信されるという点でインテリジェントである。しかし、リモートダイレクトメモリアクセス(RDMA)タイプのトラフィックでは状況はさらに悪化する。RDMAネットワークはさまざまな理由でTCPを使用しない(例えば、TCPには低遅延と高性能に適さない複雑な論理がある)。RDMAネットワークは、RDMA over InfinibandまたはRDMA over converged Ethernet(RoCE)などのプロトコルを使用する。RoCEには輻輳制御アルゴリズムがあり、送信者が輻輳またはドロップされたパケットの発生を識別すると、送信者はパケットの送信速度を遅くする。ドロップされたパケットの場合、ドロップされたパケットだけでなく、ドロップされたパケットの周囲のいくつかのパケットも再送信され、利用可能な帯域幅がさらに消費され、性能が低下する。 Such collision scenarios are generally problematic for all types of traffic, regardless of the protocol. For example, TCP is intelligent in that if a packet is dropped and the sender cannot obtain an acknowledgment for that dropped packet, the packet is retransmitted. However, the situation is even worse with Remote Direct Memory Access (RDMA) type traffic. RDMA networks do not use TCP for various reasons (for example, TCP has complex logic that is not suitable for low latency and high performance). RDMA networks use protocols such as RDMA over Infiniband or RDMA over Converged Ethernet (RoCE). RoCE has a congestion control algorithm that slows down the transmission rate of packets when the sender identifies the occurrence of a congested or dropped packet. In the case of dropped packets, not only the dropped packet but also several packets surrounding it are retransmitted, further consuming available bandwidth and degrading performance.

以下に、上述したフロー衝突問題を克服するための技術について説明する。フロー衝突問題は、CPUとGPUからのトラフィックに影響を与えることが理解されている。しかし、厳しい時刻同期要件があるため、フロー衝突の問題はGPUにとってはるかに大きな問題である。さらに、標準のECMPルーティングメカニズムでは、統計的帯域幅を意識しないルーティング情報の固有の特性により、ネットワークの加入が過剰であるか不足しているかに関係なく、フロー衝突シナリオが発生することを理解されたい。過剰加入のないネットワークとは、装置(例えば、TOR、スパインスイッチ)への受信リンクの帯域幅が発信リンクの帯域幅と同じであるネットワークである。すべてのリンクの帯域幅容量が同じである場合、受信リンクの数は送信リンクの数と同じになることに留意されたい。 The following describes techniques for overcoming the flow collision problem mentioned above. It is understood that flow collisions affect traffic from both CPUs and GPUs. However, due to stringent time synchronization requirements, flow collisions pose a far greater problem for GPUs. Furthermore, it should be understood that, due to the inherent characteristics of routing information that are not aware of statistical bandwidth, flow collision scenarios can occur regardless of whether the network is oversubscribed or undersubscribed, as staggered by the standard ECMP routing mechanism. A network without oversubscribers is one where the bandwidth of the incoming links to the equipment (e.g., TOR, spine switches) is equal to the bandwidth of the outgoing links. Note that if all links have the same bandwidth capacity, the number of incoming links will be equal to the number of outgoing links.

いくつかの実施形態によれば、上述のフロー衝突問題を克服するための技術には、GPUベースのポリシールーティングメカニズム(本明細書ではGPUベースのトラフィックエンジニアリングメカニズムとも呼ばれる)および修正されたECMPルーティングメカニズムが含まれる。これらの各技術については、以下でさらに詳しく説明する。 According to some embodiments, techniques for overcoming the aforementioned flow collision problem include GPU-based policy routing mechanisms (also referred to herein as GPU-based traffic engineering mechanisms) and modified ECMP routing mechanisms. Each of these techniques is described in further detail below.

図8は、特定の実施形態による、図6のクラウドインフラストラクチャのネットワーク装置に実装されるポリシーベースのルーティングメカニズムを示す図である。具体的には、クラウドインフラストラクチャ800は、複数のラック、例えばラック1 810からラックM820を含む。各ラックには、複数のGPUを含むホストマシンが含まれる。例えば、ラック1 810にはホストマシン、つまりホスト1-A812が含まれ、ラックM820にはホストマシン、つまりホストM-A822が含まれる。各ラックはTORスイッチを含む。例えば、ラック1 810はTOR1スイッチ814を含み、ラックM820はTOR Mスイッチ824を含む。各ラック内のホストマシンは、ラック内のそれぞれのTORスイッチに通信可能に接続されている。TORスイッチ、すなわちTORスイッチ1 814およびTORスイッチM824は、今度はスパインスイッチ、すなわちスパインスイッチ830およびスパインスイッチ840に通信可能に接続される。ポリシーベースのルーティングを説明するために、また図示のために、クラウドインフラストラクチャ800は、ラックごとに単一のホストマシンを含むものとして示されている。しかし、インフラストラクチャ内の各ラックには複数のホストマシンが存在し得ることが理解される。 Figure 8 shows a policy-based routing mechanism implemented in the network device of the cloud infrastructure shown in Figure 6, according to a specific embodiment. Specifically, the cloud infrastructure 800 includes multiple racks, for example, racks 1810 to M820. Each rack contains host machines, each containing multiple GPUs. For example, rack 1810 contains a host machine, namely host 1-A812, and rack M820 contains a host machine, namely host M-A822. Each rack includes a TOR switch. For example, rack 1810 includes TOR1 switch 814, and rack M820 includes TORM switch 824. The host machines in each rack are communicated to their respective TOR switches within the rack. The TOR switches, namely TOR switch 1814 and TOR switch M824, are then communicated to spine switches, namely spine switch 830 and spine switch 840. To illustrate policy-based routing and for illustrative purposes, the cloud infrastructure 800 is shown as containing a single host machine per rack. However, it is understood that each rack in the infrastructure may contain multiple host machines.

いくつかの実施形態によれば、送信者から受信者へのデータパケットは、ネットワーク内でホップバイホップベースでルーティングされる。ルーティングポリシーは、受信ポートリンクを発信ポートリンクに結び付けるネットワーク装置ごとに設定される。ネットワーク装置は、TORスイッチまたはスパインスイッチであり得る。図8を参照すると、2つのフローが示されている。すなわち、意図された宛先がホストマシン822上のGPU1であるホストマシン812上のGPU1からのフロー1と、意図された宛先がホストマシン822上のGPUNであるホストマシン812上のGPUNからのフロー2である。ネットワーク装置、すなわち、TOR1 814、スパイン1 830、TOR M824、およびスパインP840は、受信ポートリンクを発信ポートリンクに結び付ける(または一致させる)ように構成される。受信ポートリンクと発信ポートリンクのマッチングは、各ネットワーク装置で(例えば、ポリシーテーブル内で)維持される。 According to some embodiments, data packets from sender to receiver are routed hop-by-hop within the network. Routing policies are configured for each network device that connects an incoming port link to an outgoing port link. The network devices may be TOR switches or spine switches. Referring to Figure 8, two flows are shown: flow 1 from GPU1 on host machine 812, whose intended destination is GPU1 on host machine 822, and flow 2 from GPUN on host machine 812, whose intended destination is GPUN on host machine 822. The network devices, namely TOR1 814, spine1 830, TOR M824, and spineP840, are configured to connect (or match) incoming port links to outgoing port links. The matching of incoming and outgoing port links is maintained at each network device (e.g., in a policy table).

図8を参照すると、フロー1(すなわち、実線で示されるフロー)に関して、TOR1 814がリンク850上でパケットを受信すると、TORは、受信したパケットを発信リンク855上に転送するように構成されることが観察できる。同様に、スパインスイッチ830がリンク855経由でパケットを受信すると、発信リンク860でパケットを転送するように構成される。最終的に、TOR M824は、リンク860上でパケットを受信すると、パケットをその意図された宛先、すなわちホストマシン822上のGPU1に送信するために、発信リンク865上にパケットを転送するように構成される。同様に、フロー2(すなわち、破線で示されるフロー)に関して、TOR1 814がリンク870上でパケットを受信すると、TOR1は、受信したパケットを発信リンク875上でスパインP840に転送するように構成される。スパインスイッチ840がリンク875経由でパケットを受信すると、発信リンク880でパケットを転送するように構成される。最終的に、TOR M824は、リンク880上でパケットを受信すると、パケットをその意図された宛先、すなわちホストマシン822上のGPUNに送信するために、発信リンク885上にパケットを転送するように構成される。 Referring to Figure 8, with respect to flow 1 (i.e., the flow shown by the solid line), it can be observed that when TOR1 814 receives a packet on link 850, TOR is configured to forward the received packet onto the outgoing link 855. Similarly, when spine switch 830 receives a packet via link 855, it is configured to forward the packet on the outgoing link 860. Finally, when TOR M 824 receives a packet on link 860, it is configured to forward the packet onto the outgoing link 865 to send the packet to its intended destination, i.e., GPU1 on host machine 822. Similarly, with respect to flow 2 (i.e., the flow shown by the dashed line), when TOR1 814 receives a packet on link 870, TOR1 is configured to forward the received packet to spine P 840 on the outgoing link 875. When spine switch 840 receives a packet via link 875, it is configured to forward the packet on the outgoing link 880. Ultimately, when TOR M824 receives a packet on link 880, it is configured to forward the packet onto the outgoing link 885 to send it to its intended destination, namely GPUN on host machine 822.

このように、GPUポリシーベースのルーティングメカニズムに従って、各ネットワーク装置は、衝突を回避するために、受信ポート/リンクを発信ポート/リンクに結び付けるように構成される。例えば、フロー1およびフロー2の第1のホップフローを考慮すると、TOR1 814は、リンク850上で第1のデータパケット(フロー1に対応)を受信し、リンク870上で第2のデータパケット(フロー2に対応)を受信する。TOR1 814は、受信リンク/ポート850で受信したデータパケットを発信リンク/ポート855に転送し、受信リンク/ポート870で受信したデータパケットを発信リンク/ポート875に転送するように構成されるため、第1のデータパケットと第2のデータパケットとは衝突しないことが保証される。クラウドインフラストラクチャ内の各ネットワーク装置では、受信ポートリンクと発信ポートリンクとの間に1対1の対応があり、つまり、受信ポートリンクと発信ポートリンクとの間のマッピングは、フローおよび/またはフローによって実行されるプロトコルとは独立して実行されることが理解される。さらに、特定のネットワーク装置の発信リンクに障害が発生した場合、いくつかの実施形態によれば、ネットワーク装置は、ルーティングポリシーをGPUポリシーベースのルーティングから標準のECMPルーティングに切り替えて、(さまざまな利用可能な出力リンクから)新しい利用可能な出力リンクを取得し、その新しい出力リンクにフローを送信するように構成される。この場合、フローの衝突が発生して輻輳が発生し得ることに留意されたい。 Thus, according to the GPU policy-based routing mechanism, each network device is configured to map incoming ports/links to outgoing ports/links to avoid collisions. For example, considering the first hop flows of flow 1 and flow 2, TOR1 814 receives the first data packet (corresponding to flow 1) on link 850 and the second data packet (corresponding to flow 2) on link 870. TOR1 814 is configured to forward the data packet received on incoming link/port 850 to outgoing link/port 855 and the data packet received on incoming link/port 870 to outgoing link/port 875, thus ensuring that the first and second data packets do not collide. It is understood that each network device in the cloud infrastructure has a one-to-one correspondence between incoming and outgoing port links; that is, the mapping between incoming and outgoing port links is performed independently of the flows and/or protocols executed by the flows. Furthermore, in the event of a failure in the outgoing link of a specific network device, according to some embodiments, the network device is configured to switch its routing policy from GPU policy-based routing to standard ECMP routing, acquire a new available outgoing link (from various available outgoing links), and send the flow to that new outgoing link. Note that in this case, flow collisions and congestion may occur.

ここで図9を参照すると、特定の実施形態による、異なるタイプの接続を示すクラウドインフラストラクチャ900のブロック図が示されている。インフラストラクチャ900は、複数のラック、例えば、ラック1 910、ラックD920、およびラックM930を含む。ラック910および930は、複数のホストマシンを含む。例えば、ラック1 910は、複数のホスト(例えば、K個のホストマシン)ホスト1-A、912からホスト1-K、914を含み、ラックMは、K個のホストマシン、すなわち、ホストM-A、932からホストM-K、934を含む。ラックD920は、1つまたは複数のホストマシン922を含み、各ホストマシン922は複数のCPUを含む。すなわち、ホストマシン922は非GPUホストマシンである。ラック910、920、および930の各々は、それぞれのラック内のホストマシンに通信可能に接続されたTORスイッチ、すなわちTOR1、916、TOR D926、およびTOR M936をそれぞれ含む。さらに、TORスイッチ916、926、および936は、複数のスパインスイッチ、すなわちスパインスイッチ940および950に通信可能に結合される。 Referring now to Figure 9, a block diagram of the cloud infrastructure 900 is shown illustrating different types of connectivity according to a particular embodiment. The infrastructure 900 includes a plurality of racks, for example, rack 1 910, rack D 920, and rack M 930. Racks 910 and 930 include a plurality of host machines. For example, rack 1 910 includes a plurality of hosts (for example, K host machines) from host 1-A, 912 to host 1-K, 914, and rack M includes K host machines, i.e., from host M-A, 932 to host M-K, 934. Rack D 920 includes one or more host machines 922, each host machine 922 including a plurality of CPUs, i.e., host machine 922 is a non-GPU host machine. Each of racks 910, 920, and 930 includes TOR switches, namely TOR1, 916, TOR D926, and TOR M936, respectively, that are communicatively connected to the host machines within their respective racks. Furthermore, TOR switches 916, 926, and 936 are communicatively coupled to multiple spine switches, namely spine switches 940 and 950.

図9に示すように、第1の接続(すなわち、破線で示される接続1)が、GPUホスト(すなわち、ホスト1-A912)から別のGPUホスト(すなわち、ホストM-A932)に存在し、第2の接続(すなわち、点線で示される接続2)は、GPUホスト(すなわち、ホスト1-K914)から非GPUホスト(すなわち、ホストD922)に存在する。接続1に関して、フローに関連付けられるデータパケットは、図8で前述したGPUベースのポリシールーティングメカニズムに基づいて各中間ネットワーク装置を構成することによって、ホップバイホップベースでルーティングされる。具体的には、接続1のデータパケットは、図9に示す破線のリンクに沿って、つまり、ホスト1-AからTOR1、TOR1からスパインスイッチ1、スパインスイッチ1からTOR M、そして最終的にTOR MからホストM-Aへ、ルーティングされる。各ネットワーク装置は、ネットワーク装置の受信リンクポートを発信リンクポートに結び付けるように構成される。 As shown in Figure 9, the first connection (i.e., connection 1, indicated by the dashed line) exists from a GPU host (i.e., host 1-A912) to another GPU host (i.e., host M-A932), and the second connection (i.e., connection 2, indicated by the dotted line) exists from a GPU host (i.e., host 1-K914) to a non-GPU host (i.e., host D922). With respect to connection 1, data packets associated with the flow are routed on a hop-by-hop basis by configuring each intermediate network device based on the GPU-based policy routing mechanism described in Figure 8. Specifically, data packets from connection 1 are routed along the dashed link shown in Figure 9, i.e., from host 1-A to TOR1, from TOR1 to spine switch 1, from spine switch 1 to TOR M, and finally from TOR M to host M-A. Each network device is configured to connect its receiving link port to its outgoing link port.

対照的に、接続2は、GPUベースのホスト(すなわち、ホスト1-K914)から非GPUベースのホスト(すなわち、ホストD922)へのものである。この場合、TOR1 916は、着信リンクポート、すなわち、GPUベースのホストからデータパケットを受信するポートおよびリンク(971)を、発信リンクポート、すなわち、出力ポートおよびその出力ポートに接続されたリンク972、に結び付けるように構成される。したがって、TOR1は、発信リンク972を使用してデータパケットをスパインスイッチ1 940に転送する。データパケットは非GPUベースのホスト宛てであるため、スパインスイッチ1 940はポリシーベースのルーティングメカニズムを利用してパケットをTOR Dに転送しない。むしろ、スパインスイッチ1 940は、ECMPルーティングメカニズムを利用して、パケットをTOR Dに転送するために利用可能なリンク980の1つを選択し、TOR Dは、次いでデータパケットをホストD922に転送する。 In contrast, connection 2 is from a GPU-based host (i.e., host 1-K914) to a non-GPU-based host (i.e., host D922). In this case, TOR1 916 is configured to connect the incoming link port, i.e., the port and link (971) that receives data packets from the GPU-based host, to the outgoing link port, i.e., the output port and the link 972 connected to that output port. Therefore, TOR1 uses the outgoing link 972 to forward the data packets to spine switch 1 940. Since the data packets are destined for a non-GPU-based host, spine switch 1 940 does not use a policy-based routing mechanism to forward the packets to TOR D. Rather, spine switch 1 940 uses an ECMP routing mechanism to select one of the available links 980 to forward the packets to TOR D, which then forwards the data packets to host D922.

いくつかの実施形態では、図7を参照して前述したフロー衝突は、本明細書で説明されるクラウドインフラストラクチャのネットワーク装置によって、ECMPルーティングの修正バージョンを実装することによって回避される。この場合、ECMPハッシュアルゴリズムは、ネットワーク装置の特定の受信ポートリンクを経由するトラフィックが、ネットワーク装置の同じ発信ポートリンクにハッシュされる(および向けられる)ように変更される。具体的には、各ネットワーク装置は修正されたECMPアルゴリズムを実装して、パケットの転送に使用される発信ポートリンクを決定し、修正されたECMPアルゴリズムにより、特定の受信ポートリンク経由で受信されたパケットは常に同じ発信ポートリンクにハッシュされる。例えば、第1のパケットと第2のパケットがネットワーク装置の第1の受信ポートリンクで受信され、一方、第3のパケットと第4のパケットがネットワーク装置の第2の受信ポートリンクで受信される場合を考えてみる。このような状況では、ネットワーク装置は修正されたECMPアルゴリズムを実装するように構成され、ネットワーク装置は、ネットワーク装置の第1の発信ポートリンク上で第1のパケットと第2のパケットを送信し、ネットワーク装置の第2の発信ポートリンク上で第3のパケットと第4のパケットを送信し、ネットワーク装置の第1の受信ポートリンクはネットワーク装置の第2の受信ポートリンクとは異なり、ネットワーク装置の第1の発信ポートリンクはネットワーク装置の第2の発信ポートリンクとは異なる。特定の実装では、転送情報データベース(例えば、転送テーブル、ECMPテーブルなど)に記憶されている情報は、上記の機能を可能にするために変更することができる。 In some embodiments, the flow collisions described above with reference to Figure 7 are avoided by the network devices of the cloud infrastructure described herein implementing a modified version of ECMP routing. In this case, the ECMP hash algorithm is modified so that traffic passing through a particular receiving port link of the network device is hashed (and directed) to the same outgoing port link of the network device. Specifically, each network device implements the modified ECMP algorithm to determine the outgoing port link used to forward packets, and the modified ECMP algorithm ensures that packets received through a particular receiving port link are always hashed to the same outgoing port link. For example, consider the case where the first and second packets are received on the first receiving port link of the network device, while the third and fourth packets are received on the second receiving port link of the network device. In this scenario, the network device is configured to implement a modified ECMP algorithm, transmitting the first and second packets on its first outgoing port link, the third and fourth packets on its second outgoing port link, the first receiving port link being different from the second receiving port link, and the first outgoing port link being different from the second outgoing port link. In specific implementations, information stored in the forwarding information database (e.g., forwarding table, ECMP table, etc.) may be modified to enable the above functionality.

ここで図10を参照すると、特定の実施形態によるラック1000の例示的な構成が示されている。図10に示すように、ラック1000は、2台のホストマシン、すなわち、ホストマシン1010およびホストマシン1020を含む。ラック1000は2台のホストマシンを含むように示されているが、ラック1000はさらに多くのホストマシンを含んでもよいことが理解される。各ホストマシンは複数のGPUおよび複数のCPUを含む。例えば、ホストマシン1010は、複数のCPU1012および複数のGPU1014を含み、一方、ホストマシン1020は、複数のCPU1022および複数のGPU1024を含む。 Referring now to Figure 10, an exemplary configuration of rack 1000 according to a particular embodiment is shown. As shown in Figure 10, rack 1000 includes two host machines, namely host machine 1010 and host machine 1020. Although rack 1000 is shown to include two host machines, it is understood that rack 1000 may include more host machines. Each host machine includes multiple GPUs and multiple CPUs. For example, host machine 1010 includes multiple CPUs 1012 and multiple GPUs 1014, while host machine 1020 includes multiple CPUs 1022 and multiple GPUs 1024.

ホストマシンは、異なるTORスイッチを介して異なるネットワークファブリックに通信可能に接続される。例えば、ホストマシン1010および1020は、TORスイッチ、すなわちTOR1スイッチ1050を介してネットワークファブリック(本明細書ではラック1000のフロントエンドネットワークと呼ばれる)に通信可能に結合される。フロントエンドネットワークは、外部ネットワークに相当し得る。より具体的には、ホストマシン1010は、ネットワークインターフェースカード(NIC)1030、およびTOR1スイッチ1050に結合されたネットワーク仮想化装置(NVD)1035を介してフロントエンドネットワークに接続される。ホストマシン1020は、NIC1040、およびTOR1スイッチ1050に結合されたNVD1045を介してフロントエンドネットワークに接続される。したがって、いくつかの実施形態によれば、各ホストマシンのCPUは、NIC、NVD、およびTORスイッチを介してフロントエンドネットワークと通信することができる。例えば、ホストマシン1010のCPU1012は、NIC1030、NVD1035、およびTOR1スイッチ1050を介してフロントエンドネットワークと通信することができる。 The host machines are communicably connected to different network fabrics via different TOR switches. For example, host machines 1010 and 1020 are communicably coupled to a network fabric (referred to herein as the front-end network of rack 1000) via a TOR switch, namely the TOR1 switch 1050. The front-end network may correspond to an external network. More specifically, host machine 1010 is connected to the front-end network via a network interface card (NIC) 1030 and a network virtualization device (NVD) 1035 coupled to the TOR1 switch 1050. Host machine 1020 is connected to the front-end network via a NIC 1040 and an NVD 1045 coupled to the TOR1 switch 1050. Thus, according to some embodiments, the CPU of each host machine can communicate with the front-end network via the NIC, NVD, and TOR switch. For example, the CPU 1012 of the host machine 1010 can communicate with the front-end network via the NIC 1030, NVD 1035, and TOR1 switch 1050.

ホストマシン1010および1020は、他方のサービス品質(QoS)対応のバックエンドネットワークに接続される。(QoS)対応のバックエンドネットワークは、本明細書では、図6に示すGPUクラスタネットワークに対応するバックエンドネットワークと呼ばれる。ホストマシン1010は、別のNIC1065を介して、ホストマシン1010をバックエンドネットワークに通信可能に結合するTOR2スイッチ1060に接続される。同様に、ホストマシン1020は、NIC1080を介してTOR2スイッチ1060に接続され、TOR2スイッチ1060は、ホストマシン1020をバックエンドネットワークに通信可能に結合する。したがって、各ホストマシンの複数のGPUは、NICおよびTORスイッチを介してバックエンドネットワークと通信できる。このように、複数のCPUは、フロントエンドネットワークおよびバックエンドネットワークとそれぞれ通信するために、(GPUによって利用されるNICのセットと比較して)別個のNICのセットを利用する。 Host machines 1010 and 1020 are connected to the other Quality of Service (QoS) enabled backend network. The QoS enabled backend network is referred to herein as the backend network corresponding to the GPU cluster network shown in Figure 6. Host machine 1010 is connected to a TOR2 switch 1060 via another NIC 1065, which connects host machine 1010 to the backend network in a communicative manner. Similarly, host machine 1020 is connected to the TOR2 switch 1060 via NIC 1080, and the TOR2 switch 1060 connects host machine 1020 to the backend network in a communicative manner. Thus, multiple GPUs in each host machine can communicate with the backend network via NICs and TOR switches. In this way, multiple CPUs utilize separate sets of NICs (compared to the set of NICs used by the GPUs) to communicate with the frontend network and the backend network, respectively.

図11Aは、特定の実施形態による、パケットをルーティングする際にネットワーク装置によって実行されるステップを示す例示的なフローチャート1100を示す。図11Aに示す処理は、それぞれのシステムの1つもしくは複数の処理ユニット(例えば、プロセッサ、コア)により実行されるソフトウェア(例えば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせで実装され得る。ソフトウェアは、非一時的な記憶媒体(例えば、メモリ装置)に記憶されてもよい。図11Aに示され、以下に説明される方法は、例示的なものであり、限定的なものではない。図11Aは、特定の流れまたは順序で行われるさまざまな処理ステップを示しているが、これに限定されるものではない。特定の代替実施形態では、ステップは何らかの異なる順序で実行されてもよいし、また一部のステップは並行して実行されてもよい。 Figure 11A shows an exemplary flowchart 1100 illustrating the steps performed by a network device when routing packets according to a particular embodiment. The processes shown in Figure 11A may be implemented by software (e.g., code, instructions, programs), hardware, or a combination thereof, executed by one or more processing units (e.g., processors, cores) of each system. The software may be stored in a non-temporary storage medium (e.g., a memory device). The methods shown in Figure 11A and described below are exemplary and not limiting. Figure 11A shows, but is not limited to, various processing steps performed in a particular flow or order. In certain alternative embodiments, the steps may be performed in some different order, and some steps may be performed in parallel.

プロセスは、ステップ1105で始まり、ネットワーク装置が、ホストマシンのグラフィカル処理ユニット(GPU)によって送信されたデータパケットを受信する。ステップ1110において、ネットワーク装置は、パケットが受信された受信ポート/リンクを決定する。ステップ1115で、ネットワーク装置は、ポリシールーティング情報に基づいて、(パケットが受信された)受信ポート/リンクに対応する発信ポート/リンクを識別する。いくつかの実施形態によれば、ポリシールーティング情報は、ネットワーク装置の各入力ポートリンクをネットワーク装置の固有の発信リンクポートに結び付ける、ネットワーク装置用の事前構成されたGPUルーティングテーブルに対応する。 The process begins in step 1105, when the network device receives data packets transmitted by the host machine's graphical processing unit (GPU). In step 1110, the network device determines the receiving port/link from which the packet was received. In step 1115, the network device identifies the outgoing port/link corresponding to the receiving port/link (from which the packet was received) based on policy routing information. According to some embodiments, the policy routing information corresponds to a pre-configured GPU routing table for the network device that maps each input port link of the network device to the network device's unique outgoing link port.

次に、プロセスはステップ1120に進み、そこで発信ポートリンクが機能状態にあるかどうか、例えば発信リンクがアクティブであるかどうかを決定するためのクエリが実行される。クエリに対する応答が肯定的である場合(すなわち、リンクがアクティブである)、プロセスはステップ1125に進み、一方、クエリに対する応答が否定的である場合(すなわち、リンクが障害状態/非アクティブ状態にある)、プロセスはステップ1130に進む。ステップ1125において、ネットワーク装置は、発信ポートリンク(ステップ1115で識別された)を利用して、受信したデータパケットを別のネットワーク装置に転送する。ステップ1130において、ネットワーク装置は、データパケットのフロー情報を取得する。例えば、フロー情報は、パケットに関連付けられる4タプル(すなわち、ソースポート、宛先ポート、ソースIPアドレス、宛先IPアドレス)に対応し得る。取得したフロー情報に基づいて、ネットワーク装置はECMPルーティングを利用して、新しい発信ポートリンク、つまり利用可能な発信ポートリンクを識別する。次に、プロセスはステップ1135に進み、ネットワーク装置は、新たに取得した発信ポートリンクを利用して、ステップ1105で受信したデータパケットを転送する。 Next, the process proceeds to step 1120, where a query is executed to determine whether the outgoing port link is functional, for example, whether the outgoing link is active. If the response to the query is positive (i.e., the link is active), the process proceeds to step 1125; however, if the response to the query is negative (i.e., the link is in a failed/inactive state), the process proceeds to step 1130. In step 1125, the network device uses the outgoing port link (identified in step 1115) to forward the received data packet to another network device. In step 1130, the network device obtains the flow information of the data packet. For example, the flow information may correspond to a 4-tuple associated with the packet (i.e., source port, destination port, source IP address, destination IP address). Based on the obtained flow information, the network device uses ECMP routing to identify a new outgoing port link, i.e., an available outgoing port link. Next, the process proceeds to step 1135, where the network device uses the newly acquired outgoing port link to forward the data packet received in step 1105.

図11Bは、特定の実施形態による、パケットをルーティングする際にネットワーク装置によって実行されるステップを示す別の例示的なフローチャート1150を示す。図11Bに示す処理は、それぞれのシステムの1つもしくは複数の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせで実装され得る。ソフトウェアは、非一時的な記憶媒体(例えば、メモリ装置)に記憶されてもよい。図11Bに示され、以下に説明される方法は、例示的なものであり、限定的なものではない。図11Bは、特定の流れまたは順序で行われるさまざまな処理ステップを示しているが、これに限定されるものではない。特定の代替実施形態では、ステップは何らかの異なる順序で実行されてもよいし、また一部のステップは並行して実行されてもよい。 Figure 11B shows another exemplary flowchart 1150 illustrating the steps performed by a network device when routing packets according to a particular embodiment. The processes shown in Figure 11B may be implemented by software (e.g., code, instructions, programs), hardware, or a combination thereof, executed by one or more processing units (e.g., processors, cores) of each system. The software may be stored in a non-temporary storage medium (e.g., a memory device). The methods shown in Figure 11B and described below are exemplary and not limiting. Figure 11B shows, but is not limited to, various processing steps performed in a particular flow or order. In certain alternative embodiments, the steps may be performed in some different order, and some steps may be performed in parallel.

プロセスはステップ1155で始まり、ネットワーク装置は、ホストマシンのグラフィカル処理ユニット(GPU)によって送信されたデータパケットを受信する。ステップ1160で、ネットワーク装置は、受信したパケットのフロー情報を決定する。いくつかの実装では、フロー情報は、パケットに関連付けられる4つのタプル(すなわち、ソースポート、宛先ポート、ソースIPアドレス、宛先IPアドレス)に対応し得る。ステップ1165で、ネットワーク装置は、ECMPルーティングの修正バージョンを実装することによって発信ポートリンクを計算する。修正されたECMPアルゴリズムにより、特定の受信ポートリンクで受信されたパケットは常にハッシュされて、同じ発信ポートリンクで送信される。 The process begins in step 1155, when the network device receives data packets transmitted by the host machine's graphical processing unit (GPU). In step 1160, the network device determines the flow information of the received packets. In some implementations, the flow information may correspond to a four-part tuple associated with the packet (i.e., source port, destination port, source IP address, destination IP address). In step 1165, the network device computes the outgoing port link by implementing a modified version of ECMP routing. The modified ECMP algorithm ensures that packets received on a particular receiving port link are always hashed and sent on the same outgoing port link.

次に、プロセスはステップ1170に進み、発信ポートリンク(ステップ1165で決定された)が機能状態、例えば発信リンクがアクティブであるかどうかを決定するためにクエリが実行される。クエリに対する応答が肯定的である場合(つまり、リンクがアクティブである場合)、プロセスはステップ1175に進み、一方、クエリに対する応答が否定的である場合(すなわち、リンクが障害状態/非アクティブ状態にある場合)、プロセスはステップ1180に進む。ステップ1175において、ネットワーク装置は、発信ポートリンク(ステップ1165で識別された)を利用して、受信したデータパケットを別のネットワーク装置に転送する。(ステップ1165の)識別された発信ポートリンクが非アクティブ状態にあると決定された場合、プロセスはステップ1180に進む。ステップ1180において、ネットワーク装置は、ECMPルーティング(すなわち、標準ECMPルーティング)を実装して、新しい発信ポートリンクを識別する。次にプロセスはステップ1185に進み、そこでネットワーク装置は新たに計算された発信ポートリンクを利用して、ステップ1155で受信されたデータパケットを転送する。 Next, the process proceeds to step 1170, where a query is executed to determine whether the outgoing port link (determined in step 1165) is functional, for example, whether the outgoing link is active. If the response to the query is positive (i.e., the link is active), the process proceeds to step 1175; however, if the response to the query is negative (i.e., the link is in a failed/inactive state), the process proceeds to step 1180. In step 1175, the network device uses the outgoing port link (identified in step 1165) to forward the received data packet to another network device. If it is determined that the identified outgoing port link (in step 1165) is inactive, the process proceeds to step 1180. In step 1180, the network device implements ECMP routing (i.e., standard ECMP routing) to identify a new outgoing port link. The process then proceeds to step 1185, where the network device uses the newly calculated outgoing port link to forward the data packet received in step 1155.

ホストマシンのGPUから発信されるデータパケットをルーティングする上記の技術により、スループットが小規模なクラスタでは20%、より大きなクラスタでは70%増加することに留意されたい(つまり、標準のECMPルーティングアルゴリズムと比較して3倍の改善)。 Note that the above technique for routing data packets originating from the host machine's GPU increases throughput by 20% in small clusters and 70% in larger clusters (i.e., a three-fold improvement compared to the standard ECMP routing algorithm).

クラウドインフラストラクチャの実施例
上で述べたように、サービスとしてのインフラストラクチャ(IaaS)は、クラウドコンピューティングの特定のタイプの1つである。IaaSは、パブリックネットワーク(インターネットなど)経由で仮想化されるコンピューティングリソースを提供するように構成できる。IaaSモデルでは、クラウドコンピューティングプロバイダは、インフラストラクチャ構成要素(例えば、サーバ、記憶装置、ネットワークノード(例えばハードウェア)、展開ソフトウェア、プラットフォーム仮想化(例えばハイパーバイザ層)など)をホストすることができる。場合によっては、IaaSプロバイダは、これらのインフラストラクチャ構成要素に付随するさまざまなサービス(例えば、請求、監視、ロギング、セキュリティ、負荷分散、およびクラスタリングなど)を提供することもできる。したがって、これらのサービスはポリシー推進型であり得るため、IaaSユーザは負荷分散を推進するポリシーを実装して、アプリケーションの可用性と性能を維持できる可能性がある。
Examples of Cloud Infrastructure As mentioned above, Infrastructure as a Service (IaaS) is one specific type of cloud computing. IaaS can be configured to provide computing resources that are virtualized over a public network (such as the internet). In the IaaS model, the cloud computing provider can host infrastructure components (e.g., servers, storage, network nodes (e.g., hardware), deployment software, platform virtualization (e.g., hypervisor layer)). In some cases, the IaaS provider can also provide various services that accompany these infrastructure components (e.g., billing, monitoring, logging, security, load balancing, and clustering). Since these services can be policy-driven, IaaS users may be able to implement policies that drive load balancing to maintain application availability and performance.

場合によっては、IaaS顧客は、インターネットなどのワイドエリアネットワーク(WAN)を介してリソースおよびサービスにアクセスすることができ、クラウドプロバイダのサービスを使用してアプリケーションスタックの残りの要素をインストールすることができる。例えば、ユーザはIaaSプラットフォームにログインして、仮想マシン(VM)の作成、各VMへのオペレーティングシステム(OS)のインストール、データベースなどのミドルウェアの展開、ワークロードとバックアップ用の記憶バケットの作成、さらにはエンタープライズソフトウェアをそのVMにインストールすることができる。その後、顧客はプロバイダのサービスを使用して、ネットワークトラフィックのバランス、アプリケーションの問題のトラブルシューティング、性能の監視、災害復旧の管理などのさまざまな機能を実行できる。 In some cases, IaaS customers can access resources and services via a wide area network (WAN), such as the internet, and install the remaining elements of their application stack using the cloud provider's services. For example, a user can log into the IaaS platform and create virtual machines (VMs), install operating systems (OS) on each VM, deploy middleware such as databases, create storage buckets for workloads and backups, and even install enterprise software on those VMs. The customer can then use the provider's services to perform various functions such as balancing network traffic, troubleshooting application issues, monitoring performance, and managing disaster recovery.

ほとんどの場合、クラウドコンピューティングモデルはクラウドプロバイダの参加を必要とする。クラウドプロバイダは、IaaSの提供(例えば、提供、レンタル、販売)を専門とするサードパーティサービスであってもかまわないが、そうである必要はない。エンティティはプライベートクラウドを展開して、独自のインフラストラクチャサービスプロバイダになることも選択できる。 In most cases, the cloud computing model requires the participation of a cloud provider. This cloud provider may, but does not have to, be a third-party service specializing in IaaS provision (e.g., providing, renting, or selling). Entities can also choose to deploy a private cloud and become their own infrastructure service provider.

いくつかの例では、IaaS展開は、新しいアプリケーション、またはアプリケーションの新しいバージョンを、準備されているアプリケーションサーバなどに配置するプロセスである。これには、サーバを準備するプロセス(例えば、ライブラリ、デーモンなどのインストールなど)も含まれ得る。これは多くの場合、ハイパーバイザ層(例えば、サーバ、記憶装置、ネットワークハードウェア、および仮想化)の下のクラウドプロバイダによって管理される。したがって、顧客は、(OS)、ミドルウェア、および/またはアプリケーション展開(例えば、セルフサービス仮想マシン(例えば、オンデマンドでスピンアップできる)など)などの取り扱いに責任を負うことができる。 In some examples, IaaS deployment is the process of deploying a new application, or a new version of an application, to a prepared application server. This may also include the process of preparing the server (e.g., installing libraries, daemons, etc.). This is often managed by the cloud provider under the hypervisor layer (e.g., servers, storage, network hardware, and virtualization). Therefore, the customer may be responsible for handling the (OS), middleware, and/or application deployment (e.g., self-service virtual machines, e.g., that can be spun up on demand).

いくつかの例では、IaaSプロビジョニングは、使用するコンピュータまたは仮想ホストを取得し、それらに必要なライブラリまたはサービスをインストールすることさえも指し得る。ほとんどの場合、展開にはプロビジョニングが含まれていないため、最初にプロビジョニングを実行することが必要な場合がある。 In some examples, IaaS provisioning can even refer to acquiring the computers or virtual hosts to be used and installing the necessary libraries or services on them. In most cases, provisioning is not included in the deployment, so it may be necessary to perform provisioning first.

場合によっては、IaaSプロビジョニングには2つの異なる課題がある。まず、何かを実行する前にインフラストラクチャの初期セットをプロビジョニングするという最初の課題がある。第2に、すべてがプロビジョニングされた後に、既存のインフラストラクチャを進化させるという課題がある(例えば、新しいサービスの追加、サービスの変更、サービスの削除など)。場合によっては、インフラストラクチャの構成を宣言的に画定できるようにすることで、これら2つの課題に対処できる場合がある。言い換えれば、インフラストラクチャ(例えば、どの構成要素が必要か、どのように対話するか)は1つまたは複数の構成ファイルによって画定できる。したがって、インフラストラクチャの全体的なトポロジ(例えば、どのリソースがどのリソースに依存するか、およびそれぞれがどのように連携するかなど)を宣言的に記述することができる。場合によっては、トポロジが画定されると、構成ファイルに記述されているさまざまな構成要素を作成および/または管理するワークフローを生成できる。 In some cases, IaaS provisioning presents two distinct challenges. First, there's the initial challenge of provisioning an initial set of infrastructure before anything can be done. Second, there's the challenge of evolving existing infrastructure after everything has been provisioned (e.g., adding new services, modifying services, removing services, etc.). In some cases, these two challenges can be addressed by declaratively defining the infrastructure configuration. In other words, the infrastructure (e.g., what components are needed and how they interact) can be defined by one or more configuration files. Therefore, the overall topology of the infrastructure (e.g., which resources depend on which, and how they interact) can be described declaratively. In some cases, once the topology is defined, a workflow can be generated to create and/or manage the various components described in the configuration files.

いくつかの例では、インフラストラクチャは、相互接続されている多くの要素を有し得る。例えば、コアネットワークとしても知られる、1つまたは複数の仮想プライベートクラウド(VPC)(例えば、構成可能および/または共有コンピューティングリソースの潜在的にオンデマンドのプール)が存在し得る。いくつかの例では、ネットワークのセキュリティがどのように設定されるかを画定するためにプロビジョニングされる1つまたは複数のセキュリティグループルールと、1つまたは複数の仮想マシン(VM)が存在する場合もある。ロードバランサ、データベースなどの他のインフラストラクチャ要素もプロビジョニングできる。より多くのインフラストラクチャ要素が望まれたり追加されたりするにつれて、インフラストラクチャは段階的に進化し得る。 In some examples, infrastructure can have many interconnected elements. For instance, there may be one or more virtual private clouds (VPCs), also known as core networks (e.g., a potentially on-demand pool of configurable and/or shared computing resources). In some examples, there may also be one or more security group rules provisioned to define how network security is configured, and one or more virtual machines (VMs). Other infrastructure elements such as load balancers and databases can also be provisioned. Infrastructure can evolve incrementally as more infrastructure elements are desired or added.

場合によっては、さまざまな仮想コンピューティング環境にわたるインフラストラクチャコードの展開を可能にするために、継続的展開技術が使用されてもよい。さらに、説明されている技術により、これらの環境内でのインフラストラクチャ管理が可能になる。いくつかの例では、サービスチームは、1つまたは複数の、しかし多くの場合、多くの異なる生産環境(例えば、さまざまな異なる地理的位置にまたがり、場合によっては全世界に及ぶ)に展開することが望ましいコードを書くことができる。しかし、例によっては、コードを展開するインフラストラクチャを最初に設定する必要がある。場合によっては、プロビジョニングは手動で行うことができ、プロビジョニングツールを利用してリソースをプロビジョニングすることができ、および/または展開ツールを利用して、インフラストラクチャがプロビジョニングされた後にコードを展開することができる。 In some cases, continuous deployment techniques may be used to enable the deployment of infrastructure code across various virtual computing environments. Furthermore, the techniques described enable infrastructure management within these environments. In some examples, a service team may write code that they wish to deploy to one or more, but often many, different production environments (e.g., across various geographical locations, and possibly worldwide). However, in some examples, the infrastructure to which the code will be deployed must first be configured. In some cases, provisioning can be done manually, resources can be provisioned using provisioning tools, and/or code can be deployed after the infrastructure has been provisioned using deployment tools.

図12は、少なくとも1つの実施形態による、IaaSアーキテクチャのパターン例を示すブロック図1200である。サービスオペレータ1202は、仮想クラウドネットワーク(VCN)1206およびセキュアホストサブネット1208を含むことができるセキュアホストテナント1204に通信可能に結合することができる。いくつかの例では、サービスオペレータ1202は、1つまたは複数のクライアントコンピューティング装置を使用することができ、これは、ポータブルハンドヘルド装置(例えば、iPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、携帯情報端末(PDA))もしくはウェアラブル装置(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)、Microsoft Windows Mobile(登録商標)などの実行ソフトウェア、および/またはiOS、WindowsPhone、Android、BlackBerry8、PalmOSなどのさまざまなモバイルオペレーティングシステム、ならびにインターネット、電子メール、ショートメッセージサービス(SMS)、Blackberry(登録商標)、または有効な他の通信プロトコルであり得る。あるいは、クライアントコンピューティング装置は、例えば、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステムを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む汎用パーソナルコンピュータであってもよい。クライアントコンピューティング装置は、例えばGoogle Chrome OSなどのさまざまなGNU/Linuxオペレーティングシステムを含むがこれらに限定されない、さまざまな市販のUNIX(登録商標)またはUNIX類似のオペレーティングシステムのいずれかを実行するワークステーションコンピュータであり得る。代替として、または追加として、クライアントコンピューティング装置は任意の他の電子装置であってもよく、シンクライアントコンピュータ、インターネット対応ゲームシステム(例えば、Kinect(登録商標)ジェスチャ入力装置あり、または無しのMicrosoft Xboxゲームコンソール)、および/またはVCN1206および/またはインターネットにアクセスできるネットワークを介して通信できるパーソナルメッセージング装置などである。 Figure 12 is a block diagram 1200 showing an example pattern of an IaaS architecture according to at least one embodiment. A service operator 1202 can be communicatively coupled to a secure host tenant 1204 which may include a virtual cloud network (VCN) 1206 and a secure host subnet 1208. In some examples, the service operator 1202 may use one or more client computing devices, which may be portable handheld devices (e.g., iPhone®, mobile phones, iPad®, computing tablets, personal digital assistants (PDAs)) or wearable devices (e.g., Google Glass® head-mounted displays), running software such as Microsoft Windows Mobile®, and/or various mobile operating systems such as iOS, Windows Phone, Android, Blackberry 8, PalmOS, as well as the Internet, email, short message service (SMS), Blackberry®, or other valid communication protocols. Alternatively, the client computing device may be a general-purpose personal computer, including, for example, a personal computer and/or laptop computer running various versions of the Microsoft Windows®, Apple Macintosh®, and/or Linux® operating systems. The client computing device may also be a workstation computer running any of the various commercially available UNIX® or UNIX-like operating systems, including, but not limited to, various GNU/Linux operating systems such as Google Chrome OS. Alternatively, or additionally, the client computing device may be any other electronic device, such as a thin client computer, an internet-enabled game system (e.g., a Microsoft Xbox game console with or without Kinect® gesture input), and/or a personal messaging device that can communicate via a VCN1206 and/or an internet-accessible network.

VCN1206は、SSHVCN1212に含まれるLPG1210を介してセキュアシェル(SSH)VCN1212に通信可能に結合することができるローカルピアリングゲートウェイ(LPG)1210を含むことができる。SSHVCN1212は、SSHサブネット1214を含むことができ、SSHVCN1212は、制御プレーンVCN1216に含まれるLPG1210を介して制御プレーンVCN1216に通信可能に結合することができる。また、SSHVCN1212は、LPG1210を介してデータプレーンVCN1218に通信可能に結合することができる。制御プレーンVCN1216およびデータプレーンVCN1218は、IaaSプロバイダが所有および/または動作できるサービステナント1219に含めることができる。 VCN 1206 may include a local peering gateway (LPG) 1210 that can communicately connect to Secure Shell (SSH) VCN 1212 via LPG 1210 included in SSHVCCN 1212. SSHVCCN 1212 may include an SSH subnet 1214, and SSHVCCN 1212 can communicately connect to control plane VCN 1216 via LPG 1210 included in control plane VCN 1216. Furthermore, SSHVCCN 1212 can communicately connect to data plane VCN 1218 via LPG 1210. Control plane VCN 1216 and data plane VCN 1218 may be included in a service tenant 1219 owned and/or operated by an IaaS provider.

制御プレーンVCN1216は、境界ネットワーク(例えば、企業イントラネットと外部ネットワークとの間の企業ネットワークの一部)として機能する制御プレーン非武装地帯(DMZ)層1220を含むことができる。DMZベースのサーバは責任が制限されており、侵害を阻止するのに役立ち得る。さらに、DMZ層1220は、1つまたは複数のロードバランサ(LB)サブネット1222、アプリサブネット1226を含むことができる制御プレーンアプリ層1224、制御プレーンデータ層1228を含むことができ、これには、データベース(DB)サブネット1230(例えば、フロントエンドDBサブネットおよび/またはバックエンドDBサブネット)を含めることができる。制御プレーンDMZ層1220に含まれるLBサブネット1222は、制御プレーンアプリ層1224に含まれるアプリサブネット1226および制御プレーンVCN1216に含まれ得るインターネットゲートウェイ1234に通信可能に結合することができ、アプリサブネット1226は、制御プレーンデータ層1228に含まれるDBサブネット1230、ならびにサービスゲートウェイ1236およびネットワークアドレス変換(NAT)ゲートウェイ1238に通信可能に結合することができる。制御プレーンVCN1216は、サービスゲートウェイ1236およびNATゲートウェイ1238を含むことができる。 The control plane VCN 1216 may include a control plane demilitarized zone (DMZ) layer 1220 that functions as a perimeter network (e.g., part of the corporate network between the corporate intranet and the external network). DMZ-based servers have limited liability and can help deter breaches. Furthermore, the DMZ layer 1220 may include a control plane application layer 1224 that may include one or more load balancer (LB) subnets 1222, an application subnet 1226, and a control plane data layer 1228 that may include a database (DB) subnet 1230 (e.g., a front-end DB subnet and/or a back-end DB subnet). The LB subnet 1222 included in the control plane DMZ layer 1220 can be communicatively coupled to the application subnet 1226 included in the control plane application layer 1224 and to the Internet gateway 1234 which may be included in the control plane VCN 1216. The application subnet 1226 can be communicatively coupled to the DB subnet 1230 included in the control plane data layer 1228, as well as to the service gateway 1236 and the network address translation (NAT) gateway 1238. The control plane VCN 1216 may include the service gateway 1236 and the NAT gateway 1238.

制御プレーンVCN1216は、アプリサブネット1226を含むことができるデータプレーンミラーアプリ層1240を含むことができる。データプレーンミラーアプリ層1240に含まれるアプリサブネット1226は、コンピューティングインスタンス1244を実行できる仮想ネットワークインターフェースコントローラ(VNIC)1242を含むことができる。コンピューティングインスタンス1244は、データプレーンミラーアプリ層1240のアプリサブネット1226を、データプレーンアプリ層1246に含めることができるアプリサブネット1226に通信可能に結合することができる。 The control plane VCN 1216 may include a data plane mirror application layer 1240 that can include an application subnet 1226. The application subnet 1226 included in the data plane mirror application layer 1240 may include a virtual network interface controller (VNIC) 1242 capable of running a compute instance 1244. The compute instance 1244 can communicatively connect the application subnet 1226 of the data plane mirror application layer 1240 to an application subnet 1226 that can be included in the data plane application layer 1246.

データプレーンVCN1218は、データプレーンアプリ層1246、データプレーンDMZ層1248、およびデータプレーンデータ層1250を含むことができる。データプレーンDMZ層1248は、データプレーンアプリ層1246のアプリサブネット1226およびデータプレーンVCN1218のインターネットゲートウェイ1234に通信可能に結合され得るLBサブネット1222を含むことができる。アプリサブネット1226は、データプレーンVCN1218のサービスゲートウェイ1236およびデータプレーンVCN1218のNATゲートウェイ1238に通信可能に結合することができる。データプレーンデータ層1250は、データプレーンアプリ層1246のアプリサブネット1226に通信可能に結合できるDBサブネット1230を含むこともできる。 The data plane VCN 1218 may include a data plane application layer 1246, a data plane DMZ layer 1248, and a data plane data layer 1250. The data plane DMZ layer 1248 may include an LB subnet 1222 that can be communicatively coupled to the application subnet 1226 of the data plane application layer 1246 and the internet gateway 1234 of the data plane VCN 1218. The application subnet 1226 can be communicatively coupled to the service gateway 1236 and the NAT gateway 1238 of the data plane VCN 1218. The data plane data layer 1250 may also include a DB subnet 1230 that can be communicatively coupled to the application subnet 1226 of the data plane application layer 1246.

制御プレーンVCN1216およびデータプレーンVCN1218のインターネットゲートウェイ1234は、パブリックインターネット1254に通信可能に結合され得るメタデータ管理サービス1252に通信可能に結合され得る。パブリックインターネット1254は、制御プレーンVCN1216およびデータプレーンVCN1218のNATゲートウェイ1238に通信可能に接続することができる。制御プレーンVCN1216およびデータプレーンVCN1218のサービスゲートウェイ1236は、クラウドサービス1256に通信可能に結合することができる。 The Internet gateway 1234 of the control plane VCN 1216 and data plane VCN 1218 can be communicatively coupled to a metadata management service 1252, which can be communicatively coupled to the public internet 1254. The public internet 1254 can be communicatively connected to the NAT gateway 1238 of the control plane VCN 1216 and data plane VCN 1218. The service gateway 1236 of the control plane VCN 1216 and data plane VCN 1218 can be communicatively coupled to a cloud service 1256.

いくつかの例では、制御プレーンVCN1216またはデータプレーンVCN1218のサービスゲートウェイ1236は、パブリックインターネット1254を経由せずに、クラウドサービス1256へのアプリケーションプログラミングインターフェース(API)呼び出しを行うことができる。サービスゲートウェイ1236からクラウドサービス1256へのAPI呼び出しは一方向であり得る:サービスゲートウェイ1236はクラウドサービス1256へのAPI呼び出しを行うことができ、クラウドサービス1256は要求されるデータをサービスゲートウェイ1236に送信することができる。しかし、クラウドサービス1256は、サービスゲートウェイ1236へのAPI呼び出しを開始できない場合がある。 In some examples, a service gateway 1236 on the control plane VCN 1216 or data plane VCN 1218 can make application programming interface (API) calls to a cloud service 1256 without going through the public internet 1254. API calls from the service gateway 1236 to the cloud service 1256 can be one-way: the service gateway 1236 can make an API call to the cloud service 1256, and the cloud service 1256 can send the requested data to the service gateway 1236. However, the cloud service 1256 may not be able to initiate an API call to the service gateway 1236.

いくつかの例では、セキュアホストテナント1204は、サービステナント1219に直接接続することができ、そうでなければ分離され得る。セキュアホストサブネット1208は、LPG1210を介してSSHサブネット1214と通信することができ、LPG1210は、そうでなければ分離されるシステムを介した双方向通信を可能にすることができる。セキュアホストサブネット1208をSSHサブネット1214に接続すると、セキュアホストサブネット1208にサービステナント1219内の他のエンティティへのアクセスを与えることができる。 In some examples, a secure host tenant 1204 can connect directly to a service tenant 1219, or it may be isolated otherwise. A secure host subnet 1208 can communicate with an SSH subnet 1214 via an LPG 1210, which can enable bidirectional communication through systems that would otherwise be isolated. Connecting the secure host subnet 1208 to the SSH subnet 1214 allows the secure host subnet 1208 to access other entities within the service tenant 1219.

制御プレーンVCN1216により、サービステナント1219のユーザが所望のリソースをセットアップまたはプロビジョニングできるようにすることができる。制御プレーンVCN1216内にプロビジョニングされる所望のリソースは、データプレーンVCN1218内に展開または使用され得る。いくつかの例では、制御プレーンVCN1216はデータプレーンVCN1218から分離することができ、制御プレーンVCN1216のデータプレーンミラーアプリ層1240は、データプレーンミラーアプリ層1240およびデータプレーンアプリ層1246に含まれることができるVNIC1242を介して、データプレーンVCN1218のデータプレーンアプリ層1246と通信することができる。 The control plane VCN 1216 allows users of the service tenant 1219 to set up or provision desired resources. Desired resources provisioned within the control plane VCN 1216 can be deployed or used within the data plane VCN 1218. In some examples, the control plane VCN 1216 can be separated from the data plane VCN 1218, and the data plane mirror application layer 1240 of the control plane VCN 1216 can communicate with the data plane application layer 1246 of the data plane VCN 1218 via a VNIC 1242, which can be included in both the data plane mirror application layer 1240 and the data plane application layer 1246.

いくつかの例では、システムのユーザまたは顧客は、要求をメタデータ管理サービス1252に通信することができるパブリックインターネット1254を介して、例えば作成、読み取り、更新、または削除(CRUD)動作などの要求を行うことができる。メタデータ管理サービス1252は、インターネットゲートウェイ1234を介して要求を制御プレーンVCN1216に通信することができる。この要求は、制御プレーンDMZ層1220に含まれるLBサブネット1222によって受信され得る。LBサブネット1222は、要求が有効であると決定することができ、この決定に応答して、LBサブネット1222は、制御プレーンアプリ層1224に含まれるアプリサブネット1226に要求を送信することができる。要求が検証され、パブリックインターネット1254への呼び出しが必要な場合、パブリックインターネット1254への呼び出しは、パブリックインターネット1254への呼び出しを行うことができるNATゲートウェイ1238に送信され得る。要求によって記憶されることが望ましい場合があるメモリは、DBサブネット1230に記憶できる。 In some examples, a system user or customer can make requests, such as create, read, update, or delete (CRUD) operations, via the public internet 1254, which can communicate the requests to the metadata management service 1252. The metadata management service 1252 can communicate the requests to the control plane VCN 1216 via the internet gateway 1234. This request may be received by the LB subnet 1222, which is included in the control plane DMZ layer 1220. The LB subnet 1222 can determine that the request is valid, and in response to this determination, it can send the request to the application subnet 1226, which is included in the control plane application layer 1224. If the request is validated and a call to the public internet 1254 is required, the call to the public internet 1254 may be sent to the NAT gateway 1238, which can make calls to the public internet 1254. Memory that may be desirable to be stored by the request can be stored in the DB subnet 1230.

いくつかの例では、データプレーンミラーアプリ層1240は、制御プレーンVCN1216とデータプレーンVCN1218との間の直接通信を容易にすることができる。例えば、構成に対する変更、更新、または他の適切な修正を、データプレーンVCN1218に含まれるリソースに適用することが望ましい場合がある。VNIC1242を介して、制御プレーンVCN1216は、データプレーンVCN1218に含まれるリソースと直接通信することができ、それにより、データプレーンVCN1218に含まれるリソースに対する構成の変更、更新、または他の適切な修正を実行することができる。 In some examples, the data plane mirror application layer 1240 can facilitate direct communication between the control plane VCN 1216 and the data plane VCN 1218. For example, it may be desirable to apply configuration changes, updates, or other appropriate modifications to resources contained in the data plane VCN 1218. Through VNIC 1242, the control plane VCN 1216 can communicate directly with the resources contained in the data plane VCN 1218, thereby enabling configuration changes, updates, or other appropriate modifications to the resources contained in the data plane VCN 1218.

いくつかの実施形態では、制御プレーンVCN1216およびデータプレーンVCN1218は、サービステナント1219に含めることができる。この場合、システムのユーザまたは顧客は、制御プレーンVCN1216またはデータプレーンVCN1218のいずれも所有または動作することはできない。代わりに、IaaSプロバイダは、制御プレーンVCN1216およびデータプレーンVCN1218を所有または動作することができ、これらは両方ともサービステナント1219に含まれ得る。この実施形態は、ユーザまたは顧客が他のユーザまたは他の顧客のリソースと対話することを防止し得るネットワークの分離を可能にすることができる。また、この実施形態により、システムのユーザまたは顧客は、記憶のために所望のレベルのセキュリティを持たない可能性があるパブリックインターネット1254に依存する必要なく、データベースをプライベートに記憶することができる。 In some embodiments, the control plane VCN 1216 and data plane VCN 1218 can be included in the service tenant 1219. In this case, the system's user or customer cannot own or operate either the control plane VCN 1216 or the data plane VCN 1218. Instead, the IaaS provider can own or operate the control plane VCN 1216 and the data plane VCN 1218, both of which may be included in the service tenant 1219. This embodiment can enable network isolation that can prevent a user or customer from interacting with resources of other users or other customers. Furthermore, this embodiment allows the system's user or customer to privately store databases without having to rely on the public internet 1254, which may not have the desired level of security for storage.

他の実施形態では、制御プレーンVCN1216に含まれるLBサブネット1222は、サービスゲートウェイ1236から信号を受信するように構成され得る。この実施形態では、制御プレーンVCN1216およびデータプレーンVCN1218は、パブリックインターネット1254を呼び出すことなく、IaaSプロバイダの顧客によって呼び出されるように構成され得る。顧客が使用するデータベースはIaaSプロバイダによって制御され、パブリックインターネット1254から隔離され得るサービステナント1219に記憶され得るため、IaaSプロバイダの顧客は、この実施形態を望む可能性がある。 In another embodiment, the LB subnet 1222 included in the control plane VCN 1216 may be configured to receive signals from the service gateway 1236. In this embodiment, the control plane VCN 1216 and the data plane VCN 1218 may be configured to be invoked by the IaaS provider's customers without calling the public internet 1254. Since the database used by the customer may be controlled by the IaaS provider and stored in a service tenant 1219 that can be isolated from the public internet 1254, the IaaS provider's customers may prefer this embodiment.

図13は、少なくとも1つの実施形態による、IaaSアーキテクチャの別のパターン例を示すブロック図1300である。サービスオペレータ1302(例えば、図12のサービスオペレータ1202)は、セキュアホストテナント1304(例えば、図12のセキュアホストテナント1204)に通信可能に結合することができ、これは、仮想クラウドネットワーク(VCN)1306(例えば、図12のVCN1206)およびセキュアホストサブネット1308(例えば、図12のセキュアホストサブネット1208)を含むことができる。VCN1306は、ローカルピアリングゲートウェイ(LPG)1310(例えば、図12のLPG1210)を含むことができ、これは、SSHVCN1312に含まれるLPG1210を介してセキュアシェル(SSH)VCN1312(例えば、図12のSSHVCN1212)に通信可能に結合することができる。SSHVCN1312は、SSHサブネット1314(例えば、図12のSSHサブネット1214)を含むことができ、SSHVCN1312は、制御プレーンVCN1316に含まれるLPG1310を介して、制御プレーンVCN1316(例えば、図12の制御プレーンVCN1216)に通信可能に結合することができる。制御プレーンVCN1316は、サービステナント1319(例えば、図12のサービステナント1219)に含めることができ、データプレーンVCN1318(例えば、図12のデータプレーンVCN1218)は、システムのユーザまたは顧客によって所有または動作され得る顧客テナント1321に含めることができる。 Figure 13 is a block diagram 1300 showing another pattern example of an IaaS architecture according to at least one embodiment. A service operator 1302 (e.g., service operator 1202 in Figure 12) can be communicatively coupled to a secure host tenant 1304 (e.g., secure host tenant 1204 in Figure 12), which may include a virtual cloud network (VCN) 1306 (e.g., VCN 1206 in Figure 12) and a secure host subnet 1308 (e.g., secure host subnet 1208 in Figure 12). The VCN 1306 may include a local peering gateway (LPG) 1310 (e.g., LPG 1210 in Figure 12), which may be communicatively coupled to a secure shell (SSH) VCN 1312 (e.g., SSHVCN 1212 in Figure 12) via LPG 1210 contained in an SSHVCN 1312. SSHVCCN 1312 may include SSH subnet 1314 (e.g., SSH subnet 1214 in Figure 12), and SSHVCCN 1312 may be communicably coupled to control plane VCN 1316 (e.g., control plane VCN 1216 in Figure 12) via LPG 1310 included in control plane VCN 1316. Control plane VCN 1316 may be included in service tenant 1319 (e.g., service tenant 1219 in Figure 12), and data plane VCN 1318 (e.g., data plane VCN 1218 in Figure 12) may be included in customer tenant 1321, which may be owned or operated by a user or customer of the system.

制御プレーンVCN1316は、LBサブネット1322(例えば、図12のLBサブネット1222)を含むことができる制御プレーンDMZ層1320(例えば、図12の制御プレーンDMZ層1220)、アプリサブネット1326(例えば、図12のアプリサブネット1226)を含むことができる制御プレーンアプリ層1324(例えば、図12の制御プレーンアプリ層1224)、データベース(DB)サブネット1330(例えば、図12のDBサブネット1230と同様)を含むことができる制御プレーンデータ層1328(例えば、図12の制御プレーンデータ層1228)を含むことができる。制御プレーンDMZ層1320に含まれるLBサブネット1322は、制御プレーンアプリ層1324に含まれるアプリサブネット1326と、制御プレーンVCN1316に含まれ得るインターネットゲートウェイ1334(例えば、図12のインターネットゲートウェイ1234)とに通信可能に結合することができ、アプリサブネット1326は、制御プレーンデータ層1328に含まれるDBサブネット1330、ならびにサービスゲートウェイ1336(例えば、図12のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ1338(例えば、図12のNATゲートウェイ1238)に通信可能に結合することができる。制御プレーンVCN1316は、サービスゲートウェイ1336およびNATゲートウェイ1338を含むことができる。 The control plane VCN 1316 may include a control plane DMZ layer 1320 (e.g., control plane DMZ layer 1220 in Figure 12) which can include an LB subnet 1322 (e.g., LB subnet 1222 in Figure 12), a control plane application layer 1324 (e.g., control plane application layer 1224 in Figure 12) which can include an application subnet 1326 (e.g., application subnet 1226 in Figure 12), and a control plane data layer 1328 (e.g., control plane data layer 1228 in Figure 12) which can include a database (DB) subnet 1330 (e.g., similar to DB subnet 1230 in Figure 12). The LB subnet 1322 included in the control plane DMZ layer 1320 can be communicatively coupled to the application subnet 1326 included in the control plane application layer 1324 and to an internet gateway 1334 (e.g., internet gateway 1234 in Figure 12) which may be included in the control plane VCN 1316. The application subnet 1326 can be communicatively coupled to the DB subnet 1330 included in the control plane data layer 1328, as well as to a service gateway 1336 (e.g., the service gateway in Figure 12) and a network address translation (NAT) gateway 1338 (e.g., NAT gateway 1238 in Figure 12). The control plane VCN 1316 may include the service gateway 1336 and the NAT gateway 1338.

制御プレーンVCN1316は、アプリサブネット1326を含むことができるデータプレーンミラーアプリ層1340(例えば、図12のデータプレーンミラーアプリ層1240)を含むことができる。データプレーンミラーアプリ層1340に含まれるアプリサブネット1326は、コンピューティングインスタンス1344(例えば、図12のコンピューティングインスタンス1244と同様)を実行できる仮想ネットワークインターフェースコントローラ(VNIC)1342(例えば、1242のVNIC)を含むことができる。コンピューティングインスタンス1344は、データプレーンミラーアプリ層1340のアプリサブネット1326とアプリサブネット1326との間の通信を容易にすることができ、これは、データプレーンミラーアプリ層1340に含まれるVNIC1342およびデータプレーンアプリ層1346に含まれるVNIC1342を介して、データプレーンアプリ層1346(例えば、図12のデータプレーンアプリ層1246)に含まれることができる。 The control plane VCN 1316 may include a data plane mirror application layer 1340 (e.g., data plane mirror application layer 1240 in Figure 12) which can include an application subnet 1326. The application subnet 1326 included in the data plane mirror application layer 1340 may include a virtual network interface controller (VNIC) 1342 (e.g., VNIC 1242) capable of running a compute instance 1344 (e.g., similar to compute instance 1244 in Figure 12). The compute instance 1344 can facilitate communication between the application subnet 1326 of the data plane mirror application layer 1340 and the application subnet 1326, which can be included in the data plane application layer 1346 (e.g., data plane application layer 1246 in Figure 12) via the VNIC 1342 included in the data plane mirror application layer 1340 and the VNIC 1342 included in the data plane application layer 1346.

制御プレーンVCN1316に含まれるインターネットゲートウェイ1334は、メタデータ管理サービス1352(例えば、図12のメタデータ管理サービス1252)に通信可能に結合することができ、これは、パブリックインターネット1354(例えば、図12のパブリックインターネット1254)に通信可能に結合することができる。パブリックインターネット1354は、制御プレーンVCN1316に含まれるNATゲートウェイ1338に通信可能に結合することができる。制御プレーンVCN1316に含まれるサービスゲートウェイ1336は、クラウドサービス1356(例えば、図12のクラウドサービス1256)に通信可能に結合することができる。 The Internet gateway 1334 included in the control plane VCN 1316 can be communicatively connected to the metadata management service 1352 (for example, the metadata management service 1252 in Figure 12), which can be communicatively connected to the public internet 1354 (for example, the public internet 1254 in Figure 12). The public internet 1354 can be communicatively connected to the NAT gateway 1338 included in the control plane VCN 1316. The service gateway 1336 included in the control plane VCN 1316 can be communicatively connected to the cloud service 1356 (for example, the cloud service 1256 in Figure 12).

いくつかの例では、データプレーンVCN1318は、顧客テナント1321に含まれることができる。この場合、IaaSプロバイダは、各顧客に対して制御プレーンVCN1316を提供することができ、IaaSプロバイダは、各顧客に対して、サービステナント1319に含まれる一意のコンピューティングインスタンス1344をセットアップすることができる。各コンピューティングインスタンス1344は、サービステナント1319に含まれる制御プレーンVCN1316と、顧客テナント1321に含まれるデータプレーンVCN1318との間の通信を可能にしてもよい。コンピューティングインスタンス1344は、サービステナント1319に含まれる制御プレーンVCN1316内にプロビジョニングされるリソースが、顧客テナント1321に含まれるデータプレーンVCN1318内に展開されるか、そうでなければ使用されることを可能にし得る。 In some examples, the data plane VCN 1318 may be included in the customer tenant 1321. In this case, the IaaS provider can provide a control plane VCN 1316 to each customer, and the IaaS provider can set up a unique compute instance 1344 included in the service tenant 1319 for each customer. Each compute instance 1344 may enable communication between the control plane VCN 1316 included in the service tenant 1319 and the data plane VCN 1318 included in the customer tenant 1321. The compute instance 1344 may enable resources provisioned within the control plane VCN 1316 included in the service tenant 1319 to be deployed or otherwise used within the data plane VCN 1318 included in the customer tenant 1321.

他の例では、IaaSプロバイダの顧客は、顧客テナント1321内に存在するデータベースを有し得る。この例では、制御プレーンVCN1316は、アプリサブネット1326を含むことができるデータプレーンミラーアプリ層1340を含むことができる。データプレーンミラーアプリ層1340はデータプレーンVCN1318内に存在することができるが、データプレーンミラーアプリ層1340はデータプレーンVCN1318内に存在しなくてもよい。つまり、データプレーンミラーアプリ層1340は、顧客テナント1321にアクセスできるが、データプレーンミラーアプリ層1340は、データプレーンVCN1318に存在しなくてもよいし、IaaSプロバイダの顧客によって所有または動作されてもよい。データプレーンミラーアプリ層1340は、データプレーンVCN1318への呼び出しを行うように構成されてもよいが、制御プレーンVCN1316に含まれる任意のエンティティへの呼び出しを行うように構成されなくてもよい。顧客は、制御プレーンVCN1316内にプロビジョニングされるデータプレーンVCN1318内のリソースを展開またはそうでなければ使用することを望む場合があり、データプレーンミラーアプリ層1340は、顧客の所望の展開またはリソースの他の使用を容易にすることができる。 In another example, an IaaS provider's customer may have a database residing within customer tenant 1321. In this example, the control plane VCN 1316 may include a data plane mirror application layer 1340 that can include application subnet 1326. The data plane mirror application layer 1340 may reside within data plane VCN 1318, but does not have to reside within data plane VCN 1318. That is, the data plane mirror application layer 1340 can access customer tenant 1321, but does not have to reside within data plane VCN 1318, and may be owned or operated by the IaaS provider's customer. The data plane mirror application layer 1340 may be configured to make calls to data plane VCN 1318, but does not have to be configured to make calls to any entity contained within control plane VCN 1316. Customers may wish to deploy or otherwise use resources in the data plane VCN 1318, which is provisioned within the control plane VCN 1316. The data plane mirror application layer 1340 can facilitate the customer's desired deployment or other use of resources.

いくつかの実施形態では、IaaSプロバイダの顧客は、データプレーンVCN1318にフィルタを適用することができる。この実施形態では、顧客はデータプレーンVCN1318が何にアクセスできるかを決定することができ、顧客はデータプレーンVCN1318からパブリックインターネット1354へのアクセスを制限することができる。IaaSプロバイダは、フィルタを適用したり、外部ネットワークまたはデータベースへのデータプレーンVCN1318のアクセスを制御したりできない場合がある。顧客によるフィルタおよび制御を顧客テナント1321に含まれるデータプレーンVCN1318に適用すると、データプレーンVCN1318を他の顧客およびパブリックインターネット1354から分離するのに役立ち得る。 In some embodiments, a customer of the IaaS provider can apply filters to the data plane VCN 1318. In this embodiment, the customer can determine what the data plane VCN 1318 can access and can restrict access from the data plane VCN 1318 to the public internet 1354. The IaaS provider may not be able to apply filters or control the data plane VCN 1318's access to external networks or databases. Applying customer filters and controls to the data plane VCN 1318 contained within a customer tenant 1321 can help isolate the data plane VCN 1318 from other customers and the public internet 1354.

いくつかの実施形態では、クラウドサービス1356は、パブリックインターネット1354上、制御プレーンVCN1316上、またはデータプレーンVCN1318上に存在しない可能性があるサービスにアクセスするために、サービスゲートウェイ1336によって呼び出すことができる。クラウドサービス1356と制御プレーンVCN1316またはデータプレーンVCN1318との間の接続は、ライブまたは継続的ではない可能性がある。クラウドサービス1356は、IaaSプロバイダが所有または動作する別のネットワーク上に存在し得る。クラウドサービス1356は、サービスゲートウェイ1336から呼び出しを受信するように構成されてもよいし、パブリックインターネット1354から呼び出しを受信しないように構成されてもよい。一部のクラウドサービス1356は、他のクラウドサービス1356から分離されてもよく、制御プレーンVCN1316は、制御プレーンVCN1316と同じ領域になくてもよいクラウドサービス1356から分離されてもよい。例えば、制御プレーンVCN1316は「領域1」に配置され、クラウドサービス「展開7」は領域1と「領域2」に配置され得る。展開7への呼び出しが、領域1にある制御プレーンVCN1316に含まれるサービスゲートウェイ1336によって行われた場合、その呼び出しは領域1の展開7に送信され得る。この例では、制御プレーンVCN1316、または領域1の展開7は、領域2の展開7に通信可能に結合されていない、または通信していない可能性がある。 In some embodiments, the cloud service 1356 can be invoked by the service gateway 1336 to access services that may not exist on the public internet 1354, the control plane VCN 1316, or the data plane VCN 1318. The connection between the cloud service 1356 and the control plane VCN 1316 or the data plane VCN 1318 may not be live or continuous. The cloud service 1356 may reside on another network owned or operated by the IaaS provider. The cloud service 1356 may be configured to receive calls from the service gateway 1336, or it may be configured not to receive calls from the public internet 1354. Some cloud services 1356 may be isolated from other cloud services 1356, and the control plane VCN 1316 may be isolated from cloud services 1356 that do not reside in the same region as the control plane VCN 1316. For example, the control plane VCN 1316 may be located in "Region 1," and the cloud service "Deployment 7" may be located in both Region 1 and "Region 2." If a call to Deployment 7 is made by a service gateway 1336 included in the control plane VCN 1316 in Region 1, that call may be sent to Deployment 7 in Region 1. In this example, the control plane VCN 1316, or Deployment 7 in Region 1, may not be communicatively coupled to, or communicating with, Deployment 7 in Region 2.

図14は、少なくとも1つの実施形態による、IaaSアーキテクチャの別のパターン例を示すブロック図1400である。サービスオペレータ1402(例えば、図12のサービスオペレータ1202)は、セキュアホストテナント1404(例えば、図12のセキュアホストテナント1204)に通信可能に結合することができ、これは、仮想クラウドネットワーク(VCN)1406(例えば、図12のVCN1206)およびセキュアホストサブネット1408(例えば、図12のセキュアホストサブネット1208)を含むことができる。VCN1406は、SSHVCN1412(例えば、図12のSSHVCN1212)に含まれるLPG1410を介してSSHVCN1412に通信可能に結合され得るLPG1410(例えば、図12のLPG1210)を含むことができる。SSHVCN1412は、SSHサブネット1414(例えば、図12のSSHサブネット1214)を含むことができ、SSHVCN1412は、制御プレーンVCN1416(例えば、図12の制御プレーンVCN1216)に含まれるLPG1410を介して制御プレーンVCN1416に通信可能に結合することができ、データプレーンVCN1418(例えば、図12のデータプレーン1218)に含まれるLPG1410を介してデータプレーンVCN1418に通信可能に結合することができる。制御プレーンVCN1416およびデータプレーンVCN1418は、サービステナント1419(例えば、図12のサービステナント1219)に含めることができる。 Figure 14 is a block diagram 1400 showing another pattern example of an IaaS architecture according to at least one embodiment. A service operator 1402 (e.g., service operator 1202 in Figure 12) can be communicatively coupled to a secure host tenant 1404 (e.g., secure host tenant 1204 in Figure 12), which may include a virtual cloud network (VCN) 1406 (e.g., VCN 1206 in Figure 12) and a secure host subnet 1408 (e.g., secure host subnet 1208 in Figure 12). VCN 1406 may include an LPG 1410 (e.g., LPG 1210 in Figure 12) which can be communicatively coupled to SSHVCCN 1412 (e.g., SSHVCCN 1212 in Figure 12) via an LPG 1410 contained within SSHVCCN 1412. SSHVCCN 1412 may include SSH subnet 1414 (e.g., SSH subnet 1214 in Figure 12), and SSHVCCN 1412 may be communicatively coupled to control plane VCN 1416 (e.g., control plane VCN 1216 in Figure 12) via LPG 1410 included in control plane VCN 1416, and may be communicatively coupled to data plane VCN 1418 (e.g., data plane 1218 in Figure 12) via LPG 1410 included in data plane VCN 1418. Control plane VCN 1416 and data plane VCN 1418 may be included in service tenant 1419 (e.g., service tenant 1219 in Figure 12).

制御プレーンVCN1416は、ロードバランサ(LB)サブネット1422(例えば、図12のLBサブネット1222)を含むことができる制御プレーンDMZ層1420(例えば、図12の制御プレーンDMZ層1220)、アプリサブネット1426(例えば、図12のアプリサブネット1226と同様)を含むことができる制御プレーンアプリ層1424(例えば、図12の制御プレーンアプリ層1224)、DBサブネット1430を含むことができる制御プレーンデータ層1428(例えば、図12の制御プレーンデータ層1228)を含むことができる。制御プレーンDMZ層1420に含まれるLBサブネット1422は、制御プレーンアプリ層1424に含まれるアプリサブネット1426と、制御プレーンVCN1416に含まれ得るインターネットゲートウェイ1434(例えば、図12のインターネットゲートウェイ1234)とに通信可能に結合され得、アプリサブネット1426は、制御プレーンデータ層1428に含まれるDBサブネット1430、サービスゲートウェイ1436(例えば、図12のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ1438(例えば、図12のNATゲートウェイ1238)に通信可能に結合することができる。制御プレーンVCN1416は、サービスゲートウェイ1436およびNATゲートウェイ1438を含むことができる。 The control plane VCN 1416 may include a control plane DMZ layer 1420 (e.g., the control plane DMZ layer 1220 in Figure 12) which may include a load balancer (LB) subnet 1422 (e.g., the LB subnet 1222 in Figure 12), a control plane application layer 1424 (e.g., the control plane application layer 1224 in Figure 12) which may include an application subnet 1426 (e.g., similar to the application subnet 1226 in Figure 12), and a control plane data layer 1428 (e.g., the control plane data layer 1228 in Figure 12) which may include a DB subnet 1430. The LB subnet 1422 included in the control plane DMZ layer 1420 may be communicatively coupled to the application subnet 1426 included in the control plane application layer 1424 and to an internet gateway 1434 (e.g., internet gateway 1234 in Figure 12) which may be included in the control plane VCN 1416. The application subnet 1426 may be communicatively coupled to the DB subnet 1430, service gateway 1436 (e.g., service gateway in Figure 12), and network address translation (NAT) gateway 1438 (e.g., NAT gateway 1238 in Figure 12) included in the control plane data layer 1428. The control plane VCN 1416 may include the service gateway 1436 and the NAT gateway 1438.

データプレーンVCN1418は、データプレーンアプリ層1446(例えば、図12のデータプレーンアプリ層1246)、データプレーンDMZ層1448(例えば、図12のデータプレーンDMZ層1248)、およびデータプレーンデータ層1450(例えば、図12のデータプレーンデータ層1250)を含むことができる。データプレーンDMZ層1448は、LBサブネット1422を含むことができ、これは、データプレーンアプリ層1446の信頼できるアプリサブネット1460と信頼できないアプリサブネット1462、およびデータプレーンVCN1418に含まれるインターネットゲートウェイ1434に通信可能に結合することができる。信頼できるアプリサブネット1460は、データプレーンVCN1418に含まれるサービスゲートウェイ1436、データプレーンVCN1418に含まれるNATゲートウェイ1438、およびデータプレーンデータ層1450に含まれるDBサブネット1430に通信可能に結合することができる。信頼できないアプリサブネット1462は、データプレーンVCN1418に含まれるサービスゲートウェイ1436およびデータプレーンデータ層1450に含まれるDBサブネット1430に通信可能に結合することができる。データプレーンデータ層1450は、データプレーンVCN1418に含まれるサービスゲートウェイ1436に通信可能に結合できるDBサブネット1430を含むことができる。 The data plane VCN 1418 may include a data plane application layer 1446 (e.g., the data plane application layer 1246 in Figure 12), a data plane DMZ layer 1448 (e.g., the data plane DMZ layer 1248 in Figure 12), and a data plane data layer 1450 (e.g., the data plane data layer 1250 in Figure 12). The data plane DMZ layer 1448 may include an LB subnet 1422, which can be communicatively coupled to the trusted application subnet 1460 and untrusted application subnet 1462 of the data plane application layer 1446, and to the internet gateway 1434 included in the data plane VCN 1418. The trusted application subnet 1460 can be communicatively coupled to the service gateway 1436 included in the data plane VCN 1418, the NAT gateway 1438 included in the data plane VCN 1418, and to the DB subnet 1430 included in the data plane data layer 1450. The untrusted application subnet 1462 can be communicatively coupled to the service gateway 1436 included in the data plane VCN 1418 and the DB subnet 1430 included in the data plane data layer 1450. The data plane data layer 1450 may include the DB subnet 1430, which can be communicatively coupled to the service gateway 1436 included in the data plane VCN 1418.

信頼できないアプリサブネット1462は、テナント仮想マシン(VM)1466(1)~(N)に通信可能に結合することができる1つまたは複数の1次VNIC1464(1)~(N)を含むことができる。各テナントVM1466(1)~(N)は、それぞれのアプリサブネット1467(1)~(N)に通信可能に結合することができ、これは、それぞれの顧客テナント1470(1)~(N)に含めることができるそれぞれのコンテナ出口VCN1468(1)~(N)に含めることができる。それぞれの2次VNIC1472(1)~(N)は、データプレーンVCN1418に含まれる信頼できないアプリサブネット1462と、コンテナ出口VCN1468(1)~(N)に含まれるアプリサブネットとの間の通信を容易にすることができる。各コンテナ出口VCN1468(1)~(N)は、パブリックインターネット1454(例えば、図12のパブリックインターネット1254)に通信可能に結合できるNATゲートウェイ1438を含むことができる。 An untrusted application subnet 1462 may include one or more primary VNICs 1464(1) to (N) that can be communicatively coupled to tenant virtual machines (VMs) 1466(1) to (N). Each tenant VM 1466(1) to (N) may be communicatively coupled to its respective application subnet 1467(1) to (N), which may be included in its respective container exit VCN 1468(1) to (N), which may be included in its respective customer tenant 1470(1) to (N). Each secondary VNIC 1472(1) to (N) can facilitate communication between the untrusted application subnet 1462 contained in the data plane VCN 1418 and the application subnets contained in the container exit VCNs 1468(1) to (N). Each container exit VCN 1468(1) to (N) may include a NAT gateway 1438 that can be communicatively connected to the public internet 1454 (for example, the public internet 1254 in Figure 12).

制御プレーンVCN1416に含まれ、データプレーンVCN1418に含まれるインターネットゲートウェイ1434は、パブリックインターネット1454に通信可能に結合できるメタデータ管理サービス1452(例えば、図12のメタデータ管理システム1252)に通信可能に結合することができる。パブリックインターネット1454は、制御プレーンVCN1416に含まれ、データプレーンVCN1418に含まれるNATゲートウェイ1438に通信可能に結合することができる。制御プレーンVCN1416に含まれ、データプレーンVCN1418に含まれるサービスゲートウェイ1436は、クラウドサービス1456に通信可能に結合することができる。 The Internet gateway 1434, included in the control plane VCN 1416 and the data plane VCN 1418, can communicate with the metadata management service 1452 (for example, the metadata management system 1252 in Figure 12), which can communicate with the public internet 1454. The public internet 1454 can communicate with the NAT gateway 1438, included in the control plane VCN 1416 and the data plane VCN 1418. The service gateway 1436, included in the control plane VCN 1416 and the data plane VCN 1418, can communicate with the cloud service 1456.

いくつかの実施形態では、データプレーンVCN1418は、顧客テナント1470と統合することができる。この統合は、コード実行時のサポートが必要な場合など、IaaSプロバイダの顧客にとって有益または望ましい場合がある。顧客は、破壊的な可能性があるコード、他の顧客リソースと通信する可能性のあるコード、またはその他の望ましくない影響を引き起こす可能性のあるコードの実行を提供し得る。これに応じて、IaaSプロバイダは、顧客からIaaSプロバイダに提供されるコードを実行するかどうかを決定できる。 In some embodiments, the data plane VCN 1418 can be integrated with the customer tenant 1470. This integration may be beneficial or desirable for the IaaS provider's customer, such as when support during code execution is required. The customer may provide execution of potentially destructive code, code that may communicate with other customer resources, or code that may cause other undesirable effects. Accordingly, the IaaS provider can decide whether to execute the code provided by the customer to the IaaS provider.

いくつかの例では、IaaSプロバイダの顧客は、IaaSプロバイダに一時的なネットワークアクセスを許可し、データプレーン層アプリ1446に付加される機能を要求することができる。機能を実行するコードは、VM1466(1)~(N)で実行することができ、コードはデータプレーンVCN1418上の他の場所で実行するように構成することはできない。各VM1466(1)~(N)は、1つの顧客テナント1470に接続できる。VM1466(1)~(N)に含まれるそれぞれのコンテナ1471(1)~(N)は、コードを実行するように構成され得る。この場合、二重隔離が存在する可能性があり(例えば、コンテナ1471(1)~(N)のコード実行、コンテナ1471(1)~(N)は、信頼できないアプリサブネット1462に含まれる少なくともVM1466(1)~(N)に含まれ得る)、これは、間違ったコードや望ましくないコードがIaaSプロバイダのネットワークに損害を与えたり、別の顧客のネットワークに損害を与えたりすることを防ぐのに役立ち得る。コンテナ1471(1)~(N)は、顧客テナント1470に通信可能に結合されてもよく、顧客テナント1470からデータを送信または受信するように構成されてもよい。コンテナ1471(1)~(N)は、データプレーンVCN1418内の任意の他のエンティティからデータを送信または受信するように構成されていない可能性がある。コードの実行が完了すると、IaaSプロバイダはコンテナ1471(1)~(N)を強制終了するか、その他の方法で破棄することができる。 In some examples, an IaaS provider's customer may request temporary network access from the IaaS provider and a function to be added to a dataplane tier application 1446. The code that performs the function can run on VMs 1466(1)–(N), and the code cannot be configured to run anywhere else on the dataplane VCN 1418. Each VM 1466(1)–(N) can connect to one customer tenant 1470. Each container 1471(1)–(N) contained within VMs 1466(1)–(N) may be configured to run code. In this case, a double isolation may exist (e.g., code execution in containers 1471(1)–(N), which may be contained within at least VMs 1466(1)–(N) that are in an untrusted application subnet 1462), which may help prevent incorrect or unwanted code from damaging the IaaS provider's network or another customer's network. Containers 1471(1)–(N) may be communicatively coupled to customer tenant 1470 and may be configured to send or receive data from customer tenant 1470. Containers 1471(1)–(N) may not be configured to send or receive data from any other entities in the data plane VCN 1418. Once code execution is complete, the IaaS provider may terminate or otherwise destroy containers 1471(1)–(N).

いくつかの実施形態では、信頼できるアプリサブネット1460は、IaaSプロバイダによって所有または動作され得るコードを実行し得る。この実施形態では、信頼できるアプリサブネット1460は、DBサブネット1430に通信可能に結合され、DBサブネット1430内でCRUD動作を実行するように構成され得る。信頼できないアプリサブネット1462は、DBサブネット1430に通信可能に結合され得るが、この実施形態では、信頼できないアプリサブネットは、DBサブネット1430において読み取り動作を実行するように構成され得る。各顧客のVM1466(1)~(N)に含めることができ、顧客からのコードを実行することができるコンテナ1471(1)~(N)は、DBサブネット1430と通信可能に結合されていなくてもよい。 In some embodiments, a trusted application subnet 1460 may execute code owned or operated by the IaaS provider. In this embodiment, the trusted application subnet 1460 may be communicatively coupled to the DB subnet 1430 and configured to perform CRUD operations within the DB subnet 1430. An untrusted application subnet 1462 may be communicatively coupled to the DB subnet 1430, but in this embodiment, the untrusted application subnet may be configured to perform read operations within the DB subnet 1430. Containers 1471(1) to (N), which may be included in each customer's VM 1466(1) to (N) and capable of executing code from the customer, do not necessarily have to be communicatively coupled to the DB subnet 1430.

他の実施形態では、制御プレーンVCN1416とデータプレーンVCN1418は、直接通信可能に結合されていなくてもよい。この実施形態では、制御プレーンVCN1416とデータプレーンVCN1418との間に直接通信が存在しなくてもよい。しかし、通信は少なくとも1つの方法を通じて間接的に行うことができる。LPG1410は、制御プレーンVCN1416とデータプレーンVCN1418との間の通信を容易にすることができるIaaSプロバイダによって確立され得る。別の例では、制御プレーンVCN1416またはデータプレーンVCN1418は、サービスゲートウェイ1436を介してクラウドサービス1456への呼び出しを行うことができる。例えば、制御プレーンVCN1416からクラウドサービス1456への呼び出しは、データプレーンVCN1418と通信できるサービスに対する要求を含むことができる。 In other embodiments, the control plane VCN 1416 and the data plane VCN 1418 may not be directly communicatively coupled. In this embodiment, direct communication between the control plane VCN 1416 and the data plane VCN 1418 is not required. However, communication can be performed indirectly through at least one method. The LPG 1410 may be established by an IaaS provider that facilitates communication between the control plane VCN 1416 and the data plane VCN 1418. In another example, the control plane VCN 1416 or the data plane VCN 1418 can make a call to the cloud service 1456 via the service gateway 1436. For example, a call from the control plane VCN 1416 to the cloud service 1456 may include a request for a service that can communicate with the data plane VCN 1418.

図15は、少なくとも1つの実施形態による、IaaSアーキテクチャの別のパターン例を示すブロック図1500である。サービスオペレータ1502(例えば、図12のサービスオペレータ1202)は、セキュアホストテナント1504(例えば、図12のセキュアホストテナント1204)に通信可能に結合することができ、これは、仮想クラウドネットワーク(VCN)1506(例えば、図12のVCN1206)およびセキュアホストサブネット1508(例えば、図12のセキュアホストサブネット1208)を含むことができる。VCN1506は、SSHVCN1512に含まれるLPG1510を介してSSHVCN1512(例えば、図12のSSHVCN1212)に通信可能に結合され得るLPG1510(例えば、図12のLPG1210)を含むことができる。SSHVCN1512は、SSHサブネット1514(例えば、図12のSSHサブネット1214)を含むことができ、SSHVCN1512は、制御プレーンVCN1516(例えば、図12の制御プレーンVCN1216)に含まれるLPG1510を介して、制御プレーンVCN1516に通信可能に結合することができ、データプレーンVCN1518(例えば、図12のデータプレーン1218)に含まれるLPG1510を介して、データプレーンVCN1518に通信可能に結合することができる。制御プレーンVCN1516およびデータプレーンVCN1518は、サービステナント1519(例えば、図12のサービステナント1219)に含めることができる。 Figure 15 is a block diagram 1500 showing another pattern example of an IaaS architecture according to at least one embodiment. A service operator 1502 (e.g., service operator 1202 in Figure 12) can be communicatively coupled to a secure host tenant 1504 (e.g., secure host tenant 1204 in Figure 12), which may include a virtual cloud network (VCN) 1506 (e.g., VCN 1206 in Figure 12) and a secure host subnet 1508 (e.g., secure host subnet 1208 in Figure 12). VCN 1506 may include an LPG 1510 (e.g., LPG 1210 in Figure 12) which can be communicatively coupled to SSHVCCN 1512 (e.g., SSHVCCN 1212 in Figure 12) via an LPG 1510 contained in SSHVCCN 1512. SSHVCCN 1512 may include SSH subnet 1514 (e.g., SSH subnet 1214 in Figure 12), and SSHVCCN 1512 may be communicatively coupled to control plane VCN 1516 (e.g., control plane VCN 1216 in Figure 12) via LPG 1510 included in control plane VCN 1516, and may be communicatively coupled to data plane VCN 1518 (e.g., data plane 1218 in Figure 12) via LPG 1510 included in data plane VCN 1518. Control plane VCN 1516 and data plane VCN 1518 may be included in service tenant 1519 (e.g., service tenant 1219 in Figure 12).

制御プレーンVCN1516は、LBサブネット1522(例えば、図12のLBサブネット1222)を含むことができる制御プレーンDMZ層1520(例えば、図12の制御プレーンDMZ層1220)、アプリサブネット1526(例えば、図12のアプリサブネット1226)を含むことができる制御プレーンアプリ層1524(例えば、図12の制御プレーンアプリ層1224)、DBサブネット1530(例えば、図9のDBサブネット930)を含むことができる制御プレーンデータ層1528(例えば、図12の制御プレーンデータ層1228)を含むことができる。制御プレーンDMZ層1520に含まれるLBサブネット1522は、制御プレーンアプリ層1524に含まれるアプリサブネット1526に通信可能に結合することができ、制御プレーンVCN1516に含めることができるインターネットゲートウェイ1534(例えば、図12のインターネットゲートウェイ1234)に通信可能に結合することができ、アプリサブネット1526は、制御プレーンデータ層1528に含まれるDBサブネット1530に通信可能に結合することができ、サービスゲートウェイ1536(例えば、図12のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ1538(例えば、図12のNATゲートウェイ1238)に通信可能に結合することができる。制御プレーンVCN1516は、サービスゲートウェイ1536およびNATゲートウェイ1538を含むことができる。 The control plane VCN 1516 may include a control plane DMZ layer 1520 (e.g., control plane DMZ layer 1220 in Figure 12) which can include an LB subnet 1522 (e.g., LB subnet 1222 in Figure 12), a control plane application layer 1524 (e.g., control plane application layer 1224 in Figure 12) which can include an application subnet 1526 (e.g., application subnet 1226 in Figure 12), and a control plane data layer 1528 (e.g., control plane data layer 1228 in Figure 12) which can include a DB subnet 1530 (e.g., DB subnet 930 in Figure 9). The LB subnet 1522 included in the control plane DMZ layer 1520 can be communicatively coupled to the application subnet 1526 included in the control plane application layer 1524, and can be communicatively coupled to the internet gateway 1534 (e.g., internet gateway 1234 in Figure 12), which can be included in the control plane VCN 1516. The application subnet 1526 can be communicatively coupled to the DB subnet 1530 included in the control plane data layer 1528, and can be communicatively coupled to the service gateway 1536 (e.g., the service gateway in Figure 12) and the network address translation (NAT) gateway 1538 (e.g., NAT gateway 1238 in Figure 12). The control plane VCN 1516 may include the service gateway 1536 and the NAT gateway 1538.

データプレーンVCN1518は、データプレーンアプリ層1546(例えば、図12のデータプレーンアプリ層1246)、データプレーンDMZ層1548(例えば、図12のデータプレーンDMZ層1248)、およびデータプレーンデータ層1550(例えば、図12のデータプレーンデータ層1250)を含むことができる。データプレーンDMZ層1548は、LBサブネット1522を含むことができ、それは、信頼できるアプリサブネット1560(例えば、図9の信頼できるアプリサブネット960)に通信可能に結合され得、データプレーンアプリ層1546の信頼できないアプリサブネット1562(例えば、図9の信頼できないアプリサブネット962)およびデータプレーンVCN1518に含まれるインターネットゲートウェイ1534に通信可能に結合することができる。信頼できるアプリサブネット1560は、データプレーンVCN1518に含まれるサービスゲートウェイ1536に通信可能に結合することができ、データプレーンVCN1518に含まれるNATゲートウェイ1538、およびデータプレーンデータ層1550に含まれるDBサブネット1530に通信可能に結合することができる。信頼できないアプリサブネット1562は、データプレーンVCN1518に含まれるサービスゲートウェイ1536およびデータプレーンデータ層1550に含まれるDBサブネット1530に通信可能に接続することができる。データプレーンデータ層1550は、データプレーンVCN1518に含まれるサービスゲートウェイ1536に通信可能に結合できるDBサブネット1530を含むことができる。 The data plane VCN 1518 may include a data plane application layer 1546 (e.g., data plane application layer 1246 in Figure 12), a data plane DMZ layer 1548 (e.g., data plane DMZ layer 1248 in Figure 12), and a data plane data layer 1550 (e.g., data plane data layer 1250 in Figure 12). The data plane DMZ layer 1548 may include an LB subnet 1522, which may be communicatively coupled to a trusted application subnet 1560 (e.g., trusted application subnet 960 in Figure 9), and may be communicatively coupled to an untrusted application subnet 1562 of the data plane application layer 1546 (e.g., untrusted application subnet 962 in Figure 9) and an internet gateway 1534 included in the data plane VCN 1518. A trusted application subnet 1560 can be communicatively coupled to a service gateway 1536 included in the data plane VCN 1518, and can be communicatively coupled to a NAT gateway 1538 included in the data plane VCN 1518, and to a DB subnet 1530 included in the data plane data layer 1550. An untrusted application subnet 1562 can be communicatively connected to a service gateway 1536 included in the data plane VCN 1518 and to a DB subnet 1530 included in the data plane data layer 1550. The data plane data layer 1550 may include a DB subnet 1530 that can be communicatively coupled to a service gateway 1536 included in the data plane VCN 1518.

信頼できないアプリサブネット1562は、1次VNIC1564(1)~(N)を含むことができ、これは、信頼できないアプリサブネット1562内に存在するテナント仮想マシン(VM)1566(1)~(N)に通信可能に結合することができる。各テナントVM1566(1)~(N)は、それぞれのコンテナ1567(1)~(N)内でコードを実行することができ、コンテナ出口VCN1568に含めることができるデータプレーンアプリ層1546に含めることができるアプリサブネット1526に通信可能に結合することができる。それぞれの2次VNIC1572(1)~(N)は、データプレーンVCN1518に含まれる信頼できないアプリサブネット1562とコンテナ出口VCN1568に含まれるアプリサブネットとの間の通信を容易にすることができる。コンテナ出口VCNは、パブリックインターネット1554(例えば、図12のパブリックインターネット1254)に通信可能に結合できるNATゲートウェイ1538を含むことができる。 The untrusted application subnet 1562 may contain primary VNICs 1564(1)–(N), which can be communicatively coupled to tenant virtual machines (VMs) 1566(1)–(N) residing within the untrusted application subnet 1562. Each tenant VM 1566(1)–(N) can execute code within its respective container 1567(1)–(N) and can be communicatively coupled to application subnet 1526, which can be included in the dataplane application layer 1546, which can be included in the container exit VCN 1568. Each secondary VNIC 1572(1)–(N) facilitates communication between the untrusted application subnet 1562 contained in the dataplane VCN 1518 and the application subnet contained in the container exit VCN 1568. The container exit VCN may include a NAT gateway 1538 that can be communicatively coupled to the public internet 1554 (e.g., public internet 1254 in Figure 12).

制御プレーンVCN1516に含まれ、データプレーンVCN1518に含まれるインターネットゲートウェイ1534は、パブリックインターネット1554に通信可能に結合できるメタデータ管理サービス1552(例えば、図12のメタデータ管理システム1252)に通信可能に結合することができる。パブリックインターネット1554は、制御プレーンVCN1516に含まれ、データプレーンVCN1518に含まれるNATゲートウェイ1538に通信可能に結合することができる。制御プレーンVCN1516に含まれ、データプレーンVCN1518に含まれるサービスゲートウェイ1536は、クラウドサービス1556に通信可能に結合することができる。 The Internet gateway 1534, included in the control plane VCN 1516 and the data plane VCN 1518, can communicate with the metadata management service 1552 (for example, the metadata management system 1252 in Figure 12), which can communicate with the public internet 1554. The public internet 1554 can communicate with the NAT gateway 1538, included in the control plane VCN 1516 and the data plane VCN 1518. The service gateway 1536, included in the control plane VCN 1516 and the data plane VCN 1518, can communicate with the cloud service 1556.

いくつかの例では、図15のブロック図1500のアーキテクチャによって示されるパターンは、図14のブロック図1400のアーキテクチャによって示されるパターンの例外であると考えられ、IaaSプロバイダが顧客と直接通信できない場合(例えば、切断されている領域)、IaaSプロバイダの顧客にとっては望ましい場合がある。各顧客のVM1566(1)~(N)に含まれるそれぞれのコンテナ1567(1)~(N)は、顧客によってリアルタイムでアクセス可能である。コンテナ1567(1)~(N)は、コンテナ出口VCN1568に含まれることができるデータプレーンアプリ層1546のアプリサブネット1526に含まれるそれぞれの2次VNIC1572(1)~(N)への呼び出しを行うように構成され得る。2次VNIC1572(1)~(N)は、呼び出しをパブリックインターネット1554に送信することができるNATゲートウェイ1538に呼び出しを送信することができる。この例では、顧客がリアルタイムでアクセスできるコンテナ1567(1)~(N)は、制御プレーンVCN1516から分離することができ、データプレーンVCN1518に含まれる他のエンティティから分離することができる。コンテナ1567(1)~(N)は、他の顧客からのリソースから隔離されてもよい。 In some examples, the pattern shown by the architecture of block diagram 1500 in Figure 15 can be considered an exception to the pattern shown by the architecture of block diagram 1400 in Figure 14, and may be desirable for the IaaS provider's customers when the IaaS provider cannot communicate directly with the customers (e.g., in a disconnected area). Each container 1567(1)-(N) contained within each customer's VM 1566(1)-(N) is accessible by the customer in real time. Each container 1567(1)-(N) may be configured to make calls to each secondary VNIC 1572(1)-(N) contained within the application subnet 1526 of the data plane application layer 1546, which may be contained within the container exit VCN 1568. The secondary VNICs 1572(1)-(N) may send calls to a NAT gateway 1538, which can send calls to the public internet 1554. In this example, the containers 1567(1)–(N), which customers can access in real time, can be isolated from the control plane VCN 1516 and from other entities included in the data plane VCN 1518. The containers 1567(1)–(N) may also be isolated from resources from other customers.

他の例では、顧客は、コンテナ1567(1)~(N)を使用して、クラウドサービス1556を呼び出すことができる。この例では、顧客は、クラウドサービス1556からサービスを要求するコードをコンテナ1567(1)~(N)内で実行することができる。コンテナ1567(1)~(N)は、この要求を2次VNIC1572(1)~(N)に送信することができ、2次VNIC1572(1)~(N)は、要求をパブリックインターネット1554に送信することができるNATゲートウェイに要求を送信することができる。パブリックインターネット1554は、インターネットゲートウェイ1534を介して、制御プレーンVCN1516に含まれるLBサブネット1522に要求を送信することができる。要求が有効であるとの決定に応答して、LBサブネットは、サービスゲートウェイ1536を介してクラウドサービス1556に要求を送信できるアプリサブネット1526に要求を送信することができる。 In another example, a customer can use containers 1567(1)–(N) to invoke cloud service 1556. In this example, the customer can execute code within containers 1567(1)–(N) to request a service from cloud service 1556. Containers 1567(1)–(N) can send this request to secondary VNICs 1572(1)–(N), which can then send the request to a NAT gateway that can send the request to the public internet 1554. The public internet 1554 can send the request to LB subnet 1522, which is included in control plane VCN 1516, via internet gateway 1534. In response to the determination that the request is valid, the LB subnet can send the request to application subnet 1526, which can then send the request to cloud service 1556 via service gateway 1536.

図に示されているIaaSアーキテクチャ1200、1300、1400、1500は、示されているもの以外の構成要素を有し得ることを理解されたい。さらに、図に示される実施形態は、本開示の実施形態を組み込むことができるクラウドインフラストラクチャシステムのいくつかの例にすぎない。他のいくつかの実施形態では、IaaSシステムは、図示されているよりも多いもしくは少ない構成要素を有してもよく、2つ以上の構成要素を組み合わせてもよく、または構成要素の異なる構成もしくは配置を有してもよい。 It should be understood that the IaaS architectures 1200, 1300, 1400, and 1500 shown in the figures may have components other than those shown. Furthermore, the embodiments shown in the figures are only some examples of cloud infrastructure systems that may incorporate embodiments of this disclosure. In some other embodiments, the IaaS system may have more or fewer components than those shown, may combine two or more components, or may have different configurations or arrangements of components.

特定の実施形態では、本明細書で説明されるIaaSシステムは、セルフサービス、サブスクリプションベース、弾力的に拡張可能、信頼性が高く、可用性が高く、安全な方法で顧客に提供されるアプリケーション、ミドルウェア、およびデータベースサービス製品のスイートを含むことができる。このようなIaaSシステムの一例として、本譲受人が提供するOracle Cloud Infrastructure(OCI)がある。 In certain embodiments, the IaaS system described herein may include a suite of applications, middleware, and database service products delivered to customers in a self-service, subscription-based, elastically scalable, reliable, highly available, and secure manner. An example of such an IaaS system is Oracle Cloud Infrastructure (OCI), offered by the assignee.

図16は、さまざまな実施形態が実装され得る例示的なコンピュータシステム1600を示す。システム1600は、上述のコンピュータシステムのいずれかを実装するために使用することができる。図に示すように、コンピュータシステム1600は、バスサブシステム1602を介して多くの周辺サブシステムと通信する処理装置1604を含む。これらの周辺サブシステムは、処理加速装置1606、I/Oサブシステム1608、記憶サブシステム1618、および通信サブシステム1624を含み得る。記憶サブシステム1618は、有形のコンピュータ可読記憶媒体1622およびシステムメモリ1610を含む。 Figure 16 shows an exemplary computer system 1600 in which various embodiments can be implemented. System 1600 can be used to implement any of the computer systems described above. As shown in the figure, computer system 1600 includes a processing unit 1604 that communicates with many peripheral subsystems via a bus subsystem 1602. These peripheral subsystems may include a processing accelerator 1606, an I/O subsystem 1608, a storage subsystem 1618, and a communication subsystem 1624. The storage subsystem 1618 includes a tangible computer-readable storage medium 1622 and system memory 1610.

バスサブシステム1602は、コンピュータシステム1600のさまざまな構成要素およびサブシステムが意図したとおりに相互に通信できるようにする機構を提供する。バスサブシステム1602は単一のバスとして概略的に示されているが、バスサブシステムの代替実施形態では複数のバスを利用することができる。バスサブシステム1602は、さまざまなバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のいずれであってもよい。例えば、そのようなアーキテクチャには、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、およびPeripheral Component Interconnect(PCI)バスが含まれ得る。これは、IEEEP1386.1標準に従って製造されるメザニンバスとして実装できる。 The bus subsystem 1602 provides a mechanism that enables various components and subsystems of the computer system 1600 to communicate with each other as intended. While the bus subsystem 1602 is schematically shown as a single bus, multiple buses may be utilized in alternative embodiments of the bus subsystem. The bus subsystem 1602 may be any of several types of bus structures, including a memory bus or memory controller, peripheral bus, and local bus, using any of various bus architectures. For example, such architectures may include the Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus. This can be implemented as a mezzanine bus manufactured according to the IEEE 1386.1 standard.

処理装置1604は、1つまたは複数の集積回路(例えば、従来のマイクロプロセッサまたはマイクロコントローラ)として実装することができ、コンピュータシステム1600の動作を制御する。1つまたは複数のプロセッサが処理装置1604に含まれてもよい。これらのプロセッサには、単一コアプロセッサまたはマルチコアプロセッサが含まれ得る。特定の実施形態では、処理装置1604は、各処理装置に含まれる単一コアプロセッサまたはマルチコアプロセッサを有する1つまたは複数の独立した処理装置1632および/または1634として実装され得る。他の実施形態では、処理装置1604は、2つのデュアルコアプロセッサを単一のチップに統合することによって形成されるクアッドコア処理装置として実装されてもよい。 The processing unit 1604 can be implemented as one or more integrated circuits (e.g., conventional microprocessors or microcontrollers) and controls the operation of the computer system 1600. One or more processors may be included in the processing unit 1604. These processors may include single-core processors or multi-core processors. In certain embodiments, the processing unit 1604 may be implemented as one or more independent processing units 1632 and/or 1634, each containing a single-core or multi-core processor. In other embodiments, the processing unit 1604 may be implemented as a quad-core processing unit formed by integrating two dual-core processors onto a single chip.

さまざまな実施形態において、処理装置1604は、プログラムコードに応答してさまざまなプログラムを実行することができ、複数の同時実行プログラムまたはプロセスを維持することができる。いつでも、実行されるプログラムコードの一部またはすべては、プロセッサ1604および/または記憶サブシステム1618に存在することができる。適切なプログラミングを通じて、プロセッサ1604は、上述のさまざまな機能を提供することができる。コンピュータシステム1600は、デジタルシグナルプロセッサ(DSP)、専用プロセッサ等を含むことができる処理加速装置1606をさらに含むことができる。 In various embodiments, the processing unit 1604 can execute various programs in response to program code and can maintain multiple concurrently running programs or processes. At any given time, some or all of the program code to be executed may reside in the processor 1604 and/or the storage subsystem 1618. Through appropriate programming, the processor 1604 can provide the various functions described above. The computer system 1600 may further include a processing accelerator 1606, which may include a digital signal processor (DSP), a dedicated processor, etc.

I/Oサブシステム1608は、ユーザインターフェース入力装置およびユーザインターフェース出力装置を含むことができる。ユーザインターフェース入力装置にはキーボード、マウスやトラックボールなどのポインティング装置、ディスプレイに組み込まれたタッチパッドやタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを備えたオーディオ入力装置、マイク、および他のタイプの入力装置が含まれ得る。ユーザインターフェース入力装置には、例えば、Microsoft Kinect(登録商標)モーションセンサーなどのモーションセンシングおよび/またはジェスチャ認識装置が含まれ得、ユーザは、ジェスチャや音声コマンドを使用した自然なユーザインターフェースを通じて、Microsoft Xbox(登録商標)360ゲームコントローラなどの入力装置を制御し、対話できるようになる。ユーザインターフェース入力装置には、ユーザからの目の活動(例えば、写真撮影中および/またはメニュー選択中の「瞬き」)を検出し、目のジェスチャを入力装置(例えば、Google Glass(登録商標))への入力として変換するGoogle Glass(登録商標)瞬き検出器などのアイジェスチャ認識装置も含まれ得る。さらに、ユーザインターフェース入力装置は、ユーザが音声コマンドを通じて音声認識システム(例えば、Siri(登録商標)ナビゲータ)と対話できるようにする音声認識センシング装置を含んでもよい。 The I/O subsystem 1608 may include user interface input devices and user interface output devices. User interface input devices may include keyboards, pointing devices such as mice and trackballs, touchpads and touchscreens integrated into displays, scroll wheels, click wheels, dials, buttons, switches, keypads, audio input devices with voice command recognition systems, microphones, and other types of input devices. User interface input devices may also include motion sensing and/or gesture recognition devices, such as Microsoft Kinect® motion sensors, allowing users to control and interact with input devices, such as Microsoft Xbox® 360 game controllers, through a natural user interface using gestures and voice commands. The user interface input device may also include an eye gesture recognition device, such as a Google Glass® blink detector, which detects eye activity from the user (e.g., blinking during photography and/or menu selection) and translates eye gestures into input to an input device (e.g., Google Glass®). Furthermore, the user interface input device may include a voice recognition sensing device that allows the user to interact with a voice recognition system (e.g., Siri® Navigator) through voice commands.

ユーザインターフェース入力装置には、限定されないが、3次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルビデオカメラなどのオーディオ/ビジュアル装置、ポータブルメディアプレーヤ、ウェブカメラ、イメージスキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザ距離計、および視線追跡装置なども含まれ得る。さらに、ユーザインターフェース入力装置には、例えば、コンピュータ断層撮影法、磁気共鳴画像法、位置放射断層撮影法、医療用超音波検査装置などの医療用画像入力装置が含まれてもよい。ユーザインターフェース入力装置には、例えば、MIDIキーボード、デジタル楽器などのオーディオ入力装置も含まれ得る。 User interface input devices may include, but are not limited to, three-dimensional (3D) mice, joysticks or pointing sticks, gamepads and graphics tablets, as well as audio/visual devices such as speakers, digital cameras, digital video cameras, portable media players, webcams, image scanners, fingerprint scanners, barcode readers, 3D scanners, 3D printers, laser rangefinders, and eye-tracking devices. Furthermore, user interface input devices may also include medical imaging input devices such as computed tomography, magnetic resonance imaging, positional emission tomography, and medical ultrasound equipment. Audio input devices such as MIDI keyboards and digital musical instruments may also be included.

ユーザインターフェース出力装置には、ディスプレイサブシステム、インジケータライト、またはオーディオ出力装置などの非視覚的ディスプレイが含まれてもよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するものなどのフラットパネル装置、投影装置、タッチスクリーンなどであってもよい。一般に、「出力装置」という用語の使用は、コンピュータシステム1600からユーザまたは他のコンピュータに情報を出力するためのあらゆる可能なタイプの装置および機構を含むことを意図している。例えば、ユーザインターフェース出力装置には、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力装置、およびモデムなど、テキスト、グラフィックス、およびオーディオ/ビデオ情報を視覚的に伝達するさまざまな表示装置が含まれるが、これらに限定されない。 User interface output devices may include non-visual displays such as display subsystems, indicator lights, or audio output devices. Display subsystems may include flat-panel devices such as those using cathode ray tubes (CRTs), liquid crystal displays (LCDs), or plasma displays, projection devices, touchscreens, etc. Generally, the use of the term “output device” is intended to include all possible types of devices and mechanisms for outputting information from the computer system 1600 to a user or other computer. For example, user interface output devices include, but are not limited to, a variety of display devices that visually convey text, graphics, and audio/video information, such as monitors, printers, speakers, headphones, car navigation systems, plotters, audio output devices, and modems.

コンピュータシステム1600は、システムメモリ1610内に現在配置されているように示されるソフトウェア要素を備える記憶サブシステム1618を備えることができる。システムメモリ1610は、処理装置1604上でロード可能および実行可能なプログラム命令、ならびにこれらのプログラムの実行中に生成されるデータを記憶することができる。 The computer system 1600 may include a storage subsystem 1618 having software elements that are currently located in the system memory 1610. The system memory 1610 can store program instructions that can be loaded and executed on the processing unit 1604, as well as data generated during the execution of these programs.

コンピュータシステム1600の構成および種類に応じて、システムメモリ1610は、揮発性(ランダムアクセスメモリ(RAM)など)および/または不揮発性(読み取り専用メモリ(ROM)、フラッシュメモリなど)の場合がある。RAMは通常、処理装置1604に即座にアクセス可能な、ならびに/または処理装置1604によって現在動作および実行されているデータおよび/またはプログラムモジュールを含む。いくつかの実装形態では、システムメモリ1610は、スタティックランダムアクセスメモリ(SRAM)またはダイナミックランダムアクセスメモリ(DRAM)などの複数の異なるタイプのメモリを含み得る。いくつかの実装形態では、起動中など、コンピュータシステム1600内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入出力システム(BIOS)は、通常、ROMに記憶され得る。限定ではなく一例として、システムメモリ1610は、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などを含み得るアプリケーションプログラム1612、プログラムデータ1614、およびオペレーティングシステム1616も示す。一例として、オペレーティングシステム1616には、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinuxオペレーティングシステム、さまざまな市販のUNIX(登録商標)もしくはUNIX系オペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなどを含むがこれらに限定されない)、ならびに/またはiOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)16OS、およびPalm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムが含まれ得る。 Depending on the configuration and type of the computer system 1600, the system memory 1610 may be volatile (such as random access memory (RAM)) and/or non-volatile (such as read-only memory (ROM) or flash memory). RAM typically contains data and/or program modules that are immediately accessible to the processing unit 1604 and/or currently operating and executing by the processing unit 1604. In some implementations, the system memory 1610 may contain several different types of memory, such as static random access memory (SRAM) or dynamic random access memory (DRAM). In some implementations, a basic input/output system (BIOS), which includes basic routines that help transfer information between elements within the computer system 1600, such as during startup, may typically be stored in ROM. As an example, and not an limitation, the system memory 1610 also includes application programs 1612, program data 1614, and the operating system 1616, which may include client applications, web browsers, middle-tier applications, relational database management systems (RDBMS), etc. For example, operating system 1616 may include various versions of Microsoft Windows®, Apple Macintosh®, and/or Linux operating systems, various commercially available UNIX® or UNIX-like operating systems (including, but not limited to, various GNU/Linux operating systems, Google Chrome® OS, etc.), and/or mobile operating systems such as iOS, Windows® Phone, Android® OS, BlackBerry® 16 OS, and Palm® OS.

記憶サブシステム1618はまた、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を記憶するための有形のコンピュータ可読記憶媒体を提供することもできる。プロセッサによって実行されると、上述の機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、記憶サブシステム1618に記憶され得る。これらのソフトウェアモジュールまたは命令は、処理装置1604によって実行され得る。記憶サブシステム1618はまた、本開示に従って使用されるデータを記憶するためのリポジトリを提供することもできる。 The storage subsystem 1618 may also provide a tangible, computer-readable storage medium for storing basic programming and data structures that provide functionality in several embodiments. Software (programs, code modules, instructions) that provides the aforementioned functionality when executed by a processor may be stored in the storage subsystem 1618. These software modules or instructions may be executed by the processing unit 1604. The storage subsystem 1618 may also provide a repository for storing data used in accordance with this disclosure.

記憶サブシステム1600はまた、コンピュータ可読記憶媒体1622にさらに接続できるコンピュータ可読記憶媒体リーダ1620を含んでもよい。一緒に、そして任意でシステムメモリ1610と組み合わせて、コンピュータ可読記憶媒体1622は、リモート、ローカル、固定、および/または取り外し可能な記憶装置に加えて、コンピュータ可読情報を一時的および/またはより永続的に収容、記憶、送信、および取得するための記憶媒体を包括的に表すことができる。 The storage subsystem 1600 may also include a computer-readable storage medium reader 1620 that can be further connected to the computer-readable storage medium 1622. Together, and optionally in combination with the system memory 1610, the computer-readable storage medium 1622 can comprehensively represent a storage medium for temporarily and/or more permanently storing, storing, transmitting, and retrieving computer-readable information, in addition to remote, local, fixed, and/or removable storage devices.

コードまたはコードの一部を含むコンピュータ可読記憶媒体1622には、当技術分野で既知または使用されている任意の適切な媒体を含めることもでき、これには、情報の記憶および/または送信のための任意の方法または技術で実装される揮発性および不揮発性、取り外し可能なおよび取り外し不可能な媒体などの記憶媒体および通信媒体が含まれるが、これらに限定されない。これには、RAM、ROM、電子的に消去可能なプログラマブルROM(EEPROM)、フラッシュメモリもしくはその他のメモリテクノロジ、CD-ROM、デジタルバーサタイルディスク(DVD)などの有形のコンピュータ可読記憶媒体、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または他の有形のコンピュータ可読媒体が含まれ得る。これには、データ信号、データ送信、または所望の情報を送信するために使用でき、コンピューティングシステム1600によってアクセスできる任意の他の媒体などの、無形のコンピュータ可読媒体も含まれ得る。 The computer-readable storage medium 1622 containing code or a portion of code may include any suitable medium known or used in the art, including, but not limited to, storage and communication media such as volatile and non-volatile, removable and non-removable media, implemented in any way or technique for storing and/or transmitting information. This may include tangible computer-readable storage media such as RAM, ROM, electronically erasable programmable ROM (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile disk (DVD), or other optical storage devices, magnetic cassettes, magnetic tapes, magnetic disk storage devices or other magnetic storage devices, or other tangible computer-readable media. This may also include intangible computer-readable media such as any other medium that can be used to transmit data signals, data transmissions, or desired information and is accessible by the computing system 1600.

一例として、コンピュータ可読記憶媒体1622は、取り外し不可能な不揮発性磁気媒体に対して読み取りまたは書き込みを行うハードディスクドライブ、取り外し可能な不揮発性磁気ディスクに対して読み取りまたは書き込みを行う磁気ディスクドライブ、およびCDROM、DVD、Blu-Ray(登録商標)ディスクなどの取り外し可能な不揮発性光ディスク、またはその他の光媒体に対して読み取りまたは書き込みを行う光ディスクドライブを含むことができる。コンピュータ可読記憶媒体1622には、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどが含まれてもよいが、これらに限定されない。コンピュータ可読記憶媒体1622には、フラッシュメモリベースのSSDなどの不揮発性メモリに基づくソリッドステートドライブ(SSD)、エンタープライズフラッシュドライブ、ソリッドステートROMなど、ソリッドステートRAM、ダイナミックRAM、スタティックRAMなどの揮発性メモリをベースにしたSSD、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDを組み合わせて使用するハイブリッドSSDも含まれ得る。ディスクドライブおよびそれらに関連するコンピュータ可読媒体は、コンピュータシステム1600のためのコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶を提供し得る。 As an example, the computer-readable storage medium 1622 may include a hard disk drive that reads or writes to a non-removable non-volatile magnetic medium, a magnetic disk drive that reads or writes to a removable non-volatile magnetic disk, and an optical disk drive that reads or writes to a removable non-volatile optical disk such as a CD-ROM, DVD, Blu-ray® disc, or other optical medium. The computer-readable storage medium 1622 may also include, but is not limited to, Zip® drives, flash memory cards, Universal Serial Bus (USB) flash drives, Secure Digital (SD) cards, DVD discs, digital videotapes, etc. The computer-readable storage medium 1622 may also include solid-state drives (SSDs) based on non-volatile memory such as flash memory-based SSDs, enterprise flash drives, SSDs based on volatile memory such as solid-state RAM, dynamic RAM, and static RAM, DRAM-based SSDs, magnetoresistive RAM (MRAM) SSDs, and hybrid SSDs that use a combination of DRAM and flash memory-based SSDs. Disk drives and associated computer-readable media can provide non-volatile storage for computer-readable instructions, data structures, program modules, and other data for the computer system 1600.

通信サブシステム1624は、他のコンピュータシステムおよびネットワークへのインターフェースを提供する。通信サブシステム1624は、コンピュータシステム1600から他のシステムとの間でデータを送受信するためのインターフェースとして機能する。例えば、通信サブシステム1624は、コンピュータシステム1600がインターネットを介して1つまたは複数の装置に接続できるようにすることができる。いくつかの実施形態では、通信サブシステム1624は、無線音声および/またはデータネットワークにアクセスするための無線周波数(RF)トランシーバ構成要素を含めることができる(例えば、携帯電話技術、3G、4G、またはEDGE(地球規模の進化のための強化されるデータレート)などの高度なデータネットワーク技術を使用する)、WiFi(IEEE802.11ファミリ標準、または他のモバイル通信技術、またはそれらの任意の組み合わせ)、全地球測位システム(GPS)受信機構成要素、および/または他の構成要素を含むことができる。いくつかの実施形態では、通信サブシステム1624は、無線インターフェースに加えて、またはその代わりに、有線ネットワーク接続(例えば、イーサネット)を提供することができる。 The communication subsystem 1624 provides interfaces to other computer systems and networks. The communication subsystem 1624 functions as an interface for sending and receiving data between the computer system 1600 and other systems. For example, the communication subsystem 1624 can enable the computer system 1600 to connect to one or more devices via the Internet. In some embodiments, the communication subsystem 1624 may include radio frequency (RF) transceiver components for accessing wireless voice and/or data networks (e.g., using advanced data network technologies such as cellular technology, 3G, 4G, or EDGE (Enhanced Data Rate for Global Evolution)), Wi-Fi (IEEE 802.11 family standards, or other mobile communication technologies, or any combination thereof), Global Positioning System (GPS) receiver components, and/or other components. In some embodiments, the communication subsystem 1624 may provide, in addition to or instead of, a wired network connection (e.g., Ethernet).

いくつかの実施形態では、通信サブシステム1624は、コンピュータシステム1600を使用することができる1人または複数のユーザに代わって、構造化および/または非構造化データフィード1626、イベントストリーム1628、イベント更新1630などの形式で入力通信を受信することもできる。 In some embodiments, the communication subsystem 1624 may also receive input communications in the form of structured and/or unstructured data feeds 1626, event streams 1628, event updates 1630, etc., on behalf of one or more users who can use the computer system 1600.

一例として、通信サブシステム1624は、ソーシャルネットワーク、および/もしくはTwitter(登録商標)フィード、Facebook(登録商標)更新、リッチサイトサマリー(RSS)フィードなどのWebフィードなどのその他の通信サービス、ならびに/または1つもしくは複数のサードパーティ情報ソースからのリアルタイム更新のユーザからリアルタイムでデータフィード1626を受信するように構成され得る。 As an example, the communication subsystem 1624 may be configured to receive data feeds 1626 in real time from users of social networks and/or other communication services such as Twitter® feeds, Facebook® updates, Rich Site Summary (RSS) feeds, and other web feeds, as well as/or real-time updates from one or more third-party information sources.

さらに、通信サブシステム1624は、連続データストリームの形式でデータを受信するように構成されてもよく、これには、リアルタイムイベントおよび/またはイベント更新1630のイベントストリーム1628が含まれ得、これらは、連続的または明示的な終わりのない本質的に無制限であり得る。連続データを生成するアプリケーションの例には、例えば、センサーデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(例えば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などが含まれ得る。 Furthermore, the communication subsystem 1624 may be configured to receive data in the form of a continuous data stream, which may include an event stream 1628 of real-time events and/or event updates 1630, which may be continuous or have no explicit end and may be essentially unlimited. Examples of applications that generate continuous data may include, for example, sensor data applications, financial tickers, network performance measurement tools (e.g., network monitoring and traffic management applications), clickstream analysis tools, and automotive traffic monitoring.

通信サブシステム1624はまた、構造化および/または非構造化データフィード1626、イベントストリーム1628、イベント更新1630などを、コンピュータシステム1600に結合される1つまたは複数のストリーミングデータソースコンピュータと通信することができる1つまたは複数のデータベースに出力するように構成することもできる。 The communication subsystem 1624 may also be configured to output structured and/or unstructured data feeds 1626, event streams 1628, event updates 1630, etc., to one or more databases that can communicate with one or more streaming data source computers connected to the computer system 1600.

コンピュータシステム1600は、ハンドヘルドポータブル装置(例えば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブル装置(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含むさまざまなタイプのうちの1つであり得る。 The computer system 1600 may be one of various types, including handheld portable devices (e.g., iPhone® mobile phones, iPad® computing tablets, PDAs), wearable devices (e.g., Google Glass® head-mounted displays), PCs, workstations, mainframes, kiosks, server racks, or other data processing systems.

コンピュータおよびネットワークの絶え間なく変化する性質のため、図に示されるコンピュータシステム1600の説明は、特定の例としてのみ意図されている。図に示されているシステムよりも多くの、または少ない構成要素を備えた他の多くの構成が可能である。例えば、カスタマイズされているハードウェアも使用されたり、特定の要素がハードウェア、ファームウェア、ソフトウェア(アプレットを含む)、またはその組み合わせで実装されたりし得る。さらに、ネットワーク入出力装置などの他のコンピューティング装置への接続が使用されてもよい。本明細書で提供される開示および教示に基づいて、当業者であれば、さまざまな実施形態を実装するための他の手法および/または方法を理解するであろう。 Due to the constantly changing nature of computers and networks, the description of the computer system 1600 shown in the figure is intended only as a specific example. Many other configurations are possible, with more or fewer components than the system shown in the figure. For example, customized hardware may be used, or certain elements may be implemented in hardware, firmware, software (including applets), or a combination thereof. Furthermore, connections to other computing devices, such as network input/output devices, may be used. Those skilled in the art will understand other techniques and/or methods for implementing various embodiments based on the disclosures and teachings provided herein.

特定の実施形態について説明してきたが、さまざまな修正、変更、代替構造、および均等物も本開示の範囲内に含まれる。実施形態は、特定の特有のデータ処理環境内での動作に限定されず、複数のデータ処理環境内で自由に動作することができる。さらに、特定の一連のトランザクションおよびステップを使用して実施形態を説明したが、本開示の範囲が説明した一連のトランザクションおよびステップに限定されないことは当業者には明らかである。上述の実施形態のさまざまな特徴および態様は、個別にまたは組み合わせて使用することができる。 While specific embodiments have been described, various modifications, changes, alternative structures, and equivalents are also included within the scope of this disclosure. The embodiments are not limited to operation within a specific, particular data processing environment, but can freely operate within multiple data processing environments. Furthermore, while the embodiments have been described using a specific set of transactions and steps, it will be apparent to those skilled in the art that the scope of this disclosure is not limited to the described set of transactions and steps. The various features and aspects of the embodiments described above can be used individually or in combination.

さらに、ハードウェアとソフトウェアの特定の組み合わせを使用して実施形態を説明したが、ハードウェアとソフトウェアの他の組み合わせも本開示の範囲内であることを認識されたい。実施形態は、ハードウェアのみで、もしくはソフトウェアのみで、またはそれらの組み合わせを使用して実装することができる。本明細書で説明するさまざまなプロセスは、同じプロセッサ上で実装することも、異なるプロセッサを任意に組み合わせて実装することもできる。したがって、構成要素またはモジュールが特定の動作を実行するように構成されていると説明されている場合、このような構成は、例えば、動作を実行する電子回路を設計することによって、動作を実行するようにプログラマブル電子回路(マイクロプロセッサなど)をプログラムすることによって、またはそれらの任意の組み合わせによって達成することができる。プロセスは、プロセス間通信のための従来の技術を含むがこれに限定されないさまざまな技術を使用して通信することができ、プロセスの異なる対が異なる技術を使用したり、同じプロセスの対が異なる時点で異なる技術を使用したりすることができる。 Furthermore, while embodiments have been described using specific combinations of hardware and software, it should be noted that other combinations of hardware and software are also within the scope of this disclosure. Embodiments can be implemented using hardware alone, software alone, or a combination thereof. The various processes described herein can be implemented on the same processor or on any combination of different processors. Therefore, where a component or module is described as being configured to perform a particular operation, such configuration can be achieved, for example, by designing electronic circuits to perform the operation, by programming programmable electronic circuits (such as microprocessors) to perform the operation, or by any combination thereof. Processes can communicate using a variety of techniques, including but not limited to conventional techniques for inter-process communication, and different pairs of processes may use different techniques, or pairs of the same process may use different techniques at different points in time.

したがって、明細書および図面は、限定的な意味ではなく、例示的な意味としてみなされるべきである。しかし、特許請求の範囲に記載のより広い趣旨および範囲から逸脱することなく、追加、減算、削除、ならびにその他の修正および変更を行うことができることは明らかである。したがって、特定の開示実施形態について説明してきたが、これらは限定することを意図したものではない。さまざまな修正および均等物は、以下の特許請求の範囲内に含まれる。 Therefore, the specification and drawings should be considered illustrative, not restrictive. However, it is clear that additions, subtractions, deletions, and other modifications and changes can be made without departing from the broader intent and scope set forth in the claims. Thus, while specific embodiments of the disclosure have been described, they are not intended to be limiting. Various modifications and equivalents are included within the following claims.

開示されている実施形態を説明する文脈における(特に、以下の特許請求の範囲の文脈において)用語「a」、「an」、「the」、および同様の指示対象の使用は、本明細書で別途指示するか、文脈と明らかに矛盾しない限り、単数形と複数形の両方をカバーすると解釈されるべきである。「含む」、「有する」、「含む」、および「含有する」という用語は、特に断りのない限り、無制限の用語(すなわち、「含むがこれらに限定されない」を意味する)として解釈されるべきである。「接続されている」という用語は、たとえ何かが介在している場合でも、部分的または全体的に内部に含まれている、取り付けられている、または結合されていると解釈される。本明細書における値の範囲の記載は、本明細書に別段の記載がない限り、その範囲内にある各々の個別の値を個別に参照する簡略的な方法として機能することを単に意図しており、個別の各値は、あたかも本明細書に個別に記載されているかのように明細書に組み込まれる。本明細書に記載されるすべての方法は、本明細書に別段の指示がない限り、または文脈と明らかに矛盾しない限り、任意の適切な順序で実行することができる。本明細書で提供されるあらゆる例、または例示的な文言(例えば、「など」)の使用は、単に実施形態をより良く説明することを目的としており、別段の請求がない限り、本開示の範囲に制限を課すものではない。本明細書のいかなる文言も、特許請求されていない任意の要素が本開示の実施に必須であることを示すものとして解釈されるべきではない。 In the context describing the disclosed embodiments (particularly in the context of the following claims), the use of the terms “a,” “an,” “the,” and similar reference subjects should be interpreted as covering both singular and plural forms unless otherwise indicated herein or clearly inconsistent with the context. The terms “include,” “have,” “contain,” and “contain” should be interpreted as unrestricted terms (i.e., “include but not limited to”) unless otherwise specified. The term “connected” should be interpreted as being partially or entirely contained within, attached, or combined, even if something is intervening. The descriptions of value ranges herein are merely intended to serve as a simplified way of referring individually to each individual value within that range unless otherwise indicated herein, and each individual value is incorporated into the specification as if it were individually described herein. All methods described herein may be performed in any appropriate order unless otherwise indicated herein or clearly inconsistent with the context. Any examples or illustrative language provided herein (e.g., "etc.") are intended solely to better illustrate embodiments and, unless otherwise requested, do not limit the scope of this disclosure. Nothing in this specification should be construed as indicating that any unclaimed element is essential for the practice of this disclosure.

「X、Y、またはZのうちの少なくとも1つ」という句などの選言的表現は、特に別段の記載がない限り、項目、用語などがX、Y、またはZのいずれか、またはそれらの任意の組み合わせ(例えば、X、Y、および/またはZ)であり得ることを示すために一般に使用されると文脈内で理解されることを意図している。したがって、そのような選言的表現は、一般に、特定の実施形態が、Xの少なくとも1つ、Yの少なくとも1つ、またはZの少なくとも1つがそれぞれ存在することを必要とすることを意味することを意図したものではなく、また、意味するべきではない。 Disjunctive expressions, such as the phrase "at least one of X, Y, or Z," are intended to be understood in context to be generally used to indicate that an item, term, etc., can be any one of X, Y, or Z, or any combination thereof (e.g., X, Y, and/or Z), unless otherwise specified. Therefore, such disjunctive expressions are not, and should not, be intended to mean that a particular embodiment requires the presence of at least one X, at least one Y, or at least one Z, respectively.

本開示の好ましい実施形態が、本開示を実施するための既知の最良のモードを含めて、本明細書に記載される。これらの好ましい実施形態の変形は、前述の説明を読めば当業者には明らかになるであろう。当業者であれば、そのような変形を必要に応じて採用することができるはずであり、本開示は、本明細書に具体的に記載された以外の方法で実施することもできる。したがって、本開示には、適用される法律によって許可される、本明細書に添付の特許請求の範囲に記載されている主題のすべての修正および均等物が含まれる。さらに、本明細書で別段の指示がない限り、可能なすべての変形例における上述の要素の任意の組み合わせが本開示に包含される。 Preferred embodiments of this disclosure, including the best known modes for carrying out this disclosure, are described herein. Variations of these preferred embodiments will be apparent to those skilled in the art by reading the preceding description. Those skilled in the art should be able to adopt such variations as needed, and this disclosure can also be carried out in ways other than those specifically described herein. Therefore, this disclosure includes all modifications and equivalents of the subject matter described in the claims appended herein, as permitted by applicable law. Furthermore, unless otherwise indicated herein, any combination of the elements described above in all possible modifications is incorporated herein.

本明細書に引用される刊行物、特許出願、および特許を含むすべての参考文献は、各参考文献が参照により組み込まれることが個別かつ具体的に示され、その全体が本明細書に記載されるのと同じ程度に、参照により本明細書に組み込まれる。前述の明細書では、本開示の態様は、その特定の実施形態を参照して説明されているが、当業者は、本開示がそれに限定されないことを認識するであろう。上述の開示のさまざまな特徴および態様は、個別にまたは組み合わせて使用することができる。さらに、実施形態は、本明細書のより広範な趣旨および範囲から逸脱することなく、本明細書に記載されているものを超える任意の数の環境および用途において利用することができる。したがって、明細書および図面は、限定的なものではなく、例示的なものとみなされるべきである。 All references, including publications, patent applications, and patents, cited herein are incorporated by reference to the same extent as they are individually and specifically indicated to be incorporated by reference in their entirety herein. While aspects of the disclosure are described in the foregoing specification with reference to specific embodiments, those skilled in the art will recognize that the disclosure is not limited thereto. The various features and aspects of the foregoing disclosure can be used individually or in combination. Furthermore, embodiments can be used in any number of environments and applications beyond those described herein without departing from the broader spirit and scope of this specification. Therefore, the specification and drawings should be considered illustrative, not restrictive.

Claims (11)

方法であって、
ホストマシンのグラフィカル処理ユニット(GPU)によって送信され、ネットワーク装置によって受信されたパケットについて、
前記ネットワーク装置が、前記パケットに関連付けられるフロー情報を取得することと、
前記ネットワーク装置が、前記フロー情報に基づいて、ハッシュアルゴリズムに従って前記ネットワーク装置の発信ポートリンクを決定することと、を含み、前記ハッシュアルゴリズムは、前記ネットワーク装置の特定の受信ポートリンク上で受信されたパケットをハッシュし、前記ネットワーク装置の特定の受信ポートリンク上で受信されたパケットが前記ネットワーク装置の同じ発信ポートリンク上で送信されるように構成され、
前記方法は、
前記ネットワーク装置が、前記ネットワーク装置の前記発信ポートリンク上で前記パケットを転送することをさらに含む、方法。
It is a method,
Regarding packets transmitted by the host machine's graphical processing unit (GPU) and received by network devices,
The network device acquires flow information associated with the packet,
The network device includes determining the outgoing port link of the network device according to a hash algorithm based on the flow information, wherein the hash algorithm hashs packets received on a specific receiving port link of the network device, and is configured such that packets received on a specific receiving port link of the network device are transmitted on the same outgoing port link of the network device.
The aforementioned method,
A method further comprising the network device forwarding the packets on the outgoing port link of the network device.
前記転送することは、
前記ネットワーク装置が、前記ネットワーク装置の前記発信ポートリンクに関連する条件を確認することと、
前記条件が満たされていることに応答して、前記ネットワーク装置の前記発信ポートリンク上で前記パケットを転送することと、をさらに含む、請求項1に記載の方法。
The aforementioned transfer is,
The network device confirms the conditions related to the outgoing port link of the network device,
The method according to claim 1, further comprising forwarding the packet on the outgoing port link of the network device in response to the fulfillment of the above conditions.
前記条件は、前記ネットワーク装置の前記発信ポートリンクがアクティブであるかどうかを決定することに対応する、請求項2に記載の方法。 The method according to claim 2, wherein the condition corresponds to determining whether the outgoing port link of the network device is active. 前記条件が満たされていないことに応答して、
前記ネットワーク装置が等コストマルチパスアルゴリズムを実行して、前記フロー情報に基づいて前記ネットワーク装置の新しい発信ポートリンクを取得することと、
前記ネットワーク装置が、前記ネットワーク装置の前記新しい発信ポートリンク上で前記パケットを転送することと、をさらに含む、請求項2に記載の方法。
In response to the fact that the above conditions are not met,
The network device executes an equal-cost multipath algorithm to acquire a new outgoing port link for the network device based on the flow information,
The method according to claim 2, further comprising the network device forwarding the packets on the new outgoing port link of the network device.
前記ネットワーク装置は、トップオブラック(TOR)スイッチである、請求項1に記載の方法。 The method according to claim 1, wherein the network device is a top-of-rack (TOR) switch. 前記ネットワーク装置によって受信されたパケットに対して実行されるハッシュ演算に関連する情報は、転送テーブルデータベースに記憶される、請求項1に記載の方法。 The method according to claim 1, wherein information related to the hash operation performed on packets received by the network device is stored in a forwarding table database. 前記ネットワーク装置の第1の受信ポートリンクで受信される第1のパケットと第2のパケット、および前記ネットワーク装置の第2の受信ポートリンクで受信される第3のパケットと第4のパケットについて、前記ネットワーク装置は、
前記ネットワーク装置が、前記ネットワーク装置の第1の発信ポートリンク上で前記第1のパケットと前記第2のパケットとを送信することと、
前記ネットワーク装置が、前記ネットワーク装置の第2の発信ポートリンク上で前記第3のパケットと前記第4のパケットを送信することと
を行うように構成され、前記ネットワーク装置の前記第1の受信ポートリンクは前記ネットワーク装置の前記第2の受信ポートリンクとは異なり、前記ネットワーク装置の前記第1の発信ポートリンクは前記ネットワーク装置の前記第2の発信ポートリンクとは異なる、請求項1に記載の方法。
With respect to the first and second packets received on the first receiving port link of the network device, and the third and fourth packets received on the second receiving port link of the network device, the network device shall
The network device transmits the first packet and the second packet on the first outgoing port link of the network device,
The method according to claim 1, wherein the network device is configured to transmit the third packet and the fourth packet on the second outgoing port link of the network device, the first receiving port link of the network device is different from the second receiving port link of the network device, and the first outgoing port link of the network device is different from the second outgoing port link of the network device.
前記第1のパケット、前記第2のパケット、前記第3のパケット、および前記第4のパケットは、GPUワークロードに属する、請求項7に記載の方法。 The method according to claim 7, wherein the first packet, the second packet, the third packet, and the fourth packet belong to a GPU workload. 前記ネットワーク装置の前記第1の受信ポートリンクと前記第2の受信ポートリンクは、前記ホストマシンをトップオブラック(TOR)スイッチに接続するリンクの第1のセットであり、前記ネットワーク装置の前記第1の発信ポートリンクと前記第2の発信ポートリンクは、前記TORをスパインスイッチに接続するリンクの第2のセットである、請求項7に記載の方法。 The method according to claim 7, wherein the first and second receiving port links of the network device are a first set of links connecting the host machine to a top-of-rack (TOR) switch, and the first and second transmitting port links of the network device are a second set of links connecting the TOR to a spine switch. ネットワーク装置であって、
プロセッサと、
前記プロセッサで実行されると、前記ネットワーク装置に、請求項1~9のいずれか1項に記載された方法を実行させる、ネットワーク装置。
Network device,
Processor and
A network device that, when executed by the processor, causes the network device to perform the method described in any one of claims 1 to 9.
コンピュータシステムに、請求項1~9のいずれか1項に記載された方法を実行させる、プログラム。 A program that causes a computer system to perform the method described in any one of claims 1 to 9.
JP2023579266A 2021-06-25 2022-06-23 Routing policy for graphics processing units Active JP7832965B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163215264P 2021-06-25 2021-06-25
US63/215,264 2021-06-25
US17/734,865 US12309061B2 (en) 2021-06-25 2022-05-02 Routing policies for graphical processing units
US17/734,865 2022-05-02
PCT/US2022/034789 WO2022271991A1 (en) 2021-06-25 2022-06-23 Routing policies for graphical processing units

Publications (3)

Publication Number Publication Date
JP2024524992A JP2024524992A (en) 2024-07-09
JP2024524992A5 JP2024524992A5 (en) 2025-02-05
JP7832965B2 true JP7832965B2 (en) 2026-03-18

Family

ID=82694001

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023579266A Active JP7832965B2 (en) 2021-06-25 2022-06-23 Routing policy for graphics processing units

Country Status (3)

Country Link
EP (1) EP4360280A1 (en)
JP (1) JP7832965B2 (en)
WO (1) WO2022271991A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190097914A1 (en) 2016-05-27 2019-03-28 Huawei Technologies Co., Ltd. Data forwarding method and device
US20190173776A1 (en) 2017-12-05 2019-06-06 Mellanox Technologies, Ltd. Switch-enhanced short loop congestion notification for TCP
US20200366607A1 (en) 2019-05-14 2020-11-19 Vmware, Inc. Slice-based routing

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11190440B2 (en) * 2018-01-19 2021-11-30 Vmware, Inc. Methods and apparatus to configure and manage network resources for use in network-based computing
EP3531633B1 (en) * 2018-02-21 2021-11-10 Intel Corporation Technologies for load balancing a network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190097914A1 (en) 2016-05-27 2019-03-28 Huawei Technologies Co., Ltd. Data forwarding method and device
US20190173776A1 (en) 2017-12-05 2019-06-06 Mellanox Technologies, Ltd. Switch-enhanced short loop congestion notification for TCP
US20200366607A1 (en) 2019-05-14 2020-11-19 Vmware, Inc. Slice-based routing

Also Published As

Publication number Publication date
EP4360280A1 (en) 2024-05-01
JP2024524992A (en) 2024-07-09
WO2022271991A1 (en) 2022-12-29

Similar Documents

Publication Publication Date Title
JP7811216B2 (en) Packet flow in a cloud infrastructure based on cached and non-cached configuration information
JP7850184B2 (en) Routing policy for image processing device
US12609897B2 (en) Dynamic IP routing in a cloud environment
US12531785B2 (en) Publishing physical topology network locality for general workloads
US20260023612A1 (en) Supercluster network of graphical processing units (gpus)
US20250126078A1 (en) Techniques of achieving end-to-end traffic isolation
US20230222007A1 (en) Publishing physical topology network locality information for graphical processing unit workloads
JP2025504816A (en) Exposing physical topology network locality for common workloads
WO2023136964A1 (en) Publishing physical topology network locality information for graphical processing unit workloads
WO2022271990A1 (en) Routing policies for graphical processing units
JP7832965B2 (en) Routing policy for graphics processing units
WO2025080683A1 (en) Endpoint connection with reduced latency
CN117597894A (en) Routing strategy for graphics processing units
CN118541675A (en) Publish physical topology network locality for general workloads

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250128

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20250128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20251128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20251223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20260119

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20260306

R150 Certificate of patent or registration of utility model

Ref document number: 7832965

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150