在云中基于多维用户请求模式快速供应虚拟的制造方法

文档序号:6496250阅读:189来源:国知局
在云中基于多维用户请求模式快速供应虚拟的制造方法
【专利摘要】一种预供应虚拟机实例的方法、装置和制造品。所述方法包括基于至少一个虚拟机请求的历史数据导出至少一个虚拟机请求的加权函数以创建每个请求的加权虚拟机请求;捕捉至少一个请求到达间隔模式,并且将所述至少一个模式应用于所述至少一个加权请求以创建所述至少一个加权请求的优先次序;以及基于所述至少一个加权请求的所述优选次序预供应至少一个虚拟机映像实例。
【专利说明】在云中基于多维用户请求模式快速供应虚拟机
【技术领域】
[0001]本发明的实施例一般地涉及信息技术,更具体地说,本发明涉及虚拟机技术。
【背景技术】
[0002]云技术的不断采用引发了对更有效地提供云服务的关注。云服务的一项特征就是为用户供应计算实例的能力。服务器实例供应需要经历复杂的工作流。因此,优化该工作流中的任何步骤都可能缩短周转时间。
[0003]基础设施即服务(IaaS)或平台即服务(PaaS)的提供已具有很好的发展势头。这些服务的主要促成者为云体系结构。云的一个卖点是按需获取具有用户指定配置的虚拟服务器。尽管按需服务是指根据用户的请求交付服务器,但是就用户满意度而言,供应速度也很重要。目前,多数公共云提供者需要数分钟的时间来使虚拟服务器上线。对于使企业(包括用户桌面)虚拟化的理想目标而言,现有的数分钟服务器供应时间太慢。假设这样一种场景:其中一组员工的所有桌面都是云中的实例,并且每个用户每天释放实例,则理想的服务器供应时间至少应该与个人桌面计算机的启动时间匹配。
[0004]如上所述,云中的服务器供应遵循复杂的工作流。该工作流从用户请求特定的映像类型开始;然后在映像储存库中搜索映像并将映像传输到计算节点。然后连接远程存储空间,最后使具有必要的(通常是用户指定的)配置的服务器上线。这样,缩短服务器供应时间的技巧在于缩短在工作流中所花费的时间,或者提前为用户准备服务器实例。尽管每个云提供者专注于优化其供应工作流,但是这些技术依赖于特定体系结构。因此,需要使用预测技术来预测供应请求的到来,从而允许云先验地为用户设置服务器。

【发明内容】

[0005]在本发明的一方面,提供了在云中基于多维用户请求模式快速供应虚拟机(VM)的技术。用于预供应虚拟机实例的示例性计算实现的方法可以包括以下步骤:基于至少一个虚拟机请求的历史数据导出该至少一个虚拟机请求的加权函数以创建每个请求的加权虚拟机请求;捕捉请求的至少一个到达间隔模式,并且将所述至少一个模式应用于所述至少一个加权请求以创建所述至少一个加权请求的优先次序;以及基于所述至少一个加权请求的所述优选次序预供应至少一个虚拟机映像实例。
[0006]本发明的另一方面或其要素可以采用制造品的形式实现,所述制造品有形地包含计算机可读指令,当被实现时,所述计算机可读指令导致计算机执行本文中所述多个方法步骤。此外,本发明的另一方面或其要素可以采用装置的形式实现,所述装置包括存储器以及至少一个与所述存储器相连并且可运行以执行所述方法步骤的处理器。更进一步地,本发明的另一方面或其要素可以采用用于执行此处描述的方法步骤或其要素的装置的形式实现;所述装置可以包括:(i)硬件模块;(ii)软件模块;或者(iii)硬件模块和软件模块的组合;(i)-(iii)中的任一项实现此处描述的特定技术,并且所述软件模块存储在有形的计算机可读存储介质(或多个此类介质)中。[0007]通过结合附图阅读下面对本发明的示例性实施例的详细描述,本发明的上述以及其它目标、特征和优点将变得显而易见。
【专利附图】

【附图说明】
[0008]图1是示出根据本发明的实施例用于供应用户请求的虚拟机(VM)的上下文图的图;
[0009]图2是示出根据本发明的实施例用于服务器供应的云体系结构的图;
[0010]图3是示出根据本发明的一方面的示例性实施例的框图;
[0011]图4是示出根据本发明的实施例的用于预供应虚拟机实例的技术的流程图;以及
[0012]图5是其上可实现本发明的至少一个实施例的示例性计算机系统的系统图。
【具体实施方式】
[0013]如此处描述的那样,本发明的一方面包括在云环境中快速供应虚拟机。本发明的一个或多个实施例包括通过预供应所选映像模板的服务器实例来最小化或缩短提取和展开映像的时间。实际上,映像先验地进行缓存,从而允许系统更快得多地基于缓存的映像交付服务器。因此,本发明的一方面包括在预供应服务器时使用可用的基础设施,而不会给传入请求带来额外的延迟。
[0014]本发明的一个或多个实施例包括采用使用预取映像占用计算节点中未用空间的策略,其方式是通过观察请求到达的若干特性(例如,映像的流行度)并在一段短时间上分组对映像的请求。此外,如此处使用的,术语缓存和预供应可以互换地使用来指先验地根据虚拟映像模板创建服务器实例的概念。
[0015]例如,考虑以下场景。当用户从云请求新的虚拟机(VM)时,在供应VM方面存在延迟。延迟主要是由于从储存库中选择映像,以及在物理主机上解压缩映像所造成的。另外考虑相同的用户可能不断返回请求相同的映像。因此,本发明的一个方面包括缩短为用户供应VM所花费的时间。
[0016]图1是示出根据本发明的实施例用于供应用户请求的虚拟机(VM)的上下文图的图。作为说明,图1示出用户102、云内供应的VM104和云106。云执行步骤108至114。步骤108包括识别用户请求。步骤110包括在映像储存库中搜索请求。步骤112包括将映像传输到主机,步骤114包括启动映像。映像启动包含基于模板映像启动服务器实例,但是不包含任何用户特定的配置,例如网络地址、软件配置等。
[0017]如此处描述的,如果重复地请求相同的映像,则本发明的一方面包括先占地供应此映像以节省从储存库提取的时间。另外,如果对映像标识(ID)的请求爆发式(in bursts)到达,则本发明的一方面包括通过预供应预期映像标识的多个实例来处理爆发。进一步地,如果在对映像标识的实例请求的到达中存在一种模式,则本发明的一个或多个实施例包括利用该模式优先处理非常可能到达的映像标识的预供应。
[0018]作为说明,考虑在此处使用的以下变量:
[0019]C=可在缓存/预供应清单中可保存的实例数。
[0020]T=用于分析模式的历史窗口。
[0021]B=对映像类型的爆发式请求。[0022]E=到达自当前时间的时间间隔。
[0023]因此,本发明的一个实施例包括使用频率来排列ID的次序:f (对ID的请求数/请求总数)。此外,可以为更近请求的ID赋予更大的重要性:R=l-E/T。如此处所述的,可以有爆发式请求。本发明的一方面使用历史中的爆发信息调整对于ID的缓存项数目的大小。因此,W=min (f*R*C,B),其中B是对映像ID的最大爆发,w是要在缓存中保存的数量。
[0024]由于“w”可以是浮点数,因此简单的舍入可导致超过缓存大小。有多种填充缓存的方法,例如对值进行向下取整(floor)运算,使用概率性舍入技术,其中基于与元素的分数值成比例的概率来舍入值等。最终目标是确保“w”值全部为整数,并且不超过总可用缓存大小。如果可用,则ID的到达间隔分布也用于计算ID的到达概率以对其进行预供应。概率值用于对存储ID的重要性进行排序。到达概率较高的ID被选为在具有低概率的ID之前放入缓存中。
[0025]另外如在此详细的,尽管现有的缓存方法假设缓存中仅有一个实例,但是本发明的一个方面包括供应映像ID的多个实例,因此可能出现这样的需要。当缓存命中时,缓存项被消耗,必须重新填满。进一步地,如在此描述的,预测新的缓存组成考虑到达的频率和新近度、爆发的性质、以及到达的到达间隔模式。
[0026]本发明的一个方面的预供应技术可以包括以下内容。用于缓存映像的可用空间可以根据可用的总基础设施和传入请求负荷来变化。在每个请求到达时,为了供应新实例或删除现有实例,本发明的一个实施例包括计算给定可用空间下最适当的缓存组成。为了触发由缓存策略计算的映像的预供应,系统必须具有可用的线程资源来处理请求。如果存在未决的用户供应或删除请求,则可以使用户请求的优先级高于任何与预供应相关的活动。
[0027]因此,考虑以下符号以及对多个缓存策略的后续阐述,可应用这些缓存策略以处理云中的用户请求到达中可存在的观察。
[0028]R=给定时间窗口内对新映像实例的用户请求数。
[0029]I=用于在给定时间窗口内创建R个请求的映像模板数。
[0030]4」=1,如果第i个请求针对模板j ;否则为O。
[0031]C=可保存在预供应清单内中的最大映像实例数。
[0032]一种可用的缓存技术被称为最经常使用(MFU)。在此技术中,考虑映像模板的流行度。如果映像类型的请求频率大于一个或多个其他映像类型,则此缓存技术将分配该映像的更多实例。下面定义了计算映像模板的相对重要性(用Wi表示)的公式:
[0033]Wi: - Σ f ^ j ^ Rfij/ ^ I ^ i ^ I Σ I ^ j ^ Rfjj ⑴
[0034]其中分子基本是对应于给定模板i的请求总数,而分母是过去的固定窗口内的总请求数R。历史窗口可根据在当前时间之前的固定时间间隔中到达的请求或者简单地根据当前时间之前到达的固定请求数来选择。计算Wi之后,此方法计算要放入缓存中的每个映像模板的实例数,如下所示:
[0035]Ci=Wi=KC (2)
[0036]请注意,Ci包括实数,并且可必须进行舍入,如此处进一步描述的那样。
[0037]另一缓存技术被称为最近使用(MRU)。MFU方法假设用于不同模板的用户请求到达分布是固定的。但是,如描述的那样,例如在图2中,对于若干模板,用户可能在某一时间之后停止请求映像模板。也就是说,请求到达分布可以改变。如果对映像模板的请求距离现在已经非常久远,则它被再次请求的概率可能非常低。MRU机制通过衰减在较早时间出现的实例的贡献,来调整与映像模板关联的权重。
[0038]存在多种衰减该值的方法。例如,一种朴素(naive)的方法包括与自实例到达以来经过的时间成比例地减小该值。在又一方法中,用户可以决定为新近的映像类型赋予极高的重要性,其假设映像类型非常快地被停止使用。
[0039]作为说明,将A(x,y)定义为衰减函数,该函数例如可定义为:A(x, y) =y*exp (_x)。衰减权重w/是方程式1的修改的表达式,如下所示:
[0040]W1':= Σ 1≤J≤EA(j, fij) ΣΣ 1≤J≤EA(j, fij) (3)
[0041]上述新的权重可在方程式(2)中使用以计算要保存在缓存中的映像模板的实例数。
[0042]任何缓冲填充策略的一方面是每当新项进入时,它可从缓存中驱逐某一项。对于每个未使用而被驱逐的项,将要付出供应它的成本。因此,需要仔细地填充缓存。在上述步骤中,策略包括与所计算的权重成比例地填充缓存(请参阅方程式(2))。在爆发调整步骤,本发明的一方面包括检查映像模板在过去看到的最大爆发。对于映像模板的最大爆发Bi被用于限制要放入缓存中的对于模板的项数。下面的公式根据方程式(2)改进,如下所示:
[0043]爆发调整的Ci=Hiin (Wi*C, Bi) (4)
[0044]爆发调整帮助识别可在足够小的时间间隔中请求的实例数。本发明的一个实施例可以定义足够小的时间间隔作为在针对缓存供应实例时采取的平均时间。这种技术在减小删除数方面非常有效,因为它尝试预测可被请求的模板实例数。
[0045]此外,本发明的一方面包括阻止碎片(fragmentation)。方程式(2)或方程式(4)中的数目Ci是实数,因此必须被转换为整数。在该过程中,某些映像类型不能在缓存中取得位置,而另一些可能取得更多位置。
[0046]根据数学舍入的定义,朴素的舍入机制可以使用简单的舍入机制。但是,这样会导致EiCi超过C (缓存中的最大项数)。舍入的另一可能性涉及带有容量约束的随机化的舍入的概念,其中每个映像模板计数中的“误差”与缓存策略建议的相比得到最小化/减小。例如,如果缓存策略决定放置三个映像模板,其中它们的实例计数为1.7,2.6和5.7,其中总缓存大小为10个实例,则此机制将返回2、2和6,而一共具有10个缓存项的简单数学舍入将为1、3和6。需要指出,此机制中的误差为1.1,而简单数学舍入中的误差为1.4。如果存在大量映像模板,则此机制也能最大化可被选为保存在缓存中的模板数。
[0047]图2是示出根据本发明的实施例用于服务器供应的云体系结构的图。作为说明,图2示出云体系结构206的概览,其包括计算节点208、映像储存库210和存储区域网络(SAN)存储212。用于供应和删除实例的用户请求202由云供应引擎204接收,该引擎在云基础设施206中触发工作流。该工作流可以包括以下内容。
[0048]用户请求202可以具有不同的类型,例如供应服务器,删除服务器等。供应引擎204分析请求以识别请求类型。当收到供应请求时,供应引擎204与映像储存库210进行对话以查找适当的映像模板。然后将映像模板提取到一个云计算节点208,该计算节点通常具有与其相连的SAN存储212。该存储还可以是本地存储。需要具有足够的可用空间来容纳完整的映像模板,从而一旦从映像储存库提取映像模板时,便可存储该模板。在将完整的映像模板文件提取到计算节点之后,便可启动该映像模板文件。[0049]踪迹(trace)提供每个请求从请求到达至请求处理完成所花费的时间。这在此被称为供应时间,其包括请求可能已在供应引擎队列中排队的时间。实际处理时间(从储存库提取映像并展开的时间)不包括排队时间。由于关注点在于处理时间分析,因此可以假设在请求到达系统之后,立刻具有可能无限个线程可用于处理该请求。
[0050]本发明的一个实施例的缓存系统通过引入表示预供应活动的事件来建模。每个到达请求触发缓存组成的计算,并且判定哪些项必须被驱逐,以及被插入缓存。该活动使用缓存删除和缓存插入事件建模。为这些活动所花费的时间可从分布模型中提取或者被假设为恒定持续时间活动。
[0051]图3是示出根据本发明的一方面的示例性实施例的框图。作为说明,图3示出事件产生器模块302、事件处理器模块304、web数据库306、web数据提取器模块308和历史数据模块310。事件产生器模块302包括请求拦截器,该拦截器分析请求来检测被请求的映像模板。如果被请求的映像模板位于预供应VM组中,则赋予用户立即访问实例的权限。否贝1J,将请求转发到Tivoli服务自动化管理器(TSAM)进行处理。TSAM遵循其通常工作流以在映像储存库中检查映像模板,然后提取该模板以创建服务器实例。
[0052]进一步地,图3示出预供应清单管理器模块312,该模块包括缓存填充管理器模块314、缓存清空管理器模块316和预测器(SPSS)模块318。此外,图3示出预供应VM的数据库320。另如图3所示,步骤351包括将请求插入预供应系统,步骤352包括分析请求的历史,步骤355包括计算将来的缓存组成,且步骤356包括触发从映像储存库预取映像模板并重新填充缓存。另外,步骤353包括从数据库取出已处理的请求信息,步骤354包括过滤相关数据以用于缓存预测逻辑。
[0053]图4是示出根据本发明的实施例用于预供应虚拟机实例的技术的流程图。步骤402包括基于至少一个虚拟机请求的历史数据导出至少一个虚拟机请求的加权函数以创建每个请求的加权虚拟机请求。此步骤例如可使用历史数据模块执行。历史数据可以包括对于映像类型的用户请求到达的频率数据、流行度数据、新近度等。此外,导出虚拟机请求的加权函数可以包括赋予比旧请求更近到达的请求以优先权。
[0054]此外,基于至少一个虚拟机请求的历史数据导出虚拟机请求的加权函数包括确定一种度量来以递减的到达概率次序排列映像类型,以及基于自对映像类型的上一请求以来经过的时间计算映像类型将来到达的条件概率。
[0055]步骤404包括捕捉至少一个请求到达间隔模式,并且将该至少一个模式应用于至少一个加权请求以创建至少一个加权请求的优先次序。此步骤例如可以使用预供应清单管理器模块执行。捕捉请求到达间隔模式包括分析用户请求历史日志。
[0056]步骤406包括基于至少一个加权请求的优选次序预供应至少一个虚拟机映像实例。此步骤例如可以使用预供应清单管理器模块执行。基于至少一个加权请求的优先次序预供应至少一个虚拟机映像实例包括以至少一个预取映像占用计算节点中的未用空间并在一段时间上分组对映像的请求。
[0057]图4所示的技术可以额外地包括通过识别对应于请求的映像,在预供应映像储存库中识别该映像,将该映像传输到主机,以及启动该映像,来对虚拟机请求做出响应。此外,本发明的一个或多个实施例包括使用来自至少一个虚拟机请求的历史数据中的爆发信息计算要在缓存中维护的虚拟机映像实例数。计算要在缓存中维护的虚拟机映像实例数可包括使用舍入法计算实例计数的整数值。
[0058]如此处描述的那样,图4所示的技术也可包括提供一种系统,其中该系统包括独立软件模块,每个独立软件模块包含在有形的计算可读、可记录存储介质中,例如,所有这些模块(或它们的任何子集)可以位于同一介质上,或者每个模块可以位于不同的介质上。这些模块可以包括图中所示的部分或全部组件。在本发明的一方面,这些模块包括事件处理器模块、web数据提取器模块、历史数据模块、预供应清单管理器模块、缓存填充管理器模块、缓存清空管理器模块和预测器(SPSS)模块,这些模块例如可以在硬件处理器上执行。然后可以使用上述在硬件处理器上执行的独立系统软件模块执行所述方法步骤。进一步地,计算机程序产品可以包括有形的计算机可读、可记录的存储介质,其具有适合于被执行来实现此处描述的至少一个方法步骤(包括为系统供应独立软件模块)的代码。
[0059]此外,图4所示的技术可通过计算机程序产品实现,该计算机程序产品可以包括存储在数据处理系统中计算机可读存储介质内的计算机可用程序代码,其中计算机可用程序代码通过网络从远程数据处理系统下载。另外,在本发明的一方面,计算机程序产品可以包括存储在服务器数据处理系统中计算机可读存储介质内的计算机可用程序代码,其中计算机可用程序代码通过网络下载到远程数据处理系统,从而与远程系统的计算机可读存储介质结合使用。
[0060]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0061]本发明的一方面或其原理可以采用装置的形式实现,所述装置包括存储器以及至少一个与存储器相连并且可运行以执行示例性方法步骤的处理器。
[0062]此外,本发明的一方面可以使用在通用计算机或工作站上运行的软件。现在参考图5,此类实现例如可采用处理器502、存储器504和例如由显示器506和键盘508形成的输入/输出接口。如在此使用的,术语“处理器”旨在包括任何处理设备,例如包括CPU (中央处理单元)和/或其它形式的处理电路的处理设备。进一步地,术语“处理器”可以指示一个以上的单独处理器。术语“存储器”旨在包括与处理器或CPU关联的存储器,例如,RAM(随机存取存储器)、ROM (只读存储器)、固定存储器设备(例如,硬盘驱动器)、可移动存储器设备(例如,软盘)、闪存等。此外,如在此使用的,短语“输入/输出接口”旨在例如包括用于将数据输入处理单元的装置(例如,鼠标),以及用于提供与处理单元关联的结果的装置(例如,打印机)。处理器502、存储器504和诸如显示器506和键盘508之类的输入/输出接口例如可以通过作为数据处理单元512 —部分的总线510互连。例如通过总线510的适当的互连还可以提供给网络接口 514,例如网卡,可提供网卡来与计算机网络相接口,该互连还可以提供给媒体接口 516,例如软盘或CD-ROM驱动器,可以提供该驱动器来对媒体518相接□。
[0063]因此,包括用于执行此处描述的本发明的方法的指令或代码的计算机软件可以存储在关联的存储器设备(例如,ROM、固定的或可移动的存储器)内,且当准备使用时,部分或全部地被加载(例如,加载到RAM中)并由CPU实现。此类软件可以包括-但不限于-
固件、驻留软件、微代码等。
[0064]适合于存储和/或执行程序代码的数据处理系统将包括至少一个通过系统总线510直接或间接地连接到存储元件504的处理器502。这些存储元件可以包括在程序代码的实际实现期间采用的本地存储器、大容量存储装置以及提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装置检索的次数的高速缓存存储器。
[0065]输入/输出或I/O设备(包括一但不限于一键盘508、显示器506、指点设备等)可以直接地(例如,通过总线510)或通过中间I/O控制器(为清晰起见已省略)连接到系统。
[0066]诸如网络接口 514之类的网络适配器也可以连接到系统以允许数据处理系统变得通过中间专用或公共网络与其它数据处理系统或远程打印机或存储器件相连。电话调制解调器、电缆调制解调器和以太网只是一些当前可用的网络适配器类型。
[0067]如在此使用的(包括权利要求),“服务器”包括运行服务器程序的物理数据处理系统(例如,图5所示的系统512)。将理解,此类物理服务器可能包括或不包括显示器和键盘。
[0068]需要指出,本发明的各方面可以采用在计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。另外,可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于一电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0069]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一但不限于一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0070]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0071]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN) —连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0072]下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0073]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。因此,本发明的一方面包括有形地承载计算机可读指令的制造品,当被实现时,这些计算机可读指令导致计算机执行此处描述的多个方法步骤。
[0074]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
[0075]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、组件、程序段或代码的一部分,所述模块、组件、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0076]应该注意,此处描述的任何方法可以包括以下额外的步骤:即提供一种系统,该系统包括位于计算机可读存储介质上的独立软件模块;这些模块例如可以包括此处描述的部分或全部组件。然后可以使用此处描述的在硬件处理器502上执行的独立系统软件模块和/或子模块执行这些方法步骤。进一步地,计算机程序产品可以包括计算机可读存储介质,其中包含适合于通过实现来执行此处描述的至少一个方法步骤(包括使用独立软件模块供应系统)的代码。
[0077]在任何情况下,应该理解,此处所示的组件可以通过各种硬件、软件或它们的组合的形式实现,例如专用集成电路(ASICS)、功能电路、具有关联存储器的适当编程的通用数字计算机等。在给出此处提供的本发明的技术的情况下,所属【技术领域】的普通技术人员将能够构想本发明的组件的其它实现。
[0078]此处使用的术语只是为了描述特定的实施例并且并非旨在作为本发明的限制。如此处所使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特征、整数、步骤、操作、元素和/或组件的存在,但是并不排除其它特征、整数、步骤、操作、元素、组件和/或其组的存在或增加。[0079]以下的权利要求中的所有装置或步骤加功能要素的对应结构、材料、操作以及等同替换,旨在包括任何用于与在权利要求中具体指出的其它要素相组合地执行该功能的结构、材料或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要把本发明限定到所表述的形式。对于所属【技术领域】的普通技术人员来说,显然可以作出许多修改和变型,而不偏离本发明范围和精神。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属【技术领域】的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。
[0080]本发明的至少一方面可以提供有利效果,例如在考虑到达频率和新近度、爆发特性以及到达间隔模式的情况下预测新缓存组成。
[0081]以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。对于本【技术领域】的普通技术人员来说许多修改和变更都是显而易见的,而不偏离所说明的各实施例的范围和精神。本文中所用术语的选择旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本【技术领域】的其它普通技术人员能理解本文披露的各实施例。
【权利要求】
1.一种用于预供应虚拟机实例的方法,其中所述方法包括: 基于至少一个虚拟机请求的历史数据导出至少一个虚拟机请求的加权函数以创建每个请求的加权虚拟机请求; 捕捉至少一个请求到达间隔模式,并且将所述至少一个模式应用于所述至少一个加权请求以创建所述至少一个加权请求的优先次序;以及 基于所述至少一个加权请求的所述优选次序预供应虚拟机映像的至少一个实例; 其中至少一个上述步骤由计算机设备执行。
2.根据权利要求1的方法,进一步包括: 对虚拟机请求进行响应,其包括以下步骤: 识别对应于所述请求的映像; 在预供应的映像储存库中识别所述映像; 将所述映像传输到主机;以及 启动所述映像。
3.根据权利要求1的方法,其中至少一个虚拟机请求的历史数据包括对映像类型的用户请求到达的频率数据、流行度数据和新近度中的至少一个。
4.根据权利要求3的方法,其中基于至少一个虚拟机请求的历史数据导出虚拟机请求的加权函数包括赋予比较旧请求更近到达的请求以优先权。
5.根据权利要求1的方法 ,其中基于至少一个虚拟机请求的历史数据导出虚拟机请求的加权函数包括确定一种度量来以递减的到达概率次序排列映像类型。
6.根据权利要求1的方法,其中基于至少一个虚拟机请求的历史数据导出虚拟机请求的加权函数包括基于自对映像类型的上一个请求以来经过的时间计算映像类型的将来到达的条件概率。
7.根据权利要求1的方法,其中捕捉至少一个请求到达间隔模式包括分析用户请求历史日志。
8.根据权利要求1的方法,进一步包括使用来自至少一个虚拟机请求的历史数据的爆发信息计算要在缓存中维护的虚拟机映像实例数。
9.根据权利要求8的方法,其中使用所述加权函数和来自至少一个虚拟机请求的历史数据的爆发信息计算要在缓存中维护的虚拟机映像实例数包括使用舍入法计算实例计数的整数值。
10.根据权利要求1的方法,其中基于所述至少一个加权请求的所述优先次序预供应虚拟机映像的至少一个实例包括使用至少一个预取映像占用计算节点中的未用空间并在一段时间上分组对映像的请求。
11.根据权利要求1的方法,进一步包括: 提供一种系统,其中所述系统包括至少一个独立软件模块,每个独立软件模块包含在有形的计算可读、可记录存储介质中,并且其中所述至少一个独立软件模块包括在硬件处理器上执行的历史数据模块和预供应清单管理器模块。
12.一种制造品,包括上面有形地包含计算机可读指令的计算机可读存储介质,所述计算机可读指令当被实现时,导致计算机执行多个方法步骤,包括: 基于至少一个虚拟机请求的历史数据导出至少一个虚拟机请求的加权函数以创建每个请求的加权虚拟机请求; 捕捉至少一个请求到达间隔模式,并且将所述至少一个模式应用于所述至少一个加权请求以创建所述至少一个加权请求的优先次序;以及 基于所述至少一个加权请求的所述优选次序预供应虚拟机映像的至少一个实例。
13.根据权利要求12的制造品,其中至少一个虚拟机请求的历史数据包括对映像类型的用户请求到达的频率数据、流行度数据和新近度中的至少一个。
14.根据权利要求13的制造品,其中基于至少一个虚拟机请求的历史数据导出虚拟机请求的加权函数包括赋予比较旧请求更近到达的请求以优先权。
15.根据权利要求12的制造品,其中基于至少一个虚拟机请求的历史数据导出虚拟机请求的加权函数包括确定一种度量来以递减的到达概率次序排列映像类型。
16.根据权利要求12的制造品,其中基于至少一个虚拟机请求的历史数据导出虚拟机请求的加权函数包括基于自对映像类型的上一个请求以来经过的时间计算映像类型的将来到达的条件概率。
17.根据权利要求12的制造品,其中当被实现时,所述计算机可读指令进一步导致计算机执行一个方法步骤,包括: 使用来自至少一个虚拟机请 求的历史数据的爆发信息计算要在缓存中维护的虚拟机映像实例数。
18.根据权利要求12的制造品,其中基于所述至少一个加权请求的所述优先次序预供应虚拟机映像的至少一个实例包括使用至少一个预取映像占用计算节点中的未用空间并在一段时间上分组对映像的请求。
19.一种预供应虚拟机实例的系统,包括: 至少一个独立软件模块,每个独立软件模块包含在有形的计算机可读介质中; 存储器;以及 至少一个与存储器相连的处理器,该处理器可运行以: 基于至少一个虚拟机请求的历史数据导出至少一个虚拟机请求的加权函数以创建每个请求的加权虚拟机请求; 捕捉至少一个请求到达间隔模式,并且将所述至少一个模式应用于所述至少一个加权请求以创建所述至少一个加权请求的优先次序;以及 基于所述至少一个加权请求的所述优选次序预供应虚拟机映像的至少一个实例。
20.根据权利要求19的系统,其中至少一个虚拟机请求的历史数据包括对映像类型的用户请求到达的频率数据、流行度数据和新近度中的至少一个。
21.根据权利要求20的系统,其中所述至少一个与所述存储器相连并且可运行以基于至少一个虚拟机请求的历史数据导出虚拟机请求的加权函数的处理器进一步可运行以赋予比较旧请求更近到达的请求以优先权。
22.根据权利要求19的系统,其中至少一个与所述存储器相连并且可运行以基于至少一个虚拟机请求的历史数据导出虚拟机请求的加权函数的处理器进一步可运行以确定一种度量来以递减的到达概率次序排列映像类型。
23.根据权利要求19的系统,其中至少一个与所述存储器相连并且可运行以基于至少一个虚拟机请求的历史数据导出虚拟机请求的加权函数的处理器进一步可运行以基于自对映像类型的上一个请求以来经过的时间计算映像类型的将来到达的条件概率。
24.根据权利要求19的系统,其中至少一个与所述存储器相连的处理器进一步可运行以: 使用来自至少一个虚拟机请求的历史数据的爆发信息计算要在缓存中维护的虚拟机映像实例数。
25.根据权利要求19的系统,其中至少一个与所述存储器相连并且可运行以基于所述至少一个加权请求的所述优先次序预供应至少一个虚拟机映像实例的处理器进一步可运行以使用至少一个预取映像占用计算节点中的未用空间并在一段时间上分组对映像的请求。
【文档编号】G06F15/16GK103748555SQ201280040441
【公开日】2014年4月23日 申请日期:2012年8月20日 优先权日:2011年8月22日
【发明者】P·德, M·古普塔, M·索尼, A·塔特 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1