张松霖
(太原理工大学 软件学院,山西 晋中 030600)
随着无服务器及微服务技术等应用的发展,容器云(Container-based Cloud)已经成了软件领域主流平台[1],与早期的虚拟机比较起来,容器很容易针对Web应用程序提供包装、迁移和配置等服务。近年来Google和Microsoft等公司都开始在大数据中心部署大量的容器为基础的应用。虽然服务器合并技术是一个很好的节省能量消耗的办法,但是在容器云中服务器合并是很难达到的,因为容器云中的资源分配是两层的资源分配:容器到虚拟机的分配和虚拟机到物理主机的分配。在早期基于虚拟机的云中扩展的服务器合并技术也无法重新再使用[2]。
为了处理好容器云中的两层资源分配问题,必须解决好2个方面的难题:1)容器分配和虚拟机分配之间的交互问题,即最好的容器分配不一定能够获得最好的虚拟机分配结果,所以这两个过程必须同时进行。2)由于每一层的分配都是多维的装箱问题,必须处理好这类多目标优化的NP-Hard问题[3]。
本文的研究重点是设计与实现一个容器云中的两层资源分配策略Double-GA,同时Double-GA必须使云数据中心的能量消耗尽量最小。为了达到这个目标,Double-GA应用了多目标优化智能计算的遗传算法。遗传算法[4-5]已经被成功应用到组合优化领域,它可以很好地避免早熟和收敛速度慢的问题,文献[6-8]中遗传算法已经成功应用到了基于虚拟机的云资源分配领域。
Double-GA中利用遗传算法解决容器云的资源分配主要途径是设计出染色体的表达方式,处理好遗传算法染色体的初始化、种群进化、交叉、变异等操作,原因是遗传算法中好的染色体表达方式可以扩展搜索空间使得资源的分配更接近最优解。……