CN105159752B - 虚拟化云中机器启动时间感知的实时任务与资源调度方法 - Google Patents
虚拟化云中机器启动时间感知的实时任务与资源调度方法 Download PDFInfo
- Publication number
- CN105159752B CN105159752B CN201510607539.8A CN201510607539A CN105159752B CN 105159752 B CN105159752 B CN 105159752B CN 201510607539 A CN201510607539 A CN 201510607539A CN 105159752 B CN105159752 B CN 105159752B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- task
- main frame
- steps
- new
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种虚拟化云中机器启动时间感知的实时任务与资源调度方法,目的是减缓启动主机和创建虚拟机的时间开销对突增任务时效性的冲击,提高任务的完成率,减少云服务系统的能耗。技术方案是在每台启动的主机上放置一台空闲的应急虚拟机;当新任务到达时,取消所有等待任务与虚拟机的映射关系,并将新任务加入到等待任务队列中;然后按照截止期最早优先的原则逐个调度等待任务,即先将任务映射到已有的虚拟机,若不可行,则增加新虚拟机来执行任务,若还不可行,则增加空闲应急虚拟机的CPU频率来执行任务。采用本发明可转移启动主机和创建虚拟机的延迟对截止期较短任务的影响,尽可能地提高任务的调度成功率。
Description
技术领域
本发明属于计算机软件和云服务系统中任务调度和资源管理技术领域,涉及云计算平台中任务和资源调度方法。
背景技术
为了满足急剧增长的计算服务需求,云服务系统中的主机规模不断扩大。一个数据中心的主机数量就高达几万台,甚至几十万台。正常运行这些主机,云服务系统需要消耗大量的电能。据统计,从2005年到2010年全球数据中心的能耗提高了56%,占全球能耗的1.5%。对企业而言,高能耗就意味着高成本。另外,高能耗对生态环境产生较大的负面影响,因为使用煤矿发电会向空气中释放大量的废气。云服务系统的高能耗问题已经引起工业界和学术界的极大关注,并成为学术界研究的热点。
大量的研究表明,在云服务系统中,能够提高活跃主机资源的有效利用和减少电能消耗的有效途径是:在云服务系统负载下降的时候,动态整合虚拟机到尽可能少的主机上,然后关闭空闲的主机,以减少能量消耗。由于主机处于完全空闲的状态,功耗仍然是它最大功耗的50%以上,关闭空闲的主机就意味着减少大量的电能消耗。
但是,这种资源调度方法带来了另一个具有挑战性的问题:当云服务系统的负载突增时,在伸展虚拟机的过程中,创建新虚拟机或者先开启关闭的主机然后再创建虚拟机都需要一定的时间开销,使得某些任务不能及时开始,从而延误了它们的截止期。例如,一个在0s到达的新任务,它的执行时间是5s,假设它的截止期是执行时间的五倍(即25s)。启动主机的时间大概为30s,创建一台虚拟机的时间近似于启动一个操作系统的时间,大概是30s。当新任务到达后,启动一台主机,然后再创建一台新虚拟机来执行新到达任务,很明显,新到达任务的截止期将被延误。
一段时间内,云服务系统需要执行的任务集合可表示为T={t1,t2,…,tn},其中n为正整数。任意一个任务ti∈T可表示为ti={ai,li,di},1≤i≤n,其中ai为任务ti的到达时间,li为任务ti的计算量(单位为Hz),di为任务ti的截止期。云服务系统中,主机的集合用H={h1,h2,…,hm}表示,主机hj∈H,1≤j≤m表示云服务系统中的第j台主机,m为正整数。另外,任意一台主机hj∈H可描述为其中mj、sj、nj和分别表示主机hj的内存大小(GB)、硬盘大小(GB)、网络传输速度(Mb/s)和功耗(W);表示主机hj中CPU主频-电压对的离散集合,max为正整数,表示主机的主机主频-电压对的数量,其中表示主机hj的第d对主频-电压,并且主机hj∈H可同时运行一个虚拟机集合,表示为其中下标|VMj|为可变的正整数,表示主机hj上非应急虚拟机的个数;vmjk∈VMj,1≤k≤|VMj|表示主机hj上的第k台虚拟机;lvmj为主机hj上唯一的一台应急虚拟机。对于虚拟机vmjk,符号c(vmjk)、r(vmjk)和n(vmjk)分别表示分配给该虚拟机的CPU能力、内存和网络带宽。类似地,c(lvmj)、r(lvmj)和n(lvmj)分别表示分配给应急虚拟机lvmj的CPU能力、内存和网络带宽。
朱晓敏等人在期刊《IEEE Transactions on Cloud Computing》上发表的文章《Real-time tasks oriented energy-aware scheduling in virtualized clouds》(虚拟化云中面向实时任务的节能调度方法)提出了EARH算法用于在虚拟化云中调度实时任务到虚拟机上,同时根据云计算数据中心的负载动态增加和减少虚拟机的数量。其中,增加虚拟机的主要步骤是:(1)在已经启动的主机上创建一台新虚拟机;(2)如果步骤1中不能创建新虚拟机,则通过虚拟机动态迁移,把主机的空闲资源汇聚到某台主机上,然后把虚拟机创建在该主机上;(3)如果前两个步骤都不能成功地创建新虚拟机,则开启一台主机,然后在该主机上创建新虚拟机。
然而,以上增加虚拟机的方法需要一定的时间开销,使得某些实时任务不能及时开始,从而延误了它们的截止期。
发明内容
本发明要解决的技术问题是针对启动主机和创建虚拟机的时间开销,造成实时任务不能及时开始执行,从而延误了一些实时任务截止期的问题,提出机器启动时间感知的任务与资源调度方法,以减缓启动主机和创建虚拟机的时间开销对突增任务时效性的冲击,尽可能提高任务的完成率,同时减少云服务系统的能耗。
本发明所指的任务是指元任务,即只需一台虚拟机独立完成的任务。
本发明以任务完成率和系统能耗作为任务分配优化目标。
(1)任务完成率目标:使得f1的值,即被成功分配的任务数与所有任务数之比尽可能的大。
其中,变量xi,jk表示任务ti是否被分配到虚拟机vmjk。如果任务ti被分配到虚拟机vmjk,则xi,jk=1,如果任务ti没有被分配到虚拟机vmjk,则xi,jk=0。
(2)能量消耗:使得f2的值,即云服务系统完成任务的能量消耗最小化。
其中st和et分别表示执行任务的开始和结束时间;kj为主机hj完全空闲时功耗与最大功耗的比值;表示主机hj在时刻t的状态,若指主机hj在时刻t处于活跃状态,否则,表示主机hj在时刻t处于关闭状态。
本发明具体技术方案包括以下步骤:
第一步,初始化:
1.1设置等待执行任务集合WT为空,即
1.2令活跃主机的集合为Ha;关闭主机的集合为Ho;
1.2.1令j=1;
1.2.2如果j>m,m为主机数量,转第二步;否则,执行第1.2.3步;
1.2.3如果即主机hj处于活跃状态,则Ha=Ha∪hj;如果则Ho=Ho∪hj;
1.2.4j=j+1,执行第1.2.2步;
第二步,当新任务动态到达后,更新系统的状态:
2.1将新到达任务加入到等待执行任务集合中,即WT=WT∪Tnew,其中,Tnew={t′1,t′2,…,t′|Tnew|}表示新到达的任务集合,其中|Tnew|为新到达任务的数量,t′i∈Tnew,1≤i≤|Tnew|为新到达任务集合中的编号为i的任务;
2.2取消等待执行任务与虚拟机之间的映射关系,即其中,映射任务ti到虚拟机vmjk表示让虚拟机vmjk执行任务ti;
2.3更新每台非应急虚拟机vmjk的就绪时间rtjk。如果虚拟机vmjk正在执行某个任务,那么它就绪时间就是虚拟机完成正在执行任务的时间;否则,虚拟机处于空闲状态,那么它的就绪时间为当前时间;
2.4更新每台活跃主机hj上应急虚拟机lvmj的CPU频率分配,hj∈Ha。如果应急虚拟机lvmj没有正在执行的任务,则降低应急虚拟机lvmj的CPU频率到0,即c(lvmj)=0。否则,不改变应急虚拟机lvmj的CPU频率;
第三步,按任务截止期最早优先的顺序,从WT中选出一个未调度的任务ti(即任务ti的截止期di最早);
第四步,将任务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|,则转第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.5.1取出selHostSet中的主机,该主机记为selHost;
5.5.2在主机selHost上创建一台CPU频率为fnew的虚拟机,记为vmjk;
5.5.3将新建的虚拟机vmjk加入到可用非应急虚拟机集合AVM中,即AVM=AVM∪{vmjk};
5.5.4将任务ti映射到新虚拟机vmjk;
5.5.5更新虚拟机vmjk的就绪时间rtjk,即rtjk=di,转第八步;
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中移除,即Ho=Ho-{hj};
5.7.6在主机hj上创建一台CPU频率为fnew的虚拟机,记为vmjk;
5.7.7在主机hj上创建一台CPU频率为0的应急虚拟机lvmj;
5.7.8将新建的虚拟机vmjk加入到可用非应急虚拟机集合AVM中,即AVM=AVM∪{vmjk};
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;|Ha|为活跃主机的数量;
6.2.2如果j>|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(如公式(5)所示)不小于应急虚拟机的最小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;|Ha|为活跃主机的数量;
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),即表示所有已经映射到虚拟机vmjk的任务都可以忍受应急虚拟机lvmj完成任务ti造成的延迟,执行第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;|Ha|为活跃主机的数量;
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中每个任务的截止期与完成时间之差满足其中st(host)和mt(vmjk)分别表示启动主机和迁移虚拟机的时间,表示所有已经映射到虚拟机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中存在未调度任务,则转第三步;否则,执行第九步;
第九步,结束。
采用本发明可以达到如下效果:在满足用户时间要求前提下,提供一种面向应急的任务分配和虚拟机扩展方法,从而转移启动主机和创建虚拟机的延迟对截止期较短任务的影响,以尽可能地提高任务的调度成功率。
1)本发明的第5.7.7和6.4.4.10步,在每台活跃主机上放置一台应急虚拟机,避免创建虚拟机的时间延迟任务的开始时间,提高了任务的调度成功率。
2)本发明的第6.3和6.4步采用转移其他虚拟机CPU资源给应急虚拟机的方法,使得任务尽可能早开始执行,从而进一步提高了任务的调度成功率。
附图说明
图1是本发明总体流程图。
图2是第6.2.4到6.2.6步的示意图。
图3是第6.3.4.4到6.3.4.6步的示意图。
图4是第6.4.4.4到6.4.4.10步的示意图。
具体实施方式
图1是本发明总体流程图,具体包括:
第一步,初始化:初始化等待任务集合WT为空;初始化活跃主机集合Ha和关闭主机集合Ho;
第二步,任务动态达到后,取消等待执行任务与虚拟机之间的映射关系,更新每台虚拟机vmjk完成已安排任务的时间rtjk,并将新到任务和等待执行任务作为待分配任务集合WT;
第三步,按任务截止期(di)最早优先的顺序,从WT中选出一个未调度的任务ti;
第四步,将任务分配到已经开启的虚拟机上,如图1中细虚线框包含部分,方法是:
4.1将任务ti与每个已启动的虚拟机vmjk逐一配对,并计算由此产生的每对任务-虚拟机的任务的完成时间fti,jk;
4.2从4.1的计算结果中,选出具有最小值的fti,jk;
4.3如果任务ti的最小完成时间满足它的时效性要求(即,fti,jk≤di),则将任务ti映射到vmjk虚拟机上(即,fti,jk←1),同时更新虚拟机vmjk完成已安排任务的时间rtjk,然后转到第八步;否则,转到第五步;
第五步将任务分配到新增加的虚拟机上,如图1中粗虚线框包含部分,方法如:
5.1选择一种能够在任务截止期内完成任务的虚拟机vmjk,同时考虑创建虚拟机的时间延迟。如果存在这样的虚拟机,则执行5.2步;否则,转第六步。
5.2选择一台剩余MIPS尽可能少的活跃主机来创建该虚拟机。如果存在活跃主机满足以上条件,那么创建虚拟机vmjk,然后将任务ti映射到虚拟机vmjk上,同时更新虚拟机vmjk完成已安排任务的时间rtjk,接着转到第八步;否则,转5.3步;
5.3选择一种能够在任务截止期内完成任务的虚拟机vmjk,同时考虑启动主机和创建虚拟机的时间延迟。如果存在这样的虚拟机,则执行5.4步;否则,转第六步。
5.4启动一台主机,然后创建新虚拟机vmjk,接着将任务ti映射到虚拟机vmjk,同时更新虚拟机vmjk完成已安排任务的时间rtjk,再接着转到第八步;
第六步,将任务分配到应急虚拟机上,如图1中黑实线框包含部分,方法如:
6.1确定应急虚拟机的最小CPU资源,使得任务能在截止期内完成;
6.2选择一台空闲的应急虚拟机lvmj,并且它所在主机hj的剩余MIPS大于应急虚拟机的最小CPU资源,且主机hj剩余MIPS尽可能少。如果存在这样的应急虚拟机lvmj,则将主机的CPU频率增加到最大,并将这部分CPU频率配置给应急虚拟机lvmj,然后将任务ti分配到该应急虚拟机上lvmj,接着转到第八步;否则,转6.3步;
6.3选择一台空闲的应急虚拟机lvmj,并且它所在主机hj存在某些虚拟机的分配任务可以忍受应急虚拟机完成任务造成的延迟。如果存在这样的应急虚拟机lvmj,那么把那些可以忍受延迟的虚拟机的CPU资源暂时转移到应急虚拟机lvmj,然后将任务ti分配到应急虚拟机lvmj,接着转到第八步;否则,转6.4步;
6.4选择一台空闲的应急虚拟机lvmj,并且它所在主机hj存在某些虚拟机,能够忍受启动主机然后迁移它们到其他主机的时间延迟。如果存在这样的应急虚拟机lvmj,那么把这些虚拟机的CPU资源转移给应急虚拟机使用,然后将任务ti分配到应急虚拟机lvmj。同时开启一台关闭的主机,待关闭主机开启后,再将那些能够容忍延迟的虚拟机,迁移到刚启动的主机上,然后恢复它们的CPU资源供给。
第七步,如果任务ti没有被映射到任何一台虚拟机上,则拒绝任务ti,即WT=WT-ti;
第八步,如果待分配任务集合WT中存在未调度任务,则转第三步;否则,执行第九步;
第九步,结束。
图2是第6.2.4到6.2.6步的示意图。图2的三个子图中,横轴表示主机的内存资源,纵轴表示主机的CPU资源,虚线框表示主机的最大内存和CPU资源。坐标中的一个矩形表示一台虚拟机,矩形的长度和高度分别表示该虚拟机占用主机的内存和CPU资源大小。如图2(a)所示,在任务分配到应急虚拟机之前,应急虚拟机处于空闲状态,占用主机的CPU资源为c(lvmj)。另外,主机有足够的剩余CPU资源,表示为如图2(a)中的rfj,当准备分配任务到应急虚拟机上时,如图2(b)所示,增大应急虚拟机提供CPU资源,如图2(b)中c(lvmj)所示。最后,当应急虚拟机完成任务后,降低应急虚拟机CPU资源,如图2(c)中c(lvmj)所示。
图3是第6.3.4.4到6.3.4.6步的示意图。如图3(a)所示,主机的CPU资源大部分已经被虚拟机1和虚拟机2使用,当准备分配任务到应急虚拟机上时,主机没有足够的CPU资源供应急虚拟机使用。另外,若虚拟机2上的执行任务和等待执行任务能够忍受应急虚拟机执行任务造成的延迟。如图3(b)所示,将虚拟机2的CPU资源暂时转移给应急虚拟机。待应急虚拟机完成任务以后,再把CPU资源返还给虚拟机2。
图4是第6.4.4.4到6.4.4.10步的示意图。如图4(a)所示,当准备分配任务到应急虚拟机上时,主机1没有足够的剩余资源给应急虚拟机1使用。同时,主机1上的其他虚拟机都不能忍受运行应急虚拟机带来的延迟。如果虚拟机2能够忍受启动主机和被迁移的时间开销,那么把虚拟机2的CPU资源转移给应急虚拟机1使用,同时开启一台关闭的主机,如图4(b)所示。待关闭的主机启动后,把虚拟机2从主机1迁移到主机2,如图4(c)所示。待虚拟机2迁移到主机2后,主机2为虚拟机2供给CPU资源,同时在主机2上创建一台应急虚拟机,如图4(d)所示。
Claims (3)
1.一种虚拟化云中机器启动时间感知的实时任务与资源调度方法,其特征在于包括以下步骤:
第一步,初始化:
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中存在未调度任务,则转第三步;否则,执行第九步;
第九步,结束。
2.如权利要求1所述的虚拟化云中机器启动时间感知的实时任务与资源调度方法,其特征在于2.4步所述更新每台活跃主机hj上应急虚拟机lvmj的CPU频率分配的方法是如果应急虚拟机lvmj没有正在执行的任务,则降低应急虚拟机的CPU频率到0,即c(lvmj)=0;否则,不改变应急虚拟机lvmj的CPU频率。
3.如权利要求1所述的虚拟化云中机器启动时间感知的实时任务与资源调度方法,其特征在于第5.5步所述创建新虚拟机,并映射任务ti到新虚拟机的方法是:
5.5.1取出selHostSet中的主机,该主机记为selHost;
5.5.2在主机selHost上创建一台CPU频率为fnew的虚拟机,记为vmjk;
5.5.3将新建的非应急虚拟机vmjk加入到可用非应急虚拟机集合AVM中;
5.5.4将任务ti映射到新非应急虚拟机vmjk;
5.5.5更新非应急虚拟机vmjk的就绪时间rtjk,即rtjk=di。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510607539.8A CN105159752B (zh) | 2015-09-22 | 2015-09-22 | 虚拟化云中机器启动时间感知的实时任务与资源调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510607539.8A CN105159752B (zh) | 2015-09-22 | 2015-09-22 | 虚拟化云中机器启动时间感知的实时任务与资源调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105159752A CN105159752A (zh) | 2015-12-16 |
CN105159752B true CN105159752B (zh) | 2018-03-30 |
Family
ID=54800616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510607539.8A Active CN105159752B (zh) | 2015-09-22 | 2015-09-22 | 虚拟化云中机器启动时间感知的实时任务与资源调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105159752B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105159752B (zh) * | 2015-09-22 | 2018-03-30 | 中国人民解放军国防科学技术大学 | 虚拟化云中机器启动时间感知的实时任务与资源调度方法 |
CN107357641A (zh) * | 2017-06-21 | 2017-11-17 | 西安电子科技大学 | 一种云计算中任务调度方法 |
CN109684070B (zh) * | 2018-08-29 | 2022-12-13 | 西安电子科技大学 | 一种云计算并行操作中的调度方法 |
CN113472849B (zh) * | 2021-05-31 | 2022-10-28 | 济南浪潮数据技术有限公司 | 一种节点的管理方法、系统、设备以及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541651A (zh) * | 2011-12-12 | 2012-07-04 | 华中科技大学 | 一种嵌入式虚拟机的实时调度系统 |
CN103152414A (zh) * | 2013-03-01 | 2013-06-12 | 四川省电力公司信息通信公司 | 一种基于云计算的高可用系统及其实现方法 |
CN103414784A (zh) * | 2013-08-26 | 2013-11-27 | 浙江大学 | 支持应急模式的云计算资源调度方法 |
CN103605567A (zh) * | 2013-10-29 | 2014-02-26 | 河海大学 | 面向实时性需求变化的云计算任务调度方法 |
CN103677990A (zh) * | 2013-12-13 | 2014-03-26 | 清华大学 | 虚拟机实时任务的调度方法、装置和虚拟机 |
CN103957231A (zh) * | 2014-03-18 | 2014-07-30 | 成都盛思睿信息技术有限公司 | 一种云计算平台下的虚拟机分布式任务调度方法 |
CN105159752A (zh) * | 2015-09-22 | 2015-12-16 | 中国人民解放军国防科学技术大学 | 虚拟化云中机器启动时间感知的实时任务与资源调度方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9411641B2 (en) * | 2012-10-04 | 2016-08-09 | Lawrence J. Dickson | Method and apparatus implemented in processors for real-time scheduling and task organization based on response time order of magnitude |
-
2015
- 2015-09-22 CN CN201510607539.8A patent/CN105159752B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541651A (zh) * | 2011-12-12 | 2012-07-04 | 华中科技大学 | 一种嵌入式虚拟机的实时调度系统 |
CN103152414A (zh) * | 2013-03-01 | 2013-06-12 | 四川省电力公司信息通信公司 | 一种基于云计算的高可用系统及其实现方法 |
CN103414784A (zh) * | 2013-08-26 | 2013-11-27 | 浙江大学 | 支持应急模式的云计算资源调度方法 |
CN103605567A (zh) * | 2013-10-29 | 2014-02-26 | 河海大学 | 面向实时性需求变化的云计算任务调度方法 |
CN103677990A (zh) * | 2013-12-13 | 2014-03-26 | 清华大学 | 虚拟机实时任务的调度方法、装置和虚拟机 |
CN103957231A (zh) * | 2014-03-18 | 2014-07-30 | 成都盛思睿信息技术有限公司 | 一种云计算平台下的虚拟机分布式任务调度方法 |
CN105159752A (zh) * | 2015-09-22 | 2015-12-16 | 中国人民解放军国防科学技术大学 | 虚拟化云中机器启动时间感知的实时任务与资源调度方法 |
Non-Patent Citations (1)
Title |
---|
基于滚动优化的虚拟云中实时任务节能调度方法;陈超等;《软件学报》;20150831;第26卷(第8期);第2111-2123页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105159752A (zh) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105159752B (zh) | 虚拟化云中机器启动时间感知的实时任务与资源调度方法 | |
CN104735095B (zh) | 一种云计算平台作业调度方法及装置 | |
CN105912406B (zh) | 一种低能耗的独立任务调度与资源配置方法 | |
CN109271232B (zh) | 一种基于云计算平台的集群资源分配方法 | |
CN105302630B (zh) | 一种虚拟机的动态调整方法及其系统 | |
CN104252390B (zh) | 资源调度方法、装置和系统 | |
CN105446816B (zh) | 一种面向异构平台的能耗优化调度方法 | |
CN107357641A (zh) | 一种云计算中任务调度方法 | |
CN106951059A (zh) | 基于dvs与改进蚁群算法的云数据中心节能方法 | |
CN107168770A (zh) | 一种低能耗的云数据中心工作流调度与资源供给方法 | |
CN102508714A (zh) | 一种云计算中基于绿色计算的虚拟机调度方法 | |
CN106126317A (zh) | 应用于云计算环境的虚拟机调度方法 | |
CN105426241A (zh) | 一种基于云计算数据中心的统一资源调度节能方法 | |
Diaz et al. | Energy-aware fast scheduling heuristics in heterogeneous computing systems | |
CN104793993B (zh) | 基于Levy飞行的人工蜂群粒子群算法的云计算任务调度方法 | |
CN101271407A (zh) | 一种基于能量优化的网格调度方法 | |
CN109032756A (zh) | 虚拟化云数据中心的调度方法 | |
CN107220125A (zh) | 一种云资源调度方法及装置 | |
CN109871268A (zh) | 一种面向数据中心的基于气流组织的节能调度方法 | |
CN109542608A (zh) | 一种基于混合排队网络的云仿真任务调度方法 | |
CN103577265A (zh) | 一种云计算数据中心离线节能调度的方法与装置 | |
Peng et al. | A reinforcement learning-based mixed job scheduler scheme for cloud computing under SLA constraint | |
CN104156505B (zh) | 一种基于用户行为分析的Hadoop集群作业调度方法及装置 | |
CN108429784B (zh) | 一种能效优先的云资源分配与调度方法 | |
Machovec et al. | Utility-based resource management in an oversubscribed energy-constrained heterogeneous environment executing parallel applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |