论文部分内容阅读
虚拟化是一个广义的术语,是指把物理资源转化为逻辑上可以管理的资源,以打破物理结构之间壁垒的技术。利用虚拟化技术,所有的资源都透明地运行在各种各样的物理平台上,资源的管理都将按照对应的逻辑方式来进行,从而完全实现资源的自动化配置。虚拟化技术不仅可以帮助用户合并多种工作负荷,在单个操作系统上运行多种操作系统环境,而且可以提高系统的可用性,在系统之间迁移虚拟环境。为了在动态迁移中减少总迁移时间和停机时间,Xen采用的是预拷贝算法(Pre-Copy)来选择合适的时间进行停机拷贝,其核心思想是在进程的部分或全部地址空间从源主机到目标主机传输完毕后,源主机才挂起进程并传输核心数据。这种算法在空负载和低负载的时候表现很出色,但是在高负载时的表现不是很完美,主要原因是高负载下,预拷贝算法需要对内存页进行重复迭代,直到最大迭代拷贝次数。本文以Xen作为实验平台研究虚拟机动态迁移的改进和优化,研究重点是根据原内存迁移算法预拷贝算法的缺点和不足,提出新的算法对总迁移时间和停机时间进行优化。本文主要工作如下:1)从历史背景、应用场合和实现技术三方面研究和分析了虚拟化技术,总结比较了当今一些流行的虚拟机。2)研究了Xen的动态迁移的原理和实现。首先介绍了动态迁移的概念和动态迁移的几个技术难题,其次介绍了动态迁移的主要内容和具体流程,然后结合源代码对动态迁移的整体流程进行了分析。3)针对Xen的迁移框架,在原预拷贝算法基础上,提出了页面分层算法。页面分层算法重点是解决传统迭代过程中重复拷贝相同脏页的问题,通过对内存页重写次数进行统计来尽量减少不必要的拷贝。4)通过实验来验证本文设计的动态迁移优化算法的合理性和可行性。为了验证页面分层算法的健壮性和稳定性,本文从低负载,高内存负载,高CPU负载和高网络负载四个方面,对页面分层算法进行实验。实验结果表明,页面分层算法在高脏页率情况下可以有效地对总迁移时间和停机时间进行优化。5)最后对虚拟机动态迁移的发展方向和Xen的进一步应用做了展望。