一种云平台资源的缩容方法、装置与系统.pdf

上传人:Y94****206 文档编号:4064023 上传时间:2018-08-13 格式:PDF 页数:26 大小:1.86MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410848185.1

申请日:

2014.12.29

公开号:

CN104539708A

公开日:

2015.04.22

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 29/08申请日:20141229|||公开

IPC分类号:

H04L29/08

主分类号:

H04L29/08

申请人:

杭州华为数字技术有限公司

发明人:

叶会; 王提政

地址:

310052浙江省杭州市滨江区滨兴路301号3幢A楼301室

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明实施例提供了一种云平台资源的缩容方法、装置与系统。接收对云平台上目标应用的实例删除请求,实例删除请求携带应用标识和数量标识,数量标识表示目标应用需要删除的实例的数量为N;根据目标应用的标识从云平台中查找出目标虚拟机,所有的目标虚拟机都包含目标应用的实例;获得目标虚拟机中每个实例所属应用的种类和每种应用的实例的数量;根据目标虚拟机中每个实例所属应用的种类和每种应用的实例的数量,采用预设的缩容策略在目标虚拟机中删除所述目标应用的N个实例。本发明采用一定的策略,增加缩容后出现空闲虚拟机的可能性,同时使实例尽量集中在少数的几台虚拟机中,以提高虚拟机资源的利用率,节约运营成本。

权利要求书

权利要求书1.  一种云平台资源的缩容方法,所述云平台资源为云平台上的虚拟机资源,虚 拟机包含应用的实例,其特征在于,所述方法包括: 接收对云平台上目标应用的实例删除请求,所述实例删除请求携带数量标识和所 述目标应用的标识;所述数量标识表示所述目标应用需要删除的实例的数量为 N,N为大于0的整数; 根据所述目标应用的标识从所述云平台中查找出目标虚拟机,所述目标虚拟机为 所有包含所述目标应用的实例的虚拟机; 获得所述目标虚拟机中每个实例所属应用的种类和每种应用的实例的数量; 根据所述目标虚拟机中每个实例所属应用的种类和每种应用的实例的数量,采用 预设的缩容策略在所述目标虚拟机中删除所述目标应用的N个实例。 2.  如权利要求1所述方法,其特征在于,在采用预设的缩容策略在所述目标虚拟 机中删除所述目标应用的N个实例之后,所述方法还包括: 检查所述目标虚拟机中是否出现空闲虚拟机,所述空闲虚拟机中包含的实例数量 为零; 如果检查到所述目标虚拟中出现空闲虚拟机,释放所述空闲虚拟机。 3.  如权利要求1所述方法,其特征在于,所述目标虚拟机中只包括一个特殊虚拟 机,所述特殊虚拟机中只包含所述目标应用的实例,所述特殊虚拟机中包含的实 例的总数大于或等于N,所述采用预设的缩容策略在所述目标虚拟机中删除所述 目标应用的N个实例包括: 在所述特殊虚拟机中删除N个实例。 4.  如权利要求1所述方法,其特征在于,所述目标虚拟机中包括至少两个特殊虚 拟机,所述特殊虚拟机中只包含所述目标应用的实例,所有特殊虚拟机中包含的 实例的总数大于或等于N; 所述采用预设的缩容策略在所述目标虚拟机中删除所述目标应用的N个实例包 括: 按照各个特殊虚拟机中包含的实例数量从少到多的顺序,从所述至少一个特殊虚 拟机中删除N个实例。 5.  如权利要求4所述方法,其特征在于,所述按照各个特殊虚拟机中包含的实例 数量从少到多的顺序,从所述至少一个特殊虚拟机中删除N个实例具体包括: 若包含的实例数量最少的特殊虚拟机中包含的实例数量大于或等于N,在所述实 例数量最少的特殊虚拟机中删除N个实例。 6.  如权利要求4所述方法,其特征在于,所述按照各个特殊虚拟机中包含的实例 数量从少到多的顺序,从所述至少一个特殊虚拟机中删除N个实例具体包括: 若包含的实例数量最少的特殊虚拟机中包含的实例数量小于N,按照所述顺序在 前M个特殊虚拟机中删除所有的实例,已删除数量记为N-X个,使所述顺序中第 M+1个特殊虚拟机中包含的实例的数量大于或等于X,X为所述目标应用的实例 的剩余删除数量,M和X均为大于0的整数; 在所述顺序中第M+1个特殊虚拟机中删除X个实例。 7.  如权利要求1所述方法,其特征在于,所述目标虚拟机中包括至少一个特殊虚 拟机,所述特殊虚拟机中只包含所述目标应用的实例,所有特殊虚拟机中实例的 总数小于N; 所述采用预设的缩容策略在所述目标虚拟机中删除所述目标应用的N个实例包 括: 删除所有特殊虚拟机中所有的实例,已删除数量记为N-Y; 按照各个剩余目标虚拟机中包含的实例总数从少到多的顺序,从至少一个剩余目 标虚拟机中删除所述目标应用的Y个实例,Y为所述目标应用的实例的剩余删除 数量,Y为大于0的整数。 8.  如权利要求7所述方法,其特征在于,所述按照各个剩余目标虚拟机中包含的 实例总数从少到多的顺序,从至少一个剩余目标虚拟机中删除所述目标应用的Y 个实例具体包括: 若包含的实例总数最少的剩余目标虚拟机中包含所述目标应用的实例数量大于 或等于Y,在所述包含的实例总数最少的剩余目标虚拟机中删除所述目标应用的 Y个实例。 9.  如权利要求7所述方法,其特征在于,所述按照各个剩余目标虚拟机中包含的 实例总数从少到多的顺序,从至少一个剩余目标虚拟机中删除所述目标应用的Y 个实例具体包括: 若包含的实例总数最少的剩余目标虚拟机中包含所述目标应用的实例数量小于 Y,按照所述顺序在前M1个剩余目标虚拟机中删除所述目标应用所有的实例,已 删除数量记为Y-X1个,使所述顺序中第M1+1个剩余目标虚拟机中包含所述目标 应用的实例的数量大于或等于X1,所述X1为所述目标应用的实例的剩余删除数 量,所述M1和所述X1均为大于0的整数; 在所述顺序中第M1+1个剩余目标虚拟机中删除所述所述目标应用的X1个实例。 10.  如权利要求1所述方法,其特征在于,所述采用预设的缩容策略在所述目标虚 拟机中删除所述目标应用的N个实例包括: 按照各个目标虚拟机中包含的实例总数从少到多的顺序,从至少一个目标虚拟机 中删除所述目标应用的N个实例。 11.  如权利要求10所述方法,其特征在于,所述按照各个目标虚拟机中包含的实 例总数从少到多的顺序,从至少一个目标虚拟机中删除所述目标应用的N个实例 具体包括: 若包含的实例总数最少的目标虚拟机中包含所述目标应用的实例数量大于或等 于N,在所述包含的实例总数最少的目标虚拟机中删除所述目标应用的N个实例。 12.  如权利要求10所述方法,其特征在于,所述按照各个目标虚拟机中包含的实 例总数从少到多的顺序,从至少一个目标虚拟机中删除所述目标应用的N个实例 具体包括: 若包含的实例总数最少的目标虚拟机中包含所述目标应用的实例数量小于N,按 照所述顺序在前M2个目标虚拟机中删除所述目标应用所有的实例,已删除数量 记为N-X2个,使所述顺序中第M2+1个目标虚拟机中包含所述目标应用的实例的 数量大于或等于X2,X2为所述目标应用的实例的剩余删除数量,M2和X2均为大 于0的整数; 在所述顺序中第M2+1个目标虚拟机中删除所述目标应用的X2个实例。 13.  如权利要求7-12中任一项所述方法,其特征在于,当多个目标虚拟机中各自 包含的实例总数相同时,优先删除应用种类数最少的目标虚拟机中所包含的所述 目标应用的实例。 14.  如权利要求7-12中任一项所述方法,其特征在于,当多个目标虚拟机中各自 包含的实例总数相同,并且各自包含的应用种类数也相同时,优先删除包含所述 目标应用的实例数量最少的目标虚拟机中所包含的目标应用的实例。 15.  如权利要求4-12任一项所述方法,其特征在于,当多个目标虚拟机中各自包 含的实例总数相同,各自包含的应用种类数也相同,并且各自包含所述目标应用 的实例的数量也相同时,优先删除所述目标应用启动时间最晚或最早的实例所在 的目标虚拟机中所包含的目标应用的实例,或随机选择在所述多个目标虚拟机中 的任何一个虚拟机中删除所述目标应用的实例。 16.  一种云平台资源的缩容装置,其特征在于,所述装置包括: 接收模块,用于接收对云平台上目标应用的实例删除请求,所述实例删除请求携 带数量标识和所述目标应用的标识;所述数量标识表示所述目标应用需要删除的 实例的数量为N,N为大于0的整数; 查找模块,用于根据所述接收模块接收到目标应用的标识从所述云平台中查找出 目标虚拟机,所述目标虚拟机为所有包含所述目标应用的实例的虚拟机; 获得模块,用于获得所述查找模块查找到的目标虚拟机中每个实例所属应用的种 类和每种应用的实例的数量; 策略模块,用于根据所述获得模块获得的所述目标虚拟机中每个实例所属应用的 种类和每种应用的实例的数量,采用预设的缩容策略在所述目标虚拟机中删除所 述目标应用的N个实例。 17.  如权利要求16所述装置,其特征在于,所述装置还包括检查模块和释放模块, 所述检查模块用于检查所述目标虚拟机中是否出现空闲虚拟机,所述空闲虚拟机 中包含的实例数量为零; 如果所述检查模块检查到所述目标虚拟中出现空闲虚拟机,所述释放模块用于释 放所述空闲虚拟机。 18.  如权利要求16所述装置,其特征在于,所述策略模块包括计数单元和删除单 元;所述目标虚拟机中只包括一个特殊虚拟机,所述特殊虚拟机中只包含所述目 标应用的实例; 所述计数单元用于判定所述特殊虚拟机中实例的总数与N的关系; 若所述计数单元判定所述特殊虚拟机中实例的总数大于或等于N, 则所述删除单元用于从所述特殊虚拟机中删除N个实例。 19.  如权利要求16所述装置,其特征在于,所述策略模块包括计数单元和删除单 元;所述目标虚拟机中包括至少两个特殊虚拟机,所述特殊虚拟机中只包含所述 目标应用的实例; 所述计数单元用于判定所有特殊虚拟机中实例的总数与N的关系; 若所述计数单元判定所有特殊虚拟机中实例的总数大于或等于N, 则所述删除单元用于按照各个特殊虚拟机中包含的实例数量从少到多的顺序,从 所述至少一个特殊虚拟机中删除N个实例。 20.  如权利要求19所述装置,其特征在于,所述计数单元还用于判定包含的实例 数量最少的特殊虚拟机中实例的数量与N的关系; 若所述计数单元判定包含的实例数量最少的特殊虚拟机中实例的数量大于或等 于N,所述删除单元具体用于在所述实例数量最少的特殊虚拟机中删除N个实例。 21.  如权利要求19所述装置,其特征在于,所述计数单元还用于判定包含的实例 数量最少的特殊虚拟机中实例的数量与N的关系; 若所述计数单元判定包含的实例数量最少的特殊虚拟机中实例的数量小于N,所 述删除单元具体用于: 按照所述顺序在前M个特殊虚拟机中删除所有的实例,已删除数量记为N-X个, 使所述顺序中第M+1个特殊虚拟机中包含的实例的数量大于或等于X,X为所述 目标应用的实例的剩余删除数量,M和X均为大于0的整数; 在所述顺序中第M+1个特殊虚拟机中删除X个实例。 22.  如权利要求16所述装置,其特征在于,所述策略模块包括计数单元和删除单 元;所述目标虚拟机中包括至少一个特殊虚拟机,所述特殊虚拟机中只包含所述 目标应用的实例; 所述计数单元用于判定所有特殊虚拟机中实例的总数与N的关系; 若所述计数单元判定所有特殊虚拟机中实例的总数小于N,所述删除单元用于: 删除所有特殊虚拟机中所有的实例,已删除数量记为N-Y; 按照各个剩余目标虚拟机中包含的实例总数从少到多的顺序,从至少一个剩余目 标虚拟机中删除所述目标应用的Y个实例,Y为所述目标应用的实例的剩余删除 数量,Y为大于0的整数。 23.  如权利要求22所述装置,其特征在于,所述计数单元还用于判定包含的实例 数量最少的剩余目标虚拟机中包含的目标应用的实例数量与Y的关系; 若所述计数单元判定所述包含的实例数量最少的剩余目标虚拟机中包含的目标 应用的实例的数量大于或等于Y,所述删除单元具体用于在所述包含的实例数量 最少的特殊虚拟机中删除所述目标应用的Y个实例。 24.  如权利要求22所述装置,其特征在于,所述计数单元还用于判定包含的实例 数量最少的剩余目标虚拟机中包含的目标应用的实例数量与Y的关系; 若所述计数单元判定所述包含的实例数量最少的剩余目标虚拟机中包含的目标 应用的实例的数量小于Y,所述删除单元具体用于: 按照所述顺序在前M1个剩余目标虚拟机中删除所述目标应用所有的实例,已删 除数量记为Y-X1个,使所述顺序中第M1+1个剩余目标虚拟机中包含所述目标应 用的实例的数量大于或等于X1,X1为所述目标应用的实例的剩余删除数量,M1 和X1均为大于0的整数; 在所述顺序中第M1+1个剩余目标虚拟机中删除所述所述目标应用的X1个实例。 25.  如权利要求16所述装置,其特征在于,所述策略模块具体用于按照各个目标 虚拟机中包含的实例总数从少到多的顺序,从至少一个目标虚拟机中删除所述目 标应用的N个实例。 26.  如权利要求25所述装置,其特征在于,所述策略模块包括计数单元和删除单 元;所述计数单元用于判定包含的实例数量最少的目标虚拟机中包含的所述目标 应用的实例数量与N的关系; 若所述计数单元判定所述包含的实例总数最少的目标虚拟机中包含所述目标应 用的实例数量大于或等于N,所述删除单元具体用于在所述包含的实例总数最少 的目标虚拟机中删除所述目标应用的N个实例。 27.  如权利要求25所述装置,其特征在于,所述策略模块包括计数单元和删除单 元;所述计数单元用于判定包含的实例数量最少的目标虚拟机中包含的所述目标 应用的实例数量与N的关系; 若所述计数单元判定所述包含的实例总数最少的目标虚拟机中包含所述目标应 用的实例数量小于N,所述删除单元具体用于: 按照所述顺序在前M2个目标虚拟机中删除所述目标应用所有的实例,已删除数 量记为N-X2个,使所述顺序中第M2+1个目标虚拟机中包含所述目标应用的实例 的数量大于或等于X2,X2为所述目标应用的实例的剩余删除数量,M2和X2均为 大于0的整数;在所述顺序中第M2+1个目标虚拟机中删除所述目标应用的X2个实 例。 28.  一种云平台资源的缩容系统,其特征在于,所述系统包括: 用户终端和云平台; 所述用户终端用于向所述云平台发送对云平台上目标应用的实例删除请求,所述 实例删除请求携带数量标识和所述目标应用的标识;所述数量标识表示所述目标 应用需要删除的实例的数量为N,N为大于0的整数; 所述云平台用于: 接收所述用户终端发送的实例删除请求; 根据所述目标应用的标识查找出目标虚拟机,所述目标虚拟机为所有包含所述目 标应用的实例的虚拟机; 获得所述目标虚拟机中每个实例所属应用的种类和每种应用的实例的数量; 根据所述目标虚拟机中每个实例所属应用的种类和每种应用的实例的数量,采用 预设的缩容策略在所述目标虚拟机中删除所述目标应用的N个实例。

说明书

说明书一种云平台资源的缩容方法、装置与系统
技术领域
本发明涉及通信技术领域,尤其涉及一种云平台资源的缩容方法、装置与系 统。
背景技术
云计算是一种服务的交付和使用模式,它将计算任务分布在大量计算机构成 的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。 云计算基本特征为按需使用资源、资源可以动态扩展、应用弹性计算、通过网络 以服务方式提供给应用开发用户。在云计算时代,云平台将软件研发平台作为一 种服务提供给应用开发用户,应用的运行环境和运行维护工作由云平台代为完 成,应用开发用户只需要关注应用的逻辑实现即可。
实例在虚拟机内启动时是根据虚拟机的瞬时响应速度决定的,而每个虚拟机 由于自身运行实例数量、种类的不同,使得每个虚拟机的响应速度千差万别,对 于单个虚拟机来说,由于它自身运行实例、种类的不同,导致同一个虚拟机在不 同时段的响应速度也不尽相同。因此实例在云平台中虚拟机上的分布是杂乱无章 的。
弹性计算是云计算的基本特征之一,它是指应用开发用户根据实际业务或者 计算需要,灵活地使用计算资源,并根据使用云平台上虚拟机资源的多少进行相 应的付费,真正实现按需使用、按需交付和按需付费。因此当外界对应用的访问 请求减少时,为避免资源浪费,节约应用供应商的运营成本,希望减少应用的实 例个数对云平台上的虚拟机资源进行缩容,从而实现平台资源的高效利用。
当前在云平台的应用缩容方面,没有较好的缩容策略,现有的缩容技术通常 是在云平台上的虚拟机中通过对目标应用的实例的启动时间由晚及早的顺序进 行删除。
由于实例在云平台中虚拟机上是随机分布的,因此按照启动时间删除实例之 后,虚拟机中的实例分布仍旧零散无序,虚拟机实例的整合和分布缺少规划,不 易集中,虚拟机出现空闲的可能性非常小,尤其当应用的大量外部访问骤减时, 实例的零散分布会浪费不必要的云平台资源的付费成本,不能有效的对云平台的 虚拟机资源进行缩容整合,从而导致虚拟机资源利用率低下。
发明内容
有鉴于此,本发明实施例提供了一种云平台资源的缩容方法、装置与系统, 使得缩容后尽可能地出现实例为空的虚拟机,使实例尽量集中在少数的几台虚拟 机中,并将完全空闲出来的虚拟机资源释放,以提高虚拟机资源的利用率。
根据本发明实施例的第一方面,提供了一种云平台资源的缩容方法,云平台 资源为云平台上的虚拟机资源,虚拟机包含应用的实例;其特征在于,上述方法 包括:接收对云平台上目标应用的实例删除请求,上述实例删除请求携带数量标 识和上述目标应用的标识;上述数量标识表示上述目标应用需要删除的实例的数 量为N,N为大于0的整数;根据上述目标应用的标识从上述云平台中查找出目标 虚拟机,上述目标虚拟机为所有包含上述目标应用的实例的虚拟机;获得上述目 标虚拟机中每个实例所属应用的种类和每种应用的实例的数量;根据上述目标虚 拟机中每个实例所属应用的种类和每种应用的实例的数量,采用预设的缩容策略 在上述目标虚拟机中删除上述目标应用的N个实例。
结合第一方面,在第一方面的第一种可能的实现方式中,在采用预设的缩容 策略在上述目标虚拟机中删除上述目标应用的N个实例之后,上述方法还包括: 检查上述目标虚拟机中是否出现空闲虚拟机,上述空闲虚拟机中包含的实例数量 为零;如果检查到上述目标虚拟中出现空闲虚拟机,释放上述空闲虚拟机。。
结合第一方面,或者结合第一方面的第一种可能的实现方式,在第一方面的 第二种可能的实现方式中,上述目标虚拟机中包括至少两个特殊虚拟机,上述特 殊虚拟机中只包含上述目标应用的实例,所有特殊虚拟机中包含的实例的总数大 于或等于N;上述采用预设的缩容策略在上述目标虚拟机中删除上述目标应用的 N个实例包括:按照各个特殊虚拟机中包含的实例数量从少到多的顺序,从上述 至少一个特殊虚拟机中删除N个实例。
结合第一方面,或者结合第一方面的上述任何一种可能的实现方式,在第一 方面的第三种可能的实现方式中,上述按照各个特殊虚拟机中包含的实例数量 从少到多的顺序,从上述至少一个特殊虚拟机中删除N个实例具体包括:若包 含的实例数量最少的特殊虚拟机中包含的实例数量大于或等于N,在上述实例数 量最少的特殊虚拟机中删除N个实例。
结合第一方面,或者结合第一方面的上述任何一种可能的实现方式,在第一 方面的第四种可能的实现方式中,上述按照各个特殊虚拟机中包含的实例数量从 少到多的顺序,从上述至少一个特殊虚拟机中删除N个实例具体包括:若包含的 实例数量最少的特殊虚拟机中包含的实例数量小于N,按照上述顺序在前M个特 殊虚拟机中删除所有的实例,已删除数量记为N-X个,使上述顺序中第M+1个特 殊虚拟机中包含的实例的数量大于或等于X,X为上述目标应用的实例的剩余删 除数量,M和X均为大于0的整数;在上述顺序中第M+1个特殊虚拟机中删除X个 实例。
结合第一方面,或者结合第一方面的上述任何一种可能的实现方式,在第一 方面的第五种可能的实现方式中,上述目标虚拟机中包括至少一个特殊虚拟机, 上述特殊虚拟机中只包含上述目标应用的实例,所有特殊虚拟机中实例的总数小 于N;上述采用预设的缩容策略在上述目标虚拟机中删除上述目标应用的N个实 例包括:删除所有特殊虚拟机中所有的实例,已删除数量记为N-Y;按照各个剩 余目标虚拟机中包含的实例总数从少到多的顺序,从至少一个剩余目标虚拟机中 删除上述目标应用的Y个实例,Y为上述目标应用的实例的剩余删除数量,Y为 大于0的整数。
结合第一方面,或者结合第一方面的上述任何一种可能的实现方式,在第一 方面的第六种可能的实现方式中,上述按照各个剩余目标虚拟机中包含的实例总 数从少到多的顺序,从至少一个剩余目标虚拟机中删除上述目标应用的Y个实例 具体包括:若包含的实例总数最少的剩余目标虚拟机中包含上述目标应用的实例 数量大于或等于Y,在上述包含的实例总数最少的剩余目标虚拟机中删除上述目 标应用的Y个实例。
结合第一方面,或者结合第一方面的上述任何一种可能的实现方式,在第一 方面的第七种可能的实现方式中,上述按照各个剩余目标虚拟机中包含的实例总 数从少到多的顺序,从至少一个剩余目标虚拟机中删除上述目标应用的Y个实例 具体包括:若包含的实例总数最少的剩余目标虚拟机中包含上述目标应用的实例 数量小于Y,按照上述顺序在前M1个剩余目标虚拟机中删除上述目标应用所有的 实例,已删除数量记为Y-X1个,使上述顺序中第M1+1个剩余目标虚拟机中包含 上述目标应用的实例的数量大于或等于X1,上述X1为上述目标应用的实例的剩 余删除数量,上述M1和上述X1均为大于0的整数;在上述顺序中第M1+1个剩余 目标虚拟机中删除上述上述目标应用的X1个实例。
结合第一方面,或者结合第一方面的上述任何一种可能的实现方式,在第一 方面的第八种可能的实现方式中,上述采用预设的缩容策略在上述目标虚拟机中 删除上述目标应用的N个实例包括:按照各个目标虚拟机中包含的实例总数从少 到多的顺序,从至少一个目标虚拟机中删除上述目标应用的N个实例。
结合第一方面,或者结合第一方面的上述任何一种可能的实现方式,在第一 方面的第九种可能的实现方式中,上述按照各个目标虚拟机中包含的实例总数从 少到多的顺序,从至少一个目标虚拟机中删除上述目标应用的N个实例具体包 括:若包含的实例总数最少的目标虚拟机中包含上述目标应用的实例数量大于或 等于N,在上述包含的实例总数最少的目标虚拟机中删除上述目标应用的N个实 例。
结合第一方面,或者结合第一方面的上述任何一种可能的实现方式,在第一 方面的第十种可能的实现方式中,上述按照各个目标虚拟机中包含的实例总数从 少到多的顺序,从至少一个目标虚拟机中删除上述目标应用的N个实例具体包 括:若包含的实例总数最少的目标虚拟机中包含上述目标应用的实例数量小于 N,按照上述顺序在前M2个目标虚拟机中删除上述目标应用所有的实例,已删除 数量记为N-X2个,使上述顺序中第M2+1个目标虚拟机中包含上述目标应用的实 例的数量大于或等于X2,X2为上述目标应用的实例的剩余删除数量,M2和X2均 为大于0的整数;在上述顺序中第M2+1个目标虚拟机中删除上述目标应用的X2 个实例。
结合第一方面,或者结合第一方面的上述任何一种可能的实现方式,在第一 方面的第十一种可能的实现方式中,上述方法还包括:当多个目标虚拟机中各自 包含的实例总数相同时,优先删除应用种类数最少的目标虚拟机中所包含的上述 目标应用的实例。
结合第一方面,或者结合第一方面的上述任何一种可能的实现方式,在第一 方面的第十二种可能的实现方式中,上述方法还包括:当多个目标虚拟机中各自 包含的实例总数相同,并且各自包含的应用种类数也相同时,优先删除包含上述 目标应用的实例数量最少的目标虚拟机中所包含的目标应用的实例。
结合第一方面,或者结合第一方面的上述任何一种可能的实现方式,在第一 方面的第十三种可能的实现方式中,上述方法还包括:当多个目标虚拟机中各自 包含的实例总数相同,各自包含的应用种类数也相同,并且各自包含上述目标应 用的实例的数量也相同时,优先删除上述目标应用启动时间最晚或最早的实例所 在的目标虚拟机中所包含的目标应用的实例,或随机选择在上述多个目标虚拟机 中的任何一个虚拟机中删除上述目标应用的实例。
结合第一方面,或者结合第一方面的上述任何一种可能的实现方式,在第一 方面的第十四种可能的实现方式中,上述目标虚拟机中只包括一个特殊虚拟机, 上述特殊虚拟机中只包含上述目标应用的实例,上述特殊虚拟机中包含的实例的 总数大于或等于N,上述采用预设的缩容策略在上述目标虚拟机中删除上述目标 应用的N个实例包括:在上述特殊虚拟机中删除N个实例。
根据本发明实施例的第二方面,提供了一种云平台资源的缩容装置,上述装 置包括:接收模块,用于接收对云平台上目标应用的实例删除请求,上述实例删 除请求携带数量标识和上述目标应用的标识;上述数量标识表示上述目标应用需 要删除的实例的数量为N,N为大于0的整数;查找模块,用于根据上述接收模块 接收到目标应用的标识从上述云平台中查找出目标虚拟机,上述目标虚拟机为所 有包含上述目标应用的实例的虚拟机;获得模块,用于获得上述查找模块查找到 的目标虚拟机中每个实例所属应用的种类和每种应用的实例的数量;策略模块, 用于根据上述获得模块获得的上述目标虚拟机中每个实例所属应用的种类和每 种应用的实例的数量,采用预设的缩容策略在上述目标虚拟机中删除上述目标应 用的N个实例。
结合第二方面,在第二方面的第一种可能的实现方式中,上述装置还包括检 查模块和释放模块,上述检查模块用于检查上述目标虚拟机中是否出现空闲虚拟 机,上述空闲虚拟机中包含的实例数量为零;如果上述检查模块检查到上述目标 虚拟中出现空闲虚拟机,上述释放模块用于释放上述空闲虚拟机。
结合第二方面,或者结合第二方面的第一种可能实现方式,在第二方面的第 二种可能的实现方式中,上述策略模块包括计数单元和删除单元;上述目标虚拟 机中包括至少一个特殊虚拟机,上述特殊虚拟机中只包含上述目标应用的实例; 上述计数单元用于判定所有特殊虚拟机中实例的总数与N的关系;若上述计数单 元判定所有特殊虚拟机中实例的总数大于或等于N,则上述删除单元用于按照各 个特殊虚拟机中包含的实例数量从少到多的顺序,从上述至少一个特殊虚拟机中 删除N个实例。
结合第二方面,或者结合第二方面的上述任何一种可能的实现方式,在第一 方面的第三种可能的实现方式中,上述计数单元还用于判定包含的实例数量最少 的特殊虚拟机中实例的数量与N的关系;若上述计数单元判定包含的实例数量最 少的特殊虚拟机中实例的数量大于或等于N,上述删除单元具体用于在上述实例 数量最少的特殊虚拟机中删除N个实例。
结合第二方面,或者结合第二方面的上述任何一种可能的实现方式,在第一 方面的第四种可能的实现方式中,上述计数单元还用于判定包含的实例数量最少 的特殊虚拟机中实例的数量与N的关系;若上述计数单元判定包含的实例数量最 少的特殊虚拟机中实例的数量小于N,上述删除单元具体用于:按照上述顺序在 前M个特殊虚拟机中删除所有的实例,已删除数量记为N-X个,使上述顺序中第 M+1个特殊虚拟机中包含的实例的数量大于或等于X,X为上述目标应用的实例 的剩余删除数量,M和X均为大于0的整数;在上述顺序中第M+1个特殊虚拟机中 删除X个实例。
结合第二方面,或者结合第二方面的上述任何一种可能的实现方式,在第一 方面的第五种可能的实现方式中,上述策略模块包括计数单元和删除单元;上述 目标虚拟机中包括至少一个特殊虚拟机,上述特殊虚拟机中只包含上述目标应用 的实例;上述计数单元用于判定所有特殊虚拟机中实例的总数与N的关系;若上 述计数单元判定所有特殊虚拟机中实例的总数小于N,上述删除单元用于:删除 所有特殊虚拟机中所有的实例,已删除数量记为N-Y;按照各个剩余目标虚拟机 中包含的实例总数从少到多的顺序,从至少一个剩余目标虚拟机中删除上述目标 应用的Y个实例,Y为上述目标应用的实例的剩余删除数量,Y为大于0的整数。
结合第二方面,或者结合第二方面的上述任何一种可能的实现方式,在第一 方面的第六种可能的实现方式中,上述计数单元还用于判定包含的实例数量最少 的剩余目标虚拟机中包含的目标应用的实例数量与Y的关系;若上述计数单元判 定上述包含的实例数量最少的剩余目标虚拟机中包含的目标应用的实例的数量 大于或等于Y,上述删除单元具体用于在上述包含的实例数量最少的特殊虚拟机 中删除上述目标应用的Y个实例。
结合第二方面,或者结合第二方面的上述任何一种可能的实现方式,在第一 方面的第七种可能的实现方式中,上述计数单元还用于判定包含的实例数量最少 的剩余目标虚拟机中包含的目标应用的实例数量与Y的关系;
若上述计数单元判定上述包含的实例数量最少的剩余目标虚拟机中包含的 目标应用的实例的数量小于Y,上述删除单元具体用于:按照上述顺序在前M1 个剩余目标虚拟机中删除上述目标应用所有的实例,已删除数量记为Y-X1个, 使上述顺序中第M1+1个剩余目标虚拟机中包含上述目标应用的实例的数量大于 或等于X1,X1为上述目标应用的实例的剩余删除数量,M1和X1均为大于0的整 数;在上述顺序中第M1+1个剩余目标虚拟机中删除上述上述目标应用的X1个实 例。
结合第二方面,或者结合第二方面的上述任何一种可能的实现方式,在第一 方面的第八种可能的实现方式中,上述策略模块具体用于按照各个目标虚拟机中 包含的实例总数从少到多的顺序,从至少一个目标虚拟机中删除上述目标应用的 N个实例。
结合第二方面,或者结合第二方面的上述任何一种可能的实现方式,在第一 方面的第九种可能的实现方式中,上述策略模块包括计数单元和删除单元;上述 计数单元用于判定包含的实例数量最少的目标虚拟机中包含的上述目标应用的 实例数量与N的关系;若上述计数单元判定上述包含的实例总数最少的目标虚拟 机中包含上述目标应用的实例数量大于或等于N,上述删除单元具体用于在上述 包含的实例总数最少的目标虚拟机中删除上述目标应用的N个实例。
结合第二方面,或者结合第二方面的上述任何一种可能的实现方式,在第一 方面的第十种可能的实现方式中,上述策略模块包括计数单元和删除单元;上述 计数单元用于判定包含的实例数量最少的目标虚拟机中包含的上述目标应用的 实例数量与N的关系;若上述计数单元判定上述包含的实例总数最少的目标虚拟 机中包含上述目标应用的实例数量小于N,上述删除单元具体用于:按照上述顺 序在前M2个目标虚拟机中删除上述目标应用所有的实例,已删除数量记为N-X2 个,使上述顺序中第M2+1个目标虚拟机中包含上述目标应用的实例的数量大于 或等于X2,X2为上述目标应用的实例的剩余删除数量,M2和X2均为大于0的整 数;在上述顺序中第M2+1个目标虚拟机中删除上述目标应用的X2个实例。
结合第二方面,或者结合第二方面的上述任何一种可能的实现方式,在第一 方面的第十一种可能的实现方式中,上述策略模块包括计数单元和删除单元;上 述目标虚拟机中只包括一个特殊虚拟机,上述特殊虚拟机中只包含上述目标应用 的实例;上述计数单元用于判定上述特殊虚拟机中实例的总数与N的关系;若上 述计数单元判定上述特殊虚拟机中实例的总数大于或等于N,则上述删除单元用 于从上述特殊虚拟机中删除N个实例。
根据本发明实施例的第三方面,提供了一种云平台资源的缩容系统,上述系 统包括:用户终端和云平台;上述用户终端用于向上述云平台发送对云平台上目 标应用的实例删除请求,上述实例删除请求携带数量标识和上述目标应用的标 识;上述数量标识表示上述目标应用需要删除的实例的数量为N,N为大于0的整 数;上述云平台用于,接收上述用户终端发送的实例删除请求;根据上述目标应 用的标识查找出目标虚拟机,上述目标虚拟机为所有包含上述目标应用的实例的 虚拟机;获得上述目标虚拟机中每个实例所属应用的种类和每种应用的实例的数 量;根据上述目标虚拟机中每个实例所属应用的种类和每种应用的实例的数量, 采用预设的缩容策略在上述目标虚拟机中删除上述目标应用的N个实例。
根据本发明实施例提供的技术方案,在删除实例进行缩容时,获得虚拟机中 运行实例的种类和数量,根据该信息采用一定的策略,优先选择实例少的虚拟机 进行实例删除操作,或先选择只包含目标应用的实例的虚拟机同样在其中优先选 择实例少的虚拟机进行实例删除操作,如此一来,实例越少的虚拟机,在删除实 例时越容易被选中,使得在有序删除操作后实例尽量集中在少数的几台虚拟机 中,并大大提高了出现空闲虚拟机的可能性。从而一旦出现空闲虚拟机,该虚拟 机就可以被释放,提高云平台虚拟机资源利用率,降低了云平台能耗,释放虚拟 机的物理资源有效降低了云平台资源的运营成本。
附图说明
图1为现有技术中云平台应用的两种模式结构示意图;
图2为本发明实施例中一种云平台资源缩容的应用场景示意图;
图3为本发明实施例中一种云平台资源缩容方法的流程图;
图4为本发明实施例中一种虚拟机中实例分布信息的示意图;
图5为本发明实施例中一种删除虚拟机中实例的方案示意图;
图6为本发明实施例中一种删除虚拟机中实例的方案示意图;
图7为本发明实施例中一种删除虚拟机中实例的方案示意图;
图8为本发明实施例中一种删除虚拟机中实例的方案示意图;
图9为本发明实施例中一种删除虚拟机中实例的方案示意图;
图10为本发明实施例中一种删除虚拟机中实例的方案示意图;
图11为本发明实施例中一种删除虚拟机中实例的排序规则应用场景图;
图12为本发明实施例中一种迁移整合虚拟机中实例的方案示意图;
图13为本发明实施例中一种云平台资源缩容装置的示意图;
图14为本发明实施例中一种策略模块的示意图;
图15为本发明实施例中一种云平台资源缩容系统的示意图;
图16为本发明实施例中一种云平台资源的缩容设备结构示意图。
具体实施方式
本发明实施例提供了一种云平台资源的缩容方法、装置与系统。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分优选实施例,而不 是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造 性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实例(Instance)是应用(Application)的自动扩展计算单元,是应用最基本 的体现形式,相当于是应用的一种镜像或是复制,它提供了能够使用应用所需的 所有资源。它包括语言运行时间、应用接口、和应用的代码及存储。每个实例包 含一个安全层,以确保不同实例之间互不影响。在任何给定的时间,一个应用可 以运行在一个或多个实例上。实例可以是静态的,也可以是动态的,动态实例可 根据当前需求进行自动启动和关闭,静态实例一直在运行,它可以提高应用的性 能。实例因为应用的不同而不同,而同一种应用下的不同实例是相同的,它们都 能提供该应用的全套使用资源。在下文中以“VM数字”表示虚拟机,不同的数 字表示不同的虚拟机;以“App数字”表示应用,以“App数字-数字”表示应用 的实例,不同的数字表示不同的应用或不同的实例。
目前,云平台的应用运行主要有两种级别:虚拟机级别和容器级别。虚拟机 级别是指一台虚拟机运行一个实例,容器级别是指一台虚拟机上启动多个容器, 各个容器间资源相互隔离,每个容器内运行一个实例,如图1所示,图1为现有技 术中云平台应用的两种模式结构示意图。
本发明基于在云平台的容器级别,各个容器间资源相互隔离,每个容器内运 行一个实例,每个虚拟机中大约有几十到几百个容器,因此每个虚拟机中都可能 运行着不同种类、不同数量的实例,属于同一种应用的所有实例称为同种实例, 属于不同应用的实例称为不同种实例。本发明旨在按照一定的策略规划如何进行 删除进而使它们在虚拟机中的分布更为合理,使虚拟机的资源能够更合理的利 用。
请参阅图2,图2为本发明实施例中一种云平台资源缩容的应用场景示意图。
以双十一期间的购物网站为例,由于促销活动,会在某段时间有相当大的外 部用户访问购物网站,同时占据了淘宝、京东、当当等众多应用的云平台虚拟机 资源,而活动一旦结束,用户访问量则出现极大幅度的骤减。该过程体现在云平 台上,就是活动期间运行极大数量的实例,而在活动结束时,大部分的实例都不 需要再运行,但由于之前的实例没有及时删除,大量的虚拟机资源被无故占用, 造成资源的浪费和不合理分配,应用开发用户由于不能释放出更多的虚拟机,而 增加了运营成本。为解决这一问题本发明提供了一种云平台资源缩容的方法、装 置与系统。
请参阅图3,图3为本发明实施例中一种云平台资源缩容方法的流程图,该方 法包括:
S101:接收对云平台上目标应用的实例删除请求,实例删除请求携带应用标 识和数量标识;应用标识表示目标应用的实例所属的应用;数量标识表示目标应 用的实例的数量为N,N为大于0的整数。
其中实例的删除请求可以是用户实时发送的,也可以是自动伸缩服务管理系 统按照预先的设置定时发送的;实例的删除请求中包含特定的应用标识,比如用 特殊的字段来表达软件开发人员想删除哪种应用的实例,例如删除百度还是删除 新浪的实例;N表示软件开发人员本次操作想要删除实例的数量。
在具体实现过程中,应用标识和数量标识各自不限于形式,可以是一个字段, 可以是一串字符或数字,也可以是特定的符号,还可以是个组合字段;只要其能 代表唯一的应用标识、或能指示指定的删除实例数量即可。
S102:根据目标应用的应用标识从云平台中查找出目标虚拟机,目标虚拟机 为包含目标应用的实例的虚拟机。
例如当淘宝的开发人员想要删除淘宝的实例时,会带着表征淘宝的唯一ID 号查找出所有包含淘宝实例的虚拟机,将它们作为软件开发人员可以删除实例进 行缩容的目标虚拟机。
S103:获得上述目标虚拟机中每个实例所属应用的种类和每种应用的实例的 数量。
获取到如同图4所示的分布信息,其中图4为一种虚拟机中实例分布信息的示 意图,该分布信息能够清晰地显示出各个虚拟机VM上包含哪些应用、每个虚拟 机VM各有多少实例、每个虚拟机VM中每一种应用有多少个实例,某一种类的实 例分布在哪些虚拟机中等信息,云平台上目标虚拟机至少存在一个,当然通常情 况下都远远大于一个。
S104:根据S103中获得的目标虚拟机中每个实例所属应用的种类和每种应用 的实例的数量,采用预设的缩容策略在目标虚拟机中删除所述目标应用的N个实 例。
在一些应用的软件开发人员进行一系列的删除操作后,云平台虚拟机的实例 分布情况会发生改变,可以通过检测虚拟机的实例分布,尤其是检测目标虚拟机, 可以查找经过删除后是否存在没有包含任何实例的空闲虚拟机。检测的时机比较 灵活,可以进行定期的检测,也可以每在一个虚拟机中删除实例后进行检测,也 可以将N个实例全部删除完毕后,再统一进行检测。当检测到所述空闲虚拟机时, 就可以将所述空闲虚拟机释放,减少运营成本。
其中步骤S104在具体实现中,删除N个实例时要遵循一定的缩容策略,可选 的有如下几种。
第一种缩容策略:从所有目标虚拟机中筛选出只包含目标应用的实例的虚拟 机作为特殊虚拟机;根据每个目标虚拟机的实例分布信息,当得到所有特殊虚拟 机中实例的总数大于或等于N时,则可以根据包含的实例数量从少到多将特殊虚 拟机排列顺序,首先选择实例数量最少的特殊虚拟机,若该实例数量最少的特殊 虚拟机中能够完成删除N个实例,则删除终止。其中最特殊的情况就是特殊虚拟 机只有一个,那么该情况下可以不进行排序,直接在其中进行实例的删除,如果 该特殊虚拟机中的实例总数大于或等于N,那么直接可以完成删除操作;若小于 N,则可以执行第3种策略。
以图5为例,图5为本发明实施例中一种删除虚拟机中实例的方案示意图,可 以通过步骤S102查找到只包含App1的虚拟机有VM1、VM2、VM3,通过步骤S103 可知,它们包含的实例的总数分别为5、3、1,因此根据包含的实例数量从少到 多虚拟机删除顺序排列为VM3、VM2、VM1,首先将在VM3中进行删除操作,假 设App1的开发人员想要删除1个App1的实例,那么直接在VM3中进行删除即可完 成。
第二种缩容策略:从所有目标虚拟机中筛选出只包含目标应用的实例的虚拟 机作为特殊虚拟机;根据每个目标虚拟机的实例分布信息,得到所有特殊虚拟机 中实例的总数大于或等于N,则根据包含的实例数量从少到多将特殊虚拟机排列 顺序,按照排列顺序删除前M个特殊虚拟机中所有的实例,已删除数量记为N-X 个,使排序中第M+1个特殊虚拟机中包含目标应用的实例的数量大于或等于X, X为目标应用的实例的剩余删除数量,M和X均为大于0的整数;在排序中第M+1 个特殊虚拟机中删除所述目标应用的X个实例。
以图6为例,图6为本发明实施例中一种删除虚拟机中实例的方案示意图,可 以通过步骤S102查找到只包含App1的虚拟机有VM1、VM2、VM3,通过步骤S103 可知,它们包含的实例的总数分别为5、3、1,因此根据包含的实例数量从少到 多虚拟机删除顺序排列为VM3、VM2、VM1,首先在VM3中进行删除操作,假设 App1的开发人员想要删除3个App1的实例,但是VM3中有且只有1个App1的实例, 则首先将VM3中的1个App1实例进行删除;由于还要再删除2个App1实例,因此 需要按照顺序在VM2中进行删除操作,而VM2中的App1的实例数量大于2,因此 将VM2中的2个App1删除,完成删除任务。
第三种缩容策略:从所有目标虚拟机中筛选出只包含目标应用的实例的虚拟 机作为特殊虚拟机;根据每个目标虚拟机的实例分布信息,当得到所有特殊虚拟 机中实例的总数小于N时,则首先删除所有特殊虚拟机中的所有的实例,已删除 数量记为N-Y,再根据包含各类实例的总数从少到多将剩余目标虚拟机排列顺 序,首先选择包含各类实例的总数最少的目标虚拟机,若在该包含各类实例的总 数最少的目标虚拟机中能够完成删除Y个目标应用的实例,则删除终止,其中Y 为目标应用的实例的剩余删除数量,Y为大于0的整数。
以图7为例,图7为本发明实施例中一种删除虚拟机中实例的方案示意图,可 以通过步骤S102查找到包含App1的虚拟机有VM1、VM2、VM3、VM4、VM5,通 过步骤S103可知,其中只包含App1实例的虚拟机有VM1、VM2,VM1、VM2包含 App1实例的数量分别为4、2,假设App1的开发人员想要删除7个App1实例,由于 VM1和VM2包含App1实例的总和为6,小于7,因此首先先将VM1和VM2中的共6 个App1实例全部删除;目前包含App1的虚拟机有VM3、VM4、VM5,它们各自 包含各类实例总数分别为2、3、4,接下来根据包含各类实例总数从少到多将虚 拟机删除顺序排列为VM3、VM4、VM5,首先将在VM3中进行删除操作,由于剩 余的删除数量为7-6=1个,而VM3中包含一个App1实例,因此直接在VM3中进行 删除即可完成。
第四种缩容策略:从所有目标虚拟机中筛选出只包含目标应用的实例的虚拟 机作为特殊虚拟机;根据每个目标虚拟机的实例分布信息,得到所有特殊虚拟机 中实例的总数小于N,则首先删除所有特殊虚拟机中的所有的实例,已删除数量 记为N-Y,再根据包含各类实例的总数从少到多将剩余目标虚拟机排列顺序,按 照排列顺序删除前M个目标虚拟机中所有的目标应用的实例,已删除数量记为 Y-X个,使排序中第M+1个目标虚拟机中包含目标应用的实例的数量大于或等于 X,X为目标应用的实例的剩余删除数量,M和X均为大于0的整数;在排序中 第M+1个目标虚拟机中删除X个目标应用的实例。
以图8为例,图8为本发明实施例中一种删除虚拟机中实例的方案示意图,可 以通过步骤S102查找到包含App1的虚拟机有VM1、VM2、VM3、VM4、VM5,通 过步骤S103可知,其中只包含App1实例的虚拟机有VM1、VM2,VM1、VM2包含 App1实例的数量分别为4、2,假设App1的开发人员想要删除9个App1实例,由于 VM1和VM2包含App1实例的总和为6,小于9,因此首先先将VM1和VM2中的共6 个App1实例全部删除;目前包含App1的虚拟机有VM3、VM4、VM5,它们各自 包含各类实例总数分别为2、3、4,接下来根据包含各类实例总数从少到多将虚 拟机删除顺序排列为VM3、VM4、VM5,首先将在VM3中进行删除操作,由于剩 余的删除数量为9-6=3个,而VM3中仅仅包含一个App1实例,因此首先在VM3中 删除一个App1实例,接下来按照排列顺序在VM4中进行删除操作,由于VM4中 有且仅有一个App1实例,而此时剩余的删除数量为9-6-1=2个,因此继续在VM4 中继续删除当中仅有的一个App1实例,此时剩余的删除数量为9-6-1-1=1个,因 此继续按照排列顺序在VM5中进行删除操作,由于VM5中有2个App1实例,因此 只需在VM5中删除1个App1实例即可删除完毕。
第五种缩容策略:根据各类实例的总数从少到多将目标虚拟机排列顺序,首 先选择包含各类实例的总数最少的目标虚拟机,若在包含各类实例的总数最少的 目标虚拟机中能够完成删除N个目标应用的实例,则删除终止。
以图9为例,图9为本发明实施例中一种删除虚拟机中实例的方案示意图,可 以通过步骤S102查找到包含App1的虚拟机有VM1、VM2、VM3,通过步骤S103 可知,它们包含各种实例的总数分别为5、3、2,因此将VM3作为优先删除实例 的目标虚拟机,假设App1的开发人员想要删除1个App1的实例,那么直接在VM3 中进行删除即可。
第六种缩容策略:根据各类实例的总数从少到多将目标虚拟机排列顺序,按 照排列顺序删除M个目标虚拟机中所有的目标应用的实例,已删除数量记为N-X 个,使排序中第M+1个目标虚拟机中包含目标应用的实例的数量大于或等于X, X为目标应用的实例的剩余删除数量,M和X均为大于0的整数;在排序中第M+1 个目标虚拟机中删除X个目标应用的实例。
以图10为例,图10为本发明实施例中一种删除虚拟机中实例的方案示意图, 可以通过步骤S102查找到包含App1的虚拟机有VM1、VM2、VM3,它们包含各种 实例的总数分别为5、3、2,因此按照实例数量总数将虚拟机进行删除的顺序排 列为VM3、VM2、VM1,假设App1的开发人员想要删除4个App1的实例,但是VM3 中有且只有1个App1的实例,则首先将VM3中的1个App1实例进行删除;由于还 要再删除3个App1实例,因此按照顺序在VM2中继续执行删除,由于VM2中包含2 个App1,小于3个,因此将VM2中的2个App1全部删除,接下来将VM1作为下一 个要进行删除实例的虚拟机,删除VM1中的启动时间最晚的1个App1实例。
以上六种缩容策略中,在按照实例数量由少到多进行排序时往往会遇到一些 实例分布相同的多个虚拟机,为了避免排序出现冲突,因此缩容策略中存有优先 策略,例如可以设定以下几条排序优先规则:
第一条排序优先规则:在排列顺序时如果存在多个目标虚拟机中各自包含的 实例总数相同,那么包含的实例种类最少的目标虚拟机在排列顺序时优先。
第二条排序优先规则:在排列顺序时如果存在多个目标虚拟机中各自包含的 实例总数相同,并且各自包含的实例种类数也相同,那么包含目标应用的实例数 量最少的目标虚拟机在排列顺序时优先。
第三条排序优先规则:在排列顺序时如果存在多个目标虚拟机中各自包含的 实例总数相同,各自包含的实例种类数也相同,并且各自包含的目标应用的实例 数量也相同,那么启动时间最晚的目标应用的实例所在的目标虚拟机在排列顺序 时优先,或由早及晚的顺序进行删除,或随机选择其中的一个虚拟机进行删除, 或者遵循开发人员任意的个性化优先规则进行相应地删除操作。
值得注意的是,在以上每一种删除方法中,在单个虚拟机中删除同一种应用 的多个实例时,尤其当该虚拟机中存在的目标应用的实例的数量大于需要删除的 个数时,按照目标应用的实例启动时间由晚及早的顺序进行删除。
在具体实现过程中,每个虚拟机的实例分布情况千差万别,因此在删除过程 中确保排列顺序井然有序是缩容过程顺利进行的必要条件。
以图11为例,图11为本发明实施例中一种删除虚拟机中实例的排序规则应用 场景图,该场景可能发生在上述第四种和第六种缩容策略的应用场景中,假设 “APP1-数字”中的数字越大表示启动时间越晚,按照虚拟机中的实例总数,初 步的排列顺序优先级为:VM2、VM3优于VM4、VM5VM6优于VM1、VM7;由于 第一条排序优先规则可得VM2优于VM3,VM4、VM5优于VM6;由于第二条排序 优先规则可得VM4优于VM5;由于第三条排序优先规则可得VM7优于VM1。综上 所述,图11中的例子中,删除实例的虚拟机排列顺序依次为VM2、VM3、VM4、 VM5、VM6、VM7、VM1。
除了上述6种较为系统的缩容策略外,还有一种补充的优化方案,在获取每 个目标虚拟机包含的实例分布信息之后,或者在经历上述6种缩容策略中任意一 种进行删除操作后,根据剩余空间的大小选择一个合适的虚拟机作为主虚拟机, 将包含各种实例总数较少的目标虚拟机中的全部实例迁移到该主虚拟机中,并释 放那些经过迁移后空闲出来的虚拟机。
以图12为例,图12为本发明实施例中一种迁移整合虚拟机中实例的方案示意 图,通过S103获取的虚拟机包含的实例分布信息如图12所示,在经历上述的一系 列删除操作后,VM1中包含着App1-1、App1-2、App1-3,VM2中只包含了App2-3, VM3中只包含了App2-1,但VM2、VM3虽然非常容易释放却因存在实例而无法及 时释放,此时可以根据云平台对虚拟机空间大小的计算功能,选择实例较多的 VM1为主虚拟机,将VM2中的App2-3、VM3中的App2-1迁移整合到VM1中,使VM2 和VM3闲置,可以通过后续释放操作使VM2和VM3释放。
结合以上所论述的可选方案,应用的开发人员还可以根据自己的需求将以上 6种缩容方案分阶段混合使用,构建个性化的删除方案。例如执行第一阶段删除 时可以执行上述第1种或第2种缩容方式,再时隔较长一段时间后,再执行上述第 5或第6种缩容方案时。
本发明实施例提供的技术方案,在应用缩容时,利用实例的删除请求携带应 用标识和数量标识对虚拟机进行标记,并获取到每个目标虚拟机的实例分布信 息,通过进一步采用缩容的策略,优先选择实例少的虚拟机进行实例删除操作, 或先选择只包含目标应用的实例的虚拟机同样在其中优先选择实例少的虚拟机 进行实例删除操作,如此一来,实例越少的虚拟机,缩容时越容易被选中,使得 缩容后出现空闲虚拟机的概率大大提高,同时也使实例尽量集中在少数的几台虚 拟机中,提高虚拟机资源的利用率,降低云平台能耗,节能减排。
请参阅图13,图13为本发明实施例中一种云平台资源缩容装置的示意图。该 装置200包括:
接收模块201,用于接收对云平台上目标应用的实例删除请求,该实例删除 请求携带数量标识和目标应用的标识;数量标识表示目标应用需要删除的实例的 数量为N,N为大于0的整数。
其中实例的删除请求中的应用标识由应用的开发人员决定,一个应用的开发 人员只能对自己应用的实例进行删除,并且可以决定删除的数量N。
查找模块202,用于根据接收模块401接收到目标应用的标识从云平台中查找 出目标虚拟机,目标虚拟机为所有包含目标应用的实例的虚拟机。
获得模块203,用于获得查找模块202得到的目标虚拟机中每个实例所属应用 的种类和每种应用的实例的数量。获得模块203具体负责收集每个虚拟机包含的 实例分布情况,包括不同App的各个实例,以及每个实例所在的VM,获得如图4 一般的分布视图,可以知晓每个虚拟机中都包含了哪些种类的实例,每种实例的 个数。
策略模块204,用于根据获得模块203获得的目标虚拟机中每个实例所属应用 的种类和每种应用的实例的数量,采用预设的缩容策略在目标虚拟机中删除目标 应用的N个实例。
此外,该装置200还包括检测模块205,用于检测是否存在实例数为零的空闲 虚拟机,检测时间较为灵活,可以在策略模块204执行删除操作的过程中检测, 也可以在完成删除操作之后进行检测;还包括释放模块206,用于当检测到空闲 虚拟机时,将空闲虚拟机释放。此处可以通过调用云平台I层的命令来删除释放 空闲的虚拟机,如openstack的api是/v2/:tenant_id/servers/:server_id。
在具体实现过程中,上述策略模块204可以包括筛选单元2041、计数单元2042、 排序单元2043、删除单元2044和策略单元2045;请参阅图14,图14为本发明实施 例中一种策略模块的示意图。
其中筛选单元2041用于根据应用标识和虚拟机实例分布信息,从所有目标虚 拟机中筛选出只包含所述目标应用的实例的虚拟机作为特殊虚拟机。上述缩容策 略第一到第四种方案都涉及到该模块;计数单元2042判定筛选单元2041筛选出来 的所有特殊虚拟机中实例的总数与N的关系,若计数单元2042判定所有特殊虚拟 机中实例的总数大于或等于N,则排序单元2043根据包含的实例数量从少到多将 特殊虚拟机排列顺序;删除单元2044按照排列顺序在排序后的目标虚拟机中删除 N个目标应用的实例。若计数单元2042判定所有特殊虚拟机中实例的总数小于N, 则删除单元2044首先删除所有特殊虚拟机中的所有的实例,排序单元2043根据包 含各类实例的总数从少到多将剩余目标虚拟机排列顺序;删除单元2044按照排列 顺序在排序后的目标虚拟机中删除Y个目标应用的实例,Y为所述目标应用的实 例的剩余删除数量,Y为大于0的整数。
上述缩容策略的第五种和第六种方案中,策略模块204可以只包含计数单元 2042、排序单元2043、删除单元2044和策略单元2045。排序单元2043用于根据各 类实例的总数从少到多将目标虚拟机排列顺序;删除单元2044用于按照排列顺序 在排序后的目标虚拟机中删除N个目标应用的实例。
上述云平台的缩容装置200还包括迁移模块207,用于将包含各种实例总数相 对较少的目标虚拟机中的全部实例迁移到另外一个包含各种实例总数相对较多 的虚拟机中。在获取每个目标虚拟机包含的实例分布信息之后,或者在经历上述 6种缩容方案中任意一种删除操作之后,根据可用空间的大小或包含的实例数量 多少选择一个主虚拟机,将包含各种实例总数极少的目标虚拟机中的全部实例迁 移到另一个主虚拟机中,并释放经过迁移后空闲出来的虚拟机。
在另一种具体实现中,策略模块204中存有大量的策略规则,策略模块204至 少可以包括计数单元2042和删除单元2044,其中计数单元2042和删除单元2044可 以执行上述图5至图12所对应实施例中的6种完整的缩容策略。具体如下列6种情 形。
情形1:目标虚拟机中包括至少一个特殊虚拟机,特殊虚拟机中只包含所述 目标应用的实例;计数单元2042用于判定所有特殊虚拟机中实例的总数与N的关 系;若计数单元2042判定所有特殊虚拟机中实例的总数大于或等于N,计数单元 2042再判定包含的实例数量最少的特殊虚拟机中实例的数量与N的关系,如果包 含的实例数量最少的特殊虚拟机中实例的数量大于或等于N,删除单元2044具体 用于在实例数量最少的特殊虚拟机中删除N个实例。
其中有一种特殊情况,如果特殊虚拟机中只有一个,那么技术单元可以直接 判定该特殊虚拟机中实例的数量与N的关系,若该特殊虚拟机中实例的数量大于 或等于N,则在该特殊虚拟机中直接删除N个实例;若该特殊虚拟机中实例的数 量小于N,相应的模块执行如同情形3。
情形2:目标虚拟机中包括至少一个特殊虚拟机,特殊虚拟机中只包含所述 目标应用的实例;计数单元2042用于判定所有特殊虚拟机中实例的总数与N的关 系;若计数单元2042判定所有特殊虚拟机中实例的总数大于或等于N,计数单元 2042再判定包含的实例数量最少的特殊虚拟机中实例的数量与N的关系,如果包 含的实例数量最少的特殊虚拟机中实例的数量小于N,删除单元2044具体用于按 照各个特殊虚拟机中包含的实例总数从少到多的顺序,在前M个特殊虚拟机中删 除所有的实例,已删除数量记为N-X个,使上述顺序中第M+1个特殊虚拟机中包 含的实例的数量大于或等于X,X为目标应用的实例的剩余删除数量,M和X均为 大于0的整数;删除单元2044在顺序中第M+1个特殊虚拟机中删除X个实例。
情形3:目标虚拟机中包括至少一个特殊虚拟机,特殊虚拟机中只包含所述 目标应用的实例;计数单元2042用于判定所有特殊虚拟机中实例的总数与N的关 系;若计数单元2042判定所有特殊虚拟机中实例的总数小于N,删除单元2044用 于删除所有特殊虚拟机中所有的实例,已删除数量记为N-Y;计数单元2042还用 于判定包含的实例数量最少的剩余目标虚拟机中包含的目标应用的实例数量与 Y的关系;如果计数单元2042判定上述包含的实例数量最少的剩余目标虚拟机中 包含的目标应用的实例的数量大于或等于Y,删除单元2044具体用于在上述包含 的实例数量最少的特殊虚拟机中删除目标应用的Y个实例。
情形4:目标虚拟机中包括至少一个特殊虚拟机,特殊虚拟机中只包含所述 目标应用的实例;计数单元2042用于判定所有特殊虚拟机中实例的总数与N的关 系;若计数单元2042判定所有特殊虚拟机中实例的总数小于N,删除单元2044用 于删除所有特殊虚拟机中所有的实例,已删除数量记为N-Y;计数单元2042还用 于判定包含的实例数量最少的剩余目标虚拟机中包含的目标应用的实例数量与 Y的关系;如果计数单元2042判定上述包含的实例数量最少的剩余目标虚拟机中 包含的目标应用的实例的数量小于Y,删除单元2044具体用于按照各个剩余目标 虚拟机中包含的实例总数从少到多的顺序,在前M1个剩余目标虚拟机中删除目 标应用所有的实例,已删除数量记为Y-X1个,使顺序中第M1+1个剩余目标虚拟 机中包含目标应用的实例的数量大于或等于X1,X1为目标应用的实例的剩余删 除数量,M1和X1均为大于0的整数;删除单元2044在顺序中第M1+1个剩余目标 虚拟机中删除所述所述目标应用的X1个实例。
情形5:计数单元2042用于判定包含的实例数量最少的目标虚拟机中包含的 目标应用的实例数量与N的关系;若计数单元2042判定包含的实例总数最少的目 标虚拟机中包含目标应用的实例数量大于或等于N,删除单元2044具体用于在上 述包含的实例总数最少的目标虚拟机中删除目标应用的N个实例。
情形6:计数单元2042用于判定包含的实例数量最少的目标虚拟机中包含的 目标应用的实例数量与N的关系;若计数单元2042判定包含的实例总数最少的目 标虚拟机中包含目标应用的实例数量小于N,删除单元2044具体用于按照各个目 标虚拟机中包含的实例总数从少到多的顺序,在前M2个目标虚拟机中删除目标 应用所有的实例,已删除数量记为N-X2个,使顺序中第M2+1个目标虚拟机中包 含所述目标应用的实例的数量大于或等于X2,X2为目标应用的实例的剩余删除 数量,M2和X2均为大于0的整数;删除单元2044在上述顺序中第M2+1个目标虚 拟机中删除所述目标应用的X2个实例。
策略单元2045中也可以包含优先策略,该优先策略为排序单元提供排序依 据,避免排列顺序时出现排序冲突,具体可以包含上一个实施例中提到的3条排 序优先规则。此外策略模块204中还可以包含一些排序规则和迁移策略,还可以 包含由应用的开发人员根据需求制定个性化的删除方案,使删除操作有条不紊地 进行,在目标虚拟机中删除N个实例;删除模块按照实例的删除请求中的应用标 识和删除实例的数量,会提供一个应用缩容API样式命令:DELETE /v2/apps/:guid/instance/:count)(其中:guid为标识应用的唯一ID,:count为需要删减 的实例个数),:guid的字段代表的应用都是不同且唯一的。
本发明实施例提供了一种云平台的缩容装置,在应用缩容时,查找模块202 可以根据接收模块201接收到的应用标识查找到包含目标应用的实例的目标虚拟 机,通过获得模块203可以获知每个目标虚拟机的实例分布信息,在策略模块204 的指导下,按照一定的缩容策略在目标虚拟机中进行实例的删除,优先选择实例 少的虚拟机进行实例删除操作,或先选择只包含目标应用的实例的虚拟机同样在 其中优先选择实例少的虚拟机进行实例删除操作,使得实例越少越单一的虚拟 机,实例越容易被选中,使虚拟机越容易出现空闲,从而被释放模块206释放掉, 且缩容后实例尽量集中在少数的几台虚拟机中,可以提高云平台虚拟机资源利用 率,降低云平台能耗,为应用开发人员节约开销。
请参阅图15,图15为本发明实施例中一种云平台资源缩容系统的示意图。该 装置300包括:
用户终端301,用于发送针对云平台的实例的删除请求。
一般来说,应用的开发人员有权限持有用户终端,一种请求机制是当开发人 员通过用户终端在云平台上预先设置何时缩容、缩容的数量、以及如何缩容时, 完成了对缩容的自动化管理设置,用户无需实时进行操作,通过自动伸缩服务管 理系统就可以完成缩容操作。
另一种请求机制是用户在特殊的时间特殊的情景下,需要根据云平台的实际 使用情况进行个性化的缩容操作,此时可以决定具体发送怎样的实例的删除请 求,具有一定的灵活性。
以上两种请求机制下,用户的实例删除请求,都包含应用标识和数量标识, 应用标识表示需要删除哪一种应用的实例,数量标识表示该种应用的实例需要删 除多少个。
云平台302,用于:
接收用户终端发送的实例删除请求;根据目标应用的标识查找出目标虚拟机,目 标虚拟机为所有包含目标应用的实例的虚拟机;获得目标虚拟机中每个实例所属 应用的种类和每种应用的实例的数量;根据目标虚拟机中每个实例所属应用的种 类和每种应用的实例的数量,采用预设的缩容策略在目标虚拟机中删除目标应用 的N个实例。
在具体实现过程中,如果云平台302在删除操作后,检测到了空闲的虚拟机, 则将空闲虚拟机释放掉。
本发明实施例提供了一种云平台的缩容系统,云平台可以根据用户终端的实 例的删除请求,实现个性化的缩容操作;在进行删除实例的操作时,按照一定的 缩容策略在目标虚拟机中进行实例的删除,优先选择实例少的虚拟机进行实例删 除操作,或先选择只包含目标应用的实例的虚拟机同样在其中优先选择实例少的 虚拟机进行实例删除操作,使得实例越少越单一的虚拟机,实例越容易被选中, 使虚拟机越容易出现空闲,从而被释放掉,且缩容后实例尽量集中在少数的几台 虚拟机中,可以提高云平台虚拟机资源利用率,降低云平台能耗,为应用开发人 员节约开销。
请参阅图16,图16为本发明实施例中一种云平台资源的缩容设备结构示意 图。该设备400包括:
处理器401,用于产生相应的操作控制信号,发给计算处理设备相应的部件, 读取以及处理软件中的数据,尤其是读取和处理存储器402中的数据和程序,以 使其中的各个功能模块执行相应的功能,从而控制相应的部件按指令的要求进行 动作。
存储器402,用于存储程序和各种数据,主要存储操作系统、应用和功能指 令等软件单元、或者他们的子集、或者他们的扩展集。操作系统包括各种系统程 序如windows系列等,用于实现各种基础业务以及处理基于硬件的任务器,还可 以包括非易失性随机存取存储器(NVRAM),向处理器401提供包括管理计算处 理设备中的硬件、软件及数据资源,支持控制软件和应用的包含。
收发器403,用于采集、获取或发送信息,在模块之间可以用来传递信息。
上述各个硬件单元可以通过总线连接进行通信。
如此一来,通过调用存储器402存储的程序或指令,收发器403能够接收对云 平台上目标应用的实例删除请求,处理器401会根据实例删除请求中的应用标识 查找包含该目标应用的实例的虚拟机,即目标虚拟机;处理器401获得每个目标 虚拟机的实例分布信息,接下来按照实例删除请求,调用存在于存储器402中具 体的缩容策略去删除目标应用的N个实例,并在删除后检测是否存在实例数为零 的虚拟机,当检测到实例数为零的空闲虚拟机时,处理器401将该空闲虚拟机释 放。
本领域普通技术人员可知,上述方法中的全部或部分步骤可以通过程序指令 相关的硬件完成,该程序可以存储于一计算机可读存储介质中。通过以上的实施 方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或 固件实现,或它们的组合方式来实现。
以上上述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保 护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等, 均应包含在本发明的保护范围。

一种云平台资源的缩容方法、装置与系统.pdf_第1页
第1页 / 共26页
一种云平台资源的缩容方法、装置与系统.pdf_第2页
第2页 / 共26页
一种云平台资源的缩容方法、装置与系统.pdf_第3页
第3页 / 共26页
点击查看更多>>
资源描述

《一种云平台资源的缩容方法、装置与系统.pdf》由会员分享,可在线阅读,更多相关《一种云平台资源的缩容方法、装置与系统.pdf(26页珍藏版)》请在专利查询网上搜索。

本发明实施例提供了一种云平台资源的缩容方法、装置与系统。接收对云平台上目标应用的实例删除请求,实例删除请求携带应用标识和数量标识,数量标识表示目标应用需要删除的实例的数量为N;根据目标应用的标识从云平台中查找出目标虚拟机,所有的目标虚拟机都包含目标应用的实例;获得目标虚拟机中每个实例所属应用的种类和每种应用的实例的数量;根据目标虚拟机中每个实例所属应用的种类和每种应用的实例的数量,采用预设的缩容策。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1