CN113939803A - 用于专用主机的管理计算资源放置即服务 - Google Patents

用于专用主机的管理计算资源放置即服务 Download PDF

Info

Publication number
CN113939803A
CN113939803A CN202080041316.9A CN202080041316A CN113939803A CN 113939803 A CN113939803 A CN 113939803A CN 202080041316 A CN202080041316 A CN 202080041316A CN 113939803 A CN113939803 A CN 113939803A
Authority
CN
China
Prior art keywords
physical servers
virtualized computing
computing resource
placement
physical
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.)
Granted
Application number
CN202080041316.9A
Other languages
English (en)
Other versions
CN113939803B (zh
Inventor
B·基拉伊
D·古普塔
S·A·霍尔
J·S·詹森凡伦斯堡
C·S·古森
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
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN113939803A publication Critical patent/CN113939803A/zh
Application granted granted Critical
Publication of CN113939803B publication Critical patent/CN113939803B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

描述了使服务提供商的用户能够管理用于将虚拟化计算资源启动到一组专用物理服务器中的放置偏好的技术。用户可以使用一个或多个服务提供商界面来提供指示与专供服务提供商的用户使用的一组物理服务器相关联的各种放置偏好的输入。这些放置偏好可用于响应于启动请求确定在哪个物理服务器处启动虚拟化计算资源,例如虚拟机(VM)实例、容器等。除了其他益处之外,配置自定义放置偏好的能力使用户能够更好地满足各种性能、可靠性、软件许可以及用户可能具有的关于其资源如何放置在物理服务器组中的其他考虑因素。

Description

用于专用主机的管理计算资源放置即服务
背景技术
许多公司和其他组织运营计算机网络,所述计算机网络互连许多计算系统以支持其操作。例如,容纳大量互连计算系统的数据中心已经变得常见,诸如由单个组织并代表单个组织运营的私有数据中心,以及由实体作为业务运营以向客户提供计算资源的公共数据中心。一些公共数据中心运营商为各种客户拥有的硬件提供网络访问、电力和安全安装设施,而其他公共数据中心运营商则提供“全面服务”设施,所述“全面服务”设施还包括可供其客户使用的硬件资源。然而,随着典型数据中心规模和范围的增加,调配、实施和管理物理计算资源d的任务变得越来越复杂。
商品硬件虚拟化技术的出现为许多具有不同需求的客户管理大规模计算资源提供了益处,允许多个客户高效、安全地共享各种计算资源。例如,虚拟化技术可以通过向每个用户提供由单个物理计算机器托管的一个或多个虚拟机来允许在多个用户之间共享单个物理计算机器。每个此类虚拟机都是充当不同的逻辑计算系统的软件模拟,该不同的逻辑计算系统为用户提供他们是给定硬件计算资源的唯一操作员和管理员的错觉,同时还在各种虚拟机之间提供应用程序隔离和安全性。此外,一些虚拟化技术能够提供跨越两个或更多个物理资源的虚拟资源,诸如具有跨越多个不同物理计算系统的多个虚拟处理器的单个虚拟机。作为另一个示例,虚拟化技术可以通过向每个用户提供可以分布在多个数据存储装置上的虚拟化数据存储来允许在多个用户之间共享数据存储硬件,其中每个此类虚拟化数据存储充当不同的逻辑数据存储,其为用户提供他们是数据存储资源的唯一操作员和管理员的错觉。
附图说明
将参考附图描述根据本公开的各个实施方案,在附图中:
图1是绘示根据一些实施方案的使服务提供商的用户能够配置用于将虚拟化计算资源放置到专用物理服务器组中的自定义放置规则的环境的图。
图2是绘示根据一些实施方案的提供商网络中的放置服务的示例性部件和操作的图。
图3是绘示根据一些实施方案的云管理器后端服务的示例性部件和操作以及可以用作提供商网络中的放置过程的一部分的示例性数据的图。
图4是绘示根据一些实施方案的使用户能够配置用于将虚拟化计算资源放置到内部物理服务器组中的自定义放置规则的环境的图。
图5是绘示根据一些实施方案的用于使服务提供商的用户能够配置用于将虚拟化计算资源放置到专用物理服务器组中的自定义放置规则的方法的操作的流程图。
图6绘示了根据一些实施方案的示例提供商网络环境。
图7是根据一些实施方案的向用户提供存储服务和硬件虚拟化服务的示例提供商网络的框图。
图8是绘示可以在一些实施方案中使用的示例计算机系统的框图。
具体实施方式
本公开总体上涉及用于使服务提供商的用户能够管理用于将虚拟化计算资源启动到一组专用物理服务器中的放置偏好的方法、设备、系统和非暂时性计算机可读存储介质。根据本文所述的实施方案,用户可以使用一个或多个服务提供商界面来提供指示与专供服务提供商的用户使用的一组物理服务器相关联的各种放置偏好的输入。这些放置偏好可用于响应于启动请求确定在哪个物理服务器上启动虚拟化计算资源,例如虚拟机(VM)实例、容器等。除了其他益处之外,赋予用户配置自定义放置偏好的能力可以使用户能够更好地满足各种性能、可靠性、软件许可以及用户可能具有的关于虚拟化资源如何放置在物理服务器组中的其他考虑。
虚拟化技术和其他服务的服务提供商通常维护几组计算机系统和其他设备,它们构成了托管虚拟化计算资源和其他服务的基础设施(例如,物理计算机系统、网络系统、存储系统)。在许多情况下,用户可以在几乎不了解支持其虚拟化计算资源的底层物理硬件的情况下使用此类虚拟化技术。此外,用户可能通常几乎甚至完全不了解或无法查看影响其虚拟化计算资源在特定物理硬件上的放置的因素。
但是,在一些情况下,用户希望能够更多地控制托管用户虚拟化计算资源的物理硬件。为此,一些服务提供商允许用户提供和使用所谓的专用主机。专用主机是由服务提供商管理的物理服务器,其具有托管虚拟化计算资源(例如,虚拟机(VM)实例、容器等)的容量,其完全专供个人用户或多租户提供商网络的一组限定的用户(例如,组织的用户)使用。这些专用物理服务器通常容纳在服务提供商的一个或多个数据中心内;但是,在一些情况下,物理服务器可以容纳在用户的内部数据中心中并由服务提供商远程管理。将整个物理服务器专用于单个用户或一组用户可以帮助此类用户更好地管理物理服务器绑定软件许可的使用,并满足各种公司合规和监管要求,以及一些用户可能希望进行此类控制的其他可能原因。
在非专用计算机系统(即可能在服务提供商的多个用户之间共享的计算机系统)上启动新的虚拟化计算资源时,服务提供商可以向用户提供对如何将此类资源放入服务器提供商管理的基础设施中的一些控制。服务提供商可以提供此类控制的一种示例方式是创建所谓的“放置组”,可以在放置组中启动计算实例或其他类型的资源。例如,用户可能会配置放置组以在启动新计算实例时使用以下一种或多种放置策略:将实例集群到一个或多个低延迟组中(例如,到具有高速度互联性的一个或多个物理服务器上);跨逻辑分区对实例进行分区或分布,从而确保一个分区中的实例不与其他分区中的实例共享底层硬件;或将实例跨底层硬件分布。除了这些可选的、用户可配置的放置设置之外,服务提供商通常应用各种内部放置规则和流程来管理整体组健康、提高容量可用性并在多租户提供商网络内分散负载。服务提供商做出的这些放置决策通常会对资源利用率、功耗、许可成本以及管理支持服务提供商基础设施的数据中心的其他方面产生重大影响。
然而,对于专用主机的用户,部分因为用户更直接地负责底层硬件,因此上述用于非专用计算机系统的许多放置选项不可用。相反,当用户将新的虚拟化计算资源启动到一组专用主机中时,用户可能只有有限的放置选项,例如,诸如将资源启动到由用户标识为启动请求的一部分的特定专用主机上的选项(例如,通过互联网协议(IP)地址或其他标识符),或允许服务提供商自动放置资源的选项(即,将资源从用户的组放置到任何合适的、可能随机选择的主机处)。因此,如果用户在请求启动之前无法标识特定主机,则用户可能几乎无法控制其虚拟化计算资源在启动时的放置位置。此外,用户通常无法随时访问有关其组的信息,而这些信息将使用户能够智能地做出自定义放置决策,作为新启动请求的一部分。
根据本文所述的实施方案,为了向用户提供对将虚拟化计算资源放置到专用主机组中的更多控制,服务提供商提供各种接口,这些接口使用户能够配置放置偏好以作为服务提供商的资源启动路径的一部分来应用。一般而言,此类用户指定的偏好可以被定义为和与资源启动请求相关联的各种属性有关(例如,取决于正在启动的资源类型、与资源相关联的用户可配置标签、资源是否与任何软件许可相关联等)以及和用户希望如何基于特定启动属性放置资源的指示有关。可配置的放置偏好的类型可以包括由服务提供商公开的可选偏好,以及由服务提供商的用户设计的其他更多自定义的放置偏好。
图1是绘示根据一些实施方案的使服务提供商的用户能够配置用于将虚拟化计算资源放置到专用物理服务器组中的自定义放置规则的环境的图。用户102操作电子装置装置104或配置电子装置104以与提供商网络100通信。电子装置104经由一个或多个中间网络106,诸如互联网,与提供商网络100通信。如上所述,提供商网络为用户提供使用各种类型的计算相关资源中的一种或多种的能力,诸如计算资源(例如,执行虚拟机(VM)和/或容器、执行批处理作业、执行代码而无需配置服务器)、数据/存储资源(例如,对象存储、块级存储、数据归档存储、数据库和数据库表等)、网络相关资源(例如,配置虚拟网络,包括几组计算资源、内容交付网络(CDN)、域名服务(DNS))、应用程序资源(例如,数据库、应用程序构建/部署服务)、访问策略或角色、身份策略或角色、机器映像、路由器和其他数据处理资源等。这些和其他计算资源可以作为服务提供,诸如可以执行计算实例的硬件虚拟化服务、可以存储数据对象的存储服务等等。多租户提供商网络100的用户(或“客户”)可以利用与客户账户相关联的一个或多个用户账户,然而这些术语可以根据使用上下文在某种程度上互换使用。
为了提供这些和其他计算资源服务,提供商网络100通常依赖于虚拟化技术。例如,虚拟化技术可用于为用户提供控制或利用计算实例的能力(例如,使用客户操作系统(O/S)的VM,该客户O/S使用可能会或可能不会进一步在底层主机O/S上运行的管理程序运行;可能在或可能不在VM中运行的容器;可以在没有底层管理程序的“裸机”硬件上执行的实例),其中一个或多个计算实例可以使用单个电子装置实现。因此,用户可以直接利用提供商网络托管的计算实例来执行各种计算任务,或者可以通过提交将由提供商网络执行的代码来间接利用计算实例,而提供商网络继而利用计算实例来执行代码(通常用户对所涉及的底层计算实例没有任何控制或了解)。
用户可以使用提供商网络100的接口来创建和配置至少一组专用物理服务器101以支持此类虚拟化计算资源的执行。如上所述,专用主机或物理服务器通常表示具有完全专供单个用户或多租户提供商网络100的一组限定的用户使用的计算实例容量的服务器。该组专用物理服务器101中的物理服务器可以是具有沿一个或多个维度不同的各种配置的计算机系统,诸如处理器的数量和类型、内存的类型和数量、内存到处理器的连接性、网络接口的数量和类型、本地存储装置(例如固态硬盘)的数量和类型、硬件加速器(例如图形处理单元)的数量和类型等。在大型网络中,可能有数百个、数千个或更多物理服务器,它们可能位于多个地理位置。
在一些实施方案中,用户还可以将专用主机分组为逻辑上分离的池(例如,包括物理服务器150、物理服务器152和物理服务器153的服务器池165;包括物理服务器140A-140N的服务器池166;以及包括物理服务器142A-142N的服务器池167)。如本文别处所述,由用户配置的放置偏好可以可选地与用户的整组专用物理服务器相关联,和/或与该组内的一个或多个服务器池相关联,其中不同的服务器池可以与不同组的放置偏好相关联。例如,用户可以创建与基于软件许可亲和规则将资源集群在一起的启动偏好相关联的一个物理服务器池、将启动的资源尽可能多地分布在硬件上的另一个池,等等。因此,在一些实施方案中,可以根据与启动请求相关联的指定组或服务器池来应用一组不同的放置偏好或放置偏好的组合。
使用户能够管理专用物理服务器组的放置偏好的方面参考一组示例性事件和操作针对提供商网络100进行描述,参考图1中标记为“A”到“D”的三角形进行描述。此外,参考图1中带圆圈的数字“1”到“10”描述了组101内的计算实例的启动(具体地,部分地基于应用用户配置的VM放置偏好,最终将VM实例放置到物理服务器154上的启动)。在此示例中,尽管本文描述的过程可以应用于其他类型的虚拟化计算资源(例如,容器、数据库实例、存储资源等),但是用户请求启动特定类型的计算实例。
现在描述在所述放置偏好配置和实例启动之前的示例组101的状态。组101包括但不限于服务器池165,其包括物理服务器150、152和154(在启动之前和之后示为154A和154B)。在与所述计算实例启动相关联的任何操作之前,物理服务器150、152和154A的状态如下:物理服务器150托管若干VM实例,包括VM实例插槽160中的VM实例161。类似地,物理服务器152和154被示为当前托管VM实例插槽中的其他VM实例,其中每个服务器具有一些未使用的实例插槽,表示服务器的未使用计算容量的量。注意,组101可以包括具有不同容量的物理服务器,并且支持不同类型和大小的虚拟化计算资源。进一步注意,在电子装置150、152和154A内绘示的VM插槽(例如,VM实例插槽160)可以是由提供商网络100的控制平面103管理的部分容量的逻辑表示。如下所述,电子装置150、152和154A可以具有也可以不具有插槽的本地概念并且基于接收的配置和启动指令来执行实例。
在标记为“A”的三角形处,用户发送一条或多条消息以请求配置一个或多个放置偏好,以便与一组专用物理服务器或一组专用物理服务器内的一个或多个物理服务器池相关联。电子装置104和提供商网络100之间的通信,诸如指定一个或多个放置偏好的请求,可以经由实现为网站或应用程序的控制台通过接口108路由,诸如通过使用应用程序接口(API)调用,等等。接口108可以是提供商网络100的控制平面103的一部分或用作其前端,该控制平面包括支持和启用可以更直接地提供给客户的服务的“后端”服务,诸如使用户能够配置放置偏好并在组101内启动实例的服务。除了用作控制平面服务的前端之外,接口108还可以执行诸如验证发起请求的用户的身份和许可、评估请求并将其路由到适当的控制平面服务的操作,等等。
如上所述,一般而言,用户指定的放置偏好通常提供用户希望如何响应于启动资源的请求来将虚拟化计算资源放置到特定物理服务器上的指示。例如,如下文更详细的描述,用户可能偏好将需要特定类型的服务器绑定软件许可的VM实例一起集群在用户的组内的尽可能少的物理服务器上(例如,以最大限度地降低许可成本)、偏好出于低延迟和其他性能原因而将特定类型的VM实例集群在一起,或者偏好出于冗余目的而将其他类型的VM实例分布在物理服务器上,或者偏好其他类型的偏好或其组合。
在一些实施方案中,用户可以指定的一种类型的放置偏好涉及为其专用物理服务器群创建放置组。如上所述,在非专用主机的上下文中,放置组的创建通常允许用户指示他们是否希望将启动到放置组中的实例一起放置到低延迟组中(例如,出于性能原因)或分布在组中的物理服务器上(例如,出于冗余原因)。用户可以为一组专用物理服务器创建放置组,例如,使用由提供商网络100提供的呈现用于配置放置组的选项的GUI或其他界面。可以在用户请求启动虚拟化计算资源时标识由用户创建的放置组,如下面参考示例启动过程所描述的。
作为另一个示例,用户指定的放置偏好可以指示用户希望一组物理服务器中尽可能多的物理服务器保持空置(即处于使得不使用可用实例插槽的状态)。换句话说,用户可能希望将一些资源放置在尽可能少的物理服务器上,在使用组中其他物理服务器上的插槽之前将服务器填满。例如,用户可能希望最小化所使用的物理服务器的数量,使得用户可以选择缩减组中服务器的总数或重新调整组中一部分服务器的用途。作为另一种选择,放置偏好可以替代地指示用户希望将资源放置在具有最多未使用容量的物理服务器上,使得尽可能最大程度地分散可用服务器上的负载。
在一些实施方案中,用户可以指定放置偏好,其说明随着时间的推移放置在组内的各种物理服务器上的当前负载量。例如,放置规则可以寻求将资源放置在当前未超过一些指定阈值负载量的实例上,或者放置在与相对低负载相关联的实例上。用户物理服务器上的负载的定义可以由用户定义,例如,根据CPU利用率、内存利用率、I/O负载来定义,或者基于任何其他度量或它们的组合定义,以及基于可能会影响对应的放置决策的任何期望的阈值定义。
在一些实施方案中,用户可以指定放置偏好,其指示期望对与通用软件许可相关联的实例进行集群。例如,如果用户拥有与一个或多个服务器绑定软件许可相关联的资源,那么如果那些资源被放置在尽可能少的单独物理服务器上(在遵循用户可能已指定的任何其他放置偏好(例如,出于冗余目的而跨服务器分布实例)的前提下),则对用户来说可能是最具成本效益的。资源是否与一个或多个特定软件许可相关联的指示可以被指示为启动请求的一部分或从与启动请求相关联的其他数据中导出。
在一些实施方案中,用户可以指定放置偏好,这些偏好基于特定资源一旦启动就如何被使用的指示。例如,用户可能负责管理包括各种相互通信子系统或服务的大型软件应用程序,其中这些子系统或服务跨单独部署的实例分布。在此示例中,用户可能偏好将与两个或更多个子系统相关联的实例集群在一起以启用子系统之间的低延迟通信,同时出于冗余目的而分布与类似子系统相关联的实例的放置,等等。启动请求所涉及的子系统或服务的指示可以在启动请求中指定,基于标签或与机器映像相关联的其他元数据来确定,或者使用其他技术来指定。在一些实施方案中,用户可以类似地指定一个或多个放置偏好,其使某些资源与和用户的资源交互的一个或多个指定的联网部件(例如,集中式数据库或其他资源)保持接近。
在一些实施方案中,用户指定的放置偏好中的一些或全部可以与指示放置确定中每个偏好的相对重要性的对应的权重相关联。例如,如果用户已经指定一个与集群资源相关的放置偏好以最小化软件许可使用,并且还指定了第二偏好以保持跨服务器的冗余量,则用户可以根据每个偏好对用户的相对重要性来对那些偏好中的每一个进行加权。在其他实施方案中,用户可以提供放置偏好相对于彼此的优先次序,使得该偏好以指定的重要性顺序应用于用户。
如上所述,在一些实施方案中,是否将指定的放置偏好应用于特定实例启动,以及是否将可选加权应用于特定放置偏好,可以取决于与资源启动请求相关联的一个或多个属性。例如,用于对与软件许可相关联的实例进行集群的定义的放置偏好可以与相对高的加权相关联,该相对高的加权用于与标签或与相关联资源需要特定软件许可的其他指示相关联的资源启动。因此,在评估物理服务器上的候选VM插槽时,与将需要获得额外许可的服务器上的插槽相比,已经与软件许可相关联的服务器上的插槽以及已经执行需要相同许可的其他实例的服务器上的插槽的排名可以更高。另一方面,启动不需要软件许可的资源的放置过程可以不应用与软件许可相关的放置偏好,或者将低权重应用到该偏好,同时偏好一个或多个其他偏好(例如,与出于性能原因对资源进行集群相关联的偏好或与出于冗余目的对资源进行分布相关联的偏好)。如这些示例所示,放置决策通常可以基于以下的任意组合:(i)用户指定的放置偏好(以及与每个放置偏好相关联的可选权重/优先级);(ii)与启动请求关联的属性以及(iii)与正在将资源启动到其中的一组物理服务器中的物理服务器相关联的属性和状态信息。
在一些实施方案中,用户可以可选地将组101内的一个或多个专用主机指定为处于引退路径上。将主机指定为处于引退路径上通常指示用户希望主机继续执行任何现有实例,但放置过程要避免选择主机来启动任何附加实例。例如,如果用户希望减小组的大小或重新调整一个或多个组服务器的用途,则用户可以将组中的特定物理服务器指定为在引退路径上。在一些实施方案中,被指定为在引退路径上的服务器将在用于资源启动的候选目的地中被自动分配可能的最低排名或以其他方式评分,使得,如果可能,放置服务避免为新实例启动选择该主机。
在一些实施方案中,相同的用户可配置放置偏好可以应用于新实例启动以及实例重启,或者在其他实施方案中,特定放置偏好可以被配置并用于实例重启。例如,在重启组101内的现有实例时,可以应用一个或多个放置规则来确定是否将要再次将实例放置在之前运行该实例的同一物理服务器上(假设仍有足够的容量可用),或者是否基于组内的更新条件或其他偏好在不同的物理服务器处启动实例。
在一些实施方案中,提供商网络100提供一个或多个图形用户界面(GUI),其使用户能够指定各种类型的用户可配置放置偏好以应用于用户的启动请求。例如,GUI可以包括界面元素,其使用户能够指示用户需要什么类型的偏好、指定要与一个或多个放置偏好相关联的加权(例如,使用滑动条或其他输入机制)、指定与用于确定每次启动要应用哪些放置偏好的实例启动相关联的标签或其他元数据,等等。在一些实施方案中,用户还可以提供输入,所述输入指定自定义代码或用户已经创建的其他逻辑以作为某些放置确定的一部分来执行。例如,用户可以上传可用于基于指示启动请求属性和当前系统条件的输入生成放置确定的脚本或其他可执行逻辑,或者用户可以创建由提供商网络100的另一个服务执行的代码等等,该代码作为放置确定的一部分被调用并且返回组内的用于启动资源的优选服务器的指示。在一些实施方案中,GUI还可以显示反映服务提供商基于用户提供的放置偏好做出的一个或多个历史放置确定的数据。
在一些实施方案中,用户可以例如响应于改变性能需求、系统条件或其他原因而随着时间的推移更新放置偏好。例如,用户可以使用如上所述的GUI来选择一组先前定义的放置偏好、提供指定对现有放置偏好的一个或多个修改(例如,通过修改相关联的权重、相对偏好优先级等等)的附加输入、移除或添加放置偏好,或进行其他更改,这些更改可以保存为一组更新的放置偏好。在一些实施方案中,一组定义的放置偏好可以被复制并应用于与提供商网络100的相同或不同用户相关联的一个或多个其他物理服务器池或专用物理服务器组。
在接收到指定一个或多个放置偏好的用户输入时,在一些实施方案中,接口108向CM前端109发送一个或多个消息,如标记为“B”的三角形处所指示的。该消息可以包括标识用户和用户指定的放置偏好的信息。在一些实施方案中,CM前端109从CM后端112卸载与管理提供商网络相关联的操作的一部分以减少CM后端112的工作负载。在一些实施方案中,在三角形“C”处,CM前端109向放置服务114发送指示放置偏好的消息。在其他实施方案中,指定放置偏好的输入经由接口108直接发送到放置服务114,而不涉及CM前端109。
在三角形“D”处,放置服务处理消息并存储用户指定放置偏好的表示。例如,指定的放置偏好可以与请求用户的标识符相关联地并且进一步与相关的一组或多组专用物理服务器(或一组专用物理服务器内的一个或多个定义的服务器池)的标识符相关联地存储在数据存储(例如,CM数据存储124)中。在一些实施方案中,所存储的放置偏好可以被表示为加权决策矩阵或其他数据表示,其使得放置服务114能够对物理服务器处的候选插槽进行排序,如本文关于示例放置请求所描述的。
如上所述,参考与在组101内启动VM实例相关联的一组示例性事件和操作并参考图1中的带圆圈的数字“1”到“10”,针对提供商网络100描述了启动虚拟化计算资源的方面。在圆圈“1”处,用户使用电子装置104向提供商网络100发送一个或多个消息以请求启动一个或多个实例。在所示实施方案中,“启动路径”包括接口108、CM前端109、CM后端112和实例配置服务(ICS)116(其中,在一些实施方案中,这些部件中的一些或全部可形成至少一部分硬件虚拟化服务)。启动路径中的每个服务从一个或多个上游实体接收一个或多个消息(例如,CM前端109从接口108接收消息,接口108从电子装置104接收消息,等等)、执行一个或多个操作(例如,收集或验证信息),并向下游实体发送一个或多个消息(例如,CM前端109向CM后端112发送消息)。控制平面103的各种部件可以是促进如本文所述的操作的一组分布式服务或应用程序。其他实施方案可以组合或划分控制平面服务中的一个或多个(例如,组合CM前端109和CM后端112、拆分服务的功能等)。
在此示例中,启动一个或多个虚拟化计算资源的请求是将一个或多个VM实例启动到一组专用物理服务器101中的请求。由电子装置104发送的一个或多个消息可以进一步标识与每个请求的实例相关联的启动属性(例如,每个实例的CPU内核的数量、每个实例的内存量等)或可以将标识一个或多个启动属性的每个请求实例的实例类型的标识提供给控制平面。
在一些实施方案中,与请求相关联的启动属性还可以包括“标签”信息或标识请求的其他各种属性的其他元数据。例如,与启动请求相关联的一个或多个标签可以标识正在启动的资源类型(例如,以将实例标识为较大应用系统的前端应用程序或后端数据库服务)。如所指示的,正在启动的实例类型的标识可以与特定放置偏好相关联,该特定放置偏好指示希望出于延迟目的而对某些类型的实例进行集群,或者希望出于冗余目的而分布其他类型的实例(例如,一组数据库实例可以与一种或多种其他类型的实例集群以实现低延迟,但某些标记为“备份”的数据库实例除外,这些实例可能会出于冗余目的而分布)。
在一些实施方案中,启动属性可以附加地或替代地包括从机器映像或请求的其他属性自动导出的信息。例如,在一些示例中,诸如相关联的操作系统、用户应用程序、相关联的软件许可和其他实例属性的信息可以从启动请求或与启动请求相关联的数据中自动导出。
在接收到启动实例的消息时,接口108向CM前端109发送一个或多个消息,如圆圈“2”所示。消息可以包括标识请求用户并进一步标识所请求实例的类型或参数的信息。如上所述,在一些实施方案中,CM前端109从CM后端112卸载与管理提供商网络相关联的操作的一部分以减少CM后端112的工作负载。在一些实施方案中,CM后端112可以是唯一能够写入CM数据存储124的服务,CM数据存储可用作提供商网络100的状态的单一真实来源,并因此经受要求的工作负载。一种此类卸载操作是通过检查策略实施服务(PES)110来验证启动实例的请求可以沿着启动路径进行,如圆圈“3”所示。
PES 110根据一个或多个策略评估启动请求,以确定启动是否可以进行。示例性策略包括检查请求用户的信誉、用户是否对其可以启动的实例数量施加任何限制,以及请求是否可能导致组101内的资源短缺。在后一种情况下,PES 110从容量跟踪器服务(CTS)111获取容量信息,如圆圈“4”所示。在一些实施方案中,容量信息包括给定组101或服务器池中可用插槽的数量(例如,服务器池165中可用VM插槽的总数)和PES 110应开始限制获准的请求数量的阈值。PES 110根据容量信息评估启动请求,并且在一些情况下,可以拒绝启动请求。在PES 110因容量或其他原因拒绝请求的情况下,CM前端109和/或接口108向客户提供失败原因的指示。否则,PES 110允许启动请求。
假设PES 110允许请求,在圆圈“5”处,CM前端109向CM后端112发送一个或多个消息以继续与VM实例请求相关联的启动过程。CM后端112可以负责更新包含组101的状态的CM数据存储124(例如,包括指示每个物理服务器上的可用实例插槽的状态、哪些实例在哪些物理服务器上、那些实例的配置,等等)。在能够满足启动请求并更新组101的状态之前,CM后端112确定在组101内的何处启动所请求的实例。为了进行该放置确定,在圆圈“6”处,CM后端112向放置服务114发送一个或多个消息以获得放置信息。
放置服务114评估组101的状态、与启动相关联的一个或多个启动属性(包括实例目的地的组或服务器池的指示)以及任何用户指定的放置偏好以确定在哪里启动实例。组101可以包括多个物理服务器,每个物理服务器具有不同的属性和可用容量的量。如参考图2更详细地描述的,放置服务114通过评估这些各种参数来标识所请求实例的位置。在做出放置确定时,放置服务114将放置信息返回给CM后端112。此类放置信息可以包括在其上启动实例的主机池或组内的物理服务器的标识符,以及逻辑地跟踪组101内的那些资源的使用的插槽标识符。在一些实施方案中,放置服务114还向CTS111发送更新的容量使用信息,如圆圈“7”所示,使得CTS 111可以更新其容量信息。
注意,在用户已请求启动多于一个实例并且该请求已进行到CM后端112的情况下,CM后端112可以将放置请求序列化到放置服务114,或者放置服务114可以序列化从CM后端112接收到的批次放置请求。
对于图1中的VM实例请求的示例,放置服务114向CM后端112返回物理服务器154的标识符和插槽162的标识符。如物理服务器154A(启动前)所示,插槽162在启动请求之前未被实例占用。在圆圈“8”处,CM后端112更新CM数据存储124以指示实例将在物理服务器154上启动。在更新CM数据存储124以指示将在物理服务器154上启动实例之后,CM后端112向ICS 116发送一个或多个消息以配置和启动实例,如圆圈“9”所示。
ICS 116从CM后端112接收指令以配置和启动实例。ICS 116根据一个或多个参数执行工作流以配置和启动实例,例如计算、内存、网络、存储或其他配置设置。那些参数可以从CM后端112接收或基于在CM数据存储124内定位参数的一个或多个接收到的标识符来获取。如圆圈“10”所示,ICS 116与被指定托管实例的组101的物理服务器通信,发送一个或多个消息以配置和启动实例。例如,在一些实施方案中,ICS 116可以使作为组101的电子装置的一部分(即,与其耦合)的卸载卡(其可以包括一个或多个处理器、本地存储器、物理网络接口等)启动计算实例。卸载卡可以实现虚拟化管理器,其可以独立于管理程序或与使用电子装置的传统CPU执行的管理程序组合管理例如在主机电子装置上执行的的虚拟机计算实例。例如,在一些实施方案中,由卸载卡实现的虚拟化管理器可以实例化和/或终止虚拟机,从而消除管理程序执行这些任务的需要,这可以提高虚拟机本身的性能,因为没有必要与管理程序竞争资源。
可替代地,在一些实施方案中,ICS 116与管理程序交互(例如,经由VM管理服务器)以使计算实例启动。在任一情况下,ICS116使物理服务器创建具有请求的硬件配置(例如,访问本地固态驱动器、具有两个网络接口、访问本地图形加速器、四个内核和8GB内存)和软件配置(执行包括Linux或其他操作系统的机器映像,等等)的虚拟机或其他环境。继续图1中的启动示例,ICS 116使VM实例163在物理服务器154B(示出了启动后的物理服务器154A)上启动。
注意图1所示的环境示出了启动路径和相关联的控制平面服务的一种示例性配置。其他启动路径和控制平面服务配置也是可能的。例如,CM前端109可以向放置服务114请求放置信息并将获得的放置信息传递给CM后端112,CM前端109和CM后端112可以组合,放置服务114和CTS 111可以访问CM数据存储124的读取副本而不是与CM后端112正在写入的相同数据存储,CM后端112可以代替放置服务114进行放置确定,等等。通过使用户能够定义在启动路径期间应用的自定义放置偏好,如上所述,提供商网络100能够允许用户显著更多地控制将实例放置到专用物理服务器组中,以及其他益处。
图2是绘示根据一些实施方案的涉及放置服务的示例性操作和消息传递的图,该放置服务被配置为允许用户定义用于将虚拟化计算资源放置到提供商网络中的专用物理服务器组中的自定义放置规则。在高层,放置服务114跟踪主机实例处的插槽的可用性并响应于放置请求根据内部放置规则以及任何适用的用户指定的放置偏好来选择插槽。如图所示,放置服务114包括候选服务器/插槽数据202、排序器214和放置偏好208,其可以体现为作为放置服务114的分布式或其他类型的应用程序、服务或部件的一部分的一组指令。与放置服务114相关联的一组示例性事件和操作参考图2的带圆圈的数字“1”至“3”来描述。
为了便于选择用于托管实例的插槽,候选服务器/插槽数据302被维护并且标识用于托管实例的可用插槽,以及与每个服务器和/或插槽相关联的各种属性信息。例如,属性信息可以指示关于每个服务器的资源信息、关于当前与各种服务器相关联的软件许可的信息、与当前由每个服务器托管的实例相关联的属性信息,等等。如下所述,排序器214响应于放置请求根据放置偏好208来评估候选服务器/插槽数据。
在一些实施方案中,候选服务器/插槽数据202部分地使用资源向量来标识潜在插槽,该资源向量标识实例托管物理服务器中的一组资源。示例性资源向量能够以<内核数,内存量>的格式表示计算和内存。例如,假设物理服务器上的插槽分配有四核处理器和8千兆字节(GB)内存,则此容量可以表示为<4,8>。请注意,资源向量可以扩展到任意数量的维度。例如,如果实例托管电子装置包括一个加速器和两个本地磁盘,形式为<内核数,内存量,加速器,磁盘>的资源向量可以是<4,8,1,2>。其他部件也可能依赖资源向量作为数据结构来交换或获得有关实例的信息。参考图1,例如,接口108可以将对实例的客户请求转换成资源向量,该资源向量被控制平面103中的其他实体向下传递或引用。
在圆圈“1”处,放置服务从CM后端112接收放置请求。在此示例中,请求是针对VM实例并且与一个或多个启动属性相关联。响应于该请求,排序器214从候选服务器/插槽数据202中选择插槽,如圆圈“2”所示。排序器214应用一个或多个放置偏好208以从候选服务器/插槽数据202中选择插槽,包括与正在启动实例的一组服务器相关联的任何用户指定的放置偏好。示例性放置偏好过滤和/或评分候选插槽以选择满足请求的插槽。如上所述,基于用户指定的放置偏好过滤和/或评分候选插槽可以包括但不限于:基于某些物理服务器与特定软件许可的关联、基于某些服务器上其他类型的实例的存在、基于某些服务器的性能特征来过滤和/或评分候选插槽,等等。插槽的选择还可以基于不是由用户指定而是基于由提供商网络100指定的标准的其他因素。在一些实施方案中,放置偏好的应用涉及应用与放置请求相关联的属性、与组的候选服务器相关联的属性以及可能的其他系统条件作为加权矩阵计算或其他类型的过程,该过程可以基于为每个可用插槽和/或物理服务器生成的加权分数来对可用插槽排序。
一旦排序器已经选择了插槽(例如,基于放置偏好对启动请求属性的应用而具有最高排名的插槽),放置服务114将所选插槽的标识返回给CM后端112,如圆圈“3A”所示,并且在一些实施方案中,进一步向CTS 111发送插槽已经被(或将被)消耗的指示,如圆圈“3B”所示。
如圆圈“3C”所示,执行插槽选择的排序器214更新候选服务器/插槽数据202以指示选择了候选数据中的插槽之一。尽管未示出,但是放置服务114也响应于实例终止而执行操作。例如,CM后端112可以向放置服务114发送指示实例被终止的消息。响应于该指示,放置服务114可以更新相应的候选服务器/插槽数据202以包括该插槽。
如上所述,在一些实施方案中,用户还可以提供用户希望作为放置确定的一部分来执行的自定义代码或其他用户创建的逻辑。例如,在由放置服务114调用代码时,用户可以创建由放置服务114执行或由提供商网络100的一个或多个辅助服务216(例如,硬件虚拟化服务、容器服务等)执行的用户生成的放置代码218。用户生成的放置代码218可以被配置为使用指示启动请求属性、可用插槽信息、当前系统条件以及可能特定于用户的计算环境的其他参数的输入来根据自定义逻辑对可用插槽或服务器进行排序。例如,放置服务114可以提供使此类用户逻辑能够获得插槽信息、系统属性和可能的其他信息并且发送指定放置确定的请求的API。
在一些实施方案中,提供商网络100可以提供一个或多个GUI,其使用户能够查看与他们的放置偏好如何被应用相关的信息。例如,用户可以访问GUI或其他界面,其提供对应用于一个或多个启动请求的过滤器/加权值的指示以及对那些值如何导致选择特定插槽的指示。以这种方式,用户可以更好地理解和诊断与可能以用户非预期的方式做出的放置决策相关的问题。
图3是绘示根据一些实施方案的涉及云管理器后端服务的示例性操作和消息传递和可以用作提供商网络中的容量管理的一部分的示例性数据的图。图3的右侧绘示了可以用作提供商网络中的容量管理的一部分的示例性数据。在一些实施方案中,CM数据存储124包括可以经由一个或多个控制平面实体直接或间接访问的数据库。CM数据存储124可以包括装置和插槽数据300,其可以包括插槽信息302、资源向量304和装置数据306的集合(或表)中的一者或多者。
在一些实施方案中,插槽信息302的每个条目(或行、记录等)包括物理服务器标识符(其唯一地标识提供商网络内的特定主机物理服务器)和在该物理服务器的上下文内是唯一的插槽号。例如,图1的物理服务器150可以具有插槽标识符0-7以反映其八个VM插槽中的每一个(无论是否使用它们)。插槽信息302中的条目还可以包括资源向量或资源向量标识符以直接或间接标识插槽使用的资源(例如,有多少计算、内存、网络、存储或其他容量被分配给该插槽)。资源向量标识符可用于间接标识资源向量304中的资源向量,诸如定义特定实例类型的资源向量。在占用插槽的情况下,插槽信息302中的条目还可以包括唯一标识占用该插槽的实例的实例标识符。在一些实施方案中,该实例标识符可以被编码以指示没有实例在插槽内被实例化,或者条目中的单独记录可以指示插槽是否被占用。
因此,在各种实施方案中,该装置和插槽数据300可用于确定本文描述的操作的有用信息。例如,在一些实施方案中,放置服务114可以通过从与电子装置相关联的插槽信息302(其中实例标识符或一些其他标志指示没有实例占用该插槽)获取插槽号来确定候选插槽。
与CM后端112相关联的一组示例性事件和操作参考图3的带圆圈的数字“1”到“4”描述。在圆圈“1”处,CM后端112从CM前端109接收与请求的实例启动相关的一个或多个消息。此类消息可包括关于所请求实例的大小或要求(例如,资源向量、表征计算、网络、内存的参数和其他参数)和各种其他启动属性的信息。在圆圈“2”处,CM后端112向放置服务114发送一个或多个消息以请求所请求实例的放置信息。在接收到包括插槽信息的放置信息时,CM后端112通过检查CM数据存储124来标识插槽,如圆圈“3”所示,并相应地更新对应的插槽信息302。然后CM后端112向ICS 116发送一个或多个消息以启动实例,如圆圈“4”所示。
例如,放置服务114可以返回标识图1中的物理服务器154的插槽2的放置信息。由于插槽2未被占用,CM后端112用启动的实例的标识符更新插槽信息402中的现有条目。
虽然图1中的示例绘示了对位于一个或多个服务提供商管理的数据中心的专用物理服务器组的用户指定放置偏好的管理和应用,但是此处描述的过程也可用于其中一些或所有物理服务器位于与服务提供商网络分开的一个或多个客户网络的环境中。
图4绘示了包括容纳在一个或多个远程客户网络处的一组专用主机的环境的示例。如图所示,一组物理服务器(例如,包括物理服务器150-154)位于一个或多个数据中心或一个或多个客户网络401内的其他位置(或与提供商网络100分开的其他边缘位置)。在一些实施方案中,服务提供商向几乎任何数据中心或其他内部设施提供服务、基础设施和操作模型。在一些示例中,用户可以跨内部和提供商网络100中的资源使用相同的API、工具、硬件和相同的功能作为混合体验。例如,用户可能希望使用内部硬件来支持受益于低延迟或本地数据处理需求和其他原因的工作负载。在一些实施方案中,组的物理服务器可以从服务提供商购买或以其他方式获得并安装在客户管理的网络中,或者物理服务器可以从其他来源获得并且被配置为与提供商网络100交接。
在一些实施方案中,提供商网络100使用户能够以与服务器容纳在由服务提供商管理的数据中心处几乎相同的方式来管理位于客户网络401内的物理服务器组处的虚拟化计算资源的使用。例如,用户可以使用接口108将虚拟化计算资源启动到物理服务器上、配置自定义放置偏好、管理执行资源等操作。在此示例中,提供商网络100的用户甚至可以对虚拟化计算资源在其上执行的物理硬件和基础设施拥有更多控制,同时利用提供商网络100提供的控制平面和其他功能。因此,类似于图1中描述的示例,当将新资源放置到位于客户网络401内(或跨提供商网络100和客户网络401)的物理硬件上时,用户可以配置由放置服务114应用的自定义放置偏好。
图5是绘示根据一些实施方案的用于使服务提供商的用户能够管理用于将虚拟化计算资源启动到一组专用物理服务器中的放置偏好的方法的操作500的流程图。一些或所有操作500(或本文描述的其他过程,或其变体和/或组合)在配置有可执行指令的一个或多个计算机系统的控制下执行,并被实现为通过硬件或其组合在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)。该代码例如以包括可由一个或多个处理器执行的指令的计算机程序的形式存储在计算机可读存储介质上。该计算机可读存储介质是非暂时性的。在一些实施方案中,一个或多个(或全部)操作500由其他图的放置服务114执行。
操作500包括:在框502处,接收指示与专用于服务提供商的用户的一组物理服务器相关联的一个或多个虚拟化计算资源放置偏好的输入。参考图1,例如,用户102可以经由接口108提供输入,该输入指示与一组专用物理服务器101(或与组内定义的服务器池)相关联的虚拟化计算资源放置偏好。
操作500还包括:在框504处,接收启动虚拟化计算资源的请求,该请求与一个或多个启动属性相关联。例如,可以经由接口108接收启动请求,其中该请求与一个或多个启动属性相关联(例如,指示虚拟化计算资源的类型、与虚拟化计算资源相关联的资源要求、与虚拟化计算资源相关联的一个或多个软件许可、与虚拟化计算资源相关联的一个或多个应用程序或其组合)。
操作500还包括:在框506处,基于一个或多个虚拟化计算资源放置偏好和一个或多个启动属性,从该组物理服务器中选择要在其处启动虚拟化计算资源的物理服务器。例如,放置服务114可以基于放置偏好和启动属性来选择物理服务器。
操作500还包括:在框508处,使物理服务器执行虚拟化计算资源。例如,ICS 116可以使所选物理服务器执行虚拟化计算资源(图1的示例中的物理服务器154)。
在一个实施方案中,操作还包括:接收指示对虚拟化计算资源放置偏好的一个或多个修改的附加输入;基于附加输入存储修改的虚拟化计算资源放置偏好;接收将第二虚拟化计算资源启动到该组物理服务器中的第二请求,该第二请求与一个或多个第二启动属性相关联;基于修改的虚拟化计算资源放置偏好和一个或多个第二启动属性为第二虚拟化计算资源选择第二物理服务器;并使该物理服务器执行第二虚拟化计算资源。
在一些实施方案中,该输入是第一输入,并且其中该组物理服务器包括第一物理服务器池,该第一物理服务器池包括该组物理服务器的第一物理服务器子集,并且所述操作还包括:接收定义第二物理服务器池的第二输入,该第二物理服务器池包括该组物理服务器的第二物理服务器子集;接收指示与该第二物理服务器池相关联的一个或多个虚拟化计算资源放置偏好的第三输入;接收将第二虚拟化计算资源启动到该第二物理服务器池中的另一个请求;以及基于与第二物理服务器池相关联的一个或多个虚拟化计算资源放置偏好,从第二物理服务器池选择第二物理服务器。
在一些实施方案中,一个或多个虚拟化计算资源放置偏好中的至少一个与对应的权重相关联,并且其中计算机实现的方法还包括至少部分地基于与对应的权重相关联的一个或多个虚拟化计算资源放置偏好为物理服务器生成加权分数,其中该加权分数用于从该组物理服务器中选择物理服务器。
在一些实施方案中,操作还包括获得与该组物理服务器中的物理服务器相关联的属性信息,并且其中选择物理服务器还基于与该组物理服务器中的物理服务器相关联的属性信息。
在一些实施方案中,一个或多个虚拟化计算资源放置偏好包括以下各项中的至少一者:对与特定启动属性相关联的虚拟化计算资源进行集群的偏好、对与跨两个或更多个逻辑分区的特定启动属性相关联的虚拟化计算资源进行分区的偏好或跨该组物理服务器中的物理服务器分布实例的偏好。
在一些实施方案中,一个或多个虚拟化计算资源放置偏好中的至少一个包括基于与虚拟化计算资源相关联的公共软件许可来对虚拟化计算资源进行集群的偏好。
在一些实施方案中,一个或多个虚拟化计算资源放置偏好包括以下各项中的至少一者:最小化该组物理服务器中的执行虚拟化计算资源的物理服务器的数量的偏好或者最小化在该组物理服务器中的每个物理服务器上执行的虚拟化计算资源的数量的偏好。
在一些实施方案中,该输入是第一输入,并且所述操作还包括:接收请求引退该组物理服务器中的特定物理服务器的第二输入;并且其中选择该组物理服务器中的要在其处启动虚拟化计算资源的物理服务器包括避免选择该特定物理服务器。
在一些实施方案中,一个或多个启动属性包括对以下各项中的一项或多项的指示:虚拟化计算资源的类型、与虚拟化计算资源相关联的资源要求、与虚拟化计算资源相关联的一个或多个软件许可、与虚拟化计算资源相关联的一个或多个应用程序。
在一些实施方案中,所示操作还包括:致使显示包括使用户能够指定一个或多个虚拟化计算资源放置偏好的界面元素的图形用户界面(GUI);经由GUI的界面元素接收输入;以及致使显示反映一个或多个历史放置确定的数据。
在一些实施方案中,指示一个或多个虚拟化计算资源放置偏好的输入包括用户创建的放置代码,并且其中从该组物理服务器中选择要在其处启动虚拟化计算资源的物理服务器包括调用用户创建的放置代码的执行,其中用户创建的放置代码的执行返回对该物理服务器的指示。
图6绘示了根据一些实施方案的示例提供商网络(或“服务提供商系统”)环境。提供商网络600可以经由一个或多个虚拟化服务610向客户提供资源虚拟化,该虚拟化服务允许客户购买、租用或以其他方式获得在一个或多个数据中心中的一个或多个提供商网络内的装置上实现的虚拟化资源的实例612,包括但不限于计算和存储资源。本地互联网协议(IP)地址616可以与资源实例612相关联;本地IP地址是提供商网络600上的资源实例612的内部网络地址。在一些实施方案中,提供商网络600还可以提供客户可以从提供商600获得的公共IP地址614和/或公共IP地址范围(例如,互联网协议版本4(IPv4)或互联网协议版本6(IPv6)地址)。
常规地,经由虚拟化服务610,提供商网络600可以允许服务提供商的客户(例如,操作包括一个或多个客户装置652的一个或多个客户网络650A-650C的客户)将指定或分配给客户的至少一些公共IP地址614与指定给客户的特定资源实例612相关联。提供商网络600还可以允许客户将先前映射到分配给客户的一个虚拟化计算资源实例612的公共IP地址614重新映射到也分配给客户的另一个虚拟化计算资源实例612。使用由服务提供商提供的虚拟化计算资源实例612和公共IP地址614,诸如客户网络650A-650C的运营商之类的服务提供商的客户可以例如实现客户特定的应用程序并在中间网络640诸如互联网上呈现客户的应用程序。然后中间网络640上的其他网络实体620可以生成到由客户网络650A-650C发布的目的地公共IP地址614的流量;该流量被路由到服务提供商数据中心,并且在数据中心处经由网络基板被路由到当前映射到目的地公共IP地址614的虚拟化计算资源实例612的本地IP地址616。类似地,来自虚拟化计算资源实例612的响应流量可以经由网络基板路由回到中间网络640上再到源实体620。
如本文所使用的,本地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地址可以分配给提供商网络600的客户或由其获得;然后,客户可以将他们分配的公共IP地址分配给被分配给客户的特定资源实例。这些公共IP地址可以被称为客户公共IP地址,或简称为客户IP地址。与在标准IP地址的情况下由提供商网络600分配给资源实例不同,客户IP地址可以由客户分配给资源实例,例如经由服务提供商提供的API。与标准IP地址不同,客户IP地址分配给客户账户,并且可以在必要时或根据需要由相应客户重新映射到其他资源实例。客户IP地址与客户的账户相关联,而不是与特定资源实例相关联,并且客户控制该IP地址,直到客户选择释放它。与常规的静态IP地址不同,客户IP地址允许客户通过将客户的公共IP地址重新映射到与客户的账户相关联的任何资源实例来屏蔽资源实例或可用区域故障。例如,客户IP地址使客户能够通过将客户IP地址重新映射到更换资源实例来解决客户资源实例或软件的问题。
图7是根据一些实施方案的向客户提供存储服务和硬件虚拟化服务的示例提供商网络的框图。硬件虚拟化服务720向客户提供多个计算资源724(例如,VM)。例如,计算资源724可以出租或租赁给提供商网络700的客户(例如,实现客户网络750的客户)。每个计算资源724可以具有一个或多个本地IP地址。提供商网络700可以被配置为将数据包从计算资源724的本地IP地址路由到公共互联网目的地,并且从公共互联网源路由到计算资源724的本地IP地址。
提供商网络700可以提供给客户网络750(例如经由本地网络756耦合到中间网络740)经由耦合到中间网络740和提供商网络700的硬件虚拟化服务720实现虚拟计算系统792的能力。在一些实施方案中,硬件虚拟化服务720可以提供一个或多个API 702,例如网络服务接口,客户网络750可以经由一个或多个API 702访问由硬件虚拟化服务720提供的功能,例如,经由控制台794(例如,基于Web的应用程序、独立应用程序、移动应用程序等)。在一些实施方案中,在提供商网络700处,客户网络750处的每个虚拟计算系统792可以对应于被租赁、租用或以其他方式提供给客户网络750的计算资源724。
从虚拟计算系统792和/或另一客户装置790(例如,经由控制台794)的实例,客户可以访问存储服务710的功能,例如经由一个或多个API 702,以访问来自由提供商网络700提供的虚拟数据存储716(例如,文件夹或“桶”、虚拟化卷、数据库等)的存储资源718A-718N的数据和将数据存储到该存储资源。在一些实施方案中,可以在客户网络750处提供虚拟化数据存储网关(未示出),该虚拟化数据存储网关可以本地高速缓存至少一些数据,例如频繁访问的或关键的数据,并且可以经由一个或多个通信信道与存储服务710通信以从本地高速缓存上传新的或修改的数据,使得维护数据的主存储(虚拟化数据存储716)。在一些实施方案中,经由虚拟计算系统792和/或在另一客户装置790上,用户可以经由充当存储虚拟化服务的存储服务710安装和访问虚拟数据存储716卷,并且这些卷可呈现给用户作为本地(虚拟化)存储798。
虽然未在图7中示出,但是也可以经由API 702从提供商网络700内的资源实例访问虚拟化服务。例如,客户、设备服务提供商或其他实体可以经由API 702从提供商网络700上的相应虚拟网络内访问虚拟化服务,以请求分配虚拟网络内或另一虚拟网络内的一个或多个资源实例。
在一些实施方案中,实现如本文所述的用于使服务提供商的用户能够管理用于将虚拟化计算资源启动到一组专用物理服务器组中的放置偏好的技术的一部分或全部的系统可以包括通用计算机系统,该通用计算机系统包括或被配置为访问一个或多个计算机可访问介质,诸如图8所示的计算机系统800。在所示实施方案中,计算机系统800包括经由输入/输出(I/O)接口830耦合到系统存储器820的一个或多个处理器810。计算机系统800还包括耦合到I/O接口830的网络接口840。虽然图8将计算机系统800示出为单个计算装置,但在各种实施方案中,计算机系统800可以包括一个计算装置或被配置为作为单个计算机系统800一起工作的任意数量的计算装置。
在各种实施方案中,计算机系统800可以是包括一个处理器810的单处理器系统,或包括若干处理器810(例如,两个、四个、八个或另一合适数量)的多处理器系统。处理器810可以是能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器810可以是通用或嵌入式处理器,其实现多种指令集架构(ISA)中的任一种,诸如x86、ARM、PowerPC、SPARC或MIPS ISA、或任何其他合适的ISA。在多处理器系统中,处理器810中的每一个通常可以但不必实现相同的ISA。
系统存储器820可以存储处理器810可访问的指令和数据。在各种实施方案中,系统存储器820可以使用任何合适的存储器技术来实现,诸如随机存取存储器(RAM)、静态RAM(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器或任何其他类型的存储器。在所示实施方案中,实现一个或多个期望功能的程序指令和数据,诸如上述那些方法、技术和数据,被示为作为代码825和数据826存储在系统存储器820内。
在一个实施方案中,I/O接口830可以被配置为协调处理器810、系统存储器820和装置中的任何外围装置(包括网络接口840或其他外围接口)之间的I/O流量。在一些实施方案中,I/O接口830可以执行任何必要的协议、时序或其他数据转换以将来自一个组件(例如,系统存储器820)的数据信号转换成适合由另一部件(例如,处理器810)使用的格式。在一些实施方案中,I/O接口830可以包括对通过各种类型的外围总线附接的装置的支持,诸如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变体。在一些实施方案中,I/O接口830的功能可以分成两个或更多个单独的部件,例如诸如北桥和南桥。此外,在一些实施方案中,I/O接口830的一些或全部功能,例如到系统存储器820的接口,可以直接并入处理器810中。
网络接口840可以被配置为允许在计算机系统800和附接到一个或多个网络850的其他装置860(例如,诸如如图1所示的其他计算机系统或装置)之间交换数据。在各种实施方案中,网络接口840可以支持经由任何合适的有线或无线通用数据网络(例如,诸如以太网类型)的通信。此外,网络接口840可以支持经由电信/电话网络诸如模拟语音网络或数字光纤通信网络、经由存储区域网络(SAN)诸如光纤通道SAN或经由I/O任何其他合适类型的网络和/或协议的通信。
在一些实施方案中,计算机系统800包括一个或多个卸载卡870(包括一个或多个处理器875,并且可能包括一个或多个网络接口840),其使用I/O接口830(例如,实现外围组件互连高速(PCI-E)标准的版本的总线,或诸如快速路径互连(QPI)或超路径互连(UPI)的另一互连)连接。例如,在一些实施方案中,计算机系统800可以充当托管计算实例的主机电子装置(例如,作为硬件虚拟化服务的一部分操作),并且一个或多个卸载卡870执行可以管理在主机电子装置上执行的计算实例的虚拟化管理器。例如,在一些实施方案中,卸载卡870可以执行计算实例管理操作,诸如暂停和/或取消暂停计算实例、启动和/或终止计算实例、执行存储器传输/复制操作等。在一些实施方案中,这些管理操作可以由卸载卡870与由计算机系统800的其他处理器810A-810N执行的管理程序协调执行(例如,根据来自管理程序的请求)。然而,在一些实施方案中,由卸载卡870实现的虚拟化管理器可以适应来自其他实体(例如,来自计算实例本身)的请求,并且可能不与任何单独的管理程序协调(或服务)。
在一些实施方案中,系统存储器820可以是被配置为存储如上所述的程序指令和数据的计算机可访问介质的一个实施方案。然而,在其他实施方案中,程序指令和/或数据可以被接收、发送或存储在不同类型的计算机可访问介质上。一般而言,计算机可访问介质可以包括非暂时性存储介质或存储器介质,诸如磁性或光学介质,例如经由I/O接口830耦合到计算机系统800的磁盘或DVD/CD。非暂时性计算机可访问存储介质还可以包括任何易失性或非易失性介质,诸如RAM(例如,SDRAM、双倍数据速率(DDR)SDRAM、SRAM等)、只读存储器(ROM)等,其可以包括在计算机系统800的一些实施方案中作为系统存储器820或另一种类型的存储器。此外,计算机可访问介质可以包括经由诸如网络和/或无线链路之类的通信介质(诸如可以经由网络接口840实现)传送的传输介质或信号,诸如电信号、电磁信号或数字信号。
在前面的描述中,描述了各种实施方案。出于解释的目的,阐述了具体配置和细节以提供对实施方案的透彻理解。然而,对于本领域技术人员来说显而易见的是,可以在没有具体细节的情况下实践这些实施方案。此外,可以省略或简化众所周知的特征以免混淆所描述的实施方案。
加括号的文本和带有虚线边框的块(例如,大连接号、小连接号、点划线和点)在本文中用于说明向一些实施方案添加附加特征的可选操作。然而,这样的符号不应被理解为意味着这些是仅有的选项或可选操作,和/或在某些实施方案中具有实心边界的块不是可选的。
带有后缀字母的参考数字(例如,718A-718N)可以用于指示在各个实施方案中可以有一个或多个被引用实体的实例,并且当有多个实例时,每个实例不需要相同,而是可以共享一些通常的特征或以共同的方式起作用。此外,所使用的特定后缀并不意味着存在特定数量的实体,除非另有特别说明。因此,在各种实施方案中,使用相同或不同后缀字母的两个实体可能具有或可能不具有相同数量的实例。
对“一个实施方案”、“实施方案”、“示例实施方案”等的引用,表示所描述的实施方案可以包括特定特征、结构或特性,但每个实施方案可能不一定包括特定特征、结构、或特征。此外,这些短语不一定指相同的实施方案。进一步,当结合实施方案描述特定的特征、结构或特点时,可以认为结合其他实施方案来影响这种特征、结构或特性在本领域技术人员的知识范围内,无论有没有明确描述。
此外,在上述各种实施方案中,除非另有特别说明,诸如短语“A、B或C中的至少一个”的分离语言旨在被理解为意指A、B或C,或其任何组合(例如,A、B和/或C)。因此,析取语言无意也不应被理解为暗示给定实施方案需要A中的至少一个、B中的至少一个或C中的至少一个各自存在。
所公开的技术的至少一些实施方案可以根据以下条款进行描述:
1.一种计算机实现的方法,其包括:
从多租户提供商网络的用户接收指示与专用于用户的一组物理服务器相关联的一个或多个用户指定的虚拟机(VM)放置偏好的输入,其中多租户提供商网络包括可用于多个用户的VM的多个物理服务器,并且还包括仅可用于用户的VM的该组物理服务器;
将一个或多个用户指定的VM放置偏好存储为该组物理服务器的属性;
接收将VM启动到该组物理服务器中的请求,该请求与一个或多个启动属性相关联;
基于一个或多个用户指定的VM放置偏好和一个或多个启动属性,从该组物理服务器的一组候选VM插槽中为VM选择特定物理服务器处的VM插槽,其中VM插槽表示特定物理服务器的未使用计算容量的量;以及
使物理服务器执行VM。
2.根据条款1所述的计算机实现的方法,其还包括:
接收指示对一个或多个用户指定的VM放置偏好的一个或多个修改的附加输入;
基于附加输入存储修改的VM放置偏好;
接收将第二VM启动到该组物理服务器中的第二请求,该第二请求与一个或多个第二启动属性相关联;
基于修改的VM放置偏好和一个或多个第二启动属性,从位于该组物理服务器中的一个或多个物理服务器处的第二组候选VM插槽中为VM选择第二VM插槽;以及
致使物理服务器执行第二VM。
3.根据条款1或2中任一项所述的计算机实现的方法,其中该输入是第一输入,并且其中该组物理服务器包括第一物理服务器池,该第一物理服务器池包括该组物理服务器的第一物理服务器子集,所述方法还包括:
接收定义第二物理服务器池的第二输入,该第二物理服务器池包括该组物理服务器的第二物理服务器子集;
接收指示与第二物理服务器池相关联的一个或多个VM放置偏好的第三输入;
接收将第二VM启动到第二物理服务器池中的另一个请求;以及
基于与第二物理服务器池相关联的一个或多个VM放置偏好,从位于第二物理服务器池中的一个或多个物理服务器处的一组候选VM插槽中为第二VM选择VM插槽。
4.一种计算机实现的方法,其包括:
接收指示与专用于服务提供商的用户的一组物理服务器相关联的一个或多个虚拟化计算资源放置偏好的输入;
接收启动虚拟化计算资源的请求,该请求与一个或多个启动属性相关联;
基于一个或多个虚拟化计算资源放置偏好和一个或多个启动属性,从该组物理服务器中选择要在其处启动虚拟化计算资源的物理服务器;以及致使物理服务器执行虚拟化计算资源。
5.根据条款4所述的计算机实现的方法,其还包括:
接收指示对所述虚拟化计算资源放置偏好的一个或多个修改的附加输入;
基于附加输入存储修改的虚拟化计算资源放置偏好;
接收将第二虚拟化计算资源启动到该组物理服务器中的第二请求,该第二请求与一个或多个第二启动属性相关联;
基于修改的虚拟化计算资源放置偏好和一个或多个第二启动属性为第二虚拟化计算资源选择第二物理服务器;以及
致使物理服务器执行第二虚拟化计算资源。
6.根据条款4或5中任一项所述的计算机实现的方法,其中该输入是第一输入,并且其中该组物理服务器包括第一物理服务器池,该第一物理服务器池包括该组物理服务器的第一物理服务器子集,所述方法还包括:
接收定义第二物理服务器池的第二输入,该第二物理服务器池包括该组物理服务器的第二物理服务器子集;
接收指示与第二物理服务器池相关联的一个或多个虚拟化计算资源放置偏好的第三输入;
接收将第二虚拟化计算资源启动到第二物理服务器池中的另一个请求;以及
基于与第二物理服务器池相关联的一个或多个虚拟化计算资源放置偏好,从第二物理服务器池中选择第二物理服务器。
7.根据条款4-6中任一项所述的计算机实现的方法,其中一个或多个虚拟化计算资源放置偏好中的至少一个与对应的权重相关联,并且其中所述计算机实现的方法还包括至少部分地基于与对应的权重相关联的一个或多个虚拟化计算资源放置偏好为物理服务器生成加权分数,其中该加权分数用于从该组物理服务器中选择物理服务器。
8.根据条款4-7中任一项所述的计算机实现的方法,其还包括获得与该组物理服务器中的物理服务器相关联的属性信息,并且其中选择物理服务器还基于与该组物理服务器中的物理服务器相关联的属性信息。
9.根据条款4-8中任一项所述的计算机实现的方法,其中一个或多个虚拟化计算资源放置偏好包括以下各项中的至少一者:对与特定启动属性相关联的虚拟化计算资源进行集群的偏好、对与跨两个或更多个逻辑分区的特定启动属性相关联的虚拟化计算资源进行分区的偏好或跨该组物理服务器中的所述物理服务器分布实例的偏好。
10.根据条款4-9中任一项所述的计算机实现的方法,其中一个或多个虚拟化计算资源放置偏好中的至少一个包括基于与虚拟化计算资源相关联的公共软件许可对虚拟化计算资源进行集群的偏好。
11.根据条款4-10中任一项所述的计算机实现的方法,其中一个或多个虚拟化计算资源放置偏好包括以下各项中的至少一者:最小化该组物理服务器的执行虚拟化计算资源的物理服务器的数量的偏好或者最小化在该组物理服务器中的每个物理服务器上执行的虚拟化计算资源的数量的偏好。
12.根据条款4-11中任一项所述的计算机实现的方法,其中所述输入是第一输入,并且其中所述方法还包括:
接收请求引退该组物理服务器中的特定物理服务器的第二输入;并且
其中选择该组物理服务器中的要在其处启动虚拟化计算资源的物理服务器包括避免选择该特定物理服务器。
13.根据条款4-12中任一项所述的计算机实现的方法,其中一个或多个启动属性包括对以下各项中的一项或多项的指示:虚拟化计算资源的类型、与所述虚拟化计算资源相关联的资源要求、与所述虚拟化计算资源相关联的一个或多个软件许可、与所述虚拟化计算资源相关联的一个或多个应用程序。
14.根据条款4-13中任一项所述的计算机实现的方法,其还包括:
致使显示包括使用户能够指定所述一个或多个虚拟化计算资源放置偏好的界面元素的图形用户界面(GUI);
经由GUI的界面元素接收输入;以及
致使显示反映一个或多个历史放置确定的数据。
15.根据条款4-14中任一项所述的计算机实现的方法,其中指示一个或多个虚拟化计算资源放置偏好的所述输入包括用户创建的放置代码,并且其中从该组物理服务器中选择要在其处启动所述虚拟化计算资源的所述物理服务器包括调用对所述用户创建的放置代码的执行,其中用户创建的放置代码的执行返回对物理服务器的指示。
16.一种系统,其包括:
托管虚拟机(VM)的一组物理服务器;和
由一个或多个电子装置实现的提供商网络的控制平面服务,该控制平面服务包括指令,该指令在执行时致使控制平面服务:
接收指示与专用于服务提供商的用户的一组物理服务器相关联的一个或多个VM放置偏好的输入;
接收将VM启动到该组物理服务器中的请求,该请求与一个或多个启动属性相关联;
基于一个或多个VM放置偏好和一个或多个启动属性,从该组物理服务器中的一个或多个物理服务器处的一组候选VM插槽中为VM选择VM插槽,其中该VM插槽表示该组物理服务器中的物理服务器的未使用计算容量的量;以及
致使物理服务器执行VM。
17.根据条款16所述的系统,其中所述指令在执行时使控制平面服务:
接收指示对VM放置偏好的一个或多个修改的附加输入;
基于附加输入存储修改的VM放置偏好;
接收将第二虚拟化计算资源启动到该组物理服务器中的第二请求,该第二请求与一个或多个第二启动属性相关联;
基于修改的VM放置偏好和一个或多个第二启动属性为第二虚拟化计算资源选择第二物理服务器;以及
致使物理服务器执行第二虚拟化计算资源。
18.根据条款16或17中任一项所述的系统,其中所述输入是第一输入,并且其中该组物理服务器包括第一物理服务器池,该第一物理服务器池包括该组物理服务器的第一物理服务器子集,并且其中所述指令在执行时致使控制平面服务:
接收定义第二物理服务器池的第二输入,该第二物理服务器池包括该组物理服务器的第二物理服务器子集;
接收指示与第二物理服务器池相关联的一个或多个虚拟化计算资源放置偏好的第三输入;
接收将第二虚拟化计算资源启动到第二物理服务器池中的另一个请求;并且
基于与第二物理服务器池相关联的一个或多个虚拟化计算资源放置偏好,从第二物理服务器池中选择第二物理服务器。
19.根据条款16-18中任一项所述的系统,其中一个或多个VM放置偏好中的至少一个与对应的权重相关联,并且其中所述指令在执行时致使控制平面服务至少部分地基于与对应的权重相关联的一个或多个VM放置偏好为物理服务器生成加权分数,其中该加权分数用于从该组物理服务器中选择物理服务器。
20.根据条款16-19中任一项所述的系统,其中选择物理服务器还基于与该组物理服务器中的物理服务器相关联的属性信息。
说明书和附图因此被视为说明性的而非限制性的。然而,很明显,在不脱离如权利要求书中阐述的本公开的更广泛的精神和范围的情况下,可以对其进行各种修改和改变。

Claims (15)

1.一种计算机实现的方法,其包括:
接收指示与专用于服务提供商的用户的一组物理服务器相关联的一个或多个虚拟化计算资源放置偏好的输入;
接收启动虚拟化计算资源的请求,所述请求与一个或多个启动属性相关联;
基于所述一个或多个虚拟化计算资源放置偏好和所述一个或多个启动属性,从所述一组物理服务器选择要在其处启动所述虚拟化计算资源的物理服务器;以及
致使所述物理服务器执行所述虚拟化计算资源。
2.根据权利要求1所述的计算机实现的方法,其还包括:
接收指示对所述虚拟化计算资源放置偏好的一个或多个修改的附加输入;
基于所述附加输入存储修改的虚拟化计算资源放置偏好;
接收将第二虚拟化计算资源启动到所述一组物理服务器中的第二请求,所述第二请求与一个或多个第二启动属性相关联;
基于所述修改的虚拟化计算资源放置偏好和所述一个或多个第二启动属性为所述第二虚拟化计算资源选择第二物理服务器;以及
致使所述物理服务器执行所述第二虚拟化计算资源。
3.根据权利要求1或2中任一项所述的计算机实现的方法,其中所述输入是第一输入,并且其中所述一组物理服务器包括第一物理服务器池,所述第一物理服务器池包括所述一组物理服务器的第一物理服务器子集,所述方法还包括:
接收定义第二物理服务器池的第二输入,所述第二物理服务器池包括所述一组物理服务器的第二物理服务器子集;
接收指示与所述第二物理服务器池相关联的一个或多个虚拟化计算资源放置偏好的第三输入;
接收将第二虚拟化计算资源启动到所述第二物理服务器池中的另一个请求;以及
基于与所述第二物理服务器池相关联的所述一个或多个虚拟化计算资源放置偏好,从所述第二物理服务器池选择第二物理服务器。
4.根据权利要求1-3中任一项所述的计算机实现的方法,其中所述一个或多个虚拟化计算资源放置偏好中的至少一个与对应的权重相关联,并且其中所述计算机实现的方法还包括至少部分地基于与对应的权重相关联的所述一个或多个虚拟化计算资源放置偏好为所述物理服务器生成加权分数,其中所述加权分数用于从所述一组物理服务器选择所述物理服务器。
5.根据权利要求1-4中任一项所述的计算机实现的方法,其还包括获得与所述一组物理服务器中的物理服务器相关联的属性信息,并且其中选择所述物理服务器还基于与所述一组物理服务器中的物理服务器相关联的属性信息。
6.根据权利要求1-5中任一项所述的计算机实现的方法,其中所述一个或多个虚拟化计算资源放置偏好包括以下各项中的至少一者:对与特定启动属性相关联的虚拟化计算资源进行集群的偏好、对与跨两个或更多个逻辑分区的特定启动属性相关联的虚拟化计算资源进行分区的偏好或跨所述一组物理服务器中的所述物理服务器分布实例的偏好。
7.根据权利要求1-6中任一项所述的计算机实现的方法,其中所述一个或多个虚拟化计算资源放置偏好中的至少一个包括基于与所述虚拟化计算资源相关联的公共软件许可对虚拟化计算资源进行集群的偏好。
8.根据权利要求1-7中任一项所述的计算机实现的方法,其中所述一个或多个虚拟化计算资源放置偏好包括以下各项中的至少一者:最小化所述一组物理服务器中的执行虚拟化计算资源的物理服务器的数量的偏好或者最小化在所述一组物理服务器中的每个物理服务器上执行的虚拟化计算资源的数量的偏好。
9.根据权利要求1-8中任一项所述的计算机实现的方法,其中所述输入是第一输入,并且其中所述方法还包括:
接收请求引退所述一组物理服务器中的特定物理服务器的第二输入;并且
其中选择所述一组物理服务器中的要在其处启动所述虚拟化计算资源的所述物理服务器包括避免选择所述特定物理服务器。
10.根据权利要求1-9中任一项所述的计算机实现的方法,其中所述一个或多个启动属性包括对以下各项中的一项或多项的指示:虚拟化计算资源的类型、与所述虚拟化计算资源相关联的资源要求、与所述虚拟化计算资源相关联的一个或多个软件许可、与所述虚拟化计算资源相关联的一个或多个应用程序。
11.根据权利要求1-10中任一项所述的计算机实现的方法,其还包括:
致使显示包括使用户能够指定所述一个或多个虚拟化计算资源放置偏好的界面元素的图形用户界面(GUI);
经由所述GUI的所述界面元素接收所述输入;以及
致使显示反映一个或多个历史放置确定的数据。
12.根据权利要求1-11中任一项所述的计算机实现的方法,其中指示所述一个或多个虚拟化计算资源放置偏好的所述输入包括用户创建的放置代码,并且其中从所述一组物理服务器选择要在其处启动所述虚拟化计算资源的所述物理服务器包括调用所述用户创建的放置代码的执行,其中所述用户创建的放置代码的所述执行返回对所述物理服务器的指示。
13.一种系统,其包括:
一组物理服务器,所述一组物理服务器托管虚拟机(VM);以及
由一个或多个电子装置实现的提供商网络的控制平面服务,所述控制平面服务包括指令,所述指令在执行时致使所述控制平面服务:
接收指示与专用于服务提供商的用户的一组物理服务器相关联的一个或多个VM放置偏好的输入;
接收将VM启动到所述一组物理服务器中的请求,所述请求与一个或多个启动属性相关联;
基于所述一个或多个VM放置偏好和所述一个或多个启动属性,从所述一组物理服务器中的一个或多个物理服务器处的一组候选VM插槽为所述VM选择VM插槽,其中所述VM插槽表示所述一组物理服务器中的物理服务器的未使用计算容量的量;并且
致使所述物理服务器执行所述VM。
14.根据权利要求13所述的系统,其中所述指令在执行时致使所述控制平面服务:
接收指示对所述VM放置偏好的一个或多个修改的附加输入;
基于所述附加输入存储修改的VM放置偏好;
接收将第二虚拟化计算资源启动到所述一组物理服务器中的第二请求,所述第二请求与一个或多个第二启动属性相关联;
基于所述修改的VM放置偏好和所述一个或多个第二启动属性为所述第二虚拟化计算资源选择第二物理服务器;并且
致使所述物理服务器执行所述第二虚拟化计算资源。
15.根据权利要求13或14中任一项所述的系统,其中所述输入是第一输入,并且其中所述一组物理服务器包括第一物理服务器池,所述第一物理服务器池包括所述一组物理服务器的第一物理服务器子集,并且其中所述指令在执行时致使所述控制平面服务:
接收定义第二物理服务器池的第二输入,所述第二物理服务器池包括所述一组物理服务器的第二物理服务器子集;
接收指示与所述第二物理服务器池相关联的一个或多个虚拟化计算资源放置偏好的第三输入;
接收将第二虚拟化计算资源启动到所述第二物理服务器池中的另一个请求;并且
基于与所述第二物理服务器池相关联的所述一个或多个虚拟化计算资源放置偏好,从所述第二物理服务器池选择第二物理服务器。
CN202080041316.9A 2019-06-03 2020-05-28 用于专用主机的管理计算资源放置即服务 Active CN113939803B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/429,728 2019-06-03
US16/429,728 US11397622B2 (en) 2019-06-03 2019-06-03 Managed computing resource placement as a service for dedicated hosts
PCT/US2020/034896 WO2020247235A1 (en) 2019-06-03 2020-05-28 Managed computing resource placement as a service for dedicated hosts

Publications (2)

Publication Number Publication Date
CN113939803A true CN113939803A (zh) 2022-01-14
CN113939803B CN113939803B (zh) 2023-01-13

Family

ID=71741898

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080041316.9A Active CN113939803B (zh) 2019-06-03 2020-05-28 用于专用主机的管理计算资源放置即服务

Country Status (4)

Country Link
US (1) US11397622B2 (zh)
EP (1) EP3970008A1 (zh)
CN (1) CN113939803B (zh)
WO (1) WO2020247235A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11507408B1 (en) * 2020-01-21 2022-11-22 Amazon Technologies, Inc. Locked virtual machines for high availability workloads
US10970127B1 (en) * 2020-02-11 2021-04-06 Verizon Patent And Licensing Inc. Systems and methods for virtual machine resource optimization using machine learning techniques
US20230099186A1 (en) * 2021-09-30 2023-03-30 Amazon Technologies, Inc. Distributed data processing application service in a provider network
US20230104379A1 (en) * 2021-10-05 2023-04-06 Argo Al, LLC System and Method for Estimating Arrival Time of a Vehicle at a Destination

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014182894A2 (en) * 2013-05-08 2014-11-13 Amazon Technologies, Inc. User-influenced placement of virtual machine instances
CN105493045A (zh) * 2013-08-05 2016-04-13 亚马逊技术股份有限公司 虚拟计算实例迁移
US9471352B1 (en) * 2013-11-25 2016-10-18 Amazon Technologies, Inc. Capability based placement
CN106664321A (zh) * 2014-08-08 2017-05-10 甲骨文国际公司 基于放置策略的计算资源分配
US20170371708A1 (en) * 2015-06-29 2017-12-28 Amazon Technologies, Inc. Automatic placement of virtual machine instances
CN107659433A (zh) * 2017-09-08 2018-02-02 中国联合网络通信集团有限公司 一种云资源调度方法及设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120005675A1 (en) 2010-01-22 2012-01-05 Brutesoft, Inc. Applying peer-to-peer networking protocols to virtual machine (vm) image management
US8661120B2 (en) 2010-09-21 2014-02-25 Amazon Technologies, Inc. Methods and systems for dynamically managing requests for computing capacity
US8671407B2 (en) 2011-07-06 2014-03-11 Microsoft Corporation Offering network performance guarantees in multi-tenant datacenters
US9298512B2 (en) * 2012-08-25 2016-03-29 Vmware, Inc. Client placement in a computer network system using dynamic weight assignments on resource utilization metrics
US10211630B1 (en) 2012-09-27 2019-02-19 Google Llc Data center with large medium voltage domain
US9448820B1 (en) 2013-01-03 2016-09-20 Amazon Technologies, Inc. Constraint verification for distributed applications
US9582010B2 (en) 2013-03-14 2017-02-28 Rackspace Us, Inc. System and method of rack management
US20150113144A1 (en) * 2013-10-21 2015-04-23 Alcatel-Lucent Usa Inc. Virtual resource placement for cloud-based applications and solutions
US10310912B2 (en) 2014-01-15 2019-06-04 Ca, Inc. Assigning data processing workloads in data centers based on non-data processing overhead
US20150227397A1 (en) 2014-02-10 2015-08-13 Ca, Inc. Energy efficient assignment of workloads in a datacenter
US9864640B2 (en) 2015-08-14 2018-01-09 International Business Machines Corporation Controlling virtual machine density and placement distribution in a converged infrastructure resource pool
US9684533B2 (en) * 2015-11-18 2017-06-20 International Business Machines Corporation Management of a virtual machine in a virtualized computing environment based on a concurrency limit
US9874924B1 (en) 2015-12-03 2018-01-23 Amazon Technologies, Inc. Equipment rack power reduction using virtual machine instance migration
US20180032361A1 (en) 2016-07-29 2018-02-01 Hewlett Packard Enterprise Development Lp Virtual Machines Deployment in a Cloud
US20180341768A1 (en) 2017-05-26 2018-11-29 Microsoft Technology Licensing, Llc Virtual machine attestation
US11144374B2 (en) 2019-09-20 2021-10-12 Hewlett Packard Enterprise Development Lp Data availability in a constrained deployment of a high-availability system in the presence of pending faults

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014182894A2 (en) * 2013-05-08 2014-11-13 Amazon Technologies, Inc. User-influenced placement of virtual machine instances
CN105493045A (zh) * 2013-08-05 2016-04-13 亚马逊技术股份有限公司 虚拟计算实例迁移
US9471352B1 (en) * 2013-11-25 2016-10-18 Amazon Technologies, Inc. Capability based placement
CN106664321A (zh) * 2014-08-08 2017-05-10 甲骨文国际公司 基于放置策略的计算资源分配
US20170371708A1 (en) * 2015-06-29 2017-12-28 Amazon Technologies, Inc. Automatic placement of virtual machine instances
CN107659433A (zh) * 2017-09-08 2018-02-02 中国联合网络通信集团有限公司 一种云资源调度方法及设备

Also Published As

Publication number Publication date
US20200379818A1 (en) 2020-12-03
EP3970008A1 (en) 2022-03-23
US11397622B2 (en) 2022-07-26
CN113939803B (zh) 2023-01-13
WO2020247235A1 (en) 2020-12-10

Similar Documents

Publication Publication Date Title
US10360061B2 (en) Systems and methods for loading a virtual machine monitor during a boot process
US10409628B2 (en) Managing virtual machine instances utilizing an offload device
US11218364B2 (en) Network-accessible computing service for micro virtual machines
US10768972B2 (en) Managing virtual machine instances utilizing a virtual offload device
CN113939803B (zh) 用于专用主机的管理计算资源放置即服务
US9292332B1 (en) Live updates for virtual machine monitor
US8301746B2 (en) Method and system for abstracting non-functional requirements based deployment of virtual machines
US11461149B1 (en) Capacity management in provider networks using dynamic host device instance model reconfigurations
US11487591B1 (en) Automatically configuring execution of a containerized application
TW201331763A (zh) 設置隔離虛擬空間的方法與裝置
US11343141B2 (en) Methods and apparatus to migrate physical server hosts between virtual standard switches and virtual distributed switches in a network
US11416306B1 (en) Placement to optimize heterogeneous physical host utilization
US11442781B2 (en) Master image for deploying workloads in a heterogeneous computing environment
US10951479B1 (en) User controlled fault domains
US11829792B1 (en) In-place live migration of compute instances for efficient host domain patching
US11561815B1 (en) Power aware load placement
US11704145B1 (en) Infrastructure-based risk diverse placement of virtualized computing resources
US11036537B1 (en) On demand capacity management in provider networks using type-agnostic resources
US20130332609A1 (en) Network computing over multiple resource centers

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