CN114008599B - 具有自动故障转移的远程控制平面 - Google Patents

具有自动故障转移的远程控制平面 Download PDF

Info

Publication number
CN114008599B
CN114008599B CN202080042460.4A CN202080042460A CN114008599B CN 114008599 B CN114008599 B CN 114008599B CN 202080042460 A CN202080042460 A CN 202080042460A CN 114008599 B CN114008599 B CN 114008599B
Authority
CN
China
Prior art keywords
control plane
region
provider network
sub
area
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
CN202080042460.4A
Other languages
English (en)
Other versions
CN114008599A (zh
Inventor
A·H·古德曼
G·艾利赛欧斯
D·古普塔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 US16/450,848 external-priority patent/US11431553B2/en
Priority claimed from US16/450,854 external-priority patent/US11349718B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN114008599A publication Critical patent/CN114008599A/zh
Application granted granted Critical
Publication of CN114008599B publication Critical patent/CN114008599B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

描述了用于远程控制平面的自动故障转移的技术。一种远程控制平面的自动故障转移的方法包括:确定与第一控制平面相关联的故障转移事件已经发生,所述第一控制平面与提供商网络的第一区域相关联;识别与所述提供商网络的第二区域相关联的第二控制平面;以及将所述提供商网络的所述第一区域从所述第一控制平面故障转移到所述第二控制平面,其中所述子区域将对所述第一控制平面的端点的一个或多个引用更新为对所述第二控制平面的端点的引用。

Description

具有自动故障转移的远程控制平面
背景技术
许多公司和其他组织运营计算机网络,所述计算机网络互连许多计算系统以支持其操作,诸如计算系统位于同一位置(例如,作为本地网络的一部分)或位于多个不同的地理位置(例如,经由一个或多个私有或公共中间网络连接)。例如,容纳大量互连计算系统的数据中心已经变得常见,诸如由单个组织并代表单个组织运营的私有数据中心,以及由实体作为业务运营以向客户提供计算资源的公共数据中心。一些公共数据中心运营商为各种客户拥有的硬件提供网络访问、电力和安全安装设施,而其他公共数据中心运营商则提供“全面服务”设施,所述“全面服务”设施还包括可供其客户使用的硬件资源。然而,随着典型数据中心规模和范围的增加,调配、实施和管理物理计算资源的任务变得越来越复杂。
商品硬件虚拟化技术的出现为许多具有不同需求的客户管理大规模计算资源提供了益处,允许多个客户高效、安全地共享各种计算资源。例如,虚拟化技术可以通过向每个用户提供由单个物理计算机器托管的一个或多个虚拟机来允许在多个用户之间共享单个物理计算机器。每个此类虚拟机都是充当不同的逻辑计算系统的软件模拟,该不同的逻辑计算系统为用户提供他们是给定硬件计算资源的唯一运营商和管理员的错觉,同时还在各种虚拟机之间提供应用程序隔离和安全性。此外,一些虚拟化技术能够提供跨越两个或更多物理资源的虚拟资源,诸如具有跨越多个不同物理计算系统的多个虚拟处理器的单个虚拟机。作为另一个示例,虚拟化技术可以通过向每个用户提供可以分布在多个数据存储装置上的虚拟化数据存储来允许在多个用户之间共享数据存储硬件,其中每个此类虚拟化数据存储充当不同的逻辑数据存储,其为用户提供他们是数据存储资源的唯一运营商和管理员的错觉。
附图说明
将参考附图描述根据本公开的各种实施方案,在附图中:
图1是绘示根据一些实施方案的用于设置具有自动故障转移的远程控制平面的环境的图。
图2是绘示根据一些实施方案的用于远程控制平面的自动故障转移的环境的图。
图3是绘示根据一些实施方案的控制平面监测服务和资产监测服务的图。
图4是绘示根据一些实施方案的用于将控制平面从主要区域自动故障转移到次要区域的环境的图。
图5是绘示根据一些实施方案的用于将控制平面从主要区域自动故障转移到次要区域的环境的图。
图6是绘示根据一些实施方案的用于远程控制平面的自动故障转移的方法的操作的流程图。
图7是绘示根据一些实施方案的使用远程控制平面的容量突发的环境的图。
图8是绘示根据一些实施方案的使用远程控制平面的容量突发的操作的流程图。
图9绘示了根据一些实施方案的示例提供商网络环境。
图10是根据一些实施方案的向客户提供存储服务和硬件虚拟化服务的示例提供商网络的框图。
图11是绘示可在一些实施方案中使用的示例计算机系统的框图。
具体实施方式
本公开涉及用于具有自动故障转移的远程控制平面的方法、设备、系统和非暂时性计算机可读存储介质。根据一些实施方案,提供商网络的区域中的硬件资源可由位于提供商网络的不同区域中的远程控制平面来管理。与其中控制平面和被管理的资源必须被并置在提供商网络的同一区域中的系统不同,这里描述的实施方案打破了此耦合,从而使得资源能够在故障、控制平面容量不足或其他问题的情况下被远程管理。实施方案可以使区域能够根据需要使用多个远程控制平面。在一些实施方案中,可用于特定资源的远程控制平面可以基于距离、网络等待时间或其他性能特征或用户偏好而受到限制。控制平面监测服务可以监测远程控制平面的可用性和管理特定区域的特定远程控制平面的状态。如果所述控制平面受损,控制平面监测服务可以使得所述区域切换到使用不同的远程控制平面。
除了故障转移用例之外,区域资源的管理转移到新的控制平面也可以是由其他触发因素导致的。例如,基于对各种可用控制平面的监测,可以确定不同的控制平面将为特定区域提供改善的性能。然后,监测系统可以将区域资源的全部或部分的管理透明地转移到新的控制平面。在一些实施方案中,流量激增或其他负载峰值可以类似地触发全部或一些资源到一个或多个远程控制平面的故障转移。
图1是绘示根据一些实施方案的用于设置具有自动故障转移的远程控制平面的环境的图。如图1中所示,提供商网络100可以向用户提供各种资源。例如,在图1中,提供商网络100包括地区102,所述地区102可以包括多个不同区域(也称为“可用性区”)。每个区域可在逻辑上彼此(并且与提供商网络100内未示出的任何其他区域)隔离。例如,每个区域可以是由一个或多个物理数据中心支持的不同的逻辑数据中心,并且每个区域可以具有自己的电源和网络基础设施,以限制一个区域中的故障影响另一个区域的可能性。此外,可以选择地区内的区域分布以限制一个区域中的灾害影响另一个区域可用性的可能性。在图1的实施方案中,多个区域被示为位于地区102内,然而,在各种实施方案中,提供商网络100可以包括多个地区,每个地区具有其自己的多个区域。提供商网络100的每个地区可以包括位于相同地理区域(例如,州、国家等)中的资源。通过将提供商网络100划分成不同的地区和区域,存储在其中的数据和客户实例可以被保护免受故障事件的影响。例如,第一区域中的故障可能不会影响第二区域中的资源。同样,一个地理地区中的故障可能不会影响位于另一个地理地区中的资源。如所讨论的,每个区域在地理上可以是不同的,在一些实施方案中相隔数百英里或更多。地区内的每个区域可以经由一个或多个中转网络连接,所述一个或多个中转网络包括连接这些区域的专用主干网络。一些实现方式可以类似地经由专用主干网络将地区彼此连接。中转网络可在每个区域之间进行流量中转。
如图1中所示,多个区域可以包括父区域104A-104和子区域110A-110C。每个子区域可以对应于远离其父区域的位置,并且可以包括其自己的基础设施和硬件,包括由提供商网络100提供和管理的数据中心空间、网络和公用设施。然而,子区域110可能不完全独立于所述地区的其余区域104。例如,子区域可能没有自己的控制平面;相反,它可由远程/地理上不同的区域的控制平面控制和访问。因此,在提供商网络100内,子区域中可用的资源可以表现为父区域容量的池。在一些实施方案中,一些控制平面特征可在子区域中本地提供,而其他控制平面特征可由远程控制平面提供。
提供商网络100向用户提供利用多种类型的计算相关资源中的一种或多种的能力,诸如计算资源(例如,执行虚拟机(VM)实例和/或容器、执行批处理作业、在不调配服务器的情况下执行代码)、数据/存储资源(例如,对象存储、块级存储、数据存档存储、数据库和数据库表等)、网络相关资源(例如,配置包括计算资源组的虚拟网络、内容分发网络(CDN)、域名服务(DNS)),应用程序资源(例如,数据库、应用程序构建/部署服务)、访问策略或角色、身份策略或角色、机器映像、路由器和其他数据处理资源等。这些和其他计算资源可以作为服务(诸如可以执行计算实例的硬件虚拟化服务、可以存储数据对象的存储服务等)来提供。提供商网络100的用户(或“客户”)可以利用与客户账户相关联的一个或多个用户账户,尽管根据使用的上下文,这些术语可在某种程度上互换使用。用户可以经由一个或多个接口(诸如通过使用应用程序编程接口(API)调用、经由实现为网站或应用程序的控制台等)跨一个或多个中间网络106(例如,互联网)与提供商网络100交互。接口可以是提供商网络100的控制平面的一部分,或用作提供商网络100的控制平面的前端,所述提供商网络100的控制平面包括支持和启用可以更直接地提供给客户的服务的“后端”服务。
如图1中所示,控制平面可以跨多个区域分布,诸如跨父区域104A-104C分布的控制平面112A-112C。在各种实施方案中,提供商网络的业务和操作可以广义地细分为两类:在逻辑控制平面上承载的控制平面操作和在逻辑数据平面上承载的数据平面操作。尽管数据平面表示用户数据通过分布式计算系统的移动,但是控制平面表示控制信号通过分布式计算系统的移动。控制平面通常包括一个或多个控制平面部件,所述一个或多个控制平面部件跨一个或多个控制服务器分布并且由一个或多个控制服务器实现。控制平面流量通常包括实施性操作,诸如系统配置和管理(例如,资源放置、硬件容量管理、诊断监测、系统状态信息)。数据平面包括在提供商网络上实现的客户资源(例如,计算实例、容器、块存储卷、数据库、文件存储)。数据平面流量通常包括非实施性操作,诸如将客户数据传入和传出客户资源。控制平面部件通常在与数据平面服务器分开的一组服务器上实现,并且控制平面流量和数据平面流量可以在分开的/不同的网络上发送。
为了提供这些和其他计算资源服务,提供商网络100通常依赖于虚拟化技术。例如,虚拟化技术可以用于向用户提供控制或利用计算实例的能力(例如,使用利用可以在或可以不在底层主机O/S的顶部上进一步操作的管理程序的客户操作系统(O/S)的VM、可以在或可以不在VM中操作的容器、可在没有底层管理程序的“裸机”硬件上执行的实例),其中可以使用单个电子装置实现一个或多个计算实例。因此,用户可以直接利用由提供商网络托管的计算实例(例如,由硬件虚拟化服务提供)来执行多种计算任务。另外地或替代地,用户可以通过提交将由提供商网络执行的代码(例如,经由按需代码执行服务)来间接利用计算实例,所述提供商网络又利用计算实例来执行代码——通常用户对所涉及的底层计算实例没有任何控制或知识。
尽管可用性区通常被配置有数据平面容量以及它们自己的控制平面,但是本文所描述的子区域可以仅包括数据平面容量或一些有限的控制平面功能,由于等待时间或其他原因,所述数据平面容量或一些有限的控制平面功能需要非常接近数据平面。可以以多种方式实现本文所指的子区域。在一些实现方式中,子区域可以是提供商网络的子集,其具有比典型区域更有限的容量。作为一个示例,此类型的子区域可以是提供商网络基板的扩展,其包括在已建立的地区或可用性区之外提供的有限数量的容量(例如,位于靠近远离已建立的可用性区的客户工作负载的小型数据中心)。作为另一个示例,此类型的子区域可以是可用性区中数据平面容量的逻辑隔离子集,所述可用性区已经被确定为对于其整个数据平面没有足够的控制平面容量。在一些实现方式中,子区域可以是由位于客户设施内部的一个或多个服务器形成的提供商网络基板的扩展,其中此类服务器通过网络(例如,诸如因特网的公共可访问网络)与提供商网络的附近区域/地区通信。提供商网络的此“前哨”可以包括有限数量的容量(例如,计算和存储资源),使得在前哨内调配本地控制平面将构成容量的显著百分比减小。一些此类前哨(例如作为具有跨电信数据中心、电信聚合站点和/或电信网络中的电信基站分布的物理基础设施的多边缘云)可以被集成到电信网络中。在内部部署的示例中,前哨的有限容量可能只供拥有所述场所的客户(以及客户列入白名单的任何其他账户)使用。在电信示例中,前哨的有限容量可在电信网络的多个用户之间共享。远程基底扩展和前哨示例可以称为“边缘位置”,因为它们定位在最靠近客户装置和/或工作负载的提供商网络的边缘处。
因此,可以通过向远离地区中的其他地区的基础设施的地理区域添加基础设施来创建子区域。例如,子区域110A可以比从父区域104A-104C预期的正常等待时间更远离所述地区的其余部分。子区域可以经由中转网络连接到所述地区的其余部分。尽管中转网络上的等待时间更大,但它仍然是提供商网络主干的一部分,并且被设计成具有与互连父区域的链路相同的可用性和冗余特性。子区域可以包括本地链路(诸如经由中间网络106),所述本地链路提供对互联网的访问并且使得客户端装置108能够访问子区域的资源。
如图所示,子区域110A可以包括多个主机114A-114F,这些主机可以托管由提供商网络100提供的各种资源。子区域中的这些主机和其他硬件资源可以构成子区域的数据平面。例如,多个主机中的一个或多个可以托管硬件虚拟化服务116的计算实例。这些计算实例可以代表客户执行应用程序并且可以经由中间网络106被用户的一个或多个客户端装置访问。子区域中的数据平面容量可由一个或多个父区域中的控制平面服务器控制。在一些实现方式中,子区域的整个数据平面容量可由单个父区域一次控制(经受故障转移),而在其他实现方式中,子区域数据平面容量的不同子集可由不同的父区域控制。
子区域110A还可以包括父区域管理器118。在附图标记1处,当子区域首次上线时,父区域管理器118可以针对将用于管理子区域的控制平面向控制平面监测服务120发送请求。控制平面监测服务可以是地区范围的服务,其监测地区102的分布式控制平面112A-112C并且维护关于控制平面的每个实例的控制平面数据,如附图标记2示出的。例如,此控制平面数据可以包括由控制平面的每个实例发布的关于此控制平面实例的度量,诸如可用容量(例如,在给定地区中管理多少数据平面主机相对于控制平面可以支持多少数据平面主机、区域中的当前利用率、当前性能水平、整体实例健康等)。由控制平面监测服务120维护的控制平面数据还可以包括基于例如子区域和父区域的地理位置、父区域的可用容量等的子区域到父区域的注册或映射。控制平面监测服务120可以基于此控制平面数据将诸如第一父区域104A的父区域识别为第一子区域110A的父区域。
在一些实施方案中,可以基于被管理的资源的位置来确定控制平面容量,以确保资源的管理被分布以避免协调故障(例如,控制平面可能超过位于提供商网络的一个区域中的资源的容量,但是可能低于位于提供商网络的不同区域中的资源的容量)。在一些实施方案中,可以基于资源被添加到提供商网络的位置来确定控制平面容量(例如,控制平面容量可以考虑区域或地区中附加资源的计划部署)。在一些实施方案中,控制平面容量可以基于分配给控制平面的主机数量和每个控制平面主机能够管理的资源数量。
如附图标记3示出的,第一子区域110A还可以向资产监测服务122提供主机和其他硬件资源的列表。资产监测服务122可以维护硬件资源的索引,包括标识符、限定如何与硬件资源通信的数据(例如,IP地址或其他地址数据)等。在各种实施方案中,子区域可以周期性地更新资产监测服务,使得所述资产监测服务维护子区域的硬件资源的最新索引。在一些实施方案中,子区域可以仅在新的硬件资源被添加到子区域时(例如,当新的服务器机架被安装或其他资源被添加时)更新资产监测服务122。如附图标记4示出的,控制平面监测服务通知第一父区域104A的控制平面其将管理第一子区域110A。在一些实施方案中,控制平面监测服务可以向第一父区域的控制平面提供来自资产监测服务122的第一子区域的资产索引。在一些实施方案中,控制平面监测服务可以向控制平面112A提供对资产监测服务的引用,使得其可以获得资产索引。控制平面监测服务120可以向父区域管理器118提供数据(例如,诸如URL、URI或其他地址信息的引用、安全证书或其他数据)以访问第一父区域104A的控制平面112A。在附图标记5处,第一子区域110A可以连接到第一父区域104A并且可以执行安全握手。父区域管理器118可以更新应用程序编程接口(API)端点和其他数据以反映其正由第一父区域104A的控制平面112A管理。因此,如本文所指的父区域包括具有控制平面功能的一组服务器。一些父区域也可能具有数据平面容量,而一些父区域可能没有数据平面容量。
在一些实施方案中,控制平面监测服务120和资产监测服务122可以位于提供商网络100的与它们正在监测的子区域或父区域分开的区域或地区中。通过将这些服务定位在提供商网络的与它们监测的区域或地区分开的区域或地区,所述服务不会受到可能影响它们监测的资源的任何区域范围或地区范围的故障的影响。例如,如果地区连接出现故障并且控制平面监测服务和资产监测服务都位于所述地区,则它们将无法确定故障是地区范围的。但是,通过在外部定位它们,它们可以确定存在地区范围或区域范围的中断,并且尝试将受影响的资源连接到其他地区或区域中的控制平面。在一些实施方案中,控制平面监测服务120和资产监测服务122可以跨父区域分布,并且可在某一地区的它们自己的区域中或跨某一地区的区域分布,在一些实施方案中,它们可以是多地区的,并且跨多个地区分布。
子区域基础设施独立于其他区域并且可以通过本地链路(诸如经由中间网络106)来访问。因此,即使子区域的父区域关闭,最终用户仍然可以访问子区域中的资源。然而,因为子区域没有自己的控制平面,并且依赖于父区域的控制平面,所以如果父区域关闭或子区域变得不可达(例如,由于断电、容量不足、通信问题等),依赖于控制平面的API对于子区域可能变得不可用。因此,为了确保子区域可以继续操作,当确定第一父区域已经关闭或以其他方式变得不可用时,控制平面监测服务120还可以提供从一个父区域到另一个父区域的自动故障转移。
图2是绘示根据一些实施方案的用于远程控制平面的自动故障转移的环境的图。如图2中所示,第一子区域110A由第一父区域104A管理。在附图标记1A处,控制平面监测服务120可以检测到第一父区域已经关闭或以其他方式不可达。例如,停电或其他事件可能会影响第一个父区域。在一些实施方案中,第一父区域104A可以检测到与第一子区域110A的连接已经丢失。第一父区域然后可以通知1A处的控制平面监测服务,需要识别新的区域来接管第一子区域的管理。另外地或替代地,在附图标记1B处,第一子区域110A可以检测到它已经与第一父区域失去联系。例如,父区域管理器118和控制平面112A可以交换心跳消息或其他数据,以指示连接仍然有效。在一些实施方案中,控制平面112A可以周期性地向父区域管理器118推送数据以指示连接仍然有效,或父区域管理器118可以周期性地从控制平面112A拉取数据以指示连接仍然有效。一旦确定到第一父区域的连接断开,则在附图标记2处,父区域管理器118可以请求新的区域的控制平面管理子区域。在一些实施方案中,当控制平面监测服务120确定第一父区域关闭时,它可在向子区域分配新的父区域之前向子区域通知中断。
如上所述,控制平面监测服务可以基于由控制平面监测服务122维护的控制平面数据来识别新的父区域以管理子区域。例如,可以识别下一个最近(地理上)的区域,或可以使用接近度和控制平面容量的组合来识别新的父区域。一旦识别了新的父区域,在附图标记3处,控制平面监测服务可以获得第一子区域的当前资产索引。如所讨论的,资产索引可以包括第一子区域中可用的硬件资源的列表。在附图标记4处,控制平面监测服务可以通知新的父区域(例如,在图2的示例中,第N父区域104C和控制平面112C)它将管理第一子区域110A并且期望被第一子区域联系。
在附图标记5处,第一子区域可以接触第N父区域的控制平面112C。在一些实施方案中,第一子区域中已经建立了开放连接或使用了其他区域特定数据的任何资源然后可以将那些连接和数据更新到新的父区域(例如,执行新的连接握手等)。例如,子网地址、防火墙规则和其他区域特定的数据可以更新,以与新的控制平面兼容。在一些实施方案中,新的控制平面112C可以接受来自第一子区域的连接请求,并且可以向第一子区域请求状态信息和/或轮询硬件资源以获取状态数据。例如,使用资产索引,新的控制平面112可以轮询每个主机以确定每个主机上当前正在运行什么实例,并且获得关于每个主机上正在运行什么的其他信息。如上所述,先前与第一父区域104A相关联的端点(例如,API端点)然后可以被更新为与第N父区域104C相关联的端点。当在第一子区域中接收到新的请求(例如,在主机上添加新的实例、管理现有实例或使用控制平面的其他请求)时,所述请求可以被转发到新的控制平面。在一些实施方案中,子区域所利用的端点可以被抽象为别名。它们不是硬编码端点(例如,特定的URL),而可能是指向当前管理的父区域端点的标识符(例如,“父区域”)。这可以通过内部域名系统(DNS)来实现,所述内部域名系统(DNS)可以允许资源、API等指向相同的标识符,但是所述相同的标识符已经被重新映射到不同的底层地址。例如,父区域管理器可以维护标识符到当前端点的映射。当故障转移发生时,父区域管理器118可以更新映射以将流量无缝地重定向到新的端点。
在一些实施方案中,当第一父区域104A恢复在线时,可以有故障恢复由第一父区域管理的子区域的选项。例如,在故障转移之前,第一父区域可能一直在管理三个子区域。在发生故障时,第一子区域110A故障转移到第N父区域104C。其他两个子区域可能已经故障转移到第二父区域104B或其他可用的父区域。这可能给其他父区域带来了压力,因为它们现在正在管理额外的子区域。因此,一旦第一父区域恢复在线,子区域的负载就可以重新平衡。在一些实施方案中,对于要由特定父区域管理的特定子区域可能没有亲和性。相反,子区域的管理可以以对提供商网络100最高效的任何方式跨父区域分布。在一些实施方案中,客户偏好可以被考虑到此分布中,以将特定子区域的管理限制到一个或多个特定父区域(例如,由于地理位置、等待时间或其他客户偏好)。
尽管用集中式控制平面监测服务120描述了实施方案,但是在各种实施方案中,控制平面监测服务可以跨区域分布。当故障转移事件发生时,分布式控制平面监测服务的实例可以使用法定逻辑或其他共识算法来确定管理子区域的新的父区域。在一些实施方案中,控制平面监测服务的一个实例可以被其他实例选为主要实例,并且可在故障转移期间做出管理决策。如果主要实例关闭,则新的实例可由其余实例选为主要实例。在故障转移的情况下,主要实例可以做出上述管理决策。
图3是绘示根据一些实施方案的控制平面监测服务和资产监测服务的图。如所讨论的,资产监测服务122可以获得每个子区域的资源数据。资产监测服务122可以包括区域资源管理器300,所述区域资源管理器300与被监测的每个区域交接。例如,当新的区域上线时,它可以经由区域资源管理器向资产监测服务注册。注册后,所述区域可以周期性地提供所述区域中的硬件资源的当前列表。在一些实施方案中,所述区域可以仅提供新的硬件资源(例如,当前基础设施和最后提供的基础设施的差异)。资产监测服务122可以使用硬件资源的列表来生成资源索引302,所述资源索引302包括区域中的全部硬件资源,并且包括资源的类型、资源的标识符、如何与资源通信(例如,IP地址或其他地址信息)以及关于资源的其他数据。在一些实施方案中,可以为每个区域维护单独的资源索引302,或单个资源索引302可以包括向资产监测服务注册的全部区域的资源索引。根据请求,资产监测服务122可以使用存储在资源索引302中的数据来为所请求的区域提供当前资产索引。
控制平面监测服务120可以通过控制平面接口304与跨多个区域分布的多个控制平面交接。例如,控制平面监测服务120可以通过控制平面接口304订阅由每个控制平面发布的度量。控制平面度量管理器306可以通过控制平面接口接收由控制平面发布的度量,并且维护分布式控制平面的地区范围视图。例如,地区范围视图可以指示哪些控制平面在线,以及哪些控制平面当前关闭、跨地区的控制平面的利用率、跨地区的控制平面的可用容量等。在一些实施方案中,控制平面监测服务120还可以包括区域注册308,所述区域注册308指示哪些子区域正由哪些父区域管理。
控制平面监测服务120还可以维护故障转移层级310。在一些实施方案中,每个子区域可以与其自己的故障转移层级相关联。故障转移层级可以是备份父区域和/或地区的层级树。例如,可以基于例如潜在备份区域和要管理的子区域之间的地理距离来为每个潜在备份区域和/或地区分配权重。在一些实施方案中,故障转移层级可以包括负载平衡逻辑以确保如果若干附近的区域同时关闭,它们全部不会故障转移到单个备份区域,这可能导致通过所述地区的一连串故障。在一些实施方案中,控制平面监测服务120可以维护用户故障转移偏好312。这些可以包括地理、等待时间(或其他性能度量)和/或在确定管理子区域的新的控制平面时要应用的其他要求。例如,客户可能要求将他们的资源限制在特定的国家或国家的地区。客户还可以要求他们的至少一些资源由足够接近的区域来管理,使得等待时间低于阈值。客户也可能有控制平面分布要求,他们不希望他们的全部资源都由同一个控制平面管理。当为特定客户区域构建故障转移层级时,可以使用这些偏好,和/或在执行故障转移之前,拒绝或批准使用故障转移层级识别的新的控制平面。控制平面监测服务120还可以包括故障转移/故障恢复管理器314,所述故障转移/故障恢复管理器314可以如上所述管理故障转移(例如,确定控制平面关闭、识别新的控制平面、通知子区域和新的控制平面断电,以及指示子平面和新的控制平面进行连接等)。
图4是绘示根据一些实施方案的用于将控制平面从主要区域自动故障转移到次要区域的环境的图。如上所述,在子区域中,控制平面已经从数据平面解耦,这允许数据平面的硬件资源由远程控制平面管理。这在子区域用例中是有用的,因为它允许在没有控制平面的情况下部署子区域。父区域包括它们自己的控制平面,但是父区域的类似解耦也有许多好处。例如,如果父区域的控制平面的全部或部分出现故障,则数据平面的全部或部分可以被更新为由一个或多个备份区域管理。另外,当控制平面需要维护时,由所述控制平面管理的数据平面资源可由另一个地区中的不同控制平面管理,直到维护完成。这还可以使控制平面能够被配置为管理特定的硬件资源的类型(例如,特定类型的服务器等)。因此,可以限定多个故障转移事件,所述多个故障转移事件导致一个区域将其数据平面的管理转移到不同区域的控制平面,这些事件可以包括但不限于控制平面的故障、计划维护、性能下降、通信错误或其他触发因素。
如图4中所示,地区102可以包括多个区域,包括主要区域400和一个或多个次要区域402A-402C。在一些实施方案中,每个区域可以识别在发生控制平面故障事件的情况下使用的备份区域。图4的示例示出了一个主要区域和多个次要区域以简化描述。然而,从每个区域的角度来看,它是主要区域,并且其他区域是次要区域。每个区域可以包括控制平面管理器,所述控制平面管理器监测所述区域的控制平面状态,如附图标记1示出的。在一些实施方案中,控制平面管理器404可以执行与上述控制平面监测服务类似的功能。控制平面管理器可以识别至少一个次要区域402A-402C作为主要区域的备份。主要区域可以随机识别备份区域,或备份区域可以基于相对于主要区域的位置、次要区域的性能特征、客户偏好(例如,国家、地区、性能等)或其他因素来识别。一旦识别了次要区域,主要区域400就可以周期性地向次要区域发送资产列表。例如,在附图标记2处,主要区域400可以将主要区域中的硬件资源(例如,主机410A-410F和主要区域400的数据平面的其他硬件资源)的列表发送到充当备份区域的第一次要区域402A。第一次要区域402A可以包括类似于上述资源索引302的资源索引408。当检测到故障转移触发时,控制平面管理器404可以连接到次要控制平面406B,并且类似于上述的转移子区域的管理,将主要区域400的主机410A-410F和/或其他硬件资源的管理转移到备份控制平面,如附图标记3示出的。
图5是绘示根据一些实施方案的用于将控制平面从主要区域自动故障转移到次要区域的环境的图。在图5的示例中,控制平面监测服务120可以用作集中式控制平面管理器,以用于识别主要区域与次要区域,并且在检测到故障转移触发时管理故障转移。控制平面管理器404可以监测主要区域400的控制平面406A,如附图标记1示出的。在附图标记2处,主要区域400可以向资产监测服务122发送主要区域中的硬件资源(例如,主要区域400的数据平面的主机410A-410F和其他硬件资源)的列表。如上所述,资产监测服务122可以充当资源索引的集中式储存库,从而使得另一个控制平面能够使用某一区域的资源索引接管所述区域中的资源管理。当控制平面管理器404检测到触发事件时,在附图标记3处,它可以向控制平面监测服务120发送请求,以识别新的控制平面来接管控制平面406A。
在附图标记4处,控制平面监测服务120可以识别一个或多个次要区域的控制平面,以转移对主要区域资源的管理。例如,在附图标记5处,控制平面监测服务可以识别两个区域中的两个控制平面,以从主要区域400接管资源。如所讨论的,控制平面监测服务120可以使用故障转移层级、用户偏好、距离和/或性能特征来识别备份区域以识别将控制平面管理转移到的备份区域。在附图标记6处,控制监测服务可以指示控制平面管理器将一个或多个主机的管理转移到次要区域中的一个或多个备份控制平面。例如,主机410A和410D可由次要区域402B中的控制平面406C管理,而其余的主机410B、410C、410E和410F可由第N次要区域402C中的控制平面406D管理。在附图标记7处,如上所描述的,主要区域400的资源管理可以转移到新的控制平面。
在一些实施方案中,当确定不同的控制平面为特定区域提供比本地控制平面或不同的远程控制平面改善的性能时,可以触发故障转移。在一些实施方案中,控制平面监测服务可以周期性地检查其他控制平面的潜在性能改善。如所讨论的,控制平面监测服务可以收集由控制平面发布的指示不同远程区域的控制平面的可用性/可扩展性和性能的数据。如果确定不同的远程控制平面提供改善的性能,则所述区域可以自动故障转移到新的远程控制平面。在一些实施方案中,可在故障转移事件之前通知客户并且给予客户取消故障转移的选项。
图6是绘示根据一些实施方案的用于远程控制平面的自动故障转移的方法的操作的流程图。一些或全部操作600(或本文所描述的其他过程,或其变体,和/或其组合)在配置有可执行指令的一个或多个计算机系统的控制下执行,并且通过硬件或其组合实现为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)。代码(例如,以包括可由一个或多个处理器执行的指令的计算机程序的形式)存储在计算机可读存储介质上。计算机可读存储介质是非暂时性的。在一些实施方案中,操作600中的一个或多个(或全部)至少由其他图的父区域管理器118、控制平面监测服务120、资产监测服务122来执行。
操作600包括,在框602处,确定与第一控制平面相关联的故障转移事件已经发生,第一控制平面与提供商网络的第一区域相关联。在一些实施方案中,故障转移事件包括第一控制平面处的电力损失、与第一控制平面的通信损失或第一控制平面的计划维护中的至少一者。
操作600还包括,在框604处,识别与提供商网络的第二区域相关联的第二控制平面。在一些实施方案中,提供商网络的第一区域包括本地控制平面,并且第二控制平面是提供商网络的第二区域中的远程控制平面。在一些实施方案中,提供商网络的第一区域是提供商网络的第三区域的子区域,提供商网络的第三区域包括第一控制平面,并且其中第二控制平面是提供商网络的第二区域中的远程控制平面。
在一些实施方案中,识别与提供商网络的第二区域相关联的第二控制平面还包括从备份层级选择提供商网络的第二区域,所述备份层级包括提供商网络的多个区域的层级树。在一些实施方案中,基于多个区域中的每一个与提供商网络的第一区域的地理距离对备份层级进行排序。在一些实施方案中,提供商网络的多个区域至少基于用户偏好,所述用户偏好包括地理位置和控制平面分布中的至少一者。在一些实施方案中,操作600还可以包括从提供商网络中的多个控制平面接收多个度量,所述度量包括利用率、容量或等待时间中的至少一者,其中至少基于多个度量对备份层级进行加权。
操作600还包括,在框606处,将提供商网络的第一区域从第一控制平面故障转移到第二控制平面,其中第一区域将对第一控制平面的端点的一个或多个引用更新为对第二控制平面的端点的引用。在一些实施方案中,将提供商网络的第一区域从第一控制平面故障转移到第二控制平面还包括从提供商网络的第一区域的资产监测服务获得主机列表,所述主机列表包括提供商网络的第一区域的多个主机,并且将主机列表提供给第二控制平面。
在一些实施方案中,操作600可以包括:由控制平面监测服务接收针对提供商网络的父区域中的远程控制平面的管理提供商网络的子区域的请求,其中提供商网络的子区域不包括至少一些控制平面功能的本地实现;由控制平面监测服务基于提供商网络的第一父区域和提供商网络的子区域之间的地理距离来识别提供商网络的第一父区域;由控制平面监测服务指示子区域连接到第一区域的第一远程控制平面;由控制平面监测服务针对远程控制平面的故障监测第一区域的第一远程控制平面;由控制平面监测服务检测第一远程控制平面的故障;由控制平面监测服务识别提供商网络的第二区域中的第二控制平面;由控制平面监测服务向第二控制平面发送识别子区域的消息;以及由控制平面监测服务指示子区域连接到第一区域的第二控制平面,其中第二控制平面接受来自子区域的连接并且其中子区域将对第一控制平面的端点的一个或多个引用更新为对第二控制平面的端点的引用。
在一些实施方案中,由控制平面监测服务向第二控制平面发送识别子区域的消息的操作还包括:由控制平面监测服务从提供商网络的子区域的资产监测服务获得主机列表,所述主机列表包括提供商网络的子区域中的多个主机;以及向第二控制平面提供主机列表。在一些实施方案中,当至少一个新的主机被添加到子区域时,子区域向资产监测服务发送新的主机列表。
在一些实施方案中,提供商网络的第一区域在提供商网络的第一地理地区中,并且其中提供商网络的第二区域在提供商网络的第二地理地区中,提供商网络的第一区域经由中转网络连接到提供商网络的第二区域。
图7是绘示根据一些实施方案的使用远程控制平面的容量突发的环境的图。如上所述,控制平面可以从提供商网络100的区域和/或地区的数据平面解耦。这对于提供故障转移机制可以是有用的,所述机制使得没有控制平面的区域或经历控制平面中断的区域能够使用不同区域中的控制平面的控制平面服务。另外,区域的控制平面具有有限的容量。也就是说,给定的控制平面可以支持有限数量的数据平面资源。因此,如果某一区域有新的基础设施添加到其数据平面(例如,新的主机、服务器机架、数据中心或其他硬件资源),而所述区域的控制平面底层的基础设施没有扩展,那么添加到数据平面的新的资源就不能被管理。由于控制平面中的容量不足,这将导致数据平面中的未使用的资源。然而,实施方案利用解耦的数据平面和控制平面来使得这些未使用的数据平面资源能够由远程数据平面管理。
如附图标记1示出的,控制平面容量监测器700可以监测多个区域702A-702D中的多个控制平面实例704A-704D的控制平面容量。如上所述,控制平面监测器可以订阅由控制平面的每个实例发布的度量流。第一区域702A可以包括多个硬件资源,包括主机706A-706C。当一组新的硬件资源被添加到第一区域702A时,诸如新的主机706D-706F,如附图标记2示出的,控制平面704A可以确定其处于满负荷状态,并且不能管理新的资源。在一些实施方案中,控制平面704A可以确定容量已经被超过,或可以确定如果新的资源也被管理,则性能将对现有资源产生影响。根据已经被托管的资源的类型、关于那些资源的性能期望的客户偏好和/或其他因素,控制平面704A可以确定需要远程控制平面来管理全部或一些新添加的资源。
在附图标记3处,控制平面704A可以向控制平面容量监测器发送请求以识别控制平面来管理在第一区域702A中添加的全部或一些新的资源。控制平面704A可以提供要由远程控制平面管理的硬件资源的列表。在图7的示例中,这些硬件资源可以包括主机706D-706F。类似于上述控制平面监测服务,控制平面容量监测器可以识别远程控制平面来接管对新资源的管理。例如,控制平面容量监测器可以维护地区102中的其他控制平面的备份层级。在一些实施方案中,每个区域、资源、客户等可以与其自己的备份层级相关联。备份层级可以是备份区域和/或地区的层级树。例如,可以基于例如潜在备份区域和要管理的区域之间的地理距离来为每个潜在备份区域和/或地区分配权重。在一些实施方案中,备份层级可以包括负载平衡逻辑以确保如果若干附近区域都同时超过容量,则它们都不会将它们的过剩容量全部转移到由单个备份区域管理,这可能导致通过所述地区的一连串故障。在一些实施方案中,控制平面容量监测器700可以维护用户备份偏好,所述用户备份偏好可以包括地理、等待时间(或其他性能度量)和/或在确定新的控制平面来管理区域中的过剩容量时要应用的其他要求。例如,客户可能要求将他们的资源限制在特定的国家或国家的地区。客户还可以要求他们的至少一些资源由足够接近的区域来管理,使得等待时间低于阈值。客户也可能有控制平面分布要求,他们不希望他们的全部资源都由同一个控制平面管理。当为区域中的特定客户资源构建备份层级时,可以使用这些偏好,和/或在执行故障转移之前,拒绝或批准使用故障转移层级识别的新的控制平面。
一旦已经识别了备份区域,在附图标记4处,第一区域的控制平面704A可以被通知传送,并且备份区域的控制平面(在此示例中是第N区域702D)可以被通知传送,如附图标记5处示出的。发送到第一区域的控制平面的通知可以包括对备份区域的控制平面的引用,诸如与备份区域相关联的标识符,以及与备份区域的控制平面相关联的一个或多个端点。发送到备份区域的控制平面的通知可以包括对第一区域的控制平面的引用,诸如与第一区域相关联的标识符,以及与第一区域的控制平面相关联的一个或多个端点。发送到备份区域的控制平面的通知还可以包括与第一区域中的要由备份区域的控制平面管理的一个或多个资源相关联的标识符,诸如资源标识符、机架标识符等。在一些实施方案中,可在备份区域被识别之后由第一区域的控制平面提供与要由备份区域管理的资源相关联的标识符。要由备份区域管理的资源可以包括第一区域中的任何硬件资源,包括先前存在的资源、新添加的资源或其任意组合。
在附图标记6处,资源可以连接到远程控制平面704D。根据新的资源是否具有任何区域特定的要求,新的资源可能需要与远程控制平面704D建立新的握手。控制平面管理器708可以更新与新的资源相关联的API和其他控制平面服务的端点,使得进入这些资源的新请求被转发到备份控制平面704D,而不是第一区域的本地控制平面704A。随后,如果控制平面704A被扩展(例如,如果新的资源被添加到支持控制平面704A的基础设施),则对新资源的管理可以被转移回本地控制平面704A。
在一些实施方案中,控制平面容量监测器700可以识别提供商网络的第二地区中的控制平面以从提供商网络的第一区域卸载对一个或多个资源的管理。例如,提供商网络100可以包括不包括任何数据平面容量的控制平面容量的专用地区。这些专用地区可以仅在提供商网络100的其他地区和/或区域中提供对数据平面容量的远程管理。
在一些实施方案中,提供商网络的一个区域中的资源可能与同一区域中的控制平面不具亲和性。例如,当资源被添加到提供商网络的区域时,它可以向控制平面管理器708发送控制平面管理新资源的请求,控制平面管理器可以从控制平面容量监视器请求可用的控制平面。如上所述,控制平面容量监测器可以基于资源和控制平面的地理位置、与控制平面位置相关联的用户偏好等来识别管理资源的控制平面。因此,添加到某一区域的每个新资源都可以与最适合管理新资源的控制平面相匹配,即使所述控制平面位于提供商网络的遥远区域或地区。另外,用于管理资源的控制平面可以基于当前控制平面容量、用户偏好等被周期性地重新分配,以通过最适合执行管理功能的控制平面来优化资源管理。
图8是绘示根据一些实施方案的使用远程控制平面的容量突发的操作的流程图。一些或全部操作800(或本文所描述的其他过程,或其变体,和/或其组合)在配置有可执行指令的一个或多个计算机系统的控制下执行,并且通过硬件或其组合实现为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)。代码(例如,以包括可由一个或多个处理器执行的指令的计算机程序的形式)存储在计算机可读存储介质上。计算机可读存储介质是非暂时性的。在一些实施方案中,操作800中的一个或多个(或全部)由其他图的控制平面容量监测器700、控制平面704A-704D、控制平面管理器708等来执行。
操作800包括,在框802处,确定与提供商网络的第一区域相关联的第一控制平面没有足够的容量来管理第一区域中的多个资源。在一些实施方案中,由于新的资源被添加到第一区域的数据平面而没有添加新的资源到第一控制平面,因此提供商网络的第一区域可能具有不足的容量。
操作800还包括,在框804处,针对提供商网络的第二区域中的第二控制平面发送管理第一区域中的多个资源的至少第一部分的请求,第二控制平面至少基于备份层级来识别。在一些实施方案中,第二区域在提供商网络的第二地区中。在一些实施方案中,提供商网络的第二地区仅包括用于管理提供商网络的远程地区中的主机的控制平面容量。在一些实施方案中,备份层级包括提供商网络的多个区域的层级树。在一些实施方案中,基于所述多个区域中的每一个与所述提供商网络的第一区域的地理距离和用户偏好中的至少一者对所述备份层级进行加权。
操作800还包括,在框806处,将对第一区域中的资源的至少第一部分的管理从第一控制平面更新到第二控制平面,其中对第一控制平面的端点的一个或多个引用被更新为对由第二控制平面管理的资源的至少第一部分的第二控制平面的端点的引用。
在一些实施方案中,操作800还可以包括识别添加到提供商网络的第一区域的多个新资源,所述多个新资源对应于所述多个资源的至少第一部分,并且发送对将由第二控制平面管理的多个新资源中的至少一个资源的至少一个引用。在一些实施方案中,操作800还可以包括针对提供商网络的第三区域中的第三控制平面发送管理第一区域中的资源的至少第二部分的请求,第三控制平面至少基于备份层级来识别。
在一些实施方案中,操作800还可以包括将第二多个资源部署到第一区域,第二多个资源与第一控制平面相关联。在一些实施方案中,操作800还可以包括确定第一控制平面具有足够的容量来管理多个资源,并且将对第一区域中的资源的至少第一部分的管理从第二控制平面更新回第一控制平面。
在一些实施方案中,操作800可以包括:由提供商网络的第一区域的控制平面管理器确定提供商网络的第一区域已经获得多个新的主机;由控制平面管理器确定与提供商网络的第一区域相关联的第一控制平面没有足够的容量来管理多个新的主机;由控制平面管理器向控制平面容量监测器针对提供商网络的第二区域中的第二控制平面发送管理多个新的主机的请求,控制平面容量监测器至少基于提供商网络的第一区域和提供商网络的第二区域之间的地理距离来识别第二控制平面;由控制平面管理器接收对第二控制平面和提供商网络的第二区域的引用;由所述控制平面管理器从所述多个新的主机发送对将由所述第二控制平面管理的至少一个主机的至少一个引用;由控制平面管理器接收连接到第二区域的第二控制平面的指令;以及由控制平面管理器将对第一控制平面的端点的一个或多个引用更新为对来自由第二控制平面管理的多个新的主机的至少一个主机的第二控制平面的端点的引用。
在一些实施方案中,控制平面容量监测器接收由与提供商网络的多个区域相关联的多个控制平面发布的度量,所述度量至少包括多个控制平面中的每一个的可用容量。在一些实施方案中,提供商网络的第二区域在提供商网络的第二地区中,提供商网络的第二区域仅包括用于管理提供商网络的遥远地区中的主机的控制平面容量。
在一些实施方案中,第一区域中的多个资源包括多个现有资源和已经添加到所述区域的多个新的资源,其中多个资源的至少第一部分对应于来自多个现有资源的一个或多个资源。在一些实施方案中,操作还可以包括:识别添加到提供商网络的第一区域的多个新的资源;识别管理多个新的资源的多个控制平面,每个新的资源将由来自多个控制平面的不同控制平面管理;以及发送对多个新的资源中的每一个的引用,所述引用对应于来自对应于所述资源的多个控制平面的控制平面。
图9绘示了根据一些实施方案的示例提供商网络(或“服务提供商系统”)环境。提供商网络900可以经由一个或多个虚拟化服务910向客户提供资源虚拟化,所述虚拟化服务910允许客户购买、租赁或以其他方式获得虚拟化资源的实例912,包括但不限于在一个或多个数据中心中的一个或多个提供商网络内的装置上实现的计算和存储资源。本地互联网协议(IP)地址916可以与资源实例912相关联;本地IP地址是提供商网络900上的资源实例912的内部网络地址。在一些实施方案中,提供商网络900还可以提供客户可以从提供商900处获得的公共IP地址914和/或公共IP地址范围(例如,互联网协议版本4(IPv4)或互联网协议版本6(IPv6)地址)。
常规上,提供商网络900经由虚拟化服务910可以允许服务提供商的客户(例如,操作包括一个或多个客户装置952的一个或多个客户网络950A-950C的客户)将分配给客户的至少一些公共IP地址914与分配给客户的特定资源实例912动态关联。提供商网络900还可以允许客户将先前映射到分配给客户的一个虚拟化计算资源实例912的公共IP地址914重新映射到也分配给客户的另一个虚拟化计算资源实例912。使用由服务提供商提供的虚拟化计算资源实例912和公共IP地址914,服务提供商的客户(诸如客户网络950A-950C的运营商),可以例如实现客户特定的应用程序,并且在中间网络940(诸如互联网)上呈现客户的应用程序。中间网络940上的其他网络实体920然后可以生成到由客户网络950A-950C发布的目的地公共IP地址914的流量;流量被路由到服务提供商数据中心,并且在数据中心经由网络基板被路由到当前映射到目的地公共IP地址914的虚拟化计算资源实例912的本地IP地址916。类似地,来自虚拟化计算资源实例912的响应流量可以经由网络基板被路由回中间网络940到源实体920。
如本文所使用的,本地IP地址是指例如提供商网络中的资源实例的内部或“私有”网络地址。本地IP地址可在由互联网工程任务组(IETF)征求意见书(RFC)1918保留的和/或由IETF RFC 4193指定的地址格式的地址块内,并且可在提供商网络内可变。源自提供商网络外部的网络流量不直接路由到本地IP地址;相反,流量使用映射到资源实例的本地IP地址的公共IP地址。提供商网络可以包括网络装置或设备,所述网络装置或设备提供网络地址转换(NAT)或类似功能以执行从公共IP地址到本地IP地址的映射,反之亦然。
公共IP地址是由服务提供商或客户分配给资源实例的互联网可变网络地址。路由到公共IP地址的流量被转换,例如经由1:1NAT,并且被转发到资源实例的相应本地IP地址。
一些公共IP地址可由提供商网络基础设施分配给特定的资源实例;这些公共IP地址可以称为标准公共IP地址,或简称为标准IP地址。在一些实施方案中,标准IP地址到资源实例的本地IP地址的映射是全部资源实例类型的默认启动配置。
至少一些公共IP地址可以被分配给提供商网络900的客户或由提供商网络900的客户获得;然后,客户可以将其分配的公共IP地址分配给被分配给所述客户的特定资源实例。这些公共IP地址可以称为客户公共IP地址,或简称为客户IP地址。不同于在标准IP地址的情况下由提供商网络900分配给资源实例,客户IP地址可由客户(例如经由服务提供商提供的API)分配给资源实例。与标准IP地址不同,客户IP地址被分配给客户账户,并且可以在必要时或根据需要由相应的客户重新映射到其他资源实例。客户的IP地址与客户的账户相关联,而不是与特定的资源实例相关联,并且客户控制所述IP地址,直到客户选择释放它。不同于常规的静态IP地址,客户IP地址允许客户通过将客户的公共IP地址重新映射到与客户账户相关联的任何资源实例来屏蔽资源实例或可用性区故障。例如,客户IP地址使客户能够通过将客户IP地址重新映射到替换资源实例来解决客户资源实例或软件的问题。
图10是根据一些实施方案的向客户提供存储服务和硬件虚拟化服务的示例提供商网络的框图。硬件虚拟化服务1020向客户提供多个计算资源1024(例如,VM)。例如,计算资源1024可以被出租或租借给提供商网络1000的客户(例如,实现客户网络1050的客户)。每个计算资源1024可以具有一个或多个本地IP地址。提供商网络1000可以被配置为将数据包从计算资源1024的本地IP地址路由到公共互联网目的地,并且从公共互联网源路由到计算资源1024的本地IP地址。
提供商网络1000可以向客户网络1050(例如经由本地网络1056耦合到中间网络1040)提供经由耦合到中间网络1040和提供商网络1000的硬件虚拟化服务1020实现虚拟计算系统1092的能力。在一些实施方案中,硬件虚拟化服务1020可以提供一个或多个API1002(例如网络服务接口),经由所述一个或多个API 1002,客户网络1050可以访问由硬件虚拟化服务1020提供的功能,例如经由控制台1094(例如,基于Web的应用程序、独立应用程序、移动应用程序等)。在一些实施方案中,在提供商网络1000处,客户网络1050处的每个虚拟计算系统1092可以对应于出租、租借或以其他方式提供给客户网络1050的计算资源1024。
从虚拟计算系统1092和/或另一个客户装置1090的实例(例如,经由控制台1094),客户可以例如经由一个或多个API 1002访问存储服务1010的功能,以访问来自由提供商网络1000提供的虚拟数据存储1016(例如,文件夹或“桶”、虚拟化卷、数据库等)的存储资源1018A-1018N的数据并且将数据存储到存储资源1018A-1018N。在一些实施方案中,可在客户网络1050处提供虚拟化数据存储网关(未示出),所述虚拟化数据存储网关可以本地高速缓存至少一些数据(例如频繁访问的或关键的数据),并且可以经由一个或多个通信信道与存储服务1010通信,以从本地高速缓存上传新的或修改的数据,使得维护数据的主要存储(虚拟化数据存储1016)。在一些实施方案中,经由虚拟计算系统1092和/或在另一个客户装置1090上,用户可以经由充当存储虚拟化服务的存储服务1010来安装和访问虚拟数据存储1016卷,并且这些卷可呈现给用户作为本地(虚拟化)存储1098。
尽管在图10中未示出,但是也可以经由API 1002从提供商网络1000内的资源实例访问虚拟化服务。例如,客户、设备服务提供商或其他实体可以经由API 1002从提供商网络1000上的相应虚拟网络内访问虚拟化服务,以请求分配虚拟网络内或另一个虚拟网络内的一个或多个资源实例。
说明性系统
在一些实施方案中,实现如本文所描述的用于具有自动故障转移的远程控制平面的部分或全部技术的系统可以包括通用计算机系统,所述通用计算机系统包括或被配置为访问一个或多个计算机可访问介质,诸如图11所示的计算机系统1100。在所示实施方案中,计算机系统1100包括一个或多个处理器1110,所述一个或多个处理器1110经由输入/输出(I/O)接口1130耦合到系统存储器1120。计算机系统1100还包括耦合到I/O接口1130的网络接口1140。尽管图11将计算机系统1100示为单个计算装置,但是在各种实施方案中,计算机系统1100可以包括一个计算装置或任意数量的计算装置,所述任意数量的计算装置被配置为作为单个计算机系统1100一起工作。
在各种实施方案中,计算机系统1100可以是包括一个处理器1110的单处理器系统,或包括若干处理器1110(例如,两个、四个、八个或其他合适的数量)的多处理器系统。处理器1110可以是能够执行指令的任何合适的处理器。例如,在多种实施方案中,处理器1110可以是实现多种指令集架构(ISA)中的任一种的通用或嵌入式处理器,诸如x86、ARM、PowerPC、SPARC或MIPS ISA,或任何其他合适的ISA。在多处理器系统中,处理器1110中的每一个通常可以但不必实现相同的ISA。
系统存储器1120可以存储处理器1110可访问的指令和数据。在各种实施方案中,系统存储器1120可以使用任何合适的存储器技术来实现,诸如随机存取存储器(RAM)、静态RAM(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器或任何其他类型的存储器。在所示实施方案中,实现一个或多个期望功能的程序指令和数据,诸如上述的那些方法、技术和数据,被示为作为代码1125和数据1126存储在系统存储器1120内。
在一个实施方案中,I/O接口1130可以被配置为协调处理器1110、系统存储器1120和装置中的任何外围装置(包括网络接口1140或其他外围接口)之间的I/O流量。在一些实施方案中,I/O接口1130可以执行任何必要的协议、时序或其他数据转换以将来自一个部件(例如,系统存储器1120)的数据信号转换成适合由另一个部件(例如,处理器1110)使用的格式。在一些实施方案中,I/O接口1130可以包括对通过各种类型的外围总线附接的装置的支持,诸如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变体。在一些实施方案中,I/O接口1130的功能可以被分成两个或更多个单独的部件,例如诸如北桥和南桥。此外,在一些实施方案中,I/O接口1130的一些或全部功能(诸如到系统存储器1120的接口)可以直接结合到处理器1110中。
网络接口1140可以被配置为允许在计算机系统1100和附接到一个或多个网络1150的其他装置1160(例如,诸如如图1所示的其他计算机系统或装置)之间交换数据。在各种实施方案中,网络接口1140可以支持经由任何合适的有线或无线通用数据网络(例如,诸如以太网类型)的通信。另外,网络接口1140可以支持经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络)、经由存储区域网络(SAN)(诸如光纤通道SAN)或经由I/O任何其他合适类型的网络和/或协议的通信。
在一些实施方案中,计算机系统1100包括一个或多个卸载卡1170(包括一个或多个处理器1175,并且可能包括一个或多个网络接口1140),所述一个或多个卸载卡1170使用I/O接口1130(例如,实现外围组件互连高速(PCI-E)标准版本的总线,或诸如快速路径互连(QPI)或超路径互连(UPI)的另一个互连)来连接。例如,在一些实施方案中,计算机系统1100可以充当托管计算实例的主机电子装置(例如,作为硬件虚拟化服务的一部分操作),并且一个或多个卸载卡1170执行虚拟化管理器,所述虚拟化管理器可以管理在主机电子装置上执行的计算实例。作为示例,在一些实施方案中,卸载卡1170可以执行计算实例管理操作,诸如暂停和/或取消暂停计算实例、启动和/或终止计算实例、执行存储器传送/复制操作等。在一些实施方案中,这些管理操作可由卸载卡1170协同由计算机系统1100的其他处理器1110A-1110N执行的管理程序来执行(例如,根据来自管理程序的请求)。然而,在一些实施方案中,由卸载卡1170实现的虚拟化管理器可以适应来自其他实体(例如,来自计算实例本身)的请求,并且可以不与任何单独的管理程序协调(或服务)。
在一些实施方案中,系统存储器1120可以是被配置为存储如上所描述的程序指令和数据的计算机可访问介质的一个实施方案。然而,在其他实施方案中,可在不同类型的计算机可访问介质上接收、发送或存储程序指令和/或数据。通常来说,计算机可访问介质可以包括非暂时性存储介质或存储器介质,诸如磁性或光学介质,例如经由I/O接口1130耦合到计算机系统1100的磁盘或DVD/CD。非暂时性计算机可访问存储介质还可以包括任何易失性或非易失性介质诸如RAM(例如,SDRAM、双倍数据速率(DDR)SDRAM、SRAM等)、只读存储器(ROM)等),所述任何易失性或非易失性介质可以作为系统存储器1120或另一种类型的存储器包括在计算机系统1100的一些实施方案中。此外,计算机可访问介质可以包括经由诸如网络和/或无线链路之类的通信介质(诸如可以经由网络接口1140实现)传送的传输介质或信号,例如诸如电信号、电磁信号或数字信号。
在前面的描述中,描述了各种实施方案。出于解释的目的,阐述了具体的配置和细节以便提供对实施方案的透彻理解。然而,对于本领域技术人员来说显而易见的是,实施方案可在没有具体细节的情况下实践。此外,为了不模糊所描述的实施方案,可以省略或简化众所周知的特征。
加括号的文本和带有虚线边框的块(例如,大连接号、小连接号、点划线和点)在本文用于说明向一些实施方案添加另外的特征的可选操作。然而,此类符号不应被认为意味着这些是仅有的选项或可选操作,和/或在某些实施方案中,具有实心边界的块不是可选的。
带有后缀字母的参考附图标记(例如,104A-104C、110A-110C、112A-112C、114A-114F、402A-402C、406A-406D、410A-410F、702A-702D、704A-704D、706A-706F、1018A-1018N等)可以用于指示在各种实施方案中可以有一个或多个被引用实体的实例,并且当有多个实例时,每个实例不需要相同,而是可以共享一些通常特质或以共同的方式起作用。此外,除非有相反的明确指示,所使用的特定后缀并不意味着存在特定数量的实体。因此,在各种实施方案中,使用相同或不同后缀字母的两个实体可以具有或可以不具有相同数量的实例。
对“一个实施方案”、“实施方案”、“示例实施方案”等的引用指示所描述的实施方案可以包括特定的特征、结构或特性,但是每个实施方案可以不必包括特定的特征、结构或特性。而且,此类短语不必指同一实施方案。此外,当结合实施方案描述特定特征、结构或特性时,无论是否明确描述,都认为结合其他实施方案影响此类特征、结构或特性在本领域技术人员的知识范围内。
而且,在上述各种实施方案中,除非特别指出,否则诸如短语“A、B或C中的至少一者”的析取语言应理解为表示A、B或C或其任意组合(例如,A、B和/或C)。因此,析取语言不意图也不应理解为暗示给定的实施方案需要A中的至少一个、B中的至少一个或C中的至少一个各自存在。
所公开的技术的至少一些实施方案可以根据以下条款进行描述:
1.一种计算机实现的方法,其包括:
由控制平面监测服务接收针对提供商网络的父区域中的远程控制平面管理提供商网络的子区域的请求,其中提供商网络的子区域不包括至少一些控制平面功能的本地实现;
由控制平面监测服务基于提供商网络的第一父区域和提供商网络的子区域之间的地理距离来识别提供商网络的第一父区域;
由控制平面监测服务指示子区域连接到第一区域的第一远程控制平面;
由控制平面监测服务针对远程控制平面的故障监测第一区域的第一远程控制平面;
由控制平面监测服务检测第一远程控制平面的故障;
由控制平面监测服务识别提供商网络的第二区域中的第二控制平面;
由控制平面监测服务向第二控制平面发送识别子区域的消息;以及
由控制平面监测服务指示子区域连接到第一区域的第二控制平面,其中第二控制平面接受来自子区域的连接并且其中子区域将对第一控制平面的端点的一个或多个引用更新为对第二控制平面的端点的引用。
2.如条款1所述的计算机实现的方法,其中由所述控制平面监测服务向所述第二控制平面发送识别所述子区域的消息,其还包括:
由控制平面监测服务从提供商网络的子区域的资产监测服务获得主机列表,所述主机列表包括提供商网络的子区域中的多个主机;以及
向所述第二控制平面提供所述主机列表。
3.如条款2所述的计算机实现的方法,其中当至少一个新的主机被添加到子区域时,子区域向资产监测服务发送新的主机列表。
4.一种计算机实现的方法,其包括:
确定与第一控制平面相关联的故障转移事件已经发生,所述第一控制平面与提供商网络的第一区域相关联;
识别与所述提供商网络的第二区域相关联的第二控制平面;以及
将所述提供商网络的所述第一区域从所述第一控制平面故障转移到所述第二控制平面,其中所述第一区域将对所述第一控制平面的端点的一个或多个引用更新为对所述第二控制平面的端点的引用。
5.如条款4所述的计算机实现的方法,其中提供商网络的第一区域包括本地控制平面,并且第二控制平面是提供商网络的第二区域中的远程控制平面。
6.如条款4或5中任一项所述的计算机实现的方法,其中所述提供商网络的第一区域是所述提供商网络的第三区域的子区域,所述提供商网络的第三区域包括所述第一控制平面,并且其中所述第二控制平面是所述提供商网络的第二区域中的远程控制平面。
7.如条款4至6中任一项所述的计算机实现的方法,其中识别与所述提供商网络的第二区域相关联的第二控制平面还包括:
从备份层级选择所述提供商网络的所述第二区域,所述备份层级包括所述提供商网络的多个区域的层级树。
8.如条款7所述的计算机实现的方法,其中所述备份层级基于所述多个区域中的每一个距所述提供商网络的第一区域的地理距离而被排序。
9.如条款7所述的计算机实现的方法,其中提供商网络的多个区域至少基于用户偏好,所述用户偏好包括地理位置和控制平面分布中的至少一者。
10.如条款7所述的计算机实现的方法,其还包括:
从所述提供商网络中的多个控制平面接收多个度量,所述度量包括利用率、容量或等待时间中的至少一者;并且
其中所述备份层级至少基于所述多个度量进行加权。
11.如条款4至10中任一项所述的计算机实现的方法,其中将提供商网络的第一区域从第一控制平面故障转移到第二控制平面还包括:
从所述提供商网络的所述第一区域的资产监测服务获得主机列表,所述主机列表包括所述提供商网络的所述第一区域中的多个主机;以及
向所述第二控制平面提供所述主机列表。
12.如条款4至11中任一项所述的计算机实现的方法,其中所述故障转移事件包括所述第一控制平面处的断电、与所述第一控制平面的通信丢失或所述第一控制平面的计划维护中的至少一者。
13.如条款4至12中任一项所述的计算机实现的方法,其中提供商网络的第一区域在提供商网络的第一地理地区中,并且其中提供商网络的第二区域在提供商网络的第二地理地区中,提供商网络的第一区域经由中转网络连接到提供商网络的第二区域。
14.一种系统,其包括:
提供商网络的第一区域,其由第一一个或多个电子装置实现,所述第一区域包括多个资源;以及
控制平面监测服务,其由第二一个或多个电子装置实现,所述控制平面监测服务包括指令,所述指令在执行时使得所述控制平面监测服务:
确定与第一控制平面相关联的故障转移事件已经发生,所述第一控制平面与提供商网络的第一区域相关联;
识别与所述提供商网络的第二区域相关联的第二控制平面;以及
将所述提供商网络的所述第一区域从所述第一控制平面故障转移到所述第二控制平面,其中所述第一区域将对所述第一控制平面的端点的一个或多个引用更新为对所述第二控制平面的端点的引用。
15.如条款14所述的系统,其中提供商网络的第一区域包括本地控制平面,并且第二控制平面是提供商网络的第二区域中的远程控制平面。
16.如条款14或15中任一项所述的系统,其中提供商网络的第一区域是提供商网络的第三区域的子区域,提供商网络的第三区域包括第一控制平面,并且其中第二控制平面是提供商网络的第二区域中的远程控制平面。
17.如条款14至16中任一项所述的系统,其中用于识别与提供商网络的第二区域相关联的第二控制平面的指令在被执行时还使得控制平面监测服务:
从备份层级选择所述提供商网络的所述第二区域,所述备份层级包括所述提供商网络的多个区域的层级树。
18.如条款17所述的系统,其中所述备份层级基于所述多个区域中的每一个距所述提供商网络的第一区域的地理距离而被排序。
19.如条款17所述的系统,其中提供商网络的多个区域至少基于用户偏好,所述用户偏好包括地理位置和控制平面分布中的至少一者。
20.如条款17所述的系统,其中所述指令在被执行时还使得控制平面监测服务:
从提供商网络中的多个控制平面接收多个度量,所述度量包括利用率、容量或等待时间中的至少一者;并且
其中所述备份层级至少基于所述多个度量进行加权。
21.一种计算机实现的方法,其包括:
由提供商网络的第一区域的控制平面管理器确定提供商网络的第一区域已经获得多个新的主机;
由控制平面管理器确定与提供商网络的第一区域相关联的第一控制平面没有足够的容量来管理多个新的主机;
由控制平面管理器向控制平面容量监测器针对提供商网络的第二区域中的第二控制平面发送管理多个新的主机的请求,控制平面容量监测器至少基于提供商网络的第一区域和提供商网络的第二区域之间的地理距离来识别第二控制平面;
由控制平面管理器接收对第二控制平面和提供商网络的第二区域的引用;
由所述控制平面管理器从所述多个新的主机发送对将由所述第二控制平面管理的至少一个主机的至少一个引用;
由控制平面管理器接收连接到第二区域的第二控制平面的指令;以及
由控制平面管理器将对第一控制平面的端点的一个或多个引用更新为对来自由第二控制平面管理的多个新的主机的至少一个主机的第二控制平面的端点的引用。
22.如条款21所述的计算机实现的方法,其中所述控制平面容量监测器接收由与所述提供商网络的多个区域相关联的多个控制平面发布的度量,所述度量至少包括所述多个控制平面中的每一个的可用容量。
23.如条款21或22中任一项所述的计算机实现的方法,其中提供商网络的第二区域在提供商网络的第二地区中,提供商网络的第二区域仅包括用于管理提供商网络的远程地区中的主机的控制平面容量。
24.一种计算机实现的方法,其包括:
确定与提供商网络的第一区域相关联的第一控制平面没有足够的容量来管理第一区域中的多个资源;
针对所述提供商网络的第二区域中的第二控制平面发送管理所述第一区域中的所述多个资源的至少第一部分的请求,所述第二控制平面至少基于备份层级来识别;以及
将对第一区域中的资源的至少第一部分的管理从第一控制平面更新到第二控制平面,其中对第一控制平面的端点的一个或多个引用被更新为对由第二控制平面管理的资源的至少第一部分的第二控制平面的端点的引用。
25.如条款24所述的计算机实现的方法,其还包括:
识别添加到提供商网络的第一区域的多个新的资源,所述多个新的资源对应于所述多个资源的至少第一部分;以及
发送对来自要由第二控制平面管理的多个新的资源的至少一个资源的至少一个引用。
26.如条款25所述的计算机实现的方法,其还包括:
针对所述提供商网络的第三区域中的第三控制平面发送管理所述第一区域中的资源的至少第二部分的请求,所述第三控制平面至少基于所述备份层级来识别。
27.如条款24至26中任一项所述的计算机实现的方法,其中第一区域中的多个资源包括多个现有资源和已经添加到所述区域的多个新的资源,其中多个资源的至少第一部分对应于来自多个现有资源的一个或多个资源。
28.如条款24至27中任一项所述的计算机实现的方法,其还包括:
识别添加到提供商网络的第一区域的多个新的资源;
识别多个控制平面来管理多个新的资源,每个新的资源由不同于多个控制平面的控制平面来管理;以及
发送对多个新的资源中的每一个的引用,所述引用对应于来自对应于所述资源的多个控制平面的控制平面。
29.如条款24至28中任一项所述的计算机实现的方法,其中所述备份层级包括提供商网络的多个区域的层级树。
30.如条款29所述的计算机实现的方法,其中所述备份层级基于所述多个区域中的每一个距所述提供商网络的第一区域的地理距离和用户偏好中的至少一者进行加权。
31.如条款24至30中任一项所述的计算机实现的方法,其还包括:
将第二多个资源部署到第一区域,第二多个资源与第一控制平面相关联。
32.如条款31所述的计算机实现的方法,其还包括:
确定第一控制平面具有足够的容量来管理多个资源;以及
将对第一区域中的至少第一部分资源的管理从第二控制平面更新回第一控制平面。
33.如条款24至32中任一项所述的计算机实现的方法,其中第二区域在提供商网络的第二地区中。
34.如条款33所述的计算机实现的方法,其中提供商网络的第二地区仅包括用于管理提供商网络的远程地区中的主机的控制平面容量。
35.一种系统,其包括:
提供商网络的第一区域,其由第一一个或多个电子装置实现,所述第一区域包括多个资源;以及
控制平面管理器,其由第二个一个或多个电子装置实现,所述控制平面管理器包括指令,所述指令在执行时使得控制平面管理器:
确定与提供商网络的第一区域相关联的第一控制平面没有足够的容量来管理第一区域中的多个资源;
针对所述提供商网络的第二区域中的第二控制平面发送管理所述第一区域中的所述多个资源的至少第一部分的请求,所述第二控制平面至少基于备份层级来识别;以及
将对第一区域中的资源的至少第一部分的管理从第一控制平面更新到第二控制平面,其中对第一控制平面的端点的一个或多个引用被更新为对由第二控制平面管理的资源的至少第一部分的第二控制平面的端点的引用。
36.如条款35所述的系统,其中所述指令在被执行时还使得所述控制平面管理器:
识别添加到提供商网络的第一区域的多个新的资源;以及
发送对要由第二控制平面管理的多个新的资源中的至少一个资源的至少一个引用。
37.如条款36所述的系统,其中所述指令在被执行时还使得所述控制平面管理器:
针对所述提供商网络的第三区域中的第三控制平面发送管理所述第一区域中的资源的至少第二部分的请求,所述第三控制平面至少基于所述备份层级来识别。
38.如条款35至37中任一项所述的系统,其中所述备份层级包括提供商网络的多个区域的层级树。
39.如条款38所述的系统,其中所述备份层级基于所述多个区域中的每一个距所述提供商网络的第一区域的地理距离和用户偏好中的至少一者进行加权。
40.如条款35至39中任一项所述的系统,其中所述指令在被执行时还使得所述控制平面管理器:
将第二多个资源部署到第一区域,第二多个资源与第一控制平面相关联。
因此,说明书和附图被认为是说明性的,而不是限制性的。然而,将会显而易见的是,在不脱离权利要求中阐述的本公开的更广泛的精神和范围的情况下,可以对其进行各种修改和变化。

Claims (40)

1.一种计算机实现的方法,其包括:
由控制平面监测服务接收针对提供商网络的父区域中的远程控制平面管理所述提供商网络的子区域的请求,其中所述提供商网络的所述子区域不包括至少一些控制平面功能的本地实现;
由所述控制平面监测服务基于所述提供商网络的第一父区域和所述提供商网络的所述子区域之间的地理距离来识别所述提供商网络的所述第一父区域;
由所述控制平面监测服务指示所述子区域连接到所述第一父区域的第一远程控制平面;
由所述控制平面监测服务针对所述第一远程控制平面的故障监测所述第一父区域的所述第一远程控制平面;
由所述控制平面监测服务检测所述第一远程控制平面的所述故障;
由所述控制平面监测服务识别所述提供商网络的第二父区域中的第二控制平面;
由所述控制平面监测服务向所述第二控制平面发送识别所述子区域的消息;以及
由所述控制平面监测服务指示所述子区域连接到所述第二父区域的所述第二控制平面,其中所述第二控制平面接受来自所述子区域的连接,并且其中所述子区域将对所述第一远程控制平面的端点的一个或多个引用更新为对所述第二控制平面的端点的引用。
2.如权利要求1所述的计算机实现的方法,其中由所述控制平面监测服务向所述第二控制平面发送识别所述子区域的消息还包括:
由所述控制平面监测服务从所述提供商网络的所述子区域的资产监测服务获得主机列表,所述主机列表包括所述提供商网络的所述子区域中的多个主机;以及
向所述第二控制平面提供所述主机列表。
3.如权利要求2所述的计算机实现的方法,其中当至少一个新的主机被添加到所述子区域时,所述子区域向所述资产监测服务发送新的主机列表。
4.一种计算机实现的方法,其包括:
确定与第一控制平面相关联的故障转移事件已经发生,所述第一控制平面与提供商网络的第一子区域相关联,所述提供商网络的所述第一子区域包括数据平面,其中所述提供商网络的所述第一子区域不包括至少一些控制平面功能的本地实现;
识别所述提供商网络的第二区域中的第二远程控制平面以管理所述提供商网络的所述第一子区域中的所述数据平面,所述提供商网络的所述第二区域与所述提供商网络的所述第一子区域在地理上不同;以及
将所述提供商网络的所述第一子区域从所述第一控制平面对所述第一子区域中的所述数据平面的管理故障转移到所述第二远程控制平面对所述第一子区域中的所述数据平面的管理,其中所述第一子区域将对所述第一控制平面的端点的一个或多个引用更新为对所述第二远程控制平面的端点的引用。
5.如权利要求4所述的计算机实现的方法,其中所述提供商网络的所述第一子区域包括本地控制平面。
6.如权利要求4所述的计算机实现的方法,其中所述提供商网络的所述第一子区域是所述提供商网络的第三父区域的子区域,所述提供商网络的所述第三父区域包括所述第一控制平面。
7.如权利要求4所述的计算机实现的方法,其中识别与所述提供商网络的所述第二区域相关联的所述第二远程控制平面还包括:
从备份层级选择所述提供商网络的所述第二区域,所述备份层级包括所述提供商网络的多个区域的层级树。
8.如权利要求7所述的计算机实现的方法,其中所述备份层级基于所述多个区域中的每一个区域距所述提供商网络的所述第一子区域的地理距离而被排序。
9.如权利要求7所述的计算机实现的方法,其中所述提供商网络的所述多个区域至少基于用户偏好,所述用户偏好包括地理位置和控制平面分布中的至少一者。
10.如权利要求7所述的计算机实现的方法,其还包括:
从所述提供商网络中的多个控制平面接收多个度量,所述度量包括利用率、容量或等待时间中的至少一者;并且
其中所述备份层级至少基于所述多个度量进行加权。
11.如权利要求4所述的计算机实现的方法,其中将所述提供商网络的所述第一子区域从所述第一控制平面故障转移到所述第二远程控制平面还包括:
从所述提供商网络的所述第一子区域的资产监测服务获得主机列表,所述主机列表包括所述提供商网络的所述第一子区域中的多个主机;以及
向所述第二远程控制平面提供所述主机列表。
12.如权利要求4所述的计算机实现的方法,其中所述故障转移事件包括所述第一控制平面处的断电、与所述第一控制平面的通信丢失或所述第一控制平面的计划维护中的至少一者。
13.如权利要求4所述的计算机实现的方法,其中所述提供商网络的所述第一子区域经由中转网络连接到所述提供商网络的所述第二区域。
14.一种系统,其包括:
第一一个或多个电子装置,用于实现提供商网络的第一子区域,所述第一子区域包括多个资源;以及
第二一个或多个电子装置,用于实现控制平面监测服务,所述控制平面监测服务包括指令,所述指令在执行时使得所述控制平面监测服务:
确定与第一控制平面相关联的故障转移事件已经发生,所述第一控制平面与所述提供商网络的所述第一子区域相关联,所述提供商网络的所述第一子区域包括数据平面,所述第一子区域不包括用于管理所述第一子区域中的所述数据平面的控制平面功能或所述第一子区域仅包括用于管理所述第一子区域中的所述数据平面的有限的控制平面功能;
识别所述提供商网络的第二区域中的第二远程控制平面以管理所述提供商网络的所述第一子区域中的所述数据平面,所述提供商网络的所述第二区域与所述提供商网络的所述第一子区域在地理上不同;以及
将所述提供商网络的所述第一子区域从所述第一控制平面故障转移到所述第二远程控制平面,其中所述第一子区域将对所述第一控制平面的端点的一个或多个引用更新为对所述第二远程控制平面的端点的引用。
15.如权利要求14所述的系统,其中所述提供商网络的所述第一子区域包括本地控制平面。
16.如权利要求14所述的系统,其中所述提供商网络的所述第一子区域是所述提供商网络的第三父区域的子区域,所述提供商网络的所述第三父区域包括所述第一控制平面。
17.如权利要求14所述的系统,其中识别与所述提供商网络的所述第二区域相关联的所述第二远程控制平面的指令在被执行时还使得所述控制平面监测服务:
从备份层级选择所述提供商网络的所述第二区域,所述备份层级包括所述提供商网络的多个区域的层级树。
18.如权利要求17所述的系统,其中所述备份层级基于所述多个区域中的每一个区域距所述提供商网络的所述第一子区域的地理距离而被排序。
19.如权利要求17所述的系统,其中所述提供商网络的所述多个区域至少基于用户偏好,所述用户偏好包括地理位置和控制平面分布中的至少一者。
20.如权利要求17所述的系统,其中所述指令在被执行时还使得所述控制平面监测服务:
从所述提供商网络中的多个控制平面接收多个度量,所述度量包括利用率、容量或等待时间中的至少一者;并且
其中所述备份层级至少基于所述多个度量进行加权。
21.一种计算机实现的方法,其包括:
由提供商网络的第一区域的控制平面管理器确定所述提供商网络的所述第一区域已经获得多个新的主机;
由所述控制平面管理器确定与所述提供商网络的所述第一区域相关联的第一控制平面没有足够的容量来管理所述多个新的主机;
由所述控制平面管理器向控制平面容量监测器发送针对所述提供商网络的第二区域中的第二控制平面管理所述多个新的主机的请求,所述控制平面容量监测器至少基于所述提供商网络的所述第一区域和所述提供商网络的所述第二区域之间的地理距离来识别所述第二控制平面;
由所述控制平面管理器接收对所述第二控制平面和所述提供商网络的所述第二区域的引用;
由所述控制平面管理器发送对来自要由所述第二控制平面管理的所述多个新的主机的至少一个主机的至少一个引用;
由所述控制平面管理器接收连接到所述第二区域的所述第二控制平面的指令;以及
由所述控制平面管理器将对第一控制平面的端点的一个或多个引用更新为对来自由所述第二控制平面管理的所述多个新的主机的所述至少一个主机的所述第二控制平面的端点的引用。
22.如权利要求21所述的计算机实现的方法,其中所述控制平面容量监测器接收由与所述提供商网络的多个区域相关联的多个控制平面发布的度量,所述度量至少包括所述多个控制平面中的每一个的可用容量。
23.如权利要求21所述的计算机实现的方法,其中所述提供商网络的所述第二区域在所述提供商网络的第二地区中,所述提供商网络的所述第二地区仅包括用于管理所述提供商网络的远程地区中的主机的控制平面容量。
24.一种计算机实现的方法,其包括:
确定提供商网络的第一区域已经获得多个新的资源,所述提供商网络的所述第一区域包括第一控制平面,所述第一区域中的所述第一控制平面包括用于管理数据平面资源的应用编程接口端点;
确定所述提供商网络的所述第一区域中的第一控制平面没有足够的容量来管理所述第一区域中的所述多个新的资源;
发送针对所述提供商网络的第二区域中的第二控制平面管理所述第一区域中的所述多个新的资源的请求,所述第二控制平面至少基于备份层级来识别;以及
将对所述第一区域中的所述多个新的资源的管理从由所述第一控制平面管理更新到由所述第二控制平面管理,其中对所述第一控制平面的所述应用编程接口端点的引用被更新为对由所述第二控制平面管理的所述多个新的资源的所述第二控制平面的应用编程接口端点的引用。
25.如权利要求24所述的计算机实现的方法,其中所述多个新的资源是第一多个新的资源,所述方法还包括:
确定所述提供商网络的所述第一区域已经获得第二多个新的资源;以及
发送对来自要由所述第二控制平面管理的所述第二多个新的资源的资源的引用。
26.如权利要求25所述的计算机实现的方法,其还包括:
确定所述提供商网络的所述第一区域中的所述第一控制平面没有足够的容量来管理所述第一区域中的所述第二多个新的资源;以及
发送针对所述提供商网络的第三区域中的第三控制平面管理所述第一区域中的所述第二多个新的资源的请求,所述第三控制平面至少基于所述备份层级来识别。
27.如权利要求24所述的计算机实现的方法,其还包括:
确定所述提供商网络的所述第一区域中的所述第一控制平面没有足够的容量来管理所述第一区域中的多个现有的资源;以及
发送针对所述提供商网络的所述第二区域中的所述第二控制平面管理所述第一区域中的所述多个现有的资源的请求。
28.如权利要求24所述的计算机实现的方法,其中所述多个新的资源是第一多个新的资源,所述方法还包括:
识别添加到所述提供商网络的所述第一区域的第二多个新的资源;
识别多个控制平面来管理所述第二多个新的资源,每个新的资源由不同于所述多个控制平面的控制平面来管理;以及
发送对所述第二多个新的资源中的每一个的引用,所述引用对应于来自所述多个控制平面的、对应于所述资源的控制平面。
29.如权利要求24所述的计算机实现的方法,其中所述备份层级包括所述提供商网络的多个区域的层级树。
30.如权利要求29所述的计算机实现的方法,其中所述备份层级基于所述多个区域中的每一个区域距所述提供商网络的所述第一区域的地理距离和用户偏好中的至少一者进行加权。
31.如权利要求24所述的计算机实现的方法,其还包括:
将第二多个资源部署到第一区域,所述第二多个资源与所述第一控制平面相关联。
32.如权利要求31所述的计算机实现的方法,其还包括:
确定所述第一控制平面具有足够的容量来管理所述第二多个资源;以及
所述第一控制平面管理所述第二多个资源。
33.如权利要求24所述的计算机实现的方法,其中所述第二区域在所述提供商网络的第二地区中。
34.如权利要求33所述的计算机实现的方法,其中所述提供商网络的所述第二地区仅包括用于管理所述提供商网络的远程地区中的主机的控制平面容量。
35.一种系统,其包括:
第一一个或多个电子装置,用于实现提供商网络的第一区域,所述第一区域包括多个资源;以及
第二一个或多个电子装置,用于实现控制平面管理器,所述控制平面管理器包括指令,所述指令在执行时使得所述控制平面管理器:
确定所述提供商网络的第一区域已经获得多个新的资源,所述提供商网络的所述第一区域包括第一控制平面,所述第一区域中的所述第一控制平面包括用于管理数据平面资源的端点;
确定所述提供商网络的第一区域中的第一控制平面没有足够的容量来管理所述第一区域中的所述多个新的资源;
发送针对所述提供商网络的第二区域中的第二控制平面管理所述第一区域中的所述多个新的资源的请求,所述第二控制平面至少基于备份层级来识别;以及
将对所述第一区域中的所述多个新的资源的管理从由所述第一控制平面管理更新到由所述第二控制平面管理,其中对所述第一控制平面的端点的引用被更新为对由所述第二控制平面管理的所述多个新的资源的所述第二控制平面的端点的引用。
36.如权利要求35所述的系统,其中所述指令在被执行时还使得所述控制平面管理器:
将第二多个资源部署到所述第一区域,所述第二多个资源与所述第一控制平面相关联。
37.如权利要求36所述的系统,其中所述多个新的资源是第一多个新的资源,并且其中所述指令在被执行时还使得所述控制平面管理器:
确定所述提供商网络的所述第一区域已经获得第二多个新的资源;以及
发送对来自要由所述第二控制平面管理的所述第二多个新的资源的资源的引用。
38.如权利要求37所述的系统,其中所述指令在被执行时还使得所述控制平面管理器:
确定所述提供商网络的所述第一区域中的所述第一控制平面没有足够的容量来管理所述第一区域中的所述第二多个新的资源;以及
发送针对所述提供商网络的第三区域中的第三控制平面管理所述第一区域中的所述第二多个新的资源的请求,所述第三控制平面至少基于所述备份层级来识别。
39.如权利要求36所述的系统,其中所述备份层级包括所述提供商网络的多个区域的层级树。
40.如权利要求39所述的系统,其中所述备份层级基于所述多个区域中的每一个区域距所述提供商网络的所述第一区域的地理距离和用户偏好中的至少一者进行加权。
CN202080042460.4A 2019-06-24 2020-06-15 具有自动故障转移的远程控制平面 Active CN114008599B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16/450,848 US11431553B2 (en) 2019-06-24 2019-06-24 Remote control planes with automated failover
US16/450,848 2019-06-24
US16/450,854 US11349718B2 (en) 2019-06-24 2019-06-24 Capacity bursting using a remote control plane
US16/450,854 2019-06-24
PCT/US2020/037764 WO2020263611A1 (en) 2019-06-24 2020-06-15 Remote control planes with automated failover

Publications (2)

Publication Number Publication Date
CN114008599A CN114008599A (zh) 2022-02-01
CN114008599B true CN114008599B (zh) 2023-02-17

Family

ID=71452772

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080042460.4A Active CN114008599B (zh) 2019-06-24 2020-06-15 具有自动故障转移的远程控制平面

Country Status (3)

Country Link
EP (1) EP3980892A1 (zh)
CN (1) CN114008599B (zh)
WO (1) WO2020263611A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023235438A1 (en) * 2022-06-01 2023-12-07 Vmware, Inc. Autonomous clusters in a virtualization computing environment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104272288A (zh) * 2012-06-08 2015-01-07 英特尔公司 用于确保物理端口内veb回送的sr-iov故障转移和聚合控制系统
US9424062B1 (en) * 2014-03-24 2016-08-23 Amazon Technologies, Inc. Virtualization infrastructure support
CN106030542A (zh) * 2014-02-19 2016-10-12 第三雷沃通讯有限责任公司 代理服务器故障转移和负载集群

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8676753B2 (en) * 2009-10-26 2014-03-18 Amazon Technologies, Inc. Monitoring of replicated data instances
US9274903B1 (en) * 2013-09-23 2016-03-01 Amazon Technologies, Inc. Disaster recovery service
US10135692B2 (en) * 2015-06-29 2018-11-20 Vmware, Inc. Host management across virtualization management servers
US10157085B2 (en) * 2017-02-17 2018-12-18 Sas Institute Inc. Techniques for decentralized load balancing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104272288A (zh) * 2012-06-08 2015-01-07 英特尔公司 用于确保物理端口内veb回送的sr-iov故障转移和聚合控制系统
CN106030542A (zh) * 2014-02-19 2016-10-12 第三雷沃通讯有限责任公司 代理服务器故障转移和负载集群
US9424062B1 (en) * 2014-03-24 2016-08-23 Amazon Technologies, Inc. Virtualization infrastructure support

Also Published As

Publication number Publication date
CN114008599A (zh) 2022-02-01
WO2020263611A1 (en) 2020-12-30
EP3980892A1 (en) 2022-04-13

Similar Documents

Publication Publication Date Title
US11983082B2 (en) Server clustering in a computing-on-demand system
US10684888B1 (en) Self-organizing server migration to service provider systems
US11831600B2 (en) Domain name system operations implemented using scalable virtual traffic hub
US10742446B2 (en) Interconnecting isolated networks with overlapping address ranges via scalable virtual traffic hubs
EP2936333B1 (en) Providing optimized quality of service to prioritized virtual machines and applications based on quality of shared resources
CA2924655C (en) Client-premise resource control via provider-defined interfaces
US11368407B2 (en) Failover management using availability groups
US9485323B1 (en) Managing pooled client-premise resources via provider-defined interfaces
CN111316242B (zh) 使用动态主机装置实例模型重新配置的提供商网络中的容量管理
US10462009B1 (en) Replicating customers' information technology (IT) infrastructures at service provider networks
US20130179876A1 (en) System and method for providing an enterprise deployment topology
US10673694B2 (en) Private network mirroring
US11263037B2 (en) Virtual machine deployment
US11431553B2 (en) Remote control planes with automated failover
US11461123B1 (en) Dynamic pre-copy and post-copy determination for live migration between cloud regions and edge locations
US11153173B1 (en) Dynamically updating compute node location information in a distributed computing environment
US11106551B1 (en) Compute capacity reservations for disaster recovery scenarios
US11579911B1 (en) Emulated edge locations in cloud-based networks for testing and migrating virtualized resources
US11573839B1 (en) Dynamic scheduling for live migration between cloud regions and edge locations
US11734038B1 (en) Multiple simultaneous volume attachments for live migration between cloud regions and edge locations
US11349718B2 (en) Capacity bursting using a remote control plane
US10951479B1 (en) User controlled fault domains
CN114008599B (zh) 具有自动故障转移的远程控制平面
US10972355B1 (en) Managing local storage devices as a service
CN111488248A (zh) 一种托管私有云系统的控制方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant