涉及基于集群的资源池的主机感知资源管理的系统和方法

文档序号:6496309阅读:315来源:国知局
涉及基于集群的资源池的主机感知资源管理的系统和方法
【专利摘要】公开的系统和方法用于管理与基于集群的资源池相关的资源。根据说明性的实施方式,本文的创新可以包括或涉及最佳匹配算法、基于服务提供的基础架构、容限和/或副本处理特征、具有监视和/或决策过程特征的动态管理服务、以及虚拟机和资源分布特征这些中的一个或更多。
【专利说明】涉及基于集群的资源池的主机感知资源管理的系统和方法
[0001]相关申请的交叉引用
[0002]本申请基于并要求2011年8月25日提交的申请号为61/527,472的美国临时专利申请的优先权,其全部内容通过弓I用合并于此。
【专利附图】

【附图说明】
[0003]构成说明书一部分的【专利附图】
附图
【附图说明】了本发明的各种实施方式和方面,并且与说明书一起解释本发明的原理。在附图中:
[0004]图1A至IC是根据公开的实施方式的与基于集群的资源池相关的资源管理的说明性系统和方面的框图。
[0005]图2A至2D是根据公开的实施方式的资源管理的说明性过程和/或方面的流程和框图。
[0006]图3是说明根据公开的实施方式的资源管理服务提供的示例性方面的图。
[0007]图4A至4B是示出根据公开的实施方式的最佳匹配资源管理过程的示例性过程和/或方面的流程图。
[0008]图5是说明根据公开的实施方式的资源管理间隔和副本(ghost)特征的示例性方面的图。
[0009]图6是示出根据公开的实施方式的资源管理服务提供的说明性过程的流程图。
[0010]图7至图10是说明根据公开的实施方式的资源管理分配特征的示例性方面的图。
[0011]图11是示出根据公开的实施方式的资源管理处理的说明性方法的流程图。
【具体实施方式】
[0012]将详细地参考本文中的发明,发明的实例在附图中说明。以下描述中列出的实施方式并不代表所有符合所要求保护的发明的实施方式。相反,这些实施方式仅是符合与本发明创新相关的某些方面的一些实例。只要有可能,在附图中将使用相同的附图标记来表示相同或相似的部分。
[0013]图1A至IC是根据公开的实施方式的与基于集群的资源池相关联的资源管理的说明性系统和方面的框图。这里,例如,图1A至IC和本文其他处的实施方式可以在云计算配置中实施,即各个集群物理上存在于整个云上的不同的/分散的位置。参见图1A,示出了对跨越各个集群104的客户102的资源进行管理的系统100。如在其他处更详细地列出的,可以执行对客户的资源需求的确定,针对每个客户产生指定数量的基础架构单元(IU)0如图1A中所示,例如,第一客户Customerl可以需要50个基础架构单元(IU),第二客户Customer2可以需要150个IU,第三客户Customer3可以需要200个IU,第四客户Customer4可以需要10个IU等。可以使用例如Virtustream Advisor产品来访问客户的基础架构以评估其云需求。也可以使用其他产品来访问客户的基础架构以获得例如容量规划结果或性能类型统计。然后可以使用这种评估信息来定义服务器场内的客户资源池需求,并且可以适当分配资源。[0014]一旦定义,客户基础架构单元就可以被分配,并且另外通过一个或更多个资源管理部件106来管理。资源管理部件106可以被分布在各种不同的位置和/或采用各种配置来布置,诸如本文中所列出的。这里,例如,资源管理过程可以在图1A中所列出的一个或更多个部件106a_106f中发生。资源管理可以通过与客户相关的部件106a、106b、106c,通过与集群相关的部件106e、106f,和/或通过不同的部件106d来执行。在集群内,资源管理可以在主机106f上发生,或者通过与集群相关的其他部件106e来发生。如图1A所示,本文的创新方面被配置用于集群104的所有形式,诸如VMware集群、基于内核的虚拟机(KVM)集群、或者具有开放源码或专有性的其他集群。
[0015]转至图1A中的一些说明性的资源管理部件,本文中的系统和方法可以涉及一个或更多个创新方面,诸如最佳匹配/分块算法108、基于IU的服务提供110、容限和/或副本(ghost)处理112、具有监视和决策处理特征的动态/分布式管理服务114、和/或虚拟机(VM)和资源分布特征116。在108中,例如,可以通过定义的资源算法(诸如最佳匹配算法)来处理与客户需求相关的评估信息,以定义资源池内的合适资源池分离或“分块”策略。另外,通过对这种“块”的监视,可以由动态/分布式的管理服务114的监视应用部分来管理资源分布的热点或再分配(也被称作为监视服务或处理)。资源管理也可以包括容限和/或副本处理特征112,其包括客户“副本块”的定义以允许集群内的弹性,如下文所解释。
[0016]如以下详细列出的,本文中的各种最佳匹配/分块算法108可以包括获取或了解客户的资源需求,以及确定相关虚拟机(VM)在可用集群和主机上的最佳分配。开始,可以评估和收集基本的客户资源需求,这个过程也可以包括使用已知的和公认的方法。根据本文的实施方式,然后可以将客户资源需求建立为一些通用的基础架构单元(IU)。另外,这种IU的范围和要求可以根据被配置成保持客户数据的集群的分析来计算,其中,分析可以包括执行主机的基础架构速度测试和/或VM存储映射大小设计。此外,如以下所解释的,然后可以通过决策方法或算法来处理这种客户资源,以限定要被客户使用的资源池的数目和大小。
[0017]转至图1B,公开了主机 120a、120b、122a、122b、124,集群池 126、128,资源池 134、140,虚拟池142和虚拟机(VM)的示意性结构和相互关系。图1B描绘了多个不同的集群组,诸如ESX集群(主机120a、120b)、KVM集群(主机122a、122b)和PVM主机(124)其中可以限定集群池126、128和资源池134、140。虚拟机(VM-1至VM-8)可以被分配至这些池中的任何一个,并且可以在集群上建立或分配虚拟池142。根据本文的创新,可以在超级监视器(hypervisor)的池(诸如像基于内核的虚拟机(KVM)主机这样的开放源码超级监视器的池)上实施合适的资源池分离“分块”策略,将客户资源的分布提供至这些“块”。
[0018]图1C描绘了各种不同技术的集群或主机,即VMware集群/主机150、KVM集群/主机152和Power-VM集群/主机154上的另一个说明性的实施方式。然后这些集群/主机中的每个通过它们各自的连接部件156、158、160而与和客户资源管理/传递162相关的一个处理部件或多个处理部件(也被称作为“xStream”)稱接。所述一个或多个xStream处理部件可以整体或部分地对应于本文其他处讨论的元件106。所述一个或多个处理部件162也可以通过各种其他的资源管理部件106g、106h而与储存装置164和网络166设备耦接。在一起,所有这些元件可以因为与整个资源管理功能106相关的指令而相互作用,以实现本文的创新。这里,例如,可以将来自超级监视器/块156、158、160,储存装置164和网络166基础架构的信息聚集至xStreaml62中,以判断可用的IU和/或用以布置新工作负载的位置。如果未储存在xStreaml62中,则这种实施方式还可以包括与服务管理系统的连接,所述服务管理系统包括所有相关的服务等级限制。然而,应该注意的是,图1C中所示的结构/关系仅是一种说明性的实施方式。除其他方式以外,本文中的xStreaml62和/或处理部件106可以与不同的超级监视器连接和/或具有其他的布置,并且应该注意的是,本文中的创新并不限于附图中的任何这种单一表示。
[0019]图2A至2C是根据公开的实施方式的资源管理的说明性的过程、算法和/或方面的流程和框图。这里,例如,这种方法或算法可以基于设定的标准来定义用于客户的资源需求或资源池分配的块的最佳匹配数目。这组标准可以包括,例如,使用的资源单元的数目以及客户具有的虚拟机(VM)的数目和VM/单元比率。参见图2A中的高级算法,首先在202中产生或获得客户工作负载信息,包括诸如VM和VM比率信息的规格和属性。接着,在204中,判断在基于集群的资源上是否有可利用的容量来处理工作负载。如果不存在足够的容量,则在206产生通知,指示无法布置工作负载,以及在208结束算法。如果在204中容量判断过程确立出存在足够的容量来处理工作负载,则处理进入至第二判断步骤。这里,在210中,判断是否主机可利用来支持工作负载。如果否,则在212中算法判断工作负载是否可拆分。如果工作负载不可拆分,则在206发出未布置工作负载的通知,以及算法结束。如果判断出工作负载可拆分,则在214中拆分工作负载,以及通过第二判断步骤210来处理原始工作负载的细分部分。如果在210中算法确认出主机可利用来支持工作负载,则在216中执行验证处理,以验证是否可以通过对主机的布置来满足必要的服务等级。如果不能满足服务等级,则在206中发出未布置工作负载的通知,以及算法结束。如果可以满足服务等级,则在218中在主机上布置工作负载,以及在208中算法结束。 [0020]以下结合图4A至4B讨论这种方法和算法的更详细的实例,这些图示使用的每资源块的虚拟机的限定最大数目的值为“10”。注意的是,本文中也将术语“资源块”称作为“资源池”。每资源块的虚拟机的最大数目的值反映出被设定用以确保高可用性(HA)重新启动或维护迁移的适当速度的虚拟机的数量。这个值可以例如在基础架构速度测试和VM存储映射大小设计之后计算,并且可以被确定成符合以下计算:
[0021]
可接受的"中断〃时间(基于基础架构保证j
fyvmmmHAm> 母块的 FM
[0022]这里,例如,给出60秒的可接受中断窗口和10秒的每VM高可用性(HA)时间,则本文中的实施方式可以处理值为6 (60/10)或更小值的每块的VM。
[0023]图2B是说明各种主机220a、220b、220c,一组用于客户的基本资源信息222,以及与客户相关的更详细的资源环境/标准的列表221的框图。在图2B的实例中,基本客户资源信息222包括值为20uVM (或IU)的客户虚拟机(VM) 227、值为IOuVM的客户工作负载225、以及值为15uVM的基本(非核心)VM或IU组223。转至一般环境和需求221,包括例如在作出布置决策之前的相关客户标准,我们看到,总的客户资源需求是这三个值之和、或45uVM。对于如图2B中所示的针对这个客户的附加标准,要求混合的服务等级(保证和尽力两者),从故障中恢复的时间是10秒/W,无VM亲和性(affinity)或抗亲和性,资源消耗曲线是消耗/VM,支持的虚拟化技术是WMware,以及需要的VM的数量是三。尽管在图2B中未示出,但是“VM亲和性”需求可以包括如需要在同一主机中运行某些VM以减少VM之间的网络利用/通信量/延迟这样的特征。资源消耗曲线可以是定义过去的资源消耗和预期的资源消耗的模型。通常,客户工作负载被定义具有将用于布置的特定属性。如结合图2C至图2D所说明的,本文中实施方式的目标是基于定义的标准(约束)来确定工作负载在集群内的布置。
[0024]转至图2C,在上面在222处示出相同的示例性客户资源部件,以及下面的3个主机,线224描绘用于集群的核心(保证的)阈值水平,保证的资源布置在阈值线224以下。这里,由于IOuVM部分和20uVM部分都被指定为需要布置在核心(保证的)的服务区域中,所以在第一主机226中没有足够的空间用于IOuVM部分和20uVM部分二者。因此,不会发生布置,因为迁移至第一主机会超过用于保证的资源的主机水平。此外,恢复时间限制必须支持客户的工作负载以及运行在主机上的其他客户的工作负载。在这种情况下,IOuVM工作负载将无法满足服务等级要求,且因而需要布置在不同的集群上。图2D说明如何可将这样的VM部分移动至集群内的第二主机,例如以满足资源保证。此外,可以针对这种进入的客户来建立包含这两个主机的新的资源池240。这里,构建的池可以用来加强用于资源消耗和策略的配额。
[0025]图3是示出根据公开的实施方式的资源管理服务提供的示例性方面的图。这里,例如,可以管理数据中心的资源,使得在发生故障的情况下,运行在具有保证的服务等级的主机上的VM/工作负载可以在其他主机上被支持。参见图3,在主机A和B发生故障的情况下,保证的工作负载314a可以通过迁移至剩余主机C和D上的资源位置314b而被支持。注意的是,术语“资源单元”在本文中也被称作为“基础架构单元”(IU)或数据中心单元。在一些实施例中,数据中心(或服务器的池、或VM主机的池)的硬件资源(以及随附的软件)可以被分割,使得保证数据中心单元的硬件(和/或软件)资源以预定义的资源限制值来执行。换言之,可以例如通过一个或更多个资源管理部件106来管理数据中心单元的资源,使得他们提供保证的服务等级,所述服务等级对应于来自一组预定义的资源限制值中的各个(或每个)预定义的资源限制值。
[0026]这里,例如,说明性的资源管理部件106过程可以包括:处理所示的主机上的故障的检测316,处理要从故障的主机迁移出的工作负载的工作负载规格信息318,根据工作负载规格信息,确定用于支持保证的工作负载的剩余主机的容量信息320,以及根据该判断过程将资源迁移出故障主机322。这里,例如,可以基于针对VM的数量、每主机的VM、服务等级、VM亲和性、和/或支持的虚拟化水平的工作负载规格来统计性地判断用于支持保证的主机容量,也如本文其他处所描述的。
[0027]图4A至4B是示出根据公开的实施方式的最佳匹配资源管理处理的说明性过程和/或方面的流程图。在图4A中所示的第一实施方式中,说明性的过程可以开始于收集或获取工作负载属性401,以及判断或处理集群属性402。接着,在403中,可以作出关于集群中的空间是否可用于工作负载的判断。如果空间可利用,则在404中在集群中的主机上将工作负载拆分,以及在405算法结束。然而,如果在403中集群中没有可利用的空间,则算法可以在406进入判断集群中主机的属性的步骤。相结合地,算法接着在407判断需要的主机的数目,然后在408判断在当前的集群上这个数量的主机是否可利用。如果这个数量的主机可利用,则算法在404进入在集群主机上拆分工作负载,以及结束。然而,如果在408判断所需要的主机不可用,则在409执行对额外的主机的搜索。这里,如果定位到额外的主机,则在413中将这样的主机添加至集群,以及算法返回到步骤408。然而,在409,如果没有额外的主机可利用,则算法在411进入搜索其他集群上的可利用空间,以及结束。
[0028]参见图4B的实施方式,该说明性的算法可以开始于为O的respool (资源池)值和为O的decluster (专用集群)值。上述方法或算法的本实例假设可以在资源池或块中采用最多10个VM。算法可以在410开始于第一处理阶段,其中,如果IUreq (需要的IU的数目)除以clususable (集群可用IU的数目)大于或等于1,则存在向客户指定资源的至少一个集群的足够需求,并且方法进入412。在412中,计算IUreq除以hostusable (主机可用IU的数目)以产生numhostsreq (所需的主机的数目)。然后,在414,计算numhostreq减去hostincluster (集群中主机的数目)以产生addhostreq (所需的额外的主机)。接着,在416,如果addhostreq>hostincluster,则作出关于是否继续通过额外的集群来迭代、或是否定义定制的“延伸”集群的判断。如果判断要定义定制的“延伸”集群,则在418将dedcluster增加I,并且将iureq的值减小clususable ;以及通过返回并从410开始的另一次迭代来再次测试iureq的值。
[0029]在410,如果IUreq除以clususable小于I,则客户的需求将匹配单个集群,并且方法进入第二处理阶段,开始于420。这里,在420,如果IUreq除以hostusable大于或等于1,则存在用以在一个以上的主机上布置需求的足够的需求,并且方法进入422。在422,IUreq除以2以产生splitlUreq (拆分IU需求)。然后算法进入424,其中splitlUreq乘以totalvm (VM的总数)除以totallUreq (总的IU需求)以产生vmperpool (每个池的VM的数目)。如果vmperpool小于或等于定义的块值(本实例中为10个VM),则算法进入426,其中respool增加2 (splitlUreq),并且算法结束。如果在424, vmperpool被判断为大于定义的块值(即,10个VM),则算法进入428,其中VM的respool增加1,以及IUreq被重新计算为IUreq减去hostusable ;然后IUreq的该值被发送回第二处理阶段的第一步骤,用于在420进行重新评估。
[0030]在420中,如果IUreq除以hostusable小于1,则所需的资源将匹配单个主机,并且方法在430进入第三处理阶段。在430处,IUreq乘以totalvm/totallUreq以产生vmtopool (VM至资源池)值。如果在430判断出vmtopool小于或等于块值(即,10个VM),则算法进入432,其中资源池的值(B卩,VM的respool)增加1,并且方法结束(B卩,算法退出)。如果vmtopool大于块值(即,10个VM),则在434通过将VM的数目除以定义的块值(即,10个VM限制)的结果向上舍入来计算respool,并且方法结束(B卩,算法退出)。
[0031]在执行完方法之后,识别出用于客户的若干合适的资源池。这些资源池的大小应该等于用于客户的任何相关的“副本”池,如下文所解释的,而且应该是最大个体池的大小。在一些实施方式中,最大个体池的大小可以基于以下来计算:
[0032]Totaliureq/respool=respool 大小
[0033]如果存在一个或更多个虚拟机不能在单个资源池内部匹配的情形,则可以执行额外的计算。这种计算和决策过程也可以被包括在所述方法或算法中。此外,一旦定义,则资源池可以在整个集群可用空间分布,该集群可用空间具有未使用的(除节点容限情况之外)容限副本池或限定在不包括活动池的任何主机上的“副本”。如果客户在集群中的所有主机上都具有资源池,则可以在多个主机上限定副本池。[0034]图5是说明根据公开的实施方式的资源管理间隔和副本特征的示例性方面的图。参见图5的说明性实施方式,资源集群和主机502、504、506、508被配置有高水位标记以实现地点和集群容限创新。这些高水位标记由“可用”空间和“容限”空间之间的第一线513、“容限”空间和“主机”空间之间的第二线515表示。客户A510 (“CustA”)存在于主机I至3上,所以将客户A520的“副本”限定在主机4上。客户B512 (“CustB”)存在于主机2至4上,所以将其副本522限定在主机I上。客户C514 (“CustC”)仅存在于主机4上。如此,可以将客户C524的“副本”限定在主机I至3中的任何主机上。通过以这种方式限定副本池或副本块,本文中的实施方式可以通过在额外的主机(从其可以发生访问、迁移或恢复)上提供客户资源来实现集群内的进一步弹性,诸如n+1弹性。
[0035]在本文的系统和方法的另外的实施方式中,可以在维护窗口或节点容限情况期间使用副本池。一恢复正常服务,可以将VM迁移回原始池。以这种方式来分配池和故障恢复具有很多好处:
[0036].VM被布置在一起,从而利用更快的通信,并产生更多期望的通信路径组(例如,防火墙可以被限定在少数主机上,而不是所有主机上)
[0037]?维护窗口仅需要占用受影响位置的主机,而不是整个集群。在图5中,例如,CustA具有的维护窗口受对主机I至3的维护的影响,但不受主机4影响;CustB具有的维护窗口受对主机2至4的维护的影响,但不受主机I的影响;CustC具有的维护窗口受对主机4的维护的影响,但不受主机I至3的影响
[0038].即使损失管理服务,约束仍保持在位
[0039]尽管上述公开中的一些至少部分地涉及客户资源的初始布置,但是本文描述的实施方式也提供动态改变工作负载和适当额外资源的能力。可以提供诸如图1A中的114的管理服务(或处理或应用)用于监视和管理集群内的工作负载。这种管理服务可以采用多种方式来配置。例如,可以将这种管理服务配置成对来自Cgroups (控制组)的高水位标记“警报”和/或与其相关的过程迁移指令`作出响应。至Cgroup的迁移可以基于历史和预期的使用曲线。另外,如本文其他处所列出的,在评估工作负载以将其保持在其位置处的情况下,可以扩展当前的Cgroup以提供更多的资源。
[0040]管理服务还可以被配置成向Cgroups查询与组和在组内运行的VM相关的性能信息。另外,管理服务可以被配置为启动VM基于其工作负载而至可替选的Cgroup的迁移。这可以在其原始的Cgroup中提供用于“忙”服务的空间。例如,如果处于高水位标记的池的数量小于池的总数量,则可以执行诸如在较低的水位标记池中限定自由空间、限定“最佳匹配VM”和vMotion的功能。这里,vMotion可以是在机器继续运行并且接受新请求时VM从一个主机至另一个主机的迁移。例如,VM可以在一个池从一个主机上迁移至另一个主机。总体而言,管理服务还可以执行至Cgroup的迁移,该Cgroup具有足够的“自由”空间来运行其任务。
[0041]另外,管理服务可以被配置成动态地改变Cgroup限制以提供“突发”特征,诸如在特定的时间段上、或者在诸如与时间要求或条件相关的其他限制情况下扩展Cgroup限制。这里,例如,如果处于高水位标记的池的数量等于池的总数量,则管理服务可以被配置成动态地通过vMotion来全面增大cgroups大小和/或通过vMotion突发到副本中。此外,管理服务还可以被配置成限定和破坏Cgroup以提供对系统的“定时访问”(例如,月底工资单等)。这里,例如,服务可以将资源分配安排至归零的Cgourp,然后在其分配的时间结束时再次归零。假设集群具有未分配的可用资源池(例如,状态为n>n-l)并且不存在地点容限问题,则可以执行这种处理,然后将未分配的资源池用于这些任务将是可接受的。
[0042]图6是示出根据本文的各种实施方式的资源管理服务提供的说明性过程的流程图。参见图6,公开了关于分配和/或扩展集群组的实施方式。当收到高水位标记602时,例如,本文的系统和方法可以首先在604中收集主机集群组的性能信息。然后,可以在608对是否可以扩展集群组以解决高水位标记作出判断。如果识别出适用于扩展的集群组,则在614执行关于验证在用于集群组扩展的相关主机中是否有空间可用的处理。在没有这种主机空间可利用的情况下,处理进入至612,如下文所解释的。如果主机空间可利用,则可以在618中作出关于现有的副本空间是否可用于扩展的判断。如果这种副本空间不可利用,则在622执行关于扩展集群组而无副本空间操作的处理,并且方法结束638。如果在618作出副本空间在用于扩展的相关主机上可利用的判断,则在626执行分配替换副本空间的步骤。这里,例如,可以在另一个主机上产生替换副本空间,使得在主体主机上的副本空间可以被重新分配至其他主机。一旦重新分配副本空间,处理可以进入将集群组扩展到当前集群上的被替换的副本空间中的步骤622,并且方法结束638。
[0043]如果在步骤608或614中算法得出没有空间可用于集群组扩展的结论,则处理可以在612进入判断是否有任何较不活跃的虚拟机(VM)可以被迁移。如果较不活跃的VM不可用于迁移,则可以在630作出关于是否可以实施安排的突发以扩展集群组的判断。如果这种突发处理不可用于扩展,则方法在638结束。当这样的突发处理可用以扩展集群组时,处理进入步骤642,其中分配额外的突发资源并扩展集群组,之后方法结束638。在612,如果判断较不活跃的VM适用于迁移以解决存在的问题,则可以在634处理用以将具有最小影响的这种VM迁移至另一主机的指令。随着通过较不活跃的VM的迁移解决了分配问题,方法可以结束638。
[0044]返回至一些更普遍的方面,提供本文的功能的管理服务可以是完全或基本上无状态的,在于集群组本身提供关于其自身性能的信息和关于集群组内的虚拟机的性能的信息。为此,管理服务的各种实施方式可以有多种选项,诸如(I)被配置成在集群外运行,或者(2)被配置成在集群内运行并且可以作为集群资源进行管理。选项I的好处是这种配置保持了传统的管理模式。然而,单个虚拟机于是负责整个集群的维护,以及可能要包括某种形式的管理集群以促进单个虚拟机的持续操作。
[0045]选项2的好处是,集群技术已经在位,并且集群可以变成很大程度上自我维持。然而,在任何时候,主机中的一个将具有监视集群的额外开销。在使用选项2和基于分布式模型的管理服务的一些实施方式中,一个服务器可以被配置成监视客户的Cgroup警报。这里,例如,一接收到Cgroup警报或响应于定时事件,集群可以指示同伴来执行任务的维护,这将抵消程序的开销。假定每个客户的资源位于限定的服务器组上,则该维护任务可以分配给受影响的服务器。这因此可能产生预期的开销,并且降低对集群内的其他客户的管理影响。换言之,如果管理服务通过单个管理节点(服务器)来运行,则任何迁移或资源重新分配可能在所述服务器上产生开销,并且所述服务器是所有其他客户使用的资源。如果管理服务或过程被配置成在指定的主机上执行,则仅该主机上的客户将分担任何处理开销,并且这些客户中的一个将成为引起这种开销的客户。就这一点而言,管理服务可以至少部分地实现为监视服务/过程(或应用),并且监视服务/过程可以被单纯地保持为监视过程。在发生触发事件的情况下,管理服务/过程可以在生成触发的主机上产生客户专用的迁移决策事件或过程,然后管理服务/过程可以返回到其监视状态。然后客户专用的迁移决策过程可以进入评估需求以及定义最佳匹配解决方案并制定计划。一旦完成客户专用的迁移决策过程,客户专用的迁移决策过程可以期满。如果在客户专用的迁移决策过程已经执行其职能之后存在任何平衡问题,则监视服务/过程可以在适当的时候产生新的客户专用的迁移决策过程,这应带来每个客户的迭代平衡。
[0046]图7至10是说明根据公开的实施方式的资源管理分配特征的示例性方面的图。参见图7,监视服务/过程508可以被配置成在主机704上运行712,其中另一个主机702产生714高水位标记警报707。然后,如图8中所示,监视服务/过程508在受影响的主机702上生成或产生812客户专用的迁移决策过程808。该客户专用的迁移决策过程808可以向替换的池查询以及可以作出关于VM布置等的“最佳匹配”决策814。接着,如图9中所示,客户专用的迁移决策过程808可以产生对于替换的Cgroup911的VM的“平衡”迁移912。最后,如图10中所示,完成平衡过程,以及客户专用的迁移决策过程过去。
[0047]应当注意的是,本文的VM Cgroup分配特征可以被实施为对VM XML配置文件的扩展,并且这也可扩展到开放虚拟化格式(OVF)文件等。
[0048]图11是示出根据公开的实施方式的资源管理处理的说明性方法的流程图。参见图11的实施方式的核心步骤,一种说明性的方法可以包括以下步骤:接收或处理与客户的基础架构单元的数目的指示、客户的虚拟机(VM)的数目的指示、和/或每个资源池的VM的最大数目的指示相关的信息1102。另外,该方法可以包括将客户的IU与根据一组预定义的资源限制值而管理的硬件资源相关联的步骤1104。该方法还可以包括基于客户的基础架构单元的数目、客户的VM的数目、和/或每个资源池的VM的最大数目来计算客户的资源池的数目的步骤1106。最后,该方法还可以包括基于客户的资源池的数目来处理信息(如准备、处理或发送信号)以引起客户的VM被分布在一组VM主机之间的步骤1108,使得客户的每个资源池与客户的VM相关联,并且被分配至所述一组VM主机中的唯一 VM主机。
[0049]图11还说明在上面讨论的方法之前和之后的几个步骤,即步骤1101和1110。参见这些可选特征,另一种说明性的方法还可以包括处理每个虚拟机(VM)所使用的机器和资源的数目的初始步骤1101。这里,例如,这样确定的信息然后可以被聚集到具有所需工作负载的客户工作负载中,并且被发送到容量规划引擎。该方法然后可以进入以下核心步骤:处理与客户的基础架构单元(IU)的数目、客户的虚拟机(VM)的数目的指示、和/或每个资源池的VM的最大数目的指示相关的信息1102 ;将来自客户的基础架构单元中的每个基础架构单元与基于一组预定义的资源限制值而管理的硬件资源相关联1104 ;基于客户的基础架构单元(IU)的数目、客户的VM的数目、和/或每个资源池的VM的最大数目来计算客户的资源池的数目1106 ;以及基于客户的资源池的数目来处理关于客户的VM在一组VM主机之间分布的信息,使得客户的每个资源池与客户的VM相关联,并且被分配到所述一组VM主机中的唯一 VM主机1108。最后,这样的方法还可以包括执行客户的工作负载(VM)至基础架构中的适当资源池的分配的步骤1110。
[0050]一般而言,本文的创新可以通过一个或更多个部件、系统、服务器、装置、其他子部件实现来实施,或者分布在这种元件之间。当被实施为系统时,这种系统可以包括尤其是诸如通用计算机中可找到的软件模块、通用CPU、RAM等部件,和/或更专用的计算设备中可找到的FPGA和/或ASIC。在创新存在于一个或更多个服务器上的实施方式中,这种服务器可以包括或涉及诸如在通用计算机中可找到的诸如CPU、RAM等部件。
[0051]另外,本文的创新可以通过除了以上列出的实施方式以外的具有不同或完全不同的软件、硬件和/或固件部件的实施方式来实现。关于这种其他的部件(例如,软件、处理部件等)和/或与本发明相关联或实施本发明的计算机可读媒介,例如,本文中的创新的方面可以符合多个通用或专用的计算系统或配置而实现。可适用于利用本文的创新的各种示例性计算系统、环境和/或配置可以包括,但不限于:在个人计算机内或在个人计算上实现的软件或其他部件、诸如路由/连接部件的服务器或服务计算设备、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、消费电子设备、网络PC、其他现有的计算机平台、包括一个或更多个以上系统或设备的分布式计算环境等。
[0052]在一些情况下,本文的创新的方面可以通过包括程序模块的逻辑和/或逻辑指令来实现或执行,例如,与这种部件或电路相关地执行。通常,程序模块可以包括执行特定任务或实现本文中的特定指令的例程、程序、对象、部件、数据结构等。本发明也可以在分布式软件、计算机或电路设置中实践,其中元件通过通信总线、电路或链路来连接。在分布式设置中,控制/指示可以来自于包括存储器储存设备的本地和远程计算机储存媒介中。
[0053]本文中的创新软件、电路和部件也可以包括和/或使用一种或更多种类型的计算机可读媒介。计算机可读媒介可以是存在于这种电路和/或计算部件上、与其关联或可以被其访问的任何可用的媒介。作为实例并非限制,计算机可读媒介可以包括计算机储存媒介和通信媒介。计算机储存媒介包括以用于储存诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除的媒介。计算机存储媒介包括,但不限于,RAM、ROM、EEPR0M、快闪存储器或其他的存储器技术、CD-ROM、数字多功能盘(DVD)或其他光储存器、磁带、磁盘储存器或其他的磁储存设备、或可用来储存期望的信息并且可由计算部件访问的任何其他媒介。通信媒介可以包括实现本文功能的计算机可读指令、数据结构、程序模块或其他数据。另外,通信媒介可以包括诸如有线网络或直接有线连接的有线媒介、和诸如声学、RF、红外线和其他无线媒介的无线媒介。上述的任何组合也被包括在计算机可读媒介的范围之内。
[0054]在本说明书中,术语部件、模块、设备等可以表示可采用各种方式实施的任何类型的逻辑或功能软件元件、电路、块和/或过程。例如,各种电路和/或块的功能可以彼此组合成任何其他数目的模块。每个模块甚至可以被实施为储存在有形存储器(例如,随机存取存储器、只读存储器、CD-ROM存储器、硬盘驱动器等)上的软件程序,以由中央处理单元读取以实现本文中的创新的功能。或者,这些模块可以包括通过传输载波传送到通用计算机或处理/图像硬件的编程指令。此外,这些模块可以被实施为实现本文的创新所包括的功能的硬件逻辑电路。最后,这些模块可以使用专用指令(SIMD指令)、现场可编程逻辑阵列或其任意组合来实施,其提供期望水平的性能和成本。
[0055]如本文所公开的,符合本发明的特征可以通过计算机硬件、软件和/或固件来实施。例如,本文所公开的系统和方法可以采用各种形式来实现,例如数据处理器、诸如还包括数据库的计算机、数字电子电路、固件、软件或它们的组合。另外,尽管一些所公开的实施方式描述了特定的硬件部件,但是符合本文中的创新的系统和方法也可以使用硬件、软件和/或固件的任意组合来实施。此外,可以在各种环境中实施本文中的创新的上述特征以及其他方面和原理。可以特别地构造这样的环境和相关应用来执行根据本发明的各种例程、过程和/或操作,或者这样的环境和相关应用可以包括通过代码来选择性地激活或重新配置以提供必要功能的通用计算机或计算平台。本文所公开的过程并不固有地涉及任何特定的计算机、网络、结构、环境或其他装置,可以由硬件、软件和/或固件的适当组合来实施。例如,各种通用机器可以与根据本发明的教导而编写的程序一起使用,或者可以更方便地构造专用装置或系统以执行所需的方法和技术。
[0056]此外,可以在微处理器中实现各个方面,所述微处理器具有基于软件的电路仿真、离散逻辑(顺序和组合)、定制器件、模糊(神经)逻辑、量子器件和上述器件类型的任何混

口 ο
[0057]还应当指出的是,本文公开的各种逻辑和/或功能可以利用硬件、固件、和/或作为在各种机器可读或计算机可读媒介中实现的数据和/或指令的任何数目的组合而实现,就其行为、寄存器传送、逻辑部件和/或其他特性而言。可体现这种格式化数据和/或指令的计算机可读媒介包括但不限于呈各种形式的非易失性储存媒介(例如,光学、磁性或半导体储存媒介)以及可用于通过无线、光或有线信令媒介或它们的任何组合来传输这种格式化数据和/或指令的载波。通过载波传输这种格式化数据和/或指令的实例包括但不限于在互联网和/或其他计算机网络上经由一种或更多种数据传输协议(例如,HTTP、FTP、SMTP等)传输(上传、下载、电子邮件等)。
[0058]除非上下文明确要求,否则,在本说明书中,词语“包括”、“包含”等将解释为包含在内的意义,而不是排他或穷举的意义;也就是说,从“包括但不限于”的意义上来说。使用单数或复数的词语也分别包括复数或单数。此外,“在文中”、“在下文”,“以上”,“以下”和类似意义的词涉及本申请的整体而非本申请的任何特定部分。当词“或”用于涉及两个或更多项的列出时,该词覆盖所有的以下解释:列出中的任意项、列出中的所有项和列出中的该项的任意组合。
[0059]尽管本文详细具体描述了本发明的某些当前优选的实施方式,但是对于本发明所属领域技术人员显然的是,在不脱离本发明的精神和范围的情况下,可以对本文所示和描述的各种实施方式进行修改和变化。因此,本发明旨在仅限于由适用的法律条款所要求的程度。
【权利要求】
1.一种用于处理与基于集群的资源池的管理相关的信息的方法,所述方法包括: 执行关于是否需要一个以上的集群来储存客户的包括例程的所需IU (IUreq)的第一处理,如果需要一个以上的集群则执行用于确定是否通过额外的集群来迭代或者执行定制的“延伸”集群; 执行关于判断所述IUreq或所述IUreq的块必须在多个主机上分配的第二处理,包括根据每池允许的VM的数量来分配储存装置; 执行关于判断所述IUreq将匹配在单个主机内的第三处理,包括根据所产生的VM至资源池值和所述每池允许的VM (块值)来分配IU ;以及 基于设定的标准来定义用于客户的资源需求或资源池分配的块的最佳匹配数目; 其中,所述设定的标准包括:使用的资源单元的数量、分配给所述客户的虚拟机(VM)的数量、和/或VM/单元比率信息。
2.根据权利要求1所述的方法,还包括:根据基础架构保证信息、每虚拟机的迁移或HA时间、和/或每块的虚拟机计算来确定可接受中断时间值。
3.根据权利要求1所述的方法,还包括: 分析被配置为保持客户数据的集群,包括执行主机的基础架构速度测试和/或VM存储器映射大小设计。
4.根据权利要求1所述的方法,其中,将所述客户的资源需求建立为通用基础架构单元(IU)的数量,所述通用基础架构单元根据被配置为保持客户数据的集群的分析来计算,其中所述分析包括执行主机的基础架构 速度测试和/或VM存储器映射大小设计。
5.根据权利要求1所述的方法,其中,每资源块的虚拟机的最大数目的值对应于被设定用以确保高可用性(HA)重新启动或维护迁移的适当速度的虚拟机的数量。
6.根据权利要求1所述的方法,还包括:根据访问/评估所述客户的基础架构来定义所述客户的资源池需求。
7.根据权利要求6所述的方法,还包括:根据定义的客户资源池需求来分配资源。
8.根据权利要求6所述的方法,其中,所述客户的基础架构的访问/评估包括获得容量规划结果。
9.根据权利要求6所述的方法,其中,所述客户的基础架构的访问/评估包括获得性能类型统计。
10.一种用于处理与基于集群的资源池的管理相关的信息的方法,所述方法包括: 基于设定的标准来确定用于客户的资源需求或资源池分配的块的最佳匹配数目,其中,所述设定的标准包括:使用的资源单元的数量、分配给所述客户的虚拟机(VM)的数量、和/或VM/单元比率信息; 处理针对多个客户而确定的多个预定义的资源限制值;以及 处理关于划分服务器池或VM主机池的数据中心的硬件资源和/或关联的软件的信息,使得保证所述数据中心单元的所述硬件和/或所述软件资源以一个或更多个所述预定义的资源限制值来执行。
11.根据权利要求10所述的方法,其中,将所述客户的资源需求建立为通用基础架构单元(IU)的数量,所述通用基础架构单元根据被配置为保持客户数据的集群的分析来计算,其中所述分析包括执行主机的基础架构速度测试和/或VM存储器映射大小设计。
12.根据权利要求10所述的方法,还包括: 分析被配置为保持客户数据的集群,包括执行主机的基础架构速度测试和/或VM存储器映射大小设计。
13.根据权利要求10所述的方法,其中,保证的服务等级被提供用于所述一组预定义的资源限制值中的各个预定义的资源限制值。
14.根据权利要求10所述的方法,其中,保证的服务等级被提供用于所述一组预定义的资源限制值中的每个预定义的资源限制值。
15.一种用于处理与基于集群的资源池的管理相关的信息的方法,所述方法包括: 处理关于具有高水位标记的资源集群的配置以实现地点和集群容限的第一信息,所述高水位标 记反映可用空间和容限空间之间的、以及所述容限空间和被保留用于保证主机活动的主机空间之间的划分; 处理关于资源池在所述集群可用空间上的分布/分配的第二信息,包括处理位于不使用的容限空间内的副本池,所述副本池被限定在不包含与客户相关的活动池的主机上,或者在所述客户在集群内的所有主机上都具有资源池的情况下位于所述集群内的多个主机上; 处理关于在维护窗口或节点容限事件期间使用所述副本池的第三信息; 在恢复正常服务时,处理关于将分配给所述客户的资源的虚拟机(VM)迁移回原始池的第四信息。
16.根据权利要求15所述的方法,还包括: 分析被配置为保持客户数据的集群,包括执行主机的基础架构速度测试和/或VM存储器映射大小设计。
17.根据权利要求15所述的方法,其中,所述客户的资源需求被建立为通用基础架构单元(IU)的数量,所述通用基础架构单元根据被配置为保持客户数据的集群的分析来计算,其中所述分析包括执行主机的基础架构速度测试和/或VM存储器映射大小设计。
18.根据权利要求15所述的方法,其中,根据所述分布/分配以及相关的故障恢复处理,将所述客户的VM—起布置在有限的主机子集中,以提供更快的信息通信以及产生更多期望/建立的通信路径组。
19.根据权利要求18所述的方法,其中,根据所述分布/分配以及相关的故障恢复处理,所述集群被配置使得维护窗口仅需要占用与受影响的位置关联的主机,而不是整个集群。
20.根据权利要求15所述的方法,其中,结合所述分布/分配以及相关的故障恢复处理,即使损失管理服务,约束被配置成仍保持在位。
21.一种用于处理与基于集群的资源池的管理相关的信息的方法,所述方法包括: 执行用于监视和管理所述集群内的工作负载的管理服务,包括动态地改变工作负载和/或附加资源; 处理关于与集群组中的高水位标记有关的警报的信息,所述高水位标记反映可用空间和容限空间之间的、以及所述容限空间和主机空间之间的划分; 处理关于向所述集群组查询与所述集群组和在所述集群组内运行的虚拟机相关的性能信息的信息;处理关于VM基于其工作负载而迁移至可替选的集群组的信息; 处理关于动态地改变集群组限制以提供突发的信息; 处理关于限定和/或破坏集群组以提供对系统的定时访问的信息。
22.根据权利要求21所述的方法,还包括: 分析被配置为保持客户数据的集群,包括执行主机的基础架构速度测试和/或VM存储器映射大小设计。
23.根据权利要求21所述的方法,其中,将所述客户的资源需求建立为通用基础架构单元IU的数量,所述通用基础架构单元根据被配置为保持客户数据的集群的分析来计算,其中所述分析包括执行主机的基础架构速度测试和/或VM存储器映射大小设计。
24.根据权利要求21所述的方法,其中,所述突发被提供/定义为在短的/需要的时间段上和/或针对其他限制情况或时间条件而对主机/集群/Cgroup限制或空间的扩展。
25.根据权利要求21所述的方法,其中,处理关于VM的迁移的信息包括:在所述VM要被迁移出的集群组内提供用于忙服务的空间。
26.根据权利要求25所述的方法,其中,在较低的水位标记池中定义自由空间、定义最佳匹配VMjP /或定义vmotion这三者中的一个或更多个根据处于高水位标记的池的数量是否小于池的总数量来执行。
27.根据权利要求21所述的方法,其中,处理关于VM的迁移的信息包括:处理关于所述VM迁移至具有足够的自由空间来处理所述VM任务的操作的集群组的数据。
28.根据权利要求21所述的方法,其中,动态改变所述集群组限制以提供突发包括:动态增大集群资源上的集群组大小、提供突 发到副本池中、和/或根据处于高水位标记的池的数量是否等于池的总数量来使用vmotion这三者中的一个或更多个。
29.根据权利要求21所述的方法,其中,处理关于限定和/或破坏集群组提供在预定的时间对所述系统的“定时访问”的信息,诸如在月底、在工资结算结束时等。
30.根据权利要求21所述的方法,还包括将资源分配安排至归零的集群组,然后在所述资源的安排的分配时间结束时再次归零所述集群组。
31.根据权利要求21所述的方法,其中,执行所述方法的管理服务或过程被配置成完全或基本无状态,在于所述集群组本身提供关于所述集群组的性能和/或所述集群组内的虚拟机的性能的信息。
32.根据权利要求21所述的方法,其中,执行所述方法的管理服务或过程被配置成在所述集群外运行。
33.根据权利要求21所述的方法,其中,执行所述方法的管理服务或过程被配置成在所述集群内运行,以及被管理为集群资源。
34.根据权利要求21所述的方法,其中,管理服务或过程被配置成执行所述方法。
35.根据权利要求34所述的方法,其中,所述管理服务或过程被至少部分地实施为监视服务/过程或作为监视应用,以及所述监视服务/过程或所述监视应用被单纯地保持为监视过程。
36.根据权利要求34所述的方法,其中,当发生触发事件时,所述管理服务/过程: 在发生所述触发的主机上产生客户专用的迁移决策事件或过程;以及 然后返回到其监视状态。
37.根据权利要求36所述的方法,其中,所述客户专用的迁移决策过程进入评估迁移需求、定义最佳匹配解决方案计划,以及执行与定制所述计划相关的处理。
38.根据权利要求36所述的方法,其中,如果在所述客户专用的迁移决策过程执行其职能之后存在任何平衡问题,则所述监视服务/过程产生新的客户专用的迁移决策过程。
39.根据权利要求38所述的方法,其中,所述新的客户专用的迁移决策过程带来每个客户的迭代平衡。
40.一种用于处理与基于集群的资源池的管理相关的信息的方法,所述方法包括: 处理关于客户的基础架构单元的数目、所述客户的虚拟机(VM)的数目的指示、以及每个资源池的VM的最大数目的指示的信息; 将来自所述客户的基础架构单元的每个基础架构单元与基于一组预定义的资源限制值而管理的硬件资源相关联; 基于所述客户的基础架构单元的数目、所述客户的VM的数目、和所述每个资源池的VM的最大数目来计算所述客户的资源池的数目;以及 基于所述客户的资源池的数目来处理关于所述客户的VM在一组VM主机之间分布的信息,使得所述客户的每个资源池与所述客户的VM相关联,并且被分配给来自所述一组VM主机中的唯一 VM主机。
41.根据权利要求40所述的方法,还包括: 分析被配置为保持客户数据的集群,包括执行主机的基础架构速度测试和/或VM存储器映射大小设计。
42.根据权利要求40所述的方法,其中,将所述客户的资源需求建立为通用基础架构单元IU的数量,所述通用基础架构单元根据被配置为保持客户数据的集群的分析来计算,其中所述分析包括执行主机的基础架构速度测试和/或VM存储器映射大小设计。
43.一种用于处理与基于集群的资源池的管理相关的信息的方法,所述方法包括: 处理每个虚拟机(VM)使用的机器和资源的数目; 处理关于客户的基础架构单元IU的数目、所述客户的虚拟机(VM)的数目的指示、以及每个资源池的VM的最大数目的指示的信息; 将来自所述客户的基础架构单元的每个基础架构单元与基于一组预定义的资源限制值而管理的硬件资源相关联; 基于所述客户的基础架构单元(IU)的数目、所述客户的VM的数目、和所述每个资源池的VM的最大数目来计算所述客户的资源池的数目;以及 基于所述客户的资源池的数目来处理关于所述客户的VM在一组VM主机之间的分布的信息,使得所述客户的每个资源池与所述客户的VM相关联,并且被分配给来自所述一组VM主机中的唯一 VM主机;以及 执行所述客户的工作负载(VM)至所述基础架构中的适当资源池的分配。
44.根据权利要求43所述的方法,还包括: 将每个虚拟机(VM)处理的使用的机器和资源的数目聚集至具有需要的属性的客户工作负载中;以及 将聚集的信息发送到容量计划引擎或过程。
45.包含可由一个或更多个处理部件执行的计算机可读程序指令的一个或更多个计算机可读媒介,用以实施管理基于集群的资源池的方法,所述计算机可读程序指令包括用于执行权利要求1至44所述的一个或更多个步骤和/或本公开中其他处所列出的其他功能的指令。
46.一种系统,包括: 一个或更多个计算部件和/或一个或更多个计算机可读媒介,被配置为执行权利要求1至44所述的一个或更多个步骤、和/或本公开中其他处所列出的其他功 能。
【文档编号】G06F9/06GK103890714SQ201280041498
【公开日】2014年6月25日 申请日期:2012年8月27日 优先权日:2011年8月25日
【发明者】文森特·G.·卢布西, 凯文·D.·里德, 卡尔·J.·辛普森, 罗德尼·约翰·罗杰 申请人:维图斯瑞姆有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1