一种虚拟化云中容错任务调度方法_3

文档序号:9235345阅读:来源:国知局
T,存在两个版本,分别表示为主版本和副版本/f。 《严和<,3被分配到不同的主机上W实现容错。皆和乂f分别表示主版本护的开始时间和完 成时间。类似地,皆和分别表示副版本的开始时间和完成时间。戶佑)和戶(护)分 别表示和/f的父任务集合,C(/f)和C(ff)分别表示和的子任务集合。
[0092] 虚拟化云可描述为一个物理主机的无限集合H=化i,h2,…}。虽然云中的主 机数量是无限的,但活动主机的数量是有限的。集合好。星^^表示云中活动主机集合, H-&表示关闭主机集合。对任一主机hkG H,其处理能力Pk用每秒百万指令数(million instructions per second,下文中简称为MIP巧衡量。每个主机hk上有多个虚拟机,用集 合吟= {v,'A-…,V|r;|t}表示,每个虚拟机Vj.kG Vk有不同的处理能力Pa。对于主机hk上 的虚拟机,其处理能力满足
Vj.k的就绪时间表示为r j.k。
[0093] 在一个虚拟化云中,一个主机可W有一个或多个虚拟机在其上运行,因此任务被 分配到每个虚拟机而非直接分配到某个主机。我们假设,虚拟机的处理能力具有异构性, 即虚拟机可W有不同的处理能力。一个任务的主版本和副版本在该些虚拟机上的执行时 间可分别用矩阵E嘴E B表示,其中元素為和違分别表示巧在虚拟机Vj.k上的执行 时间。我们用不和分别表示任务主版本(和副版本与虚拟机之间的映射关系; 如果被分配到虚拟机上则為.二1,否则為.=0 ;类似地,如果?f被分配到虚拟机Vjk 上则诚=1,否则為=0。V(/f)和V(zf )分别表示和/f所分配到的虚拟机,Wf)和 &的)则表示和所分配到的主机。因此,诚.=1意味着V化= ,X寡=1意味着 V'沁)=V诉。
[0094] ef表示户和之间的边,其中X,YG巧,B},即?严可W是也可^是导。同样, f/既可^是也可^是< 对每个边冷]',从?严到^;'的数据或消息传输时间表示为的^。 若护和/J具有依赖关系且被分配到同一主机,则巧f= 0。此外,令dvu表示任务t剧 任务tj斯数据或消息传输量,A的))表示主机A片r)到&的)的传输速度,可知 巧f二如自/虹的护),WJ)),其中黄&跨)。任务t庄版本和副版本最早开始时间 可分别计算为:
[0095]
[0097] 的最晚完成时间於]^由任务的截止期决定,因此有:
[009引 诉二djn)
[0099] 的实际开始时间与是?;-被调度后开始执行的时间。/手可^放置在由巧[和 ewj限定的空闲时间槽内。我们的调度目标即找到合适的任务开始时间,尽量接受更多的 实时DAG,提局系统的吞吐量。
[0100] 需要特别指出的是,本发明的技术方案所述的错误为针对主机出错,主机出错导 致其他层级如虚拟机和应用的中断运行。错误既可W是暂时的也可W是永久的,但各个错 误相互独立,一台主机的出错不会影响其他主机。同时,由于两个主机同时出错的概率很 小,因此假设在任一时间,至多一台主机出错。一台主机出错后,主版本在该主机上的任务 可在另一个主机出错之前由其副版本成功完成。并且,系统中存在一个出错探测机制,可W 提供出错信息,新任务不会被调度到已出错的主机上。系统还采用回收机制,即如果主版本 成功完成,那么副版本的执行被中断,所占用的资源被回收。
[0101] 针对多个主机同时失效的情况,该失效模型可W通过下面两个步骤进行扩展。首 先,将云中主机分为若干组;之后,在每个组内采用上述错误模型。可通过在各个组内采用 本文所提出的容错机制,W解决多主机失效的情况。
[0102] 下文将给出采用PB模型实现的容错任务调度算法。
[0103] 为方便分析,我们首先定义强主版本与弱主版本。
[0104] 定义1,强主版本:对任意一个任务主版本,如果其所在的主机&(/;^)不出错, 一定可W执行,则称为强主版本。
[010引图2给出了强主版本的一个例子。如图2所示,ti是t j.的父任务,即t j.必须接收 到ti传来的消息或数据才能开始执行,带箭头的虚线表示从主版本到副版本的消息传递关 系及方向。由图2可知,只要所在的主机hs不出错,就能成功执行,可W收到其父 任务传来的消或数据。因此,《^^是一个强主版本。
[0106] 定义立弱主版本:对任意一个任务主版本/J,如果其所在的主机WJ)不出错, 也不一定可W执行,则称为弱主版本。
[0107] 图3给出了弱主版本的一个例子。如图3所示,假设f所在的主机hi在完成之 前出错,那么将执行。但是由于不能接收到?f传来的消息或数据,尽管所在的主机 不出错,仍不能执行。因此,< 是一个弱主版本。
[0108] 根据定义1与定义2,我们有如下命题:
[0109]命题1,gJ,如果W下S种情况中有任意一种成立,则是强主版本:
[0113] 否贝1J,/f是弱主版本。
[0114] 第一种情况可W直接根据定义1推出。第二种情况可根据图2推出。对于第S种 情况,图4与图5给出了两个例子,其中主版本被分配到同一主机,副版本被分配到不同的 主机。其中,图4为子任务主版本开始时间晚于父任务副版本的结束时间的情况,图5为子 任务主版本开始时间早于父任务副版本的结束时间的情况。
[0115] 从图4与图5中,我们可W发现,不管是否能够收到的消息或数据,都能收 到的消息或数据。根据定义1,若主机hi在完成之前不出错,则一定可W成功执行 完成。因此是强主版本。
[0116] 本实施例提出了一种虚拟化云中实时依赖任务动态容错调度与资源弹性供给策 略,被称为FASARD。在FASARD中,当一组依赖任务到达时,该组内的所有任务都会被复制为 两个版本,即主版本与副版本。FASA畑根据先到先服务(First Come First Service)的规 则依次调度各组依赖任务,在调度一个任务时,首先调度该任务的主版本,而后调度其副版 本。考虑到一个任务超过截止期并不一定意味着整组任务无法在截止期前完成,当出现一 个任务超过截止期时,FASA畑尝试调度其子任务让其更早地完成。为了降低算法复杂性, 若其子任务也无法在截止期前成功完成,那么系统拒绝该依赖任务组。一旦依赖任务组被 拒绝,该任务组内所有已分配的资源都将被收回。
[0117] 具体地,FASA畑的任务调度方法在算法1中W伪代码的形式示出。在算法1中, 当一个依赖任务组到达系统时,FASARD首先根据任务组值AG)的截止期估算各个任务的截 止期。当一个任务没有父任务,或者父任务都已被调度时,先调度该任务的主版本,后调度 副版本。只有当一个任务的主版本与副版本都被调度到截止期前完成时,该任务才可被视 为已成功调度。如果一个任务没有被成功调度,那么系统将重新计算其子任务的最早可能 开始时间并使该时间适当提前W消除该任务延时造成的影响。然而,如果其子任务再次超 时,则拒绝该依赖任务组,并回收所有已分配的资源。
[011引
[0119] 为了保证任务在截止期前完成,FASA畑的主版本调度算法应尝试尽可能早地完成 主版本。同时,为了避免一台主机故障导致大量主版本失效,主版本调度算法应尽量将主版 本均匀分布在所有活动主机上;另一方面,均匀分布主版本还可W增加PB重叠的可能性, 从而提高系统的资源利用率。FASARD的主版本调度算法的步骤伪代码详见算法2。
[0120]
[0121] 算法2首先选择主版本数最少的前a %的主机作为候选主机(见1-2行),接着 从候选主机集合中找到一个合适的虚拟机,在该虚拟机上主版本的完成时间最早(见5-12 行)。如果在候选主机集合上没有虚拟机能在截止期前完成主版本,那么算法将轮训下一个 a %的主机。通过该种方法,一个新的主版本将被优先分配到主版本数量较少的主机上,从 而使主版本均匀分布在所有活动主机上。如果没有虚拟机可W在截止前完成主版本,那么 算法将调用资源扩展机制,通过增加现有的计算资源来执行该任务。如果该主版本仍然无 法在截止前被成功执行,那么算法2将把该主版本调度到完成时间最早的虚拟机上,并返 回化Ise表明该主版本不能在截止期前成功完成。
[0122] 我们知道,弱主版本相比强主版本而言会带来更多的调度约束,因此我们应尽可 能得使主版本成为强主版本W降低调度难度。同时,命题1表明,一个主版本成为弱主版本 的主要原因是其父任务的副版本无法在该主版本开始前将结果信息传递给它。考虑到该两 条因素,我们不使用目前流行的As Late As化ssible策略,而是使FASARD尝试尽可能早 地完成副版本,从而降低其子任务的主版本成为弱主版本的可能性。此外,本文所提出的算 法将尝试将副版本调度到副版本数量较多的主机上,从而形成若干台主要容纳副版本的主 机。当系统处于高可靠性状态时,仅有少量主版本失效,大部分副版本将被取消执行,该些 主要容纳副版本的主机便可W被及时关闭,W提高系统资源利用率。算法3给出了副版本 调度算法的步骤伪代码。
[0123]与算法2类似,算法3首先选择副版本数量较多的主机作为候选主机(见1-2行), 然后,在候选主机中找到可W最早完成副版本的虚拟机(见5-12行)。当在现有的虚拟机 中没有找到合适的虚拟机时,第18行将调用资源扩展机制。若扩展资源后仍无法完成该任 务的副版本,那么21-23行把该副版本调度到完成时间最早的虚拟机上,并返回化Ise值表 明该副版本不能在截止期前成功完成。
[0124]
[01巧]实验证明,FASA畑在随机合成依赖任务组与真实依赖任务组上都具有更好的技术 效果。
[0126] 我们将FASA畑与6种基准算法进行比较,包括Non-Overlapping-FASA畑(NOFASA 畑)、Non-VM-Consolidation-FASA畑(NCFASA畑)、Non-Vertical-Scaling-Up-FASA畑(NVUF ASA畑)、Non-Vertical-Scaling-Down-FASA畑(NVUFASA畑)、Non-Backward-aiift-FASA畑( NBSFASA畑),W及现有技术中的经典的容错调度算法eF畑。
[0127] 该6种算法的简要描述如下:
[0128] N0FASA畑:与FASA畑的区别在于没有采用重叠技术。二者的比较可W检验重叠技 术的有效性。
[0129] NCFASA畑:与FASA畑的区别在于NCFASA畑在资源收缩机制中没有虚拟机迁移整
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1