基于运行阶段特征的虚拟机实时迁移技术-邹庆欣.pdf





《基于运行阶段特征的虚拟机实时迁移技术-邹庆欣.pdf》由会员分享,可在线阅读,更多相关《基于运行阶段特征的虚拟机实时迁移技术-邹庆欣.pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第37卷第1期2016年1月通信学报Journal On Commtmicafions、,b137 NO1January 2016doi:lO11959jissn1000436x2016021基于运行阶段特征的虚拟机实时迁移技术邹庆欣12,一,郝志宇3,云晓春1,3(1中国科学院计算技术研究所,北京100190;2中国科学院大学,北京100049;3中国科学院信息工程研究所,北京100193)摘要:针对预拷贝算法在起始、迭代、结尾3个阶段所表现出的不同特点,提出了基于运行阶段特征的虚拟机实时迁移技术(LMCOS,live migration based 0n the characteristi
2、cs ofthe operation stages)。起始阶段引入比对初始内存页的变量传输技术以避免未改变内存部分的传输;迭代阶段引入计数排序传输方法以减少内存页的重传;结尾阶段引入调减虚拟机CPU时间片的策略以缩短停机时间。与预拷贝算法相比,LMCOS使停机时间平均减少53,总迁移时间平均减少65。关键词:实时迁移;预拷贝;运行阶段特征;虚拟机中图分类号:TP302 文献标识码:ALive migration based the characteristiase0n tlle ilaracterlstics 0fCS 0Ioperation stages lot virtual maCnln
3、e- 一 l ZOU Qing-xinl哆HAO Zhi-yu3,YUN Xiaochunl3(1hastitute ofComputingTechnology,ChineseAcademy ofSciences,Beijling 100190,Chma;2Universi移ofChineseAcademyofSciences,Be封in9100049,China;3Institute ofInformation Engineering,Chh憾e Academy ofSciences,Beijing 100193,China)Abstract:Being dffected against t
4、he different characteristics of start,iterative and end stages of pre-copy algorithm,livemigration based on the characteristics of operation stages referred to as LMCOS WaS proposedIn the start stage,thetechnique of comparing initial memory page and sending variables was brought to avoid the transfe
5、rring of unmodifiedmemoryDuring the iterative stage,the transmitting method of counting sort Was brought to reduce retransmitting mereory pagesIn the end stage,the police of reducing time slices of virtual machineS CPU Was brought to shorten thedown。timeCompared with precopy algorithm,LMCOS reduces
6、downtime by 53and total migration time by 65onaverageKey words:live migration,precopy,characteristics ofthe operation stages,virtual machine1 引言步入云计算、大数据时代,虚拟化技术得到了前所未有的应用。虚拟化技术使拥有全部硬件特征的虚拟机在彼此隔离的情况下能够同时在一台物理机器上运行,极大地增加了物理资源的利用率。虚拟机是虚拟化技术一个最直接而且集中的体现。在虚拟机诸多技术中,实时迁移技术无疑是一项卓越而实用的服务。虚拟机实时迁移技术在保证虚拟机工作负载
7、正常运行的情况下,使其在不同的物理主机之间可以自由地穿梭。虚拟机实时迁移有广域网迁移和局域迁移之分。在广域网迁移中不仅要迁移虚拟机内存,还要迁移虚拟机的磁盘镜像文件及网络状态等。而局域网迁移,则可以不必迁移虚拟机磁盘镜像文件等,完全可以利用NFS等服务采用共享的方式。本文主要研究局域网迁移中的内存迁移。在虚拟机局域网内存迁移技术中,预拷贝算法是最常用,也是最实用的算法之一。对于使用预拷收稿日期:201506-03;修回日期:2015-1030基金项目:国家科技支撑计划基金资助项目(No2012BAH46802)Foundation Item:The National Key Technolog
8、y Support Program(No2012BAH468021万方数据第1期 邹庆欣等:基于运行阶段特征的虚拟机实时迁移技术 171贝算法的虚拟机实时迁移来说,主要有2个衡量指标:总迁移时间和停机时间。顾名思义,总迁移时间是指从源主机上首次发送内存页开始到虚拟机在目标机器上重新启动运行所需的时间;而停机时间的产生则是因为目前的所有实时迁移技术并不能保证完全的实时性,在迁移的过程中都需要有一段虚拟机停顿时间。只有停机时间等于零,才是真正意义上的实时迁移。但是停机时间为零是极其困难的,通常是尽量短而使从虚拟机使用者的角度来看几乎察觉不到。总迁移时间和停机时间的产生是从源主机到目的主机传输内存页
9、的多少及相关内部算法等共同作用的结果。本文通过深入分析预拷贝算法的工作原理,根据其在不同运行阶段所体现的特征,有针对性地采取相应策略以改进预拷贝算法:在起始阶段引入比对初始内存页的变量传输技术以减少数据的传输量;在迭代阶段引入计数排序技术以减少高频变化内存页的多次传输;在结尾阶段引入调减虚拟机CPU时问片方法以获得更短的停机时间。通过以上基于运行阶段特征技术的运用,使虚拟机在运行不同工作负载的情况下同时减少总迁移时间和停机时间,显著提高了虚拟机实时迁移的性能。2相关工作自文献1】首次提到虚拟机实时迁移以来,研究人员对这个问题给予了极大关注。尤其是在内存迁移方面,相关研究工作不断进展,并且内存迁
10、移的相关工作也常常对虚拟化相关的其他研究方向产生重大影响。可以说,虚拟机内存实时迁移是虚拟化技术中一个非常重要的基础技术。在针对内存的虚拟机实时迁移过程中,除了预拷贝算法以外,文献2】提出了后拷贝算法,与预拷贝方式相反,后拷贝技术首先从源主机端发送CPU状态和虚拟机能够恢复运行的最小工作集到目标主机,然后虚拟机在目标主机端被重启。随后,虚拟机在目标主机端启动运行过程中,其所需的但并不存在于目标主机的内存页从源主机端被请求或被推送过来。与预拷贝方式相比,后拷贝算法减少了总迁移时间,但却增加了停机时间。借鉴于各自的优缺点文献【3】实现了内存混合复制方式的虚拟机实时迁移机制。其依次执行全内存同步,内
11、存位图同步,和脏内存同步3个过程,与预拷贝算法相比,该机制同时降低了停机时间和总迁移时间。文献4】基于日志采用检查点恢复和跟踪重放的技术提供了快速、透明的虚拟机实时迁移方法。执行轨迹在源主机端被记录,并采用同步算法实现执行轨迹记录数据从源虚拟机到目标虚拟机的传输,直到他们到达一致的状态。该机制能够大幅度地减少迁移的停机时间和网络带宽消费,而且类似于预拷贝算法,传输的不是内存而是日志,因此数据传输量较小,但实现相对比较复杂。一种基于多线程技术的限制时间的虚拟机实时迁移机制在文献5】中实现,类似于只采取2轮策略的预拷贝算法,先传输整个内存页,再停机拷贝所有变脏的内存页。所不同的是其采用了2个线程并
12、行传输,第一个线程从头至尾传输所有内存页,同时另一个线程传输变脏的内存页,当第一个线程结束时,遵循时间限制,立刻进入停机阶段。以上讨论的虚拟机实时迁移方面的工作可以说是对预拷贝机制的有力扩充。而专门针对预拷贝算法的改进工作也有相关的研究。在文献6】中,根据每个内存页自身的特点而采用的适应性内存压缩技术被应用在预拷贝机制的虚拟机实时迁移过程中。每一轮中发送的内存页首先在源主机端被压缩,然后再发送到目标主机。目标主机收到后进行解压缩,从而大幅减少了数据传输量。该研究工作中采用16个单词的字典,并根据字典中单词在内存页中出现的次数来区分每个内存页是高单词相似的,还是低单词相似的。对于高单词相似性的内
13、存页采用类似WKdm机制的压缩算法,而对于低单词相似性的则采用类似LZO机制的压缩算法,同时高相似性和低相似性内存页的界限是动态变化的。文献7】也提出了压缩的方式,所不同的是,采用的比较对象不同,它并不是每个内存页和字典里的单词做比较,而是不同内存页之间做比较,有些内存页是相同的或高相似的,这样的话,选择一个参考页做基础,同时利用游程编码,传输与参考页不同的部分,从而减少数据量的传输,而参考页的选取则采用散列指纹的方法。这2篇文章的工作虽然都采用了多线程的技术以提高算法的效率。但实验结果中总迁移时间的改进程度,大幅地低于总传输的数据量减少的程度,这说明压缩算法很耗时。文献8】中也采用了压缩的技
14、术,主要侧重于前后两轮同一个内存页的比较,也就是传输后一轮和前一轮不同的部分。不过这种方万方数据通信学报 第37卷法,要维护一个缓存来存储上一轮的内存页。但是缓存不能覆盖全部的内存页,而且该算法对第一轮发送的内存页不起作用。文献9】把虚拟机内存页分成已分配的和未分配的2种,对于未分配的不予传输,但需要依赖虚拟机内存分配机制设计一个代理模块执行内存探索功能。同时对于已经分配的,根据这些内存页之间的相似性,采用游程编码压缩的方式进行传输,起不到压缩作用的则传输原来的页面。总之,上述4篇文章工作过程复杂,本身计算量大。针对预拷贝算法,文献101提出了有序的传输变脏的内存页的思路。但是记录每个内存页的
15、重写率几乎是不可能的,因此把内存页分成组,使用统计的取样方法和内存组对重写率进行近似。当迭代一轮结束的时候,它统计每个内存组变脏的内存页的个数。然后用个数值除以这一轮持续的时间。所得的结果就是内存组的重写率。这种方法有效地减少了停机时间,但算法时间较长,在有些情况下会造成总迁移时间的增加。文献【1l】是在文献8】上做的改进,在原有的压缩上融合了按顺序传输的想法。文献12】是本课题组提出的计数排序的方法,该方法根据内存页变脏的次数不大于最大迭代轮数的特点,采用时间复杂度为a协)的计数排序的算法,使内存页根据变脏的次数由低至高传输,同时减少了停机时间和总迁移时间。文献131从调整虚拟机CPU数量的
16、角度来进行预拷贝算法的改进,但得保证虚拟机CPU的数量大于1。文献141通过调整虚拟机CPU运行的时间片来改进预拷贝算法,通过降低虚拟机在被迁移过程中的运行性能来达到减少变脏内存页数量的目的。该方法通过比较相邻两轮的内存页变脏率来动态调整CPU时间片缩减的幅度。文献15】和文献141类似,但缩减幅度的动态调整依据为相邻2轮需传输内存页的绝对数量差值,以每5 000个内存页对应5的增减幅度,但该方法对于每次变化不足5 000页面的低负载场景就不适用了。采用调整虚拟机CPU方式改进预拷贝算法最直接的影响就是会对虚拟机的应用程序产生干扰,从而严重影响虚拟机使用者的用户体验。3预拷贝算法及其运行阶段划
17、分从虚拟机的角度来看,虚拟机的内存是连续的,实际上每个虚拟机内存页被监视器分散地映射到虚拟机所在的物理主机上。预拷贝算法就是保证虚拟机在运行的同时,把映射到物理主机上真实的内存页传送到目的主机。图1描述了预拷贝算法的执行过程【l 2|。从图1中可以看到预拷贝算法试图最小化在最后一轮中传输的内存页,以保证停机时间尽可能短。在这个过程中位于源主机上的虚拟机物理内存镜像,通过网络被传输到目的主机,同时源主机持续运行。所以为了保持虚拟机内存状态在源和目标主机之间一致,一些发送到目标主机的内存页,在重新访问修改变脏之后应该被再次发送到目标主机。因此预拷贝算法用一个迭代的机制来不时地检查变脏的内存页并重传
18、它们。在前一轮传送内存页期间,如果有内存页又被修改了,则该内存页会再次被标记为脏,而没有被修改的则会被标记为干净的。实际上,发送前一轮变脏的内存页时,是无法获得内存页在后一轮的状态的,只能尽可能取临近后一轮的状态。如果用1表示变脏的状态,用0表示干净的状态,则内存页的状态如表1所示。匿冒脏的干净的图1 预拷贝算法执行过程表1 内存页状态第1轮(起始阶段)第2轮中间轮临界轮(结尾阶段)最后一轮仅仅对10这种组合,预拷贝算法才发送内存页。因为这个内存页被修改过,在可见的将来它不会被再次修改。对于其他3种组合,预拷贝算法不发送内存页。对于11组合来说,内存页过去被修改了,现在再次被修改,没有必要立刻
19、传送这个内万方数据第1期 邹庆欣等:基于运行阶段特征的虚拟机实时迁移技术 173存页。对于00组合来说,内存页没有被修改过,并不需要传送它。对于0l组合来说,这个内存页过去没有被修改过,但现在已被修改,预拷贝算法会在下一轮做进一步的判断。预拷贝算法将重复这个过程,直到一轮中变脏的内存页数小于一个预设的阈值,或迭代过程达到最大轮数或最大数据传输量,这一轮迭代通常成为临界轮。在传输完临界轮变脏的内存页以后,虚拟机将要被暂停并进入最后一轮。根据预拷贝算法运行过程中不同轮次所表现出来的运行特征,可以把预拷贝算法运行过程分为3个阶段。第1轮和第2轮称为起始阶段,在这一阶段会有较多的内存页被发送到目的主机
20、包括未使用的和变脏率较低的内存页,主要是因为第1轮所有内存页都标记为脏的状态,引起第1轮传输的内存页相对较多,传输时间相对较长,间接地引起第2轮也发送较多的内存页。第2轮和临界轮之间的中间轮称为迭代阶段,这一阶段内存页重复变脏相对频繁,而且不是像第一轮那样主观上标记为脏的状态,而是客观上由于内存更改而标记为脏的。把临界轮和最后一轮称为结尾阶段,主要是两轮都和停机时间有关,临界轮的状况关系到最后一轮传送内存页的多少,而最后一轮发送内存页的多少直接影响到停机时间的长短。4 LMCOS算法设计预拷贝算法分成不同的阶段后,由于每一阶段运行过程中,分别具有各自阶段的鲜明运行特征,如果不去考虑不同阶段不同
21、运行特征对算法性能产生的影响,而是始终采用同一种方法去处理,必然会影响整体算法的性能,从而导致针对某一阶段,效果非常好的技术方法,到了另一阶段性能就会严重下降,甚至产生负面的影响。而这正是目前绝大多数相关研究工作的处理方式。鉴于此,本文提出了基于运行阶段特征的虚拟机实时迁移技术LMCOS。在不同运行阶段,根据其运行特征,引入不同的处理技术,以达到不同阶段迁移性能的局部最大化效应,最终获得更优异的整体迁移性能。下面将详细介绍LMCOS所引入的技术方法。41初始阶段:引入比对初始内存页的变量传输技术预拷贝算法的第一轮,所有内存页都被标记为脏的状态,在虚拟机创建之初,并为其分配内存之前的任何时刻,虚
22、拟机管理器通常会把要分配给虚拟机的内存进行初始化,使每一个内存页相同。而且每一个内存页的每个字节也相同。例如通过分析虚拟化平台Xen422的源代码,发现其利用alloc 函数为虚拟机分配内存页之_domheappages前,就已经利用init 函数对内存进_domheappages行了初始化工作,该函数里面使用零字节,初始化每个内存页,进而初始化要分配给虚拟机的所有内存页。本文称像Xen一422虚拟化平台这样经过初始化的内存页为初始内存页,这样的字节为初始字节。换句话说,在Xen-422虚拟化平台上,初始内存页对应全零页面。随后在虚拟机引导操作系统并启动后,初始内存页将被改动。尽管初始内存页被
23、改动,但其内部死角仍然有可能存在连续的初始字节。有大量初始内存页和改动很小的内存页是初始阶段最显著的特征,虚拟机内存其他方面的数据相似性因操作系统和应用程序的不同,而有一定韵变化。在传送一个虚拟机内存页之前,可以先跟初始内存页进行比较,只传送与初始内存页不同的部分,而相同的部分则没有必要传输。图2给出比对初始内存页进行变量传输的过程,一对括号表示一个字节,括号内是该字节的数值。同时一个字节最高位用l即数值128表示相同的部分,用0表示不同的部分。低7位则表示具体多长。同时做一次最基本的比较为4个字节。在Xen-422虚拟化平台具体实现过程中,针对“比对”这一环节,采用游程编码进行比较,具体如图
24、3所示。“合成”环节则要与“比对”环节执行相反的过程。20160214初始内存页oXoxoX0xxoxoo;I l 变量部分也(oxoxo刚xo)比L陌丽鬲陌网对fL竺鲨!蚓到几砑丽一H燃Xoxox(oxoxox扩o)I 懒罂I I I 茹I厶I!旦基旦基竺基12 I 1描(o裂xo黎xo涮)(o;)门最网(1 X4X2)(3)腓I l k卜一虚拟机卜卜内存页 匕竺:L_j变量部分万方数据通信学报 第37卷off临时变量;pageoff:偏离字节数;copy,iseopy:标识符;uint3 2_j:无符号32位整型;(uint32_t)ipage:初始内存页;(uint32_t)epage:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 运行 阶段 特征 虚拟机 实时 迁移 技术 邹庆欣

限制150内