云计算平台内的多优先级服务实例分配的制作方法

文档序号:12278813阅读:204来源:国知局
云计算平台内的多优先级服务实例分配的制作方法与工艺

本申请涉及服务实例的分配,尤其涉及云计算平台内的多优先级服务实例分配。



背景技术:

大规模联网系统是在用于为业务和操作功能运行应用和维护数据的多种设定中使用的常见平台。例如,数据中心(例如物理云计算平台)可以同时为多个顾客提供各种服务(例如web应用、电子邮件服务、搜索引擎服务等等)。这些大规模联网系统通常包括遍及该数据中心分布的大量资源,其中每个资源都类似物理机或在物理节点或主机上运行的虚拟机(VM)。在数据中心托管多个承租者(例如,顾客程序)时,这些资源最优地可被分配给不同的承租者以改善云计算平台的操作。



技术实现要素:

提供本发明内容以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。该发明内容不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在独立地用于帮助确定所要求保护的主题的范围。

本文中描述的各实施例涉及云计算环境中的高效多优先级服务实例分配平台。具体地,各服务实例是根据与相应服务实例相关联的优先级水平被分配给或部署到各节点的,并且在一些情况下,服务实例的(诸)优先级水平已经被部署在(诸)节点上。在高层级时,在分配新服务实例时可考虑各种度量或因素,包括填装质量度量、收回成本度量和/或存活度量。使用这样的度量,可实现对高优先级服务实例以及低优先级服务实例的近优利用。

附图说明

下面参考附图详细描述本发明,其中:

图1A、1B和1C是根据本发明的各实施例的平衡各个度量以分配服务实例的示例的框图;

图2是其中本文中描述的各实施例可被采用的示例性操作环境的框图;

图3是根据本文中描述的各实施例的涉及确定存活度量的说明性示例;

图4是根据本文中描述的各实施例的涉及确定存活度量的另一说明性示例;

图5是根据本文中描述的各实施例的涉及确定存活度量的另一说明性示例;

图6是示出根据本文中描述的各实施例的用于优化对多优先级服务实例的分配的示例性第一方法的流程图;

图7是示出根据本文中描述的各实施例的用于优化对多优先级服务实例的分配的示例性第二方法的流程图;

图8是示出根据本文中描述的各实施例的用于优化对多优先级服务实例的分配的示例性第三方法的流程图;

图9是示出根据本文中描述的各实施例的用于优化对多优先级服务实例的分配的示例性第四方法的流程图;

图10是示出根据本文中描述的各实施例的用于优化对多优先级服务实例的分配的示例性第五方法的流程图;以及

图11是适用于实现本文中描述的各实施例的示例性计算环境的框图。

具体实施方式

本文中用细节来描述本发明各实施例的主题以满足法定要求。然而,该描述本身并非旨在限制本专利的范围。相反,发明人已设想所要求保护的主题还可结合其它当前或未来技术以其它方式来实施,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。此外,尽管术语“步骤“和/或“框”可在此处用于指示所采用的方法的不同元素,但除非而且仅当明确描述了各个步骤的顺序时,该术语不应被解释为意味着此处公开的各个步骤之中或之间的任何特定顺序。

出于本公开的目的,单词“包括(including)”具有与单词“包含(comprising)”一样广义的含义,并且单词“访问(accessing)”包括“接收(receiving)”、“参考(referencing)”或“检索(retrieving)”。另外,诸如“一(a)”和“一(an)”包括复数以及单数,除非另外相反地指明。这样,例如,“一个特征”的限定满 足存在一个或多个特征的情况。而且,术语“或(or)”包括连接的、分离的和这两者(a或b包括要么a要么b,以及a和b)。

以下出于详细讨论的目的,参考各分布式计算设备和分配平台的各组件来描述各实施例,该分配平台支持对云计算环境中的各节点的多优先级服务实例的最优分配。各组件可被配置用于执行新颖的实施例方面,其中被配置用于包括被编程为使用代码来执行特定任务或实现特定抽象数据类型。构想了本文中描述的方法可在具有本文中描述的功能组件的替换配置的不同类型的操作环境中执行。由此,在此描述的各实施例仅仅是示例性的,并且构想了各技术可被扩展到其它实现上下文。

作为背景,云计算平台可在被一起管理的节点集合内提供不同的云计算服务供应。供应可指代承租者或用户可请求或选择为其承租者基础结构运行的资源(例如,CPU、GPU、RAM、存储等)的组合。基于供应来高效地提供云计算资源以满足承租者服务请求可有利地改善云计算平台的操作。当数据中心托管与相应的承租者程序、应用和服务相关联的多个承租者时,各个资源可被最优地分配给不同的承租者以改善云计算平台的操作。

在云计算环境中,一般将服务实例分配给、部署到或提供给云基础结构内的各节点。服务实例或实例指代虚拟机(VM)、容器、如同物理机那样的执行程序的机器(例如,计算机)的其他软件实现、或进程、线程、或任何其他软件片段。节点指代服务实例被部署到的机器,诸如服务器或计算设备。虽然节点在本文中一般被称为向其分配服务实例(例如,VM)并在其上执行该服务实例的物理机,但本发明的各实施例并不旨在限于此。例如,节点还被构想为包括其上可运行或执行另一虚拟机(服务实例)的虚拟机。

为了分配服务实例,分配平台(其也可被称为调度器或放置组件)一般被用于确定特定服务实例应在哪个(哪些)节点上运行。分配平台是云基础结构中的重要组件,因为该平台主要确定与该云相关联的利用率并由此确定与该云相关联的成本(出售的货物的成本(COGS))和可靠性以及其他度量。

在常规云基础结构中,分配平台一般用于分配各单优先级水平的服务实例。就此,服务实例的分配或部署并不取决于与服务实例或其请求相关联的优先级水平(例如,高优先级或低优先级)。一旦将单优先级水平服务实例分配 给或部署到节点后,除了在诸如主机OS更新、机器故障或由承租者终止之类的有限情形中之外,一般不将该服务实例从该节点移除。

为了优化资源利用率,可使用多优先级服务实例。多优先级指代结合各服务实例请求和/或各服务实例的分配使用各种或不同优先级水平的能力。由此,可使用多个优先级水平来指定不同的资源优先次序水平。低优先级服务实例或可驱逐服务实例指代与低优先级水平相关联的服务实例,以使得该服务实例可从其被分配给或部署到的特定节点中驱逐。服务实例可出于任何数目的原因而被指定为低优先级,例如低优先级服务水平指定可被用于降低与特定服务实例(即,低优先级服务实例)相关联的承租者的成本。低优先级服务的另一示例可包括批量作业(即,在何时运行各任务方面具有高灵活性的任务)。高优先级服务实例或不可驱逐服务实例指代与高优先级水平相关联的服务实例,以使得该服务实例不可从其被分配给或部署到的特定节点中驱逐。由此,高优先级服务实例可先占,或在必要的情况下驱逐低优先级服务实例。在一些情况下,高优先级服务实例可以是向服务实例分配的或与该服务实例相关联的默认优先级水平,以使得该服务实例不可被驱逐以便为另一服务实例分配资源。虽然本文中一般描述了低和高优先级服务水平或可驱逐和不可驱逐优先级水平,但根据本发明的各实施例可采用任何数目或程度的服务水平。例如,各优先级水平可用任何值(诸如数字值(例如1-10))来表示。

然而,利用多个优先级水平会导致向节点或物理资源高效地分配服务实例方面的复杂度。一般来说,在单优先级水平实现中,分配尝试使给定数目的节点(例如,物理计算机)上的尽可能多的服务实例(通常被称为填装效率或填装)最大化。随着多个优先级水平的出现,服务实例的分配变得更有挑战性,因为使高优先级工作负载的填装效率最大化可导致对低优先级工作负载的不必要的驱逐。在另一方面,使驱逐的数目(或成本)最小化可能也不是最优的,因为这样的实现可导致碎片的增加、填装质量的显著降级(即,更少的服务实例可在全体可用资源上运行)、更低的利用率、更高的故障复原率等等。

由此,本发明的各实施例涉及云计算环境中的高效多优先级服务实例分配平台。具体地,服务实例是根据与相应服务实例相关联的优先级水平被分配给或部署到各节点的,并且在一些情况下,服务实例的(诸)优先级水平已经被 部署在(诸)节点上了。在高层级,分配平台可采用以下算法:这些算法为每一新服务实例确定该实例应当被部署到哪一物理节点以及在必要的情况下确定应当驱逐哪一低优先级实例以便为较高的优先级服务实例释放资源。

在本文中描述的各实现中,在分配新服务实例时可考虑各种度量或因素,包括填装质量度量、驱逐成本度量和/或存活度量。使用这样的度量,可为高优先级服务实例以及低优先级服务实例实现近优利用率。填装质量或填装质量度量一般指代服务实例与节点“适应”(即在资源方面合适)的程度的度量、测量或指示。高填装质量指示更多的服务实例可在给定节点集上运行,由此降低了成本。在各实施例中,填装质量基于根据各资源需求(诸如CPU、存储器等)的多维资源试探。多维最佳适应可用于确定为新服务实例提供最佳或接近最佳填装质量的节点。

驱逐成本指代将服务实例从节点中驱逐以使得可将另一服务实例分配给那个节点的成本的指示。例如,假设将部署高优先级服务实例。将服务实例分配给空的可用资源以使得不需要挂起或驱逐当前已部署的低优先级服务实例可能是有利的并且具有最小的成本。一般来说,按使驱逐成本最小化(即,使被驱逐以适应新服务实例的总实例的成本最小化)的这种方式来分配服务实例是优选的。

存活指代服务实例在一些情况下在时间帧内不将被驱逐或者服务实例在一些情况下将在节点上存活达一持续时间的可能性或程度。例如,在部署低优先级实例时,将该服务实例部署在其中该服务实例具有高可能性不会在此后不久就被驱逐的节点上是合乎需要的。换言之,期望将服务实例部署在其中其预期存活时间(即,直到其驱逐/挂起的预期时间)被最大化的节点上。由此,期望将服务实例部署在其中它们对较高优先级实例的后续部署具有最少负面影响的节点处。预期的未来寿命(直到实例被挂起的时间)在各节点之间可显著不同。例如,以下考虑表1中的三个节点。如果低优先级实例被部署在第三节点上,则它将能够保持存活达比它被部署在第一节点上长三十倍的时间。第二节点提供比第一节点长十倍的存活时间。

表1

如可领会的,在一些情况下,平衡这些度量的组合以获得最优性能可能是个挑战。例如并参考图1A,假设高优先级服务实例102A将被分配给第一节点104A或第二节点106A。如果高优先级服务实例102A被分配给第一节点104A,则没有较低优先级工作负载必需被挂起(即,驱逐成本为零)。另一方面,如果高优先级服务实例102A被分配给第二节点106A,则填装质量是最优的(即,该新实例完美地适应当前碎片间隙),但低优先级服务实例108A当前处在必须被挂起的节点上,从而导致非零驱逐成本。

作为另一示例并参考图1B,再次假设高优先级服务实例102B将被分配给第一节点104B或第二节点106B。在这样的情况下,在两个节点上驱逐都将是必须的。驱逐成本表现为在第一节点104B上更少,但如果被分配给第二节点106B则将导致更强的填装质量。一方面,如果使驱逐成本最小化是用于分配高优先级服务示例102的主要考虑而填装质量是次要考虑,则如果节点104B被选择供分配则高优先级工作负载的总填装质量可降级,从而导致对最高优先级工作负载的较低利用率。另一方面,如果填装质量是主要考虑,使得高优先级服务示例1028B被部署在节点106B上,则驱逐成本可显著地增加。

作为又一示例并参考图1C,假设低优先级实例102C将被分配给第一节点104C、第二节点106C或第三节点108C。在这个情况下,将实例102C部署到这些节点中的任一者一般都将导致良好的填装。然而,对向哪一者分配低优先级服务实例102C的选择可影响以良好的填装质量来部署新的高优先级服务实例的后续能力。

由此,本发明的各实施例涉及利用分配度量(诸如,填装质量、驱逐成本 和/或存活)来高效分配多优先级服务实例。利用这样的度量可促成实现例如对高优先级工作负载的高填装质量的期望、避免导致不必要的驱逐的期望和按不导致填装质量的降级的方式部署低优先级工作负载的期望的最优平衡。就此,各实施例用于组合填装质量的优化、驱逐成本的最小化和/或存活的最大化。

转向图2,图2示出了在其中本公开的实现可被采用的示例性分布式计算环境200。具体地,图2示出了云计算环境200中的分配系统。应当理解,此处所描述的这一和其他安排仅作为示例来阐明。作为所示的安排和元素的补充或替换,可使用其他安排和元素(例如机器、接口、功能、次序、以及功能聚集等),并且可完全省略某些元素。此外,本文所描述的许多元素是可以实现为分立或分布式组件或结合其他组件的、以及以任何合适的组合和在任何合适的位置的功能实体。此处被描述为由一个或多个实体执行的各种功能可由硬件、固件和/或软件来执行。例如,各种功能可由执行存储在存储器中的指令的处理器来执行。

数据中心可支持分布式计算环境200,该分布式计算环境200包括云计算平台210、机架220、节点230(例如,计算设备、处理单元或刀片)以及机架220中的分配平台240。分配系统可用云计算平台210来实现,该云计算平台210跨不同的数据中心和地理区域运行云服务。云计算平台210可实现用于提供和管理资源分配、部署、升级和/或对云服务的管理的分配平台240。一般来说,云计算平台210用于以分布式方式来存储数据或运行服务应用。数据中心中的云计算平台210可被配置成托管和支持特定服务应用的端点的操作。云计算平台210还可以是公共云、私有云、混合云或专用云。

分配平台240一般将服务实例的资源提供或分配给节点,诸如节点230。节点230可被配置成执行云计算平台210内的专用功能(例如,计算节点或存储节点)。节点230被分配以运行承租者的服务应用的一个或多个部分。承租者可指代利用云计算平台210的资源的顾客。云计算平台210的支持特定承租者的服务应用组件可被称为承租者基础结构或承租。术语服务应用、应用或服务在本文中可互换地被使用,并宽泛地指代在数据中心之上运行或访问数据中心内的存储和计算设备位置的任何软件或软件部分。

当多于一个的服务应用被节点230支持时,该节点可被划分成虚拟机(例 如,虚拟机252和虚拟机254)和/或容器。物理机还可并发地运行各分开的服务应用。虚拟机或物理机可被配置成云计算平台210中的资源260(例如,硬件资源和软件资源)所支持的个性化计算环境。构想了资源可被配置用于特定服务应用。此外,每个服务应用可被划分成功能部分,以使得每个功能部分能够在分开的虚拟机上运行。在云计算平台210中,多个服务器可被用于运行服务应用并执行群集中的数据存储操作。具体而言,服务器可个别地执行数据操作,但被展示为被称为群集的单个设备。群集中的每个服务器可被实现成节点。

在操作中并在高层级处,客户端设备280可被配置成生成并传递服务请求。客户端设备280可被链接到云计算平台210中的服务应用。客户端设备280可以是任何类型的计算设备,其可对应于例如参考图11描述的计算设备1100。客户端设备280可被配置成向云计算平台210发出命令。在各实施例中,客户端设备280可通过虚拟因特网协议(IP)与各服务应用通信以及与将通信请求定向到云计算平台210中的指定端点的负载平衡器或其他装置通信。云计算平台210的组件可以经由网络(未示出)彼此通信,网络可包括但不限于一个或多个局域网(LAN)和/或广域网(WAN)。

服务请求可作为服务请求282来传递。如可领会的,服务请求282可包括任何类型的信息或与其相关联。例如,服务请求282可包括服务实例偏好、约束、或资源要求(诸如CPU核、主存储器、网络带宽、硬盘等)或与其相关联。在一些实施例中,服务请求282还可指示相应服务实例的优先级水平。

分配平台240一般接收将与服务请求相关联的服务实例分配给节点的指示。例如,分配平台240可接收指示部署与其相关联的服务实例的服务请求282。在一些情况下,分配平台240可接收服务请求本身。在其他情况下,分配平台240可接收基于服务请求(诸如服务请求282)来分配服务实例的指令。例如,虽然没有示出,但在一些情况下,一个或多个级别的处理可在分配平台240分配与服务请求相关联的服务实例之前发生。仅作为示例,在一些情况下,作为各请求传递通过的前端(诸如,RDFE(红狗前端))的API可接收服务请求,该服务请求随后查询与不同群集相关联的各分配器平台。在选择特定分配平台或群集之际,可随后向其提供指令以部署服务实例。

在接收分配服务实例的指示之际,分配平台240可利用与服务请求相对应 的参数(例如,资源要求)来分配服务实例或将服务实例部署到节点上。就此,分配平台240分配节点的资源作为服务实例(例如,虚拟机或容器)。如以下更详细描述的,分配平台240可使用各种度量来产生针对所请求的资源的近优放置决策。这样的度量可包括例如填装质量、驱逐成本和/或存活。

分配平台240可识别与要部署的服务实例相关联的服务水平。在一些情况下,服务请求(诸如服务请求282)可指示服务水平(例如,高或低优先级水平)。在其他情况下,服务水平可例如基于服务请求中提供的数据来被访问、引用或查找。例如,在接收对部署服务实例的服务请求之际,可(例如基于承租者的先前指定)查找以与该服务水平相关联地应用的优先级水平。在一些情况下,与服务实例相关联的服务水平可被用来选择要将该服务实例部署到的节点。

如图所示,分配平台240包括用于将服务实例分配给各节点的各个组件,如由填装质量组件242、驱逐成本组件244、存活组件246和分配器248所示出的。在高层级处,填装质量组件242被配置成确定(诸)填装质量度量,驱逐成本组件244被配置成确定(诸)驱逐成本度量,且存活组件246被配置成确定(诸)存活度量。各度量可随后被分配器248用来确定服务实例到节点的分配或部署。以下更详细描述这些组件中的每一者。

虽然图2示出了用于分配服务实例的四个分开的组件,但可领会,本文中参考这些组件描述的功能可被提供在任何数目的组件(诸如单个组件)中。在一些实现中,可省略所描绘的与这些组件中的一者或多者相关联的功能。例如,虽然本文中描述的一些实施例指代利用填装质量、驱逐成本和存活度量,但在一些实现中,可使用这些度量的子集(例如,填装质量和驱逐成本)来分配服务实例。在这样的情况下,仅需要实现期望组件的功能。此外,一组件(未示出)可用作供分配器考虑(例如,分配器248可考虑)的代理。例如,分配器可跨多个机架扩散实例以优化可用性(可用性最大化组件)、执行负载平衡(负载平衡组件)、或优化协同定位要求(协同定位组件)。

填装质量组件242被配置成确定指示与要分配的服务实例相关联的填装质量的(诸)度量。填装质量或填装质量度量一般指代服务实例与节点适应的程度的度量、测量或指示。在各实施例中,填装质量基于根据各资源需求(诸如 CPU、存储器等)的多维资源试探。多维最佳适应可用于确定为新服务实例提供最佳填装质量的节点。填装质量度量可用任何数目的方式来表示。例如,填装质量度量可以是指示服务实例适应节点的程度或等级的值(例如,数字值)、对要使用的优选节点或节点集的指示、对不期望向其分配的节点或节点集的指示或提供各节点之间的度量或比较的另一指示(例如,节点A更好)。

填装质量度量可按任何数目的方式来生成,并且用于确定填装质量度量的方法并不旨在以任何方式构成限制。作为用于确定填装质量度量的一个示例,不同的资源可根据其稀缺性来被加权。例如,在服务实例主要是高存储器实例的情况下,存储器可用性可能是主要的瓶颈,并且因此在决定填装时,存储器资源维度将被赋予更高的值。对填装质量的确定可被扩展到任何数目的资源维度。在一些实施例中,在计算某实例的节点填装分数时,确定填装质量忽略较低优先级实例。例如,这意味着要被分配的服务实例的填装分数不考虑节点上的可驱逐或低优先级实例。

以下在等式1中提供了用于计算每一候选节点的分数(score)的多维最佳适应填装算法的一个示例:

分数=∑dwd*rd 等式1

其中,d表示资源(例如,CPU、存储器、SSD等),rd是在填装了当前实例之后节点上的剩余资源d(例如,为百分比),且wd是指派给资源d的权重。每一资源的权重可以是那个资源的群集范围利用率,其反映了那个资源的值。例如,CPU资源的权重是跨所有节点的总分配核的数目除以群集中的总健康核。实现这样的算法可用于:避免对空节点的使用;尝试将一些节点填装成满状态或接近满状态(其中,没有更多或更少的实例可被填装);将具有高度浪费的满状态推进成具有低度浪费的满状态等等。

填装质量组件242可以以任何格式将填装质量度量输出到分配器248。通过这种方式,如可领会的,从填装质量组件输出的(诸)度量可以是(诸)分数(例如,指示较佳填装的最小分数)或对具有最小(诸)分数的(诸)节点的指示。例如,在一些情况中,可为每一候选节点生成一填装质量分数,并可将每一个这样的分数提供给分配器248以供在分配服务实例时使用。在另一示例中,在为每一候选节点生成填装质量分数之际,具有最小分数(或在彼此的 阈值内)的(诸)节点可被选择并被提供给分配器248以供在分配服务实例时使用。如先前所描述的,填装质量度量可用任何数目的方式来表示,诸如用指示服务实例适应节点的程度或等级的值(例如,数字值)、对要使用的优选节点或节点集的指示、对不期望向其分配的节点或节点集的指示、或提供各节点之间的度量或比较的另一指示(例如,节点A更好)来表示。用于向分配器248提供填装质量度量的特定方式或格式可取决于分配器248所使用的分配算法,其中的一些在以下更详细地描述。

驱逐成本组件244被配置成确定驱逐成本度量。驱逐成本度量指代对将服务实例从节点中驱逐以使得可将另一服务实例分配给那个节点的成本的指示。驱逐成本度量可用任何数目的方式来表示,诸如例如用与成本相关联的值或量或对驱逐成本比较(例如,对具有最少驱逐成本的特定节点或节点集的偏好)的指示来表示。例如,假设高优先级服务实例要被部署在节点A或节点B上。驱逐成本组件244可确定与向节点A分配服务实例相关联的驱逐成本以及与向节点B分配服务节点相关联的驱逐成本。在一些实现中,驱逐成本度量可以是与候选节点(例如,节点A、节点B)相关联的(诸)驱逐成本。在其他实现中,驱逐成本度量可以是例如基于计算出的驱逐成本的对节点A或节点B的偏好。

确定驱逐成本度量可按任何数目的方式发生。例如,驱逐成本度量可以是基于对将被驱逐的所分配服务实例(例如VM)的数目的计数,当前服务实例应当被放置在特定节点处。仅作为示例,假设节点A已具有正在该节点上运行的三个服务实例。在这样的情况下,与节点A相关联的驱逐成本度量可以是为3的成本,因为如果新服务实例被部署在节点A上,则已经在节点A上运行的三个服务实例将被驱逐。用于确定驱逐成本度量的另一方法可基于优先级水平。在这样的情况下,可作出以下假设:较高优先级服务实例与较低优先级服务实例相比具有更多的成本(例如,无穷更多的成本)。由此,如果在驱逐节点A上的较低优先级水平的十个虚拟机或驱逐节点B上的较高优先级水平的一个虚拟机之间选择,则驱逐成本度量可按某种方式指示对分配给节点B和/或驱逐节点A上的较低优先级的十个虚拟机的偏好。如可领会的,在没有服务实例被驱逐的情况下,驱逐成本可以是零。

用于确定驱逐成本度量的另一方法可基于与正被驱逐的(诸)实例相关联的服务的影响,诸如整个服务需要被驱逐的情况。例如,假设存在两个服务A和B,但有10个服务实例要被部署。进一步假设服务A可灵活地放大/缩小(例如,如果其实例之一被驱逐,则该服务将继续以9个实例运行),而服务B具有10个服务的下限限制(例如,如果其服务实例之一被驱逐,则整个服务都需要被驱逐)。在这样的情况下,在给定选择从服务A或服务B中驱逐实例的情况下,可能会选择从服务A中驱逐实例。然而,用于确定驱逐成本的另一方法可以是使用服务的运行时来确定其驱逐成本或任何其他外部因素。

驱逐成本组件244可以以任何格式将驱逐成本度量输出到分配器248。通过这种方式,如可领会的,从驱逐成本组件输出的(诸)度量可以是(诸)成本或(诸)分数(例如,最小分数)或者对具有特定(诸)成本或(诸)分数(例如,(诸)最小分数)的(诸)节点的指示。例如,在一些情况下,可为每一候选节点生成驱逐成本,并且可将每一个这样的成本提供给分配器248。在另一示例中,在为每一候选节点生成驱逐成本之际,具有最小分数(或在彼此的阈值内)的(诸)节点可被选择并被提供给分配器248以供在分配服务实例时使用。如先前所描述的,驱逐成本度量可用任何数目的方式来表示,诸如用指示将服务实例从节点处驱逐以使得可将另一服务实例分配给该节点的成本的值(例如,数字值)、对要使用的优选节点或节点集的指示、对不期望向其分配的节点或节点集的指示、或提供各节点之间的度量或比较的另一指示(例如,节点A更好)来表示。用于向分配器248提供填装质量度量的特定方式或格式可取决于分配器248所使用的特定分配算法,其中的一些在以下更详细地描述。

存活组件246可被配置成确定存活度量。存活指代服务实例在一些情况下在时间帧内将不被驱逐或服务实例在一些情况下将在节点上存活达持续时间的可能性或程度。通过这种方式,存活度量提供对服务实例(例如,VM)如果被部署到某节点(例如服务器)的情况下将存活多久的预测的指示。一般来说,在部署低优先级服务实例时,将该服务实例部署在其中该服务实例具有高可能性不会在此后不久被驱逐的节点上是合乎需要的。即,期望将服务实例部署在其中其预期存活时间(即,直到其驱逐/挂起的预期时间)被最大化的节点 上。期望将服务实例部署到其中它们对较高优先级实例的后续部署具有最少负面影响的节点上。预期的未来寿命(直到实例被挂起的时间)在各节点之间可显著地不同。如可领会的,存活度量可被用于分配高优先级水平服务实例和/或低优先级水平服务。

存活度量可用任何数目的方式来表示。例如,存活度量可以是指示服务实例在一些情况下在时间帧内将不被驱逐的可能性或程度的数字值;服务实例将在节点上存活(没有被驱逐)的程度;对要使用的优选节点或节点集的指示;对不期望向其分配的节点或节点集的指示;或提供节点之间的度量或比较的另一指示(例如,节点A更好)。仅作为示例,可作出针对每一服务实例和节点对的存活预测。存活预测可以是数字值(例如,15天)或相对值(例如,服务器1上的服务实例将比服务器2上的存活更久)。

作为另一示例,存活度量可由指示或估计服务实例在节点上的预期寿命的存活分数来表示。在一些实现中,如果服务实例在不久的将来被从特定节点处驱逐的概率小,则节点具有高存活分数。另一方面,如果该服务实例在不久的将来被从该节点驱逐的概率高,则节点一般具有低存活分数。

本文中提供了用于确定存活分数并由此确定存活度量的一个实现。一般来说,候选节点的存活分数被确定成该节点的危险概率的倒数。危险概率指代对在下一时间区间内把新实例分配给候选节点v将导致某种类型的实例驱逐有多么可能的估计。由此,针对节点v的危险概率(v)的值可被标识出并被用于确定该节点v的存活分数(v)。如以下更详细描述的,分配器可期望将新实例分配给具有高存活分数的节点以力图确保防止驱逐达较长时间。

在一些情况下,可作出允许对危险概率(v)的高效计算的假设。例如,一个假设是在下一时间区间期间,当前部署在群集中的服务实例都不将离开。即,假设在计算危险概率时,当前的静态群集快照在下一时间段内都将保持稳定。可促成高效计算的另一假设是每一实例类型首先被独立地考虑,并在此后通过联合边界(union-bound)在所有实例类型上求和。这样的假设使不同类型的实例之间复杂的内部依赖性降级,但允许对危险概率的高效逼近。

在各实施例中并在高层级处,存活分数可通过首先针对每一节点v并针对每一实例类型t计算危险概率(v,t)来生成。实例类型可以是任何服务实例类型。 例如,实例类型可以和与服务实例相关联的大小、资源、配置等有关。仅作为示例而非限制,第一实例类型可包括1核、0.75GB RAM和20GB盘大小;第二实例类型可包括1核、1.75GB RAM和40GB盘大小;第三实例类型可包括2核、3.5GB RAM和60GB盘大小;第四实例类型可包括4核、7GB RAM和120GB盘大小。

危险概率(v,t)表示将发生以下的可能性:在下一时间区间内,如果新实例被部署到节点v,并且如果仅类型t的新服务实例到达,则将该新实例部署在节点v上将导致驱逐某个已经部署的服务实例。根据计算针对每一节点v和每一实例类型t的危险概率(v,t),节点v的危险概率(v)可通过将所有类型上的危险概率(v,t)相加,由此实质上采用联合边界(union-bound argument)变元来确定。此后,节点v的存活分数(v)是危险概率(v)的倒数。高存活分数(v)一般可暗示对于长持续时间,将新实例部署到节点v不大可能导致任何驱逐。

在一些实现中,每一实例类型的到达率被用于生成存活分数。就此,每一实例类型的到达率的统计信息可被用来计算预期在给定区间内(例如,在合适的持续时间内)每一实例类型有多少实例将到达。针对每一节点v以及每一实例类型t,安全距离(v,t)是根据到达率来计算的。安全距离(v,t)一般指代在类型t的实例被部署在节点v上的情况下,直到某个实例将由于这种新实例的后续部署而被驱逐的预期持续时间。换言之,对于每一节点,计算指示在假设在下一时间区间类型t的新实例将到达的情况下,新服务实例可在节点v上保持安全的预期持续时间。在一些这样的计算中,可作出以下假设:服务实例都没有离开,较高优先级的服务实例是依据多维填装规则来分配的,并且关系被破坏以在可能的情况下避免驱逐低优先级实例。在一些情况下,安全距离(v,t)的值可被高效地计算出,因为这些节点是根据多维填装规则来排序的,并且此后针对这些节点的安全距离(v,t)的值被计算出。

对于每一节点v以及每一实例类型t,危险概率(v,t)被计算成安全距离(v,t)的倒数(即,1/安全(v,t))。如先前所描述的,危险概率(v,t)指代在类型t的实例被部署在节点v上的情况下,某一实例将由于该新实例的后续部署而被驱逐的概率。就此,在假设这些实例以指数分布随机地到达的情况下,值1/安全(v,t)可被解释成在某一后续时间区间内,将新实例部署到节点v不会导致任何驱逐 的概率。

与各种实例类型相关联的危险概率(v,t)可被用于例如使用求和来计算危险概率(v)。例如,危险概率(v)=Σt(危险概率(v,t))。通过这种方式,不同的类型t是通过经由联合边界逼近在不同的类型上求和被聚集成针对每一节点的单个危险概率(v)的。在确定每一节点v的危险概率之际,存活分数可使用例如存活分数(v)=1/危险概率(v)来计算。

作为具体示例并参考图3,假设仅存在两个实例类型(小型,大型)。如图3所示,群集包括四个节点,即节点302、节点304、节点306和节点308。节点302是满的,而节点308是完全空的。如图所示,仅高优先级实例当前被部署在该群集中。假设将部署低优先级的新的小型实例320。为了为该新实例320计算针对每一节点的存活分数,这些实例的预期到达率被计算。在此实例中,在给定时间区间内,假设大型实例类型的到达率等于1,而小型实例类型的到达率等于3,即在某一时间段内到达的小型实例比大型实例多三倍。到达率的倒数被用来计算预期到达区间。在该示例中,预期到达区间为大型示例类型等于三,且小型实例类型等于1。

在获得达到区间之际,为每一节点和每一实例类型计算安全距离(v,t)。具体地,安全距离(v,t)被计算成(必须直到某一驱逐发生的类型t的实例数)*(类型t的到达区间)。具体参考节点304,可为节点304并为小型实例类型计算安全距离(节点304,小型实例类型)。假设新实例被部署在节点304上。如果两个以上小型实例到达节点304,则将存在某一实例驱逐。由此,针对节点304的安全距离(节点302,小型实例类型)是小型实例的到达区间(即,1)的两倍,由此为2*1=2,如图3中的322处所示。

现在考虑图3中的节点306。在假设给定多维填装分配规则的情况下,任何新的小型实例都将首先被放在节点304上,因为该填装是最优的。在填充节点304之际,多维填装分配规则将(诸)小型实例分配在节点306上。如果新实例被分配给节点306,则5个新的小型实例被需要,直到存在驱逐。由此,针对节点306的安全距离(节点306,小型实例类型)是小型实例的到达区间(即,1)的5倍,由此为5*1=5,如图3中的324处所示。类似地,对于节点308,安全距离(节点308,小型实例类型)为9,因为新的小型实例必须在 驱逐发生之前首先整体地填充节点304、节点306和节点308。由此,针对节点308的安全距离(节点308,小型实例类型)是小型实例类型的到达区间(即,1)的九倍,由此为9*1=9,如图3中的326处所示。

继续该示例,参考大型示例类型t=大型,大型示例类型可仅被部署到节点308。在单个实例正被部署在已部署的节点308上之际,在该节点上存在驱逐。由此,导致驱逐所需的大型实例的数目为1,并且如先前所讨论的,大型实例类型的到达区间为三。因此,针对节点308的安全距离(节点308,大型实例类型)是大型实例类型的到达区间的一倍(即,1*3=3),如328处所指示的。

各安全距离(v,t)可被转换成时间,并且由此被解释成危险概率(v,t)的倒数。图3中的危险概率(v,t)340表示如果新的实例被分配在节点v上并且根据预期到达率随后类型t的实例会到达,则在下一时间区间内某个实例将被从节点v中驱逐的概率。

在标识针对节点的与每一实例类型相关联的危险概率(即,危险概率(v,t)340)之际,针对每一节点的所有类型t上的概率可被求和以计算危险概率(v)342,其是存活分数的倒数(v)。一般来说,具有最低危险概率(v)的节点是要向其分配新实例的最安全的节点。由此,在该示例中,节点306被标识为与安全度量有关的要向其分配新实例的最安全的节点。为了解说有效性,假设新实例320被分配给节点304,在这样的情况下,存在很高可能性该新实例将由于将首先被部署到节点304的随后部署的小型高优先级实例而被驱逐。另一方面,由于高优先级大型实例很快会到达,该大型实例将可能被部署到节点308,由此从节点308驱逐任何低优先级实例。由此,未被选择的节点(即,节点302、304、308)相对于被选择的节点306而言并非同样安全。

在一些实现中,存活组件246可在没有人工干预的情况下自动地适应特定群集状态以生成(诸)存活度量。作为示例并参考图4,图4包括节点402、404、406、408、410和412。节点402-408一般与图3中的节点302-308相同。由此,节点410和412被添加到群集,这两个节点都是空节点。存活组件426可自动地重新估计节点408的安全性,如安全距离(节点408,小型实例类型)426和安全距离(节点408,大型实例类型)428所表示的。这样的重新估计可 出于任何数目的理由而被触发,诸如在一时间流逝之际、在群集状态方面的足够改变之际,在群集方面的每一改变之际等等。

为了标识针对新的低优先级实例420的最安全的节点,作出关于以下的估计:该新的低优先级实例420如果被部署在诸如节点408的节点上有多么可能将可能由于将来的高优先级实例而被驱逐。作为示例并参考该新的低优先级实例420被潜在地部署到节点408,假设多维填装质量将不会把新的(将来的)大型高优先级实例分配在节点408上。相反,该新的实例将被部署在大型节点之一上,由此避免了将该低优先级实例驱逐掉。因此,将用三个大型高优先级实例来驱逐新部署的低优先级实例420。假设大型实例的到达区间为三。由此,安全距离(节点408,大型)现在为3*3=9,如428处所指示的。由于危险概率(节点408,大型)现在为1/9(而不是1/3),节点408的总危险概率(节点408)与所提供的与图3相关联的示例相比要小的多。即,许多空节点的添加已显著地增加了节点408的安全性。类似的计算可对节点上的新的(将来的)小型高优先级实例执行,即如果所有将来的高优先级实例都是小型实例,则在分配了多少高优先级实例后,该新的低优先级实例420(如果被部署到诸如节点408的节点上的话)将被驱逐。在计算针对各节点的危险概率之际,节点408可被标识成最安全的节点。如所描述的,该算法已通过据此重新估计安全分数而自动地适应于群集状态方面的改变。

在一些情况下,存活组件246在生成(诸)存活度量时可纳入对当前被部署在群集中的现有低优先级实例的知晓。作为示例并参考图5,图5包括节点502、504、506、508、510和512。与图4相较,节点508现在完全与大型优先级实例联用。由此,与图4相比,存在少一个的其中可部署大型高优先级实例而没有驱逐的空“缓存器节点”。结果,安全距离(节点508,大型实例类型)528从9(在图4中)降低到6(在图5中)。由此,节点508的危险概率增加了(并且具有相同节点状态(空状态)的节点510和512被类似地增加),其将节点506渲染成最安全的节点。如可领会的,可不针对每一节点来计算危险概率,而针对每一节点状态来计算危险概率。节点状态可用一程度或实例(例如,高优先级实例)所消耗的资源来指定。例如,在图5中,节点502可表示满状态,节点504可表示半满状态,节点506可表示四分之一满状态,且节点 508、510和512可表示空状态。

继续图2,存活组件246可按任何格式将存活度量输出到分配器218。通过这种方式,如可领会的,从存活组件输出的(诸)度量可以是(诸)危险概率(例如,最低概率)或(诸)存活分数(例如,最大分数)或对具有(诸)特定概率或(诸)分数的节点的指示。例如,在一些情况下,存活分数可针对每一候选节点生成,并且每一个这样的分数可被提供给分配器248。在另一示例中,在生成针对每一候选节点的存活分数之际,具有最大分数(或在彼此的阈值内)的(诸)节点可被选择并被提供给分配器248。如先前所描述的,存活度量可按任何数目的方式来表示,诸如指示服务实例在一些情况下在时间帧内将不会被驱逐的可能性或程度的数字值;服务实例将在节点上存活(没有被驱逐)的程度;对要使用的优选节点或节点集的指示;对不期望向其分配的节点或节点组的指示;或提供各节点之间的度量或比较的另一指示(例如,节点A更好)。用于向分配器248提供填装质量度量的特定方式或格式可取决于分配器248所使用的分配算法,其一些方面在以下描述。

分配器248一般被配置成将服务实例(例如VM)分配给节点。在各实施例中,分配器248可访问一个或多个度量,诸如填装质量度量、驱逐成本度量和/或存活度量,以选择要向其分配特定服务实例的节点。在一些情况下,分配器248可分层或一个接一个地访问这些度量中的每一个。就此,对于服务实例,第一度量可被访问以减少潜在候选节点,第二度量可随后被访问以进一步减少候选节点,并且第三度量可随后被访问以进一步减少候选节点。访问这些度量的次序可按任何方式发生。在其他情况下,分配器248可例如使用包括针对这些度量中的每一者的权重的算法来同时地评估这些度量中的每一者。

作为示例,在一个实施例中,可从候选节点的整体中选择与超过(或没有超过)某阈值或排名的填装质量相关联的候选节点。利用填装质量知晓确保允许相当高效的填装(即相当高的填装分数)的节点被考虑。例如,具有最大填装质量的所有候选节点都可被选择。作为另一示例,超过填装质量阈值的候选节点可被选择。就此,在一些情况下,分配器248可接收针对每一候选节点的填装分数(例如,多维最佳适应填装分数)、依据填装分数递增的方式来对候选节点进行排序(例如,越小的分数等于越好的填装)并选择经排序节点中的 前X%。就此,分配器248可从填装质量组件中接收前X%的节点(或指示(诸)节点选择的其他填装质量度量),并此后使用该数据来分配服务实例。

继续该示例,在基于填装质量减少了候选节点之际,与剩余候选节点相关联的驱逐成本可被用来滤除具有较差驱逐成本的候选节点(例如,具有高驱逐成本的那些候选节点)或选择具有最少驱逐成本的节点。如通过填装质量度量,超过阈值或达到某排名(例如,最佳的或前X%)的候选节点可被从减少的候选节点集中选出。该分析的这方面确保对驱逐成本的知晓。通过这种方式,可区分驱逐成本为0或超出其他节点尽可能低的各节点的优先级。

在基于驱逐成本减少候选节点之际,可随后基于存活度量来估计减少的候选节点集。该存活知晓可确保到其中新部署的实例不大可能由于更高优先级实例的随后到达而被驱逐的节点的分配。在一些情况下,可选择将可能存活最长的候选节点或可能存活例如超过阈值的候选节点集。如可领会的,在一些情况下,仍可存在多个候选节点(例如,具有相等存活分数的多个候选节点)。在这样的情况下,任何数目的规则都可被应用来选择特定节点。例如,可选择具有最大填装质量分数的候选节点。

虽然一个实施例被描述为利用三个度量中的每一个来标识或确定要向其分配服务实例的候选节点,如可领会的,可应用任何数目的度量和/或次序。例如,在一些情况下,可按任何次序仅使用填装质量和驱逐成本来选择候选节点。仅使用填装质量和驱逐成本可被实现为用于对候选节点的每一选择(例如,存活度量没有被确定并使用)。

如发明人所构想的,各种算法可与不同的优先级水平联用。在高层级,例如使用第一和第二度量的第一算法可在将被部署的服务实例被标识为低优先级水平时被使用,并且使用第二和第三度量的第二算法可在将被部署的服务实例被标识为高优先级水平时被使用。作为一个示例,在评估要向哪个节点部署高优先级服务实例时要使用的高优先级分配算法可平衡填装质量与驱逐成本度量,而在评估要向哪个节点部署低优先级服务实例时要使用的低优先级分配算法可单独地基于填装质量度量。作为另一示例,在评估要向哪个节点部署高优先级服务实例时要使用的高优先级分配算法可基于填装质量度量,而在评估要向哪个节点部署低优先级服务实例时要使用的低优先级分配算法可基于填 装质量和存活度量的平衡。作为又一示例,在评估要向哪个节点部署高优先级服务实例时要使用的高优先级分配算法可基于与驱逐成本度量平衡的填装质量,而在评估要向哪个节点部署低优先级服务实例时要使用的低优先级分配算法可基于填装质量和存活度量的平衡。这些仅仅是可用于不同水平的服务实例的不同分配算法的示例,而不意味着对本发明的实施例的范围构成限制。

现在参考图6,提供了示出用于优化多优先级服务实例分配的方法600的流程图。最初,在框610,针对要部署的服务实例,确定与可潜在地向其分配该服务实例的候选节点相关联的填装质量度量。在框612,确定与可潜在地向其分配该服务实例的候选节点的至少一部分相关联的驱逐成本度量。在一些情况下,生成针对每一服务实例-候选节点对的驱逐成本。在其他情况下,生成针对基于对填装质量度量的评估而选择的各服务实例-候选节点对(即,填装质量度量被用于减少潜在节点候选的集合)的驱逐成本。在框614,使用填装质量度量和驱逐成本度量中的至少一部分来选择要向其分配该服务实例的节点。该服务实例可能是低优先级服务实例或高优先级服务实例。随后,在框616,将该服务实例部署在所选的节点处。

现转至图7,提供了示出用于优化多优先级服务实例分配的方法700的流程图。最初,在框710,针对要部署的服务实例,确定与可潜在地向其分配该服务实例的候选节点相关联的填装质量度量。在框712,确定与可潜在地向其分配该服务实例的候选节点的至少一部分相关联的存活度量。在一些情况下,生成针对每一服务实例-候选节点对的存活度量。在其他情况下,生成针对基于对填装质量度量的评估而选择的各服务实例-候选节点对(即,填装质量度量被用于减少潜在节点候选的集合)的存活度量。在框714,使用填装质量度量和存活度量中的至少一部分来选择要向其分配该服务实例的节点。该服务实例可能是低优先级服务实例或高优先级服务实例。随后,在框716,将该服务实例部署在所选的节点处。

现参考图8,提供了示出用于优化多优先级服务实例分配的方法800的流程图。最初,在框810,针对要部署的服务实例,确定与可潜在地向其分配该服务实例的候选节点相关联的填装质量度量。在框812,确定与可潜在地向其分配该服务实例的候选节点的至少一部分相关联的驱逐成本度量。在一些情况 下,生成针对每一服务实例-候选节点对的驱逐成本。在其他情况下,生成针对基于对填装质量度量的评估而选择的各服务实例-候选节点对(即,填装质量度量被用于减少潜在节点候选的集合)的驱逐成本。在框814,确定与可潜在地向其分配该服务实例的候选节点的至少一部分相关联的存活度量。在一些情况下,生成针对每一对服务实例-候选节点对的存活度量。在其他情况下,生成针对基于对填装质量度量和/或驱逐成本度量的评估而选择的各服务实例-候选节点对(即,填装质量度量和/或驱逐成本度量被用于减少潜在节点候选的集合)的存活度量。在框816,使用填装质量度量、驱逐成本度量和存活度量中的至少一部分来选择要向其分配该服务实例的节点。该服务实例可能是低优先级服务实例或高优先级服务实例。在框818,将该服务实例部署在所选的节点处。

参考图9,提供了示出用于优化多优先级服务实例分配的方法900的流程图。最初,在框910,对于要被分配的服务实例,确定与候选节点相关联的填装质量度量。在框912,选择这些候选节点的子集作为用于分配该服务实例的第一潜在候选节点集合。在一些实施例中,可使用阈值来选择最佳适应节点的一部分。在框914,使用与第一潜在候选节点集合相关联的驱逐成本度量来将第一潜在候选节点集减少成用于分配该服务实例的第二潜在候选节点集合。在一些实施例中,可选择与至少驱逐成本相关联的节点。在框916,使用与第二潜在候选节点集合相关联的存活度量来将第二潜在候选节点集减少成用于分配该服务实例的第三潜在候选节点集合。在一些情况下,可选择与针对所部署的服务实例的最长存活时间相关联的节点。在框918,作出关于第三潜在候选节点集合是否包含单个节点的确定。如果如此,则选择该节点来部署该服务实例,如框920处所指示的。如果并不如此,则在框922,使用与第三潜在候选节点集合中的候选节点相关联的填装质量度量来选择要向其分配给服务实例的最优节点。将该服务实例分配给所选的节点,如框924处所指示的。

现转至图10,提供了示出用于优化多优先级服务实例分配的方法1000的流程图。最初,在框1010,标识要被分配的服务实例是高优先级服务实例还是低优先级服务实例。如果确定服务实例是高优先级服务实例,则使用填装质量度量、驱逐成本度量和存活度量中的一个或多个的第一集合来确定要向其分配该高优先级服务实例的节点,如框1012处所指示的。在另一方面,如果确定 服务实例是低优先级服务实例,则使用填装质量度量、驱逐成本度量和存活度量中的一个或多个的第二集合来确定要向其分配该低优先级服务实例的节点,如框1014处所指示的。

在简要描述了本发明各实施方式的概览之后,以下描述其中可实现本发明的各实施方式的示例性操作环境,以便为本发明各方面提供通用上下文。首先具体参考图11,示出了用于实现本发明的各实施例的示例性操作环境,并将其概括地指定为计算设备1100。计算设备1100只是合适的计算环境的一个示例,并且不旨在对本发明的使用范围或功能提出任何限制。也不应该将计算设备1100解释为对所示出的任一组件或其组合有任何依赖性或要求。

本发明可以在由计算机或诸如个人数据助理或其他手持式设备之类的其他机器执行的计算机代码或机器可使用指令(包括诸如程序模块之类的计算机可执行指令)的一般上下文中描述。一般而言,包括例程、程序、对象、组件、数据结构等的程序模块指的是执行特定任务或实现特定抽象数据类型的代码。本发明可以在各种系统配置中实施,这些系统配置包括手持式设备、消费电子产品、通用计算机、专用计算设备等等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。

参考图11,计算设备1100包括直接或间接耦合以下设备的总线1110:存储器1112、一个或多个处理器1114、一个或多个呈现组件1116、输入/输出端口1118、输入/输出组件1120、和说明性电源1122。总线1110表示可以是一条或多条总线(诸如地址总线、数据总线、或其组合)。虽然为了清楚起见利用线条示出了图11的各框,但是实际上,各组件的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。例如,可以将诸如显示设备等呈现组件认为是I/O组件。而且,处理器也具有存储器。可以认识到,这是本领域的特性,并且重申,图11的图示只是例示可结合本发明的一个或多个实施方式来使用的示例性计算设备。诸如“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等分类之间没有区别,因此它们全部都被认为是在图11的范围之内的并且被称为“计算设备”。

计算设备1100通常包括各种计算机可读介质。计算机可读介质可以是可由计算设备1100访问的任何可用介质,而且包含易失性和非易失性介质、可 移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。

计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性与非易失性、可移动与不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算设备访问的任何其它介质。计算机存储介质将信号本身排除在外。

通信介质通常以诸如载波或其他传输机制之类的已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。

存储器1112包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移动的,不可移动的,或两者的组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备1100包括从诸如存储器1112或I/O组件1120等各种实体读取数据的一个或多个处理器。呈现组件1116向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等等。

I/O端口1118允许计算设备1100逻辑上耦合至包括I/O组件1120的其他设备,其中某些设备可以是内置的。说明性组件包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、打印机、无线设备等等。

本文中描述的各实施例涉及优化对多优先级服务实例的分配。如可理解的,许多不同的安排和范围被包括在各实施例的变型内,接着是它的一些示例。在一个实施例中,系统被配置用于优化对多优先级服务实例的分配。该系统包括被配置用于标识与候选节点相关联的填装质量度量的分配器组件,每一个填装质量度量都指示要被分配的服务实例利用节点内的资源的程度。分配器组件还被配置用于基于填装质量度量来选择候选节点的第一节点子集。分配器组件 还被配置用于基于与候选节点的至少第一部分相关联的驱逐成本度量来选择候选节点的第二节点子集,每一个驱逐成本度量都指示将服务实例从节点中驱逐使得可将另一服务实例分配到那个节点的成本。分配器组件还被配置用于基于与候选节点的至少第二部分相关联的存活度量来选择候选节点的一个或多个节点的第三子集,其中存活度量指示该服务实例在被部署到相应节点的情况下不将被驱逐或将存活的程度。分配器组件还被配置用于根据填装质量、驱逐成本和存活度量将服务实例分配给第一节点子集、第二节点子集或有一个或多个节点的第三子集中的一个节点。

在另一方面,提供了一种用于优化对多优先级服务实例的分配的计算机实现的方法。该方法包括确定与可向其分配服务实例的每一候选节点相关联的填装质量度量。该方法还包括确定与可向其分配该服务实例的候选节点的至少一部分相关联的驱逐成本,每一个驱逐成本都指示将服务实例从相应的节点处驱逐以使得可将另一服务实例分配到那个节点的成本。该方法还包括利用填装质量度量和驱逐成本中的至少一部分来从候选节点中选择要向其分配该服务实例的节点。

在又一方面,提供了具有包含在其上的计算机可执行指令的一个或多个计算机存储介质,该计算机可执行指令在被一个或多个处理器执行时,使得一个或多个处理器执行一种用于优化对多优先级服务实例的分配的方法。该方法包括标识与可向其分配服务实例的每一候选节点相关联的填装质量度量。该方法还包括标识与可向其分配该服务实例的候选节点的至少一部分相关联的存活度量,每一个存活度量指示该服务实例在被部署到相应节点的情况下不将被驱逐或将存活的程度。该方法还包括利用填装质量度量和存活度量中的至少一部分来从候选节点中选择要向其分配该服务实例的节点。

此处相对于各具体实施例描述了各实施例,各具体实施例在所有方面都旨在是说明性而非限制性的。不偏离本发明范围的情况下,各替换实施例对于本发明所属领域的技术人员将变得显而易见。

从前面的描述可以看出,本发明很好地适用于实现上文所阐述的所有目的和目标,并且具有对于该结构是显而易见且固有的其他优点。

可以理解,某些特征和子组合是有用的,并且可以在不参考其他特征或子 组合的情况下使用。这由权利要求所构想的,并在权利要求的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1