掌桥专利:专业的专利平台
掌桥专利
首页

虚拟机的迁移方法及装置、系统、存储介质

文献发布时间:2023-06-19 12:22:51


虚拟机的迁移方法及装置、系统、存储介质

技术领域

本申请涉及虚拟机热迁移领域,具体而言,涉及一种虚拟机的迁移方法及装置、系统、存储介质。

背景技术

虚拟机热迁移的时候,会根据源端宿主机的配置在目标端宿主机拉起一台相同配置的虚拟机,然后再传输内存和设备状态。如果源端宿主机和目标端宿主机的内存管理方式不同,则无法利用源端宿主机的配置直接在目标端宿主机拉起相同配置的虚拟机(内存分配将失败),也就无法进行虚拟机的内存和设备状态迁移。

针对上述的由于不同宿主机上的内存管理方式不同导致无法进行虚拟机的热迁移的问题,目前尚未提出有效的解决方案。

发明内容

本申请实施例提供了一种虚拟机的迁移方法及装置、系统、存储介质,以至少解决由于不同宿主机上的内存管理方式不同造成的无法进行虚拟机的热迁移的技术问题。

根据本申请实施例的一个方面,提供了一种虚拟机的迁移方法,包括:获取目标设备的内存管理方式;比对目标设备的内存管理方式与源设备的内存管理方式;依据比对结果确定目标设备上运行的目标虚拟机的创建方式;将源设备上运行的源虚拟机的内存和设备状态迁移至按照上述创建方式创建的目标虚拟机。

根据本申请实施例的另一方面,还提供了另一种虚拟机的迁移方法,包括:获取源设备发送的创建目标设备上运行的目标虚拟机的指令;从指令中获取源设备的内存管理方式;依据源设备的内存管理方式创建目标虚拟机。

根据本申请实施例的另一方面,还提供了一种虚拟机的迁移装置,包括:获取模块,用于获取目标设备的内存管理方式;比对模块,用于比对目标设备的内存管理方式与源设备的内存管理方式;确定模块,用于依据比对结果确定目标设备上运行的目标虚拟机的创建方式;迁移模块,用于将源设备上运行的源虚拟机的内存和设备状态迁移至按照上述创建方式创建的目标虚拟机。

根据本申请实施例的再一方面,还提供了一种虚拟机的迁移系统,包括:源设备和目标设备,其中,源设备,用于获取目标设备的内存管理方式;比对目标设备的内存管理方式与源设备的内存管理方式;依据比对结果确定目标设备上运行的目标虚拟机的创建方式;将源设备上运行的源虚拟机的内存和设备状态迁移至按照上述创建方式创建的目标虚拟机;目标设备,用于获取源标设备发送的创建目标虚拟机的指令;从指令中提取源设备的内存管理方式;根据源设备的内存管理方式创建目标虚拟机。

根据本申请实施例的再一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行以上的虚拟机的迁移方法。

根据本申请实施例的再一方面,还提供了一种计算设备,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:获取目标设备的内存管理方式;比对目标设备的内存管理方式与源设备的内存管理方式;依据比对结果确定目标设备上运行的目标虚拟机的创建方式;将源设备上运行的源虚拟机的内存和设备状态迁移至按照上述创建方式创建的目标虚拟机。

在本申请实施例中,提供了一种虚拟机的迁移方法,包括:获取目标设备的内存管理方式;比对目标设备的内存管理方式与源设备的内存管理方式;依据比对结果确定目标设备上运行的目标虚拟机的创建方式;将源设备上运行的源虚拟机的内存和设备状态迁移至按照上述创建方式创建的目标虚拟机,通过针对内存管理方式不同的宿主机,在虚拟机迁移的过程中,创建虚拟机时根据源端宿主机的内存管理方式进行内存类型分配方式的自适应适配,从而实现了能够在内存管理方式不同的宿主机之间实现虚拟机的热迁移的技术效果,进而解决了由于不同宿主机上的内存管理方式不同造成的无法进行虚拟机的热迁移的技术问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1示出了一种用于实现虚拟机的迁移方法的计算机终端(或移动设备)的硬件结构框图;

图2是根据本申请实施例的一种虚拟机的迁移方法的流程图;

图3a是根据本申请实施例的另一种虚拟机的迁移方法的流程图;

图3b是根据本申请实施例的一种进行虚拟机热迁移的示意图;

图4是根据本申请实施例的另一种虚拟机的迁移方法的流程图;

图5是根据本申请实施例的一种虚拟机的迁移装置的结构图;

图6是根据本申请实施例的一种计算机终端的结构框图;

图7是根据本申请实施例的一种虚拟机的迁移系统的结构图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:

虚拟机:指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟计算机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。

热迁移:又称为动态迁移、实时迁移,即虚拟机保存/恢复,通常是将整个虚拟机的运行状态完整保存下来,同时可以快速的恢复到原有硬件平台甚至是不同硬件平台上。恢复以后,虚拟机仍旧平滑运行,用户不会察觉到任何差异。

实施例1

根据本申请实施例,还提供了一种虚拟机的迁移方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例1所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现虚拟机的迁移方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。

存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的虚拟机的迁移方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的虚拟机的迁移方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。

显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。

在上述运行环境下,本申请提供了如图2所示的虚拟机的迁移方法。图2是根据本申请实施例的一种虚拟机的迁移方法的流程图,如图2所示,该方法包括以下步骤:

步骤S202,获取目标设备的内存管理方式。

当前主流的虚拟机热迁移需要在目标端宿主机拉起一台相同配置的虚拟机,具体的,虚拟机的配置主要包括该虚拟机的cpu、内存类型和大小,以及各种设备类型和数量,都和源端宿主机保持一致。而虚拟机的上述配置与虚拟机运行的宿主机有关,由宿主机的内存管理方式决定。因此,首先需要判断源端宿主机和目标端宿主机的内存管理方式是否相同。

根据本申请的一个可选的实施例,在虚拟机迁移的准备阶段,判断目标端宿主机的机型,从而确定宿主机的内存管理方式。即宿主机的机型相同,内存管理方式也相同,宿主机的机型不同,内存管理方式也不同。例如,具体实施时,某代新机型的内存管理方式为vmem内存管理方式,某代旧机型的内存管理方式为传统的大页模式。如果判断出目标端宿主机和源端宿主机的型号均属于某代新机型,可以确定目标端宿主机和源端宿主机的内存管理方式都是vmem内存管理方式。

步骤S204,比对目标设备的内存管理方式与源设备的内存管理方式。

步骤S206,依据比对结果确定目标设备上运行的目标虚拟机的创建方式。

目标端宿主机和源端宿主机的内存管理方式是否相同直接影响在目标端上创建虚拟机的方式。如果宿主机和源端宿主机的内存管理方式相同,可以直接在目标端宿主机上创建虚拟机,待虚拟机创建完成后可以进行虚拟机的热迁移。如果目标端宿主机和源端宿主机的内存管理方式不同,需要根据源端宿主机的内存管理方式在目标端宿主机上创建虚拟机,以便和源端宿主机上运行的虚拟机的配置相同。

步骤S208,将源设备上运行的源虚拟机的内存和设备状态迁移至按照上述创建方式创建的目标虚拟机。

通过上述步骤,通过针对内存管理方式不同的宿主机,在虚拟机迁移的过程中,创建虚拟机时根据源端宿主机的内存管理方式进行内存类型分配方式的自适应适配,从而实现了能够在内存管理方式不同的宿主机之间实现虚拟机的热迁移的技术效果。

根据本申请的一个可选的实施例,步骤S206可以通过以下方法实现:如果目标设备的内存管理方式与源设备的内存管理方式不同,生成自适应标志,自适应标志用于指示源设备的内存管理方式;向目标设备发送创建第一目标虚拟机的第一指令以及自适应标志,其中,第一指令用于指示目标设备根据自适应标志创建第一目标虚拟机,第一目标虚拟机与源虚拟机的配置相同。

如果目标端宿主机的内存管理方式与源端宿主机的内存管理方式不同,则在目标端宿主机创建的虚拟机时需要按照源端宿主机的内存管理方式进行内存类型分配方式的自适应适配。在发起目标端宿主机创建虚拟机的指令时,同时传递一个内存类型适配标志,该标志用于指示源设备的内存管理方式(即发起创建目标虚拟机的指令时,需要将源端宿主机的内存管理方式传递至目标端宿主机)。

目标端宿主机接收到源端宿主机的内存管理方式后,按照源端宿主机的内存管理方式创建目标虚拟机,这样才能保证目标虚拟机的配置与源端宿主机上运行的虚拟机的配置相同。

以一个具体的跨机型迁移实施例为例对上述方法进行说明,图3a是根据本申请实施例的另一种虚拟机的迁移方法的流程图,如图3a所示,包括以下步骤:

步骤S301,开始热迁移准备工作;

步骤S302,获取目标端宿主机的内存分配类型;

步骤S303,与源端宿主机的内存分配类型比较,并设置自适应标志;

步骤S304,根据自适应标志在目标端宿主机拉起新虚拟机;

步骤S305,继续虚拟机热迁移流程。

在执行步骤S301和步骤S302时,判断目标端宿主机的机型(例如判断目标端宿主机的机型属于某代新机型,还是某代老机型),从而确定目标端宿主机的内存管理方式(新机型采用最新的vmem内存管理方式,老机型采用传统的大页模式的内存管理方式)。

执行步骤S303时通过判断目标端宿主机的内存管理方式与源端宿主机的内存管理方式是否相同,确定目标端宿主机创建虚拟机时是否需要进行内存类型适配,如果二者的内存管理方式不同,目标端宿主机创建虚拟机时需要进行内存类型适配,设置相应的内存类型适配标志(该标志用于指示虚拟机从内存管理方式为传统大页模式的宿主机迁移到内存管理方式为最新的vmem模式的宿主机);在源端宿主机发起目标端创建虚拟机的指令时,同时传递内存类型适配标志。

在执行步骤S304时,目标端宿主机接收到虚拟机创建指令后,根据内存类型适配标志,从源端宿主机的内存管理方式对应的XML配置文件中提取源端宿主机上运行的虚拟机的配置信息,作为目标端宿主机创建虚拟机时的配置信息,该配置信息中包含分配内存的类型等信息(例如目标端宿主机也需要以vmem的方式申请内存);目标端宿主机利用调整后的配置信息,创建新内存分配类型的虚拟机(vmem方式管理的内存)。

步骤S305,目标端宿主机创建新配置的虚拟机后,确保在qemu层面新旧内存类型的抽象一致(抽象指类或者数据结构),不同内存类型是从操作系统层面看到的,运行虚拟机的qemu进程会对分配的内存统一进行抽象,这样就可以兼容原来的内存迁移方式,源端宿主机会自动保存内存信息,并传递到目标端宿主机载入到新类型的内存中,从而继续进行剩余的虚拟机热迁移流程。当然,这种跨内存类型的迁移方法,并不局限于上述普通大页和vmem内存之间的迁移,还可以用于后续其他新的内存类型间的迁移。

在本申请的一个可选的实施例中,步骤S206还可以通过以下方法实现:如果目标设备的内存管理方式与源设备的内存管理方式相同,向目标设备发送创建第二目标虚拟机的第二指令,第二指令用于指示目标设备直接创建第二目标虚拟机,第二目标虚拟机与源虚拟机的配置相同。

如果目标端宿主机的内存管理方式与源端宿主机的内存管理方式相同,则可以直接在目标端宿主机创建目标虚拟机,此时,源端宿主机仅向目标端宿主机发起创建目标虚拟机的指令,不需要发送内存类型适配标志。目标端宿主机收到虚拟机创建指令后创建目标虚拟机,创建的该目标虚拟机与源端宿主机上运行的虚拟机的配置也相同。

在本申请的一个可选的实施例中,步骤S208通过以下方法实现:在收到目标设备发送的目标虚拟机创建完成的指令后,将源虚拟机的内存和设备状态迁移至目标虚拟机。

目标虚拟机创建完成后,目标端宿主机向源端宿主机发送虚拟机创建完成的指令,源端宿主机接收到该指令后,将源端宿主机上运行的虚拟机的内存和设备状态迁移至目标虚拟机(即进行虚拟机的热迁移)。

根据本申请的一个可选的实施例,将源设备上运行的源虚拟机的内存和设备状态迁移至按照上述创建方式创建的目标虚拟机,通过以下方法实现:将源虚拟机设置为第一工作状态,第一工作状态用于表征在将源虚拟机的内存和设备状态迁移至目标虚拟机的过程中,源虚拟机允许接收写操作数据;在源虚拟机的内存数量低于预设阈值的情况下,将源虚拟机设置为第二工作状态,第二工作状态用于表征在将源虚拟机的内存和设备状态迁移至目标虚拟机的过程中,源虚拟机禁止接收写操作数据;源虚拟机剩余的内存和设备状态迁移至目标虚拟机。

图3b是根据本申请实施例的一种进行虚拟机热迁移的示意图,如图3b所示,设备1上运行的源端虚拟机将内存和设备状态拷贝到设备2上运行的目标端虚拟机,并将源端虚拟机的内存设置为自读(即上文中提到的第一工作状态)以便记录迁移过程中再次发生的写操作,这样经过多次迭代将内存和设备状态拷贝至目标端虚拟机。当内存脏页小于一定阈值时,将源端虚拟机的内存设置为paused状态(即上述第二工作状态),并进行最后一轮内存脏页拷贝。

根据本申请的一个可选的实施例,将源虚拟机剩余的内存和设备状态迁移至目标虚拟机之后,上述方法还包括:在收到目标虚拟机发送的反馈指令后,销毁源虚拟机,反馈指令用于指示目标虚拟机成功接收源设备上运行虚拟机的全部内存和设备状态。

在将源虚拟机的全部内存和设备状态迁移至目标虚拟机后,销毁源虚拟机。同时将目标虚拟机的状态由禁止状态(paused)设置为运行状态(running)。至此,虚拟机的整个迁移过程完成。

在本申请的一个可选的实施例中,在执行步骤S202之前,还需要确定所述目标设备的型号;依据目标设备的型号确定目标设备的内存管理方式。在本申请提供的实施例中,通过宿主机的型号确定宿主机的内存管理方式。

通过上述方法可以实现在不同内存管理方式的异构宿主机平台上,进行虚拟机的热迁移;宿主机底层内存类型变动,对虚拟机无感知;并且在不改变原热迁移流程的前提下,利用新类型内存的虚拟机继续进行热迁移。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的虚拟机的迁移方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

实施例2

图4是根据本申请实施例的另一种虚拟机的迁移方法的流程图,如图4所示,该方法包括以下步骤:

步骤S402,获取源设备发送的创建目标设备上运行的目标虚拟机的指令。

步骤S404,从上述指令中获取源设备的内存管理方式。

步骤S406,依据所述源设备的内存管理方式创建所述目标虚拟机。

步骤S402至步骤S402提供了另一种虚拟机的迁移方法,其中,有关虚拟机迁移的相关内容可以参见图2所示实施例的相关描述,此处不再赘述。这里仅对目标段宿主机在虚拟机热迁移过程中执行的操作进行说明。

目标端宿主机接收到源端宿主机发送的创建虚拟机的指令后,从指令中获取源端宿主机的内存管理方式,按照源端宿主机的内存管理方式创建目标虚拟机,使目标虚拟机与源端宿主机上运行的虚拟机的配置相同。

根据本申请的一个可选的实施例,在步骤S406执行完成之后,向源设备发送目标虚拟机创建完成的指令;接收源设备上运行的源虚拟机的内存和设备状态,并将源虚拟机的内存和设备状态存储至目标虚拟机。

在本申请的一个可选的实施例中,接收源设备上运行的源虚拟机的内存和设备状态包括以下步骤:在目标虚拟机创建完成后,将目标虚拟机设置为第三工作状态,第三工作状态用于表征接收源虚拟机的内存和设备状态的过程中,目标虚拟机处于禁用状态;在目标虚拟机接收源虚拟机的全部内存和设备状态后,将目标虚拟机设置为第四工作状态,第四工作状态用于表征目标虚拟机处于正常工作状态。

目标虚拟机创建完成后,处于paused状态(上述第三工作状态),目标端宿主机向源端宿主机发送目标虚拟机创建完成的指令,源端虚拟机接收到该指令后向目标虚拟机迁移源虚拟机的内存和设备状态。在目标虚拟机接收源虚拟机的全部内存和设备状态后,将目标虚拟机的状态由paused状态改为running状态(上述第四工作状态)。

根据本申请的一个可选的实施例,接收源设备上运行的源虚拟机的内存和设备状态还包括:在目标虚拟机成功接收源虚拟机的全部内存和设备状态后,向源设备发送反馈指令。

在目标虚拟机成功接收源虚拟机的全部内存和设备状态后,向源端宿主机发送一个反馈指令,指示虚拟机热迁移完成,以便使源宿主机在虚拟机前迁移完成后,销毁源虚拟机。

根据本申请的一个可选的实施例,如果上述所述指令中未携带所述源设备的内存管理方式,直接在目标设备上创建目标虚拟机。

如果目标端宿主机从创建目标虚拟机的指令中没有获取到源端宿主机的内存管理方式,说明目标端宿主机与源端宿主机的内存管理方式相同,可以直接创建目标虚拟机即可。

实施例3

根据本申请实施例,还提供了一种用于实施上述虚拟机迁移方法的迁移装置,图5是根据本申请实施例的一种虚拟机的迁移装置的结构图,如图5所示,该装置包括:

获取模块50,用于获取目标设备的内存管理方式;

比对模块52,用于比对所述目标设备的内存管理方式与源设备的内存管理方式;

确定模块54,用于依据比对结果确定所述目标设备上运行的目标虚拟机的创建方式;

迁移模块56,用于将源设备上运行的源虚拟机的内存和设备状态迁移至按照上述创建方式创建的目标虚拟机。

此处需要说明的是,上述获取模块50、比对模块52、确定模块54、和迁移模块56对应于实施例1中的步骤S202至步骤S208,四个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。

实施例4

本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。

在本实施例中,上述计算机终端可以执行应用程序的虚拟机的迁移方法中以下步骤的程序代码:获取目标设备的内存管理方式;比对目标设备的内存管理方式与源设备的内存管理方式;依据比对结果确定目标设备上运行的目标虚拟机的创建方式;将源设备上运行的源虚拟机的内存和设备状态迁移至按照上述创建方式创建的目标虚拟机。

根据本申请的一个可选的实施例,上述计算机终端还可以执行应用程序的虚拟机的迁移方法中以下步骤的程序代码:获取源设备发送的创建目标设备上运行的目标虚拟机的指令;从指令中获取源设备的内存管理方式;依据源设备的内存管理方式创建目标虚拟机。

可选地,图6是根据本申请实施例的一种计算机终端的结构框图。如图6所示,该计算机终端600可以包括:一个或多个(图中仅示出一个)处理器602、存储器604、以及射频模块、音频模块以及显示屏。

其中,存储器604可用于存储软件程序以及模块,如本申请实施例中的安全漏洞检测方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的虚拟机的迁移方法。存储器604可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端600。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

处理器602可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取目标设备的内存管理方式;比对目标设备的内存管理方式与源设备的内存管理方式;依据比对结果确定目标设备上运行的目标虚拟机的创建方式;将源设备上运行的源虚拟机的内存和设备状态迁移至按照上述创建方式创建的目标虚拟机。

可选的,上述处理器还可以执行如下步骤的程序代码:如果目标设备的内存管理方式与源设备的内存管理方式不同,生成自适应标志,自适应标志用于指示源设备的内存管理方式;向目标设备发送创建第一目标虚拟机的第一指令以及自适应标志,其中,第一指令用于指示目标设备根据自适应标志创建第一目标虚拟机,第一目标虚拟机与源虚拟机的配置相同。

可选的,上述处理器还可以执行如下步骤的程序代码:如果目标设备的内存管理方式与源设备的内存管理方式相同,向目标设备发送创建第二目标虚拟机的第二指令,第二指令用于指示目标设备直接创建第二目标虚拟机,第二目标虚拟机与源虚拟机的配置相同。

可选的,上述处理器还可以执行如下步骤的程序代码:在收到目标设备发送的目标虚拟机创建完成的指令后,将源虚拟机的内存和设备状态迁移至目标虚拟机。

可选的,上述处理器还可以执行如下步骤的程序代码:将源虚拟机设置为第一工作状态,第一工作状态用于表征在将源虚拟机的内存和设备状态迁移至目标虚拟机的过程中,源虚拟机允许接收写操作数据;在源虚拟机的内存数量低于预设阈值的情况下,将源虚拟机设置为第二工作状态,第二工作状态用于表征在将源虚拟机的内存和设备状态迁移至目标虚拟机的过程中,源虚拟机禁止接收写操作数据;将源虚拟机剩余的内存和设备状态迁移至目标虚拟机。

可选的,上述处理器还可以执行如下步骤的程序代码:在收到目标虚拟机发送的反馈指令后,销毁源虚拟机,反馈指令用于指示目标虚拟机成功接收源设备上运行虚拟机的全部内存和设备状态。

可选的,上述处理器还可以执行如下步骤的程序代码:确定目标设备的型号;依据目标设备的型号确定目标设备的内存管理方式。

根据本申请的一个可选的实施例,处理器602还可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取源设备发送的创建目标设备上运行的目标虚拟机的指令;从指令中获取源设备的内存管理方式;依据源设备的内存管理方式创建目标虚拟机。

可选的,上述处理器还可以执行如下步骤的程序代码:向源设备发送目标虚拟机创建完成的指令;接收源设备上运行的源虚拟机的内存和设备状态,并将源虚拟机的内存和设备状态存储至目标虚拟机。

可选的,上述处理器还可以执行如下步骤的程序代码:在目标虚拟机创建完成后,将目标虚拟机设置为第三工作状态,第三工作状态用于表征接收源虚拟机的内存和设备状态的过程中,目标虚拟机处于禁用状态;在目标虚拟机接收源虚拟机的全部内存和设备状态后,将目标虚拟机设置为第四工作状态,第四工作状态用于表征目标虚拟机处于正常工作状态。

可选的,上述处理器还可以执行如下步骤的程序代码:在目标虚拟机成功接收源虚拟机的全部内存和设备状态后,向源设备发送反馈指令。

可选的,上述处理器还可以执行如下步骤的程序代码:如果指令中未携带源设备的内存管理方式,直接在目标设备上创建目标虚拟机。

采用本申请实施例,提供了一种虚拟机的迁移方法。通过针对内存管理方式不同的宿主机,在虚拟机迁移的过程中,创建虚拟机时根据源端宿主机的内存管理方式进行内存类型分配方式的自适应适配,从而达到了能够在内存管理方式不同的宿主机之间实现虚拟机的热迁移的目的,进而解决了由于不同宿主机上的内存管理方式不同造成的无法进行虚拟机的热迁移的技术问题。

本领域普通技术人员可以理解,图6所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图6其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图6中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图6所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。

本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例1所提供的虚拟机的迁移方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取目标设备的内存管理方式;比对目标设备的内存管理方式与源设备的内存管理方式;依据比对结果确定目标设备上运行的目标虚拟机的创建方式;将源设备上运行的源虚拟机的内存和设备状态迁移至按照上述创建方式创建的目标虚拟机。

可选地,上述介质还被设置为存储用于执行以下步骤的程序代码:如果目标设备的内存管理方式与源设备的内存管理方式不同,生成自适应标志,自适应标志用于指示源设备的内存管理方式;向目标设备发送创建第一目标虚拟机的第一指令以及自适应标志,其中,第一指令用于指示目标设备根据自适应标志创建第一目标虚拟机,第一目标虚拟机与源虚拟机的配置相同。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:如果目标设备的内存管理方式与源设备的内存管理方式相同,向目标设备发送创建第二目标虚拟机的第二指令,第二指令用于指示目标设备直接创建第二目标虚拟机,第二目标虚拟机与源虚拟机的配置相同。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在收到目标设备发送的目标虚拟机创建完成的指令后,将源虚拟机的内存和设备状态迁移至目标虚拟机。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:将源虚拟机设置为第一工作状态,第一工作状态用于表征在将源虚拟机的内存和设备状态迁移至目标虚拟机的过程中,源虚拟机允许接收写操作数据;在源虚拟机的内存数量低于预设阈值的情况下,将源虚拟机设置为第二工作状态,第二工作状态用于表征在将源虚拟机的内存和设备状态迁移至目标虚拟机的过程中,源虚拟机禁止接收写操作数据;将源虚拟机剩余的内存和设备状态迁移至目标虚拟机。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在收到目标虚拟机发送的反馈指令后,销毁源虚拟机,反馈指令用于指示目标虚拟机成功接收源设备上运行虚拟机的全部内存和设备状态。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:确定目标设备的型号;依据目标设备的型号确定目标设备的内存管理方式。

根据本申请的一个可选的实施例,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:获取源设备发送的创建目标设备上运行的目标虚拟机的指令;从指令中获取源设备的内存管理方式;依据源设备的内存管理方式创建目标虚拟机。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:向源设备发送目标虚拟机创建完成的指令;接收源设备上运行的源虚拟机的内存和设备状态,并将源虚拟机的内存和设备状态存储至目标虚拟机。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在目标虚拟机创建完成后,将目标虚拟机设置为第三工作状态,第三工作状态用于表征接收源虚拟机的内存和设备状态的过程中,目标虚拟机处于禁用状态;在目标虚拟机接收源虚拟机的全部内存和设备状态后,将目标虚拟机设置为第四工作状态,第四工作状态用于表征目标虚拟机处于正常工作状态。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在目标虚拟机成功接收源虚拟机的全部内存和设备状态后,向源设备发送反馈指令。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:如果指令中未携带源设备的内存管理方式,直接在目标设备上创建目标虚拟机。

实施例5

图7是根据本申请实施例的一种虚拟机的迁移系统的结构图,如图7所示,该系统包括:

源设备70和目标设备72,其中,

源设备70,用于获取目标设备的内存管理方式;比对目标设备的内存管理方式与源设备的内存管理方式;依据比对结果确定目标设备上运行的目标虚拟机的创建方式;将源设备上运行的源虚拟机的内存和设备状态迁移至按照上述创建方式创建的目标虚拟机。

目标设备72,用于获取源标设备70发送的创建目标虚拟机的指令;从指令中提取源设备70的内存管理方式;根据源设备70的内存管理方式创建目标虚拟机。

需要说明的是,上述源设备70和目标设备72是运行虚拟机的计算机设备,图7所示实施例的优选实施方式可以参见图2至图4所示实施例的相关描述,此处不再赘述。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

相关技术
  • 虚拟机热迁移的方法、虚拟机迁移管理装置及系统
  • 虚拟机热迁移网络中断的优化方法、装置、设备、存储介质和系统
技术分类

06120113270463