云计算系统中的用于虚拟机的资源管理的制作方法

未命名 07-23 阅读:56 评论:0
云计算系统中的用于虚拟机的资源管理1.本技术是申请日为2018年01月30日、中国国家申请号为201880009992.0、发明名称为“云计算系统中的用于虚拟机的资源管理”的中国发明专利申请的分案申请。
技术领域
:2.本公开总体上涉及云计算系统,并且更具体地涉及云计算系统中的用于虚拟机的资源管理。
背景技术
::3.本文中提供的背景描述是出于总体上呈现本公开的上下文的目的。对于
背景技术
:部分中所描述的范围,目前所署发明人的工作以及在提交时可能不具有其他资格作为现有技术的本描述的方面既不明确也不隐含地被承认是本公开的现有技术。4.云计算系统的提供方(例如,microsoft、amazon、ibm等)在云基础设施上投入巨资。有效地利用云基础设施以及将云基础设施货币化可能是一项困难的任务。例如,云基础设施的平均cpu利用率可能非常低(例如,小于10%)。与云基础设施的利用率不足的每1%相关联的年度财政成本可能很高。随着云基础架构利用更新的硬件和其他资源得到更新,同时仍然未得到充分利用,成本可能会增长。技术实现要素:5.一种系统,包括处理器和存储器、以及被存储在存储器中的机器可读指令。在由处理器执行时,机器可读指令将处理器配置为接收请求以将虚拟机部署在来自云计算系统中的、运行多个虚拟机的多个节点中的节点上。机器可读指令将处理器配置为接收针对虚拟机的预测寿命,以及接收对在多个节点中的每个节点上运行的虚拟机的平均寿命的指示。当在节点上并置具有相似寿命的虚拟机的第一策略被采取时,并且当预测寿命在多个节点中的第一节点上运行的虚拟机的平均寿命的预定范围内时,将虚拟机分配给第一节点。当在节点上并置具有不同寿命的虚拟机的第二策略被采取时,并且预测寿命不在多个节点中的第二节点上运行的虚拟机的平均寿命的预定范围内时,将虚拟机分配给第二节点。6.在其他特征中,机器可读指令还将处理器配置为,当预测寿命小于或等于第一预定值时,确定虚拟机属于第一类型,或者当预测寿命大于或等于第二预定值时,确定虚拟机属于第二类型,第二预定值大于第一预定值。机器可读指令将处理器配置为当虚拟机和在第一节点上运行的虚拟机属于第一类型时,或者当虚拟机和在第一节点上运行的虚拟机属于第二类型时,将虚拟机分配给第一节点。7.在其他特征中,机器可读指令还将处理器配置为,当预测寿命小于或等于第一预定值时,确定虚拟机属于第一类型,或者当预测寿命大于或等于第二预定值时,确定虚拟机属于第二类型,第二预定值大于第一预定值。机器可读指令将处理器配置为当虚拟机属于第一类型并且在第二节点上运行的虚拟机属于第二类型时,或者当虚拟机属于第二类型并且在第二节点上运行的虚拟机属于第一类型时,将虚拟机分配给第二节点。8.在其他特征中,机器可读指令还将处理器配置为,收集关于多个虚拟机的寿命的数据,并且基于所收集的数据生成针对虚拟机的预测寿命。9.在其他特征中,机器可读指令还将处理器配置为,收集关于多个虚拟机的寿命的数据,并且基于所收集的数据生成对在多个节点中的每个节点上运行的虚拟机的平均寿命的指示。10.在其他特征中,机器可读指令还将处理器配置为当虚拟机被分配给第一节点或第二节点时,更新第一节点或第二节点上的虚拟机的平均寿命。11.在其他特征中,机器可读指令还将处理器配置为当虚拟机在第一节点或第二节点上终止时,更新第一节点或第二节点上的虚拟机的平均寿命。12.在其他特征中,机器可读指令还将处理器配置为当一个或多个虚拟机在第一节点或第二节点上终止时,更新第一节点或第二节点上的虚拟机的平均寿命。13.在其他特征中,机器可读指令还将处理器配置为不跟踪多个节点中的每个节点处的虚拟机的预测寿命或实际寿命。14.在其他特征中,一种方法包括收集关于在云计算系统中的多个节点上运行的多个虚拟机的寿命的数据。该方法还包括请求以将虚拟机部署在多个节点中的一个节点上,并且基于所收集的数据接收针对虚拟机的预测寿命。该方法还包括基于所收集的数据接收对在多个节点中的每个节点上运行的虚拟机的平均寿命的指示。该方法还包括当在节点上并置具有相似寿命的虚拟机的第一策略被采取时,并且预测寿命在多个节点中的第一节点上运行的虚拟机的平均寿命的预定范围内时,将虚拟机分配给第一节点。该方法还包括当在节点上并置具有不同寿命的虚拟机的第二策略被采取时并且预测寿命不在多个节点中的第二节点上运行的虚拟机的平均寿命的预定范围内时,将虚拟机分配给第二节点。15.在其他特征中,该方法还包括当预测寿命小于或等于第一预定值时,确定虚拟机属于第一类型,或者当预测寿命大于或等于第二预定值时,确定虚拟机属于第二类型,第二预定值大于第一预定值。该方法还包括当虚拟机和在第一节点上运行的虚拟机属于第一类型时,或者当虚拟机和在第一节点上运行的虚拟机属于第二类型时,将虚拟机分配给第一节点。16.在其他特征中,该方法还包括当预测寿命小于或等于第一预定值时,确定虚拟机属于第一类型,或者当预测寿命大于或等于第二预定值时,确定虚拟机属于第二类型,第二预定值大于第一预定值。该方法还包括当虚拟机属于第一类型并且在第二节点上运行的虚拟机属于第二类型时,或者当虚拟机属于第二类型并且在第二节点上运行的虚拟机属于第一类型时,将虚拟机分配给第二节点。17.在其他特征中,该方法还包括当虚拟机被分配给第一节点或第二节点时,更新第一节点或第二节点上的虚拟机的平均寿命。18.在其他特征中,该方法还包括当虚拟机在第一节点或第二节点上终止时,更新第一节点或第二节点上的虚拟机的平均寿命。19.在其他特征中,该方法还包括当一个或多个虚拟机在第一节点或第二节点上终止时,更新第一节点或第二节点上的虚拟机的平均寿命。20.在其他特征中,该方法还包括不跟踪多个节点中的每个节点处的虚拟机的预测寿命或实际寿命。21.在其他特征中,一种系统包括处理器和存储器、以及被存储在存储器中的机器可读指令。在由处理器执行时,机器可读指令将处理器配置为接收请求以将租户部署在云计算系统中的多个集群中的一个集群上,每个集群包括运行多个虚拟机的多个节点,并且每个集群包括预定量的资源。机器可读指令将处理器配置为收集关于针对与一个或多个租户相关联的多个虚拟机中的一个或多个虚拟机来分配多个集群中的资源有关的数据。机器可读指令将处理器配置为基于请求和所收集的数据,接收与最终将需要被分配用于部署租户的全套虚拟机的最大资源量有关的预测。机器可读指令将处理器配置为从多个集群中选择具有大于或等于最大资源量的未分配资源量的或者具有最大未分配资源量的集群。机器可读指令将处理器配置为将租户部署在所选择的集群上。22.在其他特征中,机器可读指令还将处理器配置为不允许单个租户跨两个或多个集群的部署。23.在其他特征中,机器可读指令还将处理器配置为在由于租户增长而导致的资源需求超出集群上可用的最大资源量或最大未分配资源量时,将租户迁移到不同的集群。24.在其他特征中,一种方法包括请求以将租户部署在云计算系统中的多个集群中的一个集群上,每个集群包括运行多个虚拟机的多个节点,并且每个集群包括预定量的资源。该方法还包括基于请求和针对多个集群中的一个或多个虚拟机的多个集群中的资源的分配,接收与最终将需要被分配用于部署租户的全套虚拟机的最大资源量有关的预测。该方法还包括从多个集群中选择具有未分配资源量大于或等于最大资源量的或者具有最大未分配资源量的集群。25.在其他特征中,该方法还包括将租户部署在所选择的集群上。26.在其他特征中,该方法还包括不允许单个租户跨两个或多个集群的部署。27.在其他特征中,该方法还包括在由于租户增长而导致的资源需求超出集群上可用的最大资源量或最大未分配资源量时,将租户迁移到不同的集群。28.从“具体实施方式”、“权利要求”和“附图”中,本公开的其他应用领域将变得很清楚。详细描述和具体示例仅用于说明的目的,并不旨在限制本公开的范围。附图说明29.图1是包括用于云计算系统的预测引擎和虚拟机分配器的资源管理系统的示例的简化示意图。30.图2是图1的资源管理系统的预测引擎的示例的简化示意图。31.图3是利用图1的资源管理系统来部署虚拟机的云计算系统的简化示例的功能框图。32.图4是利用图1的资源管理系统来部署虚拟机的图3所示的数据中心的简化示例的功能框图。33.图5是图3所示的集群的简化示例的功能框图。34.图6示出了集群中的修复缓冲器和向外扩展(scale-out)/增长缓冲器的简化示例。35.图7示出了不同类型的虚拟机的示例。36.图8是图示了用于使用每秒平均/最大硬盘驱动器(hdd)输入输出操作(iops)预测来最小化hdd绑定虚拟机的共址的方法的示例的流程图。37.图9是图示了用于使用虚拟机类别和平均/最大资源利用率预测来实现超额订阅的方法的示例的流程图。38.图10是图示了用于在相同服务器上分配具有相似/不同寿命的虚拟机的方法的示例的流程图。39.图11是图示了用于使用部署大小预测来选择用于部署虚拟机并且允许租户增长的适当集群的方法的示例的流程图。40.图12是分布式网络系统的简化示例的功能框图。41.图13是在图12的分布式网络系统中使用的客户端设备的简化示例的功能框图。42.图14是在图12的分布式网络系统中使用的服务器的简化示例的功能框图。43.在附图中,可以重复使用附图标记来标识相似和/或相同的元素。具体实施方式44.云基础设施中的资源利用不足的问题可以以很多方式被处理。例如,在云计算系统中,虚拟机(vm)分配器可以基于vm的最大资源需求而将vm紧密地打包到服务器上。如果vm分配器具有以下信息,则可以实现更紧密的打包:(1)关于实际vm资源需求的信息,而不仅是最大资源大小;和/或(2)关于vm是将运行面向用户的工作负载还是后台/批处理工作负载的信息。该信息可以在选择超额订阅物理服务器的vm共址、同时最小化vm干扰中帮助云计算系统的资源管理器。此外,如果前端可以具有关于租户的部署最终会变成多大规模的信息,则针对每个租户选择集群的云计算系统的前端可以减小用于向外扩展而预留的增长缓冲器的大小(下面参考图6说明)。45.相应地,如果关于未来vm和租户行为的准确预测可用,则可以显著提高云计算系统中的vm分配和资源管理的效率。可以利用关于vm和租户的历史数据来产生这样的预测。例如,历史数据可以指示很多vm角色表现出时间上的非常一致的峰值cpu利用率;执行面向用户的工作负载的vm角色随着时间始终一致;租户部署大小不太可能随时间变化很大;等等。在这些情况下,过去的行为是未来行为的合理预测因素。46.本公开的资源管理系统和方法从这些过去的行为中学习,并且在被请求时产生对未来行为的预测。例如,在选择服务器来运行特定vm部署之前,vm分配器可以从资源管理系统获取关于vm分配器将要分配的vm的潜在行为的任何预测。利用这些信息,vm分配器可以做出更明智的选择集合。47.图1示出了包括预测引擎2的资源管理系统1,预测引擎2可以向vm分配器4、电源控制器6和资源大小调节控制器8提供预测信息。vm分配器4可以基于对由预测引擎2提供的针对vm的一个或多个预测来决定放置vm的位置。用于服务器机架的电源控制器6可以从预测引擎2中找出当前运行的vm(vm角色)中的哪些vm可能是面向用户的,并且当机架处发生功率限制违规时(即,当机架处的功耗超出预定极限时)应当接收的机架的功率预算的比例大于非面向用户的vm。资源大小调节控制器8可以受益于每个vm角色的类似信息以及由预测引擎2提供的关于先前观察到的资源利用率峰值的数据,其可以被用于对被分配给vm的资源进行大小调节。48.图2图示了资源管理系统1的预测引擎2与其输入特征、学习技术和输出预测。预测引擎2可以使用数据挖掘和机器学习技术来标识可以在资源管理中利用的相关性。例如,预测引擎2可以接收大量客户、租户、分配和使用特征作为输入以用于学习目的。这些特征的示例包括客户名称、客户类型(例如,内部、外部)、部署类型(paas与iaas)、部署时间、vm数目、vm角色、vmid、vm资源利用率和关闭时间。49.在在线训练时段之后,资源管理系统1的其他组件可以利用这些特征的子集来查询预测引擎2,期望接收针对其他特征的预测。例如,vm分配器4可以在提供包括客户名称、客户类型、部署类型、部署时间和vm角色的信息的同时查询预测引擎2。然后,预测引擎2可以向vm分配器4提供对该客户的部署可能变得多大以及这些vm的资源利用率可能随时间增长多高的预测。类似地,电源控制器6可以用一组vmid查询预测引擎2,以期望接收关于这些vm中的哪些vm可能是面向用户的预测。资源大小调节控制器8可以使用预测来调节分配给vm的资源的大小(即,调节其量)。50.预测引擎2可以利用多个技术和算法来产生预测。例如,预测引擎2可以使用回归树来产生部署大小或vm寿命估计;预测引擎2可以对cpu利用率时间序列使用快速傅立叶变换以推断vm角色是否可能是面向用户的;等等。51.预测引擎2可以是云计算系统的每个可用性区域中的在线服务。预测引擎2可以实现离线和在线操作的组合。例如,预测cpu利用率可能会离线运行,并且可以产生在线更新的模型,其中短期租户操作在每个可用性区域中发生。52.由预测引擎2提供的预测的示例包括以下内容。1)vm寿命;2)vm平均和最大资源利用率(针对所有资源,而不仅是cpu);3)vm类别(可能是面向用户的与非面向用户的);4)部署大小;5)使用模式(例如,工作日期间使用但在周末闲置);等等。53.由预测引擎2提供的预测可以被用于改进云计算系统结构中的资源分配和vm放置的质量。例如,在选择在其上运行特定vm部署的服务器之前,vm分配器4可以从预测引擎2获得关于vm分配器4将要分配的vm的潜在行为的预测(例如,vm的预期寿命和预期最大资源利用率)。利用该信息,vm分配器4可以做出更明智的选择集合。虽然本公开引用了最大利用率,但是当最大利用率不合适时,预测引擎2还可以预测高百分位利用率。54.基于预测,vm分配器4可以执行vm在物理服务器上的放置,和/或前端可以执行集群选择。例如:1)vm寿命预测可以被用于在即将关闭(decommission)的服务器上启动临时vm;2)vm寿命预测可以被用于对具有相似(或不同)寿命的vm进行分组以帮助可用性/更新;3)vm最大资源利用率预测可以被用于对需要不同资源的vm进行分组(例如,将i/o绑定的vm与cpu绑定的vm组合,将高cpu使用率vm与低cpu使用率vm组合,等等);4)vm类别预测可以被用于实现仅运行特定工作负载的那些服务器的超额订阅(即,将面向用户的vm和超额订阅服务器与非面向用户的vm隔离);5)vm类别预测还可以被用于产生可以有助于功率限制的各种vm分配(例如,每个机箱可以具有可以被功率限制的一些非面向用户的vm);6)vm最大资源利用率预测也可以被用于执行激进的超额订阅,而没有耗尽物理资源的风险;7)vm部署大小预测可以被用于选择将允许部署增长的集群;等等。55.虽然设想了更多用例,但是下面将详细描述用于集群选择和服务器分配的以下特定用例。1)使用每秒平均/最大硬盘驱动器(hdd)输入/输出操作(iops)预测来最小化hdd绑定的vm的共址;2)使用vm类别和平均/最大利用率预测来实现超额订阅;3)在相同的服务器上混合具有相似/不同寿命的vm;4)使用部署大小预测来选择适当的集群并且允许增长;以及5)在相同聚合(例如,机箱)上混合不同类别的vm以有助于功率限制。56.本公开被组织如下。在详细讨论具体用例之前,参考图3-图7描述云计算系统、集群、修复和增长缓冲器以及vm类型的示例。随后,参考图8-图11详细描述上述具体用例。图3所示的云计算系统可以实现图1-图2所示的资源管理系统1并且可以实现参考图8-图11所描述的特定用例。此后,参考图12-图14描述分布式网络系统的简化示例,其可以被用于实现图3所示的云计算系统。57.图3示出了根据本公开的云计算系统(ccs)10的简化示例。云计算系统10包括云控制器12和至少一个数据中心14。虽然为简单起见仅示出了一个数据中心14,但是云控制器12可以与多个数据中心进行接口。此外,虽然数据中心14被示出为在云控制器12本地,但是一个或多个数据中心可以在地理上远离云控制器12,可以位于不同的地理位置(例如,在不同的时区、不同的国家或大陆等),并且可以经由各种网络与云控制器12通信。58.每个数据中心14包括多个结构控制器32-1、32-2、......、32-n(统称为结构控制器32)和对应的集群34-1、34-2、......、32-n(统称为集群34)。每个结构控制器32控制相应的集群34。每个集群34包括多个机架(如图4-图5所示),并且每个机架包括多个节点(如图5所示),节点在本公开内容中也称为服务器、主机或机器。每个结构控制器32与分配器36相关联,分配器36分配集群34内的资源以用于被托管在集群34上的客户服务的实例。59.云控制器12包括客户可以用来选择资源并且请求服务部署的门户20和软件开发工具包(sdk)22。云控制器12还包括云资源管理器24、计算资源提供器26和前端28。前端28与结构控制器32接口。云资源管理器24接收客户选择并且将客户选择转发给计算资源提供方26。计算资源提供方26基于客户选择生成租户模型。计算资源提供方26根据基于客户选择而生成的租户模型来向客户服务提供资源。计算资源提供方26通过与云存储装置(xstore)30、网络资源提供方31和结构控制器32接口来提供存储、网络和计算资源。计算资源提供方26和结构控制器32可以至少部分实现图1-图2所示的资源管理系统1。60.图4示出了数据中心(例如,图3所示的数据中心14)的简单示例。数据中心14包括vm分配器50和集群34。vm分配器50可以实现图1的vm分配器4。vm分配器50包括集群选择器52和多个准入控制器54-1、54-2、......、54-n(统称为准入控制器54)。每个准入控制器54与对应的集群34相关联。每个集群34包括分配和修复控制器60(被示出为分配和修复控制器60-1、60-2、......、60-n;每个集群一个分配和修复控制器)和一个或多个节点机架62(也称为服务器、主机或机器;并且示出为机架62-1、62-2、......、62-n)。分配和修复控制器60可以实现图3的vm分配器36。61.分配vm可以是多级分配操作。vm分配器50首先选择集群34中的与对应的准入控制器54相关联地分配vm的集群34。在vm分配器50选择集群34中的一个集群34以分配vm之后,取决于由客户指明的更新和故障域的数目以及其他资源并且基于由预测引擎2提供的预测,所选择的集群34的分配和修复控制器60将vm放置在所选择的集群34中的一个或多个机架62中的一个或多个节点上。62.基于集群34中的vm活动,集群和服务更新控制器56向集群选择器52和资源管理系统1提供更新,这可以由vm分配器50以及分配和修复控制器60来部分地实现。例如,vm活动可以包括集群34中的一个或多个vm的激活和终止。集群和服务更新控制器56还可以向集群选择器52和资源管理系统1提供与由于服务向外扩展而导致的增长缓冲器的使用、以及由于节点/机架故障而导致的修复缓冲器的使用有关的更新,这将在下面参考图6进行说明。63.图5示出了集群(例如,图3-图4所示的集群34)的示例。每个集群34包括多个机架62。每个机架62包括机架控制器70和多个节点72。每个机架控制器70包括控制到机架62中的多个节点72的功率分配的电源控制器(例如,图1所示的电源控制器6)。64.图6示出了集群(例如,图3-5所示的集群34)中的向外扩展/生长缓冲器和修复缓冲器的示例。向外扩展/生长缓冲器和修复缓冲器中的每个可以包括集群34内的多个节点72。如果节点72或机架62在集群34中发生故障,则在故障组件上运行的vm使用修复缓冲器中的多个节点而被修复。如果服务需要向外扩展(即,扩展超出所分配的资源,这需要附加资源而不是所分配的资源),则额外的vm被放置在集群34内。为了解决这些情况(修复和/或向外扩展)中的一者或两者,足够的节点被分配给相应的缓冲器。65.当在集群34中达到新的部署阈值时,集群34中不会发生新的vm部署。当集群34中达到向外扩展阈值时,集群34中的现有租户不能再增长。任何增长尝试导致向外扩展失败。如果集群34中的修复缓冲器耗尽,则无法修复任何节点/机架故障,并且发生修复故障。设置阈值确定缓冲器的大小(例如,太小、太大或平衡)。可以优化阈值,并且可以基于来自资源管理系统1的预测来最小化故障。66.图7示出了取决于其资源需求的不同类型的vm的示例。这些仅是示例,并且可以设想其他类型的vm类别。由于不同的资源需求,vm的类型或类别是分配决策中的重要考虑因素。例如,资源管理系统1可以收集和分析针对许多类型的vm的数据。基于该数据,资源管理系统1可以使用关于将被部署的vm的类型的信息,并且预测vm是面向用户的还是非面向用户的,预测vm的寿命,等等。67.相应地,在由云计算系统10实现时,资源管理系统1可以分析历史租户大小模式、vm寿命模式、资源利用模式等,并且从这些模式与客户、部署时间、vm类型、vm数目等的相关性中学习。基于分析和相关性,资源管理系统1可以生成上述各种预测,这些预测可以被用于改进云计算系统10中的vm分配和资源管理。例如,预测可以被用于基于如所预测的部署的预期完整大小来改进租户到集群的分配,将具有相似预期时间(如预测)的虚拟机分配给相同的服务器,对非面向用户的vm进行功率限制,同时通过基于预测来混合两种类型的vm来允许面向用户的vm使用全功率,等等。下面参考上述具体用例详细说明资源管理系统1的这些和其他特征。68.图8-图11描述了用于实现特定用例的方法。在以下方法的描述中,术语“控制”指代下面参考图12-图14描述的客户端和服务器应用366和386中的一个或多个,其实现资源管理系统1的一个或多个组件的所有或一些方面以及下面描述的用例的一个或多个方法。换言之,在以下方法的描述中使用的术语“控制”表示由图3所示的云计算系统10的一个或多个组件执行的、用以执行所描述的功能代码或指令。69.图8示出了用于第一用例的方法100,该方法涉及使用平均/最大hddiops预测来最小化hdd绑定vm的共址。在描述方法100之前,接下来描述第一用例。第一用例总体上取决于vm平均和最大资源利用率(对于所有资源,不仅是cpu)的预测,并且具体地取决于针对每个主机的当前平均和最大hddiops的预测。70.hddiops通常是主机上的性能关键资源。由于hddiops导致的vm之间的干扰可能严重降低vm的性能。相应地,由方法100提供的改进寻求将主机上的vm的组合平均和/或最大hddiops保持为接近集群的平均和/或最大hddiops。为了实现方法100,向vm分配器4添加规则以将每个服务器的预测的平均和/或最大hddiops与相应的集群范围的平均值(服务器平均值的平均值和/或服务器最大值的平均值)进行比较。跳过具有太高的预测平均和/或最大hddiops的主机(即,不被视为用于部署vm的可能候选)。每次vm被分配给主机或在主机处终止时,每主机和集群范围的平均和/或最大hddiops被更新。有效地,方法100可以向外扩展hdd绑定的vm,从而平衡hddiops并且减少vm之间的干扰的机会。71.以下是实现以上规则的伪代码的示例。以下代码假定跟踪平均和最大hddiops。[0072][0073]在vm分配时执行以下操作。[0074]update_host_iops_avg();//这将预测的平均值添加到针对主机的最近观察到的平均值[0075]update_host_iops_max();//这将预测的最大值添加到针对主机的最近观察到的最大值[0076]update_cluster_iops_avg();//这相应地更新服务器平均值的集群范围的平均值[0077]update_cluster_iops_max();//这相应地更新服务器最大值的集群范围的平均值[0078]当vm终止时,执行以下操作。[0079]update_host_iops_avg();//这从最近观察到的平均值中减去针对vm的预测的平均值[0080]update_host_iops_max();//这从最近观察到的最大值中减去针对vm的预测的最大值[0081]update_cluster_iops_avg();//这相应地更新服务器平均值的集群范围的平均值[0082]update_cluster_iops_max();//这相应地更新服务器最大值的集群范围的平均值[0083]备选方法是将具有以下项的n个主机标记为合格的:(1)最低当前平均和/或最大hddiops,以及(2)用于新vm的足够的可用资源。这种方法不需要预测。然而,这种方法要求重复排序当前的每主机平均和/或最大hddiops。[0084]注意,上述基于规则的方法不需要跟踪每个vm的实际平均和/或最大hddiops。针对每个vm的预测的平均和/或最大hddiops值可以从预测引擎2获得。该方法动态地跟踪每个主机的平均和/或最大hddiops,其可以从在ccs10上运行的其他服务获取。任何预测错误至少部分地通过该跟踪进行校正,因为预测不断被实际观测所取代。在预测引擎2对其预测具有低置信度的情况下,可以完全跳过该规则,并且可以将仍然考虑的所有主机标记为有资格用于下一规则(例如,另一用例的)。在这种低置信度的情况下,不执行与上述vm分配和终止相关联的操作。[0085]现在详细描述示出方法100的图8。在102处,控制从运行vm的节点收集关于hddiops的数据。在104处,基于所收集的数据来控制生成针对该节点的所观察到的hddiops值。观察到的hddiops值可以是平均或最大hddiops值或者两者。在106处,控制接收请求以将vm部署在节点中的一个节点上。在108处,控制接收针对vm的预测的hddiops值。预测的hddiops值是基于所收集的数据而生成的。预测的hddiops值可以是平均或最大的hddiops值或者两者。[0086]在110处,控制选择具有hddiops值小于针对节点所观察到的hddiops值的节点作为用于部署vm的目标节点。在112处,控制基于所选择的节点的hddiops值和vm的预测的hddiops值来确定针对所选择的节点的新的hddiops值。在114处,控制确定针对所选择的节点的新的hddiops值是否大于针对该节点的观察到的hddiops值。在116处,如果针对所选择的节点的新的hddiops值大于针对该节点的观察到的hddiops值,则控制确定是否选择另一节点作为用于部署vm的目标节点。如果选择另一节点作为用于部署vm的目标节点,则控制返回110。如果未选择另一节点作为用于部署vm的目标节点,则控制结束。[0087]在118处,如果在114处所针对选择的节点的新的hddiops值不大于针对该节点的观察到的hddiops值,则控制在所选择的节点上实例化或部署vm。在120处,控制基于vm的分配/终止来更新所选择的节点的hddiops值和观察到的节点的hddiops值。[0088]图9示出了用于第二用例的方法150,该方法涉及使用vm类别和平均/最大资源利用率预测来实现超额订阅。在描述方法150之前,接下来描述第二用例。第二用例取决于vm平均和最大资源利用率(针对所有资源,不仅是cpu)的预测以及vm类别的预测。[0089]在超额订阅中,来自非生产订阅的vm通常被分配给相同的主机,直到物理cpu核的超额订阅的最大级别。超额订阅管理可以通过以下而被改进:(1)使用比订阅级别的产品和非产品更精细的vm分类,以及(2)在做出分配决策时考虑vm的预期资源利用。用于改进超额订阅管理的方法150使用由使用对应vm角色(其中vm角色包括其订阅和部署id)的cpu利用率的过去历史的预测引擎2而预测的每角色vm类别(可能是面向用户/交互与非面向用户/背景/批)。用于改进超额订阅管理的方法150利用对重要资源(不仅是cpu核,还有诸如hddiops等其他参数)的平均和/或最大资源利用率预测,并且确保vm分配不可能耗尽超额订阅主机的物理资源。[0090]接下来是用于实现方法150的伪代码的示例。以下代码假定意图是限制资源的预测组合最大利用率(即,限制最大预测利用率的总和)。[0091]//max_cpu_oversubscription:超额订阅主机的最大可允许cpu超额订阅率[0092]//max_acceptable_utilization[i]:超额订阅主机的最大可允许资源i利用率[0093]if(new_vm_pred_user_facing)[0094]将仍然被考虑的具有用于vm的空间的所有非超额订阅主机标记为合格;[0095][0096][0097]在vm分配时执行以下操作。[0098][0099]当vm终止时,执行以下操作。[0100][0101]该方法不要求分配器跟踪每个vm(或甚至每个主机)的实际平均和/或最大资源利用率。针对每个vm以及其类别的预测平均值和/或最大值可以从预测引擎2获得。预测引擎2在vm类别的预测误差可以引起面向用户的vm将被分配给超额订阅主机。然而,vm角色类别在时间上总体上是一致的。因此,误预测的可能性非常小。然而,即使在罕见的类别误预测情况下,也可以使用相对较低的最大利用率极限来防止不良行为。针对vm的最大利用率的预测误差不太可能引起问题,除非预测引擎2低估了很多共址vm的这些值(共址vm的最大利用率可能不会同时发生)。如果意图是限制组合预测平均利用率,而不是限制组合预测最大利用率,则利用率误预测将更倾向于出现问题。在预测引擎2对其针对该vm的预测具有低置信度的情况下,可以安全地假定该vm是面向用户的并且将表现出高利用率。[0102]现在详细描述示出方法150的图9。在152处,控制按照vm类别(例如,面向用户、非面向用户)从运行虚拟机的多个节点收集关于用于节点的资源的利用率的数据。在154处,控制接收请求以将vm部署在节点中的一个上。在156处,基于所收集的数据,控制预测vm是面向用户的还是非面向用户的,并且预测vm的平均/最大资源利用率。在158处,基于预测,如果vm是面向用户的,则控制结束。在160处,基于预测,如果vm不面向用户,则控制选择超额订阅节点作为用于部署vm的目标。[0103]在162处,控制确定共址vm对所选择的超额订阅节点上的每个资源的预测使用是否大于预定极限。在164处,如果在162处共址vm对所选择的超额订阅节点上的每个资源的预测使用大于预定极限,则控制确定是否选择另一超额订阅节点作为用于部署vm的目标节点。如果选择另一超额订阅节点作为用于部署vm的目标节点,则控制返回到160。如果未选择另一超额订阅节点作为用于部署vm的目标节点,则控制结束。[0104]在166处,如果在162处共址vm对所选择的超额订阅节点上的每个资源的预测使用不大于预定极限,则控制在所选择的超额订阅节点上实例化或部署vm。在168处,控制基于vm的分配/终止来更新超额订阅节点上的每个资源的预测利用率。[0105]图10示出了用于第三用例的方法200,该方法涉及在相同服务器上分配具有相似/不同寿命的vm。在描述方法200之前,接下来描述第三用例。第三用例取决于对vm寿命的预测。[0106]大多数vm存活相对较短的时间(例如,小于1小时)。鉴于这种观察,vm分配器4可以实现第一策略以共址短寿命的vm(同时将它们与长寿命的vm隔离),使得可以快速释放大多数主机以用于维护(例如,软件更新)而不需要vm迁移。备选地,vm分配器4可以实现第二策略以共址具有不同寿命的vm,使得每个主机将仅具有在被要求维护时需要迁移的少量vm(长寿命的vm)。[0107]接下来是用以实现方法200的伪代码的示例。以下代码适用于上述共址策略中的任一种。在下面的代码中,close表示差异小于预定数目的标准偏差(例如,2个标准偏差)。[0108][0109]在vm分配时执行以下操作。[0110]compute_host_avg_and_two_std_dev();//基于新vm的预测寿命更新主机状态[0111]当vm终止时,执行以下操作。[0112]compute_host_avg_and_two_std_dev();//基于所完成的vm的预测寿命更新主机状态[0113]上述方法递增地跟踪vm的平均寿命和每个主机上的对应标准偏差。当考虑将vm分配给主机时,将针对vm的预测寿命与主机处的预测的平均vm寿命进行比较。如果策略是隔离短寿命和长寿命的vm,如果vm的预测寿命与主机处的当前vm寿命接近(close)(例如,在1个或2个标准偏差内),则将vm分配给主机。如果策略是在每个主机上混合短寿命和长寿命的vm,如果vm的预测寿命远离主机处的当前vm寿命(即,相差超过预定数目的标准偏差(例如,2个标准偏差)),则将vm分配给主机。[0114]注意,该方法不要求分配器跟踪每个主机处的所有vm的预测(或实际)寿命。可以使用当前预测的平均寿命和预测寿命与每个时间点的预测平均值之间的平方差的运行总和来简单地递增地计算标准偏差。可以从预测引擎2获得寿命预测。寿命误预测可能导致与期望的共址属性的偏差。然而,如果预测引擎2始终错误地预测寿命(这是不可能的),则这些影响可能是显著的。在低置信度预测的情况下,可以跳过上述分配和终止时间处的规则和更新(即,要分配的vm不计入其主机的平均值和标准偏差)。[0115]现在详细描述示出方法200的图10。在202处,控制收集与在多个节点上运行的虚拟机的寿命有关的数据。在204处,控制接收请求以将vm部署在节点中的一个节点上。在206处,基于所收集的数据,控制预测将被部署的vm的寿命,并且指示在每个节点上运行的vm的平均寿命。在208处,控制确定策略是是共址相似的还是不同的虚拟机(即,具有相似或不同的寿命的vm)。[0116]在210处,如果策略是将具有相似寿命的vm共址,则控制确定将被部署的虚拟机的预测寿命是否接近所选择的节点的平均寿命(例如,在2个标准偏差内)。如果将被部署的虚拟机的预测寿命不接近所选择的节点的平均寿命,则控制结束。在212处,如果将被部署的虚拟机的预测寿命接近所选择的节点的平均寿命,则控制在具有相似vm的所选择的节点上分配或部署vm(即,其中vm具有与将被部署的vm的预测寿命相似的寿命)。[0117]在214处,如果策略是将具有不同寿命的vm共址,则控制确定将被部署的虚拟机的预测寿命是否远离所选择的节点的平均寿命(即,不在预定数目的标准偏差之内或相差预定数目的标准偏差(例如,2个标准偏差))。如果将被部署的虚拟机的预测寿命不远离所选择的节点的平均寿命,则控制结束。在216处,如果将被部署的虚拟机的预测寿命远离所选择的节点的平均寿命,则控制在具有不同vm的所选择的节点上分配或部署vm(即,其中vm具有与将被部署的vm的预测寿命不同的寿命)。[0118]图11示出了用于第四用例的方法250,该方法涉及使用部署大小预测来选择适当的集群并且允许租户增长。在描述方法250之前,接下来描述第四用例。第四用例取决于对部署大小的预测。[0119]租户通常不能增长超过其首次指派的集群的容量。方法250最小化由租户增长导致的部署失败,同时允许减少每集群增长缓冲器的大小。方法250选择用于部署的适当的集群。方法250利用来自预测引擎2的部署大小预测来标记具有足够可用资源的集群作为用于每个新部署的合格目标。如果没有集群具有足够的资源,则方法250选择具有最大可用资源量的集群。[0120]接下来是用于实现方法250的伪代码的示例。[0121][0122]在vm分配时执行以下操作。[0123]update_cluster_free_resources();//从集群的空闲资源中减去vm的大小[0124]当vm终止时,执行以下操作。[0125]update_cluster_free_resources();//将vm的大小与集群的可用资源相加[0126]集群选择基础设施通常维护关于每个集群中的可用资源的信息。用于部署的预测大小可以从预测引擎2获得。部署大小的预测误差可能导致具有不足资源的集群被选择。这种情况可以与减少增长缓冲器大小的能力进行权衡(tradeoff)。取决于误预测率,可以减少增长缓冲器的大小,而不会显著增加部署失败。[0127]现在详细描述示出方法250的图11。在252处,控制收集针对vm在多个集群上的运行的资源分配数据。在254处,控制接收请求以将租户部署在在集群中的一个集群上。在256处,基于所收集的数据,控制预测用于租户的部署大小(即,租户将针对其所有vm需要的最大资源量)。换言之,预测将指示租户的vm的全面部署最终将需要的最大资源量。相应地,部署大小是最终将需要被分配用于相同租户部署中的全部vm集合的最大资源量。此外,当即将在集群中创建/放置/指派租户部署的第一vm时,预测是相关的。此后,将在被选择用于租户部署的第一vm的相同集群中创建/放置/指派相同租户部署的所有后续vm。[0128]在258处,控制确定具有大于针对租户的预测部署大小的未分配的资源量的集群是否可用。在260处,如果具有大于针对租户的预测部署大小的未分配的资源量的集群是可用的,则控制在该集群上部署租户(或更具体地,租户的第一vm)。[0129]在264处,如果具有大于针对租户的预测部署大小的未分配资源量的集群是不可用的,则控制选择具有最大未分配资源量的集群,并且该集群上部署租户(或更具体地,租户的第一vm)。[0130]在266处,在258或264处部署租户之后,控制确定由于租户增长而导致的资源需求是否大于预测的部署大小或集群上的可用资源(以较小者为准)。在268处,如果由于租户增长而导致的资源需求大于预测的部署大小或集群上的可用资源,则控制确定具有足够的资源来支持由于租户增长而增加的需求的另一集群是否是可用的。在270处,如果具有足够资源来支持由于租户增长而增加的需求的另一集群是可用的,则控制将租户迁移到新的集群。由于基于部署大小预测可以跨集群智能地放置租户部署,因此系统设计者可以更好地分配或调节(例如,减少)被预留用于租户增长的资源量(即,增长缓冲器的大小)。[0131]附加地,第五用例涉及在相同聚合(例如,机箱)上混合vm类别以有助于功率限制。该用例取决于vm类别预测(即,vm是面向用户的还是非面向用户的)。[0132]对面向用户的vm进行功率限制可能降低其性能,因此是不期望的。相反,如果需要,可以对非面向用户的vm在满足功率预算所需要的任何程度上进行功率限制。在相同聚合上混合vm类别确保可能必须进行功率限制的任何聚合,足够的非面向用户的vm可用于最小化对面向用户的vm进行功率限制的需求。此外,由于功率限制通常仅可以在完整主机的粒度上被应用,因此面向用户和非面向用户的vm可以在聚合内的不同主机上被隔离。[0133]该改进应用于任何聚合,例如任何机箱、任何机架、任何行(row)。然而,以下讨论涉及其在机箱级别的应用,因为这是当前可以限制功率的仅有级别(通过限制主机功率)。在这种情况下,分配器可以跨不同的机箱上分布非面向用户的vm,同时将它们集中在不与每个机箱内的面向用户的vm共享的主机子集上。相应地,每个机箱控制器将具有其可以利用的一些功率宽松,因为需要对其机箱进行功率限制。[0134]以下是实现上述方法的伪代码的示例。[0135][0136][0137]在vm分配时执行以下操作。[0138][0139][0140]当vm终止时,执行以下操作。[0141][0142]针对任何vm的预测类别可以从预测引擎2获得。vm类别中的预测错误可能导致面向用户(非面向用户)的vm将被分配在不太理想的机箱中或者与非面向用户(面向用户)的vm在相同节点上。除非预测引擎2始终错误地预测类别,否则这些场景都不是重要问题。然而,vm角色类别通常随着时间而保持一致,因此误预测的可能性非常小。为保守起见,可以处理低置信度预测,就好像vm将是面向用户的一样。[0143]上述改进总体上可以描述如下。分配器可以接收请求以将虚拟机部署在运行多个虚拟机的多个节点中的一个节点上,其中被供应给多个节点的总功率被限制为小于或等于预定值。分配器可以接收指示虚拟机属于适用于有限量的性能降级的第一类型(例如,非面向用户的vm)或不适用于性能降级的第二类型(例如,面向用户的vm)的预测。当虚拟机属于第二类型并且多个虚拟机中的至少一个属于第一类型时,分配器可以将虚拟机分配给多个节点中的一个节点。相应地,当多个节点的总功率需求超出预定值时,电源控制器可以减少可用于第一类型的多个虚拟机中的一个或多个的可用功率量。[0144]以下是可以实现本公开的系统和方法的分布式计算环境的简单示例。在整个本公开中,对诸如服务器、客户端设备、应用等术语的引用仅用于说明目的。术语服务器和客户端设备应当广义地被理解为表示包括一个或多个处理器和被配置为执行机器可读指令的存储器的计算设备。术语应用和计算机程序应当被广义地理解为表示由计算设备可执行的机器可读指令。[0145]图12示出了分布式网络系统300的简化示例。分布式网络系统300包括网络310、一个或多个客户端设备320-1、320-2、......、320-n(统称为客户端设备320)(其中n是大于或等于1的整数)和服务器330。网络310可以包括局域网(lan)、广域网(wan)(诸如互联网)或其他类型的网络(统称为网络310)。虽然仅示出了一个服务器,但是分布式网络系统300可以包括多个服务器。客户端设备320经由网络310与服务器330通信。客户端设备320和服务器330可以使用到网络310的无线和/或有线连接来连接到网络310。[0146]一个或多个服务器330和客户端设备320可以实现图3所示的云计算系统10的一个或多个组件。例如,一个服务器330可以实现云控制器12或云控制器12的计算资源提供器26,而一个或多个客户端设备320可以实现结构控制器32。备选地,一个或多个服务器330可以实现云控制器12的一个或多个组件。可以设想很多不同的实现配置。[0147]服务器330可以向客户端设备320提供多个服务。例如,服务器330可以执行多个软件应用。服务器330可以托管由多个软件应用利用并且由客户端设备320使用的多个数据库。此外,服务器330和客户端设备320可以执行实现资源管理系统1的一个或多个组件和用于上述用例的一个或多个方法的应用。[0148]图13示出了客户端设备320的简化示例。客户端设备320通常可以包括中央处理单元(cpu)或处理器350、一个或多个输入设备352(例如,小键盘、触摸板、鼠标等)、包括显示器356的显示子系统354、网络接口358、存储器360和大容量存储器362。[0149]网络接口358经由网络310将客户端设备320连接到分布式网络系统300。例如,网络接口358可以包括有线接口(例如,以太网接口)和/或无线接口(例如,wi-fi、bluetooth、近场通信(nfc)或其他无线接口)。存储器360可以包括易失性或非易失性存储器、高速缓存或其他类型的存储器。大容量存储器362可以包括闪存、硬盘驱动器(hdd)或其他大容量存储设备。[0150]客户端设备320的处理器350执行操作系统(os)364和一个或多个客户端应用366。客户端应用366包括经由网络310将客户端设备320连接到服务器330的应用。客户端设备320经由网络310访问由服务器330执行的一个或多个应用。客户端应用366还可以包括实现资源管理系统1的一个或多个组件和用于上述用例的一个或多个方法的全部或一些方面的应用。[0151]图14示出了服务器330的简化示例。服务器330通常包括一个或多个cpu或处理器370、一个或多个输入设备372(例如,键盘、触摸板、鼠标等)、包括显示器376的显示子系统374、网络接口378、存储器380和大容量存储器382。[0152]网络接口378经由网络310将服务器330连接到分布式网络系统300。例如,网络接口378可以包括有线接口(例如,以太网接口)和/或无线接口(例如,wi-fi、bluetooth、近场通信(nfc)或其他无线接口)。存储器380可以包括易失性或非易失性存储器、高速缓存或其他类型的存储器。大容量存储器382可以包括闪存、一个或多个硬盘驱动器(hdd)或其他大容量存储设备。[0153]服务器330的处理器370执行操作系统(os)384和一个或多个服务器应用386。服务器应用386可以包括实现资源管理系统1的一个或多个组件和用于上述用例的一个或多个方法的全部或一些方面的应用。大容量存储器382可以存储一个或多个数据库388,数据库388存储由服务器应用386使用以执行相应功能的数据结构。[0154]前面的描述本质上仅是说明性的,而决不是要限制本公开、其应用或用途。本公开的广泛教导可以以各种形式实现。因此,尽管本公开包括特定示例,但是本公开的真实范围不应当受此限制,因为在研究了附图、说明书和所附权利要求之后,其他修改将变得很清楚。应当理解,方法内的一个或多个步骤可以以不同的顺序(或同时)执行,而不改变本公开的原理。此外,尽管上面将每个实施例描述为具有某些特征,但是关于本公开的任何实施例描述的那些特征中的任何一个或多个可以在任何其他实施例中实现和/或与任何其他实施例的特征组合,即使该组合没有明确描述。换言之,所描述的实施例不是相互排斥的,并且一个或多个实施例彼此的排列仍然在本公开的范围内。[0155]元件之间(例如,模块、电路元件、半导体层等之间)的空间和功能关系使用各种术语而被描述,包括“连接”、“接合”、“耦合”、“邻近”、“相邻”、“之上”、“上方”、“下方”和“设置”。除非明确地描述为“直接”,否则当在上面的公开内容中描述第一和第二元素之间的关系时,该关系可以是直接关系,其中在第一和第二元素之间不存在其他中间元素,但该关系也可以是间接关系,其中在第一和第二元件之间存在(空间或功能上)一个或多个中间元件。如本文中使用的,短语a、b和c中的至少一个应当被解释为使用非排他性逻辑“或”表示逻辑(a“或”b“或”c),并且不应当被解释为表示“a中的至少一个、b中的至少一个、以及c中的至少一个”。[0156]在附图中,如由箭头所指示的箭头方向通常展示图示所关注的信息流(诸如数据或指令)。例如,当元素a和元素b交换各种信息但从元素a传输到元素b的信息与图示相关时,箭头可以从元素a指向元素b。这个单向箭头并不表示没有其他信息从元素b传输到元素a。此外,对于从元素a发送到元素b的信息,元素b可以向元素a发送对信息的请求或接收对信息的确认。[0157]术语存储器是术语计算机可读介质或机器可读介质的子集。本文中使用的术语计算机可读介质或机器可读介质不涵盖通过介质传播的瞬时电信号或电磁信号(诸如在载波上);因此,术语“计算机可读介质”或“机器可读介质”可以被认为是有形的和非瞬态的。非瞬态有形计算机可读介质或机器可读介质的非限制性示例是非易失性存储器电路(诸如闪存电路、可擦除可编程只读存储器电路或掩模只读存储器电路)、易失性存储器电路(诸如静态随机存取存储器电路或动态随机存取存储器电路)、磁存储介质(诸如模拟或数字磁带或硬盘驱动器)和光存储介质(诸如cd、dvd或蓝光光盘)。[0158]在本技术中,被描述为具有特定属性或执行特定操作的装置元件被具体配置为具有那些特定属性并且执行那些特定操作。具体地,对用于执行动作的元件的描述表示该元件被配置为执行该动作。元件的配置可以包括对元件的编程,诸如通过在与元件相关联的非瞬态有形计算机可读介质上编码指令。[0159]本技术中描述的装置和方法可以由通过配置通用计算机以执行计算机程序中包含的一个或多个特定功能而创建的专用计算机而被部分或全部地实现。上述功能块、流程图组件和其他元件用作软件规范,其可以通过熟练技术人员或程序员的例行工作转换成计算机程序。[0160]计算机程序包括存储在至少一个非瞬态有形计算机可读介质上的处理器可执行指令。计算机程序还可以包括或依赖于存储的数据。计算机程序可以包括与专用计算机的硬件交互的基本输入/输出系统(bios)、与专用计算机的特定设备交互的设备驱动程序、一个或多个操作系统、用户应用、后台服务、后台应用等。[0161]计算机程序可以包括:(i)将被解析的描述性文本,诸如html(超文本标记语言)、xml(可扩展标记语言)、或json(javascript对象表示法),(ii)汇编代码,(iii)由编译器从源代码生成的对象代码,(iv)用于由解释器执行的源代码,(v)用于由即时编译器编译和执行的源代码等。仅作为示例,可以使用来自以下语言的语法来编写源代码,包括c、c++、c#、objective-c、swift、haskell、go、sql、r、lisp、fortran、perl、pascal、curl、ocaml、html5(超文本标记语言第5版)、ada、asp(动态服务器网页)、php(php:超文本预处理器)、scala、eiffel、smalltalk、erlang、ruby、visuallua、matlab、simulink和[0162]权利要求中所述的任何元素均不是35u.s.c§112(f)意义上的装置加功能元素,除非使用短语“用于……的部件”明确叙述元素或者在使用短语“用于……的操作”或“用于……的步骤”的方法权利要求的情况下。当前第1页12当前第1页12
技术特征:
1.一种方法,包括:接收请求以将虚拟机部署在来自云计算系统中的、运行多个虚拟机的多个节点中的节点上;接收针对所述虚拟机的预测寿命;针对来自所述多个节点中的每个节点标识平均寿命,所述平均寿命包括在来自所述多个节点中的给定节点上运行的虚拟机的平均预测寿命,并且其中所述平均寿命指示在所述给定节点上运行的虚拟机终止之前的平均持续时间;当所述预测寿命在所述多个节点中的第一节点上运行的虚拟机的所述平均寿命的预定范围内时,将所述虚拟机分配给所述第一节点,并且在所述第一节点上实例化所述虚拟机;以及当所述预测寿命不在所述多个节点中的所述第一节点上运行的虚拟机的所述平均寿命的所述预定范围内时,将所述虚拟机分配给来自所述多个节点中的不同节点,并且在来自所述多个节点中的所述不同节点上实例化所述虚拟机。2.根据权利要求1所述的方法,其中所述预定范围包括与在所述多个节点中的每个节点上运行的虚拟机的当前平均寿命的预定数目的标准偏差。3.根据权利要求1所述的方法,其中将所述虚拟机分配给所述第一节点还基于可应用于所述第一节点的策略,所述策略与确保所述第一节点上的每个虚拟机具有小于或等于阈值寿命的寿命相关联。4.根据权利要求1所述的方法,其中将所述虚拟机分配给所述不同节点还基于可应用于所述不同节点的策略,所述策略与限制所述节点上的具有大于或等于阈值寿命的寿命的虚拟机的数目相关联。5.根据权利要求1所述的方法,其中接收针对所述虚拟机的所述预测寿命包括:收集关于所述多个虚拟机的寿命的数据;以及基于所述虚拟机的特性和所收集的所述数据,生成针对所述虚拟机的所述预测寿命。6.根据权利要求1所述的方法,还包括通过以下项来标识在所述多个节点中的每个节点上运行的虚拟机的所述平均寿命:收集关于所述云计算系统中的所述多个虚拟机的寿命的数据;以及基于所收集的所述数据,生成在所述多个节点中的每个节点上运行的虚拟机的所述平均寿命。7.根据权利要求1所述的方法,还包括:基于分配所述虚拟机来确定在所述多个节点中的每个节点上运行的虚拟机的经更新的平均寿命。8.根据权利要求7所述的方法,还包括:接收第二请求以将第二虚拟机部署在来自所述云计算系统中的、运行所述多个虚拟机的所述多个节点中的节点上;接收针对附加的所述第二虚拟机的第二预测寿命;当所述第二预测寿命在所述多个节点中的所述第一节点上运行的虚拟机的所述经更新的平均寿命的所述预定范围内时,将所述第二虚拟机分配给所述第一节点;以及当所述第二预测寿命不在所述多个节点中的所述第一节点上运行的虚拟机的所述经更新的平均寿命的所述预定范围内时,将所述第二虚拟机分配给来自所述多个节点中的不
同节点。9.一种系统,包括:一个或多个处理器;存储器,其与所述一个或多个处理器电子通信;以及指令,其被存储在所述存储器中,所述指令能够由所述一个或多个处理器执行以:接收请求以将虚拟机部署在来自云计算系统中的、运行多个虚拟机的多个节点中的节点上;接收针对所述虚拟机的预测寿命;确定所述预测寿命在来自所述多个节点中的第一节点上运行的虚拟机的平均寿命的预定范围内,所述平均寿命包括在来自所述多个节点中的给定节点上运行的虚拟机的平均预测寿命,并且其中所述平均寿命指示在所述给定节点上运行的虚拟机终止之前的平均持续时间;标识针对所述第一节点的分配策略,所述分配策略包括所述第一节点上的虚拟机具有在针对所述第一节点的所述平均寿命的所述预定范围内的寿命的偏好;基于根据针对所述第一节点的所述分配策略确定所述预测寿命在所述平均寿命的所述预定范围内,将所述虚拟机分配给所述第一节点;以及在所述第一节点上实例化所述虚拟机。10.根据权利要求9所述的系统,其中所述预定范围包括与在所述多个节点中的每个节点上运行的虚拟机的当前平均寿命的预定数目的标准偏差。11.根据权利要求9所述的系统,其中可应用于所述第一节点的所述分配策略包括与确保所述第一节点上的每个虚拟机具有小于或等于阈值寿命的寿命相关联的策略。12.根据权利要求9所述的系统,还包括指令,所述指令能够由所述一个或多个处理器执行以:收集关于所述云计算系统中的所述多个虚拟机的寿命的数据;以及基于所收集的所述数据,标识在所述第一节点上运行的虚拟机的平均寿命,并且标识针对所述虚拟机的所述预测寿命是基于所述虚拟机的特性和所收集的所述数据。13.根据权利要求9所述的系统,还包括指令,所述指令能够由所述一个或多个处理器执行以:响应于将所述虚拟机分配给所述第一节点,基于针对所述虚拟机的所述预测寿命来确定在所述第一节点上运行的虚拟机的经更新的平均寿命。14.根据权利要求13所述的系统,还包括指令,所述指令能够由所述一个或多个处理器执行以:接收第二请求以将第二虚拟机部署在来自所述云计算系统中的、运行所述多个虚拟机的所述多个节点中的节点上;接收针对所述第二虚拟机的第二预测寿命;以及基于根据针对所述第一节点的所述分配策略确定所述第二预测寿命在所述第一节点上运行的虚拟机的所述经更新的平均寿命的所述预定范围内,将所述第二虚拟机分配给所述第一节点。15.一种系统,包括:一个或多个处理器;
存储器,其与所述一个或多个处理器电子通信;以及指令,其被存储在所述存储器中,所述指令能够由所述一个或多个处理器执行以:接收请求以将虚拟机部署在来自云计算系统中的、运行多个虚拟机的多个节点中的节点上;接收针对所述虚拟机的预测寿命;确定所述预测寿命在来自所述多个节点中的第一节点上运行的虚拟机的平均寿命的预定范围之外,所述平均寿命包括在来自所述多个节点中的给定节点上运行的虚拟机的平均预测寿命,并且其中所述平均寿命指示在所述给定节点上运行的虚拟机终止之前的平均持续时间;标识针对所述第一节点的分配策略,所述分配策略包括所述第一节点上的虚拟机具有在针对所述第一节点的所述平均寿命的所述预定范围之外的寿命的偏好;基于根据针对所述第一节点的所述分配策略确定所述预测寿命在所述平均寿命的所述预定范围之外,将所述虚拟机分配给所述第一节点;以及在所述第一节点上实例化所述虚拟机。16.根据权利要求15所述的系统,其中所述预定范围包括与在所述多个节点中的每个节点上运行的虚拟机的当前平均寿命的预定数目的标准偏差。17.根据权利要求15所述的系统,其中可应用于所述第一节点的所述分配策略包括与限制所述节点上的具有大于或等于阈值寿命的寿命的虚拟机的数目相关联的策略。18.根据权利要求15所述的系统,还包括指令,所述指令能够由所述一个或多个处理器执行以:收集关于所述云计算系统中的所述多个虚拟机的寿命的数据;以及基于所收集的所述数据,标识在所述第一节点上运行的虚拟机的平均寿命,并且标识针对所述虚拟机的所述预测寿命是基于所述虚拟机的特性和所收集的所述数据。19.根据权利要求15所述的系统,还包括指令,所述指令能够由所述一个或多个处理器执行以:响应于将所述虚拟机分配给所述第一节点,基于针对所述虚拟机的所述预测寿命来确定在所述第一节点上运行的虚拟机的经更新的平均寿命。20.根据权利要求19所述的系统,还包括指令,所述指令能够由所述一个或多个处理器执行以:接收第二请求以将第二虚拟机部署在来自所述云计算系统中的、运行所述多个虚拟机的所述多个节点中的节点上;接收针对所述第二虚拟机的第二预测寿命;以及基于根据针对所述第一节点的所述分配策略确定所述第二预测寿命在所述第一节点上运行的虚拟机的所述经更新的平均寿命的所述预定范围之外,将所述第二虚拟机分配给所述第一节点。

技术总结
本公开的各实施例涉及云计算系统中的用于虚拟机的资源管理。一种系统,接收请求以将虚拟机部署在运行多个虚拟机的多个节点中的一个节点上。该系统接收针对虚拟机的预测寿命以及对在多个节点中的每个节点上运行的虚拟机的平均寿命的指示。当在节点上并置具有相似寿命的虚拟机的第一策略被采取时,并且当预测寿命在第一节点上运行的虚拟机的平均寿命的预定范围内时,该系统将虚拟机分配给第一节点。当在节点上并置具有不同寿命的虚拟机的第二策略被采取时,并且预测寿命不在第二节点上运行的虚拟机的平均寿命的预定范围内时,该系统将虚拟机分配给第二节点。统将虚拟机分配给第二节点。统将虚拟机分配给第二节点。


技术研发人员:R
受保护的技术使用者:微软技术许可有限责任公司
技术研发日:2018.01.30
技术公布日:2023/7/22
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐