论文部分内容阅读
近年来,虚拟化技术因为能提供良好的独立性、服务器整合以及易管理性而备受关注。作为虚拟化技术的一个重要特征,实时迁移能够完整、无缝地将一个虚拟机从一台物理服务器迁移到另一台物理服务器,从而实现服务器的动态负载均衡和在线维护。高效动态地迁移虚拟机而不影响虚拟机的正常服务是实时迁移的终极目标。目前实时迁移技术的难点和重点是如何减少迁移时间和宕机时间。作为x86架构下一款性能优秀的开源虚拟机,Xen具有巨大的发展潜力。它支持准虚拟化和硬件辅助的全虚拟化技术。本文以Xen为实验平台研究虚拟机实时迁移的改进工作,研究重点是提出减少宕机时间和适当减少总迁移时间的结构设计、原理、算法和性能测试。本文工作主要包括:(1)在充分研究Xen架构、关键技术和源码的基础上,分析了影响实时迁移的内因和外因:内因是当前的实时迁移算法本身在高脏页率的时候表现一般;外因是在实时迁移过程中硬件资源的分配方式不合理。(2)基于传统的迁移框架,为Xen设计了合理的实时迁移框架,主要添加了预拷贝模块,并设计了分层拷贝模块和脏页减速模块。预拷贝模块重点处理拷贝前对系统脏页率的判断并根据实际情况来选择迁移算法。低脏页率时采用传统迁移模式,高脏页率时采用分层拷贝模式。(3)在研究了Xen实时迁移代码的基础上,分别提出了分层拷贝算法和脏页减速算法。分层拷贝算法重点是如何减少传统迭代过程中重复拷贝相同脏页的问题,通过对内存页重写次数统计来尽量减少不必要的拷贝。减速算法考虑如何适量减少被迁移域的CPU占有量来降低脏页率。通过分层算法与减速算法的协同工作,在尽可能不影响迁移域服务的前提下,减少了迁移时间。(4)通过实验来验证本文设计的实时迁移算法的合理性和可行性。实验结果表明,分层算法和减速算法能有效的改善高脏页率情况下的迁移时间和宕机时间。