本发明涉及云计算领域。
背景技术:
云计算是继分布式计算、并行计算、网格计算之后一种新的计算模式,已经成为学术界和工业界关注。目前云计算环境下任务调度的目标是将用户需求合理的部署,提高运营商的经济效益。具体体现在以下几个目标:最优时间跨度、负载均衡、服务质量、经济原则。
现有的调度策略研究中,经典的调度算法在特定的调度目标上有较好的性能。负载均衡方面的经典调度算法有随机负载均衡算法(Opportunistic Load Balancing),该算法很好地解决网格环境下由于负载不均衡带来的调度问题。最小执行时间算法(Minimum Execution Time)、贪心算法、最小完成时间算法(Minimum Completion Time)、Min-Min算法和Max-Min算法等都是以实现任务调度的最优时间跨度为目标的调度算法。
此外,云计算的经济原则主要在于减少能耗。有学者提出了减少能耗的动态调度算法,Chase等人提出了一种通过空闲服务器转成节能模式来减少能耗,该算法适用于数据中心层次上的节能调度。P.B.Si提出了一种针对移动云计算资源调度算法,该算法适用于密集型任务调度,很大程度上减少了能耗。J.W.Lin提出了一种多维度QoS支持策略,实现了集成QoS服务。N.Kumar基于QoS实现了云计算环境下资源分配和合理调度,很好地解决了云计算环境下资源的占用问题,提高了云计算的服务质量。由于云调度的最优策略问题是一个NP问题,也是一个重要问题,智能算法也被很多学者用来求解一个近似的最优解。现有的调度策略在最优时间跨度(makespan)、负载均衡、服务质量、经济原则四个方面已经有了较为深入的研究,为云计算的发展做出了重要的贡献。
由于云计算中各个节点处理能力不同,每个任务占用资源也不同,针对任务所占资源并且临时动态创建与之匹配的虚拟机是困难的,需要耗费更多的时间。但是,如果提前创建虚拟机,调度将面临以下两个问题:1)当一个较大任务被分配到处理能力较弱的虚拟机节点上时,节点处理时间较长甚至无法完成,导致整个任务序列中断;2)当一个较小的任务被分配到处理能力较强的虚拟机节点上时,由于在处理小任务时大任务处于等待状态,使得整个云系统吞吐率降低。
技术实现要素:
本发明所要解决的技术问题是实现一种能够有效提高调度性能,实现云资源合理利用的虚拟机调度方法。
为了实现上述目的,本发明采用的技术方案为:应用于云计算环境的虚拟机调度方法:
1)虚拟机建模:预先创建多个虚拟机;
2)新任务调度:当云任务需要执行调度时,根据任务的大小在预先创建的虚拟机中寻找处理能力与任务匹配的虚拟机;
3)新任务处理:将任务由寻找到的虚拟机处理。
所述虚拟机建模步骤中,根据任务数据的CPU资源ticpu、内存资源timem、网络带宽tinet、硬盘存储资源tistor、任务截止时间tif,通过贝叶斯分类器将任务划分成若干个等级,针对每个等级任务分别创建处理能力与该等级任务相匹配的虚拟机。
所述新任务调度步骤包括:
a)获取任务ti的信息,包括CPU资源ticpu、内存资源timem、网络带宽tinet、硬盘存储资源tistor、任务截止时间tif,再通过贝叶斯分类器获取任务等级,根据任务等级查询与当前任务ti匹配的虚拟机状态信息;
b)如果存在与当前任务匹配的虚拟机类型,将任务ti安排至就绪队列,如果不存在与当前任务匹配的虚拟机类型,将任务ti安排至等待队列;
c)针对就绪队列任务,搜索该类型虚拟机中是否有空闲虚拟机,若存在空闲虚拟机,直接部署任务ti在该空闲虚拟机上,若不存在空闲虚拟机,将任务状态切换成等待状态,挂载至等待队列队尾;
d)当等待队列非空时,新创建能够与等待队列中任务相匹配的虚拟机,当虚拟机创建完成后,将任务分配至所创建的虚拟机。
所述新任务调度步骤中,若存在任务因任务匹配超出任务执行截止期,则撤销任务。
所述的贝叶斯分类器的分类方法:
设样本空间为U,训练样本Ti类的先验概率为P(Ti);
其中i取值为整数,|U|是样本总数;
当产生一个新样本ω,且属于Ti类的后验概率;
P(Ti|ω)=P(ω|Ti)·P(Ti);
其中P(ω|Ti)表示新样本属于Ti类的条件概率;
设当前有某个虚拟机节点类型Vj,对于任务ti假设任务间各个特征属性相互独立,可得:
贝叶斯分类器对任务的决策函数为:
arg max{P(tiVj)P(Vj)},其中(i=1,2,3,……,n;j=1,2,3,……,m);
当ti可以在任务的截止期内完成,且ti任务属于Vj的概率p=arg max{P(ti|Vj)P(Vj)},称ti是Vj类型的任务,在调度时就将其部署在Vj类型的虚拟机对列中。
基于虚拟机调度方法的云计算系统,包括用户端、调度器和主机,所述调度器将用户端任务输送至主机内的虚拟机处理;
所述调度器包括:
实现任务调度、任务的状态转换的调度器;
计算出提交的任务类型的贝叶斯分类器;
进行任务与虚拟机的匹配的虚拟机匹配器;
用于虚拟机创建、虚拟机的状态信息收集、任务信息收集的虚拟机控制器。
所述调度器还包括存放匹配后立马被执行任务的就绪序列,以及存放匹配后需要等待的任务的等待序列。
本发明实现虚拟机与任务之间的匹配,实现云资源的合理利用,提高云计算的服务质量。
附图说明
下面对本发明说明书中每幅附图表达的内容作简要说明:
图1为基于虚拟机调度方法的云计算系统框图;
图2为基于两阶段策略的任务ti的调度过程;
图3为调度所需的最优跨度时间图示;
图4为调度所需的任务平均等待时间图示;
图5为调度任务失效率图示;
图6为虚拟机使用率图示。
具体实施方式
本发明针对云计算环境下任务分配不合理而降低虚拟机调度性能的问题,提出一种基于任务类型分析的两阶段策略的虚拟机调度方法。包括三个步骤:1)虚拟机建模:预先创建多个虚拟机,该方法基于历史任务调度数据,采用贝叶斯分类器对任务进行分类,并根据分类结果,预先创建一定数量的不同级别处理能力的虚拟机节点,以节省任务调度时临时创建虚拟机的时间耗费;2)新任务调度:当云任务需要执行调度时,根据任务的大小在预先创建的虚拟机中寻找合适的虚拟机节点,并将任务与该虚拟机节点进行匹配;3)新任务处理:将任务由寻找到的虚拟机处理。通过上述方法可以实现云任务的合理调度和减少调度时间。
针对上述三个步骤具体分析如下:
假设云系统中有m个不同类型的虚拟机,有n个用户提供的任务。使用v表示虚拟机集合v={v1,v2,v3,……,vm}。由于每个虚拟机的计算能力是不同的,虚拟主机在不同维度上的资源容量可以用资源向量vj=<rjcpu,rjmem,rjnet,rjstor>表示,其中,j∈[1,m],rjcpu、rjmem、rjnet与rjstor分别表示第j个虚拟机的cpu资源、内存资源、网络带宽与硬盘存储资源。
用T表示n个用户提供的任务集合,T={t1,t2,t3……,tn},其中,任务ti进一步描述为一个向量ti=<tiid,tidm,tif>,其中,i∈[1,n]。符号解释如下。
(1)tiid是任务ti的标识符,表示由第i个用户提交的唯一id的任务。
(2)tidm=<ticpu,timem,tinet,tistor>表示任务ti对虚拟机资源的需求。如果一个虚拟机满足不了任务的任意一个维度的需求,那么任务在这个虚拟机上执行需要中断,并可能导致任务最终无法执行结束。
(3)tif表示用户提交的任务最后完成的截止时间,超过这个时间完成,任务就失效。
云计算中不同级别的任务尽可能运行在与之级别相匹配的虚拟机节点上运行,能实现资源的合理应用,在任务调度阶段,根据任务的五个维度(CPU资源ticpu、内存资源timem、网络带宽tinet、硬盘存储资源tistor、任务截止时间tif),通过贝叶斯分类器将任务划分成若干个等级,再根据计算任务的级别来创建虚拟机。最后将任务部署与之相匹配的虚拟机上,以实现任务和资源的合理分配,提高整个云计算系统的性能。本发明所研究的云计算中心可以描述为由虚拟机集群组成的有限集V={H1,H2,H3,……,Hk}其中主机H1={VM1,VM2,……,VMm},其中VMm表示第m个虚拟机,物理主机通过虚拟化的方式产生虚拟云平台。
新任务调度步骤中,当新的任务集到达时,如图2所示,执行以下步骤实现调度:
1.任务到达贝叶斯分类器时,贝叶斯分类器将根据任务的相关信息计算出执行任务所需要的虚拟机级别,并将各任务的tiid,tidm,tif提交给虚拟机控制器。虚拟机根据贝叶斯分类器提供的信息,去查询与当前任务匹配的虚拟机状态信息。
2.如果存在与当前任务匹配的虚拟机类型,将任务ti安排至就绪队列;
如果不存在与当前任务匹配的虚拟机类型,将任务ti安排至等待队列。
3.当调度器将就绪队列中任务提交给虚拟机匹配时,虚拟机匹配搜索该类型中是否有空闲虚拟机;
若存在空闲虚拟机,直接部署任务ti在该空闲虚拟机上。
若不存在空闲虚拟机:将任务状态切换成等待状态,挂载至等待队列队尾。
4.当等待队列非空时,由虚拟机控制器创建合适的虚拟机,当虚拟机创建完成后。调度器将当前任务提交给虚拟机匹配进行调度部署。
5.更新云计算中心的信息,包括云计算中心的空闲虚拟机信息、任务剩余时间等。若存在任务因任务匹配超出任务执行截止期。撤销任务,并将其tiid放入调度失败队列。
6.若调度成功,返回调度成功标识;否则返回调度失败队列;
上述调度方法,使得云任务得到有效且合理的分配,提高云调度性能和云资源利用率。
本发明利用贝叶斯分类器进行分类,利用云计算中心任务规模的历史数据创建一定数量、不同级别处理能力的虚拟机节点,贝叶斯分类器是在贝叶斯定理的基础上,结合先验概率与条件概率,该分类匹配方法,简单、有效和实用,在云计算环境下选择基于贝叶斯分类器的任务分类方法可以很大程度上节约开销。此外,该方法可以和MapReduce并行处理机制组合,迅速有效地获得匹配结果,减少云计算中心的负载。
利用贝叶斯分类器的分类算法如下:
设样本空间为U,训练样本Ti类的先验概率为P(Ti)如式(1)所示。
式(1)中,i取值为整数,|U|是样本总数。当产生一个新样本ω,根据贝叶斯定理,可知属于Ti类的后验概率,如式(2)所示。
P(Ti|ω)=P(ω|Ti)·P(Ti) (2)
式(2)中,P(ω|Ti)表示新样本属于Ti类的条件概率。
设当前有某个虚拟机节点类型Vj,(由上可知Vj=<rjcpu,rjmem,rjnet,rjstor>),对于任务ti,(由上可知ti=<ticpu,timem,tinet,tistor>),假设任务间各个特征属性相互独立,可得:
根据贝叶斯分类方法,分类器对任务的决策函数为:
arg max{P(ti|Vj)P(Vj)},其中(i=1,2,3,……,n;j=1,2,3,……,m)
当ti可以在任务的截止期内完成,且ti任务属于Vj的概率p=arg max{P(ti|Vj)P(Vj)},称ti是Vj类型的任务,在调度时就将其部署在Vj类型的虚拟机对列中。
当ti在Vj上顺利执行,将任务ti添加到Vj里,从而扩大样本容量,提高先验概率的准确性。
如图1所示,基于虚拟机调度方法的云计算系统,包括用户端、调度器和主机,调度器将用户端任务输送至主机内的虚拟机处理;实现任务调度、任务的状态转换,并将用户提交的任务提交到合适的虚拟机上,以实现优化调度。调度器包括:
(1)贝叶斯分类器:通过贝叶斯算法计算出提交的任务类型;
(2)虚拟机匹配:在贝叶斯分类器的实现的任务分类结果基础上,进行任务与虚拟机的匹配;
(3)虚拟机控制器:虚拟机创建、虚拟机的状态信息收集、任务信息的收集等;
(4)就绪序列:有空闲的、满足条件的虚拟机,任务立马被执行;
(5)等待序列:没有空闲的或满足条件的虚拟机,任务需要等待。
下面以Min-Min为例,与本发明虚拟机调度方法(BSP-ACS)进行比较,
其中,Min-min算法是将任务优先分配给能够最早执行任务并能够在最短的时间内完成任务的节点。算法需要提前计算得出最先执行任务的节点和执行任务速度最快的节点,然后将任务依次按照“最先最短”的原则进行任务分配。进行了10组对比实验,统计并求出平均值,分别记录了调度所需的最优跨度时间、任务平均等待时间以及任务失效率等。
(1)时间跨度是云系统处理用户提交的任务集合需要消耗的总时间,时间跨度越小,则云系统的交互性和服务质量越好。
(2)任务平均等待时间是用户提交的任务等待时间的均值,也是云系统整体处理能力与吞吐量的表现。
从图3可知,Min-min算法与BSP–ACS算法调度所需的最优跨度时间。
从图4可知,随着任务的级别升高,BSP-ACS算法与Min-Min算法的任务平均等待时间也相应提高。由图可知,BSP-ACS算法的任务等待时间相对稳定,并且总是优于Min-Min算法。这一优势在任务量增大时更为明显。
从图5可知,随着任务的级别升高,BSP-ACS与Min-Min的任务失效率也相应提高,但BSP-ACS算法在任务失效率方面具有显著的优势,而Min-Min算法随着任务级别的升高,任务失效率明显提高。随着任务规模的增大,这一优势将明显增大。
从图6可知,BSP-ACS的各个类型的虚拟机使用率较为稳定。BSP-ACS算法在负载均衡方面具有显著的优势,而Min-Min算法存的劣势是性能高的虚拟机使用率高,性能低的虚拟机使用率低。随着任务规模的增大,负载不均衡,这种劣势也越来越明显。
通过仿真实验表明,对不同级别的任务进行调度,对比可知,BSP-ACS具有明显的性能优势,随着任务数量和任务规模的增加,最优跨度时间、任务平均等待时间也随之增加,但失效率趋于稳定。此外,BSP-ACS的各个类型的虚拟机使用率较为稳定。
上面结合附图对本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种非实质性的改进,或未经改进将本发明的构思和技术方案直接应用于其它场合的,均在本发明的保护范围之内。