论文部分内容阅读
作为虚拟化技术所提供的一项重要特性,虚拟机在线迁移是数据中心和集群系统的管理中不可或缺的一项重要工具,并被广泛应用于负载均衡、能耗管理、系统在线维护等诸多应用场景。由于其所发挥的重要作用,虚拟机在线迁移技术持续受到了学术界和工业界的广泛关注。随着云计算环境下对系统资源动态调度的要求日益提升,以及数据中心内部管理的精细化程度越来越高,虚拟机迁移操作也日趋频繁。此外当前虚拟机的资源配置日益增大,且其内部可能运行对迁移并不友好的内存写密集型负载。这些趋势都对迁移系统的设计提出了更高要求。针对这些问题,对进一步提升虚拟机迁移性能,比如缩短迁移时间、减少数据传输量以及减轻迁移过程对应用性能的影响等,进行了深入研究,并从如何对虚拟机内存数据进行迁移以及如何对迁移数据进行压缩两个角度展开工作,提出相应方法。提出适用于虚拟机迁移的带宽感知的数据压缩方法(Bandwidth-Aware Compression,简称BAC)以缩短虚拟机迁移时间。为减少迁移期间的数据传输量并缩短迁移时间,虚拟机迁移中广泛使用了数据压缩技术。通过实验发现,不同的数据压缩方法为迁移带来的性能提升是不相同的,且迁移带宽会影响该性能提升。因此BAC实时监控迁移所使用的网络带宽,并以此来动态选择适合的压缩方法对虚拟机内存数据进行压缩。通过对运行多种负载的虚拟机内存数据压缩效果进行分析,发现了在迁移过程中选择较优的压缩方法时不同负载所呈现的共性,并由此设计了可供不同负载所使用的压缩策略表。此外,由于数据压缩算法的压缩窗口通常远大于单个内存页的大小,BAC进一步采用了多页合并压缩的优化方法,以充分挖掘数据压缩为迁移带来的性能收益。实验结果表明,同传统的采用固定的数据压缩方法来加速虚拟机迁移的方案相比,BAC显著地缩短了虚拟机迁移时间,且同时在数据传输量和停机时间两项指标上也具有较好的性能。提出基于内存页分频传输的虚拟机快速迁移方法(Multi-Frequency Memory Transferring,简称MFMT)以减少迁移期间的数据传输量并缩短迁移时间。为了实现较短的停机时间,预拷贝迁移算法需要对虚拟机内存脏页进行多轮迭代传输。通过实验观察到,不同内存页的写脏频率是不相同的,且可能差异较大。因此传统预拷贝算法不加区分地对所有内存脏页进行重复传输的方法并非最佳,因为其通常会反复多次传输写脏频率较高的内存页,不仅消耗了大量的网络资源,而且可能影响迁移的顺利完成。针对该问题,MFMT周期性地获取虚拟机内存页的写脏频率信息,并依据写脏频率的不同对内存页进行分类。在虚拟机迁移过程中,对于不同类别的内存页,MFMT采用不同的传输频率进行迁移,并将写脏频率超出一定阈值的内存页直接放入停机—拷贝阶段传输,从而实现对迁移过程的加速。实验结果表明,MFMT虽然少量增加了虚拟机迁移的停机时间,但是显著地减少了迁移数据量并缩短了迁移时间。此外MFMT还可以结合BAC一同使用,两者优化效果的叠加可以进一步提升虚拟机迁移性能。提出面向内存写密集型负载的假脏页判定及混合拷贝迁移方法以解决此类负载由于写脏内存较快而难以迁移的问题。通过对虚拟机内存脏页的详细分析获得了一项重要观察:在迁移过程中有一定数量的假脏页产生,且在所分析的8种内存写密集型负载中,有4种负载的假脏页比例很高,占迁移期间脏页总量的50%以上。与在之前迭代中已经传输到目的端的对应页面拷贝相比,此类假脏页的数据内容没有发生任何改变,因此其重复传输既没有必要,又浪费了大量网络资源。在详细探究了假脏页产生的根本原因后,提出利用计算和比对安全哈希值的方法以避免其重复传输,并分析了哈希冲突概率以确保该方法的安全性。此外,为了保证所有负载都能够成功完成迁移,进一步将安全哈希方法同所设计的混合拷贝迁移方法进行结合。该混合拷贝迁移方法采用了启发式思想,可以在一个近似最优的时刻从预拷贝阶段切换进入后拷贝阶段,从而既不会浪费网络资源进行过多无用的预拷贝迭代,又可以尽量缩短后拷贝阶段的持续时间,以减轻后拷贝算法的固有缺陷给迁移带来的负面影响。实验结果表明,所提出的综合迁移方法有效解决了迁移内存写密集型负载所面临的问题,显著提升了其迁移性能。此外该方法还可以同BAC进行结合,两者优化效果的叠加可以为内存写密集型负载带来更多的迁移性能提升。