缩放云资源时动态标识目标容量的制作方法

文档序号:11890485阅读:204来源:国知局
缩放云资源时动态标识目标容量的制作方法与工艺

云服务被广泛用户提供许多类型的功能,包括托管应用,提供对数据存储的访问,提供网站、电子邮件或其他功能。云服务通常在可位于彼此远程的各计算机系统的网络上运行。计算机网络可被配置成使用各虚拟机来提供各种服务。这些服务可通过按需添加或移除虚拟机来伸缩。例如,在峰值负载的时间,可实例化附加虚拟机,而在降低的负载的时间,可关闭各虚拟机。在某些情况下,虚拟机可能会被关闭,却由于负载增加的缘故而仅仅是立即又被重新带回。这一场景通常被称为“摇摆”(flapping)。

简要概述

本文描述的各实施例涉及在自动缩放云资源时避免摇摆。在一个实施例中,计算机系统访问指定要在多个云资源上维持的目标运行度量的信息。计算机系统确定针对云资源中的至少一些的目标运行度量的当前测得值。计算机系统进一步基于目标运行度量和当前测得值来计算缩放因子,其中缩放因子表示目标运行度量和当前测得值之间的差异量。计算机系统还计算表示云资源的由计算得到的缩放因子修改的经修改的量的增量值,并基于计算得到的增量值确定是否要发生缩放动作。

在另一实施例中,提供了一种用于在自动缩放云资源时避免摇摆的替代方法。在这一实施例中,计算机系统访问自动缩放规则,所述自动缩放规则管控指定云资源集合要被如何缩放。计算机系统随后根据自动缩放规则标识第一候选自动缩放动作,并且进一步计算该指定云资源集合的预计资源消耗量,其中预计量指示如果应用第一候选自动缩放规则的话将发生的资源消耗量。随后,在确定所预计的资源消耗不会触发第二自动缩放规则之际,计算机系统执行第一候选自动缩放动作。

提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。

本发明的附加特征和优点将在以下描述中叙述,且其一部分根据本描述对本领域的技术人员将是显而易见的,或可通过对此处的原理的实践来获知。此处所描述的各实施例的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。通过下列描述以及所附的权利要求,,此处所描述的各实施例的特征将变得更加显而易见。

附图简述

为进一步阐明此处所描述的各实施例的上述及其它特征,将参考附图,呈现更具体的描述。应该理解,这些附图只描述了此处所描述的各实施例的示例,因此,不应该被视为限制其范围。将通过使用附图并利用附加特征和细节来描述和解释各实施例,在附图中:

图1例示出本文描述的各实施例(包括在自动缩放云资源时避免摇摆)可在其中操作的计算机体系架构。

图2例示出用于在自动缩放云资源时避免摇摆的示例方法的流程图。

图3例示出用于在自动缩放云资源时避免摇摆的替代示例方法的流程图。

图4例示出其中使用计算得到的缩放因子和增量值来避免摇摆的实施例。

图5例示出其中发生摇摆的实施例。

图6例示出其中预计资源消耗被计算以避免在使用自动缩放规则的场景中的摇摆的实施例。

详细描述

本文描述的各实施例涉及在自动缩放云资源时避免摇摆。在一个实施例中,计算机系统访问指定要在多个云资源上维持的目标运行度量的信息。计算机系统确定针对云资源中的至少一些的目标运行度量的当前测得值。计算机系统进一步基于目标运行度量和当前测得值来计算缩放因子,其中缩放因子表示目标运行度量和当前测得值之间的差异量。计算机系统还计算表示云资源的由计算得到的缩放因子修改的经修改的量的增量值,并基于计算得到的增量值确定是否要发生缩放动作。

在另一实施例中,提供了一种用于在自动缩放云资源时避免摇摆的替代方法。在这一实施例中,计算机系统访问自动缩放规则,所述自动缩放规则管理指定云资源集合要被如何缩放。计算机系统随后根据自动缩放规则标识第一候选自动缩放动作,并且进一步计算该指定云资源集合的预计资源消耗量,其中预计量指示如果应用第一候选自动缩放规则的话将发生的资源消耗量。随后,在确定所预计的资源消耗不会触发第二自动缩放规则之际,计算机系统执行第一候选自动缩放动作。

下面的讨论现在涉及可被执行的多个方法和方法动作。值得注意的是,虽然可以以某一顺序讨论或在流程图中按特定顺序发生而示出了方法动作,但是,没有特定顺序是一定需要的,除非特别声明,或者是必需的,因为在一个动作被执行之前该动作取决于另一动作被完成。

本文中描述的实施例可实现各种类型的计算系统。这些计算系统现在越来越多地采取多种多样的形式。例如,计算系统可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或甚至常规上不被认为是计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理且有形的处理器以及其上能具有可由处理器执行的计算机可执行指令的物理且有形的存储器。计算系统可以分布在网络环境中,并可包括多个组分计算系统。

如图1所示,计算系统101通常包括至少一个处理单元102和存储器103。存储器103可以是物理系统存储器,该物理系统存储器可以是易失性的、非易失性的、或两者的某种组合。术语“存储器”也可在此用来指示诸如物理存储介质这样的非易失性大容量存储器。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。

如本文中所使用的,术语“可执行模块”或“可执行组件”可以指可以在计算系统上执行的软件对象、例程或方法。本文所描述的不同组件、模块、引擎以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。

在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上实现。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可以存储在计算系统101的存储器103中。计算系统101还可包含允许计算系统101通过有线或无线网络与其它消息处理器通信的通信信道。

在此描述的各实施例可包括或利用专用或通用计算机系统,该专用或通用计算机系统包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。系统存储器可被包括在整体存储器103内。系统存储器还可被称为“主存储器”,并且包括可被至少一个处理单元102在存储器总线上被寻址的存储器位置,在这种情况下地址位置被声明在存储器总线自身上。系统存储器传统上是易失性的,但本文中描述的原理还应用于其中系统存储器部分或者甚至全部是非易失性的情况。

本发明范围内的各实施例也包括用于实现或存储计算机可执行指令和/或数据结构的实体及其它计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令和/或数据结构的计算机可读介质是计算机存储介质。承载计算机可执行指令和/或数据结构的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。

存储计算机可执行指令和/或数据结构的计算机存储介质是物理硬件存储介质。物理硬件存储介质包括计算机硬件,诸如RAM、ROM、EEPROM、固态驱动器(“SSD”)、闪存、相变存储器(“PCM”)、光盘存储、磁盘存储或其它磁存储设备、或可用于存储计算机可执行指令或数据结构形式的程序代码的任何其它硬件存储介质,其可由通用或专用计算机系统访问来实现本发明公开的功能。

传输介质可包括可用于携带计算机可执行指令或数据结构形式的程序代码并可由通用或专用计算机系统访问的网络和/或数据链路。“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机系统时,该计算机系统将该连接视为传输介质。上述的组合应当也被包括在计算机可读介质的范围内。

此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可以在网络接口模块(例如,“NIC”)内的RAM中被缓冲,然后最终被传输至计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。

计算机可执行指令例如包括,当在一个或多个处理器处执行时使通用计算机系统、专用计算机系统、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。

本领域的技术人员将理解,本文中描述的原理可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、平板、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。如此,在分布式系统环境中,计算机系统可包括多个组成部分计算机系统。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。

本领域技术人员还将理解本发明可在云计算环境中实践。云计算环境可以是分布式的,但这不是必须的。在分布时,云计算环境可以国际性地分布在一个组织内,和/或具有跨多个组织拥有的组件。在该说明书和下面的权利要求书中,“云计算”被定义为用于允许对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于可从这样的模型(在被合适地部署时)中获得的任何其它多个优点。

更进一步,此处所描述的系统架构可包括多个独立组件,每一组件都对作为整体的系统的功能有贡献。当开始考虑平台可缩放性的问题时,此模块性允许提高灵活性,为此,提供各种优点。可以通过使用带有有限的功能范围的较小规模部件,比较轻松地管理系统复杂性和增长。通过使用这些松散耦合的模块,增强平台容错。随着业务需要规定,单个组件可以增量地增长。对于新的功能,模块化开发还转换为缩短的上市时间。可以添加或减去新功能,而不会影响核心系统。

图1示出了其中可以采用至少一个实施例的计算机架构100。计算机架构100包括计算机系统101。计算机系统101可以是包括云计算系统的任何类型的本地或分布式计算机系统。计算机系统101包括用于执行各种不同的功能的模块。例如,通信模块104可被配置成于其他计算系统通信。计算模块104可包括可从其他计算系统接收数据和/或向其他计算系统传送数据的任何有线或无线通信装置。通信模块104可被配置成于数据库、移动计算设备(诸如移动电话或平板设备)、嵌入式计算系统或其他类型的计算系统交互。

在一些实施例中,计算机系统101的通信模块104可被配置成接收来自用户105的目标运行度量106。目标运行度量106指的是云资源的一个或多个运行度量,目标是该云资源要满足的级别、价值或数量。云资源(例如113)可以基本上是任何计算或网络资源,包括处理器、处理核、处理线程、处理单元(如每秒运算)或类似物的、存储器、硬盘驱动器或其他存储空间、网络带宽、网络端口、虚拟机、物理机或以上的任意组合。在一个示例中,用户可以指定一个处理器或一组处理器要保持在50%的容量。在一些情况下,50%的容量可能对于处理器使用来说是最优的,因为处理器可能仍然会遇到大的负载,并且有空间来增加处理。在其他情况下,40%、60%或某个其它百分比可能是最优的。在一些情况下,用户可以指定存储器的量(例如8Gb存储器或1.5Gbps网络带宽或至少三个并发运行的虚拟机,等等)。这些中的每一个都将是目标运行度量的示例。如将会是显而易见的,其他示例也是可能的,并且以上的只是目标运行度量的一些实例。

一旦计算机系统101有了目标运行度量106,则确定模块107能够确定云资源113要被扩展还是缩减。如果云资源目前高于所需,则云资源可被缩减。例如,如果目标运行度量106指定至少三个虚拟机要并发运行,而当前有六个虚拟机正在并发运行,则那些虚拟机中的最多三个虚拟机可被关闭,只要所指定的目标运行度量106仍然被满足。在其他情况下,如果云资源113目前低于维持目标运行度量106所需,则资源可被扩展。如本文中所使用的,术语“缩放动作”或“自动缩放动作”指的是基于当前需求自动扩展或缩减云资源(例如,当前运行以主存服务的虚拟机(VM)的数目、或者主存服务的特定VM的大小)。

如之前所指出的,如果资源被反复地扩展或缩减,则系统被称为在摇摆。因此,对于给定资源的规模变化将被计量,并在被应用之前仔细确定。计算模块109可以根据当前测得的值108(该值指示该云资源113的当前测得的值)来确定要进行缩放动作112。缩放动作可包括将云资源扩展或缩减一定的量。缩放动作的量可取决于当前和过去的条件。计算模块109可确定缩放因子110和增量值111以确定是否要应用缩放动作,并且如果是的话,确定要发生的缩放量。则将在以下接合图1和4-6来进一步阐述。

此处所描述的实施例可被配置成基于给定服务的当前总容量以及当前运行度量和目标运行度量106之间的增量来计算要添加或删除的云资源113(例如,虚拟机实例)的数量。在一些场景中,这一计算包括三个步骤:1)用户105向系统提供了与负载相关的性能度量。在一些情况下,这些度量可以按照实例的总数来归一化,得到平均负载(PCL)。2)用户可进一步提供给定性能度量中的针对他们希望每个实例处理的负载量的平均目标阈值,被称为平均目标阈值(PCTT)。3)随后采取缩放动作112,并且该缩放的大小由该度量的当前平均值和用户定义的阈值(即PCTT)之间的增量111来确定。在每个缩放动作中,系统还:a)预计该缩放动作将会对服务(例如,114)的总容量产生的影响,和b)如果预测表明(在当前负载下)服务的新的总容量不能处理负载,则系统还可降低缩放动作的幅度,直到新容量将能够服务于当前负载。

在一些情况下,用户可能不想或不知道如何定义平均目标阈值。作为替代,用户可以定义缩放规则,该规则指令系统按照固定量来扩展或缩减。在这种情况下,步骤(1)和(3)仍然会被使用,但(2)将被计算。缩放系统可被配置成周期性地(例如,每5分钟)运行,并可在每次其运行时获取两个(或更多个)输入。第一输入可以是为指定服务提供容量的虚拟机实例的数量,而第二输入可以指定对服务在该时间点正处理的工作的量(即负载)进行量化的一组当前性能度量。应当注意的是,在至少一些实施例中,缩放系统可被配置为以相同周期运行,而不管用户提供哪些输入。

图5中示出了摇摆场景。在图5中,用户可能已经采用25%的处理器使用率建立了三个实例(501)。用户的缩减规则可能指示两个实例将被移除。然而,当两个实例被移除时,只剩下一个实例,而这将增加到75%的CPU使用率(502)。这进而又触发了扩展规则,从而添加两个实例。现在,用户将再次具有25%的使用率下的三个实例。另一个缩减动作被触发,从而返回到一个实例。这一循环将无限持续下去,直到负载改变。

可使用如图4中所示的平均目标阈值(PCTT)410来避免摇摆。对于每次运行,系统首先确定自动缩放作业404的平均负载(PCL)405。PCL可通过以下来计算:1)评估表明资源的当前运行状态的每一个当前性能度量402(包括度量403A、403B和403C)、以及2)对于每个当前性能度量,除以正处理容量405的实例(n)401的总数。结果,PCL表示每个实例所承担的单位负载。

接着,计算度量缩放因子(MSF)406。至少在一些实施例中,MSF是PCL除以用户定义的PCTT。MSF表示服务的当前容量距目标容量(例如106)有多远。至少在一些实施例中,为了对资源性能区分优先级,所有MSF的最大值被使用407(但这并不是必需的——小于最大MSF的其他缩放因子也可被使用)。使用最大MSF确保如果缩减将影响性能有任何(明显的)可能性时,资源将不会被缩减。随后,计算要缩放到该度量缩放因子所需要的实例的数量(即408处的增量值)。如果增量值不等于零(即它是正值或负值)409,缩放动作将根据该增量值来执行。因此,在包括实数的示例中,如果x被设为75%的当前CPU负载,而n等于三个虚拟机(或其他资源)实例,则PCL将是每个虚拟机75/3%或25%。MSF将是25/50或1/2,并且增量可以是3-(3*1/2)或1.5。因此,在这一示例中,1.5个虚拟机是可被缩减的过量机器的增量或者。如果该数量已成为负数,则其表示要满足运行性能度量将需要添加的资源的数量。

在另一实施例中,可在不使用PCTT值的情况下避免摇摆在这一场景中,用户可定义指定他们想要他们的服务如何缩放的规则集合(也称缩放设置)。例如,他们可以表示“当CPU负载小于40%时缩减两个实例”以及“当CPU负载大于60%时增加两个实例”。为了防止摇摆的情况发生,计算系统101预测任何给定缩放动作将会对服务产生的影响。至少在某些情况下,这可通过假设线性回归来实现:该假设是两台机器处于50%负载相当于一台机器处于100%或4台机器处于25%。这一过程现在将参考图6来描述。

对于自动缩放引擎的每个执行:1)评估缩放设置602。在一些实施例中,摇摆可能仅在循环的缩减侧上被防止。这样做是使系统的性能优先于潜在的成本节省。如果扩展规则表明动作是必要的,则作业执行该动作并退出。2)评估缩减设置。如果没有缩减设置被触发,则系统处于良好状态并且不需要进一步缩放。3)如果缩减指示缩放规则被触发,则预计新的CPU负载601(或其它资源测量)。这是通过这一公式来计算的:

4)评估扩展设置,但是采用新预计的CPU百分比。如果确定该扩展设置不会被触发,则它被确定为缩减是安全的——不会发生摇摆。5)然而,如果扩展设置将被触发,则减少缩减量并且再次预计新的CPU。以此方式,步骤5允许系统缩减不会触发摇摆的最大的可能数量。它表示了一种对用户意图(缩放行动仍然执行)的紧密近似,但避免了不必要的摇摆循环。在某些场景中,这可能意味着没有任何缩放会发生,但这可能是最优的,因为系统可能会以其它方式被供给不足。

因此,在提供采用实数的其中云资源为CPU负载的示例中,该系统可以查看当前CPU负载601、用户定义的设置(例如,目标运行度量106)、以及当前虚拟机实例计数603。如果当前CPU负载大于60%(604),则系统可被配置成添加两个VM(605)。如果当前CPU负载小于40%(606),则可计算在移除两个VM实例后新的CPU负载(608)。如果当前CPU负载不小于40%(606),则没有动作会发生并且系统可退出(607)。如果计算得到的在移除两个实例后的CPU负载大于60%(609),则确定摇摆将会发生,并且在少移除一个实例的情况下重新执行608。如果计算得到的在移除两个实例后的CPU负载小于60%(609),则确定缩减是安全的,并且两个VM实例被移除(610)。将会理解的是在上面的示例中所使用的数字仅仅是许多可能的示例中的一个示例,并且CPU负载和虚拟机是可使用云资源的许多不同示例中的一些示例。以下分别结合图2和3的方法200和300描述可被用于减少摇摆的其它实施例。

鉴于上文所描述的系统和架构,参考图2和3的流程图,将更好地理解可以根据所公开的主题实现的方法。为了简洁起见,作为一系列框示出和描述了方法。然而,应了解和明白,所要求保护的主题不受方框的顺序的限制,因为某些方框可以按不同的顺序进行,和/或与此处所描绘和描述的其它方框同时进行。此外,并非所有的所示出的方框都是实现下面所描述的方法所必需的。

图2例示出用于在自动缩放云资源时避免摇摆的方法200的流程图。现在将频繁地参考环境100的组件以及数据来描述方法200。

方法200包括访问指定要在多个云资源上维持的至少一个目标运行度量的信息的动作(动作210)。例如,计算机系统101可访问指定对于一个或多个云资源113要维持的至少一个运行度量106的信息。目标运行度量106可由用户105或由某个其它实体提供。替代地,目标运行度量106可被存储在数据库(例如,115)或某个其它数据存储上。目标运行度量106可包括虚拟机或其它云资源的数目的上限和下限。例如,在一些情况下,目标运行度量106可指定一组虚拟机或指定给定服务要是50%CPU负载。其它目标运营度量106可能与服务或指定云资源的健康或性能绑定(例如,维持一定量的存储器,或维持处理指定数目的每秒请求数的能力)。

方法200接着包括确定多个云资源中的至少一些的至少一个目标运行度量的当前测得值的动作(动作220)。计算机系统101的确定模块107可确定云资源113中的一个或多个的目标运行度量106的当前测得值108。计算机系统101的计算模块109可随后基于至少一个目标运行度量106和当前测得值108来计算缩放因子110,其中缩放因子表示至少一个目标运行度量和当前测得值之间的差异量(动作230)。计算模块109可进一步计算表示云资源113的由计算得到的缩放因子修改的经修改的量的增量值111(动作240)。确定模块107可随后基于计算得到的增量值来确定是否要发生缩放动作112(动作250)。

在一些实施例中,缩放动作112可包括添加虚拟机或移除虚拟机。在其它示例中,缩放动作112可包括增大或减小虚拟机的大小。相应地,缩放动作可以增加或减小资源的物理或虚拟数量,或者可以增大或减小资源的物理或虚拟大小。因此,在虚拟机的情况中,虚拟机中的一个或多个可在处理能力、存储器、硬盘驱动器空间、网络功能、或以某种其它方式被扩展。例如,虚拟机可以被给予对更多或更少物理处理核、或更多或更少网卡的访问。在指定了多个目标运行度量的情况下,一些目标运行度量可能会优先于其它目标运行度量。例如,CPU负载可被优先于网络容量或硬盘驱动器空间。当然其他优先级场景是可能的,其中其他目标运行度量被赋予优先。

在一些情况下,虚拟机健康可被优先于成本节省。例如,当虚拟机健康优先时,每个虚拟机实例可以较低的CPU负载运行。这可能增加运行系统的成本,因为更多的物理处理器在运行来处理和运行虚拟机。然而,这可能是客户想要的以便确保他们有足够的能力来处理负载增加,或足够的处理器在运行,使得如果一个处理器变为故障或以其它方式经历阻止其运行的错误,CPU负载可以被故障转移到另一处理器。其它的优先排序也是可能的。例如,一些工作空间可能能够在夜间或周末降到零个实例。在这种情况下,性能可能会优先于健康,以在日间提供优质的服务,而在夜间提供很少或不提供服务。因此,本文中所描述的实施例可以区分不同的云资源113的优先级,或者可以指定不同的总优先次序,该优先次序转化为要应用于各种云资源的策略。

如以上提到的,计算模块109可以在确定是否执行缩放动作112时计算缩放因子,并且如果缩放动作将要发生,则确定云资源应按被扩展或缩减多少。缩放因子110表示给定服务的当前容量距目标容量有多远的测量。缩放因子110可以针对每一个目标运行度量106来计算。如果用户105或另一用户已指定了要应用的给定优先次序,则可基于该优先次序来选择一个或多个特定的缩放因子。在一些情况下,用户可使健康优先于性能。在这种情况下,指定的缩放因子将包括最大缩放因子110。最大缩放因子表示目标运行度量和每个目标运行度量的当前测得值之间的差异的最高量。使用该值将确保如果在没有该云资源的情况下最低健康水平将被维持的话,所得到的增量值111只具有高于1或低于-1的值(指示至少有一个云资源要被添加或删除)。

用户可以选择或提供要在主存服务期间要被维持的服务级协议(SLA)。如果为服务实现了这一SLA,则确定模块107可以标识至少一个运行度量,该运行度量如果被实现的话将导致至少一个SLA不再可实施。如果这一运行度量被标识为会造成SLA不再可实施,则计算机系统101可以生成通知,通知用户105所选定的运行度量106会导致SLA不再可实施。因此,例如,如果用户选择只有一个虚拟机实例用于一服务,则通知将被发送给用户,指示针对该服务的SLA在只使用一个虚拟机实例时不能被提供。用户可因此被不断告知何时/是否对目标运行度量的改变打破针对服务的现有SLA。

定制度量也可被使用。例如,用户可创建定制的目标运行度量106。用户可以指定例如可以在由一组虚拟机主存的网站上同时购物的购物者的数量,或者可以指定适用于他们个人场景的某个其他度量。当使用定制目标运行度量时,用户可进一步指定每个虚拟机针对用户数量的高值或低值是什么(用户可以提供或访问历史数据来确定这些值将是什么)。用户也可组合定制或内置度量以创建要针对一组云资源113维持的目标运行度量106的定制组合。无论使用哪个目标运行度量,如果确定模块107确定缩放动作112将发生,则针对该云资源113执行缩放操作,使得根据该缩放动作添加或删除云资源。缩放动作本身基于计算得到的增量值111。在某些情况下,计算机系统101的计算模块109可以被配置成计算缩放动作将对一个或多个虚拟机的总容量的预计影响。这一预计影响将在以下结合图3的方法300来进一步讨论。

图3例示出用于在自动缩放云资源时避免摇摆的方法300的流程图。现在将频繁地参考环境100的组件以及数据来描述方法300。

方法300包括访问一个或多个自动缩放规则的动作,该规则管控指定云资源集合要被如何缩放(动作310)。例如,计算机系统101可以访问自动缩放规则116,该规则管控一个或多个云资源113要被如何缩放。自动缩放规则可指示例如云资源要被自动扩展或缩减一定数量的实例(例如由一个或两个或三个,等等)。该规则可基于策略,或者可针对给定服务被直接指定。自动缩放规则116可包括候选自动缩放动作117。计算系统101可以根据自动缩放规则中的至少一者标识第一候选自动缩放动作(动作320)。第一候选自动缩放动作117可以是候选自动缩放动作117中的任意一个。自动缩放规则是“候选”规则,因为它们可被应用或可不被应用但都至少有资格被应用的规则。

方法300还包括为该指定云资源集合计算预计资源消耗量的动作,其中预计量指示如果第一候选自动缩放规则被应用的话将会发生的资源消耗量(动作330)。因此,计算机系统101的计算模块109可以计算云资源113的预计资源消耗量114。预计量114包括如果第一候选自动缩放动作117被应用的话将发生的资源消耗量。计算机系统101随后可以确定该预计资源消耗114不会触发另一个自动缩放规则,并继续执行第一候选自动缩放动作(动作340)。以此方式,计算机系统101可以查看给定自动缩放动作,通过预计该自动缩放动作的资源消耗来确定执行该自动缩放动作会触发其他自动缩放动作(即摇摆),以及如果不会引起摇摆则执行该动作。如果应用该自动缩放动作将引起摇摆,则该动作将被阻止。

在一些实施例中,第一自动缩放动作可包括从该指定云资源集合113中移除虚拟机,并且第二自动缩放动作可以包括向该指定云资源集合113添加虚拟机。因此,在这样的实施例中,就像第一自动缩放动作(移除虚拟机)被应用了一样来对预计资源消耗114进行预计。如果移除虚拟机不会触发另一自动缩放动作(添加虚拟机),那么第一动作可被应用。在某些情况下,自动缩放规则116被实现为使扩展规则优先于缩减规则。这样做是使系统或服务的健康优先于成本节省(例如,以较低的负载来运行多个CPU的成本)。

另外,在一些实施例中,第一自动缩放动作可被执行,但以减少的量来执行。例如,如果第一自动缩放动作指定要移除三个虚拟机,可仅移除一个虚拟机而不是三个。减少的量可以根据计算得到的如果第一自动缩放规则被完全应用的话会发生的预计资源消耗量114来确定。以减少的量来执行第一自动缩放动作可因此包括使用较少的虚拟机来进行第一自动缩放,或使用尺寸较小的缩减虚拟机。以此方式,可使用基于规则的缩放系统,但仍可通过预计应用给定规则的资源消耗并且如果该规则将触发摇摆则避免应用该规则来避免摇摆。相反,如果自动缩放规则不会触发其它自动缩放规则,则该自动缩放规则可被应用,且摇摆不会发生。因此,提供了防止自动缩放云资源时摇摆的方法、系统和计算机程序产品。

本文中描述的概念和特征可以其他具体形式来具体化,而不背离其精神或描述性特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

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