[发明专利]虚拟化云中机器启动时间感知的实时任务与资源调度方法有效

专利信息
申请号: 201510607539.8 申请日: 2015-09-22
公开(公告)号: CN105159752B 公开(公告)日: 2018-03-30
发明(设计)人: 朱晓敏;陈黄科;邱涤珊;李志猛;祝江汉;马满好 申请(专利权)人: 中国人民解放军国防科学技术大学
主分类号: G06F9/455 分类号: G06F9/455;G06F9/48
代理公司: 国防科技大学专利服务中心43202 代理人: 郭敏
地址: 410073 湖*** 国省代码: 湖南;43
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种虚拟化云中机器启动时间感知的实时任务与资源调度方法,目的是减缓启动主机和创建虚拟机的时间开销对突增任务时效性的冲击,提高任务的完成率,减少云服务系统的能耗。技术方案是在每台启动的主机上放置一台空闲的应急虚拟机;当新任务到达时,取消所有等待任务与虚拟机的映射关系,并将新任务加入到等待任务队列中;然后按照截止期最早优先的原则逐个调度等待任务,即先将任务映射到已有的虚拟机,若不可行,则增加新虚拟机来执行任务,若还不可行,则增加空闲应急虚拟机的CPU频率来执行任务。采用本发明可转移启动主机和创建虚拟机的延迟对截止期较短任务的影响,尽可能地提高任务的调度成功率。
搜索关键词: 虚拟 化云中 机器 启动 时间 感知 实时 任务 资源 调度 方法
【主权项】:
一种虚拟化云中机器启动时间感知的实时任务与资源调度方法,其特征在于包括以下步骤:第一步,初始化:1.1设置等待执行任务集合WT为空,即1.2令活跃主机的集合为Ha,令关闭主机的集合为Ho;1.2.1令j=1;1.2.2如果j>m,m为主机数量,m为正整数,转第二步;否则,执行第1.2.3步;1.2.3如果则Ha=Ha∪hj;如果则Ho=Ho∪hj;若表示主机hj在时刻t处于活跃状态,表示主机hj在时刻t处于关闭状态;主机hj∈H,1≤j≤m,表示云服务系统中的第j台主机,主机的集合H={h1,h2,…,hm};1.2.4j=j+1,执行第1.2.2步;第二步,当新任务动态到达后,更新系统的状态:2.1将新到达任务加入到等待执行任务集合中,即WT=WT∪Tnew,其中,表示新到达的任务集合,其中|Tnew|为新到达任务的数量,ti'∈Tnew,1≤i≤|Tnew|,为新到达任务集合中的编号为i的任务;2.2取消等待执行任务与虚拟机之间的映射关系,即令xi,jk=0,映射任务ti到非应急虚拟机vmjk表示让非应急虚拟机vmjk执行任务ti;变量xi,jk表示任务ti是否被分配到非应急虚拟机vmjk,如果任务ti被分配到非应急虚拟机vmjk,则xi,jk=1,如果任务ti没有被分配到非应急虚拟机vmjk,则xi,jk=0;任意一个任务ti表示为ti={ai,li,di},1≤i≤n,其中ai为任务ti的到达时间,li为任务ti的执行长度,单位为Hz,di为任务ti的截止期,n为正整数;2.3更新每台非应急虚拟机vmjk的就绪时间rtjk,如果非应急虚拟机vmjk正在执行某个任务,vmjk的就绪时间就是虚拟机完成正在执行任务的时间;如果非应急虚拟机vmjk处于空闲状态,vmjk的就绪时间为当前时间;2.4更新每台活跃主机hj上应急虚拟机lvmj的CPU频率分配,hj∈Ha;第三步,按任务截止期最早优先的顺序,从WT中选出截止期di最早的任务ti;第四步,将任务ti分配到可用的非应急虚拟机上,方法是:4.1令selVmSet为一个虚拟机集合,初始化为minFt为一个变量,初始化为minFt=+∞;4.2令j=1;|Ha|表示活跃主机的数量;4.3如果j>|Ha|,则转第4.4步;否则,执行第4.3.1步;4.3.1令k=1;|VMj|表示主机hj上非应急虚拟机的数量;4.3.2如果k>|VMj|,则j=j+1,转第4.3步;否则,执行第4.3.3步;4.3.3计算任务ti在虚拟机vmjk上的完成时间fti,jk,计算公式如下:其中,为任务ti在虚拟机vmjk上的执行时间;4.3.4如果任务ti在虚拟机vmjk上的完成时间fti,jk满足fti,jk<minFt,那么,清空虚拟机集合selVmSet即令并将虚拟机vmjk加入到selVmSet中;令minFt=fti,jk;k=k+1,转第4.3.2步;4.4如果任务ti的最小完成时间满足它的时效性要求即minFt≤di,取出虚拟机集合selVmSet中的虚拟机,记为selVm;4.5将任务ti映射到虚拟机selVm上即令xi,jk=1,同时更新虚拟机selVm的就绪时间rtjk为rtjk=minFt,转第八步;否则,执行第五步;第五步,增加一台新虚拟机,并分配任务ti到新增加的虚拟机上,方法是:5.1确定新增加虚拟机的CPU频率fnew,计算公式如下:其中,li和di分别表示任务ti的执行长度和截止期;ct为当前时刻;ct(vm)为创建虚拟机的时间延迟;5.2令selHostSet为一个主机集合,初始化为minRemFre为一个变量,初始化为minRemFre=+∞;5.3寻找一台剩余资源大于fnew的活跃主机:5.3.1令j=1;5.3.2如果j>|Ha|,|Ha|表示活跃主机的数量,转第5.4步;否则,执行第5.3.3步;5.3.3计算主机的剩余资源rfj,如下所示:其中,表示主机hj的最大频率;和c(lvmj)分别表示非应急虚拟机集合和应急虚拟机使用的CPU频率;5.3.4如果主机的剩余资源rfj大于新增加虚拟机的CPU频率fnew,且主机的剩余资源rfj小于minRemFre,即(fnew<rfj)&(rfj<minRemFre),则清空主机集合selHostSet,然后将主机hj加入到selHostSet,令minRemFre=rfj,更新j=j+1,转到第5.3.2步;5.4如果选择的主机集合selHostSet为非空,即执行第5.5步;否则,执行第5.6步;5.5创建新虚拟机,并映射任务ti到新虚拟机,转第八步;5.6确定新增加虚拟机的CPU频率fnew,计算公式如下:其中,li和di分别表示任务ti的执行长度和截止期;ct为当前时刻;ct(vm)为创建虚拟机的时间延迟;st(host)为启动主机的时间延迟;5.7启动一台关闭的主机,然后创建一台新虚拟机:5.7.1令j=1;5.7.2如果j>|Ho|,|Ho|表示关闭主机的数量,转第六步;否则,转第5.7.3步;5.7.3如果主机hj的最大CPU频率小于新增加虚拟机的CPU频率需求fnew,即则j=j+1,转第5.7.2步;否则,执行第5.7.4步;5.7.4启动关闭的主机hj;5.7.5将主机hj加入到活跃主机集合Ha中,即Ha=Ha∪hj;同时,将主机hj从关闭主机集合Ho中移除;5.7.6在主机hj上创建一台CPU频率为fnew的虚拟机,记为vmjk;5.7.7在主机hj上创建一台CPU频率为0的应急虚拟机lvmj;5.7.8将新建的非应急虚拟机vmjk加入到可用非应急虚拟机集合AVM中;5.7.9将任务ti映射到新非应急虚拟机vmjk;5.7.10更新非应急虚拟机vmjk的就绪时间rtjk,即rtjk=di,转第八步;第六步,将任务ti分配到应急虚拟机上,方法如下:6.1确定应急虚拟机的最小CPU频率flash‑up,计算公式如下:其中,li和di分别表示任务ti的执行长度和截止期;ct为当前时刻;6.2使用主机的剩余资源来增加应急虚拟机的CPU频率,然后将任务映射到应急虚拟机上:6.2.1令j=1;6.2.2如果j>|Ha|,|Ha|为活跃主机的数量,转第6.3步;否则,转第6.2.3步;6.2.3如果主机hj上的应急虚拟机lvmj为空闲,即c(lvmj)=0,执行第6.2.4步;否则,更新j=j+1,转回第6.2.2步;6.2.4如果主机hj的剩余CPU频率rfj不小于应急虚拟机的最小CPU频率flash‑up,即rfj≥flash‑up,执行第6.2.5步;否则,更新j=j+1,转回第6.2.2步;6.2.5将主机hj的剩余CPU频率rfj分配给应急虚拟机lvmj,即c(lvmj)=rfj,rfj=0;6.2.6将任务ti映射到应急虚拟机lvmj上,转第八步;6.3转移非应急虚拟机的CPU频率到应急虚拟机,然后将任务映射到应急虚拟机上:6.3.1令j=1;6.3.2如果j>|Ha|,转第6.4步;否则,转第6.3.3步;6.3.3如果主机hj上的应急虚拟机lvmj为空闲,即c(lvmj)=0,执行第6.3.4步;否则,更新j=j+1,转回第6.3.2步;6.3.4令k=1;6.3.4.1如果k>|VMj|,|VMj|为主机上非应急虚拟机数量,更新j=j+1,转第6.3.2步;否则,执行第6.3.4.2步;6.3.4.2如果非应急虚拟机vmjk的CPU频率满足c(vmjk)≥flash‑up,执行第6.3.4.3步;否则,更新k=k+1,转回第6.3.4.1步;6.3.4.3令MTjk为映射到非应急虚拟机vmjk的任务集合;6.3.4.4如果MTjk中每个任务ti'的截止期与完成时间之差不小于li/c(vmjk),即di'‑fti',jk≥li/c(vmjk),执行第6.3.4.5步;否则,更新k=k+1,转回第6.3.4.1步;6.3.4.5转移非应急虚拟机vmjk的CPU频率给应急虚拟机lvmj,即c(lvmj)=c(vmjk),c(vmjk)=0;6.3.4.6将任务ti映射到应急虚拟机lvmj上,转第八步;6.4转移非应急虚拟机的CPU频率到应急虚拟机,然后将任务映射到应急虚拟机,接着启动一台关闭的主机,并将非应急虚拟机迁移到新启动的主机上:6.4.1令j=1;6.4.2如果j>|Ha|,则转第七步;否则,执行第6.4.3步;6.4.3如果主机hj上的应急虚拟机lvmj为空闲,即c(lvmj)=0,执行第6.4.4步;否则,更新j=j+1,转回第6.4.2步;6.4.4令k=1;|VMj|为主机上非应急虚拟机数量;6.4.4.1如果k>|VMj|,更新j=j+1,则转到第6.4.2步;否则,执行第6.4.4.2步;6.4.4.2如果非应急虚拟机vmjk的CPU频率满足c(vmjk)≥flash‑up,执行第6.4.4.3步;否则,更新k=k+1,转回第6.4.4.1步;6.4.4.3令MTjk表示映射到非应急虚拟机vmjk的任务集合;6.4.4.4如果MTjk中每个任务的截止期与完成时间之差满足di‑fti,jk≥st(host)+mt(vmjk),st(host)和mt(vmjk)分别表示启动主机和迁移虚拟机的时间,执行第6.4.4.5步;否则,更新j=j+1,转到第6.4.2步;6.4.4.5转移非应急虚拟机vmjk的CPU频率给应急虚拟机lvmj,即c(lvmj)=c(vmjk),c(vmjk)=0;6.4.4.6将任务ti映射到应急虚拟机lvmj上;6.4.4.7启动一台最大CPU频率大于c(lvmj)的关闭主机hj;6.4.4.8迁移非应急虚拟机vmjk到刚启动的主机hj上;6.4.4.9配置虚拟机vmjk的CPU频率为c(vmjk)=c(lvmj);6.4.4.10在主机hj上创建一台CPU频率为0的应急虚拟机lvmj;6.4.4.11将主机hj加入到活跃主机集合Ha中,即Ha=Ha∪hj;同时,将主机从关闭主机集合Ho中移除,即Ho=Ho‑hj;6.4.4.12转第八步;第七步,如果任务ti没有被映射到任何一台虚拟机上,则拒绝任务ti,即WT=WT‑{ti};第八步,如果待分配任务集合WT中存在未调度任务,则转第三步;否则,执行第九步;第九步,结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201510607539.8/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top