一种虚拟机的动态迁移方法及系统技术方案

技术编号:14182801 阅读:114 留言:0更新日期:2016-12-14 12:12
本发明专利技术公开了一种虚拟机的动态迁移方法及系统,包括:接收多线程压缩迁移指令;获取参数信息;其中,所述参数信息包括压缩级别信息,内存压缩的线程数量信息和内存解压缩的线程数量信息;根据所述参数信息对源端的待迁移内存进行压缩,根据所述参数信息对目的端接收的压缩后的内存进行解压缩;可见,在本实施例中,充分利用cpu的性能,通过压缩虚拟机的内存,实现在有限的网络带宽的情况下快速的迁移虚拟机。

Method and system for dynamic migration of virtual machine

The invention discloses a system and a dynamic, virtual machine migration method includes: receiving multi thread compression transfer instruction; get parameter information; wherein, the parameter information including compression level information, the number of threads and memory compression information memory decompression thread number information; according to the memory to transfer parameter information for the source the end of the compression, decompression according to the parameter information of the destination receives the compressed memory; thus, in this example, make full use of the performance of the CPU by compressing the virtual machine memory, realize the limited network bandwidth under the condition of rapid migration of virtual machine.

【技术实现步骤摘要】

本专利技术涉及虚拟化
,更具体地说,涉及一种虚拟机的动态迁移方法及系统
技术介绍
随着虚拟化技术的广泛应用,我们需要对虚拟机进行迁移操作,其中在主机之间进行虚拟机的迁移就是最为常用的做法,所以实现虚拟机的迁移技术为服务器的虚拟化提供简便的方法。在没有虚拟机迁移技术的时代,物理机之间的迁移依靠的是系统备份和恢复技术。在源主机上实时备份操作系统和应用程序的状态,然后把存储介质连接到目标主机上,最后在目标主机上恢复系统。随着虚拟机技术的发展,系统的迁移更加灵活和多样化。现阶段虚拟机迁移技术可分为静态迁移和动态迁移,但在实际的使用中动态迁移是对用户的影响最为直接,他是用户处于使用的状态下进行的。动态迁移又分为共享存储迁移和非共享存储迁移这两类,其中共享存储迁移是非共享存储动态迁移的特例。非共享存储迁移在迁移时用时最长,技术难度大,用户停机感知最为明显。因此,如何加速虚拟机的动态迁移是本领域技术人员需要解决的问题。
技术实现思路
本专利技术的目的在于提供一种虚拟机的动态迁移方法及系统,以实现加速虚拟机的动态迁移,减少用户的停机感知。为实现上述目的,本专利技术实施例提供了如下技术方案:一种虚拟机的动态迁移方法,包括:接收多线程压缩迁移指令;获取参数信息;其中,所述参数信息包括压缩级别信息,内存压缩的线程数量信息和内存解压缩的线程数量信息;根据所述参数信息对源端的待迁移内存进行压缩,根据所述参数信息对目的端接收的压缩后的内存进行解压缩。其中,利用ZLIB工具根据所述参数信息对源端的待迁移内存进行压缩,利用所述ZLIB工具根据所述参数信息对目的端接收的压缩后的内存进行解压缩。其中,接收多线程压缩迁移指令之前,还包括:根据修改指令,向qemu的代码中加入压缩级别compression level,控制压缩速率和压缩比率,其中,所述压缩级别与压缩速率成反比,所述压缩级别与压缩比率成反比。一种虚拟机的动态迁移系统,包括:接收模块,用于接收多线程压缩迁移指令;参数获取模块,用于获取参数信息;其中,所述参数信息包括压缩级别信息,内存压缩的线程数量信息和内存解压缩的线程数量信息;执行模块,用于根据所述参数信息对源端的待迁移内存进行压缩,根据所述参数信息对目的端接收的压缩后的内存进行解压缩。其中,所述执行模块利用ZLIB工具根据所述参数信息对源端的待迁移内存进行压缩,利用所述ZLIB工具根据所述参数信息对目的端接收的压缩后的内存进行解压缩。其中,还包括:修改模块,用于根据修改指令,向qemu的代码中加入压缩级别compression level,控制压缩速率和压缩比率,所述压缩级别与压缩速率成反比,所述压缩级别与压缩比率成反比。通过以上方案可知,本专利技术实施例提供的一种虚拟机的动态迁移方法及系统,包括:接收多线程压缩迁移指令;获取参数信息;其中,所述参数信息包括压缩级别信息,内存压缩的线程数量信息和内存解压缩的线程数量信息;根据所述参数信息对源端的待迁移内存进行压缩,根据所述参数信息对目的端接收的压缩后的内存进行解压缩;可见,在本实施例中,充分利用cpu的性能,通过压缩虚拟机的内存,实现在有限的网络带宽的情况下快速的迁移虚拟机。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例公开的一种虚拟机的动态迁移方法流程示意图;图2为本专利技术实施例公开的一种虚拟机的动态迁移系统结构框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例公开了一种虚拟机的动态迁移方法及系统,以实现加速虚拟机的动态迁移,减少用户的停机感知。参见图1,本专利技术实施例提供的一种虚拟机的动态迁移方法,包括:S101、接收多线程压缩迁移指令;其中,接收多线程压缩迁移指令之前,还包括:根据修改指令,向qemu的代码中加入压缩级别compression level,控制压缩速率和压缩比率,所述压缩级别与压缩速率成反比,所述压缩级别与压缩比率成反比。具体的,在本实施例中,为了更多的适应网络状况,我们对qemu的代码进行修改,在虚拟机中引入了压缩级别--compression level。Compression level可以用来控制压缩速率和压缩比例。高的压缩比率会消耗更多的时间,level 0就代表不进行压缩,1级代表最优的压缩速率,9级代表了最好的压缩比率(最多的压缩时间)。在压缩之前通过从0级到9级中选择任意一个级别。在压缩内存的时候要注意压缩/解压缩时间将会消耗CPU周期。所以,如果整个系统CPU都被压得非常满的情况下,可以选择避免使用这个特性。当网络带宽有限,CPU资源又足够充足的情况下,使用多线程压缩动态迁移技术会带来比较好的效果,即当网络充足且CPU资源充足的情况下,使用本方案将会减少总迁移时间。S102、获取参数信息;其中,所述参数信息包括压缩级别信息,内存压缩的线程数量信息和内存解压缩的线程数量信息;具体的,在本方案中,在源主机端使用virsh命令:virsh migrate centos_kvm_vm--live qemu+ssh://100.7.0.105/system--unsafe--verbose--comp-methods mt--comp-mt-level 1--comp-mt-threads 12--comp-mt-dthreads 3virsh命令对用户提供接口,使能方式如下:a.在迁移命令中加入“--comp-methods mt”,使能多线程压缩迁移技术;b.在迁移命令中加入“--comp-mt-level 1”,指定多线程压缩迁移技术中的压缩级别;c.在迁移命令中加入“--comp-mt-threads 12”,指定进行内存压缩的线程数量;d.在迁移命令中加入“--comp-mt-dthreads 3”,指定进行内存解压缩的线程数量。S103、根据所述参数信息对源端的待迁移内存进行压缩,根据所述参数信息对目的端接收的压缩后的内存进行解压缩。其中,在本实施例中利用ZLIB工具根据所述参数信息对源端的待迁移内存进行压缩,利用所述ZLIB工具根据所述参数信息对目的端接收的压缩后的内存进行解压缩。具体的,在本实施例中,使用ZLIB完成压缩/解压缩的工作。在CPU相同的情况下,ZLIB官方给出,解压缩的速度是压缩速度的4倍。也就是说,如果迁移的源端和目的端处理器相同的情况下,使得压缩线程数量是解压缩线程数量的4倍就可以在资源消耗最小的情况下,取得最优的压缩速率。可见,当需要大规模的迁移虚拟机时,在有限的网络带宽的情况下,压缩虚拟机内存可以快速有效的实现动态迁移任务。在本方案中,进行非共享存储的在线迁移时,并不直接发送客户机的裸内存,而是先在发送前对客户机内存进行压缩,在目的本文档来自技高网...
一种虚拟机的动态迁移方法及系统

【技术保护点】
一种虚拟机的动态迁移方法,其特征在于,包括:接收多线程压缩迁移指令;获取参数信息;其中,所述参数信息包括压缩级别信息,内存压缩的线程数量信息和内存解压缩的线程数量信息;根据所述参数信息对源端的待迁移内存进行压缩,根据所述参数信息对目的端接收的压缩后的内存进行解压缩。

【技术特征摘要】
1.一种虚拟机的动态迁移方法,其特征在于,包括:接收多线程压缩迁移指令;获取参数信息;其中,所述参数信息包括压缩级别信息,内存压缩的线程数量信息和内存解压缩的线程数量信息;根据所述参数信息对源端的待迁移内存进行压缩,根据所述参数信息对目的端接收的压缩后的内存进行解压缩。2.根据权利要求1所述的动态迁移方法,其特征在于,利用ZLIB工具根据所述参数信息对源端的待迁移内存进行压缩,利用所述ZLIB工具根据所述参数信息对目的端接收的压缩后的内存进行解压缩。3.根据权利要求2所述的动态迁移方法,其特征在于,接收多线程压缩迁移指令之前,还包括:根据修改指令,向qemu的代码中加入压缩级别compression level,控制压缩速率和压缩比率。4.根据权利要求3所述的动态迁移方法,其特征在于,所述压缩级别与压缩速率成反比,所述压缩级别与压缩比率成反比。5.一种虚拟机的动态迁...

【专利技术属性】
技术研发人员:朱璠杨岳川钱兵
申请(专利权)人:浪潮北京电子信息产业有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1