1.一种云资源动态伸缩方法,其特征在于,方法包括:S1:获取虚拟数据中心每个服务节点集群以及相应虚拟单元上的用户负载;
将所述虚拟数据中心定义为服务节点、服务节点集群以及为服务节点与服务节点集群之间连接所构成的云资源供应方案;
将服务构件定义为一组服务及其之间依赖关系的封装,且一个服务构件实例化为多个服务构件实例;
将服务节点定义为部署服务构件实例的虚拟单元实例,部署相同服务构件的所有虚拟单元实例为服务节点集群其中,S为用户服务集合,S={s1,s2,…,sk};
VU为虚拟单元的集合,VU={vu0,vu1,…,vum};
vu0为控制节点的虚拟单元,vuj为服务节点的虚拟单元,j=1,…,m;
m为服务节点的数量,不同服务节点的虚拟单元是相同的;
将用户服务集合S定义在虚拟单元vuj上,虚拟单元vuj的负载分布为:Δj={λ1j,λ2j,…,λkj};
其中λij为服务si在虚拟单元vuj上的负载;i=1,2,..,k;
服务节点集群 的负载分布为Δ={λ1,λ2,…,λk},其中S2:根据历史负载信息,构建基于模型组合的负载预测模型,包括:短期负载预测模型、长期负载预测模型、负载残差预测模型和组合预测模型;
所述短期负载预测模型为
其中, 分别为负载周期T中时段t,t‑1,…,t‑j+1的实际负载,fS为短期负载预测方法,j为短期负载预测方法fS的阶数, 是根据短期负载预测方法fS所预测的负载周期T中时段t+1的负载值;
所述长期负载预测模型为
其中, 为负载周期T‑1中时段t+1的实际负载值, 为负载周期T‑2中时段t+1的实际负载值;
为负载周期T‑i中时段t+1的实际负载值,fL为长期负载预测方法,i为方法fL的阶数, 为根据方法fL所预测的负载周期T中时段t+1的负载值;
所述负载残差预测模型为
其中, 分别为负载周期
T中时段t,t‑1,…,t‑j+1的负载预测残差;
分别为负载周期T中时段t,t‑1,t‑j+1的负载预测值,fE为负载残差预测方法,j为方法fE的阶数, 为根据方法fE所预测的负载周期T中时段t+1的负载预测残差值;
所述组合预测模型为
其中, 为根据短期预测模型所产生的负载预测值, 为根据长期预测模型所产生的负载预测值, 为根据残差预测模型所产生的负载预测残差,F为组合预测方法,为根据组合预测方法F所预测的负载周期T中时段t+1的负载值;
S3:构建基于强化学习的决策模型,确定模型的状态和动作,并定义奖赏函数和状态动作值函数;
所述步骤S3中的基于强化学习的决策模型为基于负载周期的马尔可夫决策模型,定义Sc为服务构件c的状态集合;
服务构件c在负载周期T的时段t的状态定义为: 其中,T=1,
2,……,t=0,1,……n, 为部署服务构件c的虚拟单元vuj的数量;
服务构件c在状态 下的云资源供应能力为:其中, 为虚拟单元vuj对于服务构件c的最大负载能力;
设sφ=(0,0,…,0)为终止状态,其表示停止云资源的供应; 和 为分别负载周期T的初始状态和终止状态,且有 即一个负载周期最后时段的状态也是下一个负载周期的初始状态;
方法中,定义Ac为服务构件c的动作集合,服务构件c在负载周期T的时段t的动作定义为:其中,T=1,2,…;t=0,1,…,n; 为在状态 下执行的所有动作的集合;
表示调整虚拟单元vuj的数量;j=0,1,…,m;
如果 表示增加虚拟单元vuj的数量;
如果 表示减少虚拟单元vuj的数量;
如果 则表示不对虚拟单元vuj的数量进行调整;
方法中,还定义 为在状态 下执行的动作,执行动作 后:如果t
如果t=n,状态从 转变到
定义 为服务构件c在负载周期T的时段t+1的负载预测值,θc为负载的控制范围,aφ={0,0,…,0}表示不对任何虚拟单元的数量进行调整的空动作可以按照如下规则生成状态 的动作集合如果 说明服务构件c在负载周期T的时段t的云资源供应能力可以满足时段t+1的负载需求,因此
如果 说明服务构件c在负载周期T的时段t的云资源供应能力不能满足时段t+1的负载需求,设 为时段t+1的负载平均增加量,则如果 说明服务构件c在负载周期T的时段t的负载能力超过时段t+1负载需求,设 为时段t+1的负载平均减少量,则方法中,对于每个服务构件c,在状态 下执行动作的奖赏函数公式定义如下:
其中, 为动作 的云资源调整成本;
如果 则增加云资源的供应量,奖赏函数定义为如果 则减少云资源的供应量,奖赏函数定义为如果 不调整云资源的供应量,因此,
定义状态‑动作值函数 代表在状态 下执行动作 所带来的累积加奖赏;
采用基于时序差分的策略评估方法来调 的取值,状态‑动作的累积奖赏的取值按照如下公式动态更新:其中,γT∈[0,1]为折扣因子,γT=0表示即时奖赏,随着γT趋向于1,则表示未来的回报将被考虑进来;
ηT∈[0,1]为学习率,ηT=0表示不再学习新知识,ηT=1表示最新信息才有用;折扣因子和学习率的取值与负载周期相关,随着负载周期T的增加,γT的取值逐渐递增,而ηT的取值则逐渐递减;
S4:配置用于确定云资源调整方案和概率贪心选择策略的决策算法,并确定未来负载周期下的动作;
S4.1:设置模型各项初始化参数;
S4.2:判断当前负载周期T中的当前时段t下的状态 是否为终止状态sφ,如果是,则转至S4.14,否则,转至S4.3;
S4.3:设置负载时段t为0;
S4.4:判断负载时段t是否小于时段总数n,如果是,则转至S4.5,否则,转至S4.13;
S4.5:根据模型组合预测方法计算负载预测值S4.6:确定模型在状态 下的动作集合 更新服务构件c的动作集合S4.7:采用动态εT‑贪心策略来选择动作 更新最优动作集合 动态εT‑贪心策略还包括:每一状态所要执行的动作进行选择;
在状态 下,以概率εT在 中随机选择一个动作,进行探索,并以概率1‑εT选择最优动作 进行利用;
εT与负载周期相关,随着负载周期T的增加,εT的取值逐渐较小;
S4.8:根据奖赏函数公式(1)观测 生成新状态S4.9:判断生成的新状态 是否属于已有的服务构件c的状态集合Sc,如果是,则转至S4.11,如果不是,则转至S4.10;
S4.10:将新状态 添加到服务构件c的状态集合Sc中;
S4.11:根据累计奖赏公式(2)更新S4.12:更新当前时段t值,跳转至S4.4;
S4.13:更新负载周期T值,跳转至S4.2;
S4.14:算法结束,输出状态集合Sc和最优动作集合ac;
S5:构建云资源动态伸缩执行体,对虚拟单元进行调整。
2.一种云资源动态伸缩系统,其特征在于,系统采用如权利要求1所述的云资源动态伸缩方法;系统包括:用户负载信息获取模块、模型构建模块、函数定义模块、算法配置模块以及虚拟单元调整模块;
用户负载信息获取模块用于获取虚拟数据中心每个服务节点集群以及相应虚拟单元上的用户负载;
模型构建模块用于根据历史的负载信息,构建基于模型组合的负载预测模型;
函数定义模块用于构建基于强化学习的决策模型,确定模型的状态、动作,奖赏函数和状态动作值函数定义;
算法配置模块用于设置基于确定云资源调整方案和概率贪心选择策略的决策算法,并确定未来负载周期下的动作;
虚拟单元调整模块用于构建云资源动态伸缩执行体,对虚拟单元进行调整。