一种虚拟机迁移方法

文档序号:10654306阅读:531来源:国知局
一种虚拟机迁移方法
【专利摘要】本发明公开了一种虚拟机迁移方法,包括源主机和目的物理机,其迁移过程为:在源主机内压缩内存数据,然后传输给目的物理机,在传输过程中,源主机通过压缩算法将内存数据压缩,传输完毕后,目的物理机则通过对应的解压缩算法解压,完成数据的整个迁移过程。该虚拟机迁移方法与现有技术相比,将CBC压缩算法植入到虚拟机迁移代码当中,以此减少了迁移过程中需要传输的数据量,从而实现虚拟机更有效的迁移,提高虚拟机实时迁移的效率,实用性强,易于推广。
【专利说明】
一种虚拟机迁移方法
技术领域
[0001]本发明涉及云计算技术领域,具体地说是一种实用性强、虚拟机迀移方法。
【背景技术】
[0002]在云环境下,虚拟机的实时迀移一般采取一种基于内存预拷贝(Pre-copy)的方式。它能保持在虚拟机运行的同时,将虚拟机的信息从原物理机器拷贝到目的机器上,并且在目的物理机上启动起来,在这个过程中虚拟机停机时间很短,用户根本感觉不到。
[0003]实时迀移的内容是将整个虚拟机完整的虚拟资源都迀移到目的机器上。这些信息包括:CPU寄存器信息、内存信息、磁盘信息和一些虚拟设备信息。不同的信息,采取不同的方法处理。对于CPU寄存器信息,由于寄存器中内容非常少,故一般停机拷贝寄存器信息并不会对实时迀移指令产生什么影响;对于数据量最大的磁盘信息,一般采用共享存储的方式来实现迀移,这样不占用网络带宽,且效率相当高;而最大的难点就是内存信息的拷贝,所谓的内存预拷贝算法,也就是主要针对内存信息而言。因为内存信息数量大,同时改动数据比较快,一旦内存改动速度超过了网络传输速度,内存预拷贝算法就可能失效,就只能停机拷贝,实时迀移的性能就会急剧下降。
[0004]云环境中包含异构的物理主机和在主机上运行着的虚拟机,虚拟机在迀移过程中存在着数据传输量大,总迀移时间长,或者“脏”数据率大于网络传输速度等问题,从而造成预拷贝算法提前失效,影响虚拟机的服务质量。
[0005]在现有技术中,CBC压缩算法是一种基于内存特征的实时压缩算法。该算法基于这样一种思想,将内存中的指令页和数据页分开压缩的思想。就是说,对于要输入的被压缩的数据,首先,分析数据的特征,并将其归为指令页或者数据页。如果为指令页,则采用针对指令页优化过的压缩算法;否则,将采用针对数据页优化过的压缩算法,这样,可以达到一个很高的压缩率的同时,也可以提高压缩速度。
[0006]鉴于该压缩算法,本发明提供一种虚拟机迀移方法。

【发明内容】

[0007]本发明的技术任务是针对以上不足之处,提供一种实用性强、虚拟机迀移方法。
[0008]—种虚拟机迀移方法,包括源主机和目的物理机,其迀移过程为:在源主机内压缩内存数据,然后传输给目的物理机,在传输过程中,源主机通过压缩算法将内存数据压缩,传输完毕后,目的物理机则通过对应的解压缩算法解压,完成数据的整个迀移过程。
[0009]所述压缩算法通过CBC编码器实现,解压缩算法通过CBC解码器实现,且CBC编码器植入到源主机的xc_domian_save()函数中,CBC解码器置入到目的物理机的xc_domain_restore()函数中。
[0010]所述内存数据的具体压缩过程为:
首先将虚拟机在源主机中的物理地址转换成虚拟机的物理地址;
然后开始内存预拷贝算法每一次的循环; 通过预拷贝算法将要传输的页面送出,作为CBC编码器的输入数据,进行压缩编码; 压缩后的数据通过socket传输到目的物理机。
[0011]所述目的物理机的解压缩过程为:
目的物理机的xc_domain_restore()函数接收传输过来的数据,将其交给CBC解码器; CBC解码器将数据解压后通过预拷贝算法进行处理;
内存预拷贝算法将接收到的内存页面进行相关处理,然后将内存地址进行M2P模块转换;
在目的物理机上重新建立虚拟机的物理地址和宿主地址的物理地址的对应关系,完成整个迀移过程。
[0012 ]本发明的一种虚拟机迀移方法,具有以下优点:
本发明提供的一种虚拟机迀移方法,将CBC压缩算法植入到虚拟机迀移代码当中,以此减少了迀移过程中需要传输的数据量,从而实现虚拟机更有效的迀移,提高虚拟机实时迀移的效率,实用性强,易于推广。
【附图说明】
[0013]附图1为本发明的实现流程图。
【具体实施方式】
[0014]下面结合附图和具体实施例对本发明作进一步说明。
[0015]针对目前普遍采用的一种虚拟机在线迀移方式,即内存预拷贝(pre-copy)方法中存在一些瓶颈,比如数据传输量大,总迀移时间长,而且在“脏”数据率大于网络传输速度的时候,内存预拷贝算法就会失效,增加停机时间。
[0016]针对这样的问题,如附图1所示,本发明的一种虚拟机迀移方法,包括源主机和目的物理机,其迀移过程为:在源主机内压缩内存数据,然后传输给目的物理机,在传输过程中,源主机通过压缩算法将内存数据压缩,传输完毕后,目的物理机则通过对应的解压缩算法解压,完成数据的整个迀移过程。
[0017]所述压缩算法通过CBC编码器实现,解压缩算法通过CBC解码器实现,且CBC编码器植入到源主机的xc_domian_save()函数中,CBC解码器置入到目的物理机的xc_domain_restore()函数中。
[0018]所述内存数据的具体压缩过程为:
首先将虚拟机在源主机中的物理地址转换成虚拟机的物理地址,由附图可以看出,当进行虚拟机实时迀移的时候,首先要将虚拟机在源主机中的物理地址转换为虚拟机的物理地址,这个过程称为P2M变换。因为在目的物理主机中,虚拟机的P2M表和源物理主机的P2M表在大多数情况下是不相同的,虚拟机迀移之后,只有通过M2P变换重新建立对应关系,虚拟机迀移才有可能正确;
然后开始内存预拷贝算法每一次的循环;
通过预拷贝算法将要传输的页面送出,作为CBC编码器的输入数据,进行压缩编码; 压缩后的数据通过socket传输到目的物理机。
[0019]所述目的物理机的解压缩过程为: 目的物理机的xc_domain_restore()函数接收传输过来的数据,将其交给CBC解码器; CBC解码器将数据解压后通过预拷贝算法进行处理;
内存预拷贝算法将接收到的内存页面进行相关处理,然后将内存地址进行M2P模块转换;
在目的物理机上重新建立虚拟机的物理地址和宿主地址的物理地址的对应关系,完成整个迀移过程。
[0020]所述CBC编码器包括数据特征分析模块、指令页压缩模块和数据页压缩模块,其中数据特征分析模块是对数据特征进行分析,得出内存相似度,并将其归为指令页或者数据页,如果为指令页,则采用针对指令页优化过的压缩算法;否则,将采用针对数据页优化过的压缩算法;然后,指令页压缩模块与数据页压缩模块根据分析的结果,进行相应的压缩。
[0021]所述CBC解码器则对应上述CBC编码器,实现所有编码数据的解压缩。
[0022]上述【具体实施方式】仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述【具体实施方式】,任何符合本发明的一种虚拟机迀移方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
【主权项】
1.一种虚拟机迀移方法,其特征在于,包括源主机和目的物理机,其迀移过程为:在源主机内压缩内存数据,然后传输给目的物理机,在传输过程中,源主机通过压缩算法将内存数据压缩,传输完毕后,目的物理机则通过对应的解压缩算法解压,完成数据的整个迀移过程。2.根据权利要求1所述的一种虚拟机迀移方法,其特征在于,所述压缩算法通过CBC编码器实现,解压缩算法通过CBC解码器实现,且CBC编码器植入到源主机的XC_domian_SaVe()函数中,CBC解码器置入到目的物理机的xc_domain_restore()函数中。3.根据权利要求2所述的一种虚拟机迀移方法,其特征在于,所述内存数据的具体压缩过程为: 首先将虚拟机在源主机中的物理地址转换成虚拟机的物理地址; 然后开始内存预拷贝算法每一次的循环; 通过预拷贝算法将要传输的页面送出,作为CBC编码器的输入数据,进行压缩编码; 压缩后的数据通过socket传输到目的物理机。4.根据权利要求2所述的一种虚拟机迀移方法,其特征在于,所述目的物理机的解压缩过程为: 目的物理机的xc_domain_restore()函数接收源主机传输过来的数据,将其交给CBC解码器; CBC解码器将数据解压后通过预拷贝算法进行处理; 内存预拷贝算法将接收到的内存页面进行相关处理,然后将内存地址进行转换; 在目的物理机上重新建立虚拟机的物理地址和宿主地址的物理地址的对应关系,完成整个迀移过程。
【文档编号】G06F9/48GK106020946SQ201610295302
【公开日】2016年10月12日
【申请日】2016年5月6日
【发明人】张卫品, 戴鸿君, 于治楼
【申请人】浪潮集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1