资源使用的自动分析.pdf

上传人:54 文档编号:23257 上传时间:2018-01-12 格式:PDF 页数:30 大小:2.37MB
返回 下载 相关 举报
摘要
申请专利号:

CN201380049263.5

申请日:

2013.09.17

公开号:

CN104854563A

公开日:

2015.08.19

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 9/50申请日:20130917|||公开

IPC分类号:

G06F9/50

主分类号:

G06F9/50

申请人:

亚马逊技术有限公司

发明人:

迈克尔·大卫·马尔; 马修·D·克莱因

地址:

美国内华达州

优先权:

13/623,845 2012.09.20 US; 13/623,847 2012.09.20 US

专利代理机构:

北京天昊联合知识产权代理有限公司11112

代理人:

顾丽波; 井杰

PDF下载: PDF下载
内容摘要

基于实际的资源使用测量和其他操作度量的分析,可以自动确定计算资源的消费者的操作配置文件。在消费者(例如虚拟机实例)使用计算资源(例如由主机提供的那些计算资源)时可以进行测量。可以基于那些测量动态确定配置文件。配置文件可以被推广,使得具有类似的使用配置文件的消费者群体与单个配置文件相关联。可以基于所述配置文件做出分配决策,并且在所述配置文件指示所述消费者不太可能充分利用为其保留的资源时可以重新分配或超额订购计算资源。可以监视超额订购的资源,并且在资源争用太高时可以将消费者转移到不同的资源提供者。

权利要求书

1.  一种用于分析计算资源使用的系统,所述系统包含:
一个或多个处理器;
计算机可读存储器,其包括可执行指令,所述可执行指令在由所述一个或多个处理器执行时将所述系统配置成:
至少部分地基于根据运行类似的虚拟机的至少一个实例确定的操作度量,确定虚拟机实例的操作约束;
接收用于实例化所述虚拟机的请求;以及
响应于所述请求:
部分地基于一个或多个特性是否满足所述操作约束,识别多个主机计算设备中的主机计算设备,所述主机计算设备与虚拟机实例的操作相关的所述一个或多个操作特性相关联;以及
至少部分地使所述虚拟机的新实例实例化在所述主机计算设备上。

2.
  根据权利要求1所述的系统,其中所述操作度量中的至少一个涉及中央处理单元(CPU)利用率、内存利用率、网络利用率、硬盘利用率或电力利用率。

3.
  根据权利要求1所述的系统,其中所述一个或多个特性中的至少一个包含内存容量、中央处理单元(CPU)容量、网络带宽、网络延时、网络拓扑结构内的位置、指令集或性能度量的方差。

4.
  根据权利要求1所述的系统,其中所述操作约束涉及由所述主机计算设备提供的计算资源的预期的使用量。

5.
  根据权利要求4所述的系统,其中所述预期的使用量进一步至少部分地基于从与所述虚拟机相关联的客户接收的数据。

6.
  根据权利要求1所述的系统,其中模块在被执行时进一步被配置成:
接收关于所述新实例在所述主机计算设备上的操作的额外的操作度量,所述额外的操作度量与所述一个或多个操作特性相关;以及
响应于基于所述额外的操作度量确定所述一个或多个操作特性不再满足所述操作约束,将所述新实例转移到与满足所述操作约束的一个或多个额外的操作特性相关联的第二计算设备。

7.
  一种用于分析计算资源使用的计算机实施方法,所述计算机实施方法包含:
通过包含一个或多个计算设备的数据中心管理组件接收用于初始化与操作配置文件相关联的软件工作量的请求,其中所述操作配置文件至少部分地基于与所述软件工作量相关联的多个历史操作度量;以及
响应于所述请求:
至少部分地基于所述操作配置文件和与所述计算设备相关联的一个或多个操作特性,识别多个计算设备中的计算设备;以及
使所述软件工作量初始化在所述计算设备上。

8.
  根据权利要求7所述的计算机实施方法,其中所述操作配置文件包含与第一计算资源相关联的第一预期的资源使用量,其中所述第一预期的资源使用量至少部分地基于关于所述第一资源的使用的多个历史操作度量,并且其中所述一个或多个特性中的一个特性包含所述第一计算资源的可用性。

9.
  根据权利要求8所述的计算机实施方法,其中关于所述第一资源的使用的所述多个历史操作度量中的每个与使用测量被记录的时间相关联,并且其中所述操作配置文件进一步至少部分地基于所述多个历史操作度量中的每个被记录的时间。

10.
  根据权利要求7所述的计算机实施方法,其进一步包含至少部分地基于所述多个历史操作度量确定所述操作配置文件。

11.
  根据权利要求7所述的计算机实施方法,其进一步包含至少部分地基于与所述软件工作量相关联的客户的服务水平协议确定所述操作配置文件。

12.
  根据权利要求11所述的计算机实施方法,其进一步包含:
接收关于所述软件工作量在所述计算设备上的操作的大体上当前的操作度量,所述大体上当前的操作度量与所述一个或多个操作特性相关;以及
响应于基于所述大体上当前的操作度量确定没有与所述计算设备相关联的所述一个或多个操作特性对应于所需的操作特性,将所述软件工作量转移到与对应于所述所需的操作特性的操作特性相关联的第二计算设备。

13.
  根据权利要求7所述的计算机实施方法,其中所述操作配置文件包含多个预定义的操作配置文件中的第一预定义的操作配置文件。

14.
  根据权利要求13所述的计算机实施方法,其中所述预定义的操作配置文件与操作层次中的层相关联,并且其中所述第一预定义的操作配置文件与相对于所述软件工作量的所述操作层次的较高层相关联。

15.
  根据权利要求7所述的计算机实施方法,其中所述操作配置 文件包含客户特定的操作配置文件,并且其中所述多个历史操作度量与所述客户对所述软件工作量的初始化或使用相关联。

说明书

资源使用的自动分析
发明背景
一般地描述,计算设备利用通信网络或一系列通信网络来交换数据。公司和组织操作使许多计算设备互连的计算机网络以支持操作或将服务提供给第三方。计算系统可以位于单个地理位置或位于多个不同的地理位置(例如,通过专用或公用通信网络来互连)。具体来说,数据中心或数据处理中心(本文中一般被称为“数据中心”)可以包括许多互连的计算系统以将计算资源提供给数据中心的用户。数据中心可以是代表组织操作的专用数据中心,或者代表公众或为了公众的利益操作的公用数据中心。
为了促进数据中心资源的利用率提高,虚拟化技术可以允许单个物理主机计算设备托管虚拟机实例配置的一个或多个实例,这些配置向数据中心的用户显现并作为独立的计算设备工作。通过虚拟化,单个物理主机计算设备可以创建、维护、删除或另外以动态的方式管理虚拟机实例。相应地,用户可以请求单个计算设备或网络计算设备的配置,并且具备不同数量的虚拟机资源。
主机计算设备所提供的计算资源可以包括计算能力、内存和其他存储、带宽等。在具有成千上万的主机计算设备的数据中心环境中,只要目标主机计算设备满足指定标准,例如,充足和可用的计算设备资源(例如,处理单元、内存等),虚拟机的实例就可以被实例化在随机主机计算设备上。一旦虚拟机的实例被实例化在物理主机计算设备上,可以保留预定量的一个或多个计算资源以供虚拟机实例使用。数据中心环境的计算资源提供者或其他操作员可以向虚拟机实例保证所保留的量的计算资源在目标计算设备上的可用性。
附图说明
贯穿附图,可以重复使用参考符号来指示参考元件之间的对应。附图被提供以说明本文所述的示例性实施方案并且不旨在限制本公开的范围。
图1为包括管理组件、多个主机计算设备和多个客户的说明性网络计算环境的方框图。
图2为包括各种模块和存储组件的说明性管理组件的方框图。
图3为用于自动分析计算资源的使用的说明性过程的流程图。
图4为托管虚拟机的说明性主机计算设备的方框图,所述虚拟机利用计算设备所提供的计算资源。
图5为说明性过程的流程图,所述过程用于启动主机计算设备上的虚拟机、分配和超额订购计算资源,并且迁移当前执行的虚拟机以便进一步优化计算资源利用率。
图6为说明性主机计算设备的方框图,其中各种计算资源被超额订购并且超额能力保持可用。
图7为说明性主机计算设备的方框图,其中由于执行在主机计算设备上的每个虚拟机的最小的资源利用率,大幅超额订购各种计算资源。
图8为由于超额订购和缺乏可用的计算资源能力,虚拟机从一个主机计算设备到另一个主机计算设备的说明性迁移的方框图。
具体实施方式
一般而言,本公开涉及计算资源利用率。具体来说,本公开涉及基于实际的资源使用测量和其他操作度量的分析,为计算资源的消费 者自动确定资源使用和操作度量配置文件。在一些实施方案中,计算资源的消费者,例如,根据客户规格实例化的虚拟机实例(例如:从虚拟机图像实例化的虚拟机实例,虚拟机图像被配置具有根据客户规格的操作系统和应用软件),可以被实例化在主机物理计算设备上。虚拟机实例可以基于虚拟机实例对一个或多个计算机软件程序或其他工作量的执行来消耗各种计算资源。然后,虚拟机实例可以终止执行或以其他方式被配置用于不同的目的。
对于具体的实体,例如客户或一组客户,可以重复实例化虚拟机实例的过程。作为处理虚拟机实例的生命周期的部分,与提供虚拟机实例相关联的服务提供者可以观察并记录资源消耗。然后,服务提供者可以基于处理资源消耗测量和其他操作度量信息确定虚拟机实例资源使用和操作度量配置文件。
本公开的额外的方面涉及推广资源使用和操作度量配置文件,一般被称为操作配置文件。例如,数千或更多的虚拟机实例可以被实例化并且可以利用单个网络计算环境(例如数据中心)中的资源。可以将虚拟机实例分配给广义或默认的操作配置文件,而不是确定和维护每个虚拟机实例的单独定制的操作配置文件。因此,虚拟机实例组可以根据各种组织标准被分类并且分配给同一操作配置文件。在一些情况下,操作配置文件可以是分层的,使得特定虚拟机实例配置与特定操作配置文件相关联,并且也与更一般的操作配置文件相关联,更一般的操作配置文件本身与多个虚拟机实例配置相关联。可能有层次结构的多个层,其具有可能成千上万的虚拟机实例配置,所述虚拟机实例配置与下列相关联:单个一般操作配置文件或少数顶层操作配置文件,以及在层次结构内的每一层的更多数量的更具体的操作配置文件。在层次结构的底层可以是与特定客户所使用的单个虚拟机实例配置相关联的特定操作配置文件。
本公开的进一步的方面涉及基于自动确定的操作配置文件,识别目标主机计算设备以将计算资源提供给虚拟机实例。在一些实施方案 中,特定物理主机计算设备可以被配置成将目标计算资源同时提供给多个虚拟机实例。可以保留预定量的计算资源以供单个虚拟机实例使用。当虚拟机实例的操作配置文件指示虚拟机实例将不太可能消耗已为该实例保留的计算设备资源时,主机计算设备可以实例化额外的虚拟机实例。额外的虚拟机实例可以与先前实例化的虚拟机实例同时发生的主机计算设备资源相关联,或有权访问主机计算设备资源。另外,如果任何虚拟机实例消耗或以其他方式限制对资源的访问,使得消耗满足或超过虚拟机实例的操作配置文件中所指定的一个或多个阈值,那么可以将一个或多个虚拟机实例转移到另一个主机计算设备。例如,与超过阈值的消耗相关联的虚拟机实例可以被转移,或其他虚拟机实例可以被转移。
一些计算资源不一定由主机计算设备提供,而是脱离主机资源。例如,网络拓扑结构可能需要从一个主机计算设备通信到第二主机计算设备以遍历一个或多个链路(例如,交换机与其他网络组件之间的网络连接)。对于到第三主机计算设备的通信,链路的数量可以是不同的。关于链路流量和通信将在主机之间遍历的链路的数量的数据可以被记录为资源消耗测量或操作度量。数据可以在未来被用于确定在哪个主机计算设备上实例化可以与另一主机计算设备通信的虚拟机实例。另外,一些计算资源的消耗并不一定减少一般可用于其他虚拟机实例或消费者的资源的量。例如,由主机计算设备提供的特征(例如特定指令集)可以一般被称为计算资源。然而,指令集的使用并不一定减少指令集到另一虚拟机实例、应用程序或其他消费者的可用性。
尽管为了说明的目的,在本公开中描述的实施方案的方面将专注于管理组件、服务器计算设备和在代表客户的服务器计算设备上实例化的虚拟机之间的关系和交互,但是本领域技术人员将了解,本文公开的技术可以应用于任何数量的硬件或软件过程或应用程序。例如,尽管虚拟机实例将一般用作说明性计算资源消费者,但是其他程序或工作量可以被取代,例如应用软件、操作系统、存储区域网络(SAN) 节点等。另外,尽管计算资源(例如,存储器、CPU容量和网络带宽)将被用作说明性计算资源,但是其他计算资源可以被取代,例如网络链路流量、延时、处理器指令集等。此外,尽管将参照说明性实例和实施方案来描述本公开的各种方面,但是本领域技术人员将了解,所公开的实施方案和实例不应被解释为限制。现在将参照旨在说明但不限制本公开的某些实例和实施方案来描述本公开的各种方面。
图1图示示例性网络计算环境100,其中可以实施资源使用的自动分析和基于那些配置文件对资源的分配。操作配置文件和资源分配可以基于实际资源使用的先前测量和其他操作度量,并且也基于资源的预期未来使用。网络计算环境100可以包括通过网络110通信的管理组件102和任何数量的物理主机计算设备104a-104n。一个或多个客户122可以通过网络120与网络计算环境100的组件通信。
网络计算环境100,例如图1中所示的网络计算环境100可以在数据中心和多个主机计算设备104a-104n将计算服务和资源提供给内部或外部客户122的其他环境中实施。如下文更详细地描述,每个客户122可以连接到管理组件102或网络计算环境100内的一些其他组件以启动计算过程。计算过程的启动可以包括虚拟机实例在主机计算设备104上的实例化,或操作环境和一个或多个软件应用程序的配置。虚拟机实例可以代表用户执行,消耗主机计算设备104的计算资源、网络110等。尽管只为了说明的目的,本公开将专注于通过使用虚拟机将计算服务提供给外部或内部客户122的网络计算环境100的操作,但是本文所述的系统和过程可以应用于网络计算环境100的任何实施,包括没有单独的客户122实体或没有虚拟机使用的实施。
每个主机计算设备104可以是服务器计算机,例如刀片服务器。可选地,主机计算设备104可以是中型计算设备、大型计算机、台式计算机,或被配置成将计算服务和资源同时提供给多个消费者(例如虚拟机实例)的任何其他计算设备。在典型实施中,主机计算设备104可以被配置成通过网络110与其他主机计算设备104、管理组件 102,或网络计算环境100的一些其他组件通信。
网络110可以是局域网(LAN)、广域网(WAN)、一些其他网络,或上述组合。另外,网络计算环境100可以连接到另一网络120(例如公司或大学网络),或由独立实体操作的网络的集合(例如互联网)。网络计算环境100的客户122可以通过网络120、110的组合与主机计算设备104通信。在一些实施方案中,客户122可以使计算设备102启动虚拟机实例以执行客户122或代表客户122的各种计算操作。任何数量的虚拟机实例可以在给定时间运行在单个主机计算设备104上。另外,运行在主机计算设备104上的各种虚拟机实例可以与单个客户122或许多不同的客户122相关联。
管理组件102可以实施为硬件或硬件和软件的组合。例如,管理组件102可以是被配置成执行一个或多个软件程序以执行本文所述的功能的一个或多个计算设备的计算系统。在一些实施方案中,管理组件可以包括主机计算设备104a-104n中的一个或多个。
图2更详细地图示示例性管理组件102。管理组件102可以包括配置文件确定模块202、放置模块204、迁移模块206、操作度量数据存储器208和配置文件数据存储器210。在一些实施方案中,管理组件102可以包括比图2中所示更多或更少的模块和数据存储器。例如,当迁移特征不被实施,或被放置模块204实施时,可能没有单独的迁移模块206。在另一示例性实施方案中,可能有广义客户配置文件的额外的数据存储器。
在操作中,配置文件确定模块202可以通过与特定客户122等相关联的所有虚拟机实例在特定时间的特定虚拟机实例配置的实例,获得关于操作度量和资源使用的操作数据。配置文件确定模块202可以分析操作数据,并且开发由被分析的虚拟机实例或虚拟机实例组利用的计算资源的操作配置文件。例如,操作数据可以包括关于下列各项的历史测量:利用的内存量、中央处理单元(CPU)利用率、传输或接 收的网络流量的量、利用的硬盘空间的量、磁盘操作的数量、利用的电力的量(例如:由可以归属于虚拟机实例的主机计算设备104利用的量)、启动的网络链路流量的量等。然后配置文件确定模块202可以为与特定虚拟机实例配置或虚拟机实例配置组的实例相关联的每个测量确定平均值,并且将平均值存储在操作配置文件中。操作配置文件不必限于平均测量。例如,操作配置文件可以包括其他统计分析,例如中位数、标准偏差、使用直方图或任何其他合适的或有用的数据。在一些实施方案中,可以根据使用的时间特性,例如一天中的时间、一年中的一天等,进一步表征操作配置文件。
也可以根据预期的测量和操作度量来表征操作配置文件。例如,预期的性能度量的方差(一般称为抖动)可以被观察并包括在操作配置文件中。这样的数据可以被用来确定是否满足设计目标、服务水平协议和对消费者的其他承诺或义务,或确定其多久未能得到满足。放置模块204可以在做出未来的放置决策时对抖动负责,努力确保相同的操作度量不会超出预期的范围或以其他方式确保满足消费者义务。在一些实施方案中,操作配置文件可以含有其他数据,例如延时偏好或要求、指令集偏好或要求等。这样的数据可以由消费者提供或通过由配置文件确定模块202对虚拟机实例操作的分析来确定。
用作说明地,服务提供者可以提供三类虚拟机:小型、中型和大型。每一类可以与将被保留以供虚拟机实例使用的预定量的每个计算资源相关联(例如:小型VM可以具有2GB RAM,中型VM可以具有8GB RAM,大型VM可以具有32GB RAM)。客户可以实例化被配置具有操作系统和应用软件的虚拟机(例如被配置具有网络服务器软件的大型虚拟机)的实例。可以记录关于被配置具有网络服务器软件的大型虚拟机的实例对计算资源的使用的测量。然后配置文件确定模块202可以在例如虚拟机被用作网络服务器时,为虚拟机实例配置的未来实例计算预期的资源使用量。预期的资源使用量可以形成由配置文件确定模块202确定的操作配置文件的基础。然后配置文件确定模块202可以修改操作配置文件,这是因为随着时间建立包括实际资 源使用的测量的数据集。
可以从各种来源获得由配置文件确定模块202使用的配置文件数据。如上所述,可以从与虚拟机相关联的实体获得数据。也可以直接从虚拟机实例正在上面执行的主机计算设备104的工作量分析组件获得数据。在一些实施方案中,可以从操作度量数据存储器208获得数据。操作度量数据存储器208可以与管理组件102整合在一起,如图2中所示,或操作度量数据存储器208可以物理上位于单独的计算设备上,例如专用关系数据库管理系统(RDBMS)服务器。由配置文件确定模块202确定的操作配置文件可以存储在配置文件数据存储器210中。类似于操作度量数据存储器208,配置文件数据存储器210可以与管理组件102整合在一起,或位于单独的计算设备上,例如专用RDBMS服务器。
在一些网络计算环境100中,可能有配置文件的数千或更多的虚拟机实例,并且每个操作配置文件可以例如基于特定虚拟机实例配置所独有的使用数据的分析,或特定客户的使用。为了有效利用操作配置文件做出关于虚拟机实例在主机计算设备104a-104n上的实例化的放置决策,可以推广操作配置文件。因此,即使可能在与每个虚拟机实例配置相关联的实际资源使用上有方差,许多不同的虚拟机实例配置也可以与相同的或大体上类似的操作配置文件相关联。例如,配置文件确定模块202可以使虚拟机实例配置与预定义的预期使用量相关联,而不是存储每个虚拟机实例配置的定制的操作配置文件。预定义的操作配置文件可以包括被测量的每个计算资源的利用范围。另外,操作配置文件可以是分层的,使得特定虚拟机实例配置与特定操作配置文件相关联,并且也与更一般的操作配置文件相关联,更一般的操作配置文件本身与多个虚拟机实例配置相关联。
在一些实施方案中,操作配置文件可以被进一步推广为几个类别。例如,根据使用测量是否超过或低于某一阈值,每个与不同量的网络使用相关联的许多虚拟机实例配置可以被归类为“轻型网络应 用”或“重型网络应用”。在这样的分类方案中,在被实例化时主要执行本地计算操作并且很少利用网络连接的虚拟机实例配置可以被归类在与经常利用网络连接,但只适用于非常小的传输的虚拟机实例配置相同的“轻型网络应用”类别中,相比于可用于虚拟机实例在上面执行的主机计算设备104a-104n的网络带宽的量,这些非常小的传输可能是微不足道的。这样的广义操作配置文件也可以基于两个或更多个类别的混合,例如“轻型网络应用/重型CPU应用”和“轻型网络应用/轻型CPU应用”。返回到前面的实例,两个虚拟机实例配置可以与不同的类别相关联。在被实例化时主要执行本地计算操作并且很少利用网络连接的虚拟机实例配置可以被归类为“轻型网络应用/重型CPU应用”,而在虚拟机实例的CPU利用率低于阈值的情况下,在被实例化时经常启动小的网络传输的虚拟机实例配置可以被归类为“轻型网络应用/轻型CPU应用”。
如上所述,操作配置文件,无论是特定于虚拟机实例配置还是推广到许多虚拟机实例配置,都可以被用来识别在上面放置虚拟机实例的主机计算设备104a-104n。当客户122启动计算会话时或当以其他方式实例化虚拟机时,可以调用放置模块204。放置模块204可以确定哪个操作配置文件在当前时间与虚拟机实例相关联。例如,操作配置文件可以是定制的配置文件,其包括在一天中的当前时间、在一年中的当前月期间等与虚拟机实例相关联的实际资源使用的测量。在一些情况下,测量可以特定于特定客户,使得可以创建和访问特定客户的操作配置文件。客户特定的操作配置文件可以适用于特定虚拟机实例配置,或可以一般适用于多个不同的虚拟机实例配置。可选地,操作配置文件可以是广义配置文件,其基于与虚拟机实例相关联的资源使用的整体特性,也可以基于一天中的当前时间等。然后虚拟机放置模块204可以选择主机计算设备104,基于主机计算设备104a-104n的资源可用性以及根据操作配置文件确定的虚拟机实例的预期的资源使用,在主机计算设备104上启动虚拟机实例。
资源利用率可能在特定虚拟机实例配置的单个实例的寿命期间, 并且在特定虚拟机实例配置的多个实例上是动态的。管理组件102的迁移模块206可以监视每个执行虚拟机实例和虚拟机实例正在上面执行的主机计算设备104的资源利用率。当资源利用率改变时,类似于上述虚拟机放置模块204,迁移模块206可以选择在上面放置虚拟机实例的合适的主机计算设备104。可以在选择的主机计算设备104上启动虚拟机的新的实例,并且可以将虚拟机实例的执行状态(内存、输入等)复制到新的虚拟机实例。当新的虚拟机实例准备开始执行时,可以终止先前的虚拟机实例,而没有数据丢失并且没有很大的性能损失。由于可用的资源,新的虚拟机实例可以更有效地执行。
在一些实施方案中,可以重新分配资源,而不是实例化不同的主机计算设备上的虚拟机的新的实例并且终止先前的实例。当资源利用率或性能度量改变时,可以将额外的资源(例如内存)分配给特定虚拟机。例如,可以从预期不会充分利用资源的其他虚拟机重新分配资源。
现在转到图3,将描述用于确定虚拟机实例配置的操作配置文件的说明性过程300。过程300可以由管理组件102执行。管理组件102可以从客户122接收请求或以其他方式被通知实例化虚拟机。在实例化虚拟机实例、识别实例化的虚拟机实例或使虚拟机被实例化之后,管理组件102可以监视或以其他方式接收关于与虚拟机实例相关联的计算资源利用率的操作数据。基于资源使用和操作度量数据,管理组件102可以确定或更新虚拟机实例配置的操作配置文件,或更新现有的操作配置文件。有利地,可以比较操作配置文件与其他操作配置文件并进行推广,并且虚拟机实例配置可以与资源使用的类别相关联。
过程300开始于方框302。过程300可以自动开始,例如响应于接收到用于实例化虚拟机的请求。例如,过程300可以实施在一组可执行程序指令中,并且存储在与管理组件102相关联的计算系统的计算机可读介质驱动器上。当启动过程300时,可执行程序指令可以被 载入存储器(例如RAM),并且由计算系统的一个或多个处理器执行。在一些实施方案中,计算系统可以包括多个计算设备(例如服务器),并且过程300可以由多个串联或并联的服务器执行。
在方框304,管理组件102或一些其他组件启动虚拟机实例。如下文参照图5详细地描述,管理组件可以基于预期由虚拟机实例消耗的资源和主机计算设备104a-104n目前可用的资源,选择在上面启动虚拟机实例的主机计算设备104。可以根据先前存在的操作配置文件、从客户122或请求启动虚拟机实例的其他实体等接收的信息,确定预期由虚拟机实例消耗或可用于虚拟机实例的资源。
过程300可以进行至方框306用于新启动的虚拟机实例,以便获得操作度量并且创建或修改操作配置文件。在过程300进行时,基于相同的操作配置文件,要么是原来存在的,要么是在对于先前启动的虚拟机实例的过程300的执行期间修改的,可以在方框304启动和/或放置任何数量的额外的虚拟机实例。以这种方式,可以在任何数量的并发实例中执行过程300,所述数量一般对应于与可以在特定时间执行的操作配置文件(或在配置文件的层次结构中,来自层次结构中的更高层的配置文件)相关联的虚拟机实例的数量。
在方框306,可以监视由虚拟机实例利用的资源,并且可以获得资源使用测量和其他操作度量。在方框308,可以记录操作度量。监视可以由管理组件102,或一些其他组件,例如虚拟机实例正在上面执行的主机计算设备104的工作量分析组件421来执行。操作度量可以被存储在操作度量数据存储器208。在使用工作量分析组件421的实施方案中,工作量分析组件421可以暂时或长期存储操作度量。工作量分析组件可以将关于操作度量的数据传输到管理组件102以大体上实时、在预定的时间间隔、在虚拟机终止后、在一些其他时间存储,或根本不存储。
图4图示由主机计算设备104提供给多个虚拟机实例的几个资源 利用率的测量。如图4中所示,主机计算设备104可以提供计算资源,例如存储器402、CPU 404和网络带宽406。在一些实施方案中,更多或更少的计算资源可以提供给虚拟机实例。例如,虚拟机实例可能不允许与其他设备进行通信,因此不需要测量网络接口406的利用率。在另一实例中,主机计算设备104可以提供和跟踪硬盘空间、硬盘操作、电力等的利用率。
在一些实施方案中,计算资源的提供者,例如网络计算环境100的操作员,可以为客户提供在上面执行虚拟机实例的一定量的计算资源。例如,客户122可以为其虚拟机实例配置中的一个保留预定量的存储器(例如随机存取存储器(RAM))、预定量的计算能力(例如CPU核心)和由网络接口提供的预定量的网络带宽。主机计算设备104的存储器402可以分隔成部分410、412、414,其被保留用于单个虚拟机实例(例如:部分412、414)或用于主机计算设备104和其他内部程序的操作(例如:部分410)。被保留用于主机计算设备104的操作的部分可以包括用于帮助虚拟机实例的启动、执行和终止的管理程序、操作系统、驱动程序等。另外,主机计算设备104可以包括工作量分析组件421,其监视资源利用率并且可选地与管理组件102通信。工作量分析组件421也可以驻留在内存空间410,并且可以整合到管理程序420或可以是共享内存空间410的独立的组件。在一些实施方案中,工作量分析组件421可以驻留在被保留用于客户虚拟机实例的内存空间412、414。在这些情况下,工作量分析组件421可以在实例化后整合到虚拟机实例配置或包括在虚拟机实例中。在进一步的实施方案中,工作量分析组件421可以驻留在为其保留的单独的内存空间,或可以实施为不共享主机计算设备104的存储器402的组件,例如独立的硬件设备。
在许多情况下,虚拟机实例可能不利用为其保留的资源的整个部分。例如,如图4中所示,VM1422可以是客户122的虚拟机实例,并且可以被启动进入内存空间412,内存空间412的整体被保留供VM1422使用。在操作中,VM1422可能不利用整个内存空间412, 并且在一些情况下可能利用仅一小部分的保留的内存空间412。然而,有时,内存空间412的利用率可能改变,并且VM1422可以利用大体上所有的内存空间412。工作量分析组件421可以监视这些变化并且记录测量和其他数据,例如一天中的时间、特定虚拟机实例配置,或哪些其他虚拟机实例(如果有的话)正在主机计算设备104上执行。工作量分析组件421可以将数据传输到管理组件102或数据存储器。在一些实施方案中,工作量分析组件421可以暂时存储数据并且随后将数据转移到管理组件102,例如按计划,或响应于触发事件(例如VM1422的终止)。类似于测量和记录关于存储器402的利用率的数据,工作量分析组件421或一些其他组件可以监视CPU 404、网络接口406,或由VM1422利用的任何其他计算资源的使用。
可以获得和记录关于预期或优选的操作度量的任何方差的数据。例如,可以记录资源使用测量和其他操作度量并与操作配置文件进行比较,以便确定是否有预期或优选的度量的方差。在一些情况下,可以在个别客户基础上记录操作度量。可以记录关于方差的数据以使得可以基于方差做出未来的放置或迁移决策。另外,可以记录关于脱离主机资源的数据,例如延时、链路流量等。工作量分析组件421可以记录这些数据,或在主机外部的一些组件(例如,管理组件102或交换机)可以观察操作度量。在一些实施方案中,可以确定不一定降低资源的可用性的资源使用。例如,如果虚拟机实例或在其上运行的应用软件执行某些加密操作或被观察调用某些加密功能或指令,那么可以记录这样的数据。当启动或迁移虚拟机实例时,放置模块204或迁移模块206可以考虑这样的数据。可以选择提供更高效或更强大的加密指令的主机计算设备,例如,支持高级加密标准(AES)新指令(AES-NI)的设备或类似的设备。
在方框310,管理组件102的配置文件确定模块202或一些其他模块可以修改与虚拟机实例相关联的操作配置文件,或创建新的操作配置文件。如上所述,操作配置文件可以包括关于典型或预期的资源使用、预期或所需的操作度量的方差等的信息。例如,操作配置文件 可以由单个虚拟机实例配置的每个许多不同的实例的平均测量组成。每个资源可以与多个测量相关联,这些测量对应于基于特定客户、一天中的时间、一年中的一天或其他环境因素的操作。
在一些实施方案中,操作配置文件的每个资源可以与利用率的分数或一些其他指示而不是统计测量相关联。例如,每个资源可以被分配1-10分,其中更高的数与资源的最重的和/或最频繁的用户相关联。在一些实施方案中,可以进一步推广操作配置文件。一组预定义的广义操作配置文件可以覆盖每个资源的测量范围或分数。例如,如果在夜间,VM1422利用不大于25%的内存空间412但利用几乎100%的CPU可用性,那么VM1422被实例化的虚拟机实例配置可以分配给一个广义操作配置文件。根据一天中的时间或其他因素,广义操作配置文件可以包括每个资源的多个测量范围。回到前面的实例,如果虚拟机实例通常在夜间以上述方式利用资源,但在白天利用50%的内存段412和CPU可用性,那么VM1422被实例化的虚拟机实例配置可以替代地分配给不同的预定义的操作配置文件。基于特定客户的使用,多个广义操作配置文件可以分配给特定虚拟机实例配置。例如,使用虚拟机实例配置的每个客户可以与不同的操作配置文件相关联。
在一些实施方案中,即使广义操作配置文件具有许多不同的虚拟机实例配置,并且即使每个虚拟机实例配置可以不同地利用资源,每个客户122也可以与广义操作配置文件相关联。客户122可以具有一个虚拟机实例配置,例如图4中的VM1422被实例化的虚拟机实例配置,其可以被独立地分析为轻型CPU应用,而另一个虚拟机实例配置,例如VM2424被实例化的虚拟机实例配置,可以被独立地分析为重型CPU应用。客户122可以被分析为适度的CPU用户,因为其平均CPU使用率是适度的。可选地,客户122可以被分析为重型CPU用户,因为其具有至少一个是重型CPU应用的虚拟机实例配置。在其他实施方案中,客户可以具有每个虚拟机图像配置的几个相关操作配置文件。即使虚拟机图像是常见的配置,大体上相同的虚拟机图像(例如VM1422)的不同的客户或用户也可以使用不同量的资源。 启动特定VM的给定客户更有可能以如先前所记录的相同的方式使用这个VM,并且消耗大约相同的资源。
每个虚拟机实例配置的操作配置文件可以存储在配置文件数据存储器210中。每个配置文件的实际测量可以存储在操作配置文件中,或可以存储虚拟机实例配置与哪个类别或广义操作配置文件相关联的ID或其他指示。在确定和利用作为虚拟机配置文件的替代或补充的客户配置文件的实施方案中,客户配置文件数据可以存储在相同的数据存储器210或不同的数据存储器中。
在方框312,可以创建或修改相关或广义操作配置文件。例如,如果使用分层配置文件,那么可以创建或修改较高层的配置文件。在一些情况下,不管虚拟机实例配置与哪些低层配置文件相关联,对于与高层操作配置文件相关联的每个虚拟机实例配置,可以从操作度量数据存储器208访问历史操作度量。可以执行统计分析并且可以如上所述确定操作度量方差。有利地,当实例化或迁移与过程300的当前执行相关联的虚拟机实例不同的虚拟机实例时,放置模块204或迁移模块206可以访问和使用修改的高层或广义操作配置文件。因此,与一个虚拟机实例相关联的所记录的操作度量可以被用来微调其他虚拟机实例的放置和执行,甚至是不从相同的虚拟机实例配置实例化的那些虚拟机实例。
现在转到图5,将描述用于基于操作配置文件确定虚拟机实例的放置的说明性过程500。过程500可以由管理组件102执行。管理组件102可以从客户122接收请求或以其他方式被通知从特定虚拟机实例配置或图像启动虚拟机实例。管理组件102可以识别主机计算设备104a-104n,其能够托管虚拟机实例并且确定主机计算设备104a-104n相对于可用计算资源的当前状态。有利地,管理组件102也可以获得要实例化的虚拟机实例配置的操作配置文件,并且从可用资源的角度来看,确定哪个可用主机计算设备104a-104n可以最有效地托管虚拟机。可以选择主机计算设备104,其已执行虚拟机并且将大部分或全 部资源托付给已执行的主机虚拟机。如果管理组件102确定主机计算设备104可以提供虚拟机实例可能会消耗的计算资源,那么基于当前执行虚拟机实例和要启动的虚拟机实例的操作配置文件,管理组件102可以启动主机计算设备104上的虚拟机实例。在一些情况下,这可以包括超额订购资源(例如,将相同的资源分配给多个虚拟机实例)。此外,管理组件102可以监视虚拟机实例在主机计算设备104上的执行,并且在没有足够的计算资源来满足每个虚拟机实例时,将一个或多个虚拟机实例的执行转移到另一个主机计算设备104。
过程500开始于方框502。可以自动启动过程500,例如响应于接收到用于启动虚拟机实例的请求。例如,过程500可以实施在一组可执行程序指令中,并且存储在与管理组件102相关联的计算系统的非暂态计算机可读介质驱动器上。当启动过程500时,可执行程序指令可以被载入存储器(例如RAM),并且由计算系统的一个或多个处理器执行。在一些实施方案中,计算系统可以包括多个计算设备(例如服务器),并且过程500可以由多个串联或并联的服务器执行。
在方框504,管理组件102可以接收用于初始化虚拟机实例的请求或一些其他通知。可以从客户122、主机计算设备104或一些其他组件或实体接收通知。在一些实施方案中,虚拟机实例可以请求初始化另一虚拟机实例、相同的虚拟机实例配置或图像的另一实例等。
在方框506,管理组件102的VM放置模块204或一些其他模块可以获得要启动的虚拟机实例的操作配置文件。可以从配置文件数据存储器210载入或从一些其他来源获得操作配置文件。VM放置模块204可以检查操作配置文件以确定虚拟机实例可能利用哪些资源并以哪个数量利用资源。如上所述,根据环境因素(例如一天中的时间),虚拟机实例配置的操作配置文件可能会不同。在这些情况下,管理组件102的VM放置模块204可以在检查操作配置文件时考虑这些环境因素。
在方框508,管理组件102的VM放置模块204或一些其他模块可以基于可用资源和操作配置文件选择在上面启动虚拟机实例的主机计算设备104。例如,网络计算环境100可以包括许多主机计算设备104a-104n。主机计算设备104a-104n不必是相同的;一些可以具有比其他更多或更少的RAM,更多或更少强大的处理器或不同数量的处理器等。VM放置模块204可以基于由操作配置文件和每个计算设备可用的资源识别的预期的资源利用率,选择在上面启动虚拟机实例的主机计算设备104。
在一些实施方案中,主机计算设备104可以被配置成托管特定虚拟机的一定数量的实例或虚拟机的类别。如图4中所示,主机计算设备104可以具有一定量的存储器402,使得其可以保留管理程序420的预定的内存空间410,以及虚拟机的预定大小的两个额外的内存空间412、414。两个虚拟机实例422、424可以被启动在主机计算设备104上,其中每个虚拟机实例422、424被分配单独的内存空间412、414。客户122可以保留可用于虚拟机实例422、424的特定量的资源,例如通过选择特定类别的虚拟机(例如:如上所述,小型、中型或大型)来配置。内存空间412、414可以对应于由客户122保留的可用于虚拟机实例422、424的最大容许量的资源。然而,在实践中,虚拟机实例422、424可能不利用为其保留的整个量的计算资源。例如,如图4中可见,虚拟机实例422、424只利用为其保留的一小部分的内存空间412、414。这可能是有利的,利用这样多余的内存空间和其他多余的计算资源,以减少服务于所有当前执行虚拟机实例所需的主机计算设备104a-104n的数量,或更有效地利用正在操作的那些主机计算设备104a-104n的资源。
图6图示具有超额订购的计算资源的主机计算设备104。即使主机计算设备104只含有可用于虚拟机实例的两个内存空间412、414,第三虚拟机实例426也被启动在主机计算设备104上。基于与每个虚拟机实例422、424、426相关联的操作配置文件,VM放置模块204可以确定VM2422只利用一小部分的可用内存空间414,并且VM3 426也在被启动时只使用一小部分的可用内存空间。因此,VM放置模块204可以在与VM2424相同的计算设备上启动VM3426并且将其分配给相同的内存空间414。
如图6中可见,VM1422利用大体上所有的内存空间412,并且由于VM1422的操作配置文件,因此VM放置模块204可能不将另一虚拟机实例分配给相同的内存空间412。然而,VM1422只利用少量的CPU容量442,因此在虚拟机实例的操作配置文件互补时,VM1422在上面执行的主机计算设备104可以是超额订购的候选。在图6中所示的实例中,VM2424利用大量的CPU容量444。然而,如果VM3426的操作配置文件指示其是CPU容量的轻度用户,那么这三个虚拟机实例VM1422、VM2424和VM3426可以是超额订购的候选,这是由于虚拟机实例被实例化的虚拟机实例配置的互补,而不是重叠的操作配置文件。额外的资源可以被考虑到超额订购确定,以确保执行在主机计算设备104上的每个虚拟机实例容易取得通常需要的每个计算资源的量。例如,如图6中所示,网络带宽利用率406也支持上述超额订购确定实例,因为即使VM3426的操作配置文件可能指示其是重型网络带宽应用,VM1422和VM2424也只利用少量的网络带宽。
在方框510,管理组件102的VM放置模块204或一些其他模块可以将虚拟机实例放置在方框508中识别的主机计算设备104上。如上所述,可以将虚拟机实例放置在主机计算设备104上,而具有预留量的计算资源的其他虚拟机实例总计达到或超过由主机计算设备104提供的量。在一些情况下,超额订购可能很大。
图7图示大幅超额订购的主机计算设备104。如上所述,客户122可以保留指定量的计算资源供客户的虚拟机实例使用。然而,在一些情况下,客户122可能大大高估虚拟机实例可能实际使用的计算资源的量。在极端的情况下,客户122可以保留大量的计算资源,启动与那些资源相关联的虚拟机实例,然后让虚拟机实例闲置或以其他方式 实质上未充分利用预留资源。随着时间的推移,操作配置文件可能被开发用于虚拟机实例或客户122,其反映实质上未充分利用预留资源。然后管理组件102可以在单个主机计算设备104上启动大量这样的低利用率的虚拟机实例。图7的主机计算设备104包括七个不同的虚拟机实例422、424、426、722、724、726、728,其共享可能通常可保留用于只有两个虚拟机实例的计算资源,如上文参照图4和图6所述。然而,仍有这三个计算资源402、404、406中的每个的超额能力。在一些情况下,可以将数百或更多的虚拟机实例放置在主机计算设备104上,例如当主机计算设备104具有大量的可用计算资源并且虚拟机实例大体上闲置时。
在方框512,可以监视每个虚拟机实例的资源利用率。在特定虚拟机实例的寿命期间,工作量分析组件421可以监视操作并且通知管理组件102是否一个虚拟机实例在超额订购的主机计算设备104不可用的水平下开始利用资源,或是否资源使用或操作度量以其他方式不同于预期或所需的量。在一些实施方案中,管理组件102可以执行监视。
在方框514,管理组件102可以确定资源使用或操作度量是否不同于预期或所需的量。例如,管理组件可以确定资源使用的变化是否超过阈值或可能以其他方式导致不良的性能下降。基于管理组件102确定的操作配置文件和放置开始利用比预期更多的计算资源的虚拟机实例可以被转移到在较小程度上超额订购的主机计算设备104,或没有超额认购的主机计算设备104。在这些情况下,过程500的执行可以返回到方框508,其中VM迁移模块206或一些其他管理组件102确定将虚拟机842转移到哪个计算设备。
图8图示具有超额订购的CPU容量404a的主机计算设备104a。虚拟机实例VM4842可能开始消耗大量的可用CPU容量404a,这与其操作配置文件相反。然而,与虚拟机实例VM4842相关联的客户122可能为VM4842被实例化的虚拟机实例配置保留大量的CPU容 量,因此可能需要为虚拟机实例VM4842提供比超额订购的主机计算设备104a可以提供的更多的CPU容量。如图8中所示,主机计算设备104b可能是这个转移的候选。虚拟机实例VM8844当前只消耗可用在主机计算设备104b上的一小部分的CPU容量404b,并且管理组件102可以确定与VM8844相关联的操作配置文件指示不太可能消耗更多。VM迁移模块206可以启动VM4842从主机计算设备104a到主机计算设备104b的转移。
虚拟机实例的转移可以包括在源主机计算设备104a上的虚拟机实例继续执行时,首先在目标主机计算设备104b上启动相同的虚拟机实例配置或图像的实例。虚拟机实例在源主机计算设备104b上的执行状态,包括与虚拟机实例相关联的内存空间或硬盘中的数据、由虚拟机实例建立的网络连接等,然后可以在目标主机计算设备104b被复制。可以终止源主机计算设备104a上的虚拟机实例,并且目标主机计算设备104b上的虚拟机实例可以继续从这一点执行。
在一些实施方案中,即使软件工作量可能不一定是虚拟机实例本身,软件工作量(例如,应用程序或存储节点)的初始放置或转移也可能与软件工作量的虚拟机实例使用相关联或与软件工作量交互。例如,软件工作量可以由根据可以使用数据的虚拟机实例的期望实施为代理存储数据的存储节点组成。在这些情况下,工作量(在这种情况下,存储节点)的初始放置或转移可以基于将其放置在附近或以其他方式通过将使用工作量的一个或多个虚拟机实例更易于访问。
鉴于下列条款,可以描述本公开的各种实施方案:
1.一种用于分析计算资源使用的系统,所述系统包含:
一个或多个处理器;
计算机可读存储器;以及
管理模块,其包含存储在所述计算机可读存储器中的可执行指 令,所述管理模块在由所述一个或多个处理器执行时被配置成:
接收用于初始化虚拟机实例配置的新实例的请求,所述虚拟机实例配置与第一计算资源的预期的资源使用量相关联,其中所述预期的使用量至少部分地基于与一个或多个类似的虚拟机实例配置的实例对所述第一计算资源的使用相关联的多个先前测量;以及
响应于所述请求:
至少基于所述计算设备上的所述第一计算资源的可用量是否大于所述预期量,识别多个计算设备中的计算设备;以及
至少部分地使所述新实例初始化在所述计算设备上。
2.根据条款1所述的系统,其中所述第一计算资源的使用包含中央处理单元(CPU)利用率、内存利用率、网络利用率、硬盘利用率或电力利用率中的一个。
3.根据条款1所述的系统,其中所述管理模块在被执行时进一步被配置成:
获得关于所述第一计算资源的使用的所述多个先前测量;以及
至少部分地基于所述多个先前测量,确定所述虚拟机实例配置的操作配置文件,其中所述操作配置文件包含所述预期的资源使用量。
4.根据条款3所述的系统,其中所述操作配置文件进一步包含所述计算设备的所需的操作特性。
5.根据条款4所述的系统,其中所述所需的操作特性涉及内存容量、中央处理单元(CPU)容量、网络带宽、网络延时、网络拓扑结构内的位置、指令集或性能度量的方差。
6.根据条款4所述的系统,其中识别所述计算设备包含确定与所 述计算设备相关联的特性对应于所述所需的特性。
7.一种用于分析计算资源使用的系统,所述系统包含:
一个或多个处理器;
计算机可读存储器,其包括可执行指令,所述可执行指令在由所述一个或多个处理器执行时将所述系统配置成:
至少部分地基于根据运行类似的虚拟机的至少一个实例确定的操作度量,确定虚拟机实例的操作约束;
接收用于实例化所述虚拟机的请求;以及
响应于所述请求:
部分地基于一个或多个特性是否满足所述操作约束,识别多个主机计算设备中的主机计算设备,所述主机计算设备与虚拟机实例的操作相关的所述一个或多个操作特性相关联;以及
至少部分地使所述虚拟机的新实例实例化在所述主机计算设备上。
8.根据条款7所述的系统,其中所述操作度量中的至少一个涉及中央处理单元(CPU)利用率、内存利用率、网络利用率、硬盘利用率或电力利用率。
9.根据条款7所述的系统,其中所述一个或多个特性中的至少一个包含内存容量、中央处理单元(CPU)容量、网络带宽、网络延时、网络拓扑结构内的位置、指令集或性能度量的方差。
10.根据条款7所述的系统,其中所述操作约束涉及由所述主机计算设备提供的计算资源的预期的使用量。
11.根据条款10所述的系统,其中所述预期的使用量进一步至少 部分地基于从与所述虚拟机相关联的客户接收的数据。
12.根据条款7所述的系统,其中模块在被执行时进一步被配置成:
接收关于所述新实例在所述主机计算设备上的操作的额外的操作度量,所述额外的操作度量与所述一个或多个操作特性相关;以及
响应于基于所述额外的操作度量确定所述一个或多个操作特性不再满足所述操作约束,将所述新实例转移到与满足所述操作约束的一个或多个额外的操作特性相关联的第二计算设备。
13.一种用于分析计算资源使用的计算机实施方法,所述计算机实施方法包含:
通过包含一个或多个计算设备的数据中心管理组件接收用于初始化与操作配置文件相关联的软件工作量的请求,其中所述操作配置文件至少部分地基于与所述软件工作量相关联的多个历史操作度量;以及
响应于所述请求:
至少部分地基于所述操作配置文件和与所述计算设备相关联的一个或多个操作特性,识别多个计算设备中的计算设备;以及
使所述软件工作量初始化在所述计算设备上。
14.根据条款13所述的计算机实施方法,其中所述软件工作量包含虚拟机实例、操作系统、存储区域网络(SAN)节点或应用程序。
15.根据条款13所述的计算机实施方法,其中所述多个历史操作度量中的至少一个涉及中央处理单元(CPU)利用率、内存利用率、网络利用率、硬盘利用率或电力利用率。
16.根据条款13所述的计算机实施方法,其中所述一个或多个操作特性中的至少一个包含内存容量、中央处理单元(CPU)容量、网络带宽、网络延时、网络拓扑结构内的位置、指令集或性能度量的方差。
17.根据条款13所述的计算机实施方法,其中所述操作配置文件包含与第一计算资源相关联的第一预期的资源使用量,其中所述第一预期的资源使用量至少部分地基于关于所述第一资源的使用的多个历史操作度量,并且其中所述一个或多个特性中的一个特性包含所述第一计算资源的可用性。
18.根据条款17所述的计算机实施方法,其中关于所述第一资源的使用的所述多个历史操作度量中的每个与使用测量被记录的时间相关联,并且其中所述操作配置文件进一步至少部分地基于所述多个历史操作度量中的每个被记录的时间。
19.根据条款13所述的计算机实施方法,其进一步包含从与所述软件工作量或执行所述软件工作量的所述多个计算设备中的计算设备相关联的操作分析组件获得所述多个历史操作度量的至少部分。
20.根据条款13所述的计算机实施方法,其进一步包含至少部分地基于所述多个历史操作度量确定所述操作配置文件。
21.根据条款13所述的计算机实施方法,其进一步包含至少部分地基于与所述软件工作量相关联的客户的服务水平协议确定所述操作配置文件。
22.根据条款13所述的计算机实施方法,其中所述操作配置文件包含所述计算设备的所需的操作特性。
23.根据条款22所述的计算机实施方法,其中识别所述计算设备进一步至少部分地基于确定与所述计算设备相关联的所述一个或多个操作特性中的一个操作特性对应于所述所需的操作特性。
24.根据条款22所述的计算机实施方法,其进一步包含:
接收关于所述软件工作量在所述计算设备上的操作的大体上当前的操作度量,所述大体上当前的操作度量与所述一个或多个操作特性相关;以及
响应于基于所述大体上当前的操作度量确定没有与所述计算设备相关联的所述一个或多个操作特性对应于所述所需的操作特性,将所述软件工作量转移到与对应于所述所需的操作特性的操作特性相关联的第二计算设备。
25.根据条款13所述的计算机实施方法,其中所述操作配置文件包含多个预定义的操作配置文件中的第一预定义的操作配置文件。
26.根据条款25所述的计算机实施方法,其中所述预定义的操作配置文件与操作层次中的层相关联,并且其中所述第一预定义的操作配置文件与相对于所述软件工作量的所述操作层次的较高层相关联。
27.根据条款13所述的计算机实施方法,其中所述操作配置文件包含客户特定的操作配置文件,并且其中所述多个历史操作度量与所述客户对所述软件工作量的初始化或使用相关联。
28.根据条款13所述的计算机实施方法,其中所述操作配置文件包含历史操作度量的中位数、标准偏差或使用直方图。
29.根据条款13所述的计算机实施方法,其中所述操作配置文件至少部分地基于来自特定时间段的历史操作度量。
30.一种用于管理共享的计算资源的系统,所述系统包含:
一个或多个处理器;以及
计算机可读存储器,其存储可执行指令,所述可执行指令在由所述一个或多个处理器执行时将所述系统配置成:
接收用于初始化第一虚拟机的第一实例的请求,所述第一虚拟机与第一计算资源的第一预期的使用量相关联,其中所述第一预期的使用量至少部分地基于根据先前运行类似的虚拟机的至少一个实例确定的操作度量;
选择被配置成提供所述第一计算资源的多个计算设备中的计算设备,其中第二虚拟机的第二实例正在所述计算设备上执行,其中预定量的所述第一计算资源被保留供所述第二实例使用,并且其中至少部分地基于所述预定量大于所述第一预期的使用量和第二预期的使用量的总和,选择所述计算设备,所述第二预期的使用量与所述第一计算资源的所述第二实例相关联;以及
至少部分地使所述第一实例初始化在所述计算设备上,其中所述第一实例和所述第二实例共享所述预定量的所述第一计算资源。
31.根据条款30所述的系统,其中所述第一计算资源包含中央处理单元(CPU)容量、内存空间、网络带宽、硬盘空间或电力中的一个。
32.根据条款30所述的系统,其中所述第一实例和所述第二实例与不同的客户相关联。
33.根据条款30所述的系统,其中所述可执行指令进一步将所述系统配置成:
至少部分地使第三虚拟机的第三实例初始化在所述计算设备上,
其中所述第三实例与所述第一计算资源的第三预期的使用量相关联,
其中所述预定量进一步大于所述第一预期的使用量、所述第二预期的使用量和所述第三预期的使用量的总和,
并且其中所述第一实例、所述第二实例和所述第三实例共享所述 预定量的所述第一计算资源。
34.根据条款30所述的系统,其中所述可执行指令进一步将所述系统配置成:
获得所述第一实例对所述第一计算资源使用的第一测量,以及所述第二实例对所述第一计算资源使用的第二测量;以及
响应于确定所述第一测量或所述第二测量超过阈值,将所述第一实例或所述第二实例转移到第二计算设备。
35.一种用于管理共享的计算资源的计算机实施方法,所述计算机实施方法包含:
通过包含一个或多个计算设备的数据中心管理系统接收用于初始化与第一操作约束相关联的第一软件工作量的请求,所述第一操作约束至少部分地基于关于所述第一软件工作量在主机计算设备上的操作的第一多个历史操作度量;
响应于所述请求,至少基于所述第一操作约束和与所述第一主机计算设备相关联的一个或多个操作特性,识别多个主机计算设备中的第一主机计算设备,
其中所述第一主机计算设备包含与第二操作约束相关联的第二软件工作量,以及
其中所述识别包含确定所述第一主机计算设备的所述一个或多个操作特性是否有可能满足所述第一操作约束和所述第二操作约束两者;以及
至少部分地使所述第一软件工作量放置在所述第一主机计算设备上。
36.根据条款35所述的计算机实施方法,其中所述第一软件工作 量或所述第二软件工作量包含虚拟机实例、应用程序实例或操作系统。
37.根据条款35所述的计算机实施方法,其中所述第一软件工作量包含存储节点,并且其中所述识别进一步包含确定将所述存储节点放置在所述第一主机计算设备上是否满足与将使用所述存储节点的虚拟机相关联的操作约束。
38.根据条款35所述的计算机实施方法,其中所述一个或多个操作特性中的至少一个包含内存容量、中央处理单元(CPU)容量、网络带宽、网络延时、网络拓扑结构内的位置、指令集、性能度量的方差或电力容量。
39.根据条款35所述的计算机实施方法,其中所述第一操作约束或所述第二操作约束涉及内存利用率、中央处理单元(CPU)利用率、网络带宽利用率、网络延时、网络拓扑结构内的位置、指令集可用性、性能度量的方差或电力利用率。
40.根据条款35所述的计算机实施方法,其中所述第一操作约束涉及第一计算资源的第一预期的使用量,并且所述第二操作约束涉及所述第一计算资源的第二预期的使用量,并且其中所述第一计算机可执行程序和所述第二计算机可执行程序被启用以同时消耗所述第一计算资源的分别地所述第一预期的使用量和所述第二预期的使用量。
41.根据条款40所述的计算机实施方法,其中所述一个或多个操作特性中的一个操作特性包含所述第一计算资源的可用量,所述计算机实施方法进一步包含:
至少部分地防止所述第一计算机可执行程序和所述第二计算机可执行程序合计消耗超过所述第一计算资源的所述可用量。
42.根据条款35所述的计算机实施方法,其进一步包含至少部分地使第三计算机可执行程序初始化在所述第一主机计算设备上,
其中所述第三计算机可执行程序与第三操作约束相关联,以及
其中所述第一主机计算设备的所述一个或多个操作特性可能满足所述第一操作约束、所述第二操作约束和所述第三操作约束中的每个。
43.根据条款35所述的计算机实施方法,其进一步包含:
获得关于所述第一计算机可执行程序在所述第一主机计算设备上的操作的一个或多个操作度量;以及
响应于至少部分地基于所述一个或多个操作度量确定所述第一约束不再可能被满足,将所述第一计算机可执行程序或所述第二计算机可执行程序转移到第二主机计算设备。
44.根据条款35所述的计算机实施方法,其进一步包含:
获得关于所述第二计算机可执行程序在所述第一主机计算设备上的操作的一个或多个操作度量;以及
响应于至少部分地基于所述一个或多个操作度量确定所述第二约束不再可能被满足,将所述第一计算机可执行程序或所述第二计算机可执行程序转移到第二主机计算设备。
45.根据条款35所述的计算机实施方法,其进一步包含:
获得关于所述第一主机计算设备的所述一个或多个操作特性的一个或多个操作度量;以及
响应于至少部分地基于所述一个或多个操作度量确定所述第一约束或所述第二约束不再可能被满足,将所述第一计算机可执行程序或所述第二计算机可执行程序转移到第二主机计算设备。
46.一种用于管理共享的计算资源的系统,所述系统包含:
一个或多个处理器;
计算机可读存储器,其存储可执行指令,所述可执行指令在由所述一个或多个处理器执行时将所述系统配置成:
接收用于初始化与第一操作约束相关联的第一计算机可执行程序的请求,所述第一操作约束至少部分地基于关于所述第一计算机可执行程序在主机计算设备上的操作的第一多个历史操作度量;以及
识别多个主机计算设备中的第一主机计算设备,所述第一主机计算设备与一个或多个操作特性相关联,
其中所述第一主机计算设备包含与第二操作约束相关联的第二计算机可执行程序,以及
其中至少部分地基于所述一个或多个操作特性满足所述第一操作约束和所述第二操作约束两者,识别所述第一主机计算设备。
47.根据条款46所述的系统,其中所述可执行指令进一步将所述系统配置成至少部分地使所述第一计算机可执行程序在所述第一主机计算设备上执行。
48.根据条款46所述的系统,其中所述第一计算机可执行程序或所述第二计算机可执行程序包含虚拟机实例、应用程序实例或操作系统中的一个。
49.根据条款46所述的系统,其中所述一个或多个操作特性中的至少一个包含内存容量、中央处理单元(CPU)容量、网络带宽、网络延时、网络拓扑结构内的位置、指令集、性能度量的方差或电力容量。
50.根据条款46所述的系统,其中所述第一操作约束或所述第二操作约束涉及内存利用率、中央处理单元(CPU)利用率、网络带宽利用率、网络延时、网络拓扑结构内的位置、指令集可用性、性能度量 的方差或电力利用率。
51.根据条款46所述的系统,其中所述第一操作约束涉及第一计算资源的第一预期的使用量,并且所述第二操作约束涉及所述第一计算资源的第二预期的使用量,并且其中所述第一计算机可执行程序和所述第二计算机可执行程序被启用以同时消耗所述第一计算资源的分别地所述第一预期的使用量和所述第二预期的使用量。
52.根据条款51所述的系统,其中所述可执行指令进一步将所述系统配置成至少部分地防止所述第一计算机可执行程序和所述第二计算机可执行程序合计消耗超过所述第一计算资源的可用量。
53.根据条款46所述的系统,其中所述可执行指令进一步将所述系统配置成:
确定所述第一主机计算设备的所述一个或多个操作特性是否有可能满足所述第一操作约束、所述第二操作约束和第三操作约束中的每个,所述第三操作约束与第三计算机可执行程序相关联;以及
至少部分地使所述第三计算机可执行程序初始化在所述第一主机计算设备上。
54.根据条款46所述的系统,其中所述可执行指令进一步将所述系统配置成:
获得关于所述第一计算机可执行程序在所述第一主机计算设备上的操作的一个或多个操作度量;以及
响应于至少部分地基于所述一个或多个操作度量确定所述第一约束不再可能被满足,将所述第一计算机可执行程序或所述第二计算机可执行程序转移到第二主机计算设备。
55.根据条款46所述的系统,其中所述可执行指令进一步将所述 系统配置成:
获得关于所述第二计算机可执行程序在所述第一主机计算设备上的操作的一个或多个操作度量;以及
响应于至少部分地基于所述一个或多个操作度量确定所述第二约束不再可能被满足,将所述第一计算机可执行程序或所述第二计算机可执行程序转移到第二主机计算设备。
56.根据条款46所述的系统,其中所述可执行指令进一步将所述系统配置成:
获得关于所述第一主机计算设备的所述一个或多个操作特性的一个或多个操作度量;以及
响应于至少部分地基于所述一个或多个操作度量确定所述第一约束或所述第二约束不再可能被满足,将所述第一计算机可执行程序或所述第二计算机可执行程序转移到第二主机计算设备。
根据实施方案,本文所述的任何过程或算法的某些动作、事件或功能可以用不同的顺序来执行,可以被添加、合并或完全省略(例如,并不是所有描述的操作或事件为算法的实践所必需)。此外,在某些实施方案中,操作或事件可以被同时执行,例如,通过多线程处理、中断处理,或多个处理器或处理器核心或在其他并行体系结构上,而不是按顺序执行。
结合本文所公开的实施方案而描述的各种说明性逻辑块、模块、例行程序和算法步骤可以实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件与软件的这种可互换性,上文已大体上根据其功能性描述了各种说明性组件、区块、模块和步骤。此类功能是实施为硬件还是软件取决于强加到整个系统上的特定应用和设计约束。可以针对每个特定应用以变化方式实施所描述的功能,但此类实施决策不应解释为造成与本公开范围的脱离。
结合本文所公开的实施方案而描述的方法、过程、例行程序或算法的步骤可以直接以硬件、由处理器执行的软件模块或两者的组合来实施。软件模块可以驻留在RAM存储器、闪速存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或任何其他形式的非暂态计算机可读存储介质中。示例性存储介质可以耦合到处理器,使得处理器可以从存储介质读取信息和向存储介质写入信息。或者,存储介质可以与处理器成一体式。处理器和存储介质可以驻留在ASIC中。ASIC可以驻留在用户终端中。或者,处理器和存储介质可以作为离散组件驻留在用户终端中。
除非另有特别说明,或在如使用的上下文中另外所理解,否则本文所使用的条件语言(例如其中包括“可以”、“可能”(can,could,might,may)、“例如”等)通常旨在表达某些实施方案包括而其他实施方案不包括某些特征、元件和/或步骤。因此,这样的条件语言通常不旨在暗示特征、元件和/或步骤在任何方面对于一个或多个实施方案是必需的,或者一个或多个实施方案必定包括用于在有或没有作者输入或提示的情况下决定是否在任何特定实施方案中包括或将执行这些特征、元件和/或步骤的逻辑。术语“包含”、“包括”、“具有”等为同义词,并且以包括、开放式的方式来使用,并且不排除额外的元件、特征、动作、操作等。此外,以其包括的含义(而不是以其排他的含义)来使用术语“或”,使得当被用来例如连接元件列表时,术语“或”指列表中的一个、一些或所有元件。
除非另有特别说明,否则连接语言(例如短语“X、Y和Z中的至少一个”)在如使用的上下文中通常被理解为表达项目、项等可以是X、Y或Z或其组合。因此,这样的连接语言通常不旨在暗示某些实施方案需要至少一个X、至少一个Y和至少一个Z每个都存在。
尽管上面的详细描述已被展示、描述并指出适用于各种实施方案的新颖特征,但是可以理解的是,在不脱离本公开的精神的情况下,可以在所示设备或算法的形式和细节上作出各种省略、替代和变化。 可以认识到,由于一些特征可以与其他特征分开来使用或实施,因而本文中所描述的本发明的某些实施方案可以在不提供本文所阐述的所有特征和益处的形式内得以实施。本文所公开的某些发明的范围由所附权利要求书而不是由上述描述来指示。在权利要求书的含义和等价范围内的所有改变都包含在权利要求书的范围内。

资源使用的自动分析.pdf_第1页
第1页 / 共30页
资源使用的自动分析.pdf_第2页
第2页 / 共30页
资源使用的自动分析.pdf_第3页
第3页 / 共30页
点击查看更多>>
资源描述

《资源使用的自动分析.pdf》由会员分享,可在线阅读,更多相关《资源使用的自动分析.pdf(30页珍藏版)》请在专利查询网上搜索。

基于实际的资源使用测量和其他操作度量的分析,可以自动确定计算资源的消费者的操作配置文件。在消费者(例如虚拟机实例)使用计算资源(例如由主机提供的那些计算资源)时可以进行测量。可以基于那些测量动态确定配置文件。配置文件可以被推广,使得具有类似的使用配置文件的消费者群体与单个配置文件相关联。可以基于所述配置文件做出分配决策,并且在所述配置文件指示所述消费者不太可能充分利用为其保留的资源时可以重新分配或。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1