CN114365087A - 用于在客户端选择的服务器上配置计算实例的外围设备 - Google Patents

用于在客户端选择的服务器上配置计算实例的外围设备 Download PDF

Info

Publication number
CN114365087A
CN114365087A CN202080061704.3A CN202080061704A CN114365087A CN 114365087 A CN114365087 A CN 114365087A CN 202080061704 A CN202080061704 A CN 202080061704A CN 114365087 A CN114365087 A CN 114365087A
Authority
CN
China
Prior art keywords
network
client
vcs
pvmd
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080061704.3A
Other languages
English (en)
Inventor
A·N·利果里
E·J·布兰德温
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/581,619 external-priority patent/US11520530B2/en
Priority claimed from US16/581,646 external-priority patent/US11064017B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN114365087A publication Critical patent/CN114365087A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

外围设备包括一个或多个处理器和存储程序指令的存储器,所述程序指令在执行时实现虚拟化计算服务的虚拟化卸载组件,其包括存储管理器。卸载组件与服务的控制平面建立网络连接。基于检测到单独机壳中的硬件服务器已链接到外围设备,硬件服务器被呈现为服务的虚拟化主机。卸载组件响应于向控制平面发出的命令启动服务器处的计算实例配置操作,包括由存储管理器启动以允许从计算实例访问逻辑存储设备的至少一个配置操作。

Description

用于在客户端选择的服务器上配置计算实例的外围设备
背景技术
许多公司和其它组织操作计算机网络,所述计算机网络互连许多计算系统以支持其操作,如计算系统被共同定位(例如,作为局部网络的一部分)或替代地定位在多个不同的地理位置中(例如,通过一个或多个私人或公共中间网络连接)。例如,容纳大量互连计算系统的数据中心已经变得司空见惯,如由单个组织和代表单个组织运营的专用数据中心,以及由作为企业的实体运营以向客户提供计算资源的公共数据中心。一些公共数据中心运营商为各种客户拥有的硬件提供网络接入、电力和安全安装设施,而其它公共数据中心运营商提供“全方位服务(full service)”设施,所述全方位服务设施还包含可供所述运营商的客户使用的硬件资源。
用于商品硬件的虚拟化技术的出现已经在管理具有不同需求的许多客户的大规模计算资源方面提供了益处,从而允许多个客户有效且安全地共享各种计算资源。例如,虚拟化技术可以通过向每个用户提供由单个虚拟化主机托管的一个或多个计算实例(例如“客户”虚拟机)来允许单个物理虚拟化主机在多个用户之间共享。每个这样的计算实例可以表示充当不同逻辑计算系统的软件模拟,所述软件模拟向用户提供他们是给定硬件计算资源的唯一运营商的假象,同时还在各种虚拟机之间提供应用隔离和安全性。具现化同一主机上的若干不同计算实例也可以帮助增加数据中心处的总体硬件利用率水平,从而带来更高的投资回报率。
响应于客户端请求,可在一些云计算提供商网络的数据中心处设置针对不同类型的应用(诸如计算密集型应用、存储器密集型应用等)适合的各种计算实例类型。提供商网络的运营商可以选择用于此类计算实例的底层虚拟化服务器。此外,还可以为提供商网络客户端提供依赖于此类提供商网络的虚拟化计算服务诸如使用虚拟计算服务的计算实例具现化数据库实例的一些数据库服务的更高级别的服务。
附图说明
图1图示了根据至少一些实施例的示例系统环境,其中可以采用连接到虚拟化计算服务的底层物理网络的外围设备来使计算实例能够被配置在客户端选择的服务器上。
图2图示了根据至少一些实施例的在虚拟化计算服务处使用映射服务和封装协议的示例,在该虚拟化计算服务处,逻辑网络被配置在底层网络上。
图3图示了根据至少一些实施例的可用于使计算实例能够设置在客户端选择的服务器处的外围虚拟化管理设备的示例元件。
图4图示了根据至少一些实施例的可以在外围虚拟化管理设备处执行的示例虚拟化管理软件组件。
图5图示了根据至少一些实施例的使用主机上管理程序的虚拟化服务器与可以使用外围虚拟化管理设备配置计算实例的客户端选择的硬件服务器之间的示例差异。
图6图示了根据至少一些实施例的在提供商网络数据中心和协同定位设施处的外围虚拟化管理设备的示例使用。
图7图示了根据至少一些实施例的与使用外围虚拟化管理设备的计算实例的配置有关的示例程序交互。
图8是图示根据至少一些实施例的可以在提供商网络处执行以使用连接到外围虚拟化管理设备的客户端选择的服务器来配置计算实例的操作的方面的流程图。
图9示出了根据至少一些实施例的示例性系统环境,在其中可以使用外围设备在提供商网络外部的场所处实现提供商网络的虚拟化计算服务的扩展。
图10示出了根据至少一些实施例的示例扩展流量中间设备,其可以被配置为使控制平面流量能够从提供商网络的数据中心安全地流向部署外围虚拟化管理设备的外部场所。
图11图示了根据至少一些实施例的在运行在各种外围虚拟化管理设备处的扩展管理器之间建立的示例通信通道。
图12图示了根据至少一些实施例的可以使用位于提供商网络外部的相应场所的多个外围虚拟化管理设备来配置的示例地理分布式逻辑网络。
图13示出了根据至少一些实施例的在虚拟化计算服务的扩展资源组处使用附加的提供商网络服务的示例。
图14示出了根据至少一些实施例的涉及使用外围设备配置虚拟化计算服务的扩展资源组的示例性编程交互。
图15是图示根据至少一些实施例的可以被执行以使用外围虚拟化管理设备建立扩展资源组的操作的方面的流程图。
图16是示出根据至少一些实施例的可以被执行以使得能够在其中可能已经在多个场所处分配冲突网络地址的环境中建立多场所逻辑网络的操作的方面的流程图。
图17是示出可以在至少一些实施例中使用的示例计算设备的框图。
尽管本文通过实例的方式针对若干实施例和说明性附图描述了实施例,但是本领域技术人员将认识到,实施例不限于所描述的实施例或附图。应理解的是,附图和对其的详细描述并非旨在将实施例限制于所公开的特定形式,而相反,意图是覆盖落入由所附权利要求限定的范围内的所有修改、等效物和替代方案。本文所使用的标题只是出于组织目的,而不意图用于限制本说明书或权利要求的范围。如在整个本申请中使用的,词语“可以(may)”以允许的意义(即,意指“有可能”),而不是强制意义(即,意指“必须”)使用。类似地,词语“包含(include、including和includes)”意味着包含但不限于。当在权利要求中使用时,术语“或”用作包含性的而不是排他性的或。例如,短语“x、y或z中的至少一个”意指x、y和z中的任何一个,以及它们的任何组合。
具体实施方式
本公开涉及用于使用连接到服务器的外部外围设备在客户端选择的硬件服务器上配置虚拟化计算服务(例如云提供商网络)的计算实例的方法和装置(与在由虚拟计算服务的运营商选择的硬件服务器上设置计算实例的默认做法相反)。外围设备可以位于与客户选择的硬件服务器分开的机壳或壳体内,并且可以独立于客户选择的硬件服务器进行订购和运输。出于各种原因,虚拟化计算服务(VCS)的客户端可能希望在此类服务器上(而不是仅在VCS运营商选择的服务器上)配置计算实例,例如,因为服务器包含为客户的专用应用程序定制的组件(如高端处理器/内核、超大存储设备或定制网络组件),因为软件许可证与客户选择的服务器相关联并且不能轻易转移到VCS运营商拥有的服务器上,等等。但是,通常此类客户端必须从VCS运营商维护的硬件中进行选择。为了便于维护,VCS运营商通常会在其机群中包含大量相同类型的服务器,并因此需要专用硬件的客户端可能无法在其期望硬件上使用VCS的计算实例或其他服务。VCS可以是在云提供商网络或云计算环境处实现的多个网络可访问服务(例如,包括存储服务、数据库服务等)之中。客户端选择的硬件服务器(也称为客户选择的硬件服务器或目标硬件服务器)可以位于这样的提供商网络的数据中心、位于协同定位设施(例如,诸如建筑物或房间之类的位置,其中可以托管一个以上组织的计算相关资源)和/或位于客户端拥有的场所。因此,所公开的技术有利地使VCS服务和资源能够在更广泛的硬件类型(包括否则不会并入VCS机群中的专用硬件)和/或在非传统位置中使用。
在至少一些实施例中可以由虚拟化计算服务的运营商提供的外围设备可以各自包括各种硬件元件(例如,包括处理器/内核、存储器、存储设备、用于电源管理、安全管理的电路等)和共同实现网络和存储虚拟化管理的软件,通过块-设备接口提供对存储卷的访问,并将计算实例合并到隔离的虚拟网络(IVN)或在VCS上为客户端设置的其他逻辑网络中。外围设备可以封装在小型机壳内,该机壳可以安装在工业标准服务器机架的顶部或空插槽内,并且可以使用工业标准组件和连接器连接到硬件服务器和网络。实际上,只要客户端选择的硬件服务器符合广泛使用的外围连接行业标准(例如外围组件互连-快速(PCIe)或通用串行总线(USB)),外围设备中包含的功能可允许在硬件服务器上启动的计算实例获得所有优势(例如,可管理性、安全性、与其他网络可访问服务的连接性等),这些优势可提供给在VCS运营商选择的服务器机群中设置的计算实例。在VCS的运营商选择的服务器上设置的计算实例可以称为默认机群(DF)计算实例,而在VCS的客户端选择的服务器上设置的计算实例可以称为客户端机群(CF)计算实例。
在各种实施例中,VCS可以包括被称为底层网络的物理网络,用于DF计算实例的硬件服务器以及各种其他设备(例如网络中间设备,包括路由器、交换机、网关等)可以连接到该物理网络。利用底层网络作为底层基础设施,逻辑网络可以在这些实施例中代表各种VCS客户端进行配置。例如,可以代表在称为隔离虚拟网络IVN1的逻辑网络内的客户端C1配置一组计算实例(包括虚拟机、允许未虚拟化访问底层服务器的至少一些硬件组件的裸机实例,等等),而可以代表另一个隔离虚拟网络IVN2内的不同客户端C2配置另一组计算实例。IVN可以包括被分派或分配给给定客户端的一系列联网资源(包含计算实例),所述联网资源与为其它被隔离虚拟网络中的其它客户端分配的资源在逻辑上隔离(且默认地不可从其访问)。可以为代表其建立IVN的客户端授予有关用于IVN的资源的网络配置的实质灵活性—例如,用于计算实例的专用IP地址可以由客户端选择而不必考虑其它IVN内的其它资源可能已被指配了同一IP地址的可能性,可以在IVN内建立客户端的选择的子网,安全规则可以由客户端针对相对于IVN的传入和传出业务来设置等。此外,在至少一些实施例中,可以在IVN内设置定制网络端点,以使IVN的计算实例能够与提供商网络的网络可访问服务(例如存储服务、数据库服务、机器学习服务等)进行通信,这使用提供商网络的专用网络路径,而无需遍历或使用公共互联网的链接或设备。在各种实施例中,分配给IVN内的计算实例的网络地址可以不同于分配给运行计算实例的硬件服务器的底层网络地址。在各种实施例中,封装协议和相关映射服务可用于通过下面底层网络的链路和服务器在IVN内和跨IVN传送网络流量的流动(例如,从一个计算实例到另一个计算实例,在VCS外部的客户端设备和计算实例之间,或在计算实例和其他计算网络服务之间)。在各种实施例中,VCS还可以包括一组管理或数据平面组件,其负责诸如供应硬件、监视其他资源、接收和处理来自客户端的实例配置命令等任务。
在至少一些实施例中,用于在客户端选择的服务器处配置计算实例的外围设备可以被称为外围虚拟化管理设备(PVMD)。在各种实施例中,PVMD可以配置为执行软件/固件的不同组合,从而支持虚拟化相关功能的不同组合,这取决于客户端的特定需求,计算实例将在各种客户端选择的硬件服务器上代表该客户端进行设置。例如,在某些情况下,客户可能希望在场所(例如实施VCS的提供商网络的数据中心,或某些类型的协同定位设施)通过与VCS的底层网络的直接物理连接启动它们的计算实例。在此类场所中,PVMD可以通过一根或多根线缆(例如,以太网线缆)物理连接到底层网络,而不需要PVMD和底层网络之间的流量必须流经任何未被VCS运营商管理/控制的网络链路。当在这些类型的场所使用时,可以说PVMD以“直接底层连接”(DSC)模式运行,并且可以在PVMD处执行第一组与虚拟化相关的软件。在各种实施例中,与在以DSC模式连接到PVMD的目标硬件服务器处启动的计算实例有关的配置操作可以由PVMD实施,例如,响应于客户端提交给VCS控制平面的命令。在这样的实施例中,在PVMD处运行的软件可以实现VCS的封装协议,其用于通过底层网络将流量传送进出计算实例。
在其他情况下,客户端可能希望利用PVMD在客户选择的硬件服务器上设置计算实例,这些服务器位于无法直接物理访问VCS底层网络的场所,例如,在客户端拥有的数据中心、客户端组织办公设施等等场所处。虽然一些协同定位设施可以提供对底层网络的直接访问,但在至少一些实施例中其他协同定位设施可能不会,并且后一种协同定位设施也可用于客户端选择的硬件服务器,在这些硬件服务器上运行启用了PVMD的计算实例。实际上,在这种情况下,客户端可能希望在逻辑上将VCS扩展到提供商网络的数据中心之外。当用于此目的时,可以说PVMD在“扩展场所”(EP)模式下运行,并且在至少一些实施例中可以运行包括VCS扩展管理器(EM)的软件。注意,在EP模式下使用时,PVMD还可以运行在DSC模式下运行的所有(或至少大部分)软件。使用所描述的技术,在至少一些实施例中,虚拟化计算服务的客户端可能能够利用位于提供商网络外部的场所的选定硬件设备来托管具有与至少一些可以在提供商网络数据中心设置的计算实例的类型相同的特征和能力的计算实例。
如本领域的技术人员根据本公开将理解的,某些实施例可能能够实现各种优点,包括以下部分或全部优点:(a)使各种虚拟化计算应用程序能够以与硬件不可知和位置无关的方式来实施,例如,使用客户端选择的硬件服务器,同时仍然保留通过使用提供商网络可能实施的操作优点(例如可管理性/监测、与其他提供商网络服务的连接性,等等),(b)减少必须通过长距离例如客户数据中心与提供商网络数据中心之间的链路传输的应用程序数据量和结果,(c)通过将应用程序移动到数据源/目的地附近来将应用程序潜在的大量数据作为输入或作为输出使用,从而改善应用程序的整体延迟和响应能力,以及/或者(d)提高敏感应用程序数据的安全性。在各种实施例中,用于在客户端选择的硬件服务器上启用计算实例的PVMD的设计和实施的指导原则和目标可以包括以下等等:(a)使用符合行业标准的连接技术和协议,(b)利用具有小形状因数的PVMD机壳,使得PVMD机壳具有最小的空间、冷却和其他物理要求,(c)通过限制和彻底记录网络流量来确保客户数据安全,并提供物理机制(例如物理密钥)以确保存储在PVMD的存储设备上的数据不会被盗,(d)为各种提供商网络服务提供一级支持(相当于可能使用位于提供商网络数据中心的资源的支持),(e)保护提供商网络自己的数据中心免受潜在敌对行为者(例如,在安装PVMD的场所运行),和/或(f)即使在网络连接不完善的情况下,在连接到PVMD的服务器上也支持持续履行服务。
根据一些实施例,系统可以包括提供商网络的VCS的控制平面的一个或多个计算设备、由提供商网络的客户端指示的目标硬件服务器(THS)和位于目标硬件服务器外部的物理机壳内的外围设备(例如PVMD)。术语“目标”可以应用于客户端选择的硬件服务器,因为它是由PVMD发起的操作所针对的资源。PVMD可以包括一个或多个处理器和存储程序指令的存储器等等元件。在一些实施例中,处理器和/或存储器可以并入一个或多个SOC(片上系统)中。当在PVMD的一个或多个处理器处或跨PVMD的一个或多个处理器执行时,PVMD的程序指令可以实现一个或多个虚拟化管理卸载组件,在一些实施例中其包括一个或多个存储管理器和一个或多个联网管理器。在一些实施例中,PVMD可以通过第一线缆与VCS的底层网络建立连接,或者检测到这种连接已经建立;因此,在这样的实施例中,PVMD可以在DSC(直接底层连接)模式下操作。在至少一些实施例中,可以使用在附接到底层网络的多个设备处实施的封装协议来实现VCS的一个或多个逻辑网络(例如与之前介绍的那些类似的IVN)之间的连接。在检测到(a)THS的外围卡已通过第二根线缆连接到外围设备的外部外围端口,和(b)THS的系统管理服务处理器已通过第三根线缆连接到外围设备后,在至少一些实施例中,外围设备可以使VCS的控制平面将THS作为客户端可选择的虚拟化服务器呈现给客户端,以运行一个或多个计算实例。因此,在这样的实施例中,THS可以通过适合THS插槽的外围卡(例如,PCIe卡)以及通过THS的系统管理服务处理器(例如,基板管理控制器或BMC)链接到PVMD。在各种实施例中,THS可以仅通过外围设备链接到底层网络;实际上,可由VCS的运营商设计和提供的外围设备可以充当THS(由客户端选择)和底层网络之间的看门人或安全中介。作为使THS能够被呈现为虚拟化服务器而执行的操作的一部分,在至少一些实施例中,VCS底层网络的网络地址(即,从分配给链接到底层网络的虚拟化主机的地址范围中选择的网络地址)可以分配给THS。术语“虚拟化服务器”和“虚拟化主机”在本文中可以同义地使用以指代可以在其上执行或运行VCS的一个或多个计算实例的硬件服务器。
在至少一些实施例中,VCS可以为其客户端提供以多租户模式(其中给定硬件服务器可用于启动和运行几个不同客户端的计算实例)或单租户模式(其中给定的硬件服务器可用于启动和运行不超过一个客户端的计算实例)设置计算实例的能力。单租户选项之一可以包括为客户端分配指定为“专用虚拟化主机”的虚拟化服务器,使客户端能够将虚拟化服务器指定/标识为用于一个或多个计算实例的资源,而无需与其他客户端共享主机,并允许客户端使用基于服务器的软件许可证(例如,每个硬件插槽、每个内核或每个虚拟机许可证)。在一些实施例中,当如上所述将PVMD连接到客户端选择的THS时,PVMD可以使VCS控制平面将THS呈现为这样的专用虚拟化主机。例如,关于新连接的THS的信息可以从PVMD传输到VCS控制平面(例如,通过VCS底层网络),并且VCS控制平面可以将THS添加到其专用虚拟化主机的数据库中,将底层网络地址分配给THS,并将THS包含在专用虚拟化主机的列表中,该列表提供给代表其使用PVMD的客户端。
在各种实施例中,PVMD可以代表客户端在THS发起计算实例的一个或多个配置操作,包括例如启动计算实例、改变网络或其他配置设置、终止实例等。在至少一个实施例中,裸机计算实例可以通过PVMD代表客户端在THS处实例化,从而实现对THS的硬件设备/组件中的至少一些的非虚拟化访问。在一些实施例中,可以通过PVMD在THS处设置多个计算实例。在一个实施例中,单个PVMD可用于在连接到该PVMD的多于一个客户端选择的服务器上设置相应的计算实例。在各种实施例中,可以至少部分地基于使用在PVMD处运行的一个或多个网络管理器执行的操作,在提供商网络的隔离虚拟网络内配置THS的计算实例。例如,此类网络管理器可以存储已分配给在THS处配置的计算实例的网络地址的指示(在虚拟化计算服务处建立的隔离虚拟网络的专用网络地址的范围内),和/或者可以将这样的地址分配给以编程方式附加到这样的计算实例的虚拟网络接口。在一个实施例中,至少部分地基于在PVMD处运行的一个或多个存储管理器执行的操作,THS的计算实例提供了对根卷(和/或其他逻辑存储设备、文件系统等)的访问。例如,在一些实施例中,存储管理器可以使用提供商网络的块-存储服务和/或其他逻辑存储设备、文件系统等来设置、修改或以其他方式配置根卷。在一些实施例中,PVMD可以包括一个或多个持久性存储设备(例如,通过NVME(非易失性存储器快速)接口可访问的设备),根卷的内容和/或从THS的计算实例访问的其他存储对象在该持久性存储设备上可以被存储。
在一些实施例中,PVMD可以通过一个或多个PCIe连接器连接到THS。在其他实施例中,可以使用被配置为将PCIe信号与其他类型的信号复用的连接器(例如将PCIe信号与DisplayPort信号复用的连接器),和/或可以使用USB(通用串行总线)连接器。在一个实施例中,信号中继卡或信号重定时卡(例如PCIe重定时卡或中继卡)可以插入THS的插槽中并通过线缆链接到PVMD。在其他实施例中,可能不需要这样的信号中继卡或重定时卡。
根据至少一个实施例,PVMD的联网管理器可以包括网络接口卡(NIC)仿真器和/或IVN连接管理器。在一些实施例中,VCS的封装协议的封装/解封装操作可以在联网管理器处实施,例如,对于从特定IVN内的客户端机群(CF)计算实例定向到在相同IVN或不同IVN上运行的默认机群(DF)计算实例的数据包。在至少一个实施例中,PVMD的联网管理器可以被配置为记录指向和/或来自CF计算实例的各种类型的网络流量,例如,包括指向提供商网络的内部或外部的DNS服务器的域名服务流量,并通过编程接口将此类日志提供给代表其配置CF计算实例的客户端。VCS可以实现许多编程接口(例如,基于Web的控制台、命令行工具、图形用户界面、应用程序编程接口(API)等),以使客户端能够提交在各个实施例中与启用PVMD的计算实例有关的请求并接收相应的响应。例如,客户端可以提交编程请求以使THS能够通过PVMD托管一个或多个计算实例,并且PVMD可以连接到基板和THS(例如,在提供商网络数据中心或协同定位设施内)以响应此类请求。
在一个实施例中,PVMD可以包括永久存储设备以及相关联的可移动密码存储安全设备(例如物理密钥,可从PVMD机壳的正面访问),其可以与PVMD物理断开/分离。在这样的实施例中,移除密码存储安全设备可能导致持久存储设备的内容不可读/不可写,也就是说,安全设备可能必须物理存在以允许读或写持久存储设备的内容。
根据至少一个实施例,PVMD可以包括一个或多个小形状因数可插拔(SFP)端口。此类端口可用于建立与VCS底层网络和/或其他网络的连接。在一个实施例中,PVMD可以安装在服务器机架(例如也容纳THS的服务器机架)的1-U(一个单元)插槽/托盘中。
在一些实施例中,PVMD可以在扩展场所(EP)模式下使用,即在客户拥有的场所或其他第三方场所,其中不可能将PVMD与VCS基板直接连接(例如,通过一根或多根线缆),如在提供商网络数据中心或一些可在DSC(直接底层连接)模式下运行PVMD的协同定位设施处可能发生的。根据一个这样的实施例,系统可以包括提供商网络的VCS的一个或多个计算设备(位于提供商网络的一个或多个数据中心内),位于该一个或多个数据中心外部的场所的目标硬件服务器(THS),以及位于与THS分开的物理机壳内的场所的PVMD。PVMD可以包括当在PVMD的一个或多个处理器处或跨PVMD的一个或多个处理器执行时实现VCS的扩展管理器(EM)的程序指令。在一些实施例中,EM可以被配置为通过一个或多个安全通道与VCS的一个或多个扩展流量中介(ETI)建立连接。ETI可以在提供商网络数据中心内的一个或多个计算设备处实施。在各种实施例中,ETI可以被配置为针对PVMD所在的外部场所与提供商网络的一个或多个数据中心之间的流量执行安全操作。
在确定THS的外围卡已链接到PVMD(例如,通过PVMD的外部外围端口)之后,在一些实施例中EM可以将VCS的底层网络的特定专用网络地址分配给THS,并导致THS被呈现为VCS的虚拟化主机。在至少一些实施例中,分配给THS的特定专用网络地址也可以分配给ETI之一,从而使ETI能够充当VCS底层网络内的THS的替代物(从联网的角度)。在将公共地址分配给THS和ETI的这种配置中,要从基板内发送到THS的消息(例如,源自默认机群计算实例或来自VCS控制平面的消息)最初可能发送到ETI。然后,消息可以通过安全路径传送到EM,并从EM传送到THS(例如,传送到在THS处启动的计算实例,或传送到在THS处运行的控制平面代理)。响应于在EM处从ETI接收到的关于客户端已向VCS提交编程请求的指示,EM可以使计算实例的一个或多个配置操作在THS处执行(例如,包括启动/终止实例、设置联网属性等)。在至少一个实施例中,来自客户端的编程请求可能已经使用不包括在PVMD和ETI之间建立的一个或多个安全通道的路径提交。在这样的实施例中,安全通道可以被配置为用于从VCS控制平面到PVMD/THS组合的命令的单向路径,并且可能不能用于向VCS控制平面提交命令。然而,在至少一些实施例中,可以在PVMD和VCS数据中心之间的两个方向上允许数据平面消息流量。
从代表其配置和使用PVMD的VCS客户端的角度来看,无论PVMD和THS组合是在远离VCS的数据中心的场所运行,还是在至少一些实施例中在提供商网络数据中心运行,THS都可以支持相同类型的计算实例相关的功能。实际上,当PVMD配置为运行EM时,可以将VCS数据平面扩展到外部场所。例如,在THS启动的计算实例可以配置在VCS的IVN内;也就是说,可以将来自客户端IVN的地址范围的网络地址分配给计算实例。PVMD还可以充当VCS和其他网络(例如,由客户端在外部场所建立的网络)之间的桥梁,执行封装、地址转换和其他操作以使数据包能够流入和流出VCS的计算实例以及在其他网络中配置的设备。
在一些实施例中,在提供商网络外部的场所处的几个THS上运行的各个计算实例可以被配置为相同逻辑网络的一部分——例如,作为相同IVN的一部分,或者甚至是IVN内的相同子网的一部分。在这种情况下,可以在连接到位于场所的THS的各个PVMD之间建立安全的通信通道或隧道,以便网络数据包可以使用场所中可用的物理网络链路和设备在实例之间安全地流动。
根据一些实施例,如前所述,VCS的提供者网络可以实现一个或多个其他服务,例如数据库服务或对象存储服务,这些服务可以使用通过VCS的实例元数据服务(IMDS)分配给计算实例的凭证从VCS的至少一些计算实例访问。这样的IMDS还可以为计算实例提供其他元数据元素,包括由VCS分配给计算实例的唯一标识符、用于计算实例的机器映像的标识符(如果有)、实例的块设备映射信息,等等。在一些实施例中,元数据可以通过只能从实例本身内部访问的本地链路HTTP(超文本传输协议)地址从计算实例访问。在至少一个实施例中,IMDS的代理可以在PVMD上运行,并且这种元数据(包括可用于从计算实例访问其他提供商网络服务的凭证)可以由代理提供。
在一些实施例中,如前所述,可以在IVN内设置专用服务端点(PSE),例如,以使网络流量能够在IVN的计算实例和其他可公开访问的提供商网络服务之间流动,而无需使用公共互联网。在至少一个这样的实施例中,客户端可以定义各种类型的策略并将其与这样的PSE相关联——例如,策略可以指示仅IVN的实例CI1、CI2和CI3被允许使用端点PSE1来访问在存储服务SS1的特定存储对象SO1。在至少一些实施例中,在客户端拥有的场所的THS处设置的计算实例也可以利用这样的PSE和相关联的策略。例如,相对于授予在代表相同客户端的提供商网络的数据中心内建立的计算实例的访问权限,可以针对授予在客户端拥有的场所运行的计算实例的访问权限定义和实施不同的策略。
在至少一个实施例中,可以在各自的外部场所设置多个THS具有PVMD,并且可以配置跨越不同场所的逻辑网络(例如IVN)。因此,在这样的实施例中,计算实例CI1(在外部场所EP1处的PVMD连接的THS THS1处运行)、CI2(在第二外部场所EP2处的PVMD连接的THSTHS2处运行)和CI3(在第二外部场所EP2处的PVMD连接的THS THS2处运行)都可以在同一个IVN内进行配置。如果需要,在一些实施例中,CI1、CI2和CI3可以设置在IVN的相应子网内。
注意,从硬件的角度看,在至少一些实施例中,在外部场所使用的PVMD(其中直接连接到VCS底层网络是不可行的)可能与在提供商网络数据中心或某些类型的协同定位设施(其中PVMD物理连接到底层网络)中使用的PVMD相同。从计算实例配置和使用的特性和功能的角度来看,扩展场所(EP)模式(即,具有扩展管理器)的PVMD可以提供至少一些超出直接底层连接(DSC)模式支持的功能的附加功能。在至少一些实施例中,这样的附加功能可以包括在扩展管理器的帮助下在计算实例(在PVMD的帮助下设置)与在外部场所设置的网络内的非VCS设备之间进行通信的能力。在至少一些实施例中,如果可以使用提供商网络数据中心内的PVMD设置和管理特定类别的VCS计算实例(例如,裸机计算实例),则还可以在数据中心外部的PVMD的帮助下配置相同类别的计算实例。
具有直接底层连接的示例系统环境
图1图示了根据至少一些实施例的示例系统环境,其中可以采用连接到虚拟化计算服务的底层物理网络的外围设备来使计算实例能够被配置在客户端选择的服务器上。如图所示,系统100包括提供商网络101的虚拟化计算服务(VCS)110的资源和工件。在一些实施例中,由诸如公司或公共部门组织的实体建立以提供经由因特网和/或其它网络对一组分布式客户端可访问的一个或多个网络可访问服务(诸如各种类型基于云的计算、存储或分析服务)的网络可以被称为提供商网络(或云提供商网络)。提供商网络有时可能被称为“公共云”环境(有时简称为“云”),它是指网络可访问的大计算资源池(如计算、存储和网络资源、应用程序和服务),其可以是虚拟化的或裸机的。云可以提供对可配置计算资源共享池的便捷、按需网络访问,这些资源可以根据客户命令以编程方式配置和发布。这些资源可以动态供应和重新配置以适应可变负载。
在一些情况下,提供商网络的资源跨多个数据中心分布,多个数据中心又可在众多地理地区间分布(例如,每一区域对应于一个或多个城市、州或国家)。例如,云提供者网络可以形成为多个区域,其中区域是其中云提供商集群数据中心的地理区域。每个区域可以包含通过专用高速网络(例如光纤通信连接)相互连接的两个或更多个可用性区域。可用性区域是指一个隔离的故障领域,其包含一个或多个数据中心设施,这些设施与另一个可用性区域中的设施具有单独的电源、单独的网络和单独的冷却。优选地,一个区域内的可用性区域彼此相距足够远,使得同一自然灾害不应同时使多于一个可用性区域脱机。客户可以通过公共可访问网络(例如,互联网、蜂窝通信网络)连接到云提供者网络的可用性区域。
VCS 110可以实现一个或多个编程接口188,客户端可以使用该接口提交来自客户端设备185(例如膝上型电脑、台式机、移动计算设备等)的编程请求,包括例如启动、终止或重新配置计算实例130例如虚拟机、裸机实例等的请求。裸机实例可以访问运行裸机实例的虚拟化服务器的至少一些非虚拟化硬件组件。可编程接口188可以包含例如一个或多个基于网络的控制台、命令行工具、图形用户接口、API等。VCS客户端提交的请求可以被定向到VCS的一组控制平面设备111,这又可以导致相应的内部请求或命令在VCS的各种其他组件处实现。VCS的控制平面可主要负责管理或配置任务,而数据平面(其可包括在VCS选择的虚拟化服务器125以及客户端选择的硬件服务器175或176上运行的计算实例130)可以主要用于客户端应用程序和数据。
在图1所示的实施例中,可以使用各种硬件服务器来代表VCS客户端设置计算实例130。例如,VCS 110的运营商可以在一个或多个数据中心设置包含各种类别的标准化服务器的机架,例如VCS选择的A型服务器组120和B型服务器组121。VCS选择的虚拟化服务器可在计算能力、内存或存储容量等方面彼此不同——因此,例如,A型虚拟化服务器125A(例如VS 125A或125B)可比B型虚拟化服务器135(例如135A或135B)具有更多或更快的CPU/内核,而B型虚拟化服务器135可比B型虚拟化服务器具有更多的本地存储。响应提交给控制平面的客户端请求,可以在VCS选择的服务器上启动各种类别的计算实例(CI),例如CI 130A、130B、130C、140A、140B或140C。正如底层虚拟化服务器的能力可能从VCS选择的组120到组121不同,在不同组的服务器上启动的计算实例的能力也可能不同——例如,CI 130可以针对计算密集型应用程序进行优化,而CI 140可以针对存储密集型任务进行优化。在一些实施例中,VCS可以默认仅使用单一类型的虚拟化服务器,而不使用A型服务器、B型服务器等。
VCS 110可以包括物理网络115,在所描绘的实施例中虚拟化服务器可以连接到该物理网络。使用底层网络115作为物理基础设施,可以配置一组逻辑网络,例如116A或116B。逻辑网络的实例可以包括在至少一些实施例中代表VCS客户端建立的隔离虚拟网络(IVN)——例如在图1所示的场景中逻辑网络116A可以包括客户端C1的IVN,而逻辑网络116B可以包括客户端C2的IVN。在至少一些实施例中,计算实例130和140可以被分配逻辑网络的网络地址。因此,例如,虚拟化服务器(VS)125A的CI 130A可以配置在逻辑网络116A内,而VS 135B的CI 140B可以配置在逻辑网络116B内。为了使用虚拟化主机连接到的下面底层网络来管理和路由指向或来自逻辑网络的实体(例如计算实例130或140)的网络流量,可以在VCS 110处采用映射服务和/或封装协议,如下面关于图2更详细讨论的。
VCS 110的一些客户端可能希望在硬件服务器上设置和使用计算实例,而不是在所描绘的实施例中在VCS处默认配置的那些。只要客户端选择的硬件服务器是经由VCS提供商外围虚拟化管理设备(PVMD)160(例如所示实施例中的PVMD 160A或160B)连接到VCS底层网络115,VCS 110就可以允许至少一些客户端选择的硬件服务器(例如客户端C1选择的硬件服务器175或客户端C2选择的硬件服务器176)用作虚拟化主机。PVMD 160可以在与在所描绘的实施例中物理连接到的客户端选择的硬件服务器不同的机壳或壳体中实现。在至少一些实施例中,PVMD 160可以由VCS响应于经由编程接口188提交的程序请求而提供。在某些实施例中,PVMD可以合并硬件、固件和/或软件组件,这些组件执行在客户端选择的硬件服务器(例如服务器175或176)处建立计算实例(例如,实例185或195)所需的联网和存储虚拟化任务,同时充当服务器和底层网络115之间的安全中介。客户端选择的硬件服务器175可以在各个维度上与VCS选择的服务器不同——例如,一些客户端选择的硬件服务器可能具有比VCS选择的服务器更大的计算或存储容量,包括一些在VCS选择的服务器上不可用的专门的联网或存储硬件,或者只是具有运行客户端应用程序所需的并且不能转移到VCS选择的服务器的特定于服务器的软件许可证。
根据至少一些实施例,PVMD可以包括当在PVMD的处理器处执行时实现一个或多个联网管理器和一个或多个存储管理器的程序指令。在一个实施例中,给定的PVMD 160可以例如使用相应的连接器或线缆与以下建立连接:(a)VCS底层网络115,(b)客户端选择的目标硬件服务器(例如175或176)的外围卡,其将用于托管至少一个VCS计算实例,以及(c)客户端选择的服务器的系统管理服务处理器(例如,基板管理控制器或BMC)。在一个示例实现方式中,可以使用以太网线缆(例如,插入到PVMD的小形状因数端口(SFP)中)建立到底层网络的连接,到目标硬件服务器的重定时卡的连接可以使用PCIe或USB建立,并且可以使用RJ45连接器建立与系统管理服务处理器的连接。在其他实施例中可以使用其他类型的端口、线缆和/或连接器。在PVMD检测到这三种类型的连接已成功建立之后,在至少一些实施例中,PVMD可以使VCS的控制平面设备111将客户端选择的硬件服务器175或176呈现为可由客户端选择的虚拟化主机以运行计算实例。在一些实施例中,客户端选择的硬件服务器可以呈现为专用虚拟化主机,在该专用虚拟化主机上可以仅设置单个客户端的计算实例。在一个实施例中,给定的VCS客户端C1可以允许其他VCS客户端在连接到PVMD的C1选择的服务器上设置计算实例。
在客户端选择的硬件服务器被指定并呈现为虚拟化主机之后,在所描绘的实施例中可以在服务器上执行各种类型的计算实例配置操作(例如启动或终止计算实例或更改实例的配置设置的操作),例如,响应客户端通过接口188提交的请求。例如,可以借助在PVMD上运行的联网管理器执行的操作,在逻辑网络(例如IVN)内配置计算实例。在图1所示的场景中,计算实例185(例如,裸机实例)可以在客户端选择的硬件服务器175处启动,并被分配逻辑网络116A内的网络地址,正如VCS选择的虚拟化服务器125A的计算实例130A被分配网络逻辑网络116A内的网络地址一样。类似地,计算实例195可以在客户端选择的硬件服务器176处启动,并分配逻辑网络116B内的网络地址,正如VCS选择的虚拟化服务器125B的计算实例130B和虚拟化服务器135B的计算实例140B被分配逻辑网络116B内的相应网络地址一样。在PVMD处运行的存储管理器可以配置和提供对计算实例185或195的根卷和/或其他逻辑存储设备、文件系统等的访问。在至少一个实施例中,这样的根卷和/或其他逻辑存储设备可以使用结合在PVMD机壳内的持久性存储设备(例如NVME设备)来配置。在一个实施例中,PVMD的联网管理器可以包括例如NIC仿真器、IVN连接管理器等。在一些实施例中,PVMD还可以包括物理安全设备,例如物理密钥,如果从PVMD中移除物理密钥,则该密钥使得PVMD的存储设备不可用。
在一些实施例中,客户端选择的硬件服务器和对应的PVMD 160可以放置在提供商网络110的数据中心内,例如,在相同的标准化服务器机架内,例如19英寸宽的机架内。在一种实施方式中,PVMD 160可以占用这种机架内的1-U插槽,而硬件服务器可以占用机架内的一个或多个其他插槽或位置。在一个实施例中,客户端选择的硬件服务器及其PVMD可位于可直接访问VCS底层网络115的协同定位设施内。
在至少一些实施例中,支持计算实例130或140的各种类型的功能,例如记录网络流量流(包括DNS请求和响应)的能力、执行入侵检测和其他类型的安全相关操作的能力等,可能对于计算实例185或195透明地支持。在一些实施例中,可以在PVMD 160处生成实例元数据,例如,包括使计算实例185或195能够向提供者网络110的其他服务发出授权服务请求的凭证,并且将其提供给计算实例。可以为在客户端选择的服务器上启动并提供给客户端的计算实例收集度量(例如,包括资源利用水平、网络数据包计数/丢弃等),就像它们用于CIS 130和140等一样。
逻辑网络的网络流量的示例映射和封装
如前所述,在各种实施例中,VCS可以包括使用底层物理或底层网络配置的逻辑网络,并且PVMD可以连接到这样的底层网络以实现在客户端选择的服务器处设置的计算实例的网络通信。图2图示了根据至少一些实施例的在虚拟化计算服务处使用映射服务和封装协议的示例,在该虚拟化计算服务处,逻辑网络被配置在底层网络上。所描述的场景是为了说明可能必须执行的各种与网络相关的操作,以启用在此类逻辑网络中设置的计算实例之间的流量流;此类操作不限于使用PVMD的环境。IP(互联网协议)版本4地址在图1中以示例的方式使用,尽管在至少一些实施例中可以使用根据诸如IPv6之类的其他协议格式化的地址。注意,图2中所示的特定IP地址被选择作为示例,并且本文描述的基于PVMD的技术不限于任何特定地址或地址范围。
在所描绘的实施例中,示出了三个服务器机架220A、220B和220C,每个服务器机架包括一个或多个由VCS 210使用的虚拟化服务器。机架220A包括虚拟化服务器(VS)225A和VS 225B,机架220B包括VS 225C并且机架220C包括连接到PVMD 260的客户端选择的虚拟化服务器226。PVMD 260可以提供类似于在图1的上下文中讨论的PVMD 160的功能和特征。VS255A、255B和255C可以各自连接到VCS的底层网络,例如,通过连接到配置在底层网络内的架顶式交换机的一根或多根以太网或类似线缆。PVMD 260也可以直接连接到底层网络,例如使用以太网或类似线缆。客户选择的VS 226可以连接到PVMD,例如,通过PCIe或USB连接器,但可能不直接连接到底层网络本身;也就是说,PVMD 260可以充当底层网络和客户端选择的VS 226之间的中介。
在所描绘的实施例中,虚拟化服务器225A、225B、225C和226中的每一个都可以被分配一个底层网络地址,例如VS 225A的192.168.0.3、VS 225B的192.168.0.4、VS 225C的192.168.1.3和客户端选择的虚拟化服务器226的192.168.1.4。在一些实施例中,可以由PVMD 260例如从VCS控制平面获得服务器226的基板地址。
在所描绘的实施例中,可以为在虚拟化服务器处启动的计算实例分配隔离虚拟网络内的网络地址。例如,CI 230A(在VS 225A)、230F(在VS 225C)和230G(在VS 226)都可以配置在同一个IVN 233A内,并分别分配相应的IVN专有地址10.0.0.2、10.0.0.4和10.0.0.3。类似地,在所示示例中,CI 230B和230E可以被分配IVN 233B内的IVN转有地址10.0.0.2和10.0.0.3,并且CI 230C和230D可以被分配IVN 233C内的IVN专有地址10.0.0.4和10.0.0.6。注意,如前所述,IVN内用于分配给CI的专有地址的地址范围可能会相互重叠——因此,CI 230A和230B在不同的IVN(233A和233B)内具有相同的专有地址10.0.0.2。在一些实施例中,至少在默认情况下,IVN内地址可以被认为是专有的,因为它们不被广而告之或在IVN之外被访问。在至少一些实施例中,可以将专有地址分配给虚拟网络接口,并且可以将虚拟网络接口以编程方式附接到或关联到计算实例。相反,在至少一些实施例中,可以将至少一些底层地址分配给物理网络接口卡或NIC(或NIC仿真器),例如在虚拟化服务器或PVMD 260处。
为了将源自一个CI的网络数据包传输到另一个CI,在所示实施例中可能必须考虑三种类型的网络信息:源和目标的IVN专有地址、源和目标所属的IVN、以及底层虚拟化服务器的底层地址。例如,源自CI 230A并以CI 230G为目的地的数据包可以将其源(专有)地址指示为10.0.0.2,将其目标地址指示为10.0.0.3。然而,数据包实际上可能必须从底层网络地址192.168.0.3传输到底层网络地址192.168.1.4才能到达其预期目的地。在所示实施例中,封装协议244(用于将与逻辑网络源/目的地相关联的数据包包封或封装在与底层网络源/目的地相关联的较大“增强”数据包内)和VCS的相关映射服务245可用于实现这种类型的传输。VCS的联网虚拟化管理组件(包括在PVMD 260上运行的联网管理器,以及在VS 225的虚拟化管理硬件/软件堆栈中运行的联网管理器)可以实现协议的封装和解封装操作,并且利用映射服务245来确定包含在这样的传输中的数据包应该被发送到的特定底层地址。
在从CI 230A向CI 230G发送数据包的上述示例中,映射服务245可以向与VS 225A相关联的联网管理器指示对于IVN 233A,目的地专有地址10.0.0.3对应于底层地址192.168.1.4。与VS 225A相关联的联网管理器可以生成封装包,其内包括原始数据包,具有192.168.0.3的底层源地址,192.168.1.4的底层目标地址,并将IVN 233A标识为其中的数据包正在传输的IVN。在接收端,在PVMD 260处运行的联网管理器可以从封装包中提取(解封装)原始数据包,并将其提供给目的地CI 230G。在一些实施例中,为了确保数据包来自可信/有效源,PVMD可以在提取原始数据包之前咨询映射服务以执行反向映射(例如,以识别数据包的来源)。映射服务245因此可以通过防止打开未经验证的数据包来提供安全性。对于反向传输的数据包,PVMD的联网管理器可以咨询映射服务以获得目的地的正确基底地址,并执行所需的封装操作。
外围虚拟化管理设备的示例元件
图3图示了根据至少一些实施例的可用于使计算实例能够设置在客户端选择的服务器处的外围虚拟化管理设备的示例元件。如图所示,在所示实施例中,在功能和特征上类似于图1所示的PVMD 160的外围虚拟化管理设备(PVMD)360可包括一个或多个虚拟化卸载卡320、本地永久存储设备304和内部PCIe卡366、链接到物理密钥395的安全密钥设备365、配电板302和包括一个或多个外部PCIe端口355、一个或多个小形状因数端口(SFP)344和RJ45(已注册插孔45)端口345的数个端口。在所描绘的实施例中,PVMD 360可以被封装在单独的物理机壳333中或装在目标硬件服务器380之外,在该目标硬件服务器上将使用PVMD设置一个或多个计算实例。注意,图3旨在提供PVMD组件的概念性概述;图3所示的组件的相对位置和尺寸可能不对应于至少一些实现方式。
虚拟化卸载卡320可以包括一个或多个处理器/内核370以及一个或多个存储器328。术语“虚拟化卸载”可用于描述卡320,因为在所描绘的实施例中配置和管理在目标硬件服务器380(例如,由VCS的客户端选择的服务器)上运行的计算实例所需的大部分工作可被卸载到PVMD 360,使得服务器的较大部分的计算和其他资源能够用于计算实例和在计算实例处运行的客户端应用程序。在图3所示的实施例中,多个虚拟化管理组件程序(例如,软件和/或固件)的代码和数据322可以存储在存储器328中,并使用处理器/内核370运行。在至少一些实施例中,各个虚拟化管理组件可以使用可用内核/处理器的相应子集来执行——例如,一个内核可以用于嵌入式操作系统,另一个用于网络接口卡仿真器,等等。驻留在存储器328中的代码的至少一部分可以用于管理在目标硬件服务器380处启动的计算实例的联网和存储的各个方面,因此可以称为联网管理器和存储管理器的组合。注意,至少在一些实施例中,代码和/或数据322的至少一部分可以被动态更新或修改,例如,在使用代码和数据在目标硬件服务器处启动一个或多个计算实例之后。
在至少一些实施例中,PVMD可以使用线缆355A和355B以至少两种方式物理地链接到目标硬件服务器。线缆355A可以将安装在目标硬件服务器380中的PCIe重定时器卡385链接到外部PCIe端口355,这又可以通过内部PCIe卡366实现目标硬件服务器和PVMD360的其他组件之间的连接,包括本地永久存储设备304和虚拟化卸载卡320。重定时器卡385可用于改善PCIe信号完整性,以增强跨潜在长线缆355A的系统性能和可靠性。在其他实施例中,可以使用中继器卡代替或附加于重定时器卡。在一个实施例中,既不需要中继器卡也不需要重新定时器卡。线缆355B可用于通过RJ45端口345将PVMD360的RJ45电路连接到目标硬件服务器380的系统管理服务处理器386(例如,基板管理控制器或BMC)。在一些实施方式中可以连接到目标硬件服务器的主板的系统管理服务处理器386可以负责诸如使用传感器监视目标硬件服务器的物理状态、提供这种监视的结果、在需要时重新启动/重新开始目标硬件服务器等等任务。线缆355C可用于将PVMD 360链接到一个或多个网络322(例如,在PVMD位于诸如提供对底层网络的直接访问的提供商网络数据中心之类的设施中的场景中的VCS底层网络,和/或在客户端场所设置的外部网络)。在至少一些实施例中,链接到一个或多个SFP端口344的小形状因数电路335可用于访问网络322。
在一些实施例中,一种或多种类型的本地持久性存储设备304可以并入PVMD 360中,例如NVME(非易失性存储器快速)设备306、可以从虚拟化卸载卡320的SATA(串行高级技术附件)电路访问的其他(非NVME)固态驱动器(SSD)308,等等。在至少一些实施例中,在虚拟化卸载卡320处运行的存储管理器代码可以使用本地持久存储设备304来为在目标硬件服务器380处实例化的计算实例配置根卷和/或其他逻辑存储设备。在一些实施例中,存储管理器代码可以在本地实现块级别设备接口(实际上实现块存储服务的功能的子集)。在其他实施例中,存储管理器可以访问提供商网络的块存储服务(和/或其他网络可访问的存储服务)以配置至少一些存储设备。
在图3所示的实施例中,PVMD 360包括物理密钥355(例如,可从PVMD机壳的正面访问并且物理上可分离)。可附接到位于PVMD 360内的密码安全密钥设备365的物理密钥395可用于为存储在PVMD处的数据提供物理安全性,包括存储在本地永久存储设备304内的数据。在至少一些实施例中,从PVMD移除或分离物理密钥395可以使持久存储设备的内容不可读和/或不可写。配电板302可以连接到PVMD和目标硬件服务器所在的设施中的标准电源(例如,服务器机架电源)。注意,在一些实施例中,可以使用图3中所示的特定组件的替代方案——例如,可以使用USB代替PCIe,或者附加于PCIe,在目标硬件服务器和PVMD之间可以使用多路复用连接器/线缆,等等。在一些实施例中,PVMD可以包括未在图3中示出的附加元件,例如电池、附加安全模块等。在至少一个实施例中,机壳333可以占据标准服务器机架内的1-U插槽。
图4图示了根据至少一些实施例的可以在外围虚拟化管理设备处执行的示例虚拟化管理软件组件。在所描绘的实施例中,在PVMD的内核/处理器上运行的一组虚拟化管理软件组件420可以包括嵌入式操作系统425(其可以协调PVMD本身的各种硬件元件的操作)、一个或多个网络接口卡(NIC)仿真器429以及用于遗留设备的一个或多个仿真器429。
在PVMD处运行的块-设备存储管理器437可以例如使用PVMD的本地持久存储为在客户端选择的硬件服务器上运行的计算实例配置根卷。在一些实施例中,NVME设备仿真器439可用于管理对基于NVME的持久存储的访问。IVN数据平面连接管理器441可以例如实现用于目标硬件服务器的计算实例和其他端点之间的流量的封装协议的操作(例如封装出站数据包或解封装入站数据包)。这样的其他端点可以包括,例如,提供商网络数据中心内的其他计算实例、不同客户端选择的硬件服务器上的其他计算实例、除了VCS之外的服务等等。调用类似于图2的映射服务245的VPC映射服务可以从IVN数据平面连接性管理器441启动。在一些实施例中,IVN数据平面连接管理器可以发起或实施配置操作以将IVN内的网络地址分配给一个或多个虚拟网络接口,这些虚拟网络接口以编程方式附接到在目标硬件服务器处运行的计算实例,因此在客户端为IVN指定的网络地址范围内包括该计算实例。
在一些实施例中,实例元数据服务代理449可以响应于从在目标硬件服务器处启动的计算实例发出的查询而提供元数据的各种元素。例如,这样的元数据可以包括用于授权/验证从计算实例发送到其他提供商网络服务的请求的凭证、计算实例的块设备映射信息、计算实例的标识符等等。在一些实施例中,只能从实例本身内访问的本地链接HTTP地址可用于在计算实例处获得元数据。
在至少一些实施例中,VCS控制平面的一个或多个代理453可以在PVMD处运行。例如,此类代理可负责接收在VCS控制平面处生成的命令,并响应于此类命令在PVMD和/或目标硬件服务器处发起操作(例如,配置改变操作)。
在PVMD安装在不能直接访问VCS底层网络的设施例如客户端拥有的场所处的一些实施例中,PVMD可以包括VCS扩展管理器(EM)457。在至少一个实施例中,在PVMD可以直接访问VCS底层网络的场景中,EM可以不必在PVMD处安装、实例化或激活。扩展管理器457可以与设置在提供商网络数据中心的扩展流量中介建立安全通信通道(例如,虚拟专用网络或VPN隧道),使得VCS命令和数据可以安全地流过不受VCS管理和控制的非底层网络。基于通过这样的通道接收的命令,计算实例可以在目标硬件服务器处设置和配置,实际上将VCS扩展到提供商网络外部的场所,如下文进一步详细描述的。在一些实施例中,扩展管理器可以将控制平面代理包含在不可能直接连接底层的环境中;也就是说,如果扩展管理器在PVMD上运行,则在此类实施例中可能不需要单独的VCS控制平面代理。
在至少一个实施例中,一个或多个网络安全代理461可以在PVMD处运行。这样的网络安全代理可能负责许多操作,例如导致为指向或来自连接到PVMD的目标硬件服务器处的计算实例的各种流量(包括DNS请求和响应,以及标准IP数据包)生成日志记录,启动或执行入侵检测或渗出检测操作等。注意,在一些实施例中,软件和/或固件组件的不同组合可以在PVMD处运行,而不是通过图4中的示例示出的。
在一些虚拟化计算服务中,包括管理程序的虚拟化管理软件堆栈可能在虚拟化服务器本身上运行,因此服务器资源的重要部分有时可能不得不用于虚拟化管理任务,而不是用于客户端工作负载。此外,在这种情况下,运行计算实例的硬件服务器可能由VCS选择,因为虚拟化管理软件堆栈可能必须针对用于服务器的特定硬件进行定制;因此,VCS的客户端在用于其计算实例的特定硬件方面可能没有太大的灵活性。
图5图示了根据至少一些实施例的使用主机上管理程序的虚拟化服务器与可以使用外围虚拟化管理设备配置计算实例的客户端选择的硬件服务器之间的示例差异。主机上管理程序虚拟化服务器510可以包括服务器硬件530,例如CPU、存储器、持久性存储设备、NIC等。包括管理程序、VCS联网和存储虚拟化管理器、操作系统的管理实例等的虚拟化管理软件栈525可以充当硬件530和诸如在服务器510上的来客虚拟机的一个或多个计算实例515之间的中介。
相比之下,在使用PVMD 565作为中介来配置计算实例的场景中,用于虚拟化管理和与VCS连接的所有逻辑(包括在隔离的虚拟网络中包含计算实例的逻辑、用于设置存储设备例如计算实例的根卷的逻辑等)如箭头590所示可以在PVMD本身内执行。标准外围连接器或线缆(例如PCIe或USB线缆)可用于将PVMD物理链接到其硬件531由客户端选择的虚拟化服务器550。客户端可以选择他们选择的任何服务器硬件,只要在这样的实施例中PVMD可连接到服务器即可。例如,客户端可以选择实现所需处理器架构的CPU,为客户端的应用程序优化,或者客户端可以决定使用必须使用与服务器绑定的软件许可的服务器。在某些情况下,客户端可能希望使用可以设置有自定义联网配置的服务器,这些配置可能在默认的VCS选择的服务器上不受支持,例如多播配置等。注意,尽管PVMD 560可以充当客户端选择的虚拟化服务器和VCS底层网络(以及建立在底层网络之上的VCS逻辑网络)之间的中介,但这并不妨碍客户端选择的虚拟化服务器550在至少一个实施例中还可以在客户端选择或设置的其他网络中进行配置。PVMD 565因此可以在服务器选择方面为VCS客户端提供比使用具有使用服务器的主CPU运行的常规虚拟化管理软件堆栈的服务器可能的更大的灵活性。
在提供商网络数据中心和协同定位设施中示例使用PVMD
图6图示了根据至少一些实施例的在提供商网络数据中心和协同定位设施处的外围虚拟化管理设备的示例使用。在提供者网络的给定数据中心602,在此网络可访问服务套件中实施VCS,在所描绘的实施例中可以配置多个服务器机架。一些默认的服务器机架,例如612A或612B,可用于不使用PVMD的虚拟化服务器。相反,例如,这些机架中的每个单独的机架可以包括配置在VCS底层网络615内或链接到该VCS底层网络的架顶式交换机610(例如交换机610A或610B)。因此,位于默认服务器机架内的各个默认服务器可以通过它们各自的架顶式交换机连接到底层网络。
响应于来自VCS的客户端的一个或多个编程请求,在一些实施例中,可以在数据中心602内建立客户端请求的服务器机架622A。这样的客户端请求的服务器机架622A可以容纳客户端选择的硬件服务器667A,其连接到PVMD 665A,其又直接物理链接(即,不需要遍历不受VCS运营商控制的网络链接)到VCS底层网络615。使用结合在PVMD内的虚拟化管理硬件和软件,可以在客户端选择的硬件服务器667A处设置一个或多个计算实例。
在一些实施例中,可以使用单个PVMD在多个客户端选择的服务器上设置计算实例;在其他实施例中,客户端选择的服务器和PVMD之间可能存在一对一的关系。在一个实施例中,多个客户端选择的服务器,例如667A和/或多个PVMD 665A可以容纳在单个机架内。在一些实施例中,不需要设置单独的客户端请求的机架622A来配置使用PVMD的计算实例;取而代之的是,例如,PVMD和客户端选择的服务器可以容纳在已经用于提供商网络数据中心的其他虚拟化服务器的服务器机架内。
在一些实施例中,可以访问VCS底层网络的协同定位设施652可以容纳用于计算实例的PVMD和客户端选择的服务器。在所描绘的实施例中,协同定位设施652可以包括提供商网络运营商管理的设备640以及客户端管理的或第三方管理的设备642的集合。提供商网络运营商管理的设备640可以例如包括一个或多个联网设备660,例如路由器、网关、交换机等,它们提供对VCS底层网络的访问和/或配置在VCS底层网络内。响应于来自客户端的一个或多个编程请求,客户端选择的服务器667B可以设置在协调定位设施处,并链接到能够通过联网设备660访问底层网络的PVMD 665B。在一些实施例中,客户端请求的服务器机架622B可以用于服务器667B和PVMD 665B,尽管在其他实施例中可能不一定需要或使用这种专用机架。在一些实施例中,可以在协同定位设施处部署多个客户端选择的服务器,每个服务器都链接到相应的PVMD(或共享一个PVMD)。在一些实施例中,用于启用PVMD的计算实例的客户端选择的服务器也可以连接到位于协同定位设施652的第三方或客户端拥有的设备677。
在一些实施例中,直接访问VCS底层网络的PVMD以及相关的客户端选择的服务器可以位于除提供商网络数据中心602或协同定位设施652之外的其他类型的场所内。例如,在一个实施例中,提供商网络运营商可以设置临时设施(例如,在位于客户端工作地点附近的运输集装箱中),并且可以部署PVMD以使计算实例能够在放置在此类临时设施中的客户端选择的硬件上进行配置。
DSC模式操作的示例PVMD相关编程交互
图7图示了根据至少一些实施例的与使用外围虚拟化管理设备的计算实例的配置有关的示例程序交互。虽然图7中说明的程序化交互在PVMD可以直接连接到VCS底层网络的环境中(即,当PVMD在直接底层连接或DSC模式下使用时)可以得到支持,但当PVMD用于与底层的连接需要遍历不一定由VCS的运营商管理/控制的网络路径的环境中时所示的交互的至少一些也得到支持。
其功能和特征类似于图1的VCS 110的VCS 712可以实现所示实施例中的编程接口777。这样的接口可以包括例如一组应用程序编程接口(API)、命令行工具、图形用户接口、基于网络的控制台等。VCS客户端710可以经由编程接口777提交PVMDConnectedTargetServerSetupRequest 714,以在客户端选择的硬件服务器处通过PVMD启动启用计算实例的过程。在至少一些实施例中,请求714可以指示请求的PVMD连接配置的各种属性,例如有关要使用的客户端选择的服务器的规范的详细信息(服务器上可用的外围连接类型、CPU类型、内存、存储、物理占用空间、电源要求等)、要在客户端选择的服务器上设置的计算实例种类(例如,裸机实例、微型虚拟机或属于在VCS中定义的其他类别的虚拟机)、计算实例将被配置在其中的IVN、物理位置偏好(例如,指定位置中的提供商网络数据中心、协同定位设施等)等等。
作为响应,在记录请求714的细节之后,VCS 712可以在所描绘的实施例中向客户端发送SetupInitiated消息715,指示设置期望配置所需的任务已被调度。在某些情况下,PVMD和服务器组合的实际物理设置可能需要一些时间(例如,如果必须设置新机架,是否必须将硬件服务器运送到所需设施等)。当客户端选择的服务器已经物理连接到PVMD、PVMD已经连接到VCS底层网络并且关于客户端选择的服务器的足够信息已经从PMVD提供给VCS控制平面以将客户端选择的服务器作为虚拟化主机呈现时,在一些实施例中可以将PVMDConnectedServerOnline消息716发送到客户端。在至少一个实施例中,消息716可以包括主机标识符,客户端可以使用该主机标识符来指代客户端选择的服务器和/或指向客户端选择的服务器的后续编程请求中的对应PVMD。
在客户端选择的服务器被指定为虚拟化主机(例如,作为以单租户模式分配给客户端的专用主机)之后,客户端可以开始在客户端选择的服务器上请求一个或多个计算实例的配置操作。例如,客户端可以发出LaunchCIAtPVMDConnectedServer请求717以在客户端选择的服务器上建立指定类别的计算实例。作为响应,可以例如在诸如联网管理器和存储管理器的PVMD的虚拟化管理组件的帮助下启动这样的计算实例,并且可以将LaunchInitiated消息721发送到客户端710。LaunchInitiated响应可以例如包括由VCS分配给启动的计算实例的标识符,和/或分配给计算实例的一个或多个IVN网络地址。
从客户端的角度来看,在客户端选择的服务器处启动的计算实例可以被视为与在所描绘的实施例中为客户端设置的任何其他计算实例一样。例如,客户端可以请求到/来自计算实例的网络流量日志,例如,通过GetCITrafficLogs请求723。在一些实施例中,可以记录各种流量的记录,包括例如域名服务(DNS)请求和响应、到提供商网络的存储或数据库服务的流量、往返于同一IVN内的其他计算实例的流量、往返于计算实例的IVN之外的端点的流量,等等。在至少一些实施例中,GetCITrafficLogs请求723可以包括一个或多个过滤参数,其指定应该提供其日志的特定流量类型——例如,是否只需要DNS请求/响应日志,是否需要到特定IVN或服务的流量日志,提供日志记录的时间范围,等等。在一些实施例中,在PVMD处运行的一个或多个组件可以负责启动记录,和/或日志的至少一个子集可以存储在PVMD处。在其他实施例中,日志可以存储在VCS的其他资源中,或者存储在提供商网络的存储服务中。在一些实施例中,可以通过LogRecords响应725将所请求的日志内容(如果可用)提供给客户端。
在至少一些实施例中,客户端可以提交GetInstanceMetadata请求731,例如,通过从在客户端选择的服务器处启动的计算实例发起的HTTP请求。在所描绘的实施例中,在PVMD处运行的实例元数据服务的代理可以在MetadataEntry响应733中提供所请求的元数据。在其他实施例中,不在PVMD上运行的实例元数据服务的组件可以提供所请求的元数据。这样的元数据可以包括例如计算实例的标识符、可用于从计算实例向其他提供商网络服务提交请求的凭证等。在至少一个实施例中,当请求从计算实例定向到另一服务时,可以由/从PVMD/s元数据服务代理自动提供这样的凭证,并且可能不需要单独的获取凭证的请求。
如果并且当客户端希望终止在连接PVMD的服务器上运行的计算实例时,可以通过编程接口777将TerminateCI请求741发送到VCS。作为响应,可以关闭计算实例,并且可以向客户端发送CITerminated消息743。如果并且当客户端希望停止将客户端选择的服务器用于计算实例时,可以提交DecommissionPVMDConnectedServer请求747。作为响应,在一些实施例中,PVMD可以与客户端选择的服务器断开连接,并且可以向客户端710提供ServerDecommissioned响应749。注意,在一些实施例中可以支持与在可能来自PVMD的直接底层网络连接的环境中使用PVMD相关联的其他类型的编程交互(图7中未示出)。下面更详细地讨论用于管理在VCS的提供者网络外部的场所中PVMD的使用的编程交互的示例,例如,在不能直接访问底层网络的地方。
在DSC模式下使用PVMD配置计算实例的方法
图8是图示根据至少一些实施例的可以在提供商网络处执行以使用连接到外围虚拟化管理设备的客户端选择的服务器来配置计算实例的操作的方面的流程图。如方框801中所示,可以在VCS处获得指示(例如,通过与VCS客户端的一个或多个编程交互):由客户端选择的目标硬件服务器(THS)将用于托管一个或多个在可直接访问VCS的底层网络的场所或设施处的计算实例。底层网络可以包括提供商网络的物理网络设备,例如线缆、交换机等,其链接至少一些虚拟化服务器,这些虚拟化服务器被选择为由VCS运营商选择作为计算实例的默认服务器。使用底层作为基础设施,可以在VCS处配置各种逻辑网络,包括例如前面讨论的类型的隔离虚拟网络(IVN)。分配了逻辑网络的网络地址的实体(例如各种计算实例)之间的流量可以通过底层网络的链路传输,例如,使用如图2的上下文中讨论的封装协议和/或VCS映射服务。在至少一些实施例中,客户端可以建议THS将位于的特定位置,例如提供商网络数据中心或协同定位设施。在一些实施例中,可以从VCS以编程方式向客户端提供针对此类位置的建议或推荐,并且客户端可以选择或批准一个此类位置。
在各种实施例中,可以识别用于在THS处设置计算实例的外围虚拟化管理设备(PVMD),并且如果需要,将其传送到THS将位于的设施。在一些实施例中,VCS运营商可能具有可用的这种PVMD的多个版本或类别,它们在诸如所使用的外围连接器/协议的特定类型、设备上的总计算能力、包含在PVMD中的本地持久存储设备的类型、本地持久存储设备的容量、PVMD的物理足迹等等属性上可能彼此不同。在这样的实施例中,可以识别和使用与THS兼容的PVMD——例如,可以选择可以通过THS支持的外围协议连接的PVMD,或者可与THS一起发现配置为启用客户端优选的特定类型的计算实例的PVMD。在所描绘的实施例中,PVMD(和VCS,基于来自PVMD的通信)可以检测到在PVMD和底层网络之间以及在PVMD和THS之间已经建立了连接(方框804)。在一些实施例中,PVMD可以将关于THS的各种细节传输到VCS控制平面,例如,通过底层网络。如先前所讨论的,在各种实施例中,在附接到底层网络的多个设备处实现的封装协议可用于在VCS的一个或多个逻辑网络之间传输流量。在至少一个实施例中,可以在PVMD和THS之间建立多个物理连接——例如,一个连接可以利用连接到PVMD的外部PCIe端口的第一根线缆,而另一个连接可以利用RJ45连接器来使命令和数据在PVMD和THS的系统管理服务处理器之间传输。
在一些实施例中,PVMD可以使得THS被呈现,例如,经由客户端可访问的VCS的控制平面编程接口,作为专用虚拟化主机(方框807)。在一些实施例中,这样的专用虚拟化主机可以由客户端指示为用于以单租户模式启动一个或多个计算实例的资源——也就是说,如术语“专用”所暗示的,这样的虚拟化主机可以只能代表一个客户使用。在其他实施例中,THS可以呈现为不同类型的虚拟化主机。在一些实施例中,可以例如在PVMD和VCS控制平面的帮助下为THS分配底层网络的网络地址,作为执行以使THS呈现为虚拟化主机的先决条件操作的一部分。
响应于来自客户端的编程请求,在各种实施例中,在THS被指定为客户端可用的虚拟化主机之后,计算实例可以在THS处启动(方框810)。对于这样的计算实例,存储和网络虚拟化任务可以在PVMD处实现,包括例如使用PVMD的持久存储来配置根卷、将计算实例包含在客户端的IVN中,等等。在所描绘的实施例中,软件虚拟化管理堆栈的管理程序或其他组件可能不必在THS上运行,从而使客户端能够使用THS的所有(或至少绝大多数)计算、内存和存储容量用于客户端的应用程序。
在至少一些实施例中,在THS上启动计算实例后,它可以被视为(从客户端的角度)就像客户端的任何其他计算实例一样,并且可以访问所有可用于在没有PVMD帮助的情况下启动的计算实例的VCS特征。响应于在VCS控制平面从客户端接收到的附加请求,在一些实施例中,PVMD可以为在THS启动的计算实例发起相应的实例配置操作(方框813)。这样的操作可以包括例如改变网络地址、停止/重新启动实例、改变安全设置等。在所描绘的实施例中,可以生成计算实例的网络流量日志(包括DNS请求和响应)并将其提供给请求的客户端。在一些实施例中,可以在PVMD和/或VCS的组件的帮助下执行网络安全分析,例如,用于入侵检测、渗出检测等。可以向在THS的计算实例上运行的程序提供对在提供商网络处实现的其他服务(例如数据库服务、存储服务、负载平衡服务等)的访问。例如,指向提供商网络的另一服务(例如数据库服务)的服务请求,其起源于在THS计算实例内运行的进程,可以由PVMD传输/转发到该服务。实例元数据服务的代理可以在PVMD处运行,以为计算实例提供实例元数据,例如,包括访问一些其他服务所需的凭证。
应注意的是,在各个实施例中,图8所示的操作中的一些操作可以以与附图中所示的顺序不同的顺序来实施,或者可以并行地而不是顺序地执行。另外地,在一个或多个实施方案中,可以不需要图8所示的操作中的一些操作。
在外部场所部署PVMD的示例系统环境
如前所述,在各种实施例中,PVMD可以以至少两种操作模式部署:直接底层连接(DSC)模式和外部场所(EP)模式。在EP模式下,PVMD可用于使用客户端选择的硬件服务器配置和管理计算实例,该硬件服务器位于提供商网络外部的场所,可能无法从该场所直接访问VCS底层。图9示出了根据至少一些实施例的示例性系统环境,在其中可以使用外围设备在提供商网络外部的场所处实现提供商网络的虚拟化计算服务的扩展。如图所示,系统900包括位于提供商网络901的数据中心内的资源,以及位于提供商网络外部的场所的资源,这些场所不能访问VCS底层网络,例如客户场所932A和932B以及协同定位设施930。
系统900的VCS 910的数据平面资源945可以被组织成与之前讨论的那些类似的一组隔离虚拟网络(IVN)。例如,IVN 915A可以代表客户端C1建立,IVN 915B可以代表客户端C2建立,依此类推,其中为客户端提供关于其各自IVN内的网络配置设置的灵活性。IVN915A可以包括在VCS选择的虚拟化服务器917A和917B处运行的计算实例,而IVN915B可以包括在VCS选择的虚拟化服务器917J和917K(例如CI 925A)处启动的计算实例。VCS控制平面资源941可以包括一组服务器902,例如在所示实施例中的902A、902B和902C,其负责管理任务,例如接收和响应来自客户端的实例配置请求,供应额外的VCS选择的虚拟化服务器,监控数据平面资源的健康状况等。
在图9所示的实施例中,运行扩展管理器(EM)的各个PVMD 960(例如960A、960B或960C)可用于使计算实例能够在外部场所932A、932B和930处的客户端选择的服务器处启动和配置。例如,PVMD 960A可用于使协同定位设施930处的客户端选择的服务器(CSS)918A能够托管计算实例,PVMD 960B可用于使计算实例能够在VCS客户端C1的客户场所932A处的CSS 918J处建立,PVMD 960C可以连接到客户端C3的客户场所932B处的CSS 918K。注意,在所描绘的实施例中,除了EM之外,PVMD 960还可以包括联网和存储虚拟化管理器。在所描绘的实施例中,除了客户端选择的服务器918,至少一些外部场所932A、932B和930还可以包括非VCS设备(即,不打算托管VCS计算实例的服务器)——例如,场所932A可以包括非VCS设备923B,场所932B可以包括非VCS设备923C,并且协同定位设施930可以包括非VCS设备923A。至少一些非VCS设备还可以通过本地网络968(例如,968A、968B或968C)链接到CSS——因此,CSS可以配置在多个网络中,包括本地网络968和一个或多个VCS网络(例如,使用来自用于VCS底层网络的范围的地址)。注意,CSS 918可能彼此不同——例如,CSS 918J可能具有与CSS 918K不同或更多的CPU,CSS 918A可能具有比CSS 918K更大的内存或不同的CPU架构,等等。还要注意,虽然在图9中的每个外部场所只显示了一个CSS,但在至少一些实施例中,多个这样的CSS可以被定位并用于在单个外部场所内托管VCS计算实例。
在给定外部场所下的一组客户端选择的服务器和PVMD,以及使用PVMD、相关元数据和配置信息运行的计算实例,在各种实施例下可以统称为VCS的扩展资源组(ERG)935。例如,在所描绘的实施例中,ERG 935B(包括PVMD 960B、CI 925K和CSS 918J)可以在客户场所932A处配置,ERG 935C(包括PVMD 960C、CI 925P和CSS 918K)可以在客户场所932B处配置,并且ERG 932C(包括PVMD 960A、CI 925D和CSS 918A)可以配置在协同定位设施930内。实际上,从VCS的客户的角度来看,在各种实施例中,ERG可表示VCS的能力的本地扩展,可以在可以访问互联网并且可以(例如,相对于物理空间、电力等)容纳一组PVMD和客户端选择的硬件设备的任何所需物理位置进行设置。从VCS本身的角度来看,可以认为ERG可以虚拟地与核心VCS基础结构位于相同的提供商网络数据中心中,而在物理上位于客户所选择的场所中。在各种实施例中,当在客户所选择的位置设置ERG时,可以由位于提供商网络的数据中心中的VCS的控制平面组件来管理ERG的资源。因此,在至少一些实施例中,在给定的场所设置和使用ERG可能不需要在本地复制VCS的控制平面能力;相反,安全的网络连接可被设置用于将控制平面命令从提供商网络的数据中心传输到ERG处的PVMD,并且ERG的资源可以主要用于数据平面操作。
在一些实施例中,可以在IVN 915内配置ERG的一个或多个CI(例如,可以将CI以编程方式附接到具有在IVN的地址范围内的地址的虚拟网络接口,CI可以包括在IVN的计算实例的数据库中,有关IVN中CI的成员的信息可以提供给VCS的映射服务等)。在某些情况下,在PVMD的帮助下在ERG上运行的CI可以包含在IVN中,该IVN还包括提供商网络数据中心内的CI,并且可以说这样的ERG扩展了IVN。例如,ERG 935B扩展了图9中客户端C1的IVN 915A,而ERG 935A扩展了为客户端C2配置的IVN 915B。一些ERG可包括在不包括VCS数据中心内的任何计算实例的IVN内配置的CI,或者甚至可能不在IVN内配置。
由于外部场所930和932不能直接访问VCS底层,因此可能需要比在DSC模式下使用PVMD时所需的额外工作来配置使用PVMD的计算实例。在图9所示的实施例中,PVMD的扩展管理器可以执行几个功能。例如,扩展管理器可以通过一个或多个安全通道(例如虚拟专用网络(VPN)隧道)966与VCS的一个或多个扩展流量中介(ETI)977建立连接。可能需要安全通道977,因为PVMD和VCS控制平面(以及数据平面)之间的流量必须流经不受VCS控制或管理的物理网络路径,因此此类物理网络路径从VCS的角度来看可能不是值得信任的。ETI 977可以在提供商网络901的数据中心内的计算设备处实现(例如,使用一个或多个计算实例和/或代表VCS控制平面设置的IVN),并且ETI可以被配置为执行与外部场所和提供商网络的数据中心之间的流量有关的一项或多项安全操作。在所描绘的实施例中,使用与ETI建立的安全通道可以只允许控制平面命令在一个方向上流动:从提供商网络的数据中心到外部场所。相反,在各种实施例中,数据平面流量可以在外部场所和提供商网络之间的任一方向流动。下面提供了关于在各种实施例中控制平面和数据平面流量在提供商网络数据中心和外部场所之间流动的方式的附加细节。
在至少一些实施例中,PVMD 960的扩展管理器还可以将VCS底层网络的网络地址(即,从分配给VCS底层网络内的虚拟化服务器的地址范围中选择的网络地址)分配给PVMD所附接到的CSS 918。例如,在一个实施例中,可以在确定CSS 918的外围卡已经链接到PVMD(例如,链接到PVMD的外部外围端口)之后分配底层网络地址。在至少一些实施例中,分配给CSS 918的底层地址也可以分配给ETI 977之一,使得ETI能够充当提供商网络数据中心内的CSS 918的代理或代表。
此外,在至少一些实施例中,扩展管理器可以充当与在ERG 935内的CSS 918处启动的CI有关的配置命令的中介。例如,VCS的客户端可以向VCS控制平面提交对ERG处的CI的配置操作的请求(使用与ETI建立的安全通道以外的路径),并且该请求的指示可以是从ETI提供给该ERG处的扩展管理器。响应于该指示,可以在CSS处执行计算实例的一个或多个配置操作。
在各种实施例中,扩展管理器还可以充当VCS与外部场所处的本地场所网络之间的桥梁。例如,为了使流量能够在非VCS设备923和VCS计算实例之间流动,扩展管理器可以根据封装协议和/或网络地址转换操作来执行数据包的封装/解封装。
在各种实施例中,设置在ERG 935的CSS 918处的CI可以实现与设置在提供商网络901的数据中心内的CI相同的功能,并被授予相同的能力和权利。如前所述,ERG CI可以在IVN内配置,例如,IVN地址被分配给以编程方式附加到CI的虚拟网络接口,并且IVN安全规则被强制用于CI。PVMD可以包括向CI提供凭证的实例元数据服务代理,可用于访问如前所述的其他提供商网络服务,以及其他类型的实例元数据,例如CI标识符、网络配置详细信息等。在一些实施例中,位于几个不同外部场所的PVMD可用于在同一IVN内配置计算实例——也就是说,IVN可包括在提供商网络之外的多个位置处的各个客户端选择的硬件服务器处设置的计算实例。在一些实施例中,例如为了简化网络管理,在每个不同外部场所的CI组可以被配置在IVN的相应子网内。在ERG处运行的CI的网络流量日志可以例如在PVMD处或在PVMD的帮助下被捕获,并且在各种实施例中被提供给VCS客户端。在至少一个实施例中,可以捕获和记录从ERG CI到提供商网络外部的DNS服务器(例如为客户端网络设置的DNS服务器)的流量,并根据请求提供给VCS客户端。如果代表其配置CI的VCS客户端需要,并且客户端指定的策略控制可以强制通过专有端点的流量流来确定是否应将来自CI的给定数据包转发到服务,则可以设置此类专有端点以使ERG CI能够访问提供商网络的公开可访问的服务而无需使用公众互联网的路径或链接。在各种实施例中,在外部场所使用的PVMD 960可以包括图3所示的部分或全部组件,并且可以使用任何适当的连接器或线缆连接到CSS 918和本地网络。
在至少一些实施例中,扩展管理器(EM)可以响应于在PVMD处检测到一个或多个触发条件(例如检测到电力和/或互联网连接)而被实例化。EM然后可以在一个或多个提供商网络数据中心处发起(或至少参与)与一个或多个VCS组件(例如ETI 977)的安全网络连接的自动建立,而例如不需要来自代表其配置PVMD的VCS客户端的附加的配置指导。在已经建立连接之后,在各种实施例中,客户端可以发出命令以在连接到PVMD的客户端选择的服务器上实例化计算实例(和/或使用计算实例执行其他操作),其方式类似于将针对仅使用提供商网络资源的计算实例发出这样的命令的方式。从VCS客户端的角度来看,现在可以使用本地资源(如果需要,还可以使用位于提供商网络数据中心的资源)无缝地利用VCS的功能性。在各种实施例中,在ERG处设置的计算实例可以(例如,在可执行地址转换和/或其他与封装协议相关的处理的PVMD的帮助下)与非VCS设备923通信,以及根据需要与在提供商网络数据中心中或外部场所处设置的其他CI通信。在一些实施例中,即使在与提供商网络数据中心的连接暂时中断的时间段期间,在ERG处设置的至少一些CI以及使用此类CI作为构建块的相关联的较高级别的服务也可以继续运行。在各种实施例中,特别是对于希望(例如,出于法律合规性、安全性或其他原因)以低延迟访问和处理存储在客户数据中心处的大量应用程序数据的VCS客户而言,设置与应用程序数据位于同一位置的VCS CI的能力可能非常有益。
示例扩展流量中介设备
图10示出了根据至少一些实施例的示例扩展流量中间设备,其可以被配置为使控制平面流量能够从提供商网络的数据中心安全地流向部署外围虚拟化管理设备的外部场所。在所描绘的实施例中,包括客户端选择的服务器1018的扩展资源组(ERG)1035可以位于外部场所1032。其特征和功能类似于图9的PVMD 960的PVMD 1060可以例如通过一根或多根线缆或连接器将其附接到服务器1018。PVMD 1060可以包括扩展管理器(EM)1061。
在所描绘的实施例中,在实施VCS 1010的提供商网络的数据中心1001处,控制平面资源1072可以包括一个或多个ERG连接管理器1074(使用VCS的一个或多个计算设备处的硬件和软件的某种组合来实现)。ERG连接管理器可以确定经由安全通道的连接将与EM1061建立,例如,响应于在控制平面资源1072处接收到的编程请求。在一些实施例中,当EM在线并通过外部场所1032的本地网络连接到互联网时,EM 1061可以向VCS控制平面发送安全连接请求(例如,通过公共互联网的路径)。为了启用安全连接,可以由ERG连接管理器设置一组扩展流量中介(ETI)1021。
在所描绘的实施例中,ETI 1021可以包括例如CSS代理1014和隧道端点1016(称为提供商网络侧隧道端点)。在一些实施例中,CSS代理1014和隧道端点1016可以包括VCS的相应计算实例。在至少一个实施例中,CSS代理可以设置在代表VCS控制平面建立的一个ENI内(不同于代表VCS客户端设置的ENI),而隧道端点1016可以设置在为VCS控制平面建立的另一个ENI内。
虚拟网络接口(VNI)1012可以通过连接管理器1074以编程方式连接到CSS代理1014。在各种实施例中,可以在VCS和/或在VCS扩展资源组处配置VNI(也可以称为“弹性网络接口”),使一些联网相关属性诸如IP(互联网协议)可以在计算实例之间相对轻松地传输,而不必重新配置物理网卡。例如,可以通过以编程方式从一个计算实例中分离VNI并以编程方式将其附加到另一计算实例来完成此类属性转移。在所描绘的实施例中,一个或多个VNI诸如VNI 1012可以经由编程操作附接到给定的计算实例(或从其断开),而与例如运行计算实例的主机的特定硬件网络接口卡(NIC)无关。给定的VNI可能具有许多属性,包括指示配置VNI的IVN的IVN标识符、一个或多个专有IP地址(至少在默认情况下,在IVN之外不可见或广而告之的地址),以及零个或多个公共IP地址、一个或多个子网标识符(例如,以无类别域间路由或CIDR格式表示)、一个或多个安全规则(类似于防火墙规则)等等。在至少一些实施例中,可以向VNI 1012分配相同的底层网络地址,该底层网络地址被分配给为其配置代理1014的CSS 1018。在至少一些实施例中,EM 1061可以从ERG连接管理器接收对底层网络地址的指示,并且将该地址分配给CSS 1018。EM 1061可以用作与提供商网络侧隧道端点1016建立的安全(例如,加密)网络隧道的外部端点。在各种实施例中,各种隧道协议1091(例如,标准VPN协议、VCS内使用的定制协议等)中的任何一种都可以用于通过潜在不可信网络在提供商网络和外部场所之间传输数据包。
在所描述的实施例中,因为相同的底层网络地址被分配给CSS代理1014(通过其附接的VNI 1012)和CSS 1018,所以VCS控制平面可以使用CSS代理1014作为实际用于CSS1018的控制平面命令(例如,响应于客户端发出的请求生成的配置命令)的目的地。因此,从VCS控制平面的角度来看,CSS可能只是另一个可以通过VCS的底层网络访问的虚拟化服务器。当生成控制平面命令时,可以在CSS代理处接收它,并且可以通过出站控制平面流量路径1045发送命令的版本。在一些实施例中,CSS代理1014和/或提供商网络侧隧道端点1016可以在将命令发送到ERG 1035之前对命令应用一个或多个安全相关转换操作。例如,在一些实施例中,在代理处从VCS控制平面获得的命令的版本可包括一个或多个安全令牌,并且CSS代理可以从转发给ERG的命令的版本中去除或排除令牌(例如,可用于验证作为命令的结果执行的操作的请求者的身份的令牌,以及请求者具有请求操作所需权限的令牌)。在至少一些实施例中,原始安全令牌可以被转换,并且安全令牌的转换版本可以被包括在命令的转发版本中。在至少一个实施例中,可以为从代理发送到ERG的出站控制平面命令生成相应的消息认证码(包括例如基于散列的消息认证码或HMAC)。在各种实施例中,CSS代理可以记录发送到给定ERG的所有出站通信消息,并且如果需要,可以由ERG作为代表设置的客户端检查所记录的消息。在一些实施例中,至少两个虚拟网络接口可以与给定的CSS代理相关联—一个虚拟网络接口用于从VCS控制平面获得命令,并且另一个虚拟网络接口用于与隧道端点1016进行通信。
在一些实施例中,数据平面流量还可以通过安全通道或隧道在VCS和外部场所之间流动,例如,与用于控制平面流量的通道分开。数据平面流量可以在这样的隧道上沿任一方向流动(图10中未明确显示),并且可能不涉及CSS代理的使用。在一个实施例中,还可以在VCS内建立具有与分配给CSS 1018相同的底层地址的VNI,以用于往来于CSS的数据平面流量。
示例场所内部PVMD通信通道
图11图示了根据至少一些实施例的在运行在各种外围虚拟化管理设备处的扩展管理器之间建立的示例通信通道。在所描绘的实施例中,可以使用给定外部场所1132内的客户端选择的硬件服务器来建立多个计算实例1124。例如,计算实例(CI)1124A可以在PVMD1102A的帮助下设置在客户端选择的服务器1122A上,CI 1124B可以在PVMD1102B的帮助下设置在客户端选择的服务器1122B上,并且CI 1124C可以在PVMD 1102C的帮助下设置在客户端选择的服务器1122C上。
每个客户端选择的服务器(CSS)1122可以连接到外部场所网络1191,例如,由或代表VCS客户端配置在外部场所内的网络,根据该VCS客户请求来启动CI 1124。除了在外部场所1132处提供VCS和CI之间的安全连接之外,PVMD 1102还可以负责在所描绘的实施例中配置CI 1124之间的安全通道1174(例如,1174A、1174B或1174C)。在至少一些实施例中,安全通道可以设置扩展管理器(EM)1112,例如1112A、1112B和1112C,并且用于根据VCS的封装协议在CI之间传输数据包。例如,CI 1124可以被分配在它们各自的IVN的专有地址范围内的网络地址(例如,作为由PVMD 1102以编程方式将各自的虚拟网络接口附加到CI 1124的结果),而CSS可以被分配各自的底层网络地址。
在一些实施例中,如图11所示,在给定外部场所使用的每个PVMD可以包括相应的扩展管理器(EM)1112。在其他实施例中,在给定的外部场所下可能仅需要单个“主”EM,例如,对于可能包括多个CSS和多个CI的整个扩展资源组。这样的主EM可以为VCS的数据中心和扩展资源组之间的所有流量建立与扩展流量中介的安全通道。在ERG本身内,这样的主EM,在连接到特定CSS的特定PVMD上运行,可以通过安全通信通道与为其他CSS设置的PVMD进行通信。在一些实施例中,在ERG处设置的所有CI 1124可以配置在单个IVN内。在其他实施例中,ERG的一些CI可以被配置在与其他不同的IVN内。
在至少一些实施例中,并非ERG的所有CI都必须使用客户选择的硬件服务器来设置;相反,一些硬件服务器可能由VCS运营商预先配置并运送到外部场所。包括EM 1112的PVMD 1102也可以连接到这种VCS选择的或VCS配置的服务器,并用于管理在VCS配置的服务器上启动的计算实例,就像PVMD可以用于管理客户端选择的服务器上的计算实例一样。在一些实施例中,PVMD甚至可以用于在提供商网络数据中心内的VCS选择的硬件服务器上配置和管理计算实例。
启用PVMD的地理分布式逻辑网络示例
在一些实施例中,VCS的给定客户端或客户可能希望将客户端选择的服务器用于在若干不同位置处的计算实例,并且将若干这样的实例包括在诸如IVN的相同逻辑网络中。图12图示了根据至少一些实施例的可以使用位于提供商网络外部的相应场所的多个外围虚拟化管理设备来配置的示例地理分布式逻辑网络。在所描绘的实施例中,VCS的客户端可以具有分布在提供商网络数据中心之外的多个场所的资源,例如外部场所1202A、1202B或1202N。在一个示例场景中,这些外部场所可以各自代表银行的相应分行(例如,B1、B2、...、Bk)。
客户端可能希望使用在每个外部场所1202处的相应客户端选择的服务器(CSS)1222处启动的计算实例来运行一些应用程序——例如,使用场所1202A处的CSS 1222A、场所1202B处的CSS 1222B和场所1202N处的CSS 1222N。客户端可能还希望将在不同场所启动的所有计算实例(例如,CI 1224A、1224B和1224N)以及在提供商网络的数据中心1255启动的一组附加CI 1224Z包括在单个逻辑网络1277中。在所描绘的实施例中,可以使用设置在每个场所的各个PVMD的IVN连接管理器和/或EM来配置这种地理上分布的逻辑网络。例如,相应的EM 121A、1212B和1212C可以在PVMD 1206A、1206B和1206D内执行,并且这样的EM可以为场所1202处的相应扩展资源组(ERG)建立与前面描述的各种扩展中介的连接。扩展组实例1224A、1224B和1224C可以被分配逻辑网络或IVN 1277内的网络地址,例如,使用分配给附加CI 1224Z的相同地址范围。PVMD的组件可以执行在VCS处使用的封装协议的所需封装/解封装操作,以使数据包能够在不同的CI 1224之间(以及在CI 1224和其他端点之间)流动。在一些实施例中,可以将单独的子网(由相应的CIDR地址范围标识)用于每个外部场所处的CI,例如,以简化网络管理、配置特定位置的安全性和/或出于其他原因。
在所描绘的实施例中,可以将相应的VCS底层网络地址(如上所述也分配给在提供商网络数据中心处的扩展流量中介)分配给CSS 1222。每个CSS还可以具有在外部场所本地网络1223(例如,由客户端的IT人员在不同场所建立的网络1223A、1223B或1223N)内分配给它的地址。在至少一个实施例中,可能的情况是分配给不同场所1202处的不同外部场所本地网络1223内的设备(包括CSS)的网络地址范围可能重叠——例如,IPv4地址10.0.0.1可以分配给本地网络1223A内的CSS 1222A,也可以分配给本地网络1223B内的CSS 1222B。在某些情况下,为了能够处理在其本地网络中最初分配相同地址的CSS处的CI之间的流量流,可能必须更改分配给至少一些CSS的重叠地址。在一些实施例中可以采用对重叠IP地址问题的替代方法,其中可以在PVMD 1206的帮助下实现双向网络地址转换(NAT)。
经由PVMD的提供商网络服务的示例使用
在一些实施例中,实施虚拟化计算服务的提供商网络还可以提供对利用VCS计算实例作为构建块的其他更高级别的网络可访问服务的访问,例如,数据库的实例可以使用VCS的计算实例实施,并且被提供给网络可访问数据库服务的客户端使用。在各种实施例中,此类更高级别的服务还可以在扩展资源组(ERG)处可用,例如,使用在ERG内设置的本地计算实例来实施服务的特征。此外,在一些实施例中,不直接依赖VCS计算实例的提供商网络的其他服务,也可以从ERG处设置的VM进行访问,方式类似于可以从提供商网络数据中心内设置的计算实例访问此类服务的方式。图13示出了根据至少一些实施例的在虚拟化计算服务的扩展资源组处使用附加的提供商网络服务的示例。
在所描绘的实施例中,提供商网络1301至少包括虚拟化计算服务(VCS)(在功能和特征上与图1的VCS 110的功能和特征类似)、存储服务1330和数据库服务1342。可以使用位于提供商网络数据中心处的资源来实施VCS的一部分1310,并且可以在提供商网络外部的位置设置VCS的扩展,诸如位于客户数据中心1332内的还包括一个或多个非VCS设备1323(例如将要不设置VCS计算实例的服务器)的ERG 1335。
在图13中描绘的示例性场景中,已经为VCS客户端建立了先前所讨论的类型的隔离虚拟网络(IVN)1315。IVN 1315包括VCS的提供商网络数据中心部分1310内的多个计算实例(诸如CI 1317A和1317B),以及位于客户数据中心1332的ERG 1335中的多个启用PVMD的CI(诸如1318J和1318K)。术语“启用PVMD的CI”是指在前面讨论的那种PMVD的帮助下在客户端选择的硬件服务器上启动的计算实例,例如,以便在PVMD上执行CI的虚拟化管理操作。在所描绘的实施例中,在任何CI处运行的程序可以利用其他提供商网络服务的资源。例如,可以从提供商网络中的CI 1017B以及ERG 1335中的CI 1318K访问存储服务1330的存储实例1322;类似地,可以从提供商网络内的CI 1317A以及ERG中的CI 1318J访问数据库服务1340的数据库实例1342。在所描绘的实施例中,可以向ERG 1335中的CI提供对其他提供商网络服务的访问,这在逻辑上等同于提供给在提供商网络内实例化的CI的访问。在ERG 1335自身内,在所描绘的实施例中,可以在本地执行在VCS计算实例的顶部构建的服务(即,使用CI作为构建块的服务)的配置和使用,而不必访问ERG外部的资源。例如,在DB服务1340的数据库实例包括VCS的CI的一个实施例中,响应于来自另一个ERG CI 1318K的对数据库实例的请求,可以使用ERG CI 1318J在ERG内本地创建一个新的数据库实例。在所描述的实施例中,因此,对于ERG 1335作为代表设置的VCS客户,即使VCS的控制平面组件在提供商网络数据中心内实例化并且不在ERG处复制,基于ERG的CI诸如1318J和1318K可能在功能上等同于在提供商网络内启动的CI,诸如1317A和1317B。在至少一些实施例中,在不太可能发生的ERG与提供商网络数据中心之间的连接中断的情况下,已经在ERG处实例化的CI以及在ERG处设置的其他服务(诸如上述数据库服务)的资源实例可能会继续工作至少一段时间;因此,客户端使用ERG时可能不需要与提供商网络数据中心的持续性连接。
根据至少一些实施例,一个或多个附加提供商网络服务通常可以通过向可从公共互联网访问的地址提交请求来使用;因此,此类请求可能必须通过公共互联网的链接。为了避免不得不使用这样的公共网络路径,并且还出于性能原因,在一些实施例中,VCS可以设置专有服务端点(例如端点1399)。代替通过公共互联网从CI 1318发送对服务1330或1340的请求,请求可以改为被引导到专有服务端点1399,并且在这样的实施例中使用提供商网络的专有网络路径传送到目标服务。在至少一些实施例中,对请求的响应还可以通过为端点1399配置或与端点相关联的专有路径传输回请求者。在一些实施例中,还可以为在VCS客户端的IVN内实现的服务设置这样的专有服务端点。例如,一个VCS客户端C1可以在C1的IVN中实现可公开访问的服务S1,并允许VCS的其他客户端C2、C3、……通过专有服务端点例如1399从其各自的IVN访问S1。在至少一些实施例中,诸如1318J和1318K之类的启用PVMD的CI也可以利用这样的服务端点来避免使用公共网络路径来进行服务请求和响应。在所描绘的实施例中,客户端指定的策略或规则1388可以与服务端点相关联,并且这样的策略或规则可以应用于任何CI 1317和1318的服务相关流量。例如,这样的策略可以指示只有IVN 1335的实例1318J和1317A被允许使用端点1399来访问存储服务1330处的特定存储对象SO1。在至少一些实施例中,关于是否转发包含在诸如1318J或1318K的启用PVMD的CI处生成的服务请求的数据包的决定可以根据这样的策略(例如,在用于CI的PVMD处)做出。
与部署在外部场所的PVMD相关的示例程序性交互
在一些实施例中,VCS客户端可以使用许多编程接口来提交与设置和在图9的上下文中引入的PVMD的帮助下使用ERG(类似于图9中引入的ERG 935)相关联的请求。图14示出了根据至少一些实施例的涉及使用外围设备配置虚拟化计算服务的扩展资源组的示例性编程交互。在所描绘的实施例中,VCS 1412可以实施一个或多个编程接口1477,例如,一组应用程序编程接口(API)、基于web的控制台、图形用户界面、命令行工具等,它们的任何组合都可以由VCS客户端1410用来与VCS进行交互。
客户端1410可以例如经由编程接口1477提交SetupERGUsingPMVD消息1414,请求在VCS自身的数据中心外部的指定位置处配置具有一个或多个PMVD的扩展资源组。在一些实施例中,消息1414可以包括将用于在所请求的ERG处计算实例的客户端选择的目标硬件服务器的属性或细节,例如关于图7的PVMDConnectedTargetServerRequest 714讨论的一些细节。在一些实施例中,响应于SetupERGUsingPMVD请求1414,可以发起包括将在提供商网络处执行的各种初步任务的工作流,并且可以将响应消息诸如ERGSetupInitiated 1415传输到客户端。在至少一个实施例中,与图10的ETI 1021类似的一个或多个扩展流量中介(ETI)的配置可作为初步任务工作流的一部分,为所请求的ERG启动。例如,在一些实施例中,设置为CSS代理的计算实例实际上可以主动等待被位于目标外部场所中的PMVD处的扩展管理器(EM)联系。在至少一个实施例中,在将PMVD在外部场所递送或获得、接通电源、连接到互联网等之前,EM当然可能无法尝试与CSS代理通信,这种情况可能只在VCS 1412处处理SetupERGUsingPMVD请求之后的一段时间发生。在一些实施例中,VCS的ERG连接管理器(类似于图10的ERG连接管理器1074)可以负责实例化和配置ETI。在至少一个实施例中,给定的CSS代理实例可以例如在多租户操作模式下用于一个或多个VCS客户端的若干个不同的CSS。
在所描绘的实施例中,VCS 1412可以在包括至少一个客户端选择的服务器和连接到客户端选择的服务器的PVMD的ERG已经在期望位置被配置之后向客户端1410发送ERGOnline消息1416,指示客户端可以开始使用ERG。在一些实施例中,可以使用隐式通信来通知客户端所请求的ERG已准备好使用,而不是显式消息,例如,控制台内所请求的ERG的条目可经由可视图标显示ERG已变得可用。在至少一些实施例中,在将ERGOnline消息的等同物传输到客户端之前,可能必须满足一个或多个前提条件:例如,可能必须建立可以由CSS代理实例用来向ERG传输管理命令的安全通信通道,可能必须通过PVMD成功启动至少一个CSS,等等。
在所描绘的实施例中,VCS客户端1410可以使用编程接口1477来提交请求1417以在ERG处的指定客户端选择的服务器处启动一个或多个计算实例。在至少一些实施例中,请求1417可以通过与用于将一个或多个对应的命令传输到ERG的单向路径不同的路径传输到VCS控制平面。在一些实施例中,在用于启动CI的命令已经从ETI传输到ERG处的PVMD之后,指示已经发起启动的消息1421可以被传输回客户端。注意,至少在一些实施例中,LaunchInitiated消息1421可以简单地指示用于启动VM的命令已经被发送到ERG;在此类实施例中,实际上执行启动CI的工作的在PVMD处和/或在客户端选择的服务器处的进程可能不一定传输确认启动是否成功的出站管理消息。
在一些实施例中,可以提交DescribeERG请求1423以获得关于ERG的计算实例、客户端选择的服务器和/或PVMD的信息,并且可以以ERGInfo消息1425的形式提供所请求的信息。在一些实施例中,该信息可以包括例如被授权使用ERG(例如,在ERG处启动或终止CI)的实体的列表、ERG的客户端选择的服务器和/或CI的集合、ERG的设置日期、与ERG计费相关的数据等。
在至少一些实施例中,客户端1410可以例如通过提交指示期望的改变的ModifyERG请求1428来请求对ERG的改变。此类改变可以例如包括增加或减少ERG的客户端选择的服务器和相关PVMD的数量、修改被准许使用ERG的用户/群组/实体的集合的请求,等等。在所描绘的实施例中,如果可以基于VCS的适用规则和策略来容纳所请求的修改,则可以发起用于实施改变的对应的工作流,并且可以将指示正在进行改变工作流的ModifyInitiated消息1433传输到客户端。在一个实施例中,客户端1410可以提交UnconfigureERG请求1441以指示不再需要ERG。作为响应,VCS可以发起工作流以终止对ERG的可访问性,关闭、拆卸和运输为ERG设置的装备,并且在一些实施例中,ERGUnconfigured消息1443可以被发送到客户端,以指示已经发起工作流并且编程请求不可再访问ERG。
除了图14中所示的ERG相关的程序性交互之外,客户端1410还可以提交与IVN相关的各种请求,IVN的实例在ERG处建立,和/或在一些实施例中与在ERG处建立的各个计算实例相关的各种请求,类似于在图7的上下文中讨论的请求。例如,客户端可以提交请求以获取在ERG中设置的启用PVMD的计算实例的网络流量日志,以配置专有端点等。在至少一个实施例中,客户端可以提交编程请求以建立单个逻辑网络1277,例如跨越多个外部场所的IVN,类似于在图12的上下文中讨论的逻辑网络,或将指定外部场所的CI添加到现有逻辑网络。对于ERG相关的操作,在一些实施例中可以支持比图14或图7所示的额外类型的程序性交互。
在外部场所配置和使用PVMD的方法
图15是图示根据至少一些实施例的可以被执行以使用外围虚拟化管理设备建立扩展资源组的操作的方面的流程图。如方框1501中所示,可以在VCS处获得指示(例如,通过与VCS客户端的一个或多个编程交互):由客户端选择的目标硬件服务器(THS)将用于托管一个或多个在不能直接访问VCS的底层网络的场所或设施(例如客户端自身的数据中心或一些类型的协同定位设施)中的计算实例。底层网络可以包括提供商网络的物理网络设备,例如线缆、交换机等,其链接至少一些虚拟化服务器,这些虚拟化服务器被选择为由VCS运营商选择作为计算实例的默认服务器,并且位于实施VCS的提供商网络的数据中心。在底层上,可以在VCS处配置各种逻辑网络,包括例如前面讨论的类型的隔离虚拟网络(IVN)。分配了逻辑网络的网络地址的实体(例如各种计算实例)之间的流量可以通过底层网络的链路传输,例如,使用如图2的上下文中讨论的封装协议和/或VCS映射服务。在各种实施例中,THS位于VCS的数据中心的位置之间的流量,其中VCS控制平面组件和大部分VCS数据平面组件位于其中,可能必须遍历公共互联网的网络路径和/或其他不受提供商网络控制或管理的网络,因此从VCS的角度来看,其信任度低于提供商网络的内部网络。
在各种实施例中,可以识别用于在THS处设置计算实例的外围虚拟化管理设备(PVMD),其特征和功能类似于在图9的上下文中讨论的PVMD 960,并且如果需要,将其传送到THS将位于的设施。在一些实施例中,如前面在直接底层连接模式中使用PVMD的上下文中所讨论的,VCS运营商可能具有可用的这种PVMD的多个版本或类别,它们在诸如所使用的外围连接器/协议的特定类型、设备上的总计算能力、包含在PVMD中的本地持久存储设备的类型、本地持久存储设备的容量、PVMD的物理足迹等等属性上可能彼此不同。在这样的实施例中,可以识别和使用与THS兼容的PVMD——例如,可以选择可以通过THS支持的外围协议连接的PVMD,或者可与THS一起发现配置为启用客户端优选的特定类型的计算实例的PVMD。
在各种实施例中,除了在可直接访问底层时使用的基线PVMD组件之外,在外部场所与THS一起使用的PVMD还可以包括在图9的上下文中讨论的类型的扩展管理器(EM)。在一些实施例中,可以基于检测到PVMD已经连接到电源和互联网(例如,使用链接到在外部场所处设置的本地网络的以太网或类似线缆,它又链接到互联网)来启动这种EM(方框1504)。在其他实施例中,其他触发条件或命令可以导致EM在PVMD处启动。
一个或多个安全网络通道(例如,用于控制平面流量和数据平面流量的相应隧道)可以在EM和类似于之前讨论的ETI的一组扩展流量中介(ETI)之间建立(方框1507)。ETI可以被配置在用于所描绘的实施例中的VCS的数据中心处,例如,在代表VCS建立的隔离虚拟网络内的一个或多个计算实例处,以管理与外部场所的连接。在一些实施例中,VCS控制平面内的外部资源组(ERG)连接管理器可以建立ETI。至少一些ETI可以配置为对EM和数据中心之间的至少一部分流量执行安全操作(例如加密/解密数据包、剥离或替换之前讨论的凭证等)。
在所示实施例中,PVMD(和VCS控制平面,基于来自PVMD的通信)可以检测到已经在PVMD和THS之间建立了连接。在至少一个实施例中,可以在PVMD和THS之间建立多个物理连接——例如,一个连接可以利用连接到PVMD的外部PCIe端口的第一根线缆,而另一个连接可以利用RJ45连接器来使命令和数据在PVMD和THS的系统管理服务处理器之间传输。在THS连接到PVMD之后,EM可以将底层网络的专用网络地址PNA1(即,从分配给提供商网络数据中心内的VCS虚拟化服务器的地址范围中选择的地址)分配给THS(方框1510)。在一些实施例中,PNA1也可以被分配给一个或多个ETI,例如,通过如前所述的以编程方式连接的虚拟网络接口,使得这样的ETI能够充当底层网络内的THS的代理。注意,THS也可以被分配一个或多个其他网络地址,例如在至少一些实施例中,在外部场所的本地网络内;在这些实施例中,底层网络地址PNA1可以用于VCS数据中心和THS之间的流量,而本地网络地址至少可以用于THS和外部场所的其他设备之间的流量。
在一些实施例中,PVMD可以使得THS被呈现,例如,经由客户端可访问的VCS的控制平面编程接口,作为专用虚拟化主机。在一些实施例中,这样的专用虚拟化主机可以由客户端指示为用于以单租户模式启动一个或多个计算实例的资源——也就是说,如术语“专用”所暗示的,这样的虚拟化主机可以只能代表一个客户使用。在其他实施例中,THS可以呈现为不同类型的虚拟化主机。
在已为THS分配了底层地址并呈现为虚拟化主机之后,客户端可以将THS用于与计算实例相关的各种配置操作,就像在所描绘的实施例中可以使用位于提供商网络数据中心内的其他虚拟化主机一样。响应于来自客户端的编程请求,其指示在EM处通过一个或多个安全通道接收,计算实例例如可在THS处启动(方框1513)。除了与VCS的安全连接之外,基线存储和网络虚拟化任务可以在PVMD处实现,包括例如使用PVMD的持久存储来配置根卷、将计算实例包含在客户端的IVN中,等等。在所描绘的实施例中,软件虚拟化管理堆栈的管理程序或其他组件可能不必在THS上运行,从而使客户端能够使用THS的所有(或至少绝大多数)计算、内存和存储容量用于客户端的应用程序。
在至少一些实施例中,在外部场所的THS上启动计算实例后,它可以被视为(从客户端的角度)就像客户端的任何其他计算实例一样,并且可以访问所有可用于在没有PVMD帮助的情况下启动的计算实例的VCS特征。响应于在VCS控制平面从客户端接收并通过安全通道传输到EM的附加请求,在一些实施例中,PVMD可以为在THS启动的计算实例发起相应的实例配置操作(方框1516)。这样的操作可以包括例如改变网络地址、停止/重新启动实例、改变安全设置等。在所描绘的实施例中,可以生成计算实例的网络流量日志(包括DNS请求和响应)并将其提供给请求的客户端。在一些实施例中,可以在PVMD和/或VCS的组件的帮助下执行网络安全分析,例如,用于入侵检测、渗出检测等。可以向在THS的计算实例上运行的程序提供对在提供商网络处实现的其他服务(例如数据库服务、存储服务、负载平衡服务等)的访问。实例元数据服务的代理可以在PVMD处运行,以为计算实例提供实例元数据,例如,包括访问一些其他服务所需的凭证。在一些实施例中,在一个或多个外部场所处使用若干不同的THS设置的各个计算实例可以被配置为同一隔离虚拟网络(IVN)的一部分。在某些情况下,IVN可包括在提供商网络数据中心内设置的一个或多个计算实例,以及在外部场所使用PVMD和THS设置的一个或多个计算实例。
如前所述,在一些实施例中,用于多个外部场所的本地网络的网络地址可能重叠;如果不加以解决,这可能会导致有关使用PVMD配置多场所逻辑网络的问题,因为VCS可能期望底层网络的所有虚拟化主机都具有唯一的网络地址。图16是示出根据至少一些实施例的可以被执行以使得能够在其中可能已经在多个场所处分配冲突网络地址的环境中建立多场所逻辑网络的操作的方面的流程图。如方框1601中所示,可以例如在VCS控制平面处接收编程请求以配置跨越多个外部场所的逻辑网络(例如IVN)。例如,该请求可以指示将在每个场所使用相应的PVMD,以将客户端选择的服务器合并为VCS的虚拟化主机。
在一些实施例中,作为建立这种逻辑网络的先决条件,可以在VCS以编程方式获得各种场所的当前联网配置(包括分配给包括客户端选择的服务器在内的各种服务器和/或分配给客户端选择的服务器(如果它们尚未配置)的网络地址范围)。例如,可以通过VCS的控制平面组件检查这种配置信息(方框1604)。
如果确定分配给(或稍后分配给)各种服务器的地址在不同场所发生冲突,如在对应于方框1607的操作中检测到的,则在一些实施例中,VCS可以通过编程接口通知客户端关于一个或更多个处理或解决地址冲突的方法(方框1610)。这样的方法可以包括,例如,网络地址的重新分配(例如,从不同场所处的各个非重叠IP地址范围分配地址),和/或实施双向网络地址转换(NAT)算法。在双向NAT中,在各种实施例中,给定数据包的源地址和目的地地址都可以在诸如虚拟或物理路由器或流量集线器之类的网络中介处进行转换。在一些实施例中,VCS可以向客户端提供更详细的指导(例如,建议IP地址的新的非重叠范围、建立用于NAT的虚拟路由器或集线器的指令等)以进行所需的配置改变(方框1613)。如果客户端希望继续建立多场所逻辑网络,则可以在一个或多个场所进行配置改变,并且可以再次执行对应于方框1604之后的操作。
如果没有检测到地址冲突(也在对应于方框1607的操作中确定),则可以配置跨越多个场所的逻辑网络(方框1616),例如,使用外部场所处的PVMD和VCS控制平面资源。例如,与前面讨论的那些类似的扩展管理器(EM)可用于实现外部场所的服务器和VCS数据中心之间的安全连接,以及在客户端选择并链接到PVMD的目标硬件服务器上设置的计算实例在一些实施例中可以被分配单个IVN内的网络地址。
需注意,在各种实施例中,图15和/或图16中所示的一些操作可以与附图中所示的顺序不同的顺序来实施,或者可以并行地而不是顺序地执行。另外,在一个或多个实施中,可不需要在图15和/或图16中展示的操作中的一些。
使用案例
使提供商网络的虚拟化计算服务的计算实例能够使用占用空间小的外部外围设备在客户端选择的服务器上启动以及使用这种设备将虚拟化计算服务的数据平面逻辑扩展到客户场所的上述技术可能在各种情况下都非常有用。许多利用提供商网络资源(例如各种能力级别的虚拟机)来实现可扩展性、可用性、可靠性和安全性等特性的组织可能希望在他们选择的硬件服务器上使用类似的特性——例如,在组织的IT人员熟悉的硬件服务器上,或针对某些类型的应用程序进行优化。所描述的外围设备可以以最小的努力附接到这样的服务器,例如,在大部分虚拟化计算资源所驻留的提供商网络的数据中心处、在协同定位设施处和/或在客户场所处。在某些情况下,外围设备可以简单地放置在与客户选择的硬件服务器相同的机架中,并使用标准线缆连接到服务器,以允许在服务器上启动计算实例。这样的计算实例可以自动和透明地继承使用虚拟计算服务运营商选择的服务器启动的计算实例的所有特性,例如对其他服务的安全访问、自动度量和日志收集、网络入侵检测等。在一些情况下,例如因为对可存储在此类位置的大量应用程序数据的访问,客户端可能偏好使用客户端自身场所处的选定硬件启动实例;如果可能,提供商网络客户端可能更希望避免与通过互联网将如此大量的数据传输到提供商网络自身的数据中心相关联的成本和/或延迟,并且可能希望确保数据尽可能不离开客户所处的场所。客户端有时可能需要在与互联网的连接可能不可靠或昂贵的远程位置(例如,在石油钻机、蜂窝电话塔、科学数据收集传感器阵列等附近)使用计算实例和/或将计算实例用作构建块的服务。一些组织可能例如在办公室或其他物理位置中拥有大量的工程师/设计人员,并且可能需要使用工程师/设计人员的极低延迟距离内的计算实例来执行渲染或其他计算密集型操作。在具有互联网连接的任何期望的位置使用本地装备来支持与在提供商网络数据中心处提供的能力相同的能力可极大地扩展可以由提供商网络客户端高效、安全地运行的应用范围。
说明性计算机系统
在至少一些实施例中,实施用于支持本文所述的技术类型的控制平面和数据平面组件中的一个或多个组件的服务器(例如,建立与PVMD的连接,在提供商网络数据中心外部的所选择的位置设置和使用虚拟化计算服务的扩展资源组等)和或用于托管计算实例的客户端选择的服务器可以包括通用计算机系统,该通用计算机系统包括或被配置为访问一个或多个计算机可访问介质。图17示出了此类通用计算设备9000。在所图示的实施例中,计算设备9000包括经由输入/输出(I/O)接口9030耦合到系统存储器9020(其可以包括非易失性存储器模块和易失性存储器模块两者)的一个或多个处理器9010。计算设备9000进一步包含耦接到I/O接口9030的网络接口9040。
在各个实施例中,计算设备9000可以是包含一个处理器9010的单处理器系统,或者包含若干处理器9010(例如,两个、四个、八个或另一个合适数量)的多处理器系统。处理器9010可以是能够执行指令的任何合适的处理器。例如,在各个实施例中,处理器9010可以是实施各种指令集架构(ISA)中的任何一种的通用或嵌入式处理器,如x86、PowerPC、SPARC或MIPSISA、或任何其它合适的ISA。在多处理器系统中,处理器9010中的每一个处理器可以共同但不是必须地实施相同的ISA。在一些实施中,可以使用图形处理单元(GPU)来代替常规的处理器或作为常规处理器的补充。
系统存储器9020可以被配置成存储可由处理器9010访问的指令和数据。在至少一些实施例中,系统存储器9020可以包括易失性部分和非易失性部分两者;在其它实施例中,可以仅使用易失性存储器。在各个实施例中,系统存储器9020的易失性部分可以使用任何合适的存储器技术来实施,例如,静态随机存取存储器(SRAM)、同步动态RAM或任何其它类型的存储器。对于系统存储器的非易失性部分(例如,其可以包括一个或多个NVDIMM),在一些实施例中,可以使用基于闪速的存储器装置,包含与非(NAND)闪速装置。在至少一些实施例中,系统存储器的非易失性部分可以包含电源,如超级电容器或其它电力存储装置(例如,电池)。在各个实施例中,基于忆阻器的电阻随机存取存储器(ReRAM)、三维NAND技术、铁电RAM、磁阻RAM(MRAM)或任何各种类型的相变存储器(PCM)可以至少用于系统存储器的非易失性部分。在所图示的实施例中,实施如上述那些方法、技术和数据等一个或多个所期望功能的程序指令和数据被示为存储在系统存储器9020中作为代码9025和数据9026。
在一个实施例中,I/O接口9030可以被配置成协调处理器9010、系统存储器9020与装置中的任何外围装置之间的I/O业务量,包含网络接口9040或如各种类型的持久和/或易失性存储装置的其它外围接口。在一些实施例中,I/O接口9030可以执行任何必要的协议、定时或其它数据变换,以将来自一个组件(例如,系统存储器9020)的数据信号转换为适合于由另一个组件(例如,处理器9010)使用的格式。在一些实施例中,例如,I/O接口9030可以包含对通过各种类型的外围总线(如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变体)而附接的装置的支持。在一些实施例中,例如,I/O接口9030的功能可以拆分成两个或更多个独立组件,如北桥和南桥。而且,在一些实施例中,如用于系统存储器9020的接口等I/O接口9030的一些或所有功能可以直接地合并到处理器9010中。
网络接口9040可以被配置为允许数据在计算设备9000和附接到一个或多个网络9050的其它装置9060之间交换,诸如图1至图16中所图示的其它计算机系统或装置。例如,在各个实施例中,网络接口9040可以支持通过任何合适的有线或无线一般数据网络(如以太网类型)进行通信。另外地,网络接口9040可以支持经由如模拟语音网络或数字光纤通信网络等电信/电话网络、经由如光纤信道SAN等存储区域网络、或经由任何其它适合类型的网络和/或协议的通信。
在一些实施例中,系统存储器9020可表示计算机可存取介质的一个实施例,该计算机可存取介质被配置为存储用于实施在图1至图16的上下文中讨论的方法和设备的程序指令和数据的至少一个子集。然而,在其它实施例中,程序指令和/或数据可以是在不同类型的计算机可访问介质上接收、发送或存储。一般而言,计算机可访问介质可以包含非暂时性存储介质或如磁性或光学介质等存储介质,例如经由I/O接口9030耦合到计算设备9000的磁盘或DVD/CD。非暂时性计算机可访问存储介质还可以包含任何易失性或非易失性介质,如RAM(例如SDRAM、DDRSDRAM、RDRAM、SRAM等)、ROM等,其可以包含在计算设备9000的一些实施例中作为系统存储器9020或另一种类型的存储器。在一些实施例中,多个非暂时性计算机可读存储介质可以共同存储程序指令,当所述程序指令在一个或多个处理器上或者跨一个或多个处理器执行时实施上述方法和技术的至少一个子集。计算机可存取介质还可以包括传输介质或经由通信介质诸如网络和/或无线链路传送的信号,诸如电信号、电磁信号或数字信号,诸如可经由网络接口9040实施。可以使用如图17所图示的计算设备等多个计算设备中的部分或全部计算设备来实施各个实施例中的所描述功能;例如,在各种不同的装置和服务器上运行的软件组件可以协作以提供功能。在一些实施例中,除了使用通用计算机系统实施之外或代替使用通用计算机系统实施,可以使用存储装置、网络装置或专用计算机系统来实施所描述的功能的部分。如本文所使用的术语“计算设备”是指至少所有这些类型的装置,并且不限于这些类型的装置。
可以鉴于以下条款描述本公开的实施例:
1.一种系统,其包括:
云提供商网络的虚拟化计算服务的一个或多个计算设备;
由所述云提供商网络的客户端指示的目标硬件服务器;和
位于所述目标硬件服务器外部的物理机壳内的外围设备,其包括程序指令,当在所述外围设备的一个或多个处理器处或跨所述一个或多个处理器执行时,所述程序指令实施(a)一个或多个存储管理器,以及(b)一个或多个联网管理器;
其中所述外围设备被配置为:
经由第一线缆与所述虚拟化计算服务的底层网络建立连接,其中在附接到所述底层网络的多个设备处实施的封装协议用于在所述虚拟化计算服务的一个或多个逻辑网络之间传输流量;
在确定(a)所述目标硬件服务器的外围卡已通过第二线缆链接到所述外围设备的外部外围端口以及(b)所述目标硬件服务器的系统管理处理器已通过第三线缆链接到所述外围设备之后,使所述虚拟化计算服务的所述一个或多个计算设备将所述目标硬件服务器作为客户端可选择的专用虚拟化主机呈现给所述客户端以运行一个或多个计算实例,其中所述目标硬件服务器仅通过所述外围设备链接到所述底层网络;和
代表所述客户端启动在所述目标硬件服务器处启动的计算实例的一个或多个配置操作,其中至少部分基于使用所述一个或多个联网管理器执行的操作在所述云提供商网络的隔离虚拟网络内配置所述计算实例,并且其中至少部分地基于由所述一个或多个存储管理器执行的操作向所述计算实例提供对根卷的访问。
2.根据条款1所述的系统,其中所述计算实例是裸机实例,其中从所述裸机实例,所述目标硬件服务器的一个或多个硬件资源可在没有虚拟化的情况下访问。
3.根据条款1-2中任一项所述的系统,其中所述一个或多个计算设备被配置为响应于从客户端接收到的编程请求将所述目标硬件服务器呈现为所述专用虚拟化主机,其中所述编程请求指示所述目标硬件服务器的一种或多种属性。
4.根据条款1-3中任一项所述的系统,其中所述目标硬件服务器位于实施所述虚拟化计算服务的所述云提供商网络的一个或多个数据中心的数据中心内。
5.根据条款1-4中任一项所述的系统,其中所述外围卡使用以下中的一个或多个链接到所述外围设备:(a)PCIe(外围组件互连快速)连接器,(b)被配置为使PCIe信号与一种或多种其他类型信号多路复用的连接器,或(c)USB(通用串行端口)连接器。
6.一种方法,其包括:
在包括包含存储管理器的一个或多个虚拟化卸载组件的外围设备处确定已与虚拟化计算服务的底层网络建立了连接,其中在附接到所述底层网络的多个设备处实施的封装协议用于在所述虚拟化计算服务的一个或多个逻辑网络之间传输流量;
在所述外围设备处检测到目标硬件服务器已链接到所述外围设备之后,使所述目标硬件服务器呈现给所述虚拟化计算服务的客户端,作为客户端可选择的虚拟主机,以运行一个或多个计算实例,其中所述外围设备位于所述目标硬件服务器外部的机壳中;和
通过所述一个或多个虚拟化卸载组件启动代表所述客户端在所述目标硬件服务器处启动的计算实例的一个或多个配置操作。
7.根据条款6所述的方法,其中所述一个或多个配置操作包括由所述存储管理器配置所述计算实例的根卷。
8.根据条款6-7中任一项所述的方法,其中所述外围设备包括一个或多个持久性存储设备,该持久性存储设备包括通过NVME(非易失性存储器快速)接口从所述计算实例可访问的至少一个持久性存储设备。
9.根据条款6-8中任一项所述的方法,其中所述虚拟化计算服务在提供商网络处实施,所述方法还包括:
经由所述外围设备传输指向所述提供商网络的另一服务的服务请求,其中所述服务请求起源于所述计算实例。
10.根据条款6-9中任一项所述的方法,其中所述目标硬件服务器使用以下中的一个或多个链接到所述外围设备:(a)PCIe(外围组件互连快速)连接器,(b)被配置为使PCIe信号与一种或多种其他类型信号多路复用的连接器,或(c)USB(通用串行总线)连接器。
11.根据条款6-10中任一项所述的方法,其中所述目标硬件服务器使用以下中的一个或多个链接到所述外围设备:(a)信号重定时器卡或(b)信号中继器卡。
12.根据条款6-11中任一项所述的方法,其中所述外围设备包括以下的一项或多项:(a)网络接口卡(NIC)仿真器或(b)隔离虚拟网络连接管理器,其中第一计算实例被配置在第一隔离虚拟网络内,所述方法还包括:
在所述外围设备处,对在所述计算实例处生成的数据包执行所述封装协议的一个或多个操作,其中所述数据包被引导到在所述虚拟化计算服务的所述隔离虚拟网络内配置的目的地。
13.根据条款6-12中任一项所述的方法,其中所述外围设备包括永久存储设备和可移动安全设备,其中从所述外围设备移除所述可移动安全设备使得所述永久存储设备的至少一部分不可读。
14.根据条款6-13中任一项所述的方法,其中所述虚拟化计算服务的控制平面包括位于一个或多个数据中心中的多个计算设备,其中所述外围设备和所述目标硬件服务器位于所述一个或多个数据中心之外的场所。
15.根据条款6-14中任一项所述的方法,其中目标物理服务器包括基板管理控制器,并且其中检测所述目标硬件服务器已经链接到外围设备包括检测所述外围设备连接到所述基板管理控制器。
16.一种外围设备,包括:
一个或多个处理器和一个或多个存储器,其中所述一个或多个存储器包括当在所述一个或多个处理器上或跨所述一个或多个处理器执行时实施提供商网络的虚拟化计算服务的一个或多个虚拟化卸载组件的程序指令,其中所述一个或多个虚拟化卸载组件包括存储管理器;和
可连接到目标硬件服务器的端口;
其中所述一个或多个虚拟化卸载组件被配置为:
使与所述虚拟化计算服务的控制平面的一个或多个计算设备建立网络连接;
至少部分基于检测到特定硬件服务器已链接到所述端口,使所述控制平面将所述特定服务器作为虚拟化主机呈现给所述虚拟化计算服务的客户端,其中所述外围设备位于与所述特定硬件服务器分开的机壳中;和
响应于在所述控制平面接收到命令的确定,在所述特定硬件服务器启动一个或多个计算实例配置操作,包括由所述存储管理器启动的至少一个配置操作,以使从在所述特定硬件服务器上启动的计算实例能够访问逻辑存储设备。
17.根据条款16所述的外围设备,其中所述一个或多个虚拟化卸载组件包括网络管理器,所述网络管理器被配置为存储分配给在所述特定硬件服务器处配置的所述计算实例的网络地址的指示,其中所述网络地址处于在所述虚拟化计算服务处建立的隔离虚拟网络的专用网络地址的范围内。
18.根据条款16-17中任一项所述的外围设备,其中所述一个或多个虚拟化卸载组件包括实例元数据代理,所述实例元数据代理被配置为向在所述特定硬件服务器处启动的所述计算实例提供访问除了所述虚拟化计算服务以外的服务的凭证。
19.根据条款16-18中任一项所述的外围设备,还包括持久性存储设备,其中所述存储管理器被配置为实现从所述计算实例到所述持久性存储设备的访问。
20.根据条款16-19中任一项所述的外围设备,其中所述目标硬件服务器安装在服务器机架的一个或多个插槽中,并且其中所述外围设备安装在所述服务器机架的不同插槽中。
21.一种系统,包括:
云提供商网络的虚拟化计算服务的一个或多个计算设备,其位于所述云提供商网络的一个或多个数据中心内;
位于所述云提供商网络的所述一个或多个数据中心外部的场所处的目标硬件服务器;
外围设备,其位于与所述目标硬件服务器分离的物理机壳内的场所处,其包括程序指令,当在所述外围设备的一个或多个处理器处或跨所述一个或多个处理器执行时,所述程序指令实施所述虚拟化计算服务的第一扩展管理器;
其中第一扩展管理器被配置为:
通过一个或多个安全通道与所述虚拟化计算服务的一个或多个扩展流量中介建立连接,其中所述一个或多个扩展流量中介在所述一个或多个计算设备处实施,并且其中所述一个或多个扩展流量中介被配置对所述场所与所述云提供商网络的所述一个或多个数据中心之间的流量执行一项或多项安全操作;
在确定所述目标硬件服务器的外围卡已链接到所述外围设备的外部外围端口之后,将所述虚拟化计算服务的底层网络的特定专有网络地址分配给所述目标硬件服务器,并使所述目标硬件服务器呈现为所述虚拟化计算服务的虚拟化主机,其中所述特定专有网络地址也被分配给所述一个或多个扩展流量中介的扩展流量中介;和
响应于从所述一个或多个扩展流量中介接收到的关于客户端已向所述虚拟化计算服务提交编程请求的指示,使计算实例的一个或多个配置操作在所述目标硬件服务器处执行,其中所述编程请求是使用不包括所述一个或多个安全通道的路径提交的。
22.根据条款21所述的系统,其中所述计算实例是裸机实例,其中从所述裸机实例,所述目标硬件服务器的一个或多个硬件资源可在没有虚拟化的情况下访问。
23.根据条款21-22中任一项所述的系统,其中响应于从客户端接收到的编程请求,将所述目标硬件服务器呈现为所述虚拟化主机,其中所述编程请求指示所述目标硬件服务器的一种或多种属性。
24.根据条款21-23中任一项所述的系统,其中所述一个或多个安全通道包括VPN(虚拟专用网络)隧道。
25.根据条款21-24中任一项所述的系统,其中所述外围卡使用以下中的一个或多个链接到所述外围设备:(a)PCIe(外围组件互连快速)连接器,(b)被配置为使PCIe信号与一种或多种其他类型信号多路复用的连接器,或(c)USB(通用串行总线)连接器。
26.一种方法,包括:
在虚拟化计算服务的第一扩展管理器和所述虚拟化计算服务的一个或多个扩展流量中介之间建立安全通信通道,其中所述一个或多个扩展流量中介被配置在提供商网络的一个或多个数据中心内,以及其中第一扩展管理器在位于所述提供商网络外部的第一场所处的第一外围设备处实施;
由第一扩展管理器向位于所述第一场所的第一目标硬件服务器分配所述虚拟化计算服务的底层网络的第一网络地址,其中第一网络地址还被分配给所述一个或多个扩展流量中介的扩展流量中介;和
响应于针对所述虚拟化计算服务的命令,由第一扩展管理器导致在第一目标硬件服务器处执行一个或多个计算实例配置操作,其中在第一扩展管理器处从所述一个或多个扩展流量中介获得命令的指示。
27.根据条款26所述的方法,还包括:
向在第一目标硬件服务器处启动的第一计算实例分配来自代表所述虚拟化计算服务的客户端建立的隔离虚拟网络的网络地址范围的第二网络地址,其中来自所述范围的另一个网络地址被分配给在位于所述一个或多个数据中心的数据中心的虚拟化主机上启动的第二计算实例。
28.根据条款26-27中任一项所述的方法,还包括:
在第一扩展管理器和第二扩展管理器之间建立另一安全通信通道,其中第二扩展管理器在位于第一场所的第二外围设备处实施;和
经由所述另一安全通信信道,将源自第一目标硬件服务器的网络数据包传输到第一场所处的第二目标硬件服务器。
29.根据条款26-28中任一项所述的方法,其中所述提供商网络包括多个网络可访问服务的资源,所述网络可访问服务包括所述虚拟化计算服务和另一服务,所述方法还包括:
在第一外围设备上实例化实例元数据代理;和
由所述实例元数据代理提供授权从第一计算实例访问所述另一服务的凭证。
30.根据条款26至29中任一项所述的方法,还包括:
由第一扩展管理器在代表所述虚拟化计算服务的客户端建立的隔离虚拟网络内的第一目标硬件服务器处配置一个或多个计算实例;和
由第二扩展管理器在所述隔离虚拟网络内的第二目标硬件服务器处配置一个或多个计算实例,其中第二目标硬件服务器位于所述提供商网络外部的第二场所。
31.根据条款30所述的方法,其中第一目标硬件服务器处的所述一个或多个计算实例被分配在所述隔离虚拟网络的第一子网内的网络地址,并且其中第二目标硬件服务器处的所述一个或多个计算实例被分配在第二子网中的网络地址。
32.根据条款26-30中任一项所述的方法,还包括:
由所述扩展管理器针对(a)从位于第一外部场所的另一设备传输到在第一目标硬件服务器处实例化的计算实例的第一数据包,其中所述另一设备被分配了在所述提供商网络外部的客户端网络内的地址,和(b)从所述计算实例传输到位于第一外部场所的所述另一设备的第二数据包,执行封装协议的一个或多个操作。
33.根据条款26-30或32中任一项所述的方法,还包括:
响应于编程请求,提供流日志,该流日志指示传输到或从在第一目标硬件服务器处启动的计算实例传输的一个或多个数据包。
34.根据条款26-30或32-33中任一项所述的方法,还包括:
响应编程请求,存储端点的安全策略的表示,通过该端点来自在第一目标硬件服务器处启动的计算实例的流量将被传输到另一个网络可访问资源;和
响应于从所述计算实例传输到资源的数据包,使用所述安全策略确定是否将所述数据包转发到所述其他网络可访问资源。
35.根据条款26-30或32-34中任一项所述的方法,其中第一外围设备连接到第一目标硬件服务器的外围卡。
36.一种外围设备,包括:
一个或多个处理器和一个或多个存储器,其中所述一个或多个存储器包括当在所述一个或多个处理器上或跨所述一个或多个处理器执行时实施提供商网络的虚拟化计算服务的扩展管理器的程序指令;和
可连接到硬件服务器的一个或多个端口;
其中所述扩展管理器被配置为:
建立用于与所述虚拟化计算服务的一个或多个计算设备通信的安全网络通道,
其中所述一个或多个计算设备位于所述提供商网络的数据中心,并且其中所述外围设备位于所述提供商网络外部的第一场所;
为位于第一场所并连接到所述一个或多个端口中的端口的第一目标硬件服务器分配所述虚拟化计算服务的底层网络的网络地址,其中第一网络地址也被分配给所述一个或多个计算设备处的扩展流量中介;和
响应于针对所述虚拟化计算服务的命令,使在第一目标硬件服务器处执行一个或多个计算实例配置操作。
37.根据条款36所述的外围设备,还包括持久性存储设备,其中所述一个或多个存储器包括另外的程序指令,当在所述一个或多个处理器上或跨所述一个或多个处理器执行时,所述另外的程序指令所述存储管理器,所述存储管理器被配置为:
提供从第一目标硬件服务器对在第一目标硬件服务器处启动的计算实例的存储卷的访问,其中所述存储卷的至少一部分内容存储在所述持久性存储设备处。
38.根据条款36-37中任一项所述的外围设备,其中所述扩展管理器被进一步配置为:
与在位于第一场所的第二外围设备处实施的另一扩展管理器建立另一安全通信通道;
经由所述另一安全通信信道,将源自第一目标硬件服务器的网络数据包传输到第一场所处的第二目标硬件服务器。
39.根据条款36-38中任一项所述的外围设备,其还包括永久存储设备和可移动安全设备,其中从所述外围设备移除所述可移动安全设备使得所述永久存储设备的至少一部分不可读。
40.根据条款36-39中任一项所述的外围设备,其中第一目标硬件服务器通过以下之一连接到所述一个或多个端口中的端口:(a)重定时器卡或(b)中继器卡。
结论
各个实施例可还包含在计算机可访问介质上接收、发送或存储根据前述描述而实施的指令和/或数据。一般而言,计算机可访问介质可以包含存储介质或存储器介质(如磁性介质或光学介质,例如,磁盘或DVD/CD-ROM)、易失性或非易失性介质(如RAM(例如,SDRAM、DDR、RDRAM、SRAM等)、ROM等)以及传输介质或信号(如通过通信介质(如网络和/或无线链路)而输送的电信号、电磁信号或数字信号)。
如图所图示和本文所描述的各种方法表示方法的示例性实施例。所述方法可以以软件、硬件或其组合的方式实施。可以改变方法的顺序,并且可以添加、重新排序、组合、省略、修改等各种元素。
对于受益于本公开的本领域的技术人员来说显而易见的是,可进行各种修改和改变。旨在包含所有这些修改和变化,并且因此,以上描述被认为是说明性的而不是限制性的。

Claims (15)

1.一种系统,其包括:
云提供商网络的虚拟化计算服务的一个或多个计算设备;
由所述云提供商网络的客户端指示的目标硬件服务器;和
位于所述目标硬件服务器外部的物理机壳内的外围设备,其包括程序指令,当在所述外围设备的一个或多个处理器处或跨所述一个或多个处理器执行时,所述程序指令实施(a)一个或多个存储管理器,以及(b)一个或多个联网管理器;
其中所述外围设备被配置为:
经由第一线缆与所述虚拟化计算服务的底层网络建立连接,其中在附接到所述底层网络的多个设备处实施的封装协议用于在所述虚拟化计算服务的一个或多个逻辑网络之间传输流量;
在确定(a)所述目标硬件服务器的外围卡已通过第二线缆链接到所述外围设备的外部外围端口以及(b)所述目标硬件服务器的系统管理处理器已通过第三线缆链接到所述外围设备之后,使所述虚拟化计算服务的所述一个或多个计算设备将所述目标硬件服务器作为客户端可选择的专用虚拟化主机呈现给所述客户端以运行一个或多个计算实例,其中所述目标硬件服务器仅通过所述外围设备链接到所述底层网络;和
代表所述客户端启动在所述目标硬件服务器处启动的计算实例的一个或多个配置操作,其中至少部分基于使用所述一个或多个联网管理器执行的操作在所述云提供商网络的隔离虚拟网络内配置所述计算实例,并且其中至少部分地基于由所述一个或多个存储管理器执行的操作向所述计算实例提供对根卷的访问。
2.根据权利要求1所述的系统,其中所述计算实例是裸机实例,其中从所述裸机实例,所述目标硬件服务器的一个或多个硬件资源可在没有虚拟化的情况下访问。
3.根据权利要求1所述的系统,其中所述一个或多个计算设备被配置为响应于从客户端接收到的编程请求将所述目标硬件服务器呈现为所述专用虚拟化主机,其中所述编程请求指示所述目标硬件服务器的一种或多种属性。
4.根据权利要求1所述的系统,其中所述目标硬件服务器位于实施所述虚拟化计算服务的所述云提供商网络的一个或多个数据中心的数据中心内。
5.根据权利要求1所述的系统,其中所述外围卡使用以下中的一个或多个链接到所述外围设备:(a)PCIe(外围组件互连快速)连接器,(b)被配置为使PCIe信号与一种或多种其他类型信号多路复用的连接器,或(c)USB(通用串行端口)连接器。
6.一种方法,其包括:
在包括包含存储管理器的一个或多个虚拟化卸载组件的外围设备处确定已与虚拟化计算服务的底层网络建立了连接,其中在附接到所述底层网络的多个设备处实施的封装协议用于在所述虚拟化计算服务的一个或多个逻辑网络之间传输流量;
在所述外围设备处检测到目标硬件服务器已链接到所述外围设备之后,使所述目标硬件服务器呈现给所述虚拟化计算服务的客户端,作为所述客户端可选择的虚拟主机,以运行一个或多个计算实例,其中所述外围设备位于所述目标硬件服务器外部的机壳中;和
通过所述一个或多个虚拟化卸载组件启动代表所述客户端在所述目标硬件服务器处启动的计算实例的一个或多个配置操作。
7.根据权利要求6所述的方法,其中所述外围设备包括一个或多个持久性存储设备,该持久性存储设备包括通过NVME(非易失性存储器快速)接口从所述计算实例可访问的至少一个持久性存储设备。
8.根据权利要求6所述的方法,其中所述外围设备包括以下的一项或多项:(a)网络接口卡(NIC)仿真器或(b)隔离虚拟网络连接管理器,其中第一计算实例被配置在第一隔离虚拟网络内,所述方法还包括:
在所述外围设备处,对在所述计算实例处生成的数据包执行所述封装协议的一个或多个操作,其中所述数据包被引导到在所述虚拟化计算服务的所述隔离虚拟网络内配置的目的地。
9.根据权利要求6所述的方法,其中所述外围设备包括永久存储设备和可移动安全设备,其中从所述外围设备移除所述可移动安全设备使得所述永久存储设备的至少一部分不可读。
10.根据权利要求6所述的方法,其中所述虚拟化计算服务的控制平面包括位于一个或多个数据中心中的多个计算设备,其中所述外围设备和所述目标硬件服务器位于所述一个或多个数据中心之外的场所。
11.一种外围设备,包括:
一个或多个处理器和一个或多个存储器,其中所述一个或多个存储器包括当在所述一个或多个处理器上或跨所述一个或多个处理器执行时实施提供商网络的虚拟化计算服务的一个或多个虚拟化卸载组件的程序指令,其中所述一个或多个虚拟化卸载组件包括存储管理器;和
可连接到目标硬件服务器的端口;
其中所述一个或多个虚拟化卸载组件被配置为:
使与所述虚拟化计算服务的控制平面的一个或多个计算设备建立网络连接;
至少部分基于检测到特定硬件服务器已链接到所述端口,使所述控制平面将所述特定服务器作为虚拟化主机呈现给所述虚拟化计算服务的客户端,其中所述外围设备位于与所述特定硬件服务器分开的机壳中;和
响应于在所述控制平面接收到命令的确定,在所述特定硬件服务器启动一个或多个计算实例配置操作,包括由所述存储管理器启动的至少一个配置操作,以使从在所述特定硬件服务器上启动的计算实例能够访问逻辑存储设备。
12.根据权利要求11所述的外围设备,其中所述一个或多个虚拟化卸载组件包括网络管理器,所述网络管理器被配置为存储分配给在所述特定硬件服务器处配置的所述计算实例的网络地址的指示,其中所述网络地址处于在所述虚拟化计算服务处建立的隔离虚拟网络的专用网络地址的范围内。
13.根据权利要求11所述的外围设备,其中所述一个或多个虚拟化卸载组件包括实例元数据代理,所述实例元数据代理被配置为向在所述特定硬件服务器处启动的所述计算实例提供访问除了所述虚拟化计算服务以外的服务的凭证。
14.根据权利要求11所述的外围设备,还包括持久性存储设备,其中所述存储管理器被配置为实现从所述计算实例到所述持久性存储设备的访问。
15.根据权利要求11所述的外围设备,其中所述目标硬件服务器安装在服务器机架的一个或多个插槽中,并且其中所述外围设备安装在所述服务器机架的不同插槽中。
CN202080061704.3A 2019-09-24 2020-09-10 用于在客户端选择的服务器上配置计算实例的外围设备 Pending CN114365087A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16/581,619 US11520530B2 (en) 2019-09-24 2019-09-24 Peripheral device for configuring compute instances at client-selected servers
US16/581,646 US11064017B2 (en) 2019-09-24 2019-09-24 Peripheral device enabling virtualized computing service extensions
US16/581,619 2019-09-24
US16/581,646 2019-09-24
PCT/US2020/050186 WO2021061414A1 (en) 2019-09-24 2020-09-10 Peripheral device for configuring compute instances at client- selected servers

Publications (1)

Publication Number Publication Date
CN114365087A true CN114365087A (zh) 2022-04-15

Family

ID=72614044

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080061704.3A Pending CN114365087A (zh) 2019-09-24 2020-09-10 用于在客户端选择的服务器上配置计算实例的外围设备

Country Status (3)

Country Link
EP (1) EP4035003A1 (zh)
CN (1) CN114365087A (zh)
WO (1) WO2021061414A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118035965A (zh) * 2024-04-12 2024-05-14 清华大学 多用户协同使用图形处理器算力的方法及装置
CN118035965B (zh) * 2024-04-12 2024-06-11 清华大学 多用户协同使用图形处理器算力的方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157352B (zh) * 2021-04-15 2024-01-26 浪潮通用软件有限公司 一种可编排的前端控制器实现方法、装置、设备及介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10217145B1 (en) * 2014-02-18 2019-02-26 Amazon Technologies, Inc. Partitioned private interconnects to provider networks
US9954763B1 (en) * 2014-02-27 2018-04-24 Amazon Technologies, Inc. Pre-configured virtual gateways for isolated virtual networks

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118035965A (zh) * 2024-04-12 2024-05-14 清华大学 多用户协同使用图形处理器算力的方法及装置
CN118035965B (zh) * 2024-04-12 2024-06-11 清华大学 多用户协同使用图形处理器算力的方法及装置

Also Published As

Publication number Publication date
EP4035003A1 (en) 2022-08-03
WO2021061414A1 (en) 2021-04-01

Similar Documents

Publication Publication Date Title
US11469964B2 (en) Extension resource groups of provider network services
US11563799B2 (en) Peripheral device enabling virtualized computing service extensions
US10320674B2 (en) Independent network interfaces for virtual network environments
US10367753B2 (en) Virtual network interface records
US11520530B2 (en) Peripheral device for configuring compute instances at client-selected servers
US10708232B2 (en) Techniques for communication in hybrid cloud system
WO2018111987A1 (en) Reconfigurable server
JP2019528005A (ja) クラウドコンピューティングシステムにおいて仮想マシンが物理サーバにアクセスするための方法、装置、およびシステム
JP2021501929A (ja) オンプレミスとオフプレミスとの通信のためのコンポーネント、方法及びコンピュータ・プログラム
WO2020005530A1 (en) Network-accessible computing service for micro virtual machines
US20200159555A1 (en) Provider network service extensions
US11188374B2 (en) Data mobility for immobile storage services
US11360824B2 (en) Customized partitioning of compute instances
CN114365087A (zh) 用于在客户端选择的服务器上配置计算实例的外围设备
US11570171B2 (en) System and method for license management of virtual appliances in a computing system
US10824476B1 (en) Multi-homed computing instance processes
KR102441860B1 (ko) 공급자 네트워크 서비스 확장
US20230171189A1 (en) Virtual network interfaces for managed layer-2 connectivity at computing service extension locations
US20240048612A1 (en) Computing Node Management System and Method for Managing a Plurality of Computing Nodes

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