CN115629844A - 一种虚拟机迁移方法、系统、设备及存储介质 - Google Patents
一种虚拟机迁移方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN115629844A CN115629844A CN202211408276.4A CN202211408276A CN115629844A CN 115629844 A CN115629844 A CN 115629844A CN 202211408276 A CN202211408276 A CN 202211408276A CN 115629844 A CN115629844 A CN 115629844A
- Authority
- CN
- China
- Prior art keywords
- last round
- acceleration
- equipment
- state data
- dirty pages
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种虚拟机迁移方法、系统、设备及存储介质。在源宿主机上连接第一加速设备,在目的宿主机上连接第二加速设备,在虚拟机的迁移过程中,第一加速设备可将源宿主机中最后一轮脏页的源地址信息发送至第二加速设备,并由第二加速设备承担最后一轮脏页的迁移工作;发送完源地址信息后第一加速设备得以空闲,并可承担设备状态数据的迁移工作。这样,第二加速设备承担的最后一轮脏页的迁移工作和第一加速设备承担的设备状态数据的迁移工作可并行执行,而不再需要等待脏页迁移完成后再执行设备状态数据的迁移,这相当于隐藏了设备状态数据迁移工作中的部分或全部用时,大大缩短了虚拟机的暂停时间,从而可有效提高虚拟机迁移效率。
Description
技术领域
本申请涉及虚拟化技术领域,尤其涉及一种虚拟机迁移方法、系统、设备及存储介质。
背景技术
在云计算领域中,云服务器中承载着越来越多样的客户需求,因此,领域内对云服务器的性能提出更高的要求。其中,IO性能是核心性能指标之一。面对不断提高的IO性能需求,领域内不断为云服务器提出新的IO设备。为了支持应用层的并发访问性能,云服务器上各个虚拟机对应的设备队列的数量级已经提升到了万级甚至更高,因此,相应的设备状态的数据量特别庞大。
目前,需要在最后一轮脏页完成迁移后,才能串行地进行设备状态迁移,且设备状态的迁移工作需要在虚拟机暂停状态下进行。而由于设备状态的数量量特别庞大,这导致虚拟机的暂停状态持续时间太久,大大拉低了虚拟机的迁移效率。
发明内容
本申请的多个方面提供一种虚拟机迁移方法、系统、设备及存储介质,用以提高虚拟机的迁移效率。
本申请实施例提供一种虚拟机迁移系统,包括:源宿主机及其对应的第一加速设备,和目的宿主机及其对应的第二加速设备;
所述第一加速设备,用于在针对目标虚拟机的迁移过程中,将所述源宿主机中的最后一轮脏页的源地址信息发送至所述第二加速设备;从所述源宿主机中读取所述目标虚拟机下最终的设备状态数据并发送至所述第二加速设备;
所述第二加速设备,用于基于接收到的所述源地址信息从所述源宿主机中获取所述最后一轮脏页;在获取所述最后一轮脏页的过程中,并行接收所述第一加速设备发送的所述设备状态数据;将所述最后一轮脏页和所述设备状态数据写入所述目的宿主机。
本申请实施例还提供一种虚拟机迁移方法,适用于源宿主机对应的第一加速设备,所述方法包括:
在针对目标虚拟机的迁移过程中,从所述源宿主机中获取最后一轮脏页的源地址信息;
将所述源地址信息发送至目的宿主机所对应的第二加速设备,以供所述第二加速设备基于所述源地址信息从所述源宿主机中获取所述最后一轮脏页;
从所述源宿主机中读取所述目标虚拟机下最终的设备状态数据;
在所述第二加速设备获取所述最后一轮脏页的过程中,并行将所述设备状态数据发送至所述第二加速设备,以供所述第二加速设备将所述最后一轮脏页和所述设备状态数据写入所述目的宿主机。
本申请实施例还提供一种虚拟机迁移方法,适用于目的宿主机对应的第二加速设备,所述方法包括:
在针对目标虚拟机的迁移过程中,接收源宿主机对应的第一加速设备所发送的最后一轮脏页的源地址信息;
基于所述源地址信息从所述源宿主机中获取所述最后一轮脏页;
在获取所述最后一轮脏页的过程中,并行接收所述第一加速设备发送的所述目标虚拟机下最终的设备状态数据;
将所述最后一轮脏页和所述设备状态数据写入所述目的宿主机。
本申请实施例还提供一种加速设备,与源宿主机连接,包括迭代组件和通信组件;
所述迭代组件,用于在针对目标虚拟机的迁移过程中,从所述源宿主机中获取最后一轮脏页的源地址信息;将所述源地址信息发送至目的宿主机所对应的第二加速设备,以供所述第二加速设备基于所述源地址信息从所述源宿主机中获取所述最后一轮脏页;
所述通信组件,用于从所述源宿主机中读取所述目标虚拟机下最终的设备状态数据;在所述第二加速设备获取所述最后一轮脏页的过程中,并行将所述设备状态数据发送至所述第二加速设备,以供所述第二加速设备将所述最后一轮脏页和所述设备状态数据写入所述目的宿主机。
本申请实施例还提供一种加速设备,与源宿主机连接,包括迭代组件和通信组件;
所述迭代组件,用于在针对目标虚拟机的迁移过程中,接收源宿主机对应的第一加速设备所发送的最后一轮脏页的源地址信息并提供给所述通信组件;在利用所述通信组件获取所述最后一轮脏页的过程中,并行接收所述第一加速设备发送的所述目标虚拟机下最终的设备状态数据;将所述设备状态数据写入所述目的宿主机
所述通信组件,用于基于所述源地址信息从所述源宿主机中获取所述最后一轮脏页;将所述最后一轮脏页写入所述目的宿主机。
本申请实施例还提供一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行前述的虚拟机迁移方法。
在本申请实施例中,在源宿主机上连接第一加速设备,在目的宿主机上连接第二加速设备,在虚拟机的迁移过程中,第一加速设备可将源宿主机中最后一轮脏页的源地址信息发送至第二加速设备,并由第二加速设备承担最后一轮脏页的迁移工作;发送完源地址信息后第一加速设备得以空闲,并可承担设备状态数据的迁移工作。这样,第二加速设备承担的最后一轮脏页的迁移工作和第一加速设备承担的设备状态数据的迁移工作可并行执行,而不再需要等待脏页迁移完成后再执行设备状态数据的迁移,这相当于隐藏了设备状态数据迁移工作中的部分或全部用时,大大缩短了虚拟机的暂停时间,从而可有效提高虚拟机迁移效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一示例性实施例提供的一种虚拟机的热迁移系统的结构示意图;
图2为本申请一示例性实施例提供的另一种虚拟机迁移系统的结构示意图;
图3为本申请一示例性实施例提供的又一种虚拟机迁移系统的结构示意图;
图4为本申请另一示例性实施例提供的一种虚拟机迁移方法的流程示意图;
图5为本申请另一示例性实施例提供的另一种虚拟机迁移方法的流程示意图;
图6为本申请又一示例性实施例提供的一种加速设备的结构示意图;
图7为本申请又一示例性实施例提供的另一种加速设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,在虚拟机迁移过程中,需要在最后一轮脏页完成迁移后,才能串行地进行设备状态迁移,导致虚拟机暂停时间过长。为此,本申请的一些实施例中:在源宿主机上连接第一加速设备,在目的宿主机上连接第二加速设备,在虚拟机的迁移过程中,第一加速设备可将源宿主机中最后一轮脏页的源地址信息发送至第二加速设备,并由第二加速设备承担最后一轮脏页的迁移工作;发送完源地址信息后第一加速设备得以空闲,并可承担设备状态数据的迁移工作。这样,第二加速设备承担的最后一轮脏页的迁移工作和第一加速设备承担的设备状态数据的迁移工作可并行执行,而不再需要等待脏页迁移完成后再执行设备状态数据的迁移,这相当于隐藏了设备状态数据迁移工作中的部分或全部用时,大大缩短了虚拟机的暂停时间,从而可有效提高虚拟机迁移效率。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请一示例性实施例提供的一种虚拟机的热迁移系统的结构示意图。如图1所示,该系统包括:源宿主机及其对应的第一加速设备,和目的宿主机及其对应的第二加速设备。其中,源宿主机是指需要迁移的虚拟机所在的宿主机,目的宿主机则是需要迁移的虚拟机所将迁移到的宿主机。
在虚拟机的迁移过程中,需要通过多轮迭代,将内存页发送至目的宿主机,迭代第一轮发送所有内存页,接下来每一轮发送上一轮预拷贝过程中的脏页(也即发生变化的内存页),最后一轮是停机拷贝阶段,在此阶段中,正在迁移的虚拟机将被暂停,并停止其对应的内存更新,之后可将最后一轮脏页整体拷贝到目的宿主机上。在虚拟机的迁移过程中,还涉及到设备状态数据的迁移。其中,设备状态数据是指虚拟机上的设备运行过程中,用于记录设备运行状态的关键信息。设备状态数据通常存储在设备内部的寄存器中,如设备的pci配置空间、bar空间等。设备状态数据的迁移也需要在虚拟机暂停之后进行。本实施例中,可基于在源宿主机和目的宿主机上分别连接的加速设备,实现对最后一轮脏页和设备状态数据的并行迁移,以节省虚拟机暂停时长。
为此,参考图1,本实施例中,第一加速设备可在针对目标虚拟机的迁移过程中,将源宿主机中的最后一轮脏页的源地址信息发送至第二加速设备。实际应用中,第一加速设备可从源宿主机中读取脏页信息。脏页信息可用于存储分配给虚拟机的若干内存页是否为脏页的标记。其中,第一加速设备可外接于源宿主机,当然,也可集成在源宿主机内,本实施例对双方的实际连接方式不做限定。可选地,可采用脏页位图作为脏页信息,脏页位图可以是二进制序列。应当理解的是,本实施例中脏页信息还可采用其它信息形式,而并不限于脏页位图这一种。举例来说,若为虚拟机分配了512KB内存,每个内存页的大小为4KB,则该内存页的数目为512/4=128,从而虚拟机对应一个包含128位的脏页位图,每个位代表一个内存页是否为脏页,若脏页位图的第一位为1,则代表第一个内存页为脏页;若脏页位图的第二位为0,则代表第二个内存页不为脏页。值得说明的是,本实施例中,脏页位图是源宿主机上既有的,通常可由源宿主机上的KVM(Kernel-based Virtual Machine,基于内核的虚拟机)进行维护。
这样,源宿主机可将虚拟机迁移方案中的脏页迭代过程(即控制面的工作)全部下沉到第一加速设备中进行。为此,对于第一加速设备来说,可基于脏页信息查找最后一轮脏页的源地址信息。本实施例中,第一加速设备可遍历脏页信息,也即是对脏页信息进行逐位扫描,以发现其中脏页的源地址信息。源地址信息用于表征脏页在源宿主机内存空间中的位置。这里,脏页迭代过程将完全与源宿主机解耦,该过程对源宿主机中的资源零依赖,也就是该过程完全无需占用源宿主机中的CPU资源。
而对于第二加速设备来说,则可基于接收到的源地址信息从源宿主机中获取最后一轮脏页。
本实施例中,目的宿主机中可运行一定制的热迁移程序,由于在热迁移完成之前,目的宿主机上会存在大量的空闲资源,因此,本实施例中,可使用目的宿主机上的空闲资源来支持该热迁移程序的运行。举例来说,目的宿主机上通常会为待迁移的虚拟机预留CPU资源,本实施例中,热迁移程序即可使用目的宿主机上为迁移后虚拟机划定的CPU资源来支持该热迁移程序的运行。应当理解的是,在完成虚拟机迁移之前,为迁移后虚拟机划定的CPU资源是空闲的、可用的。当然,这仅是示例性的,本实施例中,还可使用目的宿主机上的其它空闲资源来支持其上热迁移程序的运行,本实施例对此不做限定。基于此,目的宿主机可基于其上运行的定制的热迁移程序,驱动其连接的第二加速设备,从而使能第二加速设备承担起脏页迁移工作。
在一种可选的实现方式中:对于第二加速设备来说,可将收到的源地址信息提供给目的宿主机,并可触发目的宿主机生成脏页读取请求。而目的宿主机则可将脏页读取请求发送至其对应的第二加速设备。对于第二加速设备来说,可按照目的宿主机发起的脏页读取请求,利用第一加速设备从源宿主机中读取本轮待传输脏页。在该实现方式中,目的宿主机可在其上定制的热迁移程序的驱动下,根据获取到的源地址信息而发起脏页读取请求。这里,目的宿主机还可将本轮待传输脏页在目的宿主机上所分配到的目的地址信息也携带在脏页读取请求中,以便读回脏页后可写入目的宿主机内存空间中的正确位置上。其中,热迁移过程中,源宿主机上为内存页分配的地址与目的宿主机上为内存页预留的地址通常是一一对应的,因此,目的宿主机可在接收到源地址信息的情况下,基于这种对应关系而方便快捷地查找到脏页所对应的目的地址,并携带在脏页读取请求中。
另外,在该实现方式中,第二加速设备可采用远程直接内存访问RDMA方式从源宿主机中获取最后一轮脏页。相应地,目的宿主机可根据源地址信息以及最后一轮脏页在目的宿主机上分配到的目的地址信息,生成远程直接内存访问RDMA指令,作为脏页读取请求,以使能第二加速设备采用远程直接内存访问RDMA方式从源宿主机中获取最后一轮脏页。当然,第二加速设备除了可采用远程直接内存访问RDMA的方式来实现脏页迁移工作之外,还可采用其它通信方式来实现脏页迁移工作的下沉。例如,可采用TCP的方式来实现脏页迁移工作,在TCP的方式下,第二加速设备可利用第一加速设备直接通过DMA等方式来从源宿主机读取最后一轮脏页,并通过TCP协议来接收第一加速设备读取到的最后一轮脏页,之后第二加速设备可直接通过DMA等方式向目的宿主机中写入最后一轮脏页。本实施例对脏页迁移工作中采用的通信方式不做限定,对于不同的通信方式,可采用合适的硬件形式来实现第二加速设备。
这样,脏页迁移工作已经交由第二加速设备执行,第一加速设备得以空闲。
而空闲的第一加速设备则可从源宿主机中读取目标虚拟机下最终的设备状态数据并发送至第二加速设备。其中,最终的设备状态数据用于记录目标虚拟机暂停后,其上设备的最终运行状态。在此过程中,第一加速设备可按照直接内存访问DMA(direct memoryaccess)/网络的方式从源宿主机中读取目标虚拟机下最终的设备状态数据,本实施例对第一加速设备从源宿主机中获取最终的设备状态数据的方式不做限定。另外,在实际应用中,第一加速设备可在从源宿主机中读取到目标虚拟机下的所有设备状态后,将读取到的设备状态打包(对应本文中的设备状态数据)发送至第二加速设备。这样,设备状态数据中可包含一条或多条设备状态,且设备状态数据中可采用设备标识作为索引,也即是,在设备状态数据中,单个设备标识下可关联一条或多条设备状态。
这样,从源宿主机中获取最后一轮脏页的过程和从源宿主机中获取设备状态的过程可以是并行的。而且,对于第二加速设备来说,可在获取最后一轮脏页的过程中,并行接收第一加速设备发送的设备状态数据。也即是,第一加速设备向第二加速设备发送设备状态数据的过程,与第二加速设备从源宿主机中获取最后一轮脏页的过程之间也可以是并行的。
基于此,本实施例中,第二加速设备承担的最后一轮脏页的迁移工作和第一加速设备承担的设备状态数据的迁移工作可并行执行。
继续参考图1,对于第二加速设备来说,其可并行获得目标虚拟机对应的最后一轮脏页和最终的设备状态数据。第二加速设备可将获得的最后一轮脏页和设备状态数据写入目的宿主机。
第二加速设备可按照直接内存访问DMA的方式将最后一轮脏页和最终的设备状态数据写入目的宿主机中。正如前文提及的,目的宿主机发起的脏页读取请求中携带有脏页在目的宿主机上的目的地址信息,因此,这里,第二加速设备可按照脏页读取请求中的目的地址信息将接收到的本轮待传输脏页写入目的宿主机中对应的地址上。这样,目的宿主机可在发出脏页读取请求后,收到其对应的第二加速设备所写入的最后一轮脏页,从而完成脏页的迁移。同样,第二加速设备也可将接收到的设备状态数据写入目的宿主机,从而完成设备状态数据的迁移。
综上,本实施例中,可在源宿主机上连接第一加速设备,在目的宿主机上连接第二加速设备,在虚拟机的迁移过程中,第一加速设备可将源宿主机中最后一轮脏页的源地址信息发送至第二加速设备,并由第二加速设备承担最后一轮脏页的迁移工作;发送完源地址信息后第一加速设备得以空闲,并可承担设备状态数据的迁移工作。这样,第二加速设备承担的最后一轮脏页的迁移工作和第一加速设备承担的设备状态数据的迁移工作可并行执行,而不再需要等待脏页迁移完成后再执行设备状态数据的迁移,这相当于隐藏了设备状态数据迁移工作中的部分或全部用时,大大缩短了虚拟机的暂停时间,从而可有效提高虚拟机迁移效率。
在上述或下述实施例中,第二加速设备在将最后一轮脏页和设备状态数据写入目的宿主机的过程中,由于脏页迁移和设备状态迁移都可能发生对虚拟机内存的改动,而虚拟机暂停后,部分设备状态仍然可能发生变化,因此,并行迁移的方式可能会出现乱序的问题而导致迁移后的内存数据不正确。这也是传统方案中需要在完成最后一轮脏页迁移之后再进行设备状态迁移的原因。
为了避免并行迁移可能导致的乱序问题,本实施例中,第二加速设备可从设备状态数据中,识别指定设备对应的设备状态,指定设备需借助内存进行设备状态存储;在将最后一轮脏页全部写入目的宿主机之后,再将识别出的设备状态写入目的宿主机。
正如前文提及的,设备状态数据中可以设备标识作为索引,基于此,在一种示例性方案中,第二加速设备可基于预先配置的指定设备标识,从设备状态数据中,查找关联有任一指定设备标识的设备状态,以识别出指定设备对应的设备状态。其中,指定设备可以是基于经验而指定的,指定设备通常需要借助内存进行设备状态的存储,而且,指定设备的数量是有限且可穷举的。另外,第二加速设备中预先配置的指定设备标识也可根据领域内的技术发展情况而进行增减。
这样,本实施例中,第二加速设备在接收到第一加速设备发送的设备状态数据后,可跳过其中的部分设备状态,而进行其它设备状态执行写入目标宿主机的操作。这里,跳过可理解为暂停写入。第二加速设备可在将最后一轮脏页全部写入目的宿主机之后,再将跳过的设备状态写入目的宿主机。这可在目的宿主机一侧避免指定设备对应的设备状态被最后一轮脏页错误覆盖。
举例来说,若虚拟机上的设备A对应的设备状态对最后一轮脏页中的脏页B发生改动,但是,第二加速设备从源宿主机获取脏页B的过程出现了卡顿,导致脏页B在设备A对应的设备状态之后才写入目的宿主机,则脏页B将会覆盖设备A对应的设备状态,导致内存错误。而本实施例提供的保序方案中,第二加速设备将暂时跳过设备A对应的设备状态,并在最后一轮脏页全部(包括脏页B)写入目的宿主机之后,在将设备A对应的设备状态写入目的宿主机,这样,可保证目的宿主机上获得的设备A对应的设备状态的正确性,避免内存错误。
在一些可能的设计方案中,可在第二加速设备中设置保序控制器,并由保序控制器来实施本实施例中的保序逻辑,以保证指定设备的设备状态在相关的脏页之后写入目的宿主机。另外,第二加速设备中可采用队列的方式来管理接收到的设备状态数据,而目的宿主机则可通过订阅这些队列来实现设备状态的写入。这些仅是示例性的,本实施例并不限于此。
据此,本实施例中,可在第二加速设备中引入保序机制,从接收到的设备状态数据中筛选出指定设备对应的设备状态进行暂时跳过,并在最后一轮脏页全部写入目的宿主机后,再将跳过的设备状态写入目的宿主机,以避免指定设备的设备状态被最后一轮脏页错误覆盖,进而避免因并发迁移而可能出现的乱序问题。
图2为本申请一示例性实施例提供的另一种虚拟机迁移系统的结构示意图。参考图2,在上述或下述实施例中,第一加速设备和第二加速设备之间设置有并行的第一通信链路和第二通信链路,第一通信链路供第二加速设备从源宿主机中读取最后一轮脏页,第二通信链路供第一加速设备将设备状态数据发送至第二加速设备。
在本实施例中,第一加速设备和第二加速设备之间可设置有两条并行的通信链路,两条通信链路可分别用于最后一轮脏页的迁移工作和设备状态数据的迁移工作,从而支持并行迁移。
其中,第二通信链路还可供第一加速组件将最后一轮脏页的源地址信息发送至第二加速设备,而在完成源地址信息的发送工作后,第二通信链路空闲,并可接续用于设备状态迁移工作。第一通信链路则可供第二加速设备从源宿主机中读取最后一轮脏页。本实施例中,第二加速设备可途径第一通信链路及第一加速设备,以从源宿主机中读取最后一轮脏页。应当理解的是,虽然第一加速设备辅助参与了脏页迁移工作,但是由于第一通信链路和第二通信链路相互独立,因此,第一加速设备中,基于第一通信链路而辅助参与的脏页迁移工作并不会与基于第二通信链路而进行的设备状态数据迁移工作发生资源争抢,双方相互独立,互不干扰。
参考图2,在一种可选的硬件实现方式中:第一加速设备可包括第一RDMA组件和第一迭代组件,第二加速设备可包括第二RDMA组件和第二迭代组件,第一RDMA组件和第二RDMA组件之间建立有第一通信链路,第一迭代组件和第二迭代组件之间建立有第二通信链路。也即是,第一加速设备和第二加速设备中分别为两条通信链路配置专用的通信组件,这样,两条通信链路可独立运行,互不干扰。当然,本实施例中,还可采用其它实现方式来保证两条通信链路的独立性,而并不限于此。
在该实现方式中提出的加速设备内部结构的基础上,参考图2,第二RDMA组件可与第一RDMA组件相互配合,来响应目的宿主机发起的脏页读取请求。基于此,可由第一RDMA组件从源宿主机中读取最后一轮脏页后,返回给第二RDMA组件;而第二RDMA组件则可将最后一轮脏页写入目的宿主机。其中,第一RDMA组件可按照直接内存访问DMA/网络的方式,从源宿主机中读取最后一轮脏页。DMA的方式可支持第一加速设备顺利地从源宿主机中读取最后一轮的脏页,而无需依赖源宿主机中的CPU资源。这样,脏页传输过程也将完全与源宿主机中解耦,该过程对源宿主机中的资源零依赖,也就是该过程完全无需占用源宿主机中的CPU资源。
另外,第一RDMA组件和第二RDMA组件采用FPGA、RDMA网卡或基于ASIC的具有RDMA能力的其它设备进行实现,在此,对RDMA组件的硬件类型不做限定。
继续参考图2,第一迭代组件可通过第一通信链路将最后一轮脏页的源地址信息发送至第二迭代组件。并在完成该部分工作后,从源宿主机中获取设备状态数据。其中,第一迭代组件和第二迭代组件采用系统级SOC芯片、物理网卡或专用宿主机进行实现。SOC芯片,可被称为片上系统,其是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容,因此,特别适配于本实施例中脏页迭代过程的逻辑复杂但计算量小的工作特定,SCO芯片可在脏页迭代过程中出色地完成脏页信息遍历工作。而对于采用专用宿主机来实现迭代组件的情况下,多个源宿主机可共用同一专用宿主机,该专用宿主机可分别为不同的源宿主机提供脏页迭代功能支持,举例来说,该专用宿主机可为不同的源宿主机运行不同的脏页迭代进程,以隔离不同源宿主机对应的脏页迭代工作,每个脏页迭代进程的工作逻辑可参考前文中第一加速设备关于脏页迭代过程的描述,在此不再赘述。而在源宿主机上配置有多个网卡的情况下,也可将其中的某一网卡作为加速设备中的迭代组件而使用,通过在该网卡中定制前述迭代组件的相关处理逻辑来使网卡实施相关工作。
值得说明的是,对于SOC芯片及专用宿主机等硬件形式来实现迭代组件的情况下,可将前述的RDMA组件作为迭代组件与源/目的宿主机之间的硬件桥,这样,第一迭代组件可以第一RDMA组件作为硬件桥(例如,FPGA通道)来从源宿主机中读取脏页信息,而第二迭代组件和目的宿主机之间也可以第二RDMA组件作为硬件桥来传递最后一轮脏页的地址信息等。当然,这仅是示例性的,本实施例并不限于此。
据此,本实施例中,可在第一加速设备和第二加速设备之间设置两条并行的通信链路,从而支持最后一轮脏页的迁移工作和设备状态数据的迁移工作并行执行,相互独立,互不干扰。
图3为本申请一示例性实施例提供的又一种虚拟机迁移系统的结构示意图。参考图3,在上述或下述实施例中,可在第二加速设备中设置第一类传输队列和第二类传输队列;第二加速设备利用第一类传输队列从源宿主机中读取最后一类脏页,第二加速设备利用第二类传输队列接收第一加速设备发送的设备状态数据。
相较于图2中的虚拟机迁移系统,本实施例中,提供了另一种支持最后一轮脏页的迁移工作和设备状态数据的迁移工作之间独立性的实现方案。也即是,基于队列机制来隔离最后一轮脏页的迁移工作和设备状态数据的迁移工作。
在本实施例中,可通过虚拟化技术,在第二加速设备中模拟出两个虚拟设备并为虚拟设备配置传输队列,从而在第二加速设备中分产生两类传输队列。两类传输队列相互隔离,互不干扰,从而支持最后一轮脏页的迁移工作和设备状态数据的迁移工作之间独立性。
承接图2中提供的加速设备的示例性硬件实现方式,本实施例中,可在第二加速设备中的第二RDMA组件中实施两类传输队列。另外,为了与第二加速设备相互配合,第一加速设备中也可按照同一的虚拟化方式而产生两类传输队列,这样,第一加速设备和第二加速设备之间可通过同类传输队列的配合,而支持最后一轮脏页的迁移工作和设备状态数据的迁移工作之间独立性。
另外,在本实施例中,承接图2中的硬件实现方式,对于第一加速设备来说,可有第一迭代组件从源宿主机中读取最后一轮脏页和/或设备状态数据后,传递给第一RDMA组件,当然,也可由第一RDMA组件从源宿主机中读取最后一轮脏页和/或设备状态数据,本实施例对此不做限定,只需保证由第一加速设备和第二加速设备中包含的RDMA组件按照队列机制进行最后一轮脏页及设备状态数据的传输即可。
据此,本实施例中,通过引入队列机制,可支持最后一轮脏页的迁移工作和设备状态数据的迁移工作并行执行,相互独立,互不干扰。
图4为本申请另一示例性实施例提供的一种虚拟机迁移方法的流程示意图,该方法可由前述系统实施例中的第一加速设备实施,第一加速设备与源宿主机连接。参考图4,该方法可包括:
步骤400、在针对目标虚拟机的迁移过程中,从源宿主机中获取最后一轮脏页的源地址信息;
步骤401、将源地址信息发送至目的宿主机所对应的第二加速设备,以供第二加速设备基于源地址信息从源宿主机中获取最后一轮脏页;
步骤402、从源宿主机中读取目标虚拟机下最终的设备状态数据;
步骤403、在第二加速设备获取最后一轮脏页的过程中,并行将设备状态数据发送至第二加速设备,以供第二加速设备将最后一轮脏页和设备状态数据写入目的宿主机。
在一可选实施例中,由第二加速设备从设备状态数据中,识别指定设备对应的设备状态,指定设备需借助内存进行设备状态存储;在将最后一轮脏页全部写入目的宿主机之后,再将识别出的设备状态写入目的宿主机。
在一可选实施例中,可由第二加速设备基于预先配置的指定设备标识,从设备状态数据中,查找关联有任一指定设备标识的设备状态。
在一可选实施例中,第一加速设备和第二加速设备之间设置有并行的第一通信链路和第二通信链路,第一通信链路供第二加速设备从源宿主机中读取最后一轮脏页,第二通信链路供第一加速设备将设备状态数据发送至第二加速设备。
在一可选实施例中,第一加速设备包括第一RDMA组件和第一迭代组件,第二加速设备包括第二RDMA组件和第二迭代组件,第一RDMA组件和第二RDMA组件之间建立有第一通信链路,第一迭代组件和第二迭代组件之间建立有第二通信链路。
在一可选实施例中,第一RDMA组件和第二RDMA组件采用FPGA、RDMA网卡或基于ASIC的具有RDMA能力的其它设备进行实现;第一迭代组件和第二迭代组件采用系统级SOC芯片、物理网卡或专用宿主机进行实现。
在一可选实施例中,第二加速设备中设置第一类传输队列和第二类传输队列;第二加速设备利用第一类传输队列从源宿主机中读取最后一类脏页,第二加速设备利用第二类传输队列接收第一加速设备发送的设备状态数据。
在一可选实施例中,步骤400,可包括:
按照直接内存访问DMA/网络的方式从源宿主机中读取目标虚拟机下最终的设备状态数据;
其中,由第二加速设备按照直接内存访问DMA/网络的方式将最后一轮脏页和设备状态数据写入目的宿主机。
值得说明的是,上述关于虚拟机迁移方法各实施例中的技术细节,可参考前述的系统实施例中关于第一加速设备的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。
图5为本申请另一示例性实施例提供的另一种虚拟机迁移方法的流程示意图,该方法可由前述系统实施例中的第二加速设备实施,第二加速设备与目的宿主机连接。参考图5,该方法可包括:
步骤500、在针对目标虚拟机的迁移过程中,接收源宿主机对应的第一加速设备所发送的最后一轮脏页的源地址信息;
步骤501、基于源地址信息从源宿主机中获取最后一轮脏页;
步骤502、在获取最后一轮脏页的过程中,并行接收第一加速设备发送的目标虚拟机下最终的设备状态数据;
步骤503、将最后一轮脏页和设备状态数据写入目的宿主机。
在一可选实施例中,步骤503,可包括:
从设备状态数据中,识别指定设备对应的设备状态,指定设备需借助内存进行设备状态存储;
在将最后一轮脏页全部写入目的宿主机之后,再将识别出的设备状态写入目的宿主机。
在一可选实施例中,步骤从设备状态数据中,识别指定设备对应的设备状态可包括:
基于预先配置的指定设备标识,从设备状态数据中,查找关联有任一指定设备标识的设备状态。
在一可选实施例中,第一加速设备和第二加速设备之间设置有并行的第一通信链路和第二通信链路,第一通信链路供第二加速设备从源宿主机中读取最后一轮脏页,第二通信链路供第一加速设备将设备状态数据发送至第二加速设备。
在一可选实施例中,第一加速设备包括第一RDMA组件和第一迭代组件,第二加速设备包括第二RDMA组件和第二迭代组件,第一RDMA组件和第二RDMA组件之间建立有第一通信链路,第一迭代组件和第二迭代组件之间建立有第二通信链路。
在一可选实施例中,第一RDMA组件和第二RDMA组件采用FPGA、RDMA网卡或基于ASIC的具有RDMA能力的其它设备进行实现;第一迭代组件和第二迭代组件采用系统级SOC芯片、物理网卡或专用宿主机进行实现。
在一可选实施例中,第二加速设备中设置第一类传输队列和第二类传输队列;第二加速设备利用第一类传输队列从源宿主机中读取最后一类脏页,第二加速设备利用第二类传输队列接收第一加速设备发送的设备状态数据。
在一可选实施例中,可由第一加速设备按照直接内存访问DMA/网络的方式从源宿主机中读取目标虚拟机下最终的设备状态数据;
步骤503,可包括:按照直接内存访问DMA/网络的方式将最后一轮脏页和设备状态数据写入目的宿主机。
值得说明的是,上述关于虚拟机迁移方法各实施例中的技术细节,可参考前述的系统实施例中关于第二加速设备的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一组件,或者,该方法也由不同组件作为执行主体。比如,步骤500至步骤503的执行主体可以为组件A;又比如,步骤500和802的执行主体可以为组件A,步骤502的执行主体可以为组件B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如500、502等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的组件、链路、设备等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图6为本申请又一示例性实施例提供的一种加速设备的结构示意图。该加速设备可与源宿主机连接。如图6所示,该加速设备包括:迭代组件61和通信组件62;
迭代组件61,用于在针对目标虚拟机的迁移过程中,从源宿主机中获取最后一轮脏页的源地址信息;将源地址信息发送至目的宿主机所对应的第二加速设备,以供第二加速设备基于源地址信息从源宿主机中获取最后一轮脏页;
通信组件62,用于从源宿主机中读取目标虚拟机下最终的设备状态数据;在第二加速设备获取最后一轮脏页的过程中,并行将设备状态数据发送至第二加速设备,以供第二加速设备将最后一轮脏页和设备状态数据写入目的宿主机。
在一可选实施例中,由第二加速设备从设备状态数据中,识别指定设备对应的设备状态,指定设备需借助内存进行设备状态存储;在将最后一轮脏页全部写入目的宿主机之后,再将识别出的设备状态写入目的宿主机。
在一可选实施例中,可由第二加速设备基于预先配置的指定设备标识,从设备状态数据中,查找关联有任一指定设备标识的设备状态。
在一可选实施例中,第一加速设备和第二加速设备之间设置有并行的第一通信链路和第二通信链路,第一通信链路供第二加速设备从源宿主机中读取最后一轮脏页,第二通信链路供第一加速设备将设备状态数据发送至第二加速设备。
在一可选实施例中,通信组件62可包括第一RDMA组件,迭代组件61可包括第一迭代组件,第二加速设备包括第二RDMA组件和第二迭代组件,第一RDMA组件和第二RDMA组件之间建立有第一通信链路,第一迭代组件和第二迭代组件之间建立有第二通信链路。
在一可选实施例中,第一RDMA组件和第二RDMA组件采用FPGA、RDMA网卡或基于ASIC的具有RDMA能力的其它设备进行实现;第一迭代组件和第二迭代组件采用系统级SOC芯片、物理网卡或专用宿主机进行实现。
在一可选实施例中,第二加速设备中设置第一类传输队列和第二类传输队列;第二加速设备利用第一类传输队列从源宿主机中读取最后一类脏页,第二加速设备利用第二类传输队列接收第一加速设备发送的设备状态数据。
在一可选实施例中,迭代组件61在从源宿主机中获取最后一轮脏页的源地址信息的过程中,可用于:
按照直接内存访问DMA/网络的方式从源宿主机中读取目标虚拟机下最终的设备状态数据;
其中,由第二加速设备按照直接内存访问DMA/网络的方式将最后一轮脏页和设备状态数据写入目的宿主机。
值得说明的是,上述关于加速设备各实施例中的技术细节,可参考前述的系统实施例中关于第一加速设备的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。进一步,图6中仅示意性给出部分组件,并不意味着加速设备只包括图6所示组件。
图7为本申请又一示例性实施例提供的另一种加速设备的结构示意图。该加速设备可与目的宿主机连接。如图7所示,该加速设备包括:迭代组件71和通信组件72;
迭代组件71,用于在针对目标虚拟机的迁移过程中,接收源宿主机对应的第一加速设备所发送的最后一轮脏页的源地址信息并提供给通信组件;在利用通信组件获取最后一轮脏页的过程中,并行接收第一加速设备发送的目标虚拟机下最终的设备状态数据;将设备状态数据写入目的宿主机;
通信组件72,用于基于源地址信息从源宿主机中获取最后一轮脏页;将最后一轮脏页写入目的宿主机。
在一可选实施例中,迭代组件71在将设备状态数据写入目的宿主机的过程中,可用于:
从设备状态数据中,识别指定设备对应的设备状态,指定设备需借助内存进行设备状态存储;
在将最后一轮脏页全部写入目的宿主机之后,再将识别出的设备状态写入目的宿主机。
在一可选实施例中,迭代组件71在从设备状态数据中,识别指定设备对应的设备状态的过程中,可用于:
基于预先配置的指定设备标识,从设备状态数据中,查找关联有任一指定设备标识的设备状态。
在一可选实施例中,第一加速设备和第二加速设备之间设置有并行的第一通信链路和第二通信链路,第一通信链路供第二加速设备从源宿主机中读取最后一轮脏页,第二通信链路供第一加速设备将设备状态数据发送至第二加速设备。
在一可选实施例中,第一加速设备包括第一RDMA组件和第一迭代组件,第二加速设备包括第二RDMA组件和第二迭代组件,第一RDMA组件和第二RDMA组件之间建立有第一通信链路,第一迭代组件和第二迭代组件之间建立有第二通信链路。
在一可选实施例中,第一RDMA组件和第二RDMA组件采用FPGA、RDMA网卡或基于ASIC的具有RDMA能力的其它设备进行实现;第一迭代组件和第二迭代组件采用系统级SOC芯片、物理网卡或专用宿主机进行实现。
在一可选实施例中,第二加速设备中设置第一类传输队列和第二类传输队列;第二加速设备利用第一类传输队列从源宿主机中读取最后一类脏页,第二加速设备利用第二类传输队列接收第一加速设备发送的设备状态数据。
在一可选实施例中,可由第一加速设备按照直接内存访问DMA/网络的方式从源宿主机中读取目标虚拟机下最终的设备状态数据;
迭代组件71和通信组件72可按照直接内存访问DMA/网络的方式将最后一轮脏页和设备状态数据写入目的宿主机。
值得说明的是,上述关于加速设备各实施例中的技术细节,可参考前述的系统实施例中关于第二加速设备的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由第一加速设备/第二加速设备执行的各步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种虚拟机迁移系统,包括:源宿主机及其对应的第一加速设备,和目的宿主机及其对应的第二加速设备;
所述第一加速设备,用于在针对目标虚拟机的迁移过程中,将所述源宿主机中的最后一轮脏页的源地址信息发送至所述第二加速设备;从所述源宿主机中读取所述目标虚拟机下最终的设备状态数据并发送至所述第二加速设备;
所述第二加速设备,用于基于接收到的所述源地址信息从所述源宿主机中获取所述最后一轮脏页;在获取所述最后一轮脏页的过程中,并行接收所述第一加速设备发送的所述设备状态数据;将所述最后一轮脏页和所述设备状态数据写入所述目的宿主机。
2.根据权利要求1所述的系统,所述第二加速设备在将所述最后一轮脏页和所述设备状态数据写入所述目的宿主机过程中,用于:
从所述设备状态数据中,识别指定设备对应的设备状态,所述指定设备需借助内存进行设备状态存储;
在将所述最后一轮脏页全部写入所述目的宿主机之后,再将所述识别出的设备状态写入所述目的宿主机。
3.根据权利要求2所述的系统,所述第二加速设备在从所述设备状态数据中,识别指定设备对应的设备状态的过程中,用于:
基于预先配置的指定设备标识,从所述设备状态数据中,查找关联有任一指定设备标识的设备状态。
4.根据权利要求1-3任一项所述的系统,所述第一加速设备和所述第二加速设备之间设置有并行的第一通信链路和第二通信链路,所述第一通信链路供所述第二加速设备从所述源宿主机中读取所述最后一轮脏页,所述第二通信链路供所述第一加速设备将所述设备状态数据发送至所述第二加速设备。
5.根据权利要求4所述的系统,所述第一加速设备包括第一RDMA组件和第一迭代组件,所述第二加速设备包括第二RDMA组件和第二迭代组件,所述第一RDMA组件和所述第二RDMA组件之间建立有所述第一通信链路,所述第一迭代组件和所述第二迭代组件之间建立有所述第二通信链路。
6.根据权利要求5所述的系统,所述第一RDMA组件和所述第二RDMA组件采用FPGA、RDMA网卡或基于ASIC的具有RDMA能力的其它设备进行实现;所述第一迭代组件和所述第二迭代组件采用系统级SOC芯片、物理网卡或专用宿主机进行实现。
7.根据权利要求1-3任一项所述的系统,所述第二加速设备中设置第一类传输队列和第二类传输队列;所述第二加速设备利用所述第一类传输队列从所述源宿主机中读取所述最后一类脏页,所述第二加速设备利用所述第二类传输队列接收所述第一加速设备发送的所述设备状态数据。
8.根据权利要求1-3任一项所述的系统,所述第一加速设备在从所述源宿主机中读取所述目标虚拟机下最终的设备状态数据过程中,用于:
按照直接内存访问DMA或者网络的方式从所述源宿主机中读取所述目标虚拟机下最终的设备状态数据;
所述第二加速设备在将所述最后一轮脏页和所述设备状态数据写入所述目的宿主机的过程中,用于:
按照直接内存访问DMA或者网络的方式将所述最后一轮脏页和所述设备状态数据写入所述目的宿主机。
9.一种虚拟机迁移方法,适用于源宿主机对应的第一加速设备,所述方法包括:
在针对目标虚拟机的迁移过程中,从所述源宿主机中获取最后一轮脏页的源地址信息;
将所述源地址信息发送至目的宿主机所对应的第二加速设备,以供所述第二加速设备基于所述源地址信息从所述源宿主机中获取所述最后一轮脏页;
从所述源宿主机中读取所述目标虚拟机下最终的设备状态数据;
在所述第二加速设备获取所述最后一轮脏页的过程中,并行将所述设备状态数据发送至所述第二加速设备,以供所述第二加速设备将所述最后一轮脏页和所述设备状态数据写入所述目的宿主机。
10.一种虚拟机迁移方法,适用于目的宿主机对应的第二加速设备,所述方法包括:
在针对目标虚拟机的迁移过程中,接收源宿主机对应的第一加速设备所发送的最后一轮脏页的源地址信息;
基于所述源地址信息从所述源宿主机中获取所述最后一轮脏页;
在获取所述最后一轮脏页的过程中,并行接收所述第一加速设备发送的所述目标虚拟机下最终的设备状态数据;
将所述最后一轮脏页和所述设备状态数据写入所述目的宿主机。
11.一种加速设备,与源宿主机连接,包括迭代组件和通信组件;
所述迭代组件,用于在针对目标虚拟机的迁移过程中,从所述源宿主机中获取最后一轮脏页的源地址信息;将所述源地址信息发送至目的宿主机所对应的第二加速设备,以供所述第二加速设备基于所述源地址信息从所述源宿主机中获取所述最后一轮脏页;
所述通信组件,用于从所述源宿主机中读取所述目标虚拟机下最终的设备状态数据;在所述第二加速设备获取所述最后一轮脏页的过程中,并行将所述设备状态数据发送至所述第二加速设备,以供所述第二加速设备将所述最后一轮脏页和所述设备状态数据写入所述目的宿主机。
12.一种加速设备,与源宿主机连接,包括迭代组件和通信组件;
所述迭代组件,用于在针对目标虚拟机的迁移过程中,接收源宿主机对应的第一加速设备所发送的最后一轮脏页的源地址信息并提供给所述通信组件;在利用所述通信组件获取所述最后一轮脏页的过程中,并行接收所述第一加速设备发送的所述目标虚拟机下最终的设备状态数据;将所述设备状态数据写入目的宿主机;
所述通信组件,用于基于所述源地址信息从所述源宿主机中获取所述最后一轮脏页;将所述最后一轮脏页写入所述目的宿主机。
13.一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求9或10任一项所述的虚拟机迁移方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211408276.4A CN115629844A (zh) | 2022-11-10 | 2022-11-10 | 一种虚拟机迁移方法、系统、设备及存储介质 |
PCT/CN2023/129581 WO2024099228A1 (zh) | 2022-11-10 | 2023-11-03 | 一种虚拟机迁移方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211408276.4A CN115629844A (zh) | 2022-11-10 | 2022-11-10 | 一种虚拟机迁移方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115629844A true CN115629844A (zh) | 2023-01-20 |
Family
ID=84910202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211408276.4A Pending CN115629844A (zh) | 2022-11-10 | 2022-11-10 | 一种虚拟机迁移方法、系统、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115629844A (zh) |
WO (1) | WO2024099228A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024041576A1 (zh) * | 2022-08-26 | 2024-02-29 | 阿里云计算有限公司 | 一种虚拟机的热迁移方法、设备、系统及存储介质 |
WO2024099228A1 (zh) * | 2022-11-10 | 2024-05-16 | 杭州阿里云飞天信息技术有限公司 | 一种虚拟机迁移方法、系统、设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9053068B2 (en) * | 2013-09-25 | 2015-06-09 | Red Hat Israel, Ltd. | RDMA-based state transfer in virtual machine live migration |
US10956197B2 (en) * | 2017-12-13 | 2021-03-23 | Citrix Systems, Inc. | Virtual machine with an emulator manager for migration of synchronized streams of state data |
CN108874506B (zh) * | 2018-06-08 | 2020-07-24 | 北京百度网讯科技有限公司 | 虚拟机直通设备的热迁移方法和装置 |
CN112559116B (zh) * | 2019-09-25 | 2024-05-07 | 阿里巴巴集团控股有限公司 | 内存迁移方法、装置及计算设备 |
US11995459B2 (en) * | 2020-08-25 | 2024-05-28 | VMware LLC | Memory copy during virtual machine migration in a virtualized computing system |
CN115629844A (zh) * | 2022-11-10 | 2023-01-20 | 阿里云计算有限公司 | 一种虚拟机迁移方法、系统、设备及存储介质 |
-
2022
- 2022-11-10 CN CN202211408276.4A patent/CN115629844A/zh active Pending
-
2023
- 2023-11-03 WO PCT/CN2023/129581 patent/WO2024099228A1/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024041576A1 (zh) * | 2022-08-26 | 2024-02-29 | 阿里云计算有限公司 | 一种虚拟机的热迁移方法、设备、系统及存储介质 |
WO2024099228A1 (zh) * | 2022-11-10 | 2024-05-16 | 杭州阿里云飞天信息技术有限公司 | 一种虚拟机迁移方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2024099228A1 (zh) | 2024-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115629844A (zh) | 一种虚拟机迁移方法、系统、设备及存储介质 | |
US11281404B2 (en) | Storage volume migration scheduling based on storage volume priorities and specified constraints | |
JP5619173B2 (ja) | 仮想マシンの対称型ライブ・マイグレーション | |
US10025533B2 (en) | Logical block addresses used for executing host commands | |
US10628200B2 (en) | Base state for thin-provisioned volumes | |
CN104965757A (zh) | 虚拟机热迁移的方法、虚拟机迁移管理装置及系统 | |
CN101763301B (zh) | 用于测试引导镜像的系统和方法 | |
JP2016143221A (ja) | ストレージ装置,制御プログラム,ストレージシステム及びデータ転送方法 | |
CN110609730A (zh) | 一种实现虚拟处理器间中断透传的方法及设备 | |
CN115408107A (zh) | 一种虚拟机的热迁移方法、设备、系统及存储介质 | |
CN104899218A (zh) | 数据读写方法及数据读写装置 | |
CN105760218A (zh) | 一种虚拟机在线迁移方法及装置 | |
CN111679889B (zh) | 一种虚拟机的转换迁移方法和系统 | |
JP5030647B2 (ja) | 複数処理ノードを含むコンピュータ・システムでプログラムをロードする方法、該プログラムを含むコンピュータ可読媒体、及び、並列コンピュータ・システム | |
JP2009087282A (ja) | 並列計算システムおよび並列計算方法 | |
CN104104705A (zh) | 分布式存储系统的接入方法和设备 | |
US9804903B2 (en) | Data processing apparatus for pipeline execution acceleration and method thereof | |
US20060182110A1 (en) | Apparatus, system, and method for fibre channel device addressing | |
US10909044B2 (en) | Access control device, access control method, and recording medium containing access control program | |
US11281502B2 (en) | Dispatching tasks on processors based on memory access efficiency | |
US8819494B2 (en) | Automatically changing parts in response to tests | |
CN113296716A (zh) | 虚拟机磁盘在线迁移方法、计算机可读存储介质和计算机 | |
US10067888B1 (en) | I/O optimization with track splitting | |
JP2015005080A (ja) | ソフトウェア管理システムおよび計算機システム | |
CN113918284B (zh) | 云主机批量迁移的方法及装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |