CN105138394A - 一种热迁移kvm虚拟机的方法及系统 - Google Patents

一种热迁移kvm虚拟机的方法及系统 Download PDF

Info

Publication number
CN105138394A
CN105138394A CN201510603325.3A CN201510603325A CN105138394A CN 105138394 A CN105138394 A CN 105138394A CN 201510603325 A CN201510603325 A CN 201510603325A CN 105138394 A CN105138394 A CN 105138394A
Authority
CN
China
Prior art keywords
virtual machine
target
data
source
dish
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201510603325.3A
Other languages
English (en)
Inventor
周孟杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Eisoo Software Co Ltd
Original Assignee
Shanghai Eisoo Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Eisoo Software Co Ltd filed Critical Shanghai Eisoo Software Co Ltd
Priority to CN201510603325.3A priority Critical patent/CN105138394A/zh
Publication of CN105138394A publication Critical patent/CN105138394A/zh
Pending legal-status Critical Current

Links

Abstract

本发明提供一种热迁移KVM虚拟机的方法及系统,所述方法包括:利用Libvirt在目标物理机上创建与源物理机上的源虚拟机中系统盘和数据盘对应的目标系统盘和目标数据盘;利用Libvirt在目标物理机上创建一个配置与源物理机上的源虚拟机的配置相同的目标虚拟机;利用Libvirt设置目标虚拟机的IP地址和端口号;利用Libvirt向源虚拟机发送用于向目标虚拟机迁移数据的迁移指令;根据迁移指令,将源虚拟机内系统盘和数据盘的数据迁移同步到目标虚拟机内的目标系统盘和目标数据盘。本发明在保证虚拟机业务连续性的情况下,实现KVM虚拟机的迁移,从而满足用户对于虚拟机服务高可用性要求很高的场合。

Description

一种热迁移KVM虚拟机的方法及系统
技术领域
本发明涉及虚拟机技术领域,特别是涉及一种热迁移KVM虚拟机的方法及系统。
背景技术
KVM(全称kernel-basedVirtualMachine)是Linux下x86硬件平台上的全功能虚拟化解决方案,自Linux2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM已成为学术界的主流VMM之一。KVM的虚拟化需要硬件支持(如IntelTV技术或者AMDV技术)。使用KVM,可允许运行多个虚拟机,包括Linux和Windows操作系统。每个虚拟机有私有的硬件,包括网卡、磁盘、图形适配卡等。
V2V虚拟机的迁移是指在VMM(VirtualMachineMonitor,虚拟监控机)上运行的虚拟机系统,能够被转移到其他物理主机上的VMM上运行。VMM对硬件资源进行抽象和隔离,屏蔽了底层硬件细节。而迁移技术的出现,使得操作系统能在不同的主机之间动态的转移,进一步解除软、硬件资源之间的相关性。V2V的迁移分为两种,一种是静态迁移,也叫做常规迁移、离线迁移。就是在虚拟机关机或者暂停的情况下从一台物理机迁移到另一台物理机。因为虚拟机的文件系统建立在虚拟机镜像上面,所以在虚拟机关机的情况下,只需要简单的迁移虚拟机镜像和相应的配置文件到另外一台物理机上;如果需要保存虚拟机迁移之前的状态,在迁移之前将虚拟机暂停,然后拷贝状态至目的的主机,最后在目的主机重建虚拟机状态,恢复执行。这种方式的迁移过程需要显式的停止虚拟机的运行。从用户角度看,有明确的一段停机时间,虚拟机上的服务不可用。这种迁移方式简单易行,适用于对服务可用性要求不严格的场合。还有一种热迁移(也叫做动态迁移),就是在保证虚拟机上服务正常运行的同时,将一个虚拟机系统从一个物理主机移动到另一个物理主机的过程。该过程不会对最终用户造成明显的影响,从而使得管理员能够在不影响用户正常使用的情况下,对物理服务器进行离线维修或者升级。与静态迁移不同的是,为了保证迁移过程中虚拟机服务的可用,迁移过程仅有非常短暂的停机时间。迁移的前面阶段,服务在源主机的虚拟机上运行,当迁移进行到一定阶段,目的主机已经具备了运行虚拟机系统的必须资源,经过一个非常短暂的切换,源主机将控制权转移到目的主机,虚拟机系统在目的主机上继续运行。对于虚拟机服务本身而言,由于切换的时间非常短暂,用户感觉不到服务的中断,因而迁移过程对用户是透明的。热迁移适用于对虚拟机服务可用性要求很高的场合。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种热迁移KVM虚拟机的方法及系统,在保证虚拟机业务连续性的情况下实现KVM虚拟机的迁移。
为实现上述目的及其他相关目的,本发明提供一种热迁移KVM虚拟机的方法,用于利用Libvirt将源物理机上的源虚拟机迁移到目标物理机中,所述热迁移KVM虚拟机的方法包括:利用Libvirt在所述目标物理机上创建与所述源物理机上的源虚拟机中系统盘和数据盘对应的目标系统盘和目标数据盘;利用Libvirt在所述目标物理机上创建一个配置与所述源物理机上的源虚拟机的配置相同的目标虚拟机;利用Libvirt设置所述目标虚拟机的IP地址和端口号;利用Libvirt向所述源虚拟机发送用于向所述目标虚拟机迁移数据的迁移指令;根据所述迁移指令,将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘。
作为本发明的一种优选方案,将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘具体包括:通过循环调用所述源物理机内的磁盘和内存迁移函数将所述源虚拟机的磁盘按块组织成一个数组,将所述虚拟机的内存的所有页设置为脏页;依次将所述源虚拟机的磁盘数据和内存数据对应同步迁移至所述目标虚拟机的目标系统盘和目标数据盘。
作为本发明的一种优选方案,在利用Libvirt在所述目标物理机上创建一个配置与所述源物理机上的源虚拟机的配置相同的目标虚拟机之后,将所述目标虚拟机的状态设置为暂停状态并使所述目标虚拟机监听用于接收迁移数据的网络端口;在将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘之后,将所述目标虚拟机的状态设置为运行状态并将所述源虚拟机的状态设置为暂停状态。
作为本发明的一种优选方案,所述的热迁移KVM虚拟机的方法还包括:在将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘之后,将所述源虚拟机的MAC地址变更信息广播发送至目标虚拟机。
作为本发明的一种优选方案,所述目标虚拟机中目标系统盘和目标数据盘的大小、路径与所述源虚拟机中系统盘和数据盘的大小、路径相同。
为实现上述目的,本发明还提供一种热迁移KVM虚拟机的系统,与Libvirt、源物理机和目标物理机相连,用于利用Libvirt将源物理机上的源虚拟机迁移到目标物理机中,所述热迁移KVM虚拟机的系统包括:第一创建模块,用于利用Libvirt在所述目标物理机上创建与所述源物理机上的源虚拟机中系统盘和数据盘对应的目标系统盘和目标数据盘;第二创建模块,与所述第一创建模块相连,用于利用Libvirt在所述目标物理机上创建一个配置与所述源物理机上的源虚拟机的配置相同的目标虚拟机;网络设置模块,分别与所述第一创建模块和所述第二创建模块相连,用于利用Libvirt设置所述目标虚拟机的IP地址和端口号;指令模块,与所述网络设置模块相连,用于利用Libvirt向所述源虚拟机发送用于向所述目标虚拟机迁移数据的迁移指令;迁移模块,与所述指令模块相连,用于根据所述迁移指令将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘。
作为本发明的一种优选方案,所述迁移模块包括:调用设置单元,通过循环调用所述源物理机内的磁盘和内存迁移函数将所述源虚拟机的磁盘按块组织成一个数组并将所述虚拟机的内存的所有页设置为脏页;同步迁移单元,与所述调用设置单元相连,用于依次将所述源虚拟机的磁盘数据和内存数据对应同步迁移至所述目标虚拟机的目标系统盘和目标数据盘。
作为本发明的一种优选方案,所述热迁移KVM虚拟机的系统还包括:状态设置模块,用于在利用Libvirt在所述目标物理机上创建一个配置与所述源物理机上的源虚拟机的配置相同的目标虚拟机之后,将所述目标虚拟机的状态设置为暂停状态并使所述目标虚拟机监听用于接收迁移数据的网络端口,且在所述源虚拟机将系统盘和数据盘中的数据迁移同步到所述目标虚拟机中的目标系统盘和目标数据盘之后,将所述目标虚拟机的状态设置为运行状态并将所述源虚拟机的状态设置为暂停状态。
作为本发明的一种优选方案,所述热迁移KVM虚拟机的系统还包括:变更信息广播模块,与所述迁移模块相连,用于在将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘之后,将所述源虚拟机的MAC地址变更信息广播发送至目标虚拟机。
作为本发明的一种优选方案,所述第一创建模块在创建目标系统盘和目标数据盘时,控制所述目标虚拟机中目标系统盘和目标数据盘的大小、路径与所述源虚拟机中系统盘和数据盘的大小、路径相同。
如上所述,本发明的一种热迁移KVM虚拟机的方法及系统,具有以下有益效果:
本发明在保证虚拟机业务连续性的情况下,实现KVM虚拟机的迁移,从而满足用户对于虚拟机服务高可用性要求很高的场合。此外,本发明简单高效,具有较强的通用性和实用性。
附图说明
图1显示为本发明的热迁移KVM虚拟机的方法的流程示意图。
图2显示为本发明的热迁移KVM虚拟机的迁移示意图。
图3显示为本发明的热迁移KVM虚拟机的系统的结构示意图。
图4显示为本发明的热迁移KVM虚拟机的系统中迁移模块的结构示意图。
元件标号说明
1热迁移KVM虚拟机的系统
11第一创建模块
12第二创建模块
13网络设置模块
14指令模块
15迁移模块
151调用设置单元
152同步迁移单元
16状态设置模块
17变更信息广播模块
S11~S15步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
本发明的目的在于提供一种热迁移KVM虚拟机的方法及系统,在保证虚拟机业务连续性的情况下实现KVM虚拟机的迁移。以下将详细阐述本发明的一种热迁移KVM虚拟机的方法及系统的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本发明的一种热迁移KVM虚拟机的方法及系统。
如图1至图4所示,本实施例提供一种热迁移KVM虚拟机的方法及系统,基于TCP和Libvirt热迁移KVM虚拟机,在保证虚拟机业务连续性的情况下,实现KVM虚拟机的迁移,从而满足用户对于虚拟机服务高可用性要求很高的场合。
其中,Libvirt是一套免费、开源的支持Linux下主流虚拟化工具的C函数库,其旨在为包括Xen在内的各种虚拟化工具提供一套方便、可靠的编程接口,支持与C,C++,Ruby,Python等多种主流开发语言的绑定。当前主流Linux平台上默认的虚拟化管理工具virt-manager(图形化),virt-install(命令行模式)等均基于Libvirt开发而成。Libvirt提供一种虚拟机监控程序不可知的API来安全管理运行于主机上的客户操作系统。Libvirt本身不是一种工具,它是一种可以建立工具来管理客户操作系统的API。Libvirt本身构建于一种抽象的概念之上。它为受支持的虚拟机监控程序实现的常用功能提供通用的API。Libvirt起初是专门为Xen设计的一种管理API,后来被扩展为可支持多个虚拟机监控程序。
热迁移(LiveMigration,又叫动态迁移、实时迁移),即虚拟机保存/恢复(Save/Restore):将整个虚拟机的运行状态完整保存下来,同时可以快速的恢复到原有硬件平台甚至是不同硬件平台上。恢复以后,虚拟机仍旧平滑运行,用户不会察觉到任何差异。
本实施例提供一种热迁移KVM虚拟机的方法,用于利用Libvirt将源物理机上的源虚拟机迁移到目标物理机中,具体地,如图1所示,所述热迁移KVM虚拟机的方法包括以下步骤。
步骤S11,利用Libvirt在所述目标物理机上创建与所述源物理机上的源虚拟机中系统盘和数据盘对应的目标系统盘和目标数据盘。其中,所述目标虚拟机中目标系统盘和目标数据盘的大小、路径与所述源虚拟机中系统盘和数据盘的大小、路径相同。
也就是说,在目标物理机上创建的目标系统盘和目标数据盘在目标物理机上的路径和源物理机上的路径必须完全一致,不同的是,在目标物理机上创建的是空盘,上面没有数据。
步骤S12,利用Libvirt在所述目标物理机上创建一个配置与所述源物理机上的源虚拟机的配置相同的目标虚拟机。目标虚拟机的系统盘和数据盘使用步骤S11中创建的目标系统盘和目标数据盘。
在利用Libvirt在所述目标物理机上创建一个配置与所述源物理机上的源虚拟机的配置相同的目标虚拟机之后,将所述目标虚拟机的状态设置为暂停状态并使所述目标虚拟机监听用于接收迁移数据的网络端口。也就是说,目标虚拟机在构建完成后,状态是暂停(paused)状态,目标虚拟机的虚拟CPU是暂停状态,然后目标虚拟机再监听一个内网的TCP端口,用于接收迁移的数据。
步骤S13,利用Libvirt设置所述目标虚拟机的IP地址和端口号。即在目标虚拟机和目标虚拟机内的磁盘都创建完成后,使用Libvirt指定目标物理机上目标虚拟机迁移过程中,需要绑定的IP地址和端口号。
步骤S14,利用Libvirt向所述源虚拟机发送用于向所述目标虚拟机迁移数据的迁移指令。在源物理机的所述源虚拟机上执行迁移指令,其中,所述迁移指令包括指定迁移的目标IP和端口号,还包括指定迁移的目标物理机、及需要迁移的块设备、最大的停机时间、迁移的带宽限制。因为目标虚拟机对应的进程是作为目标物理机一个普通进程监听在eth0网卡对应的内网IP,迁移的数据直接走源物理机,从指定网卡(例如eth0网卡)出去,进到目标物理机的指定网卡(eth0网卡)。
步骤S15,根据所述迁移指令,将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘。
在本实施例中,将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘具体包括:通过循环调用所述源物理机内的磁盘和内存迁移函数将所述源虚拟机的磁盘按块组织成一个数组,将所述虚拟机的内存的所有页设置为脏页;依次将所述源虚拟机的磁盘数据和内存数据对应同步迁移至所述目标虚拟机的目标系统盘和目标数据盘。
为了保证数据的迁移是一致的,首先源物理机的迁移进程循环调用磁盘和内存迁移函数,把源虚拟机的磁盘按block(块)位单位组织成一个数组,并设置记录脏块机制,把源虚拟机内存所有页全部设置为脏页并发送开始迁移的标志到目标虚拟机的进程。源物理机的迁移进程在调用磁盘和内存的迁移阶段,必须等待磁盘迁移完成后才能执行内存的迁移,这是个迁移收敛的过程。源物理机的迁移进程把磁盘和内存脏数据和设备状态(源虚拟机状态)一次性同步到目标虚拟机,同步完成时源虚拟机的数据就一致了,再使用Libvirt把源虚拟机关闭,并把目标虚拟机的CPU恢复运行状态,整个源虚拟机的数据的迁移就完成了,如图2所示。
在将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘之后,将所述目标虚拟机的状态设置为运行状态并将所述源虚拟机的状态设置为暂停状态。也就是说,待迁移完成后,源主机的源虚拟机变成paused状态,而目标物理机上的目标虚拟机由paused状态变成了running状态。
此外,在本实施例中,所述的热迁移KVM虚拟机的方法还包括:在将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘之后,将所述源虚拟机的MAC地址变更信息广播发送至目标虚拟机。
具体地,数据迁移完成后,发送一次arp广播,告知源虚拟机的虚拟机交换机的mac地址已经变更到另外一台交换机的某个端口,完成网络切换,由于这个切换时间很短,少于TCP的超时重传时间,对于原虚拟机上跑着网络服务程序,几乎是无感知的,因而可以保证用户的虚拟机在迁移过程中,业务连续可用性。
为实现上述目的,本发明还提供一种热迁移KVM虚拟机的系统,与Libvirt、源物理机和目标物理机相连,用于利用Libvirt将源物理机上的源虚拟机迁移到目标物理机中,具体地,如图3所示,所述热迁移KVM虚拟机的系统1包括:第一创建模块11,第二创建模块12,网络设置模块13,指令模块14,迁移模块15,状态设置模块16以及变更信息广播模块17。
所述第一创建模块11用于利用Libvirt在所述目标物理机上创建与所述源物理机上的源虚拟机中系统盘和数据盘对应的目标系统盘和目标数据盘;其中,所述第一创建模块11在创建目标系统盘和目标数据盘时,控制所述目标虚拟机中目标系统盘和目标数据盘的大小、路径与所述源虚拟机中系统盘和数据盘的大小、路径相同。也就是说,所述第一创建模块11在目标物理机上创建的目标系统盘和目标数据盘在目标物理机上的路径和源物理机上的路径必须完全一致,不同的是,在目标物理机上创建的是空盘,上面没有数据。
所述第二创建模块12与所述第一创建模块11相连,用于利用Libvirt在所述目标物理机上创建一个配置与所述源物理机上的源虚拟机的配置相同的目标虚拟机。目标虚拟机的系统盘和数据盘使用所述第一创建模块11创建的目标系统盘和目标数据盘。
所述状态设置模块16用于在利用Libvirt在所述目标物理机上创建一个配置与所述源物理机上的源虚拟机的配置相同的目标虚拟机之后,将所述目标虚拟机的状态设置为暂停状态并使所述目标虚拟机监听用于接收迁移数据的网络端口。在利用Libvirt在所述目标物理机上创建一个配置与所述源物理机上的源虚拟机的配置相同的目标虚拟机之后,所述状态设置模块16将所述目标虚拟机的状态设置为暂停状态并使所述目标虚拟机监听用于接收迁移数据的网络端口。也就是说,目标虚拟机在构建完成后,状态是暂停(paused)状态,目标虚拟机的虚拟CPU是暂停状态,然后目标虚拟机再监听一个内网的TCP端口,用于接收迁移的数据。
所述网络设置模块13分别与所述第一创建模块11和所述第二创建模块12相连,用于利用Libvirt设置所述目标虚拟机的IP地址和端口号。在目标虚拟机和目标虚拟机内的磁盘都创建完成后,使用Libvirt指定目标物理机上目标虚拟机迁移过程中,需要绑定的IP地址和端口号。
所述指令模块14与所述网络设置模块13相连,用于利用Libvirt向所述源虚拟机发送用于向所述目标虚拟机迁移数据的迁移指令。在源物理机的所述源虚拟机上执行迁移指令,其中,所述迁移指令包括指定迁移的目标IP和端口号,还包括指定迁移的目标物理机、及需要迁移的块设备、最大的停机时间、迁移的带宽限制。因为目标虚拟机对应的进程是作为目标物理机一个普通进程监听在eth0网卡对应的内网IP,迁移的数据直接走源物理机,从指定网卡(例如eth0网卡)出去,进到目标物理机的指定网卡(eth0网卡)。
所述迁移模块15与所述指令模块14相连,用于根据所述迁移指令将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘。
具体地,如图4所示,所述迁移模块15包括:调用设置单元151和同步迁移单元152。
所述调用设置单元151通过循环调用所述源物理机内的磁盘和内存迁移函数将所述源虚拟机的磁盘按块组织成一个数组并将所述虚拟机的内存的所有页设置为脏页。所述同步迁移单元152与所述调用设置单元151相连,用于依次将所述源虚拟机的磁盘数据和内存数据对应同步迁移至所述目标虚拟机的目标系统盘和目标数据盘。
为了保证数据的迁移是一致的,首先所述调用设置单元151通过源物理机的迁移进程循环调用磁盘和内存迁移函数,把源虚拟机的磁盘按block(块)位单位组织成一个数组,并设置记录脏块机制,把源虚拟机内存所有页全部设置为脏页并发送开始迁移的标志到目标虚拟机的进程。源物理机的迁移进程在调用磁盘和内存的迁移阶段,必须等待磁盘迁移完成后才能执行内存的迁移,这是个迁移收敛的过程。所述同步迁移单元152利用源物理机的迁移进程把磁盘和内存脏数据和设备状态(源虚拟机状态)一次性同步到目标虚拟机,同步完成时源虚拟机的数据就一致了。在所述同步迁移单元152将系统盘和数据盘中的数据迁移同步到所述目标虚拟机中的目标系统盘和目标数据盘之后,将所述目标虚拟机的状态设置为运行状态并将所述源虚拟机的状态设置为暂停状态。也就数,在迁移数据之后,再使用Libvirt把源虚拟机关闭,并把目标虚拟机的CPU恢复运行状态,整个源虚拟机的数据的迁移就完成了。
所述变更信息广播模块17与所述迁移模块15相连,用于在将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘之后,将所述源虚拟机的MAC地址变更信息广播发送至目标虚拟机。
具体地,数据迁移完成后,所述变更信息广播模块17发送一次arp广播,告知源虚拟机的虚拟机交换机的mac地址已经变更到另外一台交换机的某个端口,完成网络切换,由于这个切换时间很短,少于TCP的超时重传时间,对于原虚拟机上跑着网络服务程序,几乎是无感知的,因而可以保证用户的虚拟机在迁移过程中,业务连续可用性。
综上所述,本发明在保证虚拟机业务连续性的情况下,实现KVM虚拟机的迁移,从而满足用户对于虚拟机服务高可用性要求很高的场合。此外,本发明简单高效,具有较强的通用性和实用性。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (10)

1.一种热迁移KVM虚拟机的方法,用于利用Libvirt将源物理机上的源虚拟机迁移到目标物理机中,其特征在于:所述热迁移KVM虚拟机的方法包括:
利用Libvirt在所述目标物理机上创建与所述源物理机上的源虚拟机中系统盘和数据盘对应的目标系统盘和目标数据盘;
利用Libvirt在所述目标物理机上创建一个配置与所述源物理机上的源虚拟机的配置相同的目标虚拟机;
利用Libvirt设置所述目标虚拟机的IP地址和端口号;
利用Libvirt向所述源虚拟机发送用于向所述目标虚拟机迁移数据的迁移指令;
根据所述迁移指令,将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘。
2.根据权利要求1所述的热迁移KVM虚拟机的方法,其特征在于:将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘具体包括:
通过循环调用所述源物理机内的磁盘和内存迁移函数将所述源虚拟机的磁盘按块组织成一个数组,将所述虚拟机的内存的所有页设置为脏页;
依次将所述源虚拟机的磁盘数据和内存数据对应同步迁移至所述目标虚拟机的目标系统盘和目标数据盘。
3.根据权利要求1所述的热迁移KVM虚拟机的方法,其特征在于:在利用Libvirt在所述目标物理机上创建一个配置与所述源物理机上的源虚拟机的配置相同的目标虚拟机之后,将所述目标虚拟机的状态设置为暂停状态并使所述目标虚拟机监听用于接收迁移数据的网络端口;在将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘之后,将所述目标虚拟机的状态设置为运行状态并将所述源虚拟机的状态设置为暂停状态。
4.根据权利要求1所述的热迁移KVM虚拟机的方法,其特征在于:所述的热迁移KVM虚拟机的方法还包括:在将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘之后,将所述源虚拟机的MAC地址变更信息广播发送至目标虚拟机。
5.根据权利要求1所述的热迁移KVM虚拟机的方法,其特征在于:所述目标虚拟机中目标系统盘和目标数据盘的大小、路径与所述源虚拟机中系统盘和数据盘的大小、路径相同。
6.一种热迁移KVM虚拟机的系统,与Libvirt、源物理机和目标物理机相连,用于利用Libvirt将源物理机上的源虚拟机迁移到目标物理机中,其特征在于:所述热迁移KVM虚拟机的系统包括:
第一创建模块,用于利用Libvirt在所述目标物理机上创建与所述源物理机上的源虚拟机中系统盘和数据盘对应的目标系统盘和目标数据盘;
第二创建模块,与所述第一创建模块相连,用于利用Libvirt在所述目标物理机上创建一个配置与所述源物理机上的源虚拟机的配置相同的目标虚拟机;
网络设置模块,分别与所述第一创建模块和所述第二创建模块相连,用于利用Libvirt设置所述目标虚拟机的IP地址和端口号;
指令模块,与所述网络设置模块相连,用于利用Libvirt向所述源虚拟机发送用于向所述目标虚拟机迁移数据的迁移指令;
迁移模块,与所述指令模块相连,用于根据所述迁移指令将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘。
7.根据权利要求6所述的热迁移KVM虚拟机的系统,其特征在于:所述迁移模块包括:
调用设置单元,通过循环调用所述源物理机内的磁盘和内存迁移函数将所述源虚拟机的磁盘按块组织成一个数组并将所述虚拟机的内存的所有页设置为脏页;
同步迁移单元,与所述调用设置单元相连,用于依次将所述源虚拟机的磁盘数据和内存数据对应同步迁移至所述目标虚拟机的目标系统盘和目标数据盘。
8.根据权利要求6所述的热迁移KVM虚拟机的系统,其特征在于:所述热迁移KVM虚拟机的系统还包括:状态设置模块,用于在利用Libvirt在所述目标物理机上创建一个配置与所述源物理机上的源虚拟机的配置相同的目标虚拟机之后,将所述目标虚拟机的状态设置为暂停状态并使所述目标虚拟机监听用于接收迁移数据的网络端口,且在所述源虚拟机将系统盘和数据盘中的数据迁移同步到所述目标虚拟机中的目标系统盘和目标数据盘之后,将所述目标虚拟机的状态设置为运行状态并将所述源虚拟机的状态设置为暂停状态。
9.根据权利要求6所述的热迁移KVM虚拟机的系统,其特征在于:所述热迁移KVM虚拟机的系统还包括:变更信息广播模块,与所述迁移模块相连,用于在将所述源虚拟机内系统盘和数据盘的数据迁移同步到所述目标虚拟机内的目标系统盘和目标数据盘之后,将所述源虚拟机的MAC地址变更信息广播发送至目标虚拟机。
10.根据权利要求6所述的热迁移KVM虚拟机的系统,其特征在于:所述第一创建模块在创建目标系统盘和目标数据盘时,控制所述目标虚拟机中目标系统盘和目标数据盘的大小、路径与所述源虚拟机中系统盘和数据盘的大小、路径相同。
CN201510603325.3A 2015-09-21 2015-09-21 一种热迁移kvm虚拟机的方法及系统 Pending CN105138394A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510603325.3A CN105138394A (zh) 2015-09-21 2015-09-21 一种热迁移kvm虚拟机的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510603325.3A CN105138394A (zh) 2015-09-21 2015-09-21 一种热迁移kvm虚拟机的方法及系统

Publications (1)

Publication Number Publication Date
CN105138394A true CN105138394A (zh) 2015-12-09

Family

ID=54723751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510603325.3A Pending CN105138394A (zh) 2015-09-21 2015-09-21 一种热迁移kvm虚拟机的方法及系统

Country Status (1)

Country Link
CN (1) CN105138394A (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201653A (zh) * 2016-06-30 2016-12-07 国云科技股份有限公司 一种vmware虚拟机转kvm虚拟机的方法
CN106775846A (zh) * 2016-11-30 2017-05-31 三星(中国)半导体有限公司 用于物理服务器的在线迁移的方法及装置
CN106897118A (zh) * 2017-02-28 2017-06-27 郑州云海信息技术有限公司 一种虚拟机内存快照创建方法及系统
CN106990999A (zh) * 2017-03-15 2017-07-28 深信服科技股份有限公司 虚拟机业务迁移方法及装置
CN107247619A (zh) * 2017-06-12 2017-10-13 上海优刻得信息科技有限公司 虚拟机热迁移方法、装置、系统、存储介质及设备
CN107704311A (zh) * 2017-09-27 2018-02-16 郑州云海信息技术有限公司 一种虚拟机内存迁移方法及其装置
CN107783826A (zh) * 2016-08-26 2018-03-09 北京金山云网络技术有限公司 一种虚拟机迁移方法、装置及系统
CN107870802A (zh) * 2016-09-27 2018-04-03 阿里巴巴集团控股有限公司 一种虚拟机迁移方法和装置
CN108345493A (zh) * 2018-03-13 2018-07-31 国云科技股份有限公司 一种基于多云统管系统Windows虚拟机跨云迁移的方法
CN108399048A (zh) * 2017-02-08 2018-08-14 杭州信核数据科技股份有限公司 一种基于Linux操作系统的数据复制迁移方法及系统
CN108549572A (zh) * 2018-04-08 2018-09-18 郑州云海信息技术有限公司 一种数据中心综合管理系统的异构服务器虚拟化管理系统及方法
CN109388478A (zh) * 2018-11-01 2019-02-26 郑州云海信息技术有限公司 用于OpenStack环境中迁移虚拟机的方法和装置
CN111679889A (zh) * 2020-06-10 2020-09-18 广州市品高软件股份有限公司 一种虚拟机的转换迁移方法和系统
CN112130958A (zh) * 2020-09-11 2020-12-25 苏州浪潮智能科技有限公司 一种基于ovs的虚拟机热迁移方法和系统
CN113626142A (zh) * 2021-07-14 2021-11-09 麒麟软件有限公司 一种虚拟时统卡热迁移方法
WO2023202179A1 (zh) * 2022-04-21 2023-10-26 京东科技信息技术有限公司 容器热迁移方法及容器热迁移装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102118458A (zh) * 2011-03-10 2011-07-06 浪潮(北京)电子信息产业有限公司 一种虚拟机热迁移的方法及系统
CN102662751A (zh) * 2012-03-30 2012-09-12 浪潮电子信息产业股份有限公司 一种提高基于热迁移虚拟机系统可用性的方法
CN103049308A (zh) * 2012-11-30 2013-04-17 华为技术有限公司 实现虚拟机热迁移的方法、装置及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102118458A (zh) * 2011-03-10 2011-07-06 浪潮(北京)电子信息产业有限公司 一种虚拟机热迁移的方法及系统
CN102662751A (zh) * 2012-03-30 2012-09-12 浪潮电子信息产业股份有限公司 一种提高基于热迁移虚拟机系统可用性的方法
CN103049308A (zh) * 2012-11-30 2013-04-17 华为技术有限公司 实现虚拟机热迁移的方法、装置及系统

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201653A (zh) * 2016-06-30 2016-12-07 国云科技股份有限公司 一种vmware虚拟机转kvm虚拟机的方法
CN107783826A (zh) * 2016-08-26 2018-03-09 北京金山云网络技术有限公司 一种虚拟机迁移方法、装置及系统
CN107870802A (zh) * 2016-09-27 2018-04-03 阿里巴巴集团控股有限公司 一种虚拟机迁移方法和装置
CN107870802B (zh) * 2016-09-27 2021-09-07 阿里巴巴集团控股有限公司 一种虚拟机迁移方法和装置
CN106775846A (zh) * 2016-11-30 2017-05-31 三星(中国)半导体有限公司 用于物理服务器的在线迁移的方法及装置
CN106775846B (zh) * 2016-11-30 2021-02-23 三星(中国)半导体有限公司 用于物理服务器的在线迁移的方法及装置
CN108399048A (zh) * 2017-02-08 2018-08-14 杭州信核数据科技股份有限公司 一种基于Linux操作系统的数据复制迁移方法及系统
CN106897118A (zh) * 2017-02-28 2017-06-27 郑州云海信息技术有限公司 一种虚拟机内存快照创建方法及系统
CN106990999A (zh) * 2017-03-15 2017-07-28 深信服科技股份有限公司 虚拟机业务迁移方法及装置
CN107247619B (zh) * 2017-06-12 2019-07-23 优刻得科技股份有限公司 虚拟机热迁移方法、装置、系统、存储介质及设备
CN107247619A (zh) * 2017-06-12 2017-10-13 上海优刻得信息科技有限公司 虚拟机热迁移方法、装置、系统、存储介质及设备
CN107704311A (zh) * 2017-09-27 2018-02-16 郑州云海信息技术有限公司 一种虚拟机内存迁移方法及其装置
CN108345493A (zh) * 2018-03-13 2018-07-31 国云科技股份有限公司 一种基于多云统管系统Windows虚拟机跨云迁移的方法
CN108549572A (zh) * 2018-04-08 2018-09-18 郑州云海信息技术有限公司 一种数据中心综合管理系统的异构服务器虚拟化管理系统及方法
CN109388478A (zh) * 2018-11-01 2019-02-26 郑州云海信息技术有限公司 用于OpenStack环境中迁移虚拟机的方法和装置
CN111679889A (zh) * 2020-06-10 2020-09-18 广州市品高软件股份有限公司 一种虚拟机的转换迁移方法和系统
CN111679889B (zh) * 2020-06-10 2023-08-29 广州市品高软件股份有限公司 一种虚拟机的转换迁移方法和系统
CN112130958A (zh) * 2020-09-11 2020-12-25 苏州浪潮智能科技有限公司 一种基于ovs的虚拟机热迁移方法和系统
CN112130958B (zh) * 2020-09-11 2022-05-24 苏州浪潮智能科技有限公司 一种基于ovs的虚拟机热迁移方法和系统
CN113626142A (zh) * 2021-07-14 2021-11-09 麒麟软件有限公司 一种虚拟时统卡热迁移方法
CN113626142B (zh) * 2021-07-14 2024-04-05 麒麟软件有限公司 一种虚拟时统卡热迁移方法
WO2023202179A1 (zh) * 2022-04-21 2023-10-26 京东科技信息技术有限公司 容器热迁移方法及容器热迁移装置

Similar Documents

Publication Publication Date Title
CN105138394A (zh) 一种热迁移kvm虚拟机的方法及系统
US8775625B2 (en) Virtual machine mobility in data centers
US9164795B1 (en) Secure tunnel infrastructure between hosts in a hybrid network environment
US9197489B1 (en) Live migration of virtual machines in a hybrid network environment
US8694828B2 (en) Using virtual machine cloning to create a backup virtual machine in a fault tolerant system
US9262212B2 (en) Systems and methods for migrating virtual machines
US8635395B2 (en) Method of suspending and resuming virtual machines
US9448899B2 (en) Method, apparatus and system for switching over virtual application two-node cluster in cloud environment
US8140822B2 (en) System and method for maintaining page tables used during a logical partition migration
US9928107B1 (en) Fast IP migration in a hybrid network environment
Kadav et al. Live migration of direct-access devices
US9032241B2 (en) Server, server system, and method for controlling recovery from a failure
CN106528327B (zh) 一种数据处理方法以及备份服务器
US20210224100A1 (en) Virtual machine migration using multiple, synchronized streams of state data
WO2011066761A1 (zh) 一种物理机到虚拟机的在线迁移方法、装置和系统
US11210132B2 (en) Virtual machine migration in virtualization environment having different virtualization systems
CN105740052A (zh) 非共享存储的虚拟机在线迁移的方法、装置及系统
US11671319B2 (en) Disruption minimization for guests when applying changes to a data plane of a packet handler in a host
CN106815067B (zh) 带i/o虚拟化的虚拟机在线迁移方法、装置
CN110968392A (zh) 一种升级虚拟化模拟器的方法和装置
CN103856502A (zh) 实现虚拟机镜像文件热迁移的方法和nas集群系统
Takano et al. Cooperative VM migration for a virtualized HPC cluster with VMM-bypass I/O devices
Guay et al. Early experiences with live migration of SR-IOV enabled InfiniBand
Kawahara et al. The Continuity of Out-of-band Remote Management across Virtual Machine Migration in Clouds
CN109308232B (zh) 虚拟机热迁移故障后回滚的方法、装置以及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 201112 Shanghai, Minhang District, United Airlines route 1188, building second layer A-1 unit 8

Applicant after: SHANGHAI EISOO INFORMATION TECHNOLOGY CO., LTD.

Address before: 201112 Shanghai, Minhang District, United Airlines route 1188, building second layer A-1 unit 8

Applicant before: Shanghai Eisoo Software Co.,Ltd.

COR Change of bibliographic data
RJ01 Rejection of invention patent application after publication

Application publication date: 20151209

RJ01 Rejection of invention patent application after publication