虚拟化云中机器启动时间感知的实时任务与资源调度方法

文档序号:8942911阅读:638来源:国知局
虚拟化云中机器启动时间感知的实时任务与资源调度方法
【技术领域】
[0001] 本发明属于计算机软件和云服务系统中任务调度和资源管理技术领域,涉及云计 算平台中任务和资源调度方法。
【背景技术】
[0002] 为了满足急剧增长的计算服务需求,云服务系统中的主机规模不断扩大。一个数 据中心的主机数量就高达几万台,甚至几十万台。正常运行这些主机,云服务系统需要消耗 大量的电能。据统计,从2005年到2010年全球数据中心的能耗提高了 56%,占全球能耗的 1.5%。对企业而目,尚能耗就意味着尚成本。另外,尚能耗对生态环境广生$父大的负面影 响,因为使用煤矿发电会向空气中释放大量的废气。云服务系统的高能耗问题已经引起工 业界和学术界的极大关注,并成为学术界研究的热点。
[0003] 大量的研究表明,在云服务系统中,能够提高活跃主机资源的有效利用和减少电 能消耗的有效途径是:在云服务系统负载下降的时候,动态整合虚拟机到尽可能少的主机 上,然后关闭空闲的主机,以减少能量消耗。由于主机处于完全空闲的状态,功耗仍然是它 最大功耗的50 %以上,关闭空闲的主机就意味着减少大量的电能消耗。
[0004] 但是,这种资源调度方法带来了另一个具有挑战性的问题:当云服务系统的负载 突增时,在伸展虚拟机的过程中,创建新虚拟机或者先开启关闭的主机然后再创建虚拟机 都需要一定的时间开销,使得某些任务不能及时开始,从而延误了它们的截止期。例如,一 个在Os到达的新任务,它的执行时间是5s,假设它的截止期是执行时间的五倍(即25s)。 启动主机的时间大概为30s,创建一台虚拟机的时间近似于启动一个操作系统的时间,大概 是30s。当新任务到达后,启动一台主机,然后再创建一台新虚拟机来执行新到达任务,很明 显,新到达任务的截止期将被延误。
[0005] -段时间内,云服务系统需要执行的任务集合可表示为T = It1, t2,…,tn},其中 η为正整数。任意一个任务h e T可表示为1{a D I1, cU,I < i < n,其中%为任务t i 的到达时间,I1为任务^的计算量(单位为Hzhd1为任务^的截止期。云服务系统中,主 机的集合用H = Ih1, h2,…,hj表示,主机hj e H,1彡j彡m表示云服务系统中的第j台主 机,m为正整数。另外,任意一台主WhjG H可描述为
,其中Hip Spn jP JJfi分别表示主机Iij的内存大小(GB)、硬盘大小(GB)、网络传输速度(Mb/s)和功耗 (W);
表示主机hj中CPU主频-电压对的离散集合, max为正整数,表示主机的主机主频-电压对的数量,其中
表 示主机hj的第d对主频-电压,并且
。主机hj e H 可同时运行一个虚拟机集合,表示为
,其中下标IVMj 为可变的正整数,表示主机h上非应急虚拟机的个数;vm jke VM j,1彡k彡I VMj I表示主 机hj上的第k台虚拟机;lvm_j为主机h 上唯一的一台应急虚拟机。对于虚拟机vm _jk,符号 c(vmjk)、r (vmjk)和n (vmjk)分别表示分配给该虚拟机的CPU能力、内存和网络带宽。类似 地,C(Ivmj)、!"(Ivrn j)和Ii(Ivmj)分别表示分配给应急虚拟机Ivmj的CPU能力、内存和网络 带宽。
[0006] 朱晓敏等人在期刊《IEEE Transactions on Cloud Computing》上发表的文章 ((Real-time tasks oriented energy-aware scheduling in virtualized clouds〉〉(虚拟 化云中面向实时任务的节能调度方法)提出了 EARH算法用于在虚拟化云中调度实时任务 到虚拟机上,同时根据云计算数据中心的负载动态增加和减少虚拟机的数量。其中,增加虚 拟机的主要步骤是:(1)在已经启动的主机上创建一台新虚拟机;(2)如果步骤1中不能创 建新虚拟机,则通过虚拟机动态迀移,把主机的空闲资源汇聚到某台主机上,然后把虚拟机 创建在该主机上;(3)如果前两个步骤都不能成功地创建新虚拟机,则开启一台主机,然后 在该主机上创建新虚拟机。
[0007] 然而,以上增加虚拟机的方法需要一定的时间开销,使得某些实时任务不能及时 开始,从而延误了它们的截止期。

【发明内容】

[0008] 本发明要解决的技术问题是针对启动主机和创建虚拟机的时间开销,造成实时 任务不能及时开始执行,从而延误了一些实时任务截止期的问题,提出机器启动时间感知 的任务与资源调度方法,以减缓启动主机和创建虚拟机的时间开销对突增任务时效性的冲 击,尽可能提高任务的完成率,同时减少云服务系统的能耗。
[0009] 本发明所指的任务是指元任务,即只需一台虚拟机独立完成的任务。
[0010] 本发明以任务完成率和系统能耗作为任务分配优化目标。
[0011] (1)任务完成率目标:使得匕的值,即被成功分配的任务数与所有任务数之比尽 可能的大。
[0012] ,、 ⑴
[0013] 其中,变量Xli jk表示任务t i是否被分配到虚拟机vm jk。如果任务h被分配到虚拟 机vmjk,则X^jk= 1,如果任务t ;没有被分配到虚拟机vm _jk,则X^jk= 0。
[0014] (2)能量消耗:使得f2的值,即云服务系统完成任务的能量消耗最小化。
[0015]
〔2)
[0016] 其中St和et分别表示执行任务的开始和结束时间;Icj为主机h ;完全空闲时功耗 与最大功耗的比值;/) e 表示主机h,在时刻t的状态,若=1指主机h,在时刻t处于 活跃状态,否则,g =D表示主机Iij在时刻t处于关闭状态。
[0017] 本发明具体技术方案包括以下步骤:
[0018] 第一步,初始化:
[0019] I. 1设置等待执行任务集合WT为空,即驟;
[0020] 1. 2令活跃主机的集合为Ha;关闭主机的集合为H。;
[0021] 1. 2. 1 令 j = 1 ;
[0022] 1. 2. 2如果j > m,m为主机数量,转第二步;否则,执行第1. 2. 3步;
[0023] 1. 2. 3如果(二1,即主机Iij处于活跃状态,则Ha= HaU hj;如果0=0,则H。= H0U h j;
[0024] I. 2. 4j = j+1,执行第 1. 2. 2 步;
[0025] 第二步,当新任务动态到达后,更新系统的状态:
[0026] 2. 1将新到达任务加入到等待执行任务集合中,即WT = WT U Tnew,其中,Tnew = {t' 2,···,1 |TnOT|}表示新到达的任务集合,其中|τ_|为新到达任务的数量, t' ie T nCT,I < i < |Τ_|为新到达任务集合中的编号为i的任务;
[0027] 2. 2取消等待执行任务与虚拟机之间的映射关系,即·外e 。其中,映射 任务tjlj虚拟机vm _jk表示让虚拟机vm _jk执行任务t i;
[0028] 2. 3更新每台非应急虚拟机vmjk的就绪时间rt jk。如果虚拟机vmjk正在执行某个 任务,那么它就绪时间就是虚拟机完成正在执行任务的时间;否则,虚拟机处于空闲状态, 那么它的就绪时间为当前时间;
[0029] 2. 4更新每台活跃主机Iij上应急虚拟机Ivm郝CPU频率分配,h j G H a。如果应急 虚拟机Ivmj没有正在执行的任务,则降低应急虚拟机Ivmj^ CPU频率到0,即c (lvm J = 0〇 否则,不改变应急虚拟机CPU频率;
[0030] 第三步,按任务截止期最早优先的顺序,从WT中选出一个未调度的任务t (即任 务心的截止期七最早);
[0031] 第四步,将任务^分配到可用的非应急虚拟机上,方法是:
[0032] 4. 1令selVmSet为一个虚拟机集合,初始化为此= 0 ; minFt为一个变量, 初始化为minFt = + °° ;
[0033] 4. 2令j = I ; |Ha|表示活跃主机的数量;
[0034] 4. 3如果j > I Ha I,则转第4. 4步;否则,执行第4. 3. 1步;
[0035] 4. 3. 1令k = I ; I VMj I表示主机hj上非应急虚拟机的数量;
[0036] 4. 3. 2如果k > I VMj I,则j = j+Ι,转第4. 3步;否则,执行第4. 3. 3步;
[0037] 4. 3. 3计算任务1^在虚拟机vm_jk上的完成时间ft iijk,计算公式如下:
[0038]
.(3).
[0039] 其中,
:为任务^在虚拟机vm $上的执行时间;
[0040] 4. 3. 4如果任务1:在虚拟机vmjk上的完成时间ftiijk完成时间满足ftmCminFt, 那么,清空虚拟机集合selVmSet (即令λτ/Κ川StV ),并将虚拟机vmjk加入到selVmSet 中;令 minFt = ft;, jk;k = k+1,转第 4. 3. 2 步;
[0041] 4. 4如果任务^的最小完成时间满足它的时效性要求(即,minFt彡d J,取出虚 拟机集合seIVmSet中的虚拟机,记为seIVm ;
[0042] 4. 5将任务h映射到虚拟机selVm上(即令X m= 1),同时更新虚拟机selVm的 就绪时间rtjkS rt _jk= minFt,转第八步;否则,执行第五步;
[0043] 第五步,增加一台新虚拟机,并分配任务tjlj新增加的虚拟机上,方法是:
[0044] 5. 1确定新增加虚拟机的CPU频率,计算公式如下:
[0045]
:(4)
[0046] 其中,IJP Cl1分别表示任务^的执行长度和截止期;ct为当前时刻;ct(vm)为创 建虚拟机的时间延迟;
[0047] 5. 2令selHostSet为一个主机集合,初始化为.样顯雜洛极=.0 minRemFre为一个 变量,初始化为minRemFre = + 00 ;
[0048] 5. 3寻找一台剩余资源大于f_的活跃主机:
[0049] 5
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1