一种虚拟机内存迁移方法及其装置与流程

文档序号:13735844阅读:1033来源:国知局
一种虚拟机内存迁移方法及其装置与流程

本发明涉及计算机技术,尤指一种虚拟机内存迁移方法及其装置。



背景技术:

虚拟机迁移是指将虚拟机从一台物理机迁移到另一台物理机上运行,其中,虚拟机在不同物理机之间的迁移分为两种:离线迁移和在线迁移。

在线迁移的现有技术中,基于虚拟机的内存迁移,首先,将所有的虚拟机内存页面标记为“脏页面”,接着,通过多轮的内存迭代同步过程进行内存迁移,具体的,第一轮内存同步需要复制全部的虚拟机内存数据,后续的每一轮同步只需要复制上一轮同步过程中被虚拟机修改的脏页面数据。经过若干次迭代后,如果剩余脏页面数小于预设最小值或迭代次数大于预设最大值,则虚拟机停止迭代及停止复制剩余脏页面,并在目的主机将虚拟机拉起,完成迁移。

然而,内存数据较多时,需要将大量的数据进行传输,会导致虚拟机迁移时间较长。



技术实现要素:

为了解决上述技术问题,本发明提供了一种虚拟机内存迁移方法及其装置,用以解决获取数据的效率较低的问题。

为了达到本发明目的,本发明提供了一种虚拟机内存迁移方法,包括:

获取虚拟机在源物理机内存存储的第一数据;

将所述第一数据进行多线程压缩,获得所述第一压缩数据;

将所述第一压缩数据向目标物理机进行多线程发送。

进一步的,所述将所述第一压缩数据向目标物理机进行多线程发送之后,还包括:

将第二数据进行多线程压缩,获得所述第二压缩数据;

将所述第二压缩数据与所述第一压缩数据进行校验,确定校验后的差异数据;

将所述差异数据向所述目标物理机进行多线程发送。

进一步的,所述将所述第一压缩数据向目标物理机进行多线程发送之后,还包括:

将所述第一压缩数据存储到缓存空间,所述缓存空间包括在所述源物理机设置的空间。

进一步的,还包括:

设置多线程压缩的级别及数量;或者

设置多线程解压缩的级别及数量,所述多线程解压缩包括目标物理机对接收数据进行解压缩。

进一步的,所述将所述第一数据进行多线程压缩,获得所述第一压缩数据之后,还包括:

通过libvirt迁移接口执行所述将所述第一压缩数据发送到目标物理机。

本发明提供了一种虚拟机内存迁移装置,包括:

获取模块,用于获取虚拟机在源物理机内存存储的第一数据;

处理模块,用于将所述第一数据进行多线程压缩,获得所述第一压缩数据;

发送模块,用于将所述第一压缩数据向目标物理机进行多线程发送。

进一步的,所述处理模块,还用于将第二数据进行多线程压缩,获得所述第二压缩数据;将所述第二压缩数据与所述第一压缩数据进行校验,确定校验后的差异数据;

所述发送模块,还用于将所述差异数据向所述目标物理机进行多线程发送。

进一步的,所述处理模块,还用于将所述第一压缩数据存储到缓存空间,所述缓存空间包括在所述源物理机设置的空间。

进一步的,所述处理模块,还用于设置多线程压缩的级别及数量;或者,设置多线程解压缩的级别及数量,所述多线程解压缩包括目标物理机对接收数据进行解压缩。

进一步的,所述发送模块,用于通过libvirt迁移接口执行所述将所述第一压缩数据发送到目标物理机。

本发明提供的一种虚拟机内存迁移方法及其装置,通过获取虚拟机在源物理机内存存储的第一数据;将所述第一数据进行多线程压缩,获得所述第一压缩数据;将所述第一压缩数据向目标物理机进行多线程发送。实现将第一数据在多个线程上同时向目标物理机传输,从而节省了虚拟机从源物理机向目标物理机进行内存迁移的时间。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明虚拟机内存迁移方法一实施例的流程示意图;

图2为本发明虚拟机内存迁移装置一实施例的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

本发明实施例提供的虚拟机内存迁移方法具体可以应用于虚拟机内存的在线迁移时。本实施例提供的虚拟机内存迁移方法可以通过虚拟机内存迁移装置来执行,该虚拟机内存迁移装置可以集成在物理机,或者单独设置,其中,该虚拟机内存迁移装置可以采用软件和/或硬件的方式来实现。以下对本实施例提供的虚拟机内存迁移方法及装置进行详细地说明。

图1为本发明虚拟机内存迁移方法一实施例的流程示意图;如图1所示,本实施例的执行主体可以是虚拟机内存迁移装置,本发明提供的虚拟机内存迁移方法,包括:

步骤101、获取虚拟机在源物理机内存存储的第一数据。

本实施例的适用场景包括:虚拟机将一物理机,即源物理机内存存储的数据迁移到另一物理机,即目标物理机运行时,其中,源物理机可以包括虚拟机中的主机。

步骤102、将所述第一数据进行多线程压缩,获得所述第一压缩数据。

步骤103、将所述第一压缩数据向目标物理机进行多线程发送。

具体的,通过对第一数据的多线程压缩,可实现将第一数据在多个线程上同时向目标物理机传输,从而节省了源物理机向目标物理机进行内存迁移的时间。

在本实施例中,通过获取源物理机内存存储的第一数据;将所述第一数据进行多线程压缩,获得所述第一压缩数据;将所述第一压缩数据向目标物理机进行多线程发送。实现将第一数据在多个线程上同时向目标物理机传输,从而节省了虚拟机从源物理机向目标物理机进行内存迁移的时间。

进一步的,在上述实施例的基础上,所述将所述第一压缩数据向目标物理机进行多线程发送之后,还包括:

将第二数据进行多线程压缩,获得所述第二压缩数据;

将所述第二压缩数据与所述第一压缩数据进行校验,确定校验后的差异数据;

将所述差异数据向所述目标物理机进行多线程发送。

本实施例中的第二数据包括当前虚拟机在源物理机内存存储的数据,第一压缩数据包括前一次虚拟机从源物理机向目标物理机迁移的内存数据,通过将所述第二压缩数据与所述第一压缩数据进行校验,确定校验后的差异数据;实现在上一次迁移的基础上,仅迁移差异数据,从而节省了迁移的数据量,节省了迁移时间。进而,将差异数据进行多线程传输,进一步的节省了迁移时间。

优选的,所述将所述第一压缩数据向目标物理机进行多线程发送之后,还包括:

将所述第一压缩数据存储到缓存空间,所述缓存空间包括在所述源物理机设置的空间。

进一步的,在上述实施例的基础上,本实施例还包括:

设置多线程压缩的级别及数量;或者

设置多线程解压缩的级别及数量,所述多线程解压缩包括目标物理机对接收数据进行解压缩。

进一步的,在上述实施例的基础上,所述将所述第一数据进行多线程压缩,获得所述第一压缩数据之后,还包括:

通过libvirt迁移接口执行所述将所述第一压缩数据发送到目标物理机。

图2为本发明虚拟机内存迁移装置一实施例的结构示意图;如图2所示,本发明提供的虚拟机内存迁移装置,包括:获取模块21、处理模块22和发送模块23。其中,

获取模块21,用于获取虚拟机在源物理机内存存储的第一数据;

处理模块22,用于将所述第一数据进行多线程压缩,获得所述第一压缩数据;

发送模块23,用于将所述第一压缩数据向目标物理机进行多线程发送。

在本实施例中,通过获取虚拟机在源物理机内存存储的第一数据;将所述第一数据进行多线程压缩,获得所述第一压缩数据;将所述第一压缩数据向目标物理机进行多线程发送。实现将第一数据在多个线程上同时向目标物理机传输,从而节省了虚拟机从源物理机向目标物理机进行内存迁移的时间。

进一步的,在上述实施例的基础上,所述处理模块22,还用于将第二数据进行多线程压缩,获得所述第二压缩数据;将所述第二压缩数据与所述第一压缩数据进行校验,确定校验后的差异数据;

所述发送模块23,还用于将所述差异数据向所述目标物理机进行多线程发送。

进一步的,在上述实施例的基础上,所述处理模块22,还用于将所述第一压缩数据存储到缓存空间,所述缓存空间包括在所述源物理机设置的空间。

进一步的,在上述实施例的基础上,所述处理模块22,还用于设置多线程压缩的级别及数量;或者,设置多线程解压缩的级别及数量,所述多线程解压缩包括目标物理机对接收数据进行解压缩。

进一步的,在上述实施例的基础上,所述发送模块23,用于通过libvirt迁移接口执行所述将所述第一压缩数据发送到目标物理机。

本实施例中的第二数据包括当前虚拟机在源物理机内存存储的数据,第一压缩数据包括前一次虚拟机从源物理机向目标物理机迁移的内存数据,通过将所述第二压缩数据与所述第一压缩数据进行校验,确定校验后的差异数据;实现在上一次迁移的基础上,仅迁移差异数据,从而节省了迁移的数据量,节省了迁移时间。进而,将差异数据进行多线程传输,进一步的节省了迁移时间。

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1