基于超轻量虚拟机的云计算动态资源调度系统及方法

文档序号:10654293阅读:477来源:国知局
基于超轻量虚拟机的云计算动态资源调度系统及方法
【专利摘要】本发明公开了一种基于超轻量虚拟机的云计算动态资源调度系统及方法,从云计算环境中收集各应用实例的虚拟资源指标,通过拟合函数和使用误差最小的预测函数作为该应用实例的预测函数,以预测一个应用实例的虚拟资源到达使用率上限的时间;根据预测的上限时间和签订的SLA协议,对进行资源动态分配的各个应用实例进行任务排序;按照排序的顺序,将任务排队模块中选取的应用实例调度给需求者,回收应用虚拟资源使用率已经超出下限的虚拟资源,实现资源的动态分配。本发明更高效实现资源均衡使用,实现在低耗下获得满意的负载均衡,提高资源调度的综合效率。
【专利说明】
基于超轻量虚拟机的云计算动态资源调度系统及方法
技术领域
[0001] 本发明设及一种基于超轻量虚拟机的云计算动态资源调度系统及方法。
【背景技术】
[0002] 在超轻量虚拟机DockeH W下简称Docker)发展之前,如我们所知,要对公司人员 进行一项上机培训,需要先寻找合适的机房,购买必需的设备,再为该设备安装所需培训的 内容,然后才能进行正常培训。设备及培训的内容在运里就是整个培训过程依赖的环境,公 司人员与环境是强相关的。假如环境由运维工程师维护,一旦环境有所变化,直接导致运维 工程师需要重新更换设备或培训内容,运维成本高,内耗与风险大。
[0003] Docker的发展,创造性的解决了运个难题。它把应用实例及其依赖环境打包到一 个可移植容器中,可W发布到任何流行的Linux机器上。当下已有SwarnKkubernetes等基于 Docker的容器管理工具,都是官方封装的实现固定功能的工具,适合于公司企业开发严格 规范的大型项目。有了 Docker,开发、运维人员就可W W容器为单位整体式地管控整个开 发、运维流程,帮助开发过程中实现一处开发、多处运行。
[0004] 虽然Docker有效解决上述问题,但在实际应用过程中又引入另一个问题,即 Docker本身并不具备资源调度的功能,然而在现实中资源调度又是不可或缺的。例如在B2C (Business-to-化Stomer)业务场景下,当用户大量访问网页时,数据库将执行大量查询、插 入、删除等操作。基于互联网的访问请求是不可预测的,如果所有的应用实例分配的资源不 再改变,那么在访问达到峰值时,资源因为消耗的快速增长,而造成网页访问延迟,用户体 验下降等负面影响。
[0005] 实际中,一个应用实例的资源利用率是时刻变化的,若分配的资源一成不变,必然 导致资源利用率不高的后果,类似访问网页的应用实例就会出现延迟响应速度。因此要求 应用实例的资源不应该是一成不变的,必须是可调度、可再分配的。如何实现运一要求,成 为本领域一个急需解决的问题。

【发明内容】

[0006] 本发明为了解决上述问题,提出了一种基于超轻量虚拟机的云计算动态资源调度 系统及方法,本发明可有效解决现有技术中存在的虚拟机的资源可调度、可再分配的效果 不理想,资源利用率低等问题。
[0007] 为了实现上述目的,本发明采用如下技术方案:
[000引一种基于超轻量虚拟机的云计算动态资源调度系统,包括资源预测模块、任务排 队模块和资源调度模块,其中:
[0009] 所述资源预测模块,从云计算环境中收集各应用实例的虚拟资源指标,通过拟合 函数和使用误差最小的预测函数作为该应用实例的预测函数,W预测一个应用实例的虚拟 资源到达使用率上限的时间;
[0010] 所述任务排队模块,根据预测的上限时间和签订的SLA协议,对进行资源动态分配 的各个应用实例进行任务排序;
[0011] 所述资源调度模块,包括交替进行操作的资源动态分配模块和资源回收模块,所 述资源动态分配模块,按照排序的顺序,将任务排队模块中选取的应用实例调度给需求者, 所述资源回收模块,回收应用虚拟资源使用率已经超出下限的虚拟资源,实现资源的动态 分配。
[0012] 所述资源动态分配模块对于应用实例的调度包括节点内调度,即同一节点之内, 在该节点的资源足够满足资源动态分配任务需求的资源的情况下,就在节点内执行资源动 态分配。
[0013] 所述资源动态分配模块对于应用实例的调度包括节点之间调度,不同节点之内, 在该节点的资源无法满足资源动态分配任务需求的资源的情况下,就将该应用实例在另一 个空闲的节点上执行。
[0014] 所述虚拟资源包括虚拟处理机和虚拟内存。
[0015] 所述节点为每个安装有超轻量虚拟机的物理机。
[0016] 所述每一个应用实例的虚拟资源都有使用率上限和下限。使用率是指应用实例使 用的虚拟资源占用分配给应用实例的虚拟资源的百分比。上限是指虚拟资源使用率的最大 值。下限是指虚拟资源使用率的最小值。
[0017] -种基于超轻量虚拟机的云计算动态资源调度方法,包括W下步骤:
[0018] (1)根据从云计算环境中收集各应用实例的虚拟资源指标,通过拟合函数和使用 误差最小的预测函数作为该应用实例的预测函数,预测一个应用实例的虚拟资源到达使用 率上限的时间;
[0019] (2)根据预测的上限时间和签订的SLA协议,对进行资源动态分配的各个应用实例 进行任务排序;
[0020] (3)按照排序顺序,根据从云计算环境中收集各应用实例的虚拟资源指标,将任务 排队模块中选取的应用实例调度给需求者,回收应用虚拟资源使用率已经超出下限的虚拟 资源,实现资源的动态分配。
[0021] 所述步骤(1)中,实时获取应用实例在一段时间之内各项虚拟资源指标,根据拟合 函数计算预测值与真实值之间的误差,选择误差最小的预测函数作为最终使用的预测函 数,通过选定的预测函数,计算应用实例虚拟资源到达使用率上限的时间,按照时间对所有 应用实例进行排序。
[0022] 优选的,所述步骤(1)中,对于虚拟处理机和虚拟内存两种不同的虚拟资源,进行 不同的预测,计算应用实例相应的虚拟资源到达使用率上限的时间。
[0023] 所述步骤(1)中,对于虚拟处理机的资源预测过程具体包括:
[0024] (1-1)记录每个时刻采样的每个应用实例的虚拟处理机的使用率,通过线性拟合 构造虚拟处理机使用率与时间的线性拟合函数,计算每个应用实例的虚拟处理机使用率的 观察值和预测值的误差之和;
[0025] (1-2)通过二次拟合来求出应用实例的虚拟处理机使用率与时间的拟合函数,计 算应用实例的虚拟处理机使用率的观察值和预测值的误差之和;
[0026] (1-3)比较两个误差之和,选择误差之和较小的结果所对应的拟合函数为最终预 测函数;
[0027] (1-4)利用拟合函数预测每个应用实例虚拟处理机使用率到达使用率上限的时 间,对所有应用实例,按照求取的时间进行从小到大的排序。
[0028] 所述步骤(1)中,对于虚拟内存的资源预测过程具体步骤包括:
[0029] (1.1)通过线性拟合求出每个应用实例的虚拟内存使用率与时间的线性拟合函 数,计算应用实例的虚拟内存使用率的观察值和预测值的误差之和;
[0030] (1.2)通过二次拟合来求出应用实例的虚拟内存使用率与时间的拟合函数,计算 应用实例的虚拟内存使用率的观察值和预测值的误差之和;
[0031] (1.3)比较两个误差之和,选择误差之和较小的结果所对应的拟合函数为最终预 测函数,W预测各个应用实例的虚拟内存使用率到达使用率上限的时间;
[0032] (1.4)对所有应用实例按照求取的时间进行从小到大的排序。
[0033] 所述步骤(1)中,对虚拟处理机的资源预测结果和虚拟内存的资源预测结果进行 整合,确认最终的排序方案。
[0034] 所述步骤(2)中,根据SLA协议,考虑当应用实例遇到资源问题时处理的优先级,对 形成的排序方案进行重新的排序,确定最终的资源动态分配的顺序。
[0035] 所述步骤(3)中,在排序方案中选择顺序排在第一位的应用实例作为资源动态分 配任务的目标应用,根据各个应用实例虚拟资源使用率的下限,判断是否存在应用实例可 被回收资源。
[0036] 所述步骤(3)中,若存在某应用实例的虚拟处理机的使用率下限大于其一段时间 之内的平均虚拟处理机使用率,且该应用实例的虚拟内存使用率大于其在一段时间之内的 平均虚拟内存使用率,则资源回收的准则为:
[0037] cid< = (&-AC)/Ci< = Ciu [003引 mid< = (M 广 AM)/Mi<=miu
[0039] Ci代表已经分配给应用实例i的虚拟处理机资源大小,Mi代表已经分配给应用实例 i的虚拟内存资源大小,A C代表应用实例i要被回收的处理机资源大小,A M代表应用实例i 要被回收的内存资源大小,Ciu代表应用实例i的虚拟CPU使用率上限,miu代表应用实例i的 虚拟内存使用率上限,Cid代表应用实例i的虚拟CPU使用率下限,mid代表应用实例i的虚拟 内存使用率下限。
[0040] 所述步骤(3)中,获取每个节点的可分配的虚拟物理资源,比较资源动态分配任务 所需的资源节点的可分配的物理资源的大小:若资源动态分配任务所需的资源小于或等于 节点的可分配的物理资源,则进行节点内调度,否则,先执行资源回收任务,查看回收的资 源能否满足资源动态分配任务的需求,若能,则进行节点内调度;若不能,则进行节点间调 度。
[0041] 所述步骤(3)中,节点间调度的具体方法为寻找到一个可分配资源满足资源动态 分配任务的需求的节点,在运个节点上新建一个应用实例。
[0042] 进一步的,新增资源后,需要达到W下要求:
[0043]
[0044]
[0045] 其中,分配的虚拟处理机记为AC,分配的虚拟内存记为AM,应用实例i实际分配 的处理机记为Cl,应用实例i实际分配的内存为Ml, a为设定系数,小于等于1,应用实例i使用 的处理机记为Cir,应用实例i使用的内存为Mir。
[0046] 本发明的有益效果为:
[0047] (1)本发明通过对资源预测、排队,实现有顺序的资源调度和动态分配与资源回 收,改进现有资源调度方法,更高效实现资源均衡使用,实现在低耗下获得满意的负载均 衡,提高资源调度的综合效率;
[0048] (2)本发明在资源调度过程中,将资源预测模块预测的结果考虑进去,有选择性的 进行资源分配和回收,优化云计算平台资源动态调度,使整个系统的资源分配更加合理。
【附图说明】
[0049] 图1为本发明的系统调度示意图;
[0050] 图2为本发明的动态资源调度算法的流程图。
【具体实施方式】:
[0051] 下面结合附图与实施例对本发明作进一步说明。
[0052] 本发明针对应用实例的资源可调度、可再分配的效果不理想,资源利用率低等问 题,提出一种基于Docker的云计算动态资源调度系统,具体来说:
[0053] 一是借助Docker平台,通过创建容器、应用实例及其依赖包,最大限度地降低云计 算环境中资源消耗。
[0054] 二是结合同用户签订的SLA协议(服务等级协议)和资源预测模块预测的时间,对 应用实例进行任务排序,W确保不同等级用户和服务提供商签订的服务等级不同时,可W 享受到不同等级的服务保障,同时使整体资源在同等时间内达到利用价值的最大化。
[0055] 在应用实例运行过程中实时监测应用实例的各项性能指标,预测所有应用实例资 源到达使用率阔值的时间,当任务请求到来时,根据SLA协议对应用实例进行任务排序并选 择出最适合的应用实例进行调度。
[0化6] 具体包括:
[0057] 资源预测模块:用于从云计算环境中收集各应用实例的虚拟资源指标,预测应用 实例的虚拟资源(虚拟CPU和虚拟内存巧Ij达使用率上限的时间。每一个应用实例的虚拟资 源都有一个使用率的上限和下限。
[0058] 任务排队模块:结合与用户签订的SLA协议和资源预测模块预测的时间,对应用实 例进行任务排序。运里只对资源动态分配的任务进行任务排队。
[0059] 资源调度模块:分为两个子模块,资源动态分配模块和资源回收模块。资源动态分 配和资源回收交替执行。
[0060] 资源动态分配模块:用于将任务排队模块选取的应用实例调度给需求者,实现资 源的智能分配。分为节点内调度和节点之间调度。
[0061] 资源回收模块:用于回收应用实例虚拟资源使用率已经超出下限的虚拟资源。
[0062] 节点内调度:用于同一节点之内,在该节点的资源足够满足资源动态分配任务需 求的资源的情况下,就在节点内执行资源动态分配。
[0063] 节点之间调度:用于不同节点之内,在该节点的资源无法满足资源动态分配任务 需求的资源的情况下,就将该应用实例在另一个空闲的节点上执行。
[0064] 具体的,所有的虚拟资源分为两大类:虚拟cpu和虚拟内存。
[00化]具体的,一台物理机上安装一个Docker引擎,叫做一个节点。
[0066] 具体的,Docker是一种轻量级虚拟机。
[0067] 具体的,对一个应用实例进行资源动态分配或资源回收的过程称作一个任务。
[0068] 具体的,任务主要分为资源动态分配任务和资源回收任务。
[0069] 具体的,每一个应用实例的虚拟资源都有使用率上限和下限。使用率是指应用实 例使用的虚拟资源占用分配给应用实例的虚拟资源的百分比。上限是指虚拟资源使用率的 最大值。下限是指虚拟资源使用率的最小值。
[0070] 具体的,资源预测模块预测到达使用率上限时间的方法是:
[0071] 根据从云计算环境中收集各应用实例的虚拟资源指标,通过拟合函数(线性拟合 和二次拟合函数),使用误差最小的预测函数作为该应用实例的预测函数,接着用选定的预 测函数预测出一个应用实例的虚拟资源到达使用率上限的时间。
[0072] 具体的,任务排队模块任务排队的方法是:
[0073] 结合与用户签订的SLA协议和资源预测模块预测的时间,对应用实例进行任务排 序。运里只对资源动态分配的任务进行任务排队。
[0074] 具体的,资源回收模块的方法是:
[0075] 根据从云计算环境中收集各应用实例的虚拟资源指标,判断虚拟资源使用率是否 已经小于规定的使用率下限。若小于规定的使用率下限,就对虚拟资源进行回收;若大于或 等于规定的使用率下限,对此应用实例不执行回收资源操作。
[0076] 具体的,资源调度(资源动态分配任务和资源回收任务的交替执行)方法:
[0077] 判断节点所剩余的空闲资源是否满足资源动态分配任务,若能,则资源动态分配 任务和资源回收任务同时执行;若不能,则先执行资源回收任务,再执行资源动态分配任 务。
[0078] 此外,本发明的动态资源调度方法,包括W下实现步骤:
[0079] a.根据从云计算环境中收集各应用实例的虚拟资源指标,通过虚拟资源预测模 块,预测出一个应用实例的虚拟资源到达使用率上限的时间。
[0080] b.结合与用户签订的SLA协议和资源预测模块预测的时间,通过任务排队模块对 应用实例进行任务排序。
[0081] C.根据从云计算环境中收集各应用实例的虚拟资源指标,通过资源回收模块判断 出可W被回收虚拟资源的应用实例。
[0082] d.执行资源调度模块,交替执行资源动态分配任务和资源回收任务。
[0083] 如图1所示,本发明中的动态资源调度系统包括资源预测模块103、任务排队模块 104、资源调度模块105。
[0084] 资源预测模块103,用于从云计算环境中收集各应用实例的虚拟资源指标,预测一 个应用实例的虚拟资源到达使用率上限的时间。每一个应用实例的虚拟资源都有一个使用 率上限和下限。
[0085] 任务排队模块104:结合与用户签订的SLA协议和资源预测模块103预测的时间,对 应用实例进行任务排序。运里只对要进行资源动态分配的任务进行任务排队。
[0086] 资源调度模块105:分为两个子模块,资源动态分配模块1051、1054和资源回收模 块1052、1053。资源动态分配和资源回收交替执行。
[0087] 资源动态分配模块105U1054:用于将任务排队模块104选取的应用实例调度给需 求者,实现资源的智能分配。分为节点内调度和节点之间调度。
[0088] 资源回收模块1052U053:用于回收应用实例虚拟资源使用率已经超出下限的虚 拟资源。
[0089] 节点内调度2053、2063:用于同一节点之内,在该节点的资源足够满足资源动态分 配任务需求的资源的情况下,在节点内执行资源动态分配。
[0090] 节点之间调度2054、2062:用于不同节点之内,在该节点的资源无法满足资源动态 分配任务需求的资源的情况下,就将该应用实例在另一个空闲的节点上执行。
[0091] 下面W-个实施例对云计算动态资源调度算法进行具体的阐述。
[0092] 资源动态调度系统通过实时获取应用实例的各项虚拟资源指标。
[0093] 步骤201:通过实时获取应用实例在一段时间之内各项虚拟资源指标,使用线性拟 合模型2012和二次拟合模型2013获得的数据,根据拟合函数计算预测值与真实值之间的误 差,选择误差最小的预测函数作为最终使用的预测函数。通过选定的预测函数,计算应用实 例虚拟资源到达使用率上限的时间,按照时间对所有应用实例进行排序。
[0094] 用<山化>〇 = 1. . .n)代表在tj时刻采样的应用实例i的虚拟CPU使用率化。 [00M]分步骤1:通过线性拟合模型2012来求出应用实例i的虚拟CPU使用率与时间的拟 合函数yij。。
[0096] 则 yijc = aic*tj+bic;其中aic、bic为系数。
[0097] 分步骤2:通过得到的线性拟合函数yuc,计算应用实例i的虚拟CPU使用率的观察 值和预测值的误差之兩
,其中yu。表示通过上述步骤求得的应用实例i在tj 时刻的虚拟CPU使用率的预测值。
[0098] 分步骤3:通过二次拟合模型2013来求出应用实例i的虚拟CPU使用率与时间的拟 合函数Zij。。
[0099] 贝ijzijc 二 Aic*t j2+Bic*t j+C ,其中 Aic、Bic、C为系数。
[0100] 分步骤4:通过得到的二次拟合函数ZU。,计算应用实例i虚拟CPU使用率的观察值 和预测值的误差之和
其中ZU。表示通过上述步骤求得的应用实例i在tj时 刻的虚拟CPU使用率的预测值。
[0101] 分步骤5:比较due与Duc大小。若due小于Due,则选择线性拟合函数作为最终的预 测函数;否则,选择二次拟合函数作为最终的预测函数。
[0102] 分步骤6:通过分步骤5选出的拟合函数,预测应用实例i的虚拟CPU使用率到达使 用率上限Ciu的时间ticu。
[0103] 分步骤7:对于应用实例ia = l...n),按照求得的时间ticu从小到大进行排序,形 成排序方案S。,应用实例i在排序方案中的序列号记为SkQ = I.. .n)。
[0104] 分步骤8:通过线性拟合模型2012求出应用实例i的虚拟内存使用率与时间的拟合 函数yum。
[010引贝ljyijm = aim*tj+bim,其中aim、bim为系数。
[0106] 分步骤9:用< tj,mij> (j = 1. . .n)代表在tj时刻采样的应用实例i的虚拟内存使 用率叫。
[0107] 通过得到的线性拟合函数yum,计算应用实例i虚拟内存使用率的观察值和预测值 的误差之租
其中yum表示用上述步骤求得的应用实例i在t川寸刻虚拟内 存使用率的预测值。
[0108] 分步骤10:通过二次拟合模型2013求出应用实例i的虚拟内存使用率与时间的拟 合函数ZdJmo
[01 09]贝!Jzijm二Aim*tj2+Bim*tj+Cim其中Aim、Bim、Cim为系数。
[0110] 分步骤11:通过得到的线性拟合函数ZUm,计算应用实例i虚拟内存使用率的观察 值和预测值的误差之和
其中ZUm表示用上述步骤求得应用实例i在tj时 刻虚拟内存使用率的预测值。
[0111] 分步骤12 :比较dum与Dum的大小。若dum小于化jm,则选择线性拟合函数作为最终的 预测函数;否则,选择二次拟合函数作为最终的预测函数。
[0112] 分步骤13:用分步骤5选出的拟合函数,来预测应用实例i的虚拟内存使用率到达 使用率上限Hliu的时间timu。
[0113] 分步骤14:对于应用实例i(i = l...n),按照求得的时间timu从小到大进行排序,形 成排序方案Sm,应用实例i在排序方案中的序列号记为Sima = 1. . .n)。
[0114] 步骤202:对排序方案Sc和Sm进行整合,形成新的排序方案Scm = acm*Sc+0cm*Sm。其中 a cm、Pcm为系数。
[0115] 步骤203:根据SLA协议,即当应用实例遇到资源问题时处理的优先级prei,对上一 步形成的排序方案Scm进行再一步细化,重新形成新的排序方案S =心Sem+帕prei。其中a、0为 系数。用Si代表应用实例i(i = l. . .n)在排序方案S中的序列号,即最终资源动态分配的顺 序。
[0116] 步骤204:在排序方案中S选择顺序排在第一位的应用实例作为资源动态分配任务 的目标应用。
[0117] 步骤205:根据各个应用实例虚拟资源使用率的下限,判断一个应用实例是否可被 回收资源。
[0118] 在一段时间之内的平均虚拟CPU使用率记为A,在一段时间之内的平均虚拟内存 使用率记为碼。
[0119] 若cg>c,和Ww>m,,则按照W下公式进行资源回收。
[0120] cid< = (&-AC)/Ci< = Ciu [01 別]mid< = (M 广 AM)/Mi<=miu
[0122] Ci代表已经分配给应用实例i的虚拟CPU资源大小,Mi代表已经分配给应用实例i的 虚拟内存资源大小,A C代表应用实例i要被回收的CPU资源大小,AM代表应用实例i要被回 收的内存资源大小,Ciu代表应用实例i的虚拟CPU使用率上限,miu代表应用实例i的虚拟内 存使用率上限,Cid代表应用实例i的虚拟CPU使用率下限,mid代表应用实例i的虚拟内存使 用率下限。
[0123] 获取节点k化=1. . .n)的可分配的物理资源<Ck,Mk>。比较资源动态分配任务所 需的资源和节点的可分配的物理资源的大小。若资源动态分配任务所需的资源小于或等于 节点的可分配的物理资源,则进行节点内调度2062,在节点内同时执行资源动态分配任务 1051和资源回收任务1052;若资源动态分配任务所需的资源大于节点的可分配的物理资 源,先执行资源回收任务2051,查看回收的资源能否满足资源动态分配任务的需求,若能, 则进行节点内调度2053;若不能,则进行节点间调度2054,即寻找到一个可分配资源满足资 源动态分配任务的需求的节点,在运个节点上新建一个应用实例。
[0124] 具体的,节点间的调度2054、2036方法:
[0125] 分配的虚拟CPU记为AC,分配的虚拟内存记为AM,应用实例i实际分配的CPU记为 Ci,应用实例i实际分配的内存为Mi,应用实例i使用的cpu记为Cir,应用实例i使用的内存为 Mir O
[01%]新增资源后,需要达到W下要求:
[0127] cid< = (Cir+ A C)/Ci< = ciu*0.8 [012 引 mid< = (Mir+AM)/Mi<=miu*0.8
[0129] 综上所述,通过本发明实施例,通过资源预测模块、任务排队模块、资源调度模块、 资源动态分配模块及资源回收模块相结合,改进现有资源调度方法,更高效实现资源均衡 使用,实现在低耗下获得满意的负载均衡,提高资源调度的综合效率。
[0130] W上所述仅为本发明的优先实施例,并不用于限制本发明,基于本发明中的实施 例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于 本发明保护的范围。
[0131] 上述虽然结合附图对本发明的【具体实施方式】进行了描述,但并非对本发明保护范 围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不 需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围W内。
【主权项】
1. 一种基于超轻量虚拟机的云计算动态资源调度系统,其特征是:包括资源预测模块、 任务排队模块和资源调度模块,其中: 所述资源预测模块,从云计算环境中收集各应用实例的虚拟资源指标,通过拟合函数 和使用误差最小的预测函数作为该应用实例的预测函数,以预测一个应用实例的虚拟资源 到达使用率上限的时间; 所述任务排队模块,根据预测的上限时间和签订的SLA协议,对进行资源动态分配的各 个应用实例进行任务排序; 所述资源调度模块,包括交替进行操作的资源动态分配模块和资源回收模块,所述资 源动态分配模块,按照排序的顺序,将任务排队模块中选取的应用实例调度给需求者,所述 资源回收模块,回收应用虚拟资源使用率已经超出下限的虚拟资源,实现资源的动态分配。2. 如权利要求1所述的一种基于超轻量虚拟机的云计算动态资源调度系统,其特征是: 所述资源动态分配模块对于应用实例的调度包括节点内调度,即同一节点之内,在该 节点的资源足够满足资源动态分配任务需求的资源的情况下,就在节点内执行资源动态分 配; 所述资源动态分配模块对于应用实例的调度包括节点之间调度,不同节点之内,在该 节点的资源无法满足资源动态分配任务需求的资源的情况下,就将该应用实例在另一个空 闲的节点上执行; 所述虚拟资源包括虚拟处理机和虚拟内存。3. -种基于超轻量虚拟机的云计算动态资源调度方法,其特征是:包括以下步骤: (1) 根据从云计算环境中收集各应用实例的虚拟资源指标,通过拟合函数和使用误差 最小的预测函数作为该应用实例的预测函数,预测一个应用实例的虚拟资源到达使用率上 限的时间; (2) 根据预测的上限时间和签订的SLA协议,对进行资源动态分配的各个应用实例进行 任务排序; (3) 按照排序顺序,根据从云计算环境中收集各应用实例的虚拟资源指标,将任务排队 模块中选取的应用实例调度给需求者,回收应用虚拟资源使用率已经超出下限的虚拟资 源,实现资源的动态分配。4. 如权利要求3所述的一种基于超轻量虚拟机的云计算动态资源调度方法,其特征是: 所述步骤(1)中,实时获取应用实例在一段时间之内各项虚拟资源指标,根据拟合函数计算 预测值与真实值之间的误差,选择误差最小的预测函数作为最终使用的预测函数,通过选 定的预测函数,计算应用实例虚拟资源到达使用率上限的时间,按照时间对所有应用实例 进行排序。5. 如权利要求3所述的一种基于超轻量虚拟机的云计算动态资源调度方法,其特征是: 所述步骤(1)中,对于虚拟处理机的资源预测过程具体包括: (1-1)记录每个时刻采样的每个应用实例的虚拟处理机的使用率,通过线性拟合构造 虚拟处理机使用率与时间的线性拟合函数,计算每个应用实例的虚拟处理机使用率的观察 值和预测值的误差之和; (1-2)通过二次拟合来求出应用实例的虚拟处理机使用率与时间的拟合函数,计算应 用实例的虚拟处理机使用率的观察值和预测值的误差之和; (1-3)比较两个误差之和,选择误差之和较小的结果所对应的拟合函数为最终预测函 数; (1-4)利用拟合函数预测每个应用实例虚拟处理机使用率到达使用率上限的时间,对 所有应用实例,按照求取的时间进行从小到大的排序。6. 如权利要求3所述的一种基于超轻量虚拟机的云计算动态资源调度方法,其特征是: 所述步骤(1)中,对于虚拟内存的资源预测过程具体步骤包括: (1.1) 通过线性拟合求出每个应用实例的虚拟内存使用率与时间的线性拟合函数,计 算应用实例的虚拟内存使用率的观察值和预测值的误差之和; (1.2) 通过二次拟合来求出应用实例的虚拟内存使用率与时间的拟合函数,计算应用 实例的虚拟内存使用率的观察值和预测值的误差之和; (1.3) 比较两个误差之和,选择误差之和较小的结果所对应的拟合函数为最终预测函 数,以预测各个应用实例的虚拟内存使用率到达使用率上限的时间; (1.4) 对所有应用实例按照求取的时间进行从小到大的排序。7. 如权利要求3所述的一种基于超轻量虚拟机的云计算动态资源调度方法,其特征是: 所述步骤(2)中,在排序方案中选择顺序排在第一位的应用实例作为资源动态分配任 务的目标应用,根据各个应用实例虚拟资源使用率的下限,判断是否存在应用实例可被回 收资源。8. 如权利要求3所述的一种基于超轻量虚拟机的云计算动态资源调度方法,其特征是: 所述步骤(3)中,若存在某应用实例的虚拟处理机的使用率下限大于其一段时间之内 的平均虚拟处理机使用率,且该应用实例的虚拟内存使用率大于其在一段时间之内的平均 虚拟内存使用率,则资源回收的准则为: cid< = (Ci- Δ C)/Ci< = Ciu mid< = (Μι- Δ M)/Mi< =niiu C1代表已经分配给应用实例i的虚拟处理机资源大小,M1代表已经分配给应用实例i的 虚拟内存资源大小,AC代表应用实例i要被回收的处理机资源大小,ΔΜ代表应用实例i要 被回收的内存资源大小,Ciu代表应用实例i的虚拟cpu使用率上限,m iu代表应用实例i的虚 拟内存使用率上限,Cid代表应用实例i的虚拟CPU使用率下限,HUd代表应用实例i的虚拟内 存使用率下限。9. 如权利要求3所述的一种基于超轻量虚拟机的云计算动态资源调度方法,其特征是: 所述步骤(3)中,获取每个节点的可分配的虚拟物理资源,比较资源动态分配任务所需的资 源和节点的可分配的物理资源的大小:若资源动态分配任务所需的资源小于或等于节点的 可分配的物理资源,则进行节点内调度,否则,先执行资源回收任务,查看回收的资源能否 满足资源动态分配任务的需求,若能,则进行节点内调度;若不能,则进行节点间调度。10. 如权利要求3所述的一种基于超轻量虚拟机的云计算动态资源调度方法,其特征 是:所述步骤(3)中,节点间调度的具体方法为寻找到一个可分配资源满足资源动态分配任 务的需求的节点,在这个节点上新建一个应用实例; 新增资源后,需要达到以下要求:其中,分配的虚拟处理机记为A C,分配的虚拟内存记为ΔΜ,应用实例i实际分配的处 理机记为Ci,应用实例i实际分配的内存为Mi,a为设定系数,小于等于1,应用实例i使用的处 理机记为Cir,应用实例i使用的内存为Mir。
【文档编号】G06F9/455GK106020933SQ201610334927
【公开日】2016年10月12日
【申请日】2016年5月19日
【发明人】崔立真, 闵新平, 边俊峰, 李庆忠
【申请人】山东大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1