一种虚拟化容器资源下的多工作流资源供给方法与流程

文档序号:11524231阅读:192来源:国知局
一种虚拟化容器资源下的多工作流资源供给方法与流程

本发明涉及云计算领域,具体涉及一种虚拟化容器资源下的多工作流资源供给方法。



背景技术:

在瞬时万变的云计算环境下进行工作流任务和虚拟化资源协同自适应调度是非常困难的。例如amazon、ibm、微软、yahoo的数据中心均拥有几十万台服务器,google拥有的服务器数量甚至超过了100万台,各种物理资源虚拟化后数目更加庞大,物理节点和虚拟化单元宕机、动态加入和撤销等时有发生,管理起来技术难度大、复杂性高。又如,以多层web服务工作流为例,由于突发事件引起的负载变化规律常常是无法预测的。

从任务优化分配角度来说,各种类型的云工作流任务在多个处理单元上的调度已被证明是np完全难题。从资源优化供给角度来说,虚拟单元放置一方面需考虑能源消耗,即减少激活物理机和使用网络设备的数量,此时虚拟化单元放置可抽象为装箱问题,这是一个np完全难题;另一方面需考虑数据在虚拟单元之间的传输,即减少对网络带宽的使用,此时虚拟单元放置可抽象为二次分配问题,这同样是一个np完全难题。现有的云工作流调度或侧重于固定虚拟化资源下的工作流任务分配,或侧重于工作流负载变化下的弹性资源供给,或侧重于如何将现有的工作流管理系统融入云平台之中,无法将工作流任务分配和虚拟化资源供给相互协同。



技术实现要素:

本发明的目的是解决现有技术的缺陷,提供一种能够将工作流任务分配和虚拟化资源供给相互协同的工作流资源供给方法,采用的技术方案如下:

一种虚拟化容器资源下的多工作流资源供给方法,采用基于强化学习的容器资源生成策略,包括以下步骤:

定义状态空间:用五元组s=(wr,ra,aw,im,pj)表示状态空间,其中wr为待调度工作流任务的工作量,ra为资源可用时间,aw为等待队列中工作流任务的总工作量,im为空闲容器资源数,pj为队列中各用户提交工作流任务的比例;

定义动作空间:动作空间包括待分配工作流任务以及请求的资源数两个动作;

设定奖赏函数re=λew+(1-λe)u,其中λe∈[0,1]为控制系数;w为任务响应率:executiontime为工作流任务执行时间,waitngtime为工作流任务等待时间,u为资源效用指标:[tk,...,tk+1]表示资源供给决策时刻,pk表示[tk,...,tk+1]时刻容器簇内可用容器资源,fn表示tn时刻工作流任务执行时间总和;

设定奖赏函数上限值ru、下限值rl、保持范围rm~rn;

从动作空间中选择待执行工作流任务,执行选择的任务,检测获取奖赏函数rε;

若奖赏函数rε大于ru,则在该任务后续的执行过程中,增加云平台中的虚拟化容器资源,若奖赏函数rε小于ru,则在该任务后续的执行过程中,减少云平台的虚拟化容器资源,若奖赏函数rε在rm~rn范围内,则使云平台中的虚拟化容器资源保持不变。

本发明利用强化学习对工作流进行调度、进行供给资源,定义资源效用指标u,建立了每个资源调度时刻容器簇内运行的任务和虚拟化容器资源之间的供求关系,奖赏函数的设计符合以容器簇为粒度的多工作流资源生成的要求:既要保证容器簇内容器单元的数量和类型符合云工作流的运行流程,又要避免不同qos需求的工作流违反服务级别协定,提高整个容器簇资源利用率。可实时获取各容器簇内任务的状态信息,将工作流任务分配和虚拟化资源供给相互协同。

作为优选,本发明还包括对虚拟化容器资源进行部署,具体包括:

基于最小割的簇内虚拟化容器层次聚类;

利用局部搜索算法优化网络流量;

采用最佳匹配算法优化虚拟化容器放置:当放置新创建的虚拟化容器时,从已使用的第一台物理机开始依次搜索,找到与该虚拟化容器最匹配的物理机进行放置,只有当所有已使用的物理机都不能容纳该虚拟化容器时才启用一台新的物理机。

本发明所述最匹配指当前已启用物理机的剩余可用资源(包括cpu、内存、带宽)满足新创建虚拟化容器对资源的要求,同时剩余资源最可能满足下次新创建虚拟化容器对资源的要求,或者剩余资源最少。

所述利用局部搜索算法优化网络流量具体为:以最大链路利用率或热点链路数目为目标函数,在最小割层次聚类结果的基础上选择产生拥塞链路且流量最大的虚拟化容器,随机与左右邻居交换机下的容器进行交换,然后计算目标函数:如果目标函数值减小,则接受此次交换;如没有减少,则拒绝交换,依次重复,直至循环到设定的迭代次数。

与现有技术相比,本发明的有益效果:

本发明利用强化学习对工作流进行调度、进行供给资源,定义资源效用指标u,建立了每个资源调度时刻容器簇内运行的任务和虚拟化容器资源之间的供求关系,奖赏函数的设计符合以容器簇为粒度的多工作流资源生成的要求:既要保证容器簇内容器单元的数量和类型符合云工作流的运行流程,又要避免不同qos需求的工作流违反服务级别协定,提高整个容器簇资源利用率,可实时获取各容器簇内任务的状态信息,将工作流任务分配和虚拟化资源供给相互协同。

附图说明

图1是本发明的系统模型示意图;

图2是本发明的基于最小割的簇内容器层次聚类示意图。

具体实施方式

下面结合附图和实施例对本发明做进一步详细描述。

实施例:

虚拟化容器资源下的多工作流资源供给的系统模型如图1所示,资源层面的供给是将用户提交工作流任务的需求对应到具体资源,使得应用的性能最优,同时资源的利用率也尽可能得到提高。云环境下的工作流均是由一系列子任务组成,此时资源层面的供给,首先是如何选取合适的可用资源来完成虚拟单元的创建,也就是虚拟单元的生成问题;其次是如何降低激活的物理机数目和网络带宽的占用,也就是虚拟单位的放置问题。

本实施例采用以下技术方案达到资源供给与工作流任务相互协同匹配的效果:

一种虚拟化容器资源下的多工作流资源供给方法,采用基于强化学习的容器资源生成策略,包括以下步骤:

定义状态空间:用五元组s=(wr,ra,aw,im,pj)表示状态空间,其中wr为待调度工作流任务的量,ra为资源可用时间,aw为等待队列中工作流任务的总量,im为空闲容器资源数,pj为队列中各用户提交工作流任务的比例;

定义动作空间:动作空间包括待分配工作流任务以及请求的资源数两个动作;

设定奖赏函数re=λew+(1-λe)u,其中λe∈[0,1]为控制系数;w为任务响应率:executiontime为工作流任务执行时间,waitngtime为工作流任务等待时间,u为资源效用指标:[tk,...,tk+1]表示资源供给决策时刻,pk表示[tk,...,tk+1]时刻容器簇内可用容器资源,fn表示tn时刻工作流任务执行时间总和;

设定奖赏函数上限值ru、下限值rl、保持范围rm~rn;

从动作空间中选择待执行工作流任务,执行选择的任务,检测获取奖赏函数rε;

若奖赏函数rε大于ru,则在该任务后续的执行过程中,增加云平台中的虚拟化容器资源,若奖赏函数rε小于ru,则在该任务后续的执行过程中,减少云平台的虚拟化容器资源,若奖赏函数rε在rm~rn范围内,则使云平台中的虚拟化容器资源保持不变。

本实施例还包括对虚拟化容器资源进行部署,具体包括:

基于最小割的簇内虚拟化容器层次聚类;

利用局部搜索算法优化网络流量;

采用最佳匹配算法优化虚拟化容器放置:当放置新创建的虚拟化容器时,从已使用的第一台物理机开始依次搜索,找到与该虚拟化容器最匹配的物理机进行放置,只有当所有已使用的物理机都不能容纳该虚拟化容器时才启用一台新的物理机。

以g=(v,e)表示云工作流dag图,其中v表示容器簇,e表示簇内容器之间的流量,节点集合表示为边的集合表示为δ(q)。则图g中,边的一个顶点在集合q中,另一个顶点属于v\q,当或q≠v时,δ(q)中的边就组成一个割集,表示为(q,v\q)。对于每一条边(i,j)∈e,都有一个非负的容量ci,j。而一个割集的容量可以定义为割集中每条边容量的总和,可表示为:c(q,v\q)=∑i,j∈δ(q)c(i,j)。

基于最小割的层次聚类就是在图g中找一个容量最小的割集。以图2为例说明如下,图g最小割层次聚类结果可用二叉树t(v)表示,左子树tl为q里的节点,权重为q中边值的和w(tl)=∑i,j∈δ(q)c(i,j);右子树tr为v\q的节点,权重为v\q中边值的总和w(tr)=∑i,j∈δ(q)c(i,j),如果w(tl)<w(tr),则交换左右子树,以确保左子树tl里通信流量一直大于右子树。

所述利用局部搜索算法优化网络流量具体为:以最大链路利用率或热点链路数目为目标函数,在最小割层次聚类结果的基础上选择产生拥塞链路且流量最大的虚拟化容器,随机与左右邻居交换机下的容器进行交换,然后计算目标函数:如果目标函数值减小,则接受此次交换;如没有减少,则拒绝交换,依次重复,直至循环到设定的迭代次数。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1