论文部分内容阅读
物理机耗能是云数据中心能量消耗的重要来源,而物理机上运行的任务多以虚拟机的形式存在。因此,如何优化虚拟机在物理机上的放置情况,在满足用户需求的同时,尽可能的降低云数据中心的能耗是当前虚拟机领域专家研究的热点课题。根据对于虚拟机资源需求考量方式我们可以把虚拟机放置(VMP,Virtual Machine Placement)算法分为两类。第一类为虚拟机静态放置问题算法研究,直接以单一数值来表示虚拟机一段时间的资源需求。该类问题的优化算法将VMP规约为简单的装箱问题,但不能适应现实中虚拟机资源需求随时间波动的状况。目前更为常见的是第二类,动态虚拟机放置方法研究。很多动态策略实际上是将整个运行周期分割成一个个离散的点或者较小的时间片段,使用每个点或者每个片段的峰值作为算法资源需求的输入。最终,时间片段(点)被连续拼接起来,用来特征化动态的资源需求。这种动态是广义的动态,很明显,它的精度会随着时间的推移而下降,一旦发生资源溢出,需要采取虚拟机在线迁移的策略,因此造成大量的迁移成本。并且在小时间片段内实施静态放置策略,也无法充分利用物理机资源。在本论文中,通过对虚拟机在运行过程中资源使用情况的日志结果进行统计分析,我们设计出一种实用的资源需求模型检测策略,将虚拟机需求的周期性动态变化情况,建模为高斯分布模型,既可以模拟虚拟机资源需求的动态特征,也实现了探测算法在精确度和复杂度之间的平衡。为了充分考虑各维度资源,利用高斯函数的若干定理,我们从多维度资源的角度定义虚拟机和物理机,以及资源约束。同时,因为高斯函数的连续性,我们很容易的获得在一段时间内的资源利用总量,故提出了两个反映物理机长时间性能表现的创新性评价指标:资源累积利用率(CUR,Cumulative Utilization Ratio)和资源平衡距离(RBD,Resource Balance Distance),分别衡量物理机各维度资源利用总体水平和多维资源利用均衡程度。基于将资源互补的虚拟机放置在同一个物理机的原则,从全局优化的角度出发,每次为所有虚拟机寻找最佳匹配的物理机,充分利用物理机各维度的资源,力求资源均衡利用,在保证服务质量的同时,减少活跃物理机个数和虚拟机迁移频率。在算法实现上,使用了主流的蚁群算法,和近年来提出的布谷鸟算法。我们提出了一种基于预测的高斯模型来批量分配虚拟机的蚁群系统算法(GACO-VMP,Gaussian pattern based ant colony optimization VMP algorithm)。该策略将具有互补资源需求的虚拟机安排到一个物理机上来实现能量感知的虚拟机放置。另一个是基于布谷鸟算法提出了虚拟机初始放置节能算法(CSVMP,Cuckoo Search based VMP)来提高能源效率。算法中的布谷鸟蛋代表的是待放置虚拟机集合的部署方案,由于莱维飞行能够扩大搜索范围,帮助智能算法避免陷入局部最优解,因此每次布谷鸟蛋进化时,通过莱维飞行,可以从全局视角对所有匹配解的同步更新,加快收敛速度。我们对比了其他论文中所研究的CompVM和Wrasse,两种近期热门算法,以及FF算法。基于Google集群真实跟踪的模拟实验表明,GACO和CSVMP在能源效率和VM迁移两方面,取得显着的性能提升;同时,还显著增加了资源利用率,平衡了多种资源的利用率。