混合云资源调度模型与算法研究①
2019-02-15余战秋
余战秋
(安徽工业经济职业技术学院,安徽 合肥 243000)
0 引 言
云计算近年来得到了业界广泛的关注.根据应用需求及场景不同,大量的应用构建在公有云或私有云之上[1]。如何对位于不同云中的资源进行基于应用负载的优化调度是其中的一个关键问题,值得深入研究。将混合云的资源供给问题公式化为如下:给定一组的请求(例如并行的任务)和混合云系统。混合云包括易出故障的私有云,和假定无故障的公有,主在解决如何决定一个请求将被公共云还是私有云所服务,在保障了用户的服务质量(Quality of Service,QoS)的情况下分配用户请求[2]。基于此,建立资源预测模型能够实现对于虚拟机资源的跟踪及预测。通过预测,统计未来的虚拟机列表中的虚拟机负载状态,运用动态调整算法启用新的虚拟机来申请资源或者关闭虚拟机来释放资源,保证资源的高效利用。
1 调度模型设计
1.1 资源预测算法
将时变的CPU使用率作为一个一维随机游动的值,其中vk表示在k时刻真实使用的占总的CPU的比重,独立的随机变量tk表示过程噪声,并假定它正态分布,建立以下的线性随机差分方程:
vk+1=vk+tk
(1)
控制器的目的是使用基于使用情况追踪的应用程序性能模型来计算每个虚拟机需被分配的资源量.定义a为分配给VM的CPU资源,u为测量的CPU使用率.建立资源分配模型如下:
ak+1=ak+zk
(2)
uk+1=cak+wk
(3)
其中c记为真实的使用值与分配值之间的差值,可以根据服务器应用程序或者虚拟机而更改。独立的随机变量zk和wk分别表示过程噪声和量测噪声,并假定它们满足正态分布:
p(z)~N(0,Q)
(4)
p(w)~N(0,R)
(5)
量测噪声方差R在每一步或者测量时都可能会发生变化,过程噪声方差Q几乎肯定会改变,反应了不同的系统动力学[3]。然而在这里,假设在滤波过程中它们是稳定的。
步骤一:预测
(6)
(7)
步骤二:更新
(8)
(9)
其中,增益为
(10)
得到新的k+1时刻的最优CPU分配方案及其对应的误差协方差。
1.2 动态调整算法
在系统运行过程中,每一个虚拟机的状态将被监控.如果在一个数据中心中重载的虚拟机比例超过设定的阈值时,算法将自动租用新的虚拟机[4]。相反的,当数据中心的空闲虚拟机比例过高,算法会退还多余的虚拟机。这种方法即使在预测并不十分准确的情况下,仍可以保证一定的服务质量并降低费用。
1.3 双阈值算法
由云租户分别设定两个不同的阈值,根据所有的虚拟机查询得到的负载信息与这两个阈值进行比较,判断新的资源的启用与释放[5]。阈值A与私有云中虚拟机资源的申请有关,阈值B与公有云中虚拟机资源的申请有关。当小于阈值A时说明私有云上现有的虚拟机能较好地完成用户请求,不需要额外的申请资源。当用户请求数量减少,私有云中虚拟机的负载降低小于阈值B,则要申请在公有云中退还虚拟机,减少资源的浪费。
2 实验结果分析
图1 Q=10时,CPU资源使用情况与分配追踪图
如图1可知,控制器追踪CPU使用情况的变化,并实时的调整资源分配。预测算法能够很好的实现对于使用资源的追踪,并且将分配值与使用值的差值保持在一个合理的范围内.控制器能够针对每个瞬时的资源使用变化进行动态调整,是因为有一个较高的卡尔曼增益值,使得更加倾向于信任新的观测值而非旧的预测值.虽然在这种方式下,控制器对于任何变化的工作负载有更快的响应,但是这可能会引起不必要的资源分配调整,使得更容易出现资源饱和现象。
图2 Q=0.7时,CPU资源使用情况与分配追踪图
如图2所示,针对上述容易出现资源饱和的情形,调整实验参数,来获得对系统更好的理解.令Q=0.7 ,这样会得到一个较小的卡尔曼增益,通过减少对于新的观测值的信任,使得服务性能变得更加平稳。
3 结 论
在研究虚拟化技术、云环境下的预测技术和混合云资源调度技术的基础上,设计了混合云原型系统.根据构建的混合云模型,并提出一个调度算法,包括自动资源申请以及用户请求响应。运用卡尔曼预测模型,对虚拟机的资源分配信息进行追踪和预测,并统计每个虚拟机的负载情况。当云中负载过重或过轻的比重大于阈值时进行资源的申请和退还。通过使用负载均衡器实现用户请求的合理分配。