论文部分内容阅读
随着云数据中心越来越成熟,云计算逐渐成为了信息技术行业的主导计算模式,但高能耗开销问题也随之而来。在云数据中心中,大部分物理机的资源利用率都很低,因此产生了大量的能源浪费。虚拟机整合技术已经被证明是一种高效的节约能耗的方式,该技术将数据中心中的虚拟机放置在尽可能少的物理机上,从而将没有运行虚拟机的物理机切换至低功耗模式以节约能源。但当前的虚拟机整合算法只针对运行特定应用的数据中心时性能表现突出,如CPU密集型应用、网络应用等。因此,为通用的云数据中心设计一个通用的虚拟机整合框架以支持具有不同实时特征的物理机是很有必要的。OpenStack NEAT是一个整合到OpenStack中的成熟的虚拟机整合框架,它将虚拟机整合过程分解成四个子问题:(1)主机欠载检测;(2)主机过载检测;(3)虚拟机选择;(4)虚拟机放置。但该框架也存在缺陷。首先该框架无法正常运行在Ocata版本及更早版本的OpenStack上,且框架中的组件使用的数据不一定是最新的。其次,该框架各组件不能进行自适应的算法选择以应对不同实时特征的物理机,且该框架已实现算法的性能都较差。最后,该框架的可扩展性很差,自定义算法的添加需要对框架源码进行大量查阅与修改,且对框架的操作也很复杂。为解决上述问题并使虚拟机整合技术可以自适应地应对具有不同实时特征的物理机,本研究设计并实现了一个智能NEAT框架(I-NEAT)。首先,I-NEAT框架修复了OpenStack NEAT框架中的漏洞,并设计了算法库为各子问题添加很多新算法。另外,基于已有的OpenStack NEAT框架,I-NEAT框架添加了两个额外的组件:智能调度模块与框架管理模块。使用了强化学习的智能调度模块部署在每一个计算节点上,负责根据计算节点当前的实时特征为本地管理模块提供负载检测算法,从而实现自适应的虚拟机整合。框架管理模块部署在控制节点,它为各子问题设计了开放模板,并提供了自定义算法的上传操作,很好地提升了框架的可扩展性,同时框架管理模块还提供了服务管理与系统配置项管理功能。最后,本研究通过在小规模系统上进行验证实验以评估和分析新算法与使用强化学习的智能调度模块的性能,性能指标包括:累积空闲时间比例(AITF)、累积过载时间比例(AOTF)、虚拟机迁移次数与能源节约率。为使实验具有可重复性与可信性,本研究使用真实云数据中心的工作负载作为模拟负载,同时固定了负载与虚拟机之间的映射。实验结果表明,使用新算法的I-NEAT性能明显优于NEAT,而智能调度模块可以进一步降低能源开销且更好地避免SLA冲突,同时强化学习方法的学习能力可以让I-NEAT框架在面对具有任何实时特征的物理机时都能在短时间内有效地学习策略进行高效的虚拟机整合。