首页> 中国专利> 虚拟机实例的用户影响的放置

虚拟机实例的用户影响的放置

摘要

服务提供商网络包括用于允许客户通过指定放置策略而影响虚拟机实例在服务器计算机上的放置的功能。放置策略可以在所述服务提供商网络的客户之间共享且可以对所述放置策略和所述放置策略的发布者评分。还可以利用与供应商无关的放置策略以识别用于执行虚拟机实例的服务提供商网络。还可以利用包括动态评估参数的放置策略以在持续基础上修改客户群队中的虚拟机实例。

著录项

  • 公开/公告号CN105229609A

    专利类型发明专利

  • 公开/公告日2016-01-06

    原文格式PDF

  • 申请/专利权人 亚马逊技术股份有限公司;

    申请/专利号CN201480028885.4

  • 发明设计人 E·G·阿道格拉;

    申请日2014-05-08

  • 分类号G06F9/46;G06F15/173;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人姬利永

  • 地址 美国内华达州

  • 入库时间 2023-12-18 13:33:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-04-15

    未缴年费专利权终止 IPC(主分类):G06F 9/46 专利号:ZL2014800288854 申请日:20140508 授权公告日:20190115

    专利权的终止

  • 2019-01-15

    授权

    授权

  • 2016-02-03

    实质审查的生效 IPC(主分类):G06F9/46 申请日:20140508

    实质审查的生效

  • 2016-01-06

    公开

    公开

说明书

发明背景

一些基于网络的计算服务提供商允许客户在永久或按需基础上 购买和利用计算资源,诸如虚拟机实例。除了虚拟机实例之外,这样 的计算服务提供商通常允许客户购买和利用其它类型的计算资源。例 如,可以允许客户购买对文件和块数据存储资源、数据库资源、联网 资源和其它类型的计算资源的访问权和使用权。利用这些计算资源来 作为建构块,这样的基于网络的计算服务的客户可以创建定制解决方 案,其提供多种类型的功能,诸如应用程序托管、备份和存储、内容 递送、万维网(“网络”)托管、企业信息技术(“IT”)解决方案、数 据库服务等等。

当启动某些类型的计算资源(诸如虚拟机实例)时,服务提供商 网络的客户(诸如上文描述的服务提供商网络的客户)通常未能指定 关于其上实例化计算资源的实际硬件和软件平台(其在本文中还可以 称作“基础设施平台”)的细节。相反,可以只允许客户一般性地描 述所期望的计算资源。例如,在虚拟机实例的情况下,可以允许客户 只指定所期望的存储器量、所期望的处理能力级别和所期望的存储 量。接着基于网络的计算服务选择特定硬件平台(诸如特定服务器计 算机)来利用以实例化由客户请求的计算资源。

关于这些和其它考虑呈现本文提出的公开内容。

附图简述

图1是根据本文公开的一个实施方案的示出用于服务提供商网 络中使用放置策略的虚拟机的用户影响的放置的本文描述的一个说 明性机制的方面的网络架构图;

图2是根据本文公开的实施方案的示出用于共享放置策略且用 于对放置策略和放置策略的发布者评级的本文公开的一个机制的方 面的系统图;

图3是根据本文公开的一个实施方案的示出用于共享放置策略 且用于对放置策略和放置策略的发布者评分的一个说明性例行程序 的流程图;

图4是根据本文公开的一个实施方案的示出用于利用与供应商 无关的放置策略以选择用于实例化虚拟机实例的服务提供商网络的 本文公开的一个机制的方面的系统图;

图5是根据本文公开的一个实施方案的示出用于利用与供应商 无关的放置策略以选择用于实例化虚拟机实例的服务提供商网络的 一个说明性例行程序的流程图;

图6是根据本文公开的一个实施方案的示出用于利用包括动态 评估参数的放置策略以修改客户群队中的虚拟机实例的本文公开的 一个机制的方面的系统图;

图7是根据本文公开的一个实施方案的示出用于利用包括动态 评估参数的放置策略以修改客户群队中的虚拟机实例的一个说明性 例行程序的流程图;

图8是根据本文公开的一个实施方案的示出包括被配置来提供 用于实施虚拟机实例和其它类型的计算资源的功能的服务提供商网 络的本文公开的实施方案的一个说明性操作环境的系统和网络图;

图9是根据本文公开的一个实施方案的图示实施用于虚拟机实 例的用户影响的放置的本文公开的概念和技术的方面的数据中心的 一个配置的计算系统图;和

图10是示出用于实施可以被利用来实施本文呈现的多种实施方 案的方面的计算装置的说明性计算机硬件架构的计算机架构图。

具体实施方式

以下详细描述针对用于虚拟机实例的用户影响的放置的技术。利 用本文描述的技术,可以定义和利用放置策略以影响虚拟机实例和其 它类型的计算资源在服务提供商网络中的放置。放置策略可以在服务 提供商网络的客户之间共享且可以对放置策略和放置策略的发布者 评分。在其它实施方案中,可以利用与供应商无关的放置策略以选择 用于实例化虚拟机实例的服务提供商网络。在又一实施方案中,可以 利用包括动态评估参数的放置策略以修改客户群队中的虚拟机实例。

用于使用放置策略的虚拟机实例的用户影响的放置的本文公开 的多种机制可以连同客户可在永久或按需基础上购买和利用计算资 源(诸如虚拟机实例、数据存储资源、数据库资源、联网资源和其它 类型的计算资源)所通过的服务提供商操作的基于网络的分布式计算 环境(其在本文中可以称作“服务提供商网络”)操作。

操作服务提供商网络的服务提供商可以向创建和使用资源的客 户收取操作计算资源的费用。服务提供商还可以利用多种购买模型以 确定针对由服务提供商提供的计算资源的使用向客户收取多少。如上 文提及,这样的服务提供商的客户可以利用计算资源来作为构建块以 创建定制解决方案,其提供多种类型的功能,诸如应用程序托管、备 份和存储、内容递送、网络托管、企业IT解决方案、数据库服务等 等。

还如上文提及,服务提供商网络的客户(诸如上文描述的服务提 供商网络的客户)通常未能指定关于其上实例化特定计算资源的实际 硬件平台的细节。相反,可以只允许客户一般性地描述所期望的计算 资源。例如,在虚拟机实例的情况下,可以允许客户只指定所期望的 存储器量、所期望的处理能力级别和所期望的存储量。但是,客户不 能指定其上应创建虚拟机实例的特定硬件或基础设施平台。相反,基 于网络的计算服务选择特定硬件平台(诸如特定服务器计算机)来利 用以实例化由客户请求的计算资源。本文公开的多种实施方案解决这 些和可能其它考虑。

为了解决上文提出的至少一些考虑,本文公开的实施方案提供用 于使用放置策略的虚拟机实例的用户影响的放置的若干计算机实施 的机制。在这些实施方案中,服务提供商网络可以提供虚拟机实例和 /或其它类型的计算资源的用户影响的放置的功能。例如,可以允许 服务提供商网络的客户指定可以被利用来影响虚拟机实例或其它类 型的计算资源在服务提供商网络中的特定硬件平台上的放置的放置 策略。可以利用放置策略以基于价格、硬件制造商、制造硬件平台的 年份、芯片集、硬件卡或其它类型的外围设备、网络连接、处理器类 型和/或计算装置的其它属性而影响虚拟机实例在特定硬件平台上的 放置。

在本文公开的一个特定实施方案中,可以允许服务提供商网络的 客户彼此共享放置策略。例如,服务提供商网络内的组件可以被配置 来从服务提供商网络的客户接收放置策略。接收的放置策略可以被定 义为适合于在特定类型的计算工作负荷(诸如特定虚拟机图像)下使 用。放置策略可以被存储且稍后加以利用以将放置策略推荐给服务提 供商网络的其他客户来在相同或类似计算工作负荷下使用。

还可以提供用于允许客户提供放置策略和/或提供放置策略的客 户的评分的机制。还可以在选择放置策略以推荐给用户来在特定工作 负荷下使用时利用这些评分。这些评分还可以显露给服务提供商网络 的客户以用于在选择用于特定类型的计算工作负荷的放置策略中使 用。

在另一实施方案中,提供一种用于使用与供应商无关的放置策略 的虚拟机实例的用户影响的放置。在这个实施方案中,可以定义和利 用与供应商无关的放置策略以选择用于执行虚拟机实例的特定服务 提供商。与供应商无关的放置策略是以独立于任何特定服务提供商 (即,供应商)和/或服务提供商网络(即,与其无关)的方式定义 的放置策略。

在一个实施中,实例放置服务提取用于由不同供应商操作的众多 服务提供商网络的实例可用性数据和实例定价数据。实例可用性数据 描述虚拟机实例类型和/或用于执行从各个服务提供商网络得到的虚 拟机实例类型的硬件平台。实例定价数据描述利用多种虚拟机实例类 型的价格。可以在接收启动虚拟机实例的请求之前或在接收这样的请 求时获得实例可用性数据和实例定价数据。

实例放置服务还可以接收启动包括与供应商无关的放置策略的 虚拟机实例的请求。响应于接收这样的请求,实例放置服务可以利用 实例可用性数据、实例定价数据和与供应商无关的放置策略以选择用 于启动虚拟机实例的服务提供商网络。在一个实施方案中,被选择来 用于启动虚拟机实例的服务提供商网络是可以满足与供应商无关的 放置策略的参数且还可以最低成本执行所期望的虚拟机实例的服务 提供商网络。一旦已选择服务提供商网络,实例放置服务可以将请求 传输至所选择的服务提供商网络以实例化虚拟机实例。

在又一实施方案中,提供一种用于使用动态参数的虚拟机实例的 用户影响的放置的机制。在这个实施方案中,可以定义包括动态评估 参数的放置策略。动态评估的参数是在评估放置策略时动态定义的参 数。例如,可以在评估放置策略时从服务提供商网络内部的数据源提 取一个或多个动态评估参数的值。还可以在评估放置策略时从服务提 供商网络外部的数据源提取一个或多个动态评估参数的值。

一旦已接收用于放置策略的动态评估参数的值,可以评估放置策 略。取决于评估的结果,可以对由服务提供商网络的客户操作的虚拟 机实例群队进行多种修改。例如,执行于特定硬件平台上的虚拟机实 例可以迁移至不同硬件平台。在另一实例中,新虚拟机实例可以添加 至执行于由包含动态评估参数的放置策略指定的硬件平台上的群队。

在一些实施方案中,可以定期地更新和利用动态评估参数的值以 评估放置策略。接着可以取决于放置策略的评估的结果相应地更新客 户群队中的虚拟机实例。以此方式,可以在持续基础上根据放置策略 中提出的参数进行对客户群队的修改。下文将关于图1至图10呈现 关于用于虚拟机实例的用户影响的放置的上文简要地描述的多种组 件和过程的额外细节。

应了解,本文呈现的主旨可以实施为计算机过程、计算机控制的 设备、计算系统或一件制造品,诸如计算机可读存储介质。虽然在执 行于一个或多个计算装置上的程序模块的一般性上下文中呈现本文 描述的主旨,但是所属领域技术人员将认识到,其它实施可以组合其 它类型的程序模块执行。一般来说,程序模块包括执行特定任务或实 施特定抽象数据类型的例行程序、程序、组件、数据结构和其它类型 的结构。

所属领域的技术人员还将了解,本文描述的主旨的方面可以在本 文描述的其它计算机系统配置之外的其它计算机系统配置上实践或 连同本文描述的其它计算机系统配置之外的其它计算机系统配置实 践,所述计算机系统配置包括多处理器系统、基于微处理器或可编程 的消费性电子器件、小型计算机、大型计算机、手持式计算机、个人 数字助理、电子书阅读器、蜂窝电话装置、平板计算装置、特殊用途 硬件装置、网络设备等等。如上文简要地提及,可以在分布式计算环 境中实践本文描述的实施方案,其中任务可以由通过通信网络连结的 远程计算装置执行。在分布式计算环境中,程序模块可以位于本地和 远程存储器存储装置两者中。

在以下详细描述中,参考形成其部分且通过说明示出特定实施方 案或实例的附图。本文的图并不按照比例绘制。在全部若干图(其在 本文中称作“图”(“FIG”)或“若干图”(“FIGS”))中,相似数字 表示相似元件。

图1是示出用于虚拟机实例的用户影响的放置的本文描述的一 个说明性机制的方面的网络架构图。如上文简要地描述,本文公开的 多种机制可以连同服务提供商网络102操作,其中客户可以在永久或 按需基础上购买和利用来自操作服务提供商网络102的服务提供商 的计算资源(其在本文中还可以称作“资源”),诸如虚拟机实例104A 至104B(其在本文中还可以称作“虚拟机”或“实例”104)、联网 资源、存储资源或其它类型的计算资源。虽然本文关于图1呈现的描 述主要在虚拟机实例104的上下文中描述,但是应了解,可以在其它 类型的计算资源下利用本文公开的实施方案。

计算资源的每种类型或配置可以从操作呈不同大小的服务提供 商网络102的服务提供商得到。例如,服务提供商可以提供可用于购 买和使用的具有处理器能力、主存储器、磁盘存储器和操作系统的许 多不同配置的实例104或其它类型的数据处理资源。服务提供商还可 以提供用于由客户购买和使用的其它类型的资源。例如,服务提供商 可以在永久或按需基础上提供数据库资源、文件或块数据存储资源、 联网资源和/或其它类型的资源。

操作服务提供商网络102的服务提供商还可以向创建和使用资 源的客户收取操作资源的费用。对特定资源收取的费用可以基于资源 的类型和/或配置。对特定资源收取的费用还可以基于利用资源的时 间量。例如,在数据处理资源的情况下,相似于虚拟机实例104,可 以基于虚拟机实例104的配置和利用虚拟机实例104的时间量收取资 源使用的费用。在数据存储资源的情况下,可以基于存储的数据量和 /或传送至资源中或从资源中传出的数据量计算费用。其它类型的资 源的费用还可以基于其它考虑。服务提供商还可以利用多种购买模型 以确定针对由服务提供商提供的资源的使用向用户收取的金额。

上文描述的资源在一个特定实施中可以由服务提供商操作的一 个或多个数据中心提供。如所属领域技术人员所知,数据中心是被利 用来容纳和操作计算机系统(诸如服务器计算机106A至106N和关 联组件)的设施。数据中心还通常包括冗余和备用电源、通信、冷却 和安全系统。数据中心可以位于地理上不同的位置中且还可以连接至 多种其它设施(诸如主机代管设施)和多种广域网(“WAN”)(诸如 因特网)。在图1中所示的环境中,服务提供商可以操作一个或多个 数据中心,其被配置来将服务提供商网络102中的虚拟机实例104提 供至其客户。下文将关于图8和图9提供关于用于提供本文公开的功 能的服务提供商网络102的实施的细节。

还可以按需以自动化方式供应和解除供应上文描述的多种资源。 例如,客户可以将虚拟机实例启动请求108(“启动请求108”或“请 求108”)提交至服务提供商网络102以实例化虚拟机的新实例104A。 响应于接收这样的请求108,部署组件110或服务提供商网络102内 的一个或多个其它组件可以如由客户请求创建虚拟机的新实例 104A。接着可以允许客户根据期望利用虚拟机的新实例104A。其它 类型的计算资源可以类似方式实例化。

当客户已使用计算资源(诸如虚拟机实例104A)完成时,客户 可以请求解除供应资源。响应于此,部署组件110或服务提供商网络 102中的另一组件可以使得解除供应计算资源。例如,部署组件110 可以解除供应虚拟机实例104A。其它类型的计算资源还可以类似方 式供应和解除供应。服务提供商网络102还可以提供基于对计算资源 或其它因素的需求而自动缩放和/或解除缩放资源的功能。

如上文提及,服务提供商网络102还可以在一些实施方案中提供 虚拟机实例104的用户影响的放置的功能。例如,可以允许服务提供 商网络102的客户指定可以影响虚拟机实例104或其它类型的计算资 源在符合客户指定的准则的特定硬件平台上的放置的一个或多个额 外参数(在本文中称作“放置策略112”)。例如,可以允许客户基于 价格、硬件制造商、制造硬件平台的年份、芯片集、硬件卡或其它类 型的外围设备、网络连接、处理器类型和/或硬件或基础设施平台的 其它属性而影响虚拟机实例104在特定类型的服务器计算机106上的 放置。使用这样的机制,基于网络的服务提供商能够针对较新硬件平 台的使用收取较高价格。或者,这样的基于网络的服务提供商的客户 能够通过在更多过时或不那么可取的硬件平台上实例化计算资源而 削减成本。

在一个实施中,通过使用客户可指定定义所期望的硬件平台的放 置策略112所通过的服务应用程序编程接口(“API”)调用而实施用 于影响虚拟机实例104的放置的功能。例如,实例API调用可以允许 服务提供商网络102的客户提供关于虚拟机实例104在具有某些类型 的硬件或符合其它准则的服务器计算机106上的放置的指导。例如, 请求具有一定量的存储器的某个虚拟机实例类型的API调用可以包 括指定其上将执行虚拟机实例104的硬件的所期望的制造商或年份 或制造的放置策略112。例如,可以利用放置策略以指定利用具有来 自ADVANCEDMICRODEVICES(“AMD”)的处理器的服务器计算 机106或2012年制造的服务器计算机106。还可以利用除了API之 外的机制以将放置策略112提供至服务提供商网络102中的适当组 件。在一些实施中,放置策略112还可以被指定识别不应同时执行于 所期望的基础设施平台上的其它软件组件和/或指定一定百分比(例 如,100%)的某些硬件资源专用于实例。

在一些实施中,可以允许用户注册默认放置策略112或指定在启 动虚拟机实例104时利用的放置策略112。部署组件110可以尝试履 行用户指定的放置策略112或如果不能满足指定放置策略112,可能 未能启动请求的虚拟机实例104。例如,如果关联的放置策略112指 定利用某个处理器类型,而在具有所期望的处理器类型的服务器提供 商网络102中无服务器计算机106可用,那么可拒绝启动请求108。

在其它实施方案中,还可以在由服务提供商网络102提供的自动 缩放功能下利用放置策略112。例如,放置策略112可以指定利用2011 年制造的硬件且如果硬件不可用,那么利用2010年制造的硬件且将 生产量增加10%以补偿2010年硬件的已知问题。这个功能还可以与 预定义基准测试组合以执行工作负荷的部分垂直缩放来匹配分代实 例大小。例如,放置策略112可以指定在2010年制造的硬件上启动 虚拟机实例104,但如果那不可能,那么使用2011年制造的硬件, 但将发送至2011年制造的每个服务器计算机106的工作负荷增加 10%以补偿使用较新硬件的成本。

在图1中所示的实例中,服务提供商网络的客户已将启动请求 108提交至部署组件110。启动请求108请求部署组件110在服务提 供商网络102中实例化虚拟机的新实例104。启动请求108可以包括 一般指定请求的虚拟机实例104的类型的实例类型识别符111。例如, 实例类型识别符111一般可指定用于新虚拟机实例104的所期望的存 储器量、所期望的处理能力级别和所期望的存储量。但是,实例类型 识别符111并不指定关于其上应创建新实例104的实际硬件平台的特 定细节。

如上文所提及,启动请求108还可以包括用户定义的放置策略 112。放置策略112在一些实施方案中可以包括于启动请求108中或 在其它实施方案中可单独提供。例如,在一些实施中,服务提供商网 络102的客户可以维持与用户账户关联的放置策略112,所述用户账 户可在部署组件110接收为客户实例化新虚拟机实例104的请求108 时访问和利用。

应了解,放置策略112可以定义可被评估直至识别可用基础设施 平台为止的特定基础设施平台的替代偏好。例如,在一个特定实施中, 可以定义包括2013年制造的硬件的第一偏好的放置策略112。放置 策略112还可以指定如果2013年制造的硬件并不可用,那么应利用 2012年制造的硬件。放置策略112可以进一步指定如果2012年制造 的硬件并不可用,那么利用包括来自INTELCORPORATION (“INTEL”)的芯片集的任何服务器计算机106。如果具有来自INTEL 的芯片集的服务器计算机不可用,那么放置策略112可以进一步指定 不应启动实例104。以此方式,服务提供商网络102的客户可以指定 众多基础设施平台候选者,以便影响虚拟机实例104或其它类型的计 算资源在服务提供商网络102中的放置。

应了解,可以定义和利用甚至比上文描述的放置策略更复杂的放 置策略112。但是,一般来说,应了解,放置策略112可以定义为所 期望的基础设施属性的有序列表。可以按上文描述的方式以优先顺序 评估列表直至识别服务器计算机106或具有所期望属性的其它硬件 平台。所期望的基础设施属性在不同实施方案中可以呈现不同格式, 诸如对于将被认为可按其偏好选择的服务器计算机106必须全部满 足的一组键值对约束,涉及布尔操作符的自由形式文本声明或具有预 定和发布性质的特定虚拟机实例类型104。还可以利用其它格式。

如上文简要地提及,部署组件110在一个实施中接收启动请求 108。接着部署组件110识别请求的虚拟机实例104将启动于哪个服 务器计算机106A至106N上。应了解,服务器计算机106A至106N 可以利用各种不同基础设施平台,其可以包括硬件平台、软件平台和 /或其各自配置。例如,一个服务器计算机106A可以利用特定处理器 和芯片集,而另一服务器计算机106B可以利用不同处理器和芯片集。 还可以在不同年份期间制造服务器计算机106A至106N。服务器计 算机106A至106N还可以具有安装于其上的不同操作系统或其它软 件组件。就这点而言,应了解,可使具有许多不同硬件和软件配置的 服务器计算机106A至106N在服务器提供商网络102中可用以用来 按本文描述的方式使用。

当部署组件110接收启动请求108时,部署组件110可以利用放 置策略112和服务器配置数据存储区114(“数据存储区114”)的内 容以确定在服务器计算机106A至106N的哪个上实例化新虚拟机实 例。数据存储区114包括识别在服务提供商网络102中可用的服务器 计算机106A至106N的数据以及描述每个服务器计算机的基础设施 平台的细节的服务器计算机106A至106N的每个的数据。例如,数 据存储区114可以存储识别服务器计算机106中的硬件和软件组件的 类型和制造商,硬件组件的制造的年份,软件组件的版本,特定服务 器计算机106的使用的价格以及其它类型的硬件和/或软件属性的服 务器计算机106A至106N的每个的数据。应了解,这些实例仅仅具 说明性且描述服务器计算机106A至106N的其它硬件和/或软件属性 的数据可以维持于数据存储区114中。

部署组件110利用放置策略112和存储于数据存储区114中的数 据以识别满足用户指定的放置策略112的一个或多个服务器计算机 106。一旦已识别满足放置策略112的一个或多个服务器计算机106, 接着部署组件110可以在匹配的服务器计算机或服务器计算机106上 启动请求的虚拟机实例104或其它类型的计算资源。

在另一实施中,部署组件110可以响应于具有多种类型的信息的 启动请求108。例如,如果发现服务器106A是放置策略112的匹配 者,那么可以响应于启动请求108而返回描述利用服务器计算机106A 的价格的数据。接着客户可以利用价格信息以决定是否在服务器计算 机106A上启动虚拟机实例104A。还可以响应于启动请求108而返 回其它信息。

通过提供放置策略112(诸如上文描述的放置策略),服务提供 商网络102的客户可以影响在具有不同硬件和软件配置的许多服务 器计算机106之中的哪里实例化特定虚拟机实例104或其它类型的计 算资源。关于用于虚拟机实例104的用户影响的放置的上文描述的机 制的额外细节可以在名为“USER-INFLUENCEDPLACEMENTOF VIRTUALMACHINES”,在2012年11月16日申请且其全部内容以 引用的方式明确并入本文中的美国专利申请案第13/679,451号中发 现。

图2和图3图示本文公开的一个实施方案的方面,其中允许服务 提供商网络102的客户彼此共享放置策略112。例如,当客户已确定 对于选择用于执行特定类型的计算工作负荷的硬件平台,特定放置策 略112运作良好时,这是可取的。

计算工作负荷(其在本文中可称作“工作负荷”)是可以执行于 虚拟机上的应用程序、虚拟机图像、虚拟设备或另一类型的程序。如 果放置策略112使得工作负荷放置于针对工作负荷最优化的服务器 计算机106上,那么放置策略112可以被认为与特定类型的工作负荷 运作良好。无论是否针对工作负荷最优化服务器计算机106可能基于 由服务提供商网络102的客户定义的一个或多个因素,其包括(但不 限于)成本、应用程序性能、吞吐量、使用的虚拟机实例104的数量 和/或其它因素或因素组合。

如果对于特定工作负荷,服务提供商网络102的客户确定特定放 置策略112运作良好,那么客户可能喜欢与其他客户共享放置策略 112,使得其他客户不必从事于针对特定工作负荷创建最佳放置策略 112的有时困难的任务。在一些实施方案中,当其他客户使用共享的 放置策略112时,可以补偿共享放置策略112的客户(这样的客户在 本文中可以称作“发布者”)。下文将关于图2和图3提供关于用于共 享放置策略112的本文公开的多种实施方案的额外细节。

如图2中所示,服务提供商网络102在一个实施方案中包括放置 策略提交界面界面204(“界面204”)。界面204可以是服务提供商网 络102的客户202可以提交将与其他客户202共享的放置策略112所 通过的用户界面(“UI”)、API或另一类型的界面。当客户将放置策 略112提交至界面204时,客户还可以提供工作负荷描述符206。工 作负荷描述符206定义提交的放置策略112被配置来使用所处的工作 负荷的类型。如上文提及,工作负荷是可以执行于虚拟机上的应用程 序、虚拟机图像、虚拟设备或另一类型的程序。提交放置策略112的 客户202还可以提供发布者识别符(“ID”)208。发布者ID208识别 共享放置策略112的客户202。

在图2中所示的实例中,例如,客户202A已将放置策略112A、 对应的工作负荷描述符206A和识别客户202A的发布者ID208A提 交至界面204。类似地,客户202B已将放置策略112B、对应工作负 荷描述符206B和识别客户202B的发布者ID208B提交至界面204。 界面204从客户202A和202B接收提交且将提交数据存储于放置策 略数据存储区210(“数据存储区210”)中。

数据存储区210是数据库或其它类型的存储系统,其被配置来存 储由服务提供商网络102的客户202提交的放置策略112。如将在下 文更详细地描述,数据存储区210还可以存储以其它方式识别的放置 策略112。在一个特定实施方案中,数据存储区210包括具有字段 212A至212E的记录。利用字段212E以存储放置策略112或识别放 置策略112的数据。利用字段212D以存储对应于字段212E中识别 的放置策略112的工作负荷描述符206A。利用字段212A以存储识别 提交字段212E中识别的放置策略112的客户202的数据。。

如将在下文更详细地描述,还可以允许服务提供商网络102的客 户202提供对放置策略112和对放置策略112的发布者的评分。举例 而言,可以允许服务提供商网络102的客户202以1-5、1-10、1-100 的标度或以另一方式对放置策略112和/或特定放置策略112的发布 者评分。在这些实施方案中,数据存储区210还可以被配置来存储定 义对特定放置策略112和/或发布者的评分的数据。例如,可以利用 字段212C以存储定义对字段212E中识别的放置策略112的评分的 数据。可以利用字段212B以存储定义对字段212E中识别的放置策 略112的发布者的评分的数据。应了解,图2中所示的数据结构仅仅 具说明性且可以利用其它类型的数据结构、存储系统和技术以存储上 文描述的数据和/或其它相关数据。

服务提供商网络102在一个实施方案中还可以被配置有放置策 略识别组件214(“识别组件214”)。识别组件214提供服务提供商网 络102的客户可以获得适合于在特定类型的工作负荷下使用的放置 策略112所通过的UI、API或另一机制。例如,在图2中所示的实例 中,客户202C已利用合适的计算装置以将放置策略请求216(“请求 216”)传输至识别组件214。请求216包括识别客户202C正寻找合 适的放置策略112所针对的工作负荷的工作负荷描述符206C。

响应于接收请求216,识别组件214搜索用于适合于由工作负荷 描述符206B识别的工作负荷的放置策略112的身份的数据存储区 210的内容。例如,识别组件214可以搜索匹配请求216中提交的工 作负荷描述符202C的工作负荷描述符的字段212。在一些实施方案 中,识别组件214还可以响应于请求216而利用存储于数据存储区 210中的一些其它数据来选择放置策略112。例如,如果对于工作负 荷描述符206C发现多个匹配者,那么识别组件214可以选择具有存 储于字段212C中的最高评分的匹配放置策略112。举另一实例而言, 识别组件214可以选择具有如字段212B中反映的最高发布者评分的 放置策略112。还可以利用其它机制以响应于请求216而选择放置策 略112来返回。

在图2中所示的实例中,识别组件214已选择如适合于由工作负 荷描述符206B识别的工作负荷的放置策略112B。相应地,识别组件 214已响应于请求216而返回放置策略112B或放置策略112B的参考。 接着客户202C利用返回的放置策略112B以按上文关于图1所讨论 的方式影响用于处理由工作负荷描述符206B描述的工作负荷的虚拟 机的放置。还如上文提及,可以对放置策略112B至客户202C的供 应补偿返回的放置策略112B的发布者(在这个情况下,客户202B)。 对于放置策略112由其他客户202使用,还可以其它方式补偿放置策 略112的发布者。

如上文提及,服务提供商网络102的客户202在一些实施中可以 提交对放置策略112和/或对放置策略的发布者的评分。在这些实施 中,识别组件214或服务提供商网络102中或外部的另一组件可以提 供客户202或其他用户可以提交对放置策略112和/或放置策略112 的发布者的评分所通过的合适的UI、API或其它类型的界面。在图2 中所示的实例中,例如,服务提供商网络102的客户202D已提交对 放置策略112的评分218和对放置策略112的发布者的评分220。还 如上文提及,提供的评分218和220可以存储于数据存储区210中或 另一位置中。供应的评分218和220还可以被平均、加权和/或以其 它方式修改以提供对放置策略112和/或放置策略112的发布者的适 当评分测量。

应了解,还可以其它方式利用和/或显露存储于数据存储区210 中的数据。例如,可以通过网站或其它类型的用户界面显露对多种放 置策略112的放置策略评分218。类似地,还可以类似方式显露放置 策略112的发布者的发布者评分220。这个信息在选择用于特定类型 的工作负荷的放置策略112时可以辅助服务提供商网络102的客户 202。还可以其它方式利用这个信息。

如上文简要地提及,放置策略112可以除了由客户202手动提交 之外的的方式添加至数据存储区210。在一个特定实施方案中,例如, 服务提供商网络102内的组件(诸如部署组件110)可以维持关于在 某些类型的工作负荷下使用的特定放置策略112的历史数据。在较大 数量或百分比的特定类型的工作负荷下使用的放置策略112可以添 加至数据存储区210。例如,部署组件110可以确定在特定类型的工 作负荷下65%的时间利用特定放置策略112。响应于这样的确定,部 署组件110可以使得放置策略112以上文描述的方式添加至数据存储 区210来供应至客户。可以利用多种技术(诸如机器学习)以确定随 着时间推移客户利用用于某些类型的工作负荷的某些基础设施平台。 接着可以利用这个信息以确定用于特定工作负荷的最佳放置策略 112。

还可以其它方式利用定义特定放置策略112在某个类型的工作 负荷下利用的频率的信息。例如,这个信息可以由服务提供商网络 102的运营商利用以鼓励或阻止客户网络102中某些虚拟机实例类型 的使用。特定来说,如果服务提供商网络102确定客户202已请求使 用指定很少使用或不适当的硬件类型的放置策略112启动虚拟机实 例,那么服务提供商网络102中的组件可以将历史数据呈现给客户且 鼓励客户利用不同放置策略112来启动虚拟机实例。

在一些实施方案中,数据存储区210中识别的放置策略112可以 被“基准测试”以选择用于特定工作负荷的最佳放置策略112。例如, 工作负荷可以实例化于利用不同放置策略112的不同基础设施类型 上。接着可以测量不同基础设施类型上的工作负荷的性能,且为工作 负荷指定具有最高性能的基础设施类型的放置策略112可以被选择 为最佳放置策略112。性能可以测量为绝对计算性能,测量为性价比, 仅仅基于成本测量或以另一方式测量。可以上文所描述的方式,响应 于对用于特定工作负荷的放置策略112的请求216而选择用于所述工 作负荷的最佳放置策略112。

图3是根据本文公开的一个实施方案的示出用于共享放置策略 112和用于对放置策略112和放置策略112的发布者评分的一个说明 性例行程序300的流程图。应了解,本文关于图3和其它图描述的逻 辑操作可以实施为(1)运行于计算系统上的一系列计算机实施的动 作或程序模块和/或实施为(2)计算系统内的互连的机器逻辑电路或 电路模块。本文描述的多种组件的实施是一个取决于计算系统的性能 和其它要求的选择问题。相应地,本文描述的逻辑操作不同地称作操 作、结构装置、动作或模块。这些操作、结构装置、动作和模块可以 软件,以固件,以特殊用途数字逻辑和其任何组合实施。还应了解, 可以执行比图中所示和本文中所描述的操作更多或更少的操作。这些 操作还可以并行或以除了本文所描述的顺序之外的不同顺序执行。

例行程序300开始于操作302,其中服务提供商网络102提供用 于允许客户202共享放置策略112的上文所描述的提交界面204。如 上文所提及,提交界面204可以是客户202或其他用户可以将放置策 略112提交至服务提供商网络102所通过的UI(诸如网站)、API或 另一类型的界面。

例行程序300从操作302继续进行至操作304,其中提交界面204 接收放置策略112。如上文提及,工作负荷描述符206还可以与每个 提交的放置策略112一起提供,其定义提交的放置策略112适合于使 用所处的一个或多个工作负荷。提交还可以包括识别提交放置策略 112的用户的发布者ID208。还可以提供其它信息。例行程序300从 操作304继续进行至操作306,其中提交界面204将提交的放置策略 112和其它关联数据(诸如工作负荷描述符206)存储于数据存储区 210中。

例行程序300从操作306继续进行至操作308,其中服务提供商 网络102内的识别组件214或另一组件接收放置策略112的评分218。 接着评分218以上文所描述的方式存储于数据存储区210中。还如上 文所提及,评分218可以在存储于数据存储区210中之前或之后被平 均、加权或以别的方式处理。对放置策略112的发布者的评分220可 以操作310处的类似方式接收和存储。

例行程序300从操作310继续进行至操作312,其中识别组件214 接收对用于特定工作负荷的放置策略112的请求216。如上文提及, 工作负荷可以由请求216中的工作负荷描述符206识别。响应于接收 请求216,例行程序300从操作312继续进行至操作314,其中识别 组件214利用供应的工作负荷描述符206和数据存储区210的内容以 选择适合于请求216中识别的工作负荷的放置策略112。如果可以识 别合适的放置策略112,那么识别组件214在操作316处响应于请求 216而返回所选择的放置策略112。还可以响应于请求216而返回与 利用所选择的放置策略112执行虚拟机实例或另一类型的工作负荷 关联的成本。接着例行程序300从操作316继续进行至操作318,其 在此结束。

图4是根据本文公开的一个实施方案的示出用于利用与供应商 无关的放置策略408以选择用于实例化虚拟机实例104的服务提供商 网络102的本文公开的一个机制的方面的系统图。在图4中所示的实 施方案中,不同供应商操作不同服务提供商网络102A至102N。服 务提供商网络102A至102N的每个可以提供用于计算资源(诸如虚 拟机实例104)的按需使用的上文描述的一些或所有功能。但是,服 务提供商网络102A至102N可以提供具有不同配置且利用不同硬件 平台实施的不同类型的计算资源。操作服务提供商网络102A至102N 的供应商还可以针对计算资源的使用收取不同价格。

在图4中所示的实施方案中,可以利用实例放置服务402以辅助 用户选择用于执行虚拟机实例104或其它类型的计算资源的服务提 供商网络102A至102N。为了提供这个功能,实例放置服务402提 取服务提供商网络102A至102N的各个的实例可用性数据404和实 例定价数据406。实例可用性数据404描述虚拟机实例104类型和/ 或用于执行从每个服务提供商网路102A至102N得到的虚拟机实例 类型的硬件平台。实例可用性数据404还可以描述从各个服务提供商 网络102得到的其它类型的可用计算资源。

实例定价数据406描述利用从各个服务提供商网络102得到的多 种虚拟机实例类型的价格。实例放置服务402可以在接收启动虚拟机 实例104的请求108之前提取实例可用性数据404和实例定价数据 406且存储数据404和406以供将来使用。或者,实例放置服务402 可以正好在接收启动虚拟机实例104的请求108之后获得实例可用性 数据404和实例定价数据406。

在另一实施方案中,实例放置服务402可以在服务提供商网络 102中的一个上快速地启动虚拟机实例104。在启动之后,接着实例 放置服务402可以获得实例可用性数据404和实例定价数据406。接 着可以下文描述的方式利用实例可用性数据404、实例定价数据406 和与供应商无关的放置策略408以选择用于虚拟机实例104的服务提 供商网络102。如果所选服务提供商网络102并不相同于其上启动虚 拟机实例104的服务提供商网络102,那么虚拟机实例104可以迁移 至所选服务提供商网络102。可以利用多种机制以迁移虚拟机实例 104,其包括(但不限于)其中保存、迁移和重新启动执行虚拟机实 例104的状态的“实时”迁移和其中在迁移之前关闭执行虚拟机实例 104的“重新启动”迁移。还可以利用其它迁移技术。

如图4中所示,实例放置服务402还可以接收启动请求108。在 这个实施方案中,启动请求108包括与供应商无关的放置策略408。 如上文简要地讨论,与供应商无关的放置策略408是以独立于任何特 定服务提供商(即,供应商)和/或服务提供商网络102(与其无关) 的方式定义的放置策略112。可以利用适当的可扩展标记语言 (“XML”)方案或以使用其它技术的另一方式定义与供应商无关的 放置策略408。

在一些实施中,启动请求108还包括一个或多个放置偏好410。 放置偏好410可以指定用于启动请求的虚拟机实例104的优选服务提 供商网络102。放置偏好410还可以指定某个服务提供商网络102或 网络102并不被利用来启动请求的虚拟机实例104。其它类型的放置 偏好410还可以在启动请求108中指定。

响应于接收启动请求108,实例放置服务402可以利用实例可用 性数据404、实例定价数据406和与供应商无关的放置策略408以选 择用于启动请求的虚拟机实例104的服务提供商网络102A至102N。 在一个实施方案中,被选择来用于启动虚拟机实例104的服务提供商 网络102是可以满足与供应商无关的放置策略408的参数且还可以最 低成本下执行虚拟机实例104的服务提供商网络102。在其它实施方 案中还可以其它方式使用实例可用性数据404、实例定价数据406和 /或与供应商无关的放置策略408选择用于实例化请求的虚拟机实例 104的服务提供商网络102。就这点而言,应了解,当选择用于实例 化请求的虚拟机实例104的服务提供商网络102时,还可以利用其它 因素,诸如(但不限于)地理位置、网络带宽和/或延迟、服务历史、 客户供应的评分和/或每个服务提供商网络102的历史可服务时间。

为了选择服务提供商网络102,实例放置服务402可能必须将与 供应商无关的放置策略408转化为供应商特定的放置策略。就这点而 言,启动请求108可以视情况指定与供应商无关的放置策略408的供 应商特定的等效物以辅助这个转化。以类似方式,实例放置服务402 可能必须执行多种过程以识别从服务提供商网络102A至102N的每 个得到的一般等效实例类型。实例放置服务402还可以执行其它类型 的过程以识别可以满足与供应商无关的放置策略408中提出的多种 参数的服务提供商网络102。

一旦已选择服务提供商网络102,实例放置服务402可以将启动 请求412传输至所选服务提供商网络102以实例化请求的虚拟机实例 104。在图4中所示的实例中,例如,已选择服务提供商网络102A 且相应地,实例放置服务402已将启动请求412传输至服务提供商网 络102A中的适当组件(诸如部署组件110)。启动请求412可以传输 至由所选服务提供商网络102A显露的适当API或其它类型的界面。

接着所选择的服务提供商网络102A可以利用供应的与供应商无 关的放置策略408以实例化服务提供商网络102A中的请求的虚拟机 实例104。在一些实施方案中,实例放置服务402还可以在所选择的 服务提供商网络102A中请求实例的启动之后将启动确认414传输至 启动请求108的发送者。实例放置服务402还可以将用于在所选择的 服务提供商网络102中执行请求实例104的估计成本416传输至启动 请求108的发送者。在其它实施方案中,其它类型的信息还可以返回 至启动请求108的发送者。

在一个实施中,与供应商无关的放置策略408可以直接提交至各 个服务提供商网络102A至102N。在这个实施中,每个服务提供商 网络102A至102N中的组件可以接收与供应商无关的放置策略408 且响应于此,返回关于服务提供商网络102是否具有适当硬件平台以 满足与供应商无关的放置策略408的指示。如果服务提供商网络102 确实具有适当硬件平台,那么还可以返回实例定价数据406,其指示 利用服务提供商网络102以实例化由与供应商无关的放置策略408定 义的资源的估计成本。接着提交与供应商无关的放置策略408的客户 可以利用这个数据以决定是否利用特定服务提供商网络102。

应了解,实例放置服务402可以由还操作服务提供商网络102A 至102N中的一个的实体操作。这个场景中,实例放置服务402可以 操作于服务提供商网络102A至102N中的一个内操作的计算资源上。 在其它实施方案中,实例放置服务402由不与服务提供商网络102A 至102N的运营商相关的第三方操作。实例放置服务402还可以操作 于由一个或多个服务提供商网络102A至102N的客户拥有的网络内。 在其它实施方案中,实例放置服务402还可以由其它网络中的其它实 体操作。

图5是根据本文公开的一个实施方案的示出用于利用与供应商 无关的放置策略408以选择用于实例化虚拟机实例的服务提供商网 络102的一个说明性例行程序500的流程图。例行程序500开始于操 作502,其中实例放置服务402接收包括与供应商无关的放置策略408 的启动请求108。接着例行程序500从操作502继续进行至操作504, 其中实例放置服务402从服务提供商网络102A至102N提取实例可 用性数据404。如上文提及,实例放置服务402可以在接收启动请求 108时(如图5中所示)或在接收启动请求108时之前提取实例可用 性数据404。如果在接收启动请求108时之前提取实例可用性数据 404,那么实例可用性数据404可以缓存于适当数据存储区中以用于 在接收启动请求108时使用。

例行程序500从操作504继续进行至操作506,其中实例放置服 务402从服务提供商网络102A至102N提取实例定价数据406。如 上文提及,实例放置服务402可以在接收启动请求108时(如图5中 所示)或在接收启动请求108时之前提取实例定价数据406。如果在 接收启动请求108时之前提取实例定价数据406,那么实例定价数据 406可以缓存于适当数据存储区中以用于在接收启动请求108时使 用。

例行程序500从操作506继续进行至操作508,其中实例放置服 务402利用实例可用性数据404,、实例定价数据406和与供应商无关 的放置策略408以选择用于启动在启动请求108中指定的虚拟机实例 104的服务提供商网络102A至102N。如上文提及,可以选择用于启 动虚拟机实例104的服务提供商网络102,其既满足与供应商无关的 放置策略408中提出的参数,而且还可以最低成本(相比于其它服务 提供商网络102)执行虚拟机实例104。在其它实施方案中还可以其 它方式使用实例可用性数据404、实例定价数据406和/或与供应商无 关的放置策略408选择用于实例化启动请求108中请求的虚拟机实例 104的服务提供商网络102。

例行程序500从操作508继续进行至操作510,其中实例放置服 务402将启动请求412传输至被选择来实例化请求的虚拟机实例104 的服务提供商网络102。响应于此,所选服务提供商网络102利用与 供应商无关的放置策略408以实例化新虚拟机实例104。在操作512, 实例放置服务402可还可以将启动确认414和/或估计成本416提供 至启动请求108的发送者。例行程序500从操作512继续进行至操作 514,其在此结束。

图6是根据本文公开的一个实施方案的示出用于利用包括动态 评估参数604的放置策略112以修改客户群队602中的虚拟机实例 104的本文公开的一个机制的方面的系统图。在图6中所示的实施方 案中,可以定义包括动态评估参数604的放置策略112。如上文简要 地讨论,动态评估参数604是在评估放置策略112时动态定义的参数。 例如,可以在评估放置策略112时从服务提供商网络102内部的数据 源606提取一个或多个动态评估参数604的值。从服务提供商网络 102内部的数据源606提取的值可以包括(例如)关于服务提供商网 络102内可用的虚拟机实例104的当前定价的值。部署组件110可以 利用API调用或其它适当机制从内部数据源606和/或外部数据源608 提取数据。

在一些实施中,还可以在评估放置策略112时从服务提供商网络 102外部的数据源608提取一个或多个动态评估参数604的值。在一 些实施方案中,外部数据源608可以由服务提供商网络102的客户操 作且提供关于服务提供商网络102的客户的值。例如,数据源608可 以显露关于由客户进行的本地网络的操作的数据。以此方式,可以定 义包括关于客户的本地网络的状态的动态评估参数604的放置策略 112。具体地说,如果客户的本地网络的利用率超过某个阈值,那么 可以定义在服务提供商网络102中实例化虚拟机实例104的放置策略 112。类似地,如果客户的本地网络的利用率下降至某个阈值以下, 那么可以定义在服务提供商网络102中解除缩放虚拟机实例104的放 置策略112。还可以定义包括从外部数据源608得到的其它类型的数 据的其它类型的放置策略112。

一旦已接收用于放置策略112的动态评估参数604的值,可以评 估放置策略112。取决于评估结果,可以对由服务提供商网络102的 客户操作的虚拟机实例104的群队602进行多种修改。例如,如图6 中所示,执行于特定硬件平台610A上的虚拟机实例104A可以迁移 至不同硬件平台610B。如上文所讨论,可以利用多种技术以执行这 样的迁移,其包括(但不限于)实时和重新启动迁移。在另一实例中, 新虚拟机实例104可以添加至执行于由包含动态评估参数604的放置 策略112指定的硬件平台上的群队602。还可以基于动态评估参数604 的评估而进行对群队602的其它类型的修改。

在一些实施方案中,定期地更新和利用动态评估参数604的值以 重新评估放置策略112。接着取决于放置策略112的评估结果而相应 地修改客户群队602中的虚拟机实例104。以此方式,可以根据放置 策略112中提出的参数在持续基础上进行对客户群队602中的实例的 修改。例如,客户群队602中的虚拟机实例104可以取决于从内部数 据源606提取的数据(例如,成本)和/或从外部数据源608提取的 数据(例如,本地客户网络的状态)而连续地迁移至不同硬件平台。 就这点而言,可以利用上文描述的多种迁移技术。某些实施方案还可 以提供通过利用已知具有循环性能变化的历史和/或实时约束参数而 动态地引起实时定价趋势的放置策略112。

图7是根据本文公开的一个实施方案的示出用于利用包括动态 评估参数604的放置策略112以修改客户群队602中的虚拟机实例 104的一个说明性例行程序700的流程图。例行程序700开始于操作 702,其中部署组件110接收具有动态评估参数604的放置策略112。 例行程序700从操作702继续进行至操作704,其中部署组件110从 任何外部数据源608提取值(如果指定的话)。接着例行程序700从 操作704继续进行至操作706,其中部署组件101从任何内部数据源 606提取值(如果指定的话)。

例行程序700从操作706继续进行至操作708,其中部署组件110 利用分别从内部数据源606和外部数据源608提取的动态评估参数 604的值评估放置策略112。如果基于提取的值,部署组件110确定 未满足放置策略112中的准则,那么例行程序700从操作710继续进 行至操作712。在操作712,在例行程序700继续进行到返回操作704 之前允许过去一些时间段,其中在一些时间段之后,可以再次以上文 描述的方式提取和评估动态评估参数604的值。

如果在操作710,部署组件110确定已满足放置策略112中提出 的准则,那么例行程序700从操作710继续进行至操作714。在操作 714,部署组件110使得可对群队602进行一个或多个修改。例如, 如上文所描述,部署组件110可以上文描述的方式将虚拟机实例104 从一个硬件平台迁移至不同硬件平台。或者,部署组件110可以使用 放置策略112中指定的硬件平台实例化群队602中的新虚拟机实例 104或其它类型的计算资源。例行程序700从操作714继续进行至操 作712,其中可以重复地执行上文描述的提取、评估和修改。

应了解,虽然上文已关于图7图示和描述轮询机制,但是还可以 利用其它类型的机制以确定改变值是否可用于动态评估参数604。例 如,在其它实施中,部署组件110可以注册来在动态评估参数604改 变时接收事件通知。以此方式,可以避免上文关于图7描述的轮询。 还可以利用其它机制。

图8是示出包括可以被配置来提供用于虚拟机的用户影响的放 置的上文描述的功能的服务提供商网络102的本文公开的实施方案 的一个说明性操作环境的系统和网络图。如上文简要地讨论,服务提 供商网络102可以在永久或按需基础上提供计算资源。由服务提供商 网络102提供的计算资源可以包括多种类型的计算资源,诸如数据处 理资源、数据存储资源、联网资源、数据通信资源等等。

每个类型的计算资源可以是通用的或可以在许多特定配置中可 用。例如,如上文简要地描述,数据处理资源在许多不同配置中可用 为虚拟机实例104。虚拟机实例104可以被配置来执行包括网络服务 器、应用程序服务器、媒体服务器、数据库服务器和其它类型的应用 程序的应用程序。数据存储资源可以包括文件存储装置、块存储装置 等等。

还如上文简要地提及,由服务提供商网络102提供的计算资源在 一个实施中由一个或多个数据中心802A至802N(其在本文中可以 单数地称为“一个数据中心802”或复数地称为“若干数据中心802”) 启用。数据中心802是被利用来容纳和操作计算机系统和关联组件的 设施。数据中心802通常包括冗余和备用电源、通信、冷却和安全系 统。数据中心802还可以位于地理上不同的位置中。下文将关于图9 描述实施用于虚拟机的用户影响的放置的本文公开的功能的方面的 数据中心802的一个说明性配置。

可以鉴于以下条例描述本公开内容的实施方案:

1.一种具有存储于其上的计算机可执行指令的计算机可读存储 介质,所述计算机可执行指令在由计算机执行时使得计算机:

存储多个放置策略,所述放置策略包括被配置来用于在影响虚拟 机实例在服务提供商网络中的特定硬件平台上的放置中使用的数据;

接收对适合于在识别的虚拟机图像下使用的放置策略的请求;

使用存储的数据以选择用于在识别其上执行识别的虚拟机图像 的服务提供商网络中的硬件平台中使用的放置策略;且

响应于请求而返回所选择的放置策略。

2.根据第1条所述的计算机可读存储介质,其中存储的数据进 一步包括对多个放置策略的用户提供的评分,且其中利用对多个放置 策略的用户提供的评分以选择用于在识别的虚拟机图像下使用的放 置策略。

3.根据第1条所述的计算机可读存储介质,其中存储数据进一 步包括对多个放置策略的发布者的用户提供的评分,且其中利用对多 个放置策略的发布者的用户提供的评分以选择适合于在识别的虚拟 机图像下使用的放置策略。

4.根据第1条所述的计算机可读存储介质,其中存储的多个放 置策略的一个或多个由服务提供商网络的客户提供。

5.根据第1条所述的计算机可读存储介质,其中通过定义服务 提供商网络中的放置策略的历史使用的数据的分析识别存储的多个 放置策略的一个或多个。

6.根据第1条所述的计算机可读存储介质,其进一步具有存储 于其上的计算机可执行指令,所述计算机可执行指令在由计算机执行 时使得计算机利用所选择的放置策略以影响识别的虚拟机图像在服 务提供商网络中的特定硬件平台上的放置。

7.一种用于共享在影响虚拟机实例在服务提供商网络中的硬件 平台上的放置中使用的放置策略的计算机实施的方法,所述方法包括 执行如下计算机实施的操作:

存储多个客户提供的放置策略;

接收对用于在指定计算工作负荷下使用的放置策略的请求;且

利用所述存储的放置策略以选择用于在识别其上执行所述指定 计算工作负荷的所述服务提供商网络中的硬件平台中使用的放置策 略。

8.根据第7条所述的计算机实施的方法,其中计算工作负荷包 括虚拟机图像。

9.根据第7条所述的计算机实施的方法,其进一步包括存储对 多个客户提供的放置策略的一个或多个客户提供的评分。

10.根据第9条所述的计算机实施的方法,其中还利用对多个客 户提供的放置策略的客户提供的评分以选择用于在识别其上执行指 定计算工作负荷的服务提供商网络中的硬件平台中使用的放置策略。

11.根据第7条所述的计算机实施的方法,其进一步包括存储多 个客户提供的放置策略的发布者的一个或多个客户提供的评分。

12.根据第11条所述的计算机实施的方法,其中还利用多个客 户提供的放置策略的发布者的评分以选择用于在识别其上执行指定 计算工作负荷的服务提供商网络中的硬件平台中使用的放置策略。

13.根据第7条所述的计算机实施的方法,其进一步包括存储通 过定义服务提供商网络中的放置策略的历史使用的数据的分析识别 的一个或多个放置策略。

14.根据第7条所述的计算机实施的方法,其进一步包括利用所 选择的放置策略以影响工作负荷在服务提供商网络中的特定硬件平 台上的放置。

15.一种用于在服务提供商网络中选择用于计算工作负荷的放 置策略的计算系统,所述系统包括:

一个或多个计算机,其被配置来

接收对适合于在所述计算工作负荷下使用的放置策略的请求,且

从由所述服务提供商网络的客户共享的多个放置策略选择用于 在所述工作负荷下使用的放置策略。

16.根据第15条所述的系统,其中一个或多个计算机被配置来 利用所选择的放置策略以影响工作负荷在服务提供商网络中的特定 硬件平台上的放置。

17.根据第16条所述的系统,其中工作负荷包括虚拟机图像。

18.根据第15条所述的系统,其中所选择的放置策略可以进一 步从通过定义服务提供商网络中的放置策略的历史使用的数据的分 析识别的一个或多个放置策略选择。

19.根据第15条所述的系统,其中进一步基于多个放置策略的 发布者的评分识别所选择的放置策略。

20.根据第15条所述的系统,其中进一步基于多个放置策略的 评分识别所选择的放置策略。

21.一种具有存储于其上的计算机可执行指令的计算机可读存 储介质,所述计算机可执行指令在由计算机执行时使得计算机:

接收实例化虚拟机实例的请求,所述请求包括与供应商无关的放 置策略;

提取多个服务提供商网络的实例可用性数据,实例可用性数据描 述虚拟机实例类型和用于执行从服务提供商网络的各个得到的虚拟 机实例类型的硬件平台;

提取多个服务提供商网络的实例定价数据,实例定价数据描述用 于在服务提供商网络中执行虚拟机实例类型的价格;且

利用与供应商无关的放置策略、实例可用性数据和实例定价数据 以选择用于实例化虚拟机实例的服务提供商网络中的一个。

22.根据第21条所述的计算机可读存储介质,其中所选择的服 务提供商网络中的一个包括供应用于操作虚拟机实例的最低价格且 还满足与供应商无关的放置策略中提出的一个或多个参数的服务提 供商网络。

23.根据第21条所述的计算机可读存储介质,其中在接收实例 化虚拟机实例的请求之前提取多个服务提供商网络的实例可用性数 据。

24.根据第21条所述的计算机可读存储介质,其中响应于接收 实例化虚拟机实例的请求而提取多个服务提供商网络的实例可用性 数据。

25.根据第21条所述的计算机可读存储介质,其中在已于服务 提供商网络中的一个上启动虚拟机实例之后提取多个服务提供商网 络的实例可用性数据。

26.根据第21条所述的计算机可读存储介质,其中在接收实例 化虚拟机实例的请求之前提取实例定价数据。

27.根据第21条所述的计算机可读存储介质,其中响应于接收 实例化虚拟机实例的请求而提取实例定价数据。

28.根据第21条所述的计算机可读存储介质,其中在已于服务 提供商网络中的一个上启动虚拟机实例之后提取实例定价数据。

29.根据第21条所述的计算机可读存储介质,其进一步具有存 储于其上的计算机可执行指令,所述计算机可执行指令在由计算机执 行时使得计算机将请求传输至所选择的服务提供商网络中的一个来 实例化虚拟机实例。

30.根据第21条所述的计算机可读存储介质,其进一步具有存 储于其上的计算机可执行指令,所述计算机可执行指令在由计算机执 行时使得计算机返回用于响应于实例化虚拟机实例的请求而在所选 择的服务提供商网络中的一个上执行虚拟机实例的估计成本。

31.一种用于选择用于执行虚拟机实例的多个服务提供商网络 中的一个的计算机实施的方法,所述方法包括执行以下计算机实施的 操作:

获得多个服务提供商网络的实例可用性数据,实例可用性数据描 述一个或多个虚拟机实例类型和用于执行虚拟机实例类型的硬件平 台;

获得多个服务提供商网络的实例定价数据,实例定价数据描述利 用虚拟机实例类型的价格;且

利用实例可用性数据、实例定价数据和与供应商无关的放置策略 以选择用于执行虚拟机实例的多个服务提供商网络中的一个。

32.根据第31条所述的计算机实施的方法,其中与供应商无关 的放置策略包括被配置来用于在影响虚拟机实例在服务提供商网络 中的特定硬件平台上的放置中使用的与供应商无关的数据。

33.根据第31条所述的计算机实施的方法,其中所选择的服务 提供商网络中的一个包括供应用于执行虚拟机实例的最低价格且还 满足与供应商无关的放置策略中提出的一个或多个参数的服务提供 商网络。

34.根据第32条所述的计算机实施的方法,其中进一步考虑指 定用于执行虚拟机实例的优选服务提供商网络的一个或多个放置偏 好而选择用于执行虚拟机实例的服务提供商网络。

35.根据第32条所述的计算机实施的方法,其中进一步考虑指 定不应被利用来执行虚拟机实例的服务提供商网络的一个或多个放 置偏好而选择用于执行虚拟机实例的服务提供商网络。

36.根据第32条所述的计算机实施的方法,其中在接收执行虚 拟机实例的请求之前获得实例可用性数据和实例定价数据。

37.根据第31条所述的计算机实施的方法,其中响应于接收执 行虚拟机实例的请求而获得实例可用性数据和实例定价数据。

38.根据第32条所述的计算机实施的方法,其进一步包括使得 虚拟机实例执行于所选择的服务提供商网络中的一个上。

39.一种用于选择用于执行虚拟机实例的服务提供商网络的计 算系统,所述系统包括:

一个或多个计算机,其被配置来:接收执行虚拟机实例的请求, 所述请求包括与供应商无关的放置策略;且利用与供应商无关的放置 策略以选择用于执行虚拟机实例的多个服务提供商网络中的一个。

40.根据第39条所述的系统,其中所选择的多个服务提供商网 络中的一个包括可以满足与供应商无关的放置策略中指定的一个或 多个参数且还以多个服务提供商的最低成本执行虚拟机实例的服务 提供商网络。

41.根据第40条所述的系统,其中一个或多个计算机被配置来 基于从服务提供商网络获得的实例可用性数据确定服务提供商网络 是否可以满足与供应商无关的放置策略中指定的一个或多个参数。

42.根据第40条所述的系统,其中一个或多个计算机被配置来 识别可以基于从服务提供商网络获得的实例定价数据以最低价格执 行虚拟机实例的服务提供商网络。

43.一种具有存储于其上的计算机可执行指令的计算机可读存 储介质,所述计算机可执行指令在由计算机执行时使得计算机:

接收包括一个或多个动态评估参数的放置策略;

从服务提供商网络外部的一个或多个源提取动态评估参数的一 个或多个值;

至少利用从服务提供商网络外部的一个或多个源提取的动态评 估参数的值评估放置策略;且

基于放置策略的评估修改服务提供商网络中操作的客户群队中 的一个或多个虚拟机实例。

44.根据第43条所述的计算机可读存储介质,其中修改客户群 队中的一个或多个虚拟机实例包括将客户群队中的虚拟机实例从第 一硬件平台迁移至服务提供商网络中的第二硬件平台。

45.根据第43条所述的计算机可读存储介质,其中修改客户群 队中的一个或多个虚拟机实例包括在由放置策略指定的硬件平台上 启动服务提供商网络中的虚拟机实例。

46.根据第43条所述的计算机可读存储介质,其进一步具有存 储于其上的计算机可执行指令,所述计算机可执行指令在由计算机执 行时使得计算机定期地重复提取、评估和修改操作。

47.根据第43条所述的计算机可读存储介质,其进一步具有存 储于其上的计算机可执行指令,所述计算机可执行指令在由计算机执 行时使得计算机从服务提供商网络内部的一个或多个数据源提取动 态评估参数的一个或多个值。

48.根据第35条所述的计算机可读存储介质,其中进一步基于 从服务提供商网络内部的一个或多个数据源提取的动态评估参数的 值评估放置策略。

49.根据第35条所述的计算机可读存储介质,其中响应于接收 指示一个或多个动态评估参数已改变的事件的通知而评估放置策略。

50.一种用于使用指定一个或多个动态评估参数的放置策略修 改虚拟机实例群队中的一个或多个虚拟机实例的计算机实施的方法, 所述方法包括执行以下计算机实施的操作:

提取由放置策略指定的一个或多个动态评估参数的值;

至少部分基于动态评估参数的提取值评估放置策略;且

基于放置策略的评估修改群队中的一个或多个虚拟机实例。

51.根据第50条所述的计算机实施的方法,其中一个或多个动 态评估参数的值的至少一个从提供虚拟机实例的服务提供商网络外 部的数据源提取。

52.根据第51条所述的计算机实施的方法,其中服务提供商网 络外部的数据源由与一个或多个虚拟机实例关联的服务提供商网络 的客户提供。

53.根据第50条所述的计算机实施的方法,其中一个或多个动 态评估参数的值的至少一个从提供虚拟机实例的服务提供商网络内 部的数据源提取。

54.根据第50条所述的计算机实施的方法,其中修改群队中的 一个或多个虚拟机实例包括用执行于第二硬件平台上的第二虚拟机 替换执行于第一硬件平台上的群队中的第一虚拟机实例。

55.根据第50条所述的计算机实施的方法,其中修改群队中的 一个或多个虚拟机实例包括创建执行于由放置策略指定的硬件平台 上的群队中的新虚拟机实例。

56.根据第50条所述的计算机实施的方法,其进一步包括定期 地重复提取、评估和修改操作。

57.一种用于利用指定一个或多个动态评估参数的客户供应的 放置策略修改虚拟机实例群队的计算系统,所述系统包括:

一个或多个计算机,其被配置来

通过提取动态评估参数的值评估客户供应的放置策略,且

基于客户供应的放置策略的评估而修改群队中的一个或多个虚 拟机实例。

58.根据第57条所述的系统,其中动态评估参数的值的至少一 个从实施虚拟机实例的服务提供商网络外部的数据源提取。

59.根据第58条所述的系统,其中服务提供商网络外部的数据 源由服务提供商网络的客户提供。

60.根据第57条所述的系统,其中动态评估参数的值的至少一 个从提供虚拟机实例的服务提供商网络内部的数据源提取。

61.根据第57条所述的系统,其中修改群队中的一个或多个虚 拟机实例包括用执行于第二硬件平台上的第二虚拟机替换执行于第 一硬件平台上的群队中的第一虚拟机实例。

62.根据第57条所述的系统,其中修改群队中的一个或多个虚 拟机实例包括创建执行于由放置策略指定的硬件平台上的群队中的 新虚拟机实例。

63.根据第57条所述的系统,其中一个或多个计算机进一步被 配置来定期地重复评估和修改操作。

服务提供商网络102的客户和其他用户可以使用合适的客户计 算系统801经由WAN804访问由服务提供商网络102提供的计算资 源。虽然在图8中图示WAN804,但是应了解,可以利用局域网 (“LAN”)、因特网或将数据中心802连接至远程客户和其他用户的 技术中所知的任何其它联网拓扑。还应了解,还可以利用这样的网络 的组合。

图9是根据本文公开的一个实施方案的图示实施用于虚拟机的 用户影响的放置的本文公开的概念和技术的方面的数据中心802的 一个配置的计算系统。图9中所示的实例数据中心802包括用于提供 计算资源(诸如上文描述的计算资源)的若干服务器计算机902A至 902F(其在本文中可以单数地称作“一个服务器计算机902”或复述 地称作“若干服务器计算机902”)。

服务器计算机902可以是被适当地配置来用于提供本文描述的 计算资源的标准塔式或机架安装式服务器计算机。例如,在实施中, 服务器计算机902被配置来提供计算资源908A至908N。如上文提 及,计算资源908可以是数据处理资源,诸如虚拟机实例104、数据 存储资源、数据库资源、联网资源等等。一些服务器902还可以被配 置来执行能够实例化和/或管理计算资源的资源管理器904。在虚拟机 实例104的情况下,例如,资源管理器904可以是被配置来在(例如) 单个服务器计算机902上实现多个虚拟机实例104的执行的管理程序 或另一类型的程序。

图9中所示的数据中心902还包括可以被保留用来执行用于管理 数据中心802、服务器计算机902和计算资源的操作的多种软件组件 的服务器计算机902F。在一些实施(诸如上文描述的实施)中,服 务器计算机902F还可以被配置来执行放置策略识别组件214、实例 放置服务402、部署组件110和/或本文描述的其它软件组件。还可以 利用数据中心802内的其它计算系统以执行这些和其它组件。还可以 利用其它配置。

在图9中所示的实例数据中心802中,利用适当LAN906以互 连服务器计算机902A至902F。LAN906还连接至图8中所示的WAN 804。应了解,已极大地简化图1至图9中所示的配置和网络拓扑且 可以利用更多计算系统、网络和联网装置以互连本文公开的多种计算 系统且提供上文描述的功能。适当负载平衡装置或软件模块还可以被 利用来使数据中心802A至802N的每个之间,每个数据中心802中 的服务器计算机902A至902F的每个之间和可能地,数据中心802 的每个中的计算资源之间的负载平衡。应了解,关于图9描述的数据 中心802仅仅具说明性且可以利用其它实施。

图10示出能够执行用于虚拟机实例104的用户影响的放置的上 文描述的程序组件的计算机1000的实例计算机架构。图10中所示的 计算机架构图示常规服务器计算机、工作站、台式计算机、膝上型计 算机、平板计算机、网络设备、个人数字助理(“PDA”)、电子阅读 器、数字蜂窝电话或其它计算装置且可以被利用来执行本文呈现的软 件组件的任何方面。例如,图10中所示的计算机架构可以被利用来 实施上文关于图1至图6描述的多种组件。

计算机1000包括基板1002或“母板”,其为印刷电路板,众多 组件或装置可以通过系统总线或其它电通信路径连接至所述印刷电 路板。在一个说明性实施方案中,一个或多个中央处理单元(“CPU”) 1004连同芯片集1006操作。CPU1004可以是执行计算机1000的操 作所必需的算数和逻辑操作的标准可编程处理器。

CPU1004通过经由操纵区分这些状态且改变这些状态的切换元 件从一个离散、物理状态转变至下一个来执行操作。切换元件一般可 以包括维持两个二元状态中的一个的电子电路(诸如触发器)和基于 一个或多个其它切换元件的状态的逻辑组合提供输出状态的电子电 路(诸如逻辑门)。这些基本切换元件可以组合以产生更复杂的逻辑 电路,其包括寄存器、加法器-减法器、算术逻辑单元、浮点单元等 等。

芯片集1006提供CPU1004与基板1002上的组件和装置的剩余 物之间的接口。芯片集1006可以提供至用作计算机1000中的主存储 器的随机访问存储器(“RAM”)1008的接口。芯片集1006可以进一 步提供至计算机可读存储介质(诸如只读存储器(“ROM”)1010或 非易失性RAM(“NVRAM”))的接口,所述计算机可读存储介质用 于存储帮助启动计算机1000且在多种组件与装置之间传送信息的基 本例行程序。ROM1010或NVRAM还可以存储为根据本文描述的实 施方案操作计算机1000所必需的其它软件组件。

计算机1000可以使用通过网络(诸如局域网1020)至远程计算 装置和计算机系统的逻辑连接在联网环境中操作。芯片集1006可以 包括用于通过NIC1012(诸如千兆比特以太网适配器)提供网络连 接性的功能。NIC1012能够经由网络1020将计算机1000连接至其 它计算装置。应了解,多个NIC1012可以存在于计算机1000中而将 计算机连接至其它类型的网络和远程计算机系统。

计算机1000可以连接至为计算机提供非易失性存储的大容量存 储装置1018。大容量存储装置1018可以存储已在本文中更详细地描 述的系统程序、应用程序、其它程序模块和数据。大容量存储装置 1018可以通过连接至芯片集1006的存储控制器1014而连接至计算 机1000。大容量存储装置1018可以由一个或多个物理存储单元组成。 存储控制器1014可以通过串行附接SCSI(“SAS”)接口、串行高级 技术附件(“SATA”)接口、光纤信道(“FC”)接口或用于在计算机 与物理存储单元之间物理地连接和传送数据的其它类型的接口与物 理存储单元介接。

计算机1000可以通过转换物理存储单元的物理状态以反映正存 储的信息而将数据存储于大容量存储装置1018上。在本描述的不同 实施中,物理状态的特定转换可以取决于多种因素。这样的因素的实 例可以包括(但不限于)用于实施物理存储单元而无论大容量存储装 置1018是特征化为主存储器还是次级存储器等等的技术。

例如,计算机1000可以通过经由存储控制器1014发出指令以改 变磁盘驱动单元内的特定位置的磁特性,光存储单元中的特定位置的 反射或折射特性或固态存储单元中的特定电容器、晶体管或其它离散 组件的电特性来将信息存储至大容量存储装置1018。物理介质的其 它转换在不脱离于本描述的范围和精神下是可行的,其中前述实例只 提供来有利于这个描述。计算机1000可以进一步通过检测物理存储 单元内的一个或多个特定位置的物理状态或特性而从大容量存储装 置1018读取信息。

除了上文描述的大容量存储装置1018之外,计算机1000可以访 问其它计算机可读存储介质以存储和提取信息,诸如程序模块、数据 结构或其它数据。所属领域技术人员应了解,计算机可读存储介质可 以是为非暂时性数据的存储提供准备且可以由计算机1000访问的任 何可用介质。

举例而言,计算机可读存储介质可以包括实施于任何方法或技术 中的易失性和非易失性、可卸除式和不可卸除式介质。计算机可读存 储介质包括RAM、ROM、可擦除可编程ROM(“EPROM”)、电可 擦除可编程ROM(“EEPROM”)、闪存或其它固态存储器技术、光盘 ROM(“CD-ROM”)、数字多用途光盘(“DVD”)、高清DVD (“HD-DVD”)、BLU-RAY,或其它光存储器、磁带盒、磁带、磁盘存 储或其它磁存储装置或可以用于以任何非暂时性方式存储所期望的 信息的任何其它介质。

大容量存储装置1018可以存储被利用来控制计算机1000的操作 的操作系统1030。根据一个实施方案,操作系统包括LINUX操作系 统。根据另一实施方案,操作系统包括来自微软公司的SERVER操作系统。根据进一步实施方案,操作系统可以包括UNIX 或SOLARIS操作系统。应了解,还可以利用其它操作系统。大容量 存储装置1018可以存储由计算机1000利用的其它系统或应用程序和 数据,诸如放置策略识别组件214、实例放置服务402、部署组件110 和/或上文描述的其它软件组件和数据的任何一个。大容量存储装置 1018还可以存储未在本文明确识别的其它程序和数据。

在一个实施方案中,大容量存储装置1018或其它计算机可读存 储介质编码有计算机可执行指令,其在载入至计算机1000中时,将 计算机从通用计算系统转换为能够实施本文描述的实施方案的特殊 用途计算机。这些计算机可执行指令如上文所描述通过指定CPU 1004如何在状态之间转变而转换计算机1000。根据一个实施方案, 计算机1000可访问存储计算机可执行指令的计算机可读存储介质, 所述计算机可执行指令在由计算机1000执行时执行上文描述的多种 处理例行程序。计算机1000还可以包括用于执行本文描述的任何其 它计算机实施的操作的计算机可读存储介质。

计算机1000还可以包括一个或多个输入/输出控制器1016,其用 于从许多输入装置(诸如键盘、鼠标、触摸板、触摸屏、电子笔或其 它类型的输入装置)接收输入且处理来自所述输入装置的输入。类似 地,输入/输出控制器1016可以将输出提供至显示器,诸如计算机监 视器、平板显示器、数字投影仪、打印机、绘图仪或其它类型的输出 装置。将了解,计算机1000可以不包括图10中所示的所有组件,可 以包括未在图10中明确示出的其它组件或可以利用完全不同于图10 中所示的架构的架构。

基于上文,应了解,本文已呈现用于虚拟机实例104和其它类型 的计算资源的用户影响的放置的多种技术。而且,虽然已用对计算机 结构特征、方法论动作和计算机可读介质为特定的语言描述本文呈现 的主旨,但是应了解,随附权利要求书中定义的本发明并不一定限于 本文描述的特定特征、动作或介质。相反,特定特征、动作和介质公 开为实施权利要求书的实例形式。

上文描述的主旨只通过说明提供且不应视为限制。此外,所要求 的主旨并不限于解决本公开内容的任何部分中指出的任何或所有缺 点的实施。可以在不遵循所图示和描述的实例实施方案和应用下且在 不脱离于以下权利要求书中提出的本发明的真正精神和范围下对本 文描述的主旨进行多种修改和改变。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号