动态缩放云环境中的多级应用的制作方法
【专利摘要】在限定时间段内确定多级应用的预测工作负载。针对所预测的工作负载确定应用容量的改变。针对所述应用容量的变化动态选择缩放策略,其中所述缩放策略包括垂直缩放和水平缩放。
【专利说明】动态缩放云环境中的多级应用
【技术领域】
[0001]本发明总体上涉及云计算和与计算应用,并且更具体而言涉及缩放(scale)云计算环境中的应用。
【背景技术】
[0002]云计算通常称之为基于诸如广域网、英特网等计算网络可访问的基于服务器的计算资源。计算资源可以包括在被称之为云服务器的远程可访问服务器上执行的应用、数据存储等。在云环境中,所有处理和数据存储都可以在云服务器以及相关联存储设备上进行。因此,云计算资源的用户没必要在本地存储数据或执行正被利用的应用。
[0003]云计算资源通常易于受到适于用于给定要求或需要而影响,录入通过提供附加处理或存储资源。不过,由于置于云应用上的需求可以随时改变,因此有必要管理可获得的资源。如果可获得的资源对给定的需求不足时,云应用的性能就可能受到损害(compromise)。相反,如果可获得的云资源极大超出了该需求,则该资源可能就被浪费了,这导致了不必要的成本或损失了其中该资源可能已经被应用到其他需要的机会。对资源的需求可能非常迅速增加的爆发性活动,例如可能在几分钟的时间段内或几个小时的时间段内增长可能是很多倍或数量级的,可能会对云资源的管理带来许多挑战。
【发明内容】
[0004]在第一实施例中,一种缩放方法可以包括:通过计算设备,确定限定时间段内多级应用的预测工作负载。可以确定所述预测工作负载的应用容量的变化。针对所述应用容量的变化动态选择缩放策略。述缩放策略包括垂直缩放和水平缩放。
[0005]可以包括一个或多个下述特征。所述缩放策略包括实现多个执行所述多级应用的虚拟机。所述多个虚拟机的每一个具有通常等同地配置的资源分配。至少一个虚拟机实现为具有较低资源分配。如果所述应用容量的变化小于所述具有较低资源分配的虚拟机的剩余容量,则选择所述缩放策略可以包括垂直地将所述具有较低资源分配的虚拟机扩大到所述通常等同地配置的资源分配。如果所述应用容量的变化大于所述具有较低资源分配的虚拟机的剩余容量,则选择所述缩放策略可以包括垂直地将所述具有较低资源分配的虚拟机扩大到所述通常等同地配置的资源分配以及水平地缩放包括实现其资源分配低于所述通常等同地配置的资源分配的新虚拟机的应用。
[0006]动态选择缩放策略可以包括至少部分基于所预测工作负载连续选择缩放策略。确定预测工作负载可以至少部分基于历史工作负载需求。动态选择缩放策略可以包括缩放与所述多级应用的确定级相关联的资源。
[0007]根据另一种实现方式,一种计算机程序产品,包括计算机可读介质,其上存储有多个指令。当这些指令在被处理器执行时可使得处理器执行包括确定限定时间段内多级应用的预测工作负载的一些操作。该指令还可以使得处理器确定所述预测工作负载的应用容量的变化。可以针对所述应用容量的变化动态选择缩放策略,所述缩放策略包括垂直缩放和水平缩放。
[0008]可以包括一个或多个下述特征。所述缩放策略包括实现多个执行所述多级应用的虚拟机。所述多个虚拟机的每一个具有通常等同地配置的资源分配。至少一个虚拟机实现为具有较低资源分配。如果所述应用容量的变化小于所述具有较低资源分配的虚拟机的剩余容量,则用于选择所述缩放策略的指令能够可以包括用于垂直地将所述具有较低资源分配的虚拟机扩大到所述通常等同地配置的资源分配的指令。如果所述应用容量的变化大于所述具有较低资源分配的虚拟机的剩余容量,则用于选择所述缩放策略指令可以包括用于垂直地将所述具有较低资源分配的虚拟机扩大到所述通常等同地配置的资源分配以及水平地缩放包括实现其资源分配低于所述通常等同地配置的资源分配的新虚拟机的应用的指令。
[0009]用于动态选择缩放策略的指令可以包括用于至少部分基于所预测工作负载连续选择缩放策略的指令。确定预测工作负载可以至少部分基于历史工作负载需求。用于动态选择缩放策略的指令可以包括用于缩放与所述多级应用的确定级相关联的资源的指令。
[0010]根据本发明的另一个实现方式,一种系统可以包括处理器和与处理器连接的存储器体系结构。第一软件模块可由所述处理器和存储器体系结构执行。该第一软件模块配置为确定限定时间段内多级应用的预测工作负载。第二软件模块可由所述处理器和存储器体系结构执行。该第二软件模块配置为确定所述预测工作负载的应用容量的变化。第三软件模块可由所述处理器和存储器体系结构执行。该第三软件模块配置为针对所述应用容量的变化动态选择缩放策略,所述缩放策略包括垂直缩放和水平缩放。
[0011]可以包括一个或多个下述特征。所述缩放策略包括实现多个执行所述多级应用的虚拟机。所述多个虚拟机的每一个具有通常等同地配置的资源分配。至少一个虚拟机实现为具有较低资源分配。如果所述应用容量的变化小于所述具有较低资源分配的虚拟机的剩余容量,则第三软件模块可被配置为垂直地将所述具有较低资源分配的虚拟机扩大到所述通常等同地配置的资源分配。如果所述应用容量的变化大于所述具有较低资源分配的虚拟机的剩余容量,则第三软件模块可被配置为垂直地将所述具有较低资源分配的虚拟机扩大到所述通常等同地配置的资源分配以及水平地缩放包括实现其资源分配低于所述通常等同地配置的资源分配的新虚拟机的应用。
[0012]第三软件模块可被配置为至少部分基于所预测工作负载连续选择缩放策略。第一软件模块可被配置为至少部分基于历史工作负载需求确定预测工作负载。第三软件模块可被配置为缩放与所述多级应用的确定级相关联的资源。
[0013]根据另一个实现方式,一种缩放方法包括通过计算设备,确定限定时间段内多级应用的预测工作负载。确定所述预测工作负载的应用容量的变化。针对所述应用容量的变化动态选择缩放策略。所述缩放策略包括实现多个执行所述多级应用的虚拟机,其中所述多个虚拟机的每一个具有通常等同地配置的资源分配。所述缩放策略还可包括实现至少一个具有较低资源分配的虚拟机。
[0014]在下面的附图和描述中给出了一个或多个实现方式的细节。通过该描述、附图以及权利要求书将对其他特性更清楚。
【专利附图】
【附图说明】[0015]图1示意性描绘了与云计算环境相连的缩放处理。
[0016]图2是图1的缩放处理所执行的处理的流程图。
[0017]图3示意性描绘了与云计算环境相连的图1的缩放处理。
[0018]图4采用图形描绘了物理服务器的使用率、资源浪费率以及SLA成本的违背(breach)。
【具体实施方式】
[0019]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为方法、系统或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可用存储介质中的计算机程序产品的形式,该介质中包含计算机可读的程序代码。
[0020]可以采用适当的计算机可用或者可读介质。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可用或者可读存储介质(包括与计算机设备或客户电子设备关联的存储设备)例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0021]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0022]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0023]可以用面向对象程序设计语言来编写用于执行本发明操作的计算机程序代码,诸如Java、Smalltalk、C++等。用于实施本发明的操作的计算机程序代码还可以用常规的过程式程序设计语言编写一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0024]下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0025]也可以把这些计算机程序指令存储在计算机可读存储中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读存储中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
[0026]计算机程序指令也可以加载到计算机、其他可编程数据处理装置或其他设备上以便能够在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,从而产生即计算机实现的处理,使得在计算机或其他可编程数据处理装置执行的指令提供处理以便实现在流程图和/或框图的框中指定的功能/行为。
[0027]参见图1,其中显示了缩放处理10,其可以至少部分控制在云计算环境12中的资源分配。如图所示,云环境12可以包括硬件资源14和软件资源16。硬件资源14可以包括,但不限于,一个或多个服务器计算机(例如,服务器Si到sn)以及一个或多个存储设备(例如,存储设备dl到dn)。软件资源16可以包括一个或多个基于云的应用(例如,应用al到an)。而且应用al到an中的一个或多个可以包括多级(mult1-tier)应用。正如所理解到的,多级应用可以包括多个相互交互的模块和/或组件,或者可以包括多个离散的交互应用。例如,多级应用可以包括用户接口组件(例如,其可以生成和输出由客户Cl到Cn所浏览的显示)、应用组件(例如,其可以控制这些硬功的功能)、以及数据组件(例如其可以存储和检索被应用组件所利用的信息)。多级应用的其它实例可以包括具有不同功能的组件,并且因此前面的实例不应被认为是对本公开的限定。
[0028]服务器Si到sn的实例(例如其可以包括一个或多个处理器和一个或多个存储器架构体系,未示出)可以包括,但不限于,刀片(blade)服务器(诸如IBMBladeCenterPS704Express)或其他服务器计算机。存储设备dl到dn的实例可以包括但不限于硬盘驱动器、固态驱动器、光驱、随机存取存储器、只读存储器等等。服务器Si到sn每个都可以执行适当的操作系统,诸如例如Red Hatv Linux'其可以存储在存储设备dl到dn中的一个或多个上。(Red Hat是Red Hat公司在美国、其他国家或两者中的注册商标,而Linux是Linus Torvalds在美国、其他国家或两者中的注册商标)
[0029]尽管没有示出,但是云环境12可以包括附加的硬件和软件,其可以使得硬件资源14和软件资源16可以被一个或多个(客户Cl到Cn)客户机访问。这种附加的硬件和软件可以包括,但不限于,例如,切换器、桥接、万络服务器等,其可以使得客户Cl到Cn能够访问硬件资源14和/或软件资源16。此外,客户Cl到Cn可以通过一个或多个网络访问云环境,所述一个或多个网络包括,但不限于,英特网、局域网、广域网或其他计算机网络。客户Cl到Cn可以使用适当的计算设备访问云计算环境12执行各种软件,该适当的计算设备包括,但不限于,台式机、笔记本计算机、移动计算设备(例如,启用数据的蜂窝电话、笔记本、个人数字助理等),该各种软件诸如网络浏览器或应用专用软件。
[0030]还是参见图2,缩放处理10可以包括确定50限定时间段内多级应用的预测工作负载。缩放处理10还可以确定52用于预测工作负载的应用容量的改变。缩放处理10还可以动态选择54用于所述应用容量的变化的缩放策略。该缩放策略可以包括垂直缩放和水平缩放。
[0031]确定50限定时间段内多级应用的预测工作负载可以利用各种预测模型,例如其可能可以指出该限定时间段的工作负载。例如,该预测模型可以至少部分基于历史工作负载需求。例如,对于至少一些基于云的应用(例如应用al)而言工作负载需求可能趋向于以爆发性需求出现可能是已知的,在该爆发性需求中,用于应用al的工作负载需求在相当短的时间段内可以按照多倍或甚至多个数量级地增加。例如,应用al可以包括社交网络应用,其可以在工作日通常的末端看到爆发性需求。在这种实施例中,预测模型可以指出爆发性需求开始于一天的通常的具体时间。在其它实施例中,预测模型可以指出,例如,如果应用al的工作负载需求在最近的十五分钟内已经增加了 20%,则最终的工作负载需求很可能会在下一个小时上升800% (相对于初始的工作负载需求)。即,该预测模型可以包括至少部分基于工作负载需求的变化的速率的限定时间段内的统计学可能最终工作负载需求。此外,至少部分基于该预测模型,可知晓在限定时间段内对应用al的统计学上的可能最终工作负载需求。将可以理解到可以利用各种附加/可替换的预测模型,并且因此并不应将前面的实例认为是对本公开的限制。
[0032]还参见图3,在一个实施例中,预测模型可以通过预测器100而提供给缩放处理
10。预测器100可以包括可以评估传递给应用al的各种类型的请求的请求历史的组件(例如,其可以包括具有多种组件或模块的多级应用,和/或可以包括多个相互作用的应用),并且可以生成用于的预测工作负载、请求类型、应用级别等等统计请求预测模型,在一个图释的实施例中,预测器100可以使用多项式近似法利用基于时间系列分析的短期预测请求到达速率。将劣迹到可以等同地利用各种附加/可替换的分析方法。
[0033]与图3中所示的图释实例一样,预测器100可以接受来自数据仓库102的请求历史信息。在这种实例中,数据仓库102包括来自运行在云(例如,云环境12)中的一个或多个服务器(例如S1、s2、s3、s4)和应用(例如在所示实例中的应用al和a2)的被监测应用和系统参数(例如,其可以接收于一个或多个服务器,例如所示实例中的服务器S1、s2、s3、s4)的资料库。在应用(例如应用al)接收多个请求类型的情况下,数据仓库102可以录入在给定监测时间段(例如,一分钟间隔)内作用每个请求类型的请求的数量。此外,数据仓库102还可以累积包括与用于应用的服务等级协议(SLA)相关的参数。可被数据仓库102录入的系统参数的实例可以包括,但不限于,用于每个虚拟机(例如运行在应用al上的VM1、VM2、VM3以及VM4和运行在应用a2上的VM5、VM6、VM7和VM8)的资源权利(例如CPU或时间切片分配,以及RAM和/或盘空间分配),以及每个虚拟机的资源权利的利用程度。
[0034]至少部分基于在限定时间段内所确定50的预测工作负载,缩放处理10可以确定52用于预测工作负载.的应用容量的改变。如上所述,数据仓库102可以录入(log)多中请求类型,并且预测器100可以提供预测模型,其不仅可以包括请求速率的数量或变化,而且预测器100还可以提供指示请求的类型的预测模型。如将理解到的那样,不同类型的请求,如也可以理解到那个级别的应用可以处理不同类型的请求一样,可以影响应用(例如应用al)的必要容量。
[0035]与图3中所示的图释实例一样,缩放处理10可以至少部分基于从工作负载分类器104接收的数据确定52应用容量的改变。工作负载分类器104可以将工作负载分类为一组或多组预先创建的工作负载类别。因此,工作负载分类器104可以从数据仓库102接收用于应用的与工作负载混合相关的信息。用于应用的与工作负载混合相关的信息可以包括,但不限于,请求类型的当前分布。工作负载混合可以影响应用所要求的资源的数量和类型,以便分派(serve)具体数量的具有请求类型的给定分布的请求,因此,至少部分基于预测器100所提供的预测模型和工作负载分类器104所提供的工作负载混合(和/或根据预测模型的预测工作负载混合),缩放处理10可以确定52处理具有所预测的请求类型分布的所预测的即将到来的工作负载所必须的应用容量的改变。
[0036]至少部分基于与所确定50的预测工作负载相关联的所确定52的应用容量的改变,缩放处理10可动态选择54用于所述应用容量的变化的缩放策略。该缩放策略可以包括多级应用(例如,应用al)的垂直缩放和水平缩放。如在此所使用,垂直缩放可以包括修改执行应用的具体虚拟机(例如执行应用al的VMl)的资源分配。例如,增加容量的垂直缩放可以包括增加虚拟机的CPU权利(entitlement)(例如将该权利从0.5核增加到0.9核(core))、增加存储器权利(将RAM权利从RAM的2GB增加到RAM的4GB)、以及增减该具体虚拟机的其他资源权利。水平缩放可以包括创建一个或多个具有其自身资源分配的新虚拟机场合(instance),其中每个新的(以及任何先前存在的)虚拟机执行该应用(例如,应用al)。在水平缩放情形下,执行应用al的每个新虚拟机以及任何先前存在的虚拟机可以集中地执行应用al以便处理所预测的工作负载和提供必要的应用容量的改变。
[0037]所述动态选择54缩放策略包括,例如,指令虚拟化管理器106改变一个或多个执行应用(例如,应用al)的虚拟机(例如,VMl)的资源分配。此外/可选择地,虚拟化管理器106可以创建一个或多个可执行应用al的新虚拟机(例如,VM2、VM3、VM4)。虚拟化管理器106可以包括管理程序,诸如IBM PowerVM?,其可以支持在线、动态虚拟机尺寸改变(例如增加或减少CPU或存储器资源,而不会带来用于重新配置的VM下降)以及创建虚拟虚拟机场合和配置。
[0038]此外,缩放处理10可以实现必要的应用重新配置。例如,在缩放策略包括水平缩放的情况下,缩放处理10可以指令进口(admission)控制器/负载平衡器108更新主机列表等,使得经由网关110接收的请求可以分布到新例举(instantiate)的虚拟机(例如,VM2、VM3、VM4以及VMl)。这种应用重新配置可能对确保在执行该应用的多种多样的虚拟机之间分布负载是必要的,以便为该应用提供处理预测工作负载的容量。
[0039]在预测的爆发性工作负载情形下,用于处理预测工作负载的必要应用容量可能远超出当前所例举的虚拟机的容量,因此需要创建一个(或多个)新虚拟机来执行该应用。与本公开的一个方面一样,缩放处理10可以选择54通常能够平衡应用的新能和成本的缩放策略。与这个发那个面一样,以及如在图3的服务器簇中所示一样,缩放策略可以包括实现56多个执行多级应用的虚拟机,所述多个虚拟机的每一个可具有通常等同地配置的资源分配。至少一个虚拟机可以实现为具有较低资源分配。
[0040]例如,如下面所阐述的,执行应用al的虚拟机的实例可以具有在应用新能和成本之间提供所期望的平衡的配置(例如处理器、存储器等资源的分配)。为了下面描述的目的,这种配置可以采用术语称之为“最优”配置。不过,应该理解到,该术语“最优”仅仅是为了表达应用新能和成本之间的一种主观上的可期望的平衡,并且不因该被认为是对本公开的一种限制,因为在适当的情况下也可以采用其他性能与成本的平衡。对于给定的必要的、或期望的应用容量(例如,所确定52的应用容量的改变),所动态选择54的缩放策略可以实现多个最优配置的虚拟机(例如,多个具有通常等同地配置的资源分配的虚拟机)。由于用于所预测工作负载的所确定52的应用容量可能等于全体数量的最优配置虚拟机是不可能的,因此所动态选择54的缩放策略可以利用多个最优配置虚拟机来提供给所确定52的容量的主要部分,以及可以利用一个或多个其资源配置少于所述最优配置的虚拟机(例如,所述一个或多个虚拟机可以具有较低的CPU或存储器分配)。
[0041]与前面一样,对于用于所确定50的预测工作负载的所确定52的容量C,可以分布在M个虚拟机上。在所示的实施例中,M-1个虚拟机可以被最优配置为具有容量N。第M个虚拟机可以具有由下面的公式所给出的容量CM:
[0042]C-(M_1)*N
[0043]将可以理解到,在其他实施例中,一个以上的虚拟机的容量可以不同于最优配置虚拟机的容量,在这种实施例中,X个虚拟机的容量不同于所述最优容量。在这种实现方式中,X个虚拟机的累计容量可以由下面的公式给出:
[0044]C- (M - X) *N
[0045]在这种实施例中,X个虚拟机的累计容量可以根据设计规则和用户的偏好而以均等方式或不等方式划分。
[0046]与前面描述一致,并参见图3,假设初始应用al仅仅实现在单一虚拟机(VMl)上。而且,假设,基于所确定50的预测工作负载,缩放处理10可以确定52预测工作负载的容量的改变大于执行应用al的最优配置虚拟机的可获得容量的三倍。缩放处理10可以动态选择54实现56多个具有通常等同资源分配配置的虚拟机(例如VM1、VM2、VM3)(例如其可以一起集中地提供给用于所预测工作负载的所确定52的容量改变的主要部分)的缩放策略。此外,缩放处理10可以实现56具有较低资源分配的虚拟机VM4,例如,其可以提供所确定54的容量改变与由虚拟机VMl、VM2、VM3所集中提供的容量之间的差别。这样,VMl、VM2.VM3以及VM4可以一起提供调节(accommodate)所确定52的容量改变所必要的容量。这样,前述缩放策略可以包括垂直缩放58 (例如,将VMl的初始资源分配配置从初始次优配置增加到最优配置)并且也可以包括水平缩放60 (例如,创建另外的虚拟机场合VM2、VM3、VM4)。将理解到,尽管在该实例中只提到了四个虚拟机,但是这仅仅是为了方便解释和图示,虚拟机的数量、服务器的数量以及云计算环境的多样性可以有极大不同。
[0047]如下满将更详细阐述的那样,可以理解到,可以有与水平缩放和垂直缩放相关联的基于经济和性能的各种成本。基于最优配置虚拟机的概念,并且还参见图4,将理解到,可能存在与利用物理服务器资源不足或过度利用物理服务器资源相关联的成本。例如,如图所示,当服务器被运行在服务器上的应用(以及相关联虚拟机)被最小利用时,就存在相当高的资源浪费程度。即,对于给定的可获得资源,服务器可能被糟糕地利用。不过,增加物理服务器利用率(例如,用于增加由在该服务器上运行的应用所利用的资源的垂直缩放)可能会增加在该服务器上运行的其他应用的资源内容的风险,可能有必要将其他应用的一个或多个场合从一个物理服务器迁移到另一个服务器,并且可能引发运行在该服务器上的那些应用的SLA违例(breach)。根据一个实施例,理想的服务器利用率通常可以是相对于物理服务器理用于的资源浪费曲线和SLA成本的违背曲线的交叉点。因此,理想的是,向物理服务器加载用于获得在该交叉点处的物理服务器利用率的最大数量。
[0048]考虑到上面情况,缩放处理10可以确定例举新虚拟机以便在分离服务器执行给定应用(例如应用al)的另一个场合(即水平缩放应用al)和增加执行应用al的现有场合的虚拟机的资源分配(垂直缩放应用al,这会导致物理服务的利用率超出资源浪费曲线和SLA成本违背曲线的交点)的相对成本。缩放处理10可以至少部分基于成本模型112来确定与水平缩放应用al和垂直缩放应用al相关联的成本。
[0049]除了与超出上述交叉点的利用物理服务器相关联的成本,将理解到,垂直缩放可能具有额外的实际限制和成本。例如,并且如上所述,垂直缩放应用al的场合(例如增加分配给运行应用al的场合的虚拟机的资源)可能要求迁移其他应用以便释放用于垂直缩放应用al所必需的资源(即,为了将这种资源分配给运行应用al的虚拟机)。因此,可以达到垂直缩放的程度,在该程度,添加更多的资源(例如附加的CPU或存储器资源)可能不会导致应用的增加的容量,和/或可以实现一种可以实现减小(diminished)返回的状态,在该状态中,由于物理服务器、应用架构或者其他约束所施加的限制,用于虚拟机的资源的递增产生在性能或应用容量方面的减少的递增(例如,应用处理请求的能力)。根据实施例,实现每分配资源的性能的一些最大值的点可以利用为最优虚拟机容量。当然,其他配置可以考虑其他因素,并且可以基于这种性能对成本平衡实现其他最优容量虚拟机配置。
[0050]此外,各种成本可以与该应用的水平缩放相关联(例如例举在附加服务器上运行应用的新虚拟机)。例如,与垂直缩放相比,水平缩放可能相对慢(例如需要例举和配置新虚拟机,更新网关中的主机列表等等)。因此,水平缩放可以有相关联的性能,因为在例举和配置附加虚拟机所需的时间期间,该应用(运行在现有虚拟机上)可能没有容来来处理所有到来的请求。此外,其他成本,诸如软件许可成本、与新例举的虚拟机相关联的资源成本、分段存储等等,可能也与水平缩放相关联。这些成本可以通过例如成本模型112而提供给缩放处理10。
[0051]与前面所述一致,如果所述应用容量的变化小于所述具有较低资源分配的虚拟机的剩余容量,则选择缩放策略可以包括通过垂直缩放所述具有较低资源分配的虚拟机来垂直缩放58所述应用。在上述实例中,虚拟机(例如,VM4)可以包括小于最优资源分配的资源分配。也就是说,更多服务器资源可以在所期望的成本对性能的平衡内被虚拟机所利用。因此,动态选择54缩放策略可以包括垂直缩放58VM4以便调节附加容量。垂直缩放58所述虚拟机可以包括将虚拟机垂直扩展到最优配置。附加地/可替代地垂直缩放58所述虚拟机可以包括缩放该虚拟机到高于或低于所述最优配置的资源分配配置。
[0052]此外,如上所述,缩放处理10可以确定52与预测工作负载相关联的容量的改变。确定52与预测工作负载相关联的容量的改变可以至少部分基于由资源模型114所提供的信息。资源模型114可以包括简档驱动资源模型,其可以表示在各种给定缩放配置下使用的资源。例如,资源模型114可以包括与资源有关的信息(例如,CPU资源、存储器等等),该信息是对于每秒的请求或操作的给定输出量或数量所需要的。该资源模型至少部分可以基于数据仓库102所录入的信息而根据经验导出。附加地/可替换地,资源模型114可以包括统计学模型,其可以至少部分基于数据仓库102所录入的信息。
[0053]而且,如果所述应用容量的变化大于所述具有较低资源分配的虚拟机的剩余容量,则选择54缩放策略可以包括水平缩放60该应用。如上所述,水平缩放60所述应用可以包括创建执行该应用的(例如,应用al)虚拟机的附加场合(例如,图3的图释实施例中的VM2、VM3、VM4)。同样如上所述,该应用的水平缩放60可以包括添加额外的虚拟机,其可以具有不同的资源分配水平(例如最优缩放的虚拟机VM2、VM3以及次最优缩放的VM4)。
[0054]动态选择54缩放策略可以包括至少部分基于预测工作负载连续选择62缩放策略。也就是说,缩放处理10可以选择54用于改变条件的缩放策略。例如,至少部分基于所确定50的预测工作负载(例如,其可以随时间改变)以及对应的所确定52的预测工作负载的应用容量的改变,缩放处理10可以,例如随着预测工作负载改变,而改变所选择54的缩放策略。因此,缩放处理10可以随着条件和预测工作负载的改变而连续地并适应性地选择54缩放策略。连续地选择62缩放策略可以包括对所选择的缩放策略作出行进中实时的调节。附加地/可替换地,连续选择62缩放策略可以包括间歇地(例如,以预定的时间间隔、或者基于条件的改变,诸如应用性能或预测工作负载)选择54缩放策略(包括调节所选择的通常策略)。
[0055]动态选择54缩放策略可以包括缩放64与所述多级应用的所确定的级别相关联的资源。例如,如上所述,应用al可以包括多个模块或组件(例如,其可以包括多个相互作用的应用)。应用al可以接收多个请求类型,其可以要求将由应用al的不同级别承担的处理或动作。而且,将由不同级别承担的处理或动作可以利用不同的资源(例如,有些处理或动作可以需要更多RAM,而其他处理或动作可能需要更大的CPU分配),和/或由可以由不同虚拟机执行的模块或组件(例如,包括一个或多个相互作用的应用)来执行。因此,动态选择54缩放策略可以包括,至少部分基于多级应用的不同级别的所确定50的预测工作负载和所确定52的应用容量的改变,缩放64与多级应用的所确定的级别相关联的资源(诸如CPU分配、RAM分配或单个虚拟机或成组虚拟机)。在有些情况下,与多级应用的所有级别相关联的资源可以被缩放64,但是该缩放(例如,根据缩放程度、虚拟机配置、所分配的资源、缩放类型的类型和成簇,诸如垂直和水平缩放等)对于多级应用的不同级别而有所不同。
[0056]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0057]此处所使用的术语仅仅是为了描述具体实施例,并不是为了限定本发明。如在此所使用的单数形式“一”、“一个”以及“该”和“所述”也意图包含有复数形式,除非在上下文中清楚表示不同情况。还应该理解到,术语“包括”和/或“包含”在被用于本发明时,其指明了所声明特征、整数、步骤、操作、元件和/或组件的存在,但是并不排除出现或增加一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组合。
[0058]在下面权利要求书中的所有装置或步骤加功能元件的对应结构、材料、动作以及等同方式意图包括用于与所具体请求保护的其他声称的元件一起执行该功能的任何结构、材料或行为。为了图释和描述的目的已经给出了本发明的说明书,但是其并不是意图以所披露的方式穷尽或限制本发明。对本领域普通技术人员而言,在不脱离本发明的范围和精神的情况下,很清楚将会有很多修改方式和变化形式。选择和描述该实施例是为了更好解释本发明的原理和实际应用,并且使得本领域普通技术人员中的其他人能够理解用于各种实施例的本发明,因为各种实施例适于所想到的特定用途。
[0059]因此,已经详细并参照实施例描述了本申请的方法,清楚的是,在不脱离附后权利要求书所限定的本发明的范围的情况下可以有修改形式和变化形式。
【权利要求】
1.一种缩放方法,包括: 通过计算设备,确定限定时间段内多级应用的预测工作负载; 通过计算设备,确定所述预测工作负载的应用容量的变化;以及 通过计算设备,针对所述应用容量的变化,动态选择缩放策略,所述缩放策略包括垂直缩放和水平缩放。
2.根据权利要求1所述的方法,其中,所述缩放策略包括实现多个执行所述多级应用的虚拟机和实现至少一个具有较低资源分配的虚拟机,所述多个虚拟机的每一个具有通常等同地配置的资源分配。
3.根据权利要求2所述的方法,其中,如果所述应用容量的变化小于所述具有较低资源分配的虚拟机的剩余容量,则选择所述缩放策略包括垂直地将所述具有较低资源分配的虚拟机扩大到所述通常等同地配置的资源分配。
4.根据权利要求3所述的方法,其中,如果所述应用容量的变化大于所述具有较低资源分配的虚拟机的剩余容量,则选择所述缩放策略包括垂直地将所述具有较低资源分配的虚拟机扩大到所 述通常等同地配置的资源分配以及水平地缩放包括实现其资源分配低于所述通常等同地配置的资源分配的新虚拟机的应用。
5.根据任意前述权利要求所述的方法,其中,动态选择缩放策略包括至少部分基于所预测工作负载连续选择缩放策略。
6.根据权利要求1-4中任意一个所述的方法,其中,确定预测工作负载至少部分基于历史工作负载需求。
7.根据权利要求1-4中任意一个所述的方法,其中,动态选择缩放策略包括缩放与所述多级应用的确定级相关联的资源。
8.一种计算机程序产品,包括计算机可读介质,其上存储有多个指令,这些指令在被处理器执行时使得处理器执行一些操作,这些操作包括: 确定限定时间段内多级应用的预测工作负载; 确定所述预测工作负载的应用容量的变化;以及 针对所述应用容量的变化,动态选择缩放策略,所述缩放策略包括垂直缩放和水平缩放。
9.根据权利要求8所述的计算机程序产品,其中,所述缩放策略包括实现多个执行所述多级应用的虚拟机和实现至少一个具有较低资源分配的虚拟机,所述多个虚拟机的每一个具有通常等同地配置的资源分配。
10.根据权利要求9所述的计算机程序产品,其中,如果所述应用容量的变化小于所述具有较低资源分配的虚拟机的剩余容量,则用于选择所述缩放策略的指令包括用于垂直地将所述具有较低资源分配的虚拟机扩大到所述通常等同地配置的资源分配的指令。
11.根据权利要求10所述的计算机程序产品,其中,如果所述应用容量的变化大于所述具有较低资源分配的虚拟机的剩余容量,则用于选择所述缩放策略的指令包括用于垂直地将所述具有较低资源分配的虚拟机扩大到所述通常等同地配置的资源分配以及水平地缩放包括实现其资源分配低于所述通常等同地配置的资源分配的新虚拟机的应用的指令。
12.根据任意前述权利要求所述的计算机程序产品,其中,用于动态选择缩放策略的指令包括用于至少部分基于所预测工作负载连续选择缩放策略的指令。
13.根据权利要求8-11中任意一个所述的计算机程序产品,其中,确定预测工作负载至少部分基于历史工作负载需求。
14.根据权利要求8-11中任意一个所述的计算机程序产品,其中,用于动态选择缩放策略的指令包括用于缩放与所述多级应用的确定级相关联的资源的指令。
15.—种系统,包括: 处理器; 与处理器连接的存储器体系结构; 可由所述处理器和存储器体系结构执行的第一软件模块,该第一软件模块配置为确定限定时间段内多级应用的预测工作负载; 可由所述处理器和存储器体系结构执行的第二软件模块,该第二软件模块配置为确定所述预测工作负载的应用容量的变化;以及 可由所述处理器和存储器体系结构执行的第三软件模块,该第三软件模块配置为针对所述应用容量的变化,动态选择缩放策略,所述缩放策略包括垂直缩放和水平缩放。
16.根据权利要求15所述的系统,其中,所述缩放策略包括实现多个执行所述多级应用的虚拟机和实现至少一个具有较低资源分配的虚拟机,所述多个虚拟机的每一个具有通常等同地配置的资源分配。
17.根据权利要求16所述的系统,其中,如果所述应用容量的变化小于所述具有较低资源分配的虚拟机的剩余容量,则被配置为选择所述缩放策略的第三软件模块还被配置为垂直地将所述具有较低资源分配的虚拟机扩大到所述通常等同地配置的资源分配。
18.根据权利要求17所述的系统,其中,如果所述应用容量的变化大于所述具有较低资源分配的虚拟机的剩余容量,则被配置为选择所述缩放策略的第三软件模块还被配置为垂直地将所述具有较低资源分配的虚拟机扩大到所述通常等同地配置的资源分配以及水平地缩放包括实现其资源分配低于所述通常等同地配置的资源分配的新虚拟机的应用。
19.根据任意前述权利要求所述的系统,其中,被配置为动态选择缩放策略的第三软件模块还被配置为至少部分基于所预测工作负载连续选择缩放策略。
20.根据权利要求15-18中任意一个所述的系统,其中,被配置确定预测工作负载的第一软件模块被配置为至少部分基于历史工作负载需求确定预测工作负载。
21.根据权利要求15-18中任意一个所述的系统,其中,被配置为动态选择缩放策略的第三软件模块还被配置为缩放与所述多级应用的确定级相关联的资源。
22.—种缩放方法,包括: 通过计算设备,确定限定时间段内多级应用的预测工作负载; 通过计算设备, 确定所述预测工作负载的应用容量的变化;以及 通过计算设备,针对所述应用容量的变化,动态选择缩放策略,所述缩放策略包括实现多个执行所述多级应用的虚拟机和实现至少一个具有较低资源分配的虚拟机,所述多个虚拟机的每一个具有通常等同地配置的资源分配。
【文档编号】G06F9/50GK104025055SQ201280065441
【公开日】2014年9月3日 申请日期:2012年11月14日 优先权日:2011年12月30日
【发明者】G.B.达斯古普塔, S.杰拉, A.弗马, B.维斯瓦纳坦 申请人:国际商业机器公司