论文部分内容阅读
虚拟化技术作为云计算的底层技术支持,将海量的第三方应用打包成虚拟机,并使得虚拟机能够在服务器上得到整合或重新部署以节省数据中心开销。现有的虚拟机迁移的研究很少考虑网络开销。研究已表明应用层虚拟机之间的通信关联在数据中心网络通信流量中占有很重要的比重;虚拟机迁移也会带来数据迁移的开销,增加网络开销。本文从网络开销的角度去考虑过载虚拟机的迁移问题,考虑虚拟机之间的多层通信关联和底层物理机之间的拓扑关系,从虚拟机静态迁移和动态迁移两个角度去分析它们的区别并求解,在减小虚拟机的网络通信开销和迁移开销之间取得一个平衡。数据中心中虚拟机的迁移可以分为静态迁移和动态迁移。对于静态迁移,虚拟机在服务器上的部署持续很长时间,可能几个月或者几年。事实上,网络管理员不愿意自动迁移虚拟机,他们更倾向于静态整合的方式,在部署生效之前评估最优的迁移策略人工进行迁移:所以群体智能算法对通过反复迭代找到一个近似最优解的特性,可以作为静态迁移的理想解决方案。本文中,我们将遗传算法和蜂群算法应用到静态迁移问题,来最小化虚拟机迁移的网络开销。实验结果表明遗传算法在问题规模较小时具有最优的网络开销,随着问题规模增大,蜂群算法的优势逐渐体现出来;同时蜂群算法的执行时间相比遗传算法有很大的优势,几乎是遗传算法执行时间的一半。据我们了解,我们是第一个用蜂群算法来解决虚拟机迁移问题的。虚拟机动态迁移持续时间较短,对于虚拟机的动态迁移,管理员可以根据数据中心中负载的变化,迁移其中一个或者几个虚拟机。对于网络感知的虚拟机动态迁移,我们一步步地提出了三种改进的启发式算法:LM、nCaM和nCaM2算法。LM算法最小化每一次虚拟机迁移的网络开销;mCaM算法从平衡每次迁移的网络通信收益和迁移开销的角度为每次虚拟机迁移选择目标主机;mCaM2作为一个两步的优化算法,虚拟机选择目标主机时根据最小化通信开销收益来选择,在选择迁移哪个虚拟机时加入迁移开销的考虑,保证在不同阶段分别对通信开销和迁移开销的优化。通过与以前的虚拟机迁移算法做性能比较,实验结果表明,我们的动态算法在网络开销、迁移开销方面比以前算法有明显改观,同时执行时间上与AppAware算法相比有绝对优势。