一种虚拟化云中容错资源供给方法_3

文档序号:9288352阅读:来源:国知局
5] 在一个虚拟化云中,一个主机可以有一个或多个虚拟机在其上运行,因此任务被 分配到每个虚拟机而非直接分配到某个主机。我们假设,虚拟机的处理能力具有异构性,即 虚拟机可以有不同的处理能力。一个任务的主版本和副版本在这些虚拟机上的执行时间 可分别用矩阵EP和EB表示,其中元素和<A_分别表示和 < 在虚拟机Vjk上的执行时 间。我们用4和4 :分别表示任务主版本f和副版本:与虚拟机vjk之间的映射关系: 如果if被分配到虚拟机v]k上则^ =1,否则' =0 ;类似地,如果#被分配到虚拟机^ 上则4 =1,否则v(<)和分别表示< 和 < 所分配到的虚拟机,/??)和 )则表示矿和if所分配到的主机。因此,=1意味着=1意味着 v('严)=V,。
[0096]f表示if:和琴之间的边,其中X,YG{P,B},SPlf可以是也可以是<。同 样,< 既可以是也可以是 <。对每个边 <,从f到的数据或消息传输时间表示为 。若: :和 < 具有依赖关系且被分配到同一主机,则= 0。此外,令扣彦示任务 心到任务t,的数据或消息传输量,),A(6))表示主机到/1(<)的传输速度, 可知,其中/2(<)矣/?(<)s任务tj主版本和副版本最早开始 时间可分别计算为:
[0099] <的最晚完成时间丨由任务的截止期决定,因此有:
[0097]
[0098]
[moo] pj =dj: C3)
[0101] 鏐的实际开始时间4是今被调度后开始执行的时间。< 可以放置在由拆I和 限定的空闲时间槽内。我们的调度目标即找到合适的任务开始时间,尽量接受更多的 实时DAG,提高系统的吞吐量。
[0102]需要特别指出的是,本发明的技术方案所述的错误为针对主机出错,主机出错导 致其他层级如虚拟机和应用的中断运行。错误既可以是暂时的也可以是永久的,但各个错 误相互独立,一台主机的出错不会影响其他主机。同时,由于两个主机同时出错的概率很 小,因此假设在任一时间,至多一台主机出错。一台主机出错后,主版本在该主机上的任务 可在另一个主机出错之前由其副版本成功完成。并且,系统中存在一个出错探测机制,可以 提供出错信息,新任务不会被调度到已出错的主机上。系统还采用回收机制,即如果主版本 成功完成,那么副版本的执行被中断,所占用的资源被回收。
[0103]针对多个主机同时失效的情况,该失效模型可以通过下面两个步骤进行扩展。首 先,将云中主机分为若干组;之后,在每个组内采用上述错误模型。可通过在各个组内采用 本文所提出的容错机制,以解决多主机失效的情况。
[0104] 下文将给出采用PB模型实现的容错资源供给算法。
[0105]为方便分析,我们首先定义强主版本与弱主版本。
[0106]定义1,强主版本:对任意一个任务主版本f,如果其所在的主机/?(<)不出错, $-定可以执行,则称ef为强主版本。
[0107] 图2给出了强主版本的一个例子。如图2所示,^是t,的父任务,即t,必须接收 到h传来的消息或数据才能开始执行,带箭头的虚线表示从主版本到副版本的消息传递关 系及方向。由图2可知,只要 < 所在的主机h3不出错就能成功执行,f可以收到其父 任务传来的消或数据。因此,是一个强主版本。
[0108]定义2,弱主版本:对任意一个任务主版本如果其所在的主机/?(?/)不出错, <也不一定可以执行,则称< 为弱主版本。
[0109] 图3给出了弱主版本的一个例子。如图3所示,假设#f所在的主机匕在 <完成 之前出错,那么#将执行。但是由于 < 不能接收到传来的消息或数据,尽管所在的 主机不出错,仍不能执行。因此,是一个弱主版本。
[0110] 根据定义1与定义2,我们有如下命题:
[0111] 侖题1,竹,e7%如果以下三种情况中有任意一种成立,则<是强主版本:
[0112]
[0113]
[0114]
[0115] 否贝1J,<是弱主版本。
[0116]第一种情况可以直接根据定义1推出。第二种情况可根据图2推出。对于第三种 情况,图4与图5给出了两个例子,其中主版本被分配到同一主机,副版本被分配到不同的 主机。其中,图4为子任务主版本开始时间晚于父任务副版本的结束时间的情况,图5为子 任务主版本开始时间早于父任务副版本的结束时间的情况。
[0117] 从图4与图5中,我们可以发现,不管是否能够收到if的消息或数据,/f都能 收到丨< 的消息或数据。根据定义1,若主机匕在 < 完成之前不出错,则 < 一定可以成功执 行完成。因此f是强主版本。
[0118] 本实施例提出了一种虚拟化云中实时依赖任务动态容错调度与资源弹性供给策 略,被称为FASARD。在FASARD中,当一组依赖任务到达时,该组内的所有任务都会被复制为 两个版本,即主版本与副版本。FASARD根据先到先服务(FirstComeFirstService)的规 则依次调度各组依赖任务,在调度一个任务时,首先调度该任务的主版本,而后调度其副版 本。考虑到一个任务超过截止期并不一定意味着整组任务无法在截止期前完成,当出现一 个任务超过截止期时,FASARD尝试调度其子任务让其更早地完成。为了降低算法复杂性, 若其子任务也无法在截止期前成功完成,那么系统拒绝该依赖任务组。一旦依赖任务组被 拒绝,该任务组内所有已分配的资源都将被收回。
[0119]具体地,FASARD的任务调度方法在算法1中以伪代码的形式示出。在算法1中, 当一个依赖任务组到达系统时,FASARD首先根据任务组(DAG)的截止期估算各个任务的截 止期。当一个任务没有父任务,或者父任务都已被调度时,先调度该任务的主版本,后调度 副版本。只有当一个任务的主版本与副版本都被调度到截止期前完成时,该任务才可被视 为已成功调度。如果一个任务没有被成功调度,那么系统将重新计算其子任务的最早可能 开始时间并使该时间适当提前以消除该任务延时造成的影响。然而,如果其子任务再次超 时,则拒绝该依赖任务组,并回收所有已分配的资源。
[0120]
[0121]弹性是云的一个重要特征。FASARD的资源供给算法具有资源供给弹性,会在系 统过载时增加计算资源来容纳任务,也会在系统空闲时缩小计算资源规模以提高资源利用 率。
[0122]-方面,当系统资源不足,无法在现有的虚拟机上放置一个任务时,系统便会调用 资源扩展机制,通过扩大现有虚拟机的处理能力或增加新的虚拟机来容纳该任务。对于任 务h,虚拟机的处理能力pjS满足下式:
[0123]esti+si/pr+delay<di (8)
[0124]其中,esti是任务t;的最早开始时间,可通过公式(1),(2)计算得到,delay指由 于资源调整而产生的时间延迟。如果没有虚拟机满足上式,那么资源扩展机制应尝试扩展 计算资源。本文所提出的方法主要以垂直扩展与水平扩展两种方式来实现计算资源的扩 展。
[0125]水平扩展方式通过创建新的虚拟机来增加计算资源规模。它首先尝试在一台活动 主机上创建新的虚拟机,若无法找到合适的活动主机,那么将开启一台新的活动主机来容 纳该虚拟机。水平扩展方式是一种简单、有效的扩展计算资源规模的方式,然而创建虚拟 机、开启新的活动主机会产生较大的延迟,这对截止期较为紧张的任务而言,往往是不可接 受的。在先进的虚拟化技术的支持下,现今各种主流云平台,如〇penStack、CloudStack等, 均支持虚拟机处理能力的动态调整,这意味着调整处理能力的延迟相当小,甚至可以忽略 不计。为充分这种垂直扩展的优势,我们提出的资源扩展机制中也将包含这种方式。算法 2列出的是FASARD的资源供给算法的步骤伪代码。
[0126]
[0127] 资源扩展机制将首先采用垂直扩展方式。所有活动主机根据剩余处理能力的大小 按降序排序。接着,算法将依次探询主机上的虚拟机,计算任务^在该虚拟机上最早开始 时间,并根据公式(8)计算所需要的处理能力,算法第7行检验主机的剩余处理能力是否足 够该虚拟机扩展到所需要的处理能力大小。如果垂直扩展是可行的,那么系统将扩展该虚 拟机,并将任务调度到该虚拟机上。如果垂直扩展不可行,那么水平扩展方式将创建一台新 的虚拟机(见12-22行)。如果无法通过水平扩展方式创建出合适的虚拟机,那么函数返回 false值(见 24 行)。
[0128] 另一方面,为了提高系统的资源利用率,当计算资源没有被充分利用时,虚拟机应 具备降低处理能力、整合收缩到最少数量主机上的能力,而执行FASARD的资源收缩机制能 够达到这一目标。该机制由垂直收缩与水平收缩两种方式组成,前者尝试降低虚拟机的处 理能力,后者通过关闭虚拟机来收缩资源规模。当一个虚拟机长时间处于空闲状态时,系统 首先将降低其处理能力,而后如果仍然处于空闲状态,该虚拟机将被关闭以提高资源利用 率。
[0129] 通过引入垂直收缩方式,虚拟机的处理能力可以在空闲时收缩到最小以降低资源 开销,而当系统负载再次繁忙时,又可以通过垂直扩展方式,在短时间内恢复原有的处理能 力,以接收新的任务。通过这种方法,系统可以更灵活地适应负载变化,避免频繁地开启或 关闭虚拟机。
[0130] 本文中,我们对每个虚拟机设定两个时间点Tstoink与T ,当达到该时间点时,虚 拟机将被降低处理能力或关闭。设定空闲时长阀值&与T'ldle,Tldl,T'ldle,则Tsh"nk与 Tcancel按下式更新:
[0131]当主版本if被调到虚拟机上时,[_:鳩切广+2;;;,(,^
[0132]当副版本被调到虚拟机上时,rsW=腿x丨/+;^,rsfcJ,:^,=max|f 彳由于对应主版本失效而需要执行,那么丨,
[0133] 通过上述方式,若TldJ^T,ldle时间内,虚拟机上没有执行任务,那么该虚拟机将 被降低处理能力或关闭。此外,由于副版本可能被取消执行,在上述方式下,一个副版本可 以被调度到Tstoink或T_。61之后完成甚至开始执行,从而充分利用虚拟机空闲时间段内的计 算能力。算法3列出的是FASARD的资源压缩机制的步骤伪代码。
[0134]
[0135] 当虚拟机达到时间点Tstoink时,虚拟机的处理能力被降低到最低Plmrest以减少资源 开销。若达到时间点Tranrel,那么虚拟机将被关闭,如果该虚拟机关闭后宿主机的资源率低 于UlOT,那么系统将尝试将剩余的虚拟机迀移到其他主机上(见8-16行),并关闭主机,以 进一步降低资源开销(见19行)。
[0136] 实验证明,FASARD在随机合成依赖任务组与真实依赖任务组上都具有更好的技术 效果。
[0137] 我们将FASARD与6种基
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1