虚拟机迁移方法及装置的制作方法

文档序号:7944480阅读:111来源:国知局
专利名称:虚拟机迁移方法及装置的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种虚拟机迁移方法及装置。
背景技术
虚拟化技术是在物理机上,通过虚拟机管理器(Virtual Machine Manager,简称为VMM)将物理资源分割为多个逻辑的分区,每个分区相互隔离,成为独立的虚拟机 (Virtual Machine,简称为VM)。对操作系统或应用程序来说,虚拟机与物理机没有区别,操作系统或应用程序可以共享同一台物理机。图1是根据相关技术的虚拟机系统的示意图,如图1所示,包括物理机12和交换机14。其中,物理机12上设置有虚拟机管理器122 (以下简称VMM 122),物理机12通过VMM 122可以运行多个虚拟机124(以下简称VM 124), VMM 122负责管理VM 124,为VM IM分配资源。交换机14上存储有物理机12的物理端口地址和VM 124的MAC地址。当操作系统或应用程序与VM 124进行业务交互时,由交换机16根据存储的VM 124的MAC地址,将业务数据转发给物理机12的物理端口地址。虚拟机具有动态迁移的能力,在动态迁移过程中能够保持虚拟机上操作系统或应用程序的正常运行。虚拟机动态迁移在虚拟机管理调度中是非常重要的一项功能,例如在物理机需要维护时,可以将其上的虚拟机迁移到其它物理机上,保证维护过程中不影响业务;又如在虚拟机负载较轻时,可以将多台物理机上的虚拟机迁移到少数几台物理机上,并关闭其它物理机的电源,在不影响业务的情况下节约能耗。图2是根据相关技术的虚拟机迁移系统的示意图,如图2所示,包括源物理机22、 目的物理机M和交换机沈。其中,源物理机22上设置有源虚拟机管理器222(以下简称源 VMM222),源物理机22通过源VMM 222可以运行多个源虚拟机224(以下简称源VM 224) 0目的物理机M上设置有目的虚拟机管理器242 (以下简称目的VMM 242),将虚拟机从源物理机22迁移到目的物理机M,需要创建一个新的虚拟机(即目的VMM4),迁移由源VMM 222 和目的VMM 242配合完成。虚拟机的迁移是通过在源VM和目的VM之间拷贝内存来实现的。迁移开始时,源 VMM将源虚拟机的内存拷贝到目的虚拟机内存中,在拷贝过程中由于应用程序还在运行, 内存拷贝完成后,又有内存发生了改变,源VMM会启动新一轮拷贝,将变动的内存再进行拷贝。当变动的内存足够小时,源VMM会暂停源虚拟机的运行,将剩下变动的内存拷贝到目的虚拟机中。然后,目的VMM会启动目的虚拟机,目的虚拟机开始运行,迁移完成。图3是根据相关技术的虚拟机迁移方法的交互流程图,如图3所示,包括如下的步骤S302至步骤S316。步骤S302,源VMM持续拷贝源VM内存到目的VMM,目的VMM为目的VM分配内存资源,接收传送过来的内存数据。步骤S304,当拷贝几轮后,剩下变动的内存小到一定量级后,源VMM暂停源VM的运行。
步骤S306,源VMM拷贝最后变动的内存到目的VMM。步骤S308,目的VMM返回拷贝完成应答。步骤S310,目的VMM启动目的VM,目的VM开始运行。步骤S312,源VMM释放源VM资源。步骤S314,目的VM运行起来后发送一个数据包给交换机,该数据包用于通知该交换机虚拟机已迁移到目的物理机,并将该目的物理机的地址告知该交换机。步骤S316,交换机接收到目的VM的数据包,更新端口地址表,开始正常网络通信。由此可见,在步骤S306至步骤S314的一段时间内,交换机并不知道虚拟机已迁移到目的物理机,仍然将业务数据发送到源物理机。这样,会导致在源VMM拷贝最后变动的内存到目的VMM之后,在交换机接收到目的VM的数据包之前,虚拟机与外界的网络连接的中断,从而导致业务数据丢失,并对上层业务造成影响。

发明内容
针对相关技术中,在虚拟机迁移过程中,由于虚拟机与外界的网络连接中断而导致业务数据丢失的问题而提出本发明,为此,本发明提供了一种虚拟机迁移方法及装置,以至少解决上述问题。根据本发明的一个方面,提供了一种虚拟机迁移方法,包括确定将业务从源虚拟机迁移到目的虚拟机;对交换机发送给源虚拟机的业务的业务数据进行缓存;在目的虚拟机启动之后,向目的虚拟机发送缓存的业务数据。优选地,在对交换机发送给源虚拟机的业务的业务数据进行缓存之前,上述方法还包括设置自身的媒体接入控制MAC地址;指示交换机将业务数据发送到MAC地址。优选地,设置自身的MAC地址包括设置自身的MAC地址为目的虚拟机的MAC地址。优选地,指示交换机将业务数据发送到MAC地址包括向交换机发送地址表更新数据包,其中所述地址表更新数据包用于请求所述交换机学习到所述源虚拟机的MAC地址的位置。优选地,在向目的虚拟机发送缓存的业务数据之前,上述方法还包括对源虚拟机发送的业务的业务数据进行缓存。根据本发明的另一方面,提供了一种虚拟机迁移装置,包括确定模块,用于确定将业务从源虚拟机迁移到目的虚拟机;第一缓存模块,用于对交换机发送给源虚拟机的业务的业务数据进行缓存;发送模块,用于在目的虚拟机启动之后,向目的虚拟机发送缓存的业务数据。优选地,上述装置还包括设置模块,用于设置自身的MAC地址;指示模块,用于指示交换机将业务数据发送到MAC地址。优选地,设置模块包括设置子模块,用于设置自身的MAC地址为目的虚拟机的 MAC地址。优选地,指示模块包括发送子模块,用于向交换机发送地址表更新数据包,其中所述地址表更新数据包用于请求所述交换机学习到所述源虚拟机的MAC地址的位置。优选地,上述装置还包括第二缓存模块,用于对源虚拟机发送的业务的业务数据进行缓存。通过本发明,预留有一定空间缓存交换机发给源虚拟机的业务数据,并在目的虚拟机启动之后,将缓存的业务数据发送给目的虚拟机,从而保证在虚拟机迁移过程中业务数据不丢失。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据相关技术的虚拟机系统的示意图;图2是根据相关技术的虚拟机迁移系统的示意图;图3是根据相关技术的虚拟机迁移方法的交互流程图;图4是根据本发明实施例的虚拟机迁移系统的结构框图;图5是根据本发明实施例的虚拟机迁移方法的流程图;图6是根据本发明实施例的虚拟机迁移系统的示意图;图7是根据本发明优选实施例的虚拟机迁移方法的交互流程图;图8是根据本发明实施例的虚拟机迁移装置的结构框图;图9是根据本发明优选实施例一的虚拟机迁移装置的结构框图;图10是根据本发明优选实施例二的虚拟机迁移装置的结构框图;图11是根据本发明优选实施例三的虚拟机迁移装置的结构框图;图12是根据本发明优选实施例四的虚拟机迁移装置的结构框图。
具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明提供了一种虚拟机迁移系统。图4是根据本发明实施例的虚拟机迁移系统的结构框图,如图4所示,包括源VM 42、目的VM 44、交换机46和虚拟机迁移装置48。其中,虚拟机迁移装置48用于对业务数据进行缓存,以保证在虚拟机迁移过程中业务数据不丢失。下面对其进行详细描述。本发明还提供了一种虚拟机迁移方法,图5是根据本发明实施例的虚拟机迁移方法的流程图,如图5所示,包括如下的步骤S502至步骤S506。步骤S502,确定将业务从源VM迁移到目的VM。步骤S504,对交换机发送给源VM的业务的业务数据进行缓存。步骤S506,在目的VM启动之后,向目的VM发送缓存的业务数据。相关技术中,在虚拟机迁移过程中,由于虚拟机与外界的网络连接中断而导致业务数据丢失。本发明实施例中,由虚拟机迁移装置预留有一定空间缓存交换机发给源VM的业务数据,并在目的VM启动之后,将缓存的业务数据发送给目的VM,从而保证在虚拟机迁移过程中业务数据不丢失。优选地,在步骤S504之前,还可以由虚拟机迁移装置设置自身的MAC地址,并指示交换机将业务数据发送到MAC地址。这样,由虚拟机迁移装置直接指示交换机将业务数据
5发送到自身,可以保证业务数据无差错无丢失的缓存,并且其实现方式简单、可靠。需要说明的是,在不背离本优选实施例的设计思想的前提下,本优选实施例还存在多种变形方式, 例如,可以由目的VM设置虚拟机迁移装置的MAC地址,还可以采用例如IP地址等多种地址信息标识虚拟机迁移装置,这些变形方式均应当纳入本发明的保护范围。进一步地,还可以将虚拟机迁移装置的MAC地址设置为目的VM的MAC地址。另外,考虑到交换机通常通过地址表存储各虚拟机的MAC地址,本发明中可以通过向交换机发送地址表更新数据包直接更新该地址表,从而使交换机更新此MAC地址所在的新的端口信息,其实现方式简单、可靠。需要说明的是,本优选实施例中通过发送地址表更新数据包而更新地址表仅仅是一种举例,实际应用中,其它更新地址表的方式,例如在某个数据中增加指示地址表更新的标记或信息,均应当纳入本发明的保护范围。另外,还考虑到在源VM迁移到目的VM的过程中,尤其是在虚拟机迁移装置指示交换机将业务数据发送到自身之前,仍存在源VM接收到业务数据的可能性,所以在向目的VM 发送缓存的业务数据之前,还需缓存源VM发送的业务的业务数据。本优选实施例中,将源 VM接收到的业务数据再次转发到虚拟机迁移装置并缓存,然后由虚拟机迁移装置将先后缓存的业务数据一并发送给目的VM,从而可以进一步保证在虚拟机迁移过程中业务数据万无一失。更进一步地,本发明的虚拟机迁移装置可以设置在目的VM之内,以便在目的VM启动之后,通过目的VM内部的高速数据传输通道向目的VM发送缓存的业务数据。综上,本发明的虚拟机迁移方法可以简述如下在虚拟机迁移装置确定需要进行虚拟机迁移后,在目的物理机中设置虚拟机迁移装置自身的MAC地址(优选方案为把该装置的MAC地址设置为目的虚拟机的MAC地址),并以此地址发送一个数据包给交换机,此时交换机端口获知新的MAC地址,随后的业务数据都将转发到新MAC地址,该虚拟机迁移装置缓存这些业务数据;另外,可能会有业务数据仍然发送给源VM所在的端口,这时源VMM负责将这些业务数据转发给虚拟机迁移装置缓存。当迁移完成时再将这些缓存的业务数据发送给目的VM。这样,迁移过程中数据包不会丢失。下面将结合实例对本发明实施例的实现过程进行详细描述。图6是根据本发明实施例的虚拟机迁移系统的示意图,如图6所示,包括源物理机 62、目的物理机64和交换机66。其中,源物理机62上设置有源VMM 622,源物理机62通过源VMM 622可以运行多个源VM 624。目的物理机64上设置有目的VMM 642,目的物理机64 通过目的VMM 642可以运行多个目的VM 644。将虚拟机从源物理机62迁移到目的物理机 64,需要源VMM 622和目的VMM 642配合完成。另外,目的物理机64上还设置有虚拟网卡 646,该虚拟网卡646对应于上述用于缓存业务数据虚拟机迁移装置,用于保证在虚拟机迁移过程的业务数据不丢失。下面结合图6介绍本发明的一个优选实施例。图7是根据本发明优选实施例的虚拟机迁移方法的交互流程图,如图7所示,包括如下的步骤S702至步骤S722。步骤S702,源VMM持续拷贝源VM内存到目的VMM,目的VMM为目的VM分配内存资源,接收传送过来的内存数据。步骤S704,当拷贝几轮后,剩下变动的内存小到一定量级后,源VMM向目的VMM发送转移网络接口请求。,执行步骤S704的同时,源VMM暂停源VM。步骤S708,目的VMM创建虚拟网卡,绑定虚拟机MAC地址。步骤S710,目的VMM通过虚拟网卡发送一个数据包给交换机,交换机收到此数据包后更新地址表,虚拟网卡开始缓存发送给此MAC地址的数据包。步骤S712,源VMM拷贝最后变动的内存到目的VMM,同时可能还有交换机更新地址表前发送的数据包到达源VMM,此时源VMM负责转发数据包到目的VMM的虚拟网卡。步骤S714,目的VMM返回拷贝完成应答。步骤S716,源VMM释放源VM资源。步骤S718,目的VMM启动目的VM。步骤S720,目的VMM发送缓存的数据包给目的VM。步骤S722,目的VMM释放虚拟网卡。从本优选实施例中可以看出,虚拟机迁移过程中,数据包不会丢失,并保证原有的顺序,同时目的VM启动后,网络立即可用,网络失效时间明显缩短。需要说明的是,本优选实施例中,步骤S708至步骤S710与步骤S712至步骤S716 的顺序不分先后。如果步骤S712至步骤S716在前,对虚拟网卡的创建以及虚拟网卡缓存交换机发送的数据包并没有影响,也可以解决在虚拟机迁移过程中,由于虚拟机与外界的网络连接中断会导致业务数据丢失的问题。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本发明实施例提供了一种虚拟机迁移装置,该虚拟机迁移装置可以用于实现上述虚拟机迁移方法。图8是根据本发明实施例的虚拟机迁移装置的结构框图,如图8所示,包括确定模块81,第一缓存模块82和发送模块83。下面对其结构进行详细介绍。确定模块81,用于确定将业务从源VM迁移到目的VM ;第一缓存模块82,连接至确定模块81,用于对交换机发送给源VM的业务的业务数据进行缓存;发送模块83,连接至第一缓存模块82,用于在目的VM启动之后,向目的VM发送第一缓存模块82缓存的业务数据。图9是根据本发明优选实施例一的虚拟机迁移装置的结构框图,如图9所示,上述虚拟机迁移装置还包括设置模块84和指示模块85。其中,设置模块84,连接至确定模块81,用于设置自身的MAC地址;指示模块85, 连接至设置模块84,用于指示交换机将业务数据发送到设置模块84设置的MAC地址。图10是根据本发明优选实施例二的虚拟机迁移装置的结构框图,如图10所示,设置模块84包括设置子模块842,连接至确定模块81,用于设置自身的MAC地址为目的VM的 MAC地址。图11是根据本发明优选实施例三的虚拟机迁移装置的结构框图,如图11所示,指示模块85包括发送子模块852,连接至设置模块84,用于向交换机发送地址表更新数据包, 其中所述地址表更新数据包用于请求所述交换机学习到所述源虚拟机的MAC地址的位置。 本优选实施例中,通过发送子模块852直接将交换机地址表中的源VM的MAC地址更新为目的VM的MAC地址,其实现方式简单、可靠。图12是根据本发明优选实施例四的虚拟机迁移装置的结构框图,如图12所示,上述装置还包括第二缓存模块86,连接至第一缓存模块82,用于对源VM发送的业务的业务数据进行缓存。本优选实施例中,将源VM接收到的业务数据再次转发到第二缓存模块86缓存,然后由发送模块83将先后缓存的业务数据一并发送给目的VM,从而可以进一步保证在虚拟机迁移过程的业务数据不丢失需要说明的是,装置实施例中描述的虚拟机迁移装置对应于上述的方法实施例, 其具体的实现过程在方法实施例中已经进行过详细说明,在此不再赘述。综上所述,根据本发明的上述实施例,提供了一种虚拟机迁移方法及装置。通过本发明,预留有一定空间缓存交换机发给源VM的业务数据,并在目的VM启动之后,将缓存的业务数据发送给目的VM,从而保证在虚拟机迁移过程网络能够尽快恢复正常运转,业务数据不丢失。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种虚拟机迁移方法,其特征在于包括确定将业务从源虚拟机迁移到目的虚拟机;对交换机发送给所述源虚拟机的所述业务的业务数据进行缓存;在所述目的虚拟机启动之后,向所述目的虚拟机发送所述缓存的业务数据。
2.根据权利要求1所述的方法,其特征在于,在对所述交换机发送给所述源虚拟机的所述业务的业务数据进行缓存之前,还包括设置自身的媒体接入控制MAC地址;指示所述交换机将所述业务数据发送到所述MAC地址。
3.根据权利要求2所述的方法,其特征在于,设置自身的MAC地址包括设置自身的 MAC地址为所述目的虚拟机的MAC地址。
4.根据权利要求2所述的方法,其特征在于,指示所述交换机将所述业务数据发送到所述MAC地址包括向所述交换机发送地址表更新数据包,其中所述地址表更新数据包用于请求所述交换机学习到所述源虚拟机的MAC地址的位置。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在向所述目的虚拟机发送所述缓存的业务数据之前,还包括对所述源虚拟机发送的所述业务的业务数据进行缓存。
6.一种虚拟机迁移装置,其特征在于包括确定模块,用于确定将业务从源虚拟机迁移到目的虚拟机;第一缓存模块,用于对交换机发送给所述源虚拟机的所述业务的业务数据进行缓存;发送模块,用于在所述目的虚拟机启动之后,向所述目的虚拟机发送所述缓存的业务数据。
7.根据权利要求6所述的装置,其特征在于,还包括设置模块,用于设置自身的MAC地址;指示模块,用于指示所述交换机将所述业务数据发送到所述MAC地址。
8.根据权利要求7所述的装置,其特征在于,设置模块包括设置子模块,用于设置自身的MAC地址为所述目的虚拟机的MAC地址。
9.根据权利要求7所述的装置,其特征在于,指示模块包括发送子模块,用于向所述交换机发送地址表更新数据包,其中所述地址表更新数据包用于请求所述交换机学习到所述源虚拟机的MAC地址的位置。
10.根据权利要求6至9中任一项所述的装置,其特征在于,还包括第二缓存模块,用于对所述源虚拟机发送的所述业务的业务数据进行缓存。
全文摘要
本发明公开了一种虚拟机迁移方法及装置,该方法包括确定将业务从源虚拟机迁移到目的虚拟机;对交换机发送给源虚拟机的业务的业务数据进行缓存;在目的虚拟机启动之后,向目的虚拟机发送缓存的业务数据。本发明解决了在虚拟机迁移过程中,由于虚拟机与外界的网络连接中断会导致业务数据丢失的问题,保证了虚拟机迁移过程中业务数据不丢失。
文档编号H04L12/56GK102333037SQ20111032037
公开日2012年1月25日 申请日期2011年10月20日 优先权日2011年10月20日
发明者马苏安 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1