CN115712486A - 虚拟机的热迁移控制方法和装置、介质和计算机设备 - Google Patents

虚拟机的热迁移控制方法和装置、介质和计算机设备 Download PDF

Info

Publication number
CN115712486A
CN115712486A CN202211419964.0A CN202211419964A CN115712486A CN 115712486 A CN115712486 A CN 115712486A CN 202211419964 A CN202211419964 A CN 202211419964A CN 115712486 A CN115712486 A CN 115712486A
Authority
CN
China
Prior art keywords
migration
iterative
virtual machine
physical machine
data
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
CN202211419964.0A
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.)
Alibaba China Co Ltd
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba China Co Ltd
Alibaba Cloud Computing 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 Alibaba China Co Ltd, Alibaba Cloud Computing Ltd filed Critical Alibaba China Co Ltd
Priority to CN202211419964.0A priority Critical patent/CN115712486A/zh
Publication of CN115712486A publication Critical patent/CN115712486A/zh
Priority to PCT/CN2023/131313 priority patent/WO2024104295A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种虚拟机的热迁移控制方法和装置、介质和计算机设备,先在虚拟机运行过程中对虚拟机进行若干次迭代迁移,每次迭代迁移后如果虚拟机的设备状态发生改变,则通过下一次迭代迁移对发生改变的设备状态进行迁移,并对下一次迭代迁移的迁移时长进行估计。只有在估计结果小于预设的时间阈值的情况下,才会在虚拟机暂停状态下进行热迁移,否则重新在虚拟机运行过程中对虚拟机进行下次迭代。这样,虚拟机在暂停状态下需要迁移的数据量大大减小,从而有效降低了热迁移过程中虚拟机的暂停时长。

Description

虚拟机的热迁移控制方法和装置、介质和计算机设备
技术领域
本公开涉及技术领域,尤其涉及虚拟机的热迁移控制方法和装置、介质和计算机设备。
背景技术
在对虚拟机进行热迁移时,需要将虚拟机的设备状态从源物理机迁移到目的物理机。相关技术中一般需要在虚拟机暂停后进行设备状态的热迁移。然而,在一些场景下,设备状态的数据量较多,从而导致热迁移时虚拟机的暂停时长(downtime)过长。
发明内容
第一方面,本公开实施例提供一种虚拟机的热迁移控制方法,用于将虚拟机的设备状态从源物理机迁移到目的物理机,所述方法包括:在虚拟机运行过程中对至少部分迁移数据进行初次迭代迁移后,循环执行以下步骤:确定下次迭代迁移的迁移数据的数据量;基于下次迭代迁移的迁移数据的数据量和本次迭代迁移的迁移带宽,估计下次迭代迁移的迁移时长;若所述迁移时长小于预设的时间阈值,在控制所述虚拟机暂停之后启动下次迭代迁移,并在下次迭代迁移成功后完成所述虚拟机的热迁移;若所述迁移时长大于或等于所述时间阈值,在所述虚拟机运行过程中启动下次迭代迁移,并返回确定下次迭代迁移的迁移数据的数据量的步骤;每次迭代迁移的迁移数据至少包括所述虚拟机的设备状态,下次迭代迁移的迁移数据基于本次迭代迁移后发生变化的设备状态确定。
在一些实施例中,所述方法还包括:获取本次迭代迁移的开始时间;对所述开始时间之后发生变化的设备状态进行标记;将标记的设备状态确定为本次迭代迁移后发生变化的设备状态。
在一些实施例中,所述源物理机与所述目的物理机之间包括多个迁移通道,不同的迁移通道用于对所述虚拟机中不同的迁移数据进行迭代迁移,其中一个迁移通道的迁移数据为所述虚拟机的设备状态;所述初次迭代迁移包括对各个迁移通道的迁移数据的初次迁移;所述下次迭代迁移的迁移数据包括本次迭代迁移后各个迁移通道发生改变的迁移数据;所述本次迭代迁移的迁移带宽为本次迭代迁移时各个迁移通道的平均迁移带宽。
在一些实施例中,所述迁移数据包括所述虚拟机的设备状态和内存脏页;所述源物理机和所述目的物理机上均包括SOC芯片和RDMA设备;所述多个迁移通道包括:所述源物理机的SOC芯片和所述目的物理机的SOC芯片之间的第一迁移通道,用于对所述虚拟机的设备状态进行迭代迁移;以及所述目的物理机的RDMA设备与所述源物理机的RDMA设备之间的第二迁移通道,用于对所述虚拟机的内存脏页进行迭代迁移。
在一些实施例中,所述方法还包括:控制所述源物理机的SOC芯片通过所述第一迁移通道将每次迭代迁移时待迁移的设备状态下发到所述目的物理机的SOC芯片;以及控制所述源物理机的SOC芯片将每次迭代迁移时待迁移的内存脏页在所述源物理机中的第一存储地址发送到所述目的物理机的SOC芯片,以使所述目的物理机的RDMA设备通过所述第二迁移通道拉取所述第一存储地址中存储的内存脏页。
在一些实施例中,所述方法还包括:控制所述源物理机的SOC芯片通过所述第一迁移通道将每次迭代迁移时待迁移的设备状态下发到所述目的物理机的SOC芯片;以及在所述源物理机的SOC芯片接收到所述目的物理机的SOC芯片发送的第二存储地址之后,控制所述源物理机的RDMA设备通过所述第二迁移通道将每次迭代迁移时待迁移的内存脏页写入所述第二存储地址。
在一些实施例中,所述平均迁移带宽基于本次迭代迁移时各个迁移通道的迁移数据的总数据量与本次迭代迁移时各个迁移通道的总迁移时长确定,其中:若各个迁移通道并行地进行迭代迁移,所述本次迭代迁移时各个迁移通道的总迁移时长基于本次迭代迁移时各个迁移通道的迁移时长的最大值确定;或者若各个迁移通道串行地进行迭代迁移,所述本次迭代迁移时各个迁移通道的总迁移时长基于本次迭代迁移时各个迁移通道的迁移时长的总和确定。
在一些实施例中,所述方法还包括:获取多次迭代迁移的迁移时长;基于所述多次迭代迁移的迁移时长判断是否满足热迁移终止条件。
在一些实施例中,所述基于所述多次迭代迁移的迁移时长判断是否满足热迁移终止条件,包括:若在预设时间段内的所述多次迁移迭代迁移中每次迭代迁移的迁移时长均大于或等于所述时间阈值,判定满足热迁移终止条件。
在一些实施例中,所述方法还包括:在判定满足热迁移终止条件的情况下,终止迭代迁移。
第二方面,本公开实施例提供一种虚拟机的热迁移控制方法,用于将虚拟机的设备状态和内存脏页从源物理机迁移到目的物理机,所述源物理机和所述目的物理机上均包括SOC芯片和RDMA设备;所述方法包括:控制所述源物理机的SOC芯片将所述虚拟机的设备状态迁移到所述目的物理机的SOC芯片;以及控制所述源物理机的RDMA设备将所述虚拟机的内存脏页迁移到所述目的物理机的RDMA设备;其中,所述设备状态的迁移过程和所述内存脏页的迁移过程并行地执行。
在一些实施例中,所述控制所述源物理机的RDMA设备将所述虚拟机的内存脏页迁移到所述目的物理机的RDMA设备,包括:控制所述源物理机的SOC芯片将所述虚拟机的内存脏页在所述源物理机中的第一存储地址发送到所述目的物理机的SOC芯片;响应于所述源物理机的RDMA设备接收到所述目的物理机的RDMA设备发送的RDMA读请求,控制所述源物理机的RDMA设备从所述RDMA读请求中携带的第一存储地址中读取所述虚拟机的内存脏页后返回所述目的物理机的RDMA设备。
在一些实施例中,所述控制所述源物理机的RDMA设备将所述虚拟机的内存脏页迁移到所述目的物理机的RDMA设备,包括:在所述源物理机的SOC芯片接收到所述目的物理机的SOC芯片发送的第二存储地址之后,控制所述源物理机的RDMA设备向所述目的物理机的RDMA设备发送携带所述第二存储地址的RDMA写请求,以将所述虚拟机的内存脏页写入所述第二存储地址。
第三方面,本公开实施例提供一种虚拟机的热迁移控制装置,所述虚拟机的设备状态通过多次迭代迁移从源物理机迁移到目的物理机,所述装置包括:确定模块,用于确定下次迭代迁移的迁移数据的数据量;估计模块,用于基于下次迭代迁移的迁移数据的数据量和本次迭代迁移的迁移带宽,估计下次迭代迁移的迁移时长;第一控制模块,用于若所述迁移时长小于预设的时间阈值,在控制所述虚拟机暂停之后启动下次迭代迁移,以完成所述虚拟机的热迁移;第二控制模块,用于若所述迁移时长大于或等于所述时间阈值,在所述虚拟机运行过程中启动下次迭代迁移,并返回执行确定模块的功能;每次迭代迁移的迁移数据至少包括所述虚拟机的设备状态,下次迭代迁移的迁移数据基于本次迭代迁移后发生变化的设备状态确定,所述确定模块、估计模块、第一控制模块和第二控制模块的功能在所述虚拟机运行过程中对至少部分迁移数据进行初次迭代迁移后循环执行。
第四方面,本公开实施例提供一种虚拟机的热迁移控制装置,用于将虚拟机的设备状态和内存脏页从源物理机迁移到目的物理机,所述源物理机和所述目的物理机上均包括SOC芯片和RDMA设备;所述装置包括:第三控制模块,用于控制所述源物理机的SOC芯片将所述虚拟机的设备状态迁移到所述目的物理机的SOC芯片;以及第四控制模块,用于控制所述源物理机的RDMA设备将所述虚拟机的内存脏页迁移到所述目的物理机的RDMA设备;其中,所述设备状态的迁移过程和所述内存脏页的迁移过程并行地执行。
第五方面,本公开实施例提供一种物理机,所述物理机包括:SOC芯片,用于与其他物理机的SOC芯片进行通信,以在本机与其他物理机之间对虚拟机的设备状态进行迁移;RDMA设备,用于与其他物理机的RDMA设备进行通信,以在本机与其他物理机之间对虚拟机的内存脏页进行迁移;控制单元,用于对本机的SOC芯片和本机的RDMA设备进行控制,以使所述设备状态和所述内存脏页并行地迁移。
第六方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开任一实施例所述的方法。
第七方面,本公开实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本公开任一实施例所述的方法。
本公开实施例先在虚拟机运行过程中对包括虚拟机的设备状态在内的迁移数据进行若干次迭代迁移,每次迭代迁移后如果虚拟机的设备状态发生改变,则通过下一次迭代迁移对发生改变的设备状态进行迁移,并对下一次迭代迁移的迁移时长进行估计。只有在估计出的迁移时长小于预设的时间阈值的情况下,才会在虚拟机暂停状态下进行热迁移,否则重新在虚拟机运行过程中对虚拟机进行下次迭代。这样,虚拟机在暂停状态下需要迁移的数据量大大减小,从而有效降低了热迁移过程中虚拟机的暂停时长。
应当理解,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1是本公开实施例的应用场景的示意图。
图2是本公开实施例的虚拟机热迁移的控制方法的流程图。
图3是本公开实施例的源物理机与目的物理机之间的迁移链路的示意图。
图4是本公开实施例的虚拟内存的示意图。
图5是本公开实施例的物理机架构的示意图。
图6是图5的物理机架构下源物理机与目的物理机之间的迁移链路的示意图。
图7是本公开另一实施例的虚拟机热迁移的控制方法的流程图。
图8是本公开实施例的虚拟机热迁移的控制装置的框图。
图9是本公开另一实施例的虚拟机热迁移的控制装置的框图。
图10是本公开实施例的计算机设备的示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好的理解本公开实施例中的技术方案,并使本公开实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本公开实施例中的技术方案作进一步详细的说明。
图1示例性地示出了本公开实施例的一种应用场景。在该应用场景下,可以在源物理机102上运行虚拟机104。在一些情况下(例如,源物理机102停机维护),需要对虚拟机104进行热迁移,从而在不中断虚拟机104提供的业务的情况下,将虚拟机104运行所需的各种数据(例如,虚拟机104的设备状态)从源物理机102迁移至目的物理机106。其中,热迁移是一种虚拟化技术,用于在虚拟机104不停机的情况下,将其从源物理机102移动到目的物理机106上运行。
由于虚拟机104运行过程中虚拟机104的设备状态会发生改变,因此,为了避免热迁移后源物理机102上存储的设备状态与目的物理机106上存储的设备状态不一致,虚拟机104的热迁移一般在虚拟机104暂停后执行。然而,在一些情况下,虚拟机104的设备状态的数据量较多,这会导致热迁移时虚拟机的暂停时长过长。
基于此,本公开实施例提供一种虚拟机104的热迁移控制方法和装置、介质和计算机设备,先在虚拟机104运行过程中对虚拟机104进行若干次迭代迁移,每次迭代迁移后如果虚拟机104的设备状态发生改变,则通过下一次迭代迁移对发生改变的设备状态进行迁移,并对下一次迭代迁移的迁移时长进行估计。只有在估计结果小于预设的时间阈值的情况下,才会在虚拟机104暂停状态下进行热迁移,否则重新在虚拟机104运行过程中对虚拟机104进行下次迭代。这样,虚拟机104在暂停状态下需要迁移的数据量大大减小,从而有效降低了热迁移过程中虚拟机104的暂停时长。下面结合图1所示的应用场景对本公开实施例的方案进行具体说明。
参见图2,本公开实施例提供一种虚拟机104的热迁移控制方法,用于将虚拟机104的设备状态从虚拟机104所在的源物理机102迁移到目的物理机106,所述方法包括:
在虚拟机104运行过程中对至少部分迁移数据进行初次迭代迁移后,循环执行以下步骤:
步骤202:确定下次迭代迁移的迁移数据的数据量;
步骤204:基于下次迭代迁移的迁移数据的数据量和本次迭代迁移的迁移带宽,估计下次迭代迁移的迁移时长;
步骤206:若所述迁移时长小于预设的时间阈值,在控制所述虚拟机104暂停之后启动下次迭代迁移,并在下次迭代迁移成功后完成所述虚拟机的热迁移;
步骤208:若所述迁移时长大于或等于所述时间阈值,在所述虚拟机104运行过程中启动下次迭代迁移,并返回步骤202。
本公开实施例的步骤202至步骤208可以在虚拟机104运行过程中对至少部分迁移数据进行初次迭代迁移后循环执行。其中,初次迭代迁移即虚拟机104的第一次迭代迁移。其中,每次迭代迁移的迁移数据至少包括所述虚拟机的设备状态。作为一种实施方式,可以在初次迭代迁移时将虚拟机104的全量设备状态作为迁移数据,并从源物理机102迁移到目的物理机106,然而,本公开实施例不限于此,也可以在初次迭代迁移时仅将虚拟机104的部分设备状态作为迁移数据并进行迁移。
在步骤202中,可以确定下次迭代迁移的迁移数据的数据量。在本次(即最近一次)迭代迁移为初次迭代迁移的情况下,下次迭代迁移为第2次迭代迁移;在本次迭代迁移为第2次迭代迁移的情况下,下次迭代迁移为第3次迭代迁移;……;以此类推。不失一般性地,下面将下次迭代迁移记为第i+1次迭代迁移,将本次迭代迁移记为第i次迭代迁移,i为正整数。
在一些实施例中,下次迭代迁移的迁移数据可以基于本次迭代迁移后发生变化的设备状态确定。例如,假设第i次迭代迁移时迁移的设备状态包括{S0,S1,…,Sn}(n为正整数),且在第i次迭代迁移后,{Sk1,Sk2,…,Skm}(k1,k2,…,km均为正整数,且km≤n)发生改变,则可以将{Sk1,Sk2,…,Skm}作为第i+1次进行迭代迁移的迁移数据,从而{Sk1,Sk2,…,Skm}的数据量为第i+1次进行迭代迁移的迁移数据的数据量。
在步骤204中,可以基于步骤202获取的第i+1次进行迭代迁移的迁移数据的数据量以及第i次迭代迁移的迁移带宽估计第i+1次进行迭代迁移的迁移时长。其中,第i次迭代迁移的迁移带宽可以基于第i次迭代迁移的迁移数据量与第i次迭代迁移的迁移时长确定。若第i次迭代迁移为初次迭代迁移,且初次迭代迁移时对全量设备状态进行迁移,第i次迭代迁移的迁移数据量为全量设备状态的总数据量。若第i次迭代迁移不是初次迭代迁移,则第i次迭代迁移的迁移数据量第i-1次迭代迁移后发生改变的设备状态的数据量。假设第i次迭代迁移的迁移数据量记为Ri,第i次迭代迁移的迁移时长记为ti,则第i次迭代迁移的迁移带宽Bi可以记为:
Bi=Ri/ti (1)
从而第i+1次进行迭代迁移的迁移时长的估计结果可以记为:
Figure BDA0003942737700000081
其中,Ri+1为第i+1次进行迭代迁移的迁移数据的数据量,
Figure BDA0003942737700000082
为第i+1次进行迭代迁移的迁移时长的估计结果。
步骤204中得到的估计结果可以用于确定第i+1次迭代迁移时是否可以在虚拟机104处于暂停状态时进行。如果估计结果比较小,则表示第i+1次迭代迁移的耗时较短,即便在虚拟机104处于暂停状态时进行第i+1次迭代迁移,也不会使虚拟机104长时间处于暂停状态,从而可以在虚拟机104处于暂停状态时进行第i+1次迭代迁移。否则,表示第i+1次迭代迁移的耗时较较长,如果在虚拟机104处于暂停状态时进行第i+1次迭代迁移,会使虚拟机104长时间处于暂停状态,从而需要在虚拟机运行时进行第i+1次迭代迁移。
在一些实施例中,可以将步骤204中得到的估计结果与预设的时间阈值进行比较,其中,该时间阈值可以基于虚拟机104上运行业务的业务需求确定。不同类型的业务可以设置不同的时间阈值。基于比较结果可以选择性地执行步骤206和步骤208中的一者。
在步骤206中,如果估计出的迁移时长小于预设的时间阈值,表示第i+1次进行迭代迁移的迁移时长比较小,此时,可以控制虚拟机104进入暂停状态,然后在虚拟机104处于暂停状态时启动第i+1次迭代迁移。在进行完第i+1次迭代迁移之后,虚拟机104的热迁移完成。在本实施例中,在虚拟机104处于暂停状态时可以进行最后一次迭代迁移,以便将最近一次迭代迁移后发生改变的全部设备状态迁移到目的物理机106。
在步骤208中,如果估计出的迁移时长大于或等于所述时间阈值,表示第i+1次进行迭代迁移的迁移时长比较长,此时,可以在虚拟机104运行过程中启动下次迭代迁移,并返回步骤202。
在一些实施例中,每次迭代迁移开始后,可以获取该次迭代迁移的开始时间;对所述开始时间之后发生变化的设备状态进行标记;将标记的设备状态确定为该次迭代迁移后发生变化的设备状态。假设第i次迭代迁移的开始时间记为Ti1,则可以对Ti1之后发生变化的设备状态进行标记,并将标记的设备状态确定为第i次迭代迁移后发生变化的设备状态。进一步地,每次迭代迁移结束后,还可以获取该次迭代迁移的结束时间,从而可以将在该次迭代迁移的开始时间与该次迭代迁移的结束时间之间发生改变的设备状态确定为该次迭代迁移后发生变化的设备状态。假设第i次迭代迁移的结束时间记为Ti2,则可以对Ti1与Ti2之间发生变化的设备状态进行标记,并将标记的设备状态确定为第i次迭代迁移后发生变化的设备状态。
在对设备状态进行标记时,可以为每个设备状态的存储地址设置一个标签,用于表示该存储地址下的设备状态在每次迭代迁移之后是否发生改变。可选地,如果一个存储地址对应的标签在第i次状态迁移之后为1,表示该存储地址下的设备状态在第i次状态迁移之后发生改变;如果一个存储地址对应的标签在第i次状态迁移之后为0,表示该存储地址下的设备状态在第i次状态迁移之后未发生改变。
在每次迭代迁移时,可以由源物理机102将本次迭代迁移时待迁移的设备状态在源物理机102中的存储地址发送到目的物理机106,以使目的物理机106从源物理机102拉取本次迭代迁移时待迁移的设备状态。或者,也可以由目的物理机106将本次迭代迁移时待迁移的设备状态在目的物理机106中的存储地址发送到源物理机102,以使源物理机102向目的物理机106中的存储地址写入本次迭代迁移时待迁移的设备状态。在一些实施例中,源物理机102和目的物理机106可以均包括远程直接内存访问(Remote Direct Memory Access,RDMA)设备,可以由目的物理机106的RDMA设备从源物理机102拉取设备状态,或者由源物理机102的RDMA设备向目的物理机106写入设备状态。
除了对设备状态进行迁移之外,在虚拟机104的热迁移过程中,还可以将虚拟机104的其他数据从源物理机102迁移到目的物理机106。所述其他数据包括但不限于虚拟机104的内存脏页。即,迁移数据除了包括虚拟机104的设备状态,还可以包括虚拟机104的内存脏页。参见图3,在一些实施例中,所述源物理机102与所述目的物理机106之间可以包括多个迁移通道,不同的迁移通道用于对所述虚拟机104中不同的迁移数据进行迭代迁移。所述多个迁移通道中包括用于对虚拟机104的设备状态进行迁移的迁移通道(称为第一迁移通道)。在待迁移的数据包括虚拟机104的内存脏页的实施例中,所述多个迁移通道中还包括用于对虚拟机104的内存脏页进行迁移的迁移通道(称为第二迁移通道)。在待迁移的数据包括除设备状态和内存脏页以外的数据的实施例中,所述多个迁移通道中还包括除第一迁移通道和第二迁移通道以外的其他通道,此处不再一一列举。
在包括多个迁移通道的实施例中,存在多套同时执行的迭代流程,而相关技术中一般只能对内存脏页迁移过程中虚拟机104的暂停时长(downtime)进行控制,而无法对设备状态迁移过程中虚拟机104的downtime进行控制,从而导致设备状态迁移过程中虚拟机104的downtime不可控的问题。为解决该问题,本公开实施例提出了downtime抽象融合的方案,用一套计算逻辑控制多套迭代流程的downtime。参见图4,本公开实施例通过引入抽象内存(abstract memory),用抽象内存代表虚拟机所有需要迭代迁移的数据的总量,abstract memory每轮的改变增量即为所有需要迭代迁移的数据每轮迭代的增量之和,即,将迭代迁移后发生改变的每种数据都抽象为对abstract memory的改变。例如,在图4中,黑色方块代表内存的改变量,灰色方块代表设备状态的改变量,可以将上述二者统一为抽象内存的改变量。
因此,在进行热迁移时,迭代框架会对所有需要迭代的各种迁移数据进行遍历,计算出改变量之和,并将所有迁移数据在同一次迭代迁移时的平均迁移带宽作为该次迭代迁移的迁移带宽,从而可以通过统一的downtime计算方式对多套迭代流程进行downtime计算,以便能够准确地控制各种数据在热迁移过程中虚拟机104的downtime。下面对计算downtime的具体方式进行说明。
在包括多个迁移通道的情况下,所述下次迭代迁移的迁移数据包括本次迭代迁移后各个迁移通道发生改变的迁移数据;所述本次迭代迁移的迁移带宽为本次迭代迁移时各个迁移通道的平均迁移带宽。以迁移通道的数量为v为例,则第i+1次迭代迁移的迁移数据包括第i次迭代迁移后第1个迁移通道发生改变的迁移数据,第i次迭代迁移后第2个迁移通道发生改变的迁移数据,……,以及第i次迭代迁移后第v个迁移通道发生改变的迁移数据。假设第i次迭代迁移后第j个迁移通道发生改变的迁移数据的数据量为Rij(1≤j≤v),则第i次迭代迁移后发生改变的迁移数据的总数据量Ri,total为:
Figure BDA0003942737700000101
假设第i次迭代迁移的总迁移时长为ti,total,则第i次迭代迁移时各个迁移通道的平均迁移带宽Bi,avg可记为:
Bi,avg=Ri,total/ti,total (4)
其中,在每次迭代迁移时,各个迁移通道的迁移数据可以并行地进行迁移,也可以串行地进行迁移。下面分别对并行迁移和串行迁移的实施例进行说明。
在各个迁移通道的迁移数据并行地进行迁移的情况下,第i次迭代迁移的总迁移时长为所有通道的迁移数据进行第i次迭代迁移的时长中的最大者。假设第i次迭代迁移时第j个迁移通道的迁移数据的迁移时长记为tij,则第i次迭代迁移的总迁移时长可记为:
Figure BDA0003942737700000111
在各个迁移通道的迁移数据串行地进行迁移的情况下,第i次迭代迁移的总迁移时长为所有通道的迁移数据进行第i次迭代迁移的时长的总和。第i次迭代迁移的总迁移时长可记为:
Figure BDA0003942737700000112
上述ti,total即为多迁移通道情况下的downtime的估计结果。在ti,total小于预设的时间阈值的情况下,可以在控制所述虚拟机104暂停之后启动各个迁移通道的下次迭代迁移,并在下次迭代迁移成功后完成所述虚拟机104的热迁移;在ti,total大于或等于所述时间阈值的情况下,可以在所述虚拟机104运行过程中启动各个迁移通道的下次迭代迁移,并返回步骤202。
以所述多个迁移通道包括第一迁移通道和第二迁移通道为例,在一些实施例中,参见图5,所述源物理机102和所述目的物理机106上均包括***级芯片(System on Chip,SOC)和RDMA设备,则第一迁移通道为所述源物理机102的SOC芯片和所述目的物理机106的SOC芯片之间的迁移通道,第二迁移通道为所述源物理机102的RDMA设备和所述目的物理机106的RDMA设备之间的迁移通道。其中,图5所示的物理机可以是源物理机102,也可以是目的物理机106。
在这种情况下,参见图6,进行迭代迁移时,可以控制所述源物理机102的SOC芯片通过所述第一迁移通道将每次迭代迁移时待迁移的设备状态下发到所述目的物理机106的SOC芯片,还可以控制所述源物理机102的SOC芯片将每次迭代迁移时待迁移的内存脏页在所述源物理机102中的第一存储地址发送到所述目的物理机106的SOC芯片,以使所述目的物理机106的RDMA设备通过所述第二迁移通道拉取所述第一存储地址中存储的内存脏页。
在进行设备状态迁移时,可以先由源物理机102的SOC芯片对源物理机102中的设备状态进行保存(save),再通过第一迁移通道将保存的设备状态传输到目的物理机106的SOC芯片,然后由目的物理机106的SOC芯片将接收到的设备状态加载(load)到目的物理机106。同一迁移通道的save、传输和load串行执行,不同迁移通道的save、传输和load可以串行或并行执行。
在进行内存脏页迁移时,在进行初次迭代迁移时,如果初次迭代迁移时迁移的设备状态为全量设备状态,第一存储地址包括虚拟机的全量设备状态的存储地址。在一些实施例中,存储地址可以通过所述第一迁移通道下发,源物理机102的SOC芯片与目的物理机106的SOC芯片之间可以采用TCP协议进行通信,从而对设备状态和第一存储地址进行传输。从第2次迭代迁移开始,第一存储地址包括最近一次迭代迁移后发生改变的设备状态的存储地址。
在将第一存储地址下发到目的物理机106的SOC芯片之后,目的物理机106可以根据第一存储地址生成RDMA读请求,并将携带第一存储地址的RDMA读请求发送到源物理机102的RDMA设备。源物理机102的RDMA设备可以基于RDMA读请求中携带的第一存储地址,通过DMA方式从源物理机102中读取待迁移的内存脏页,并通过第二迁移通道将源物理机102的RDMA设备读取的内存脏页下发到目的物理机106的RDMA设备。然后,目的物理机106的RDMA设备可以通过DMA方式将接收到的内存脏页存储到目的物理机106的第二存储地址。
或者,进行迭代迁移时,可以控制所述源物理机102的SOC芯片通过所述第一迁移通道将每次迭代迁移时待迁移的设备状态下发到所述目的物理机106的SOC芯片,还可以在所述源物理机102的SOC芯片接收到所述目的物理机106的SOC芯片发送的第二存储地址之后,控制所述源物理机102的RDMA设备通过所述第二迁移通道将每次迭代迁移时待迁移的内存脏页写入所述第二存储地址。
其中,进行设备状态迁移的实施例可参照前述实施例,此处不再赘述。在进行内存脏页迁移时,目的物理机106的SOC芯片可以将目的物理机106中用于存储内存脏页的第二存储地址通过第一迁移通道发送给源物理机102的SOC芯片。源物理机102的SOC芯片在接收到第二存储地址之后,可以通过DMA方式从源物理机102中读取待迁移的内存脏页,还可以生成携带待迁移的内存脏页和第二存储地址的RDMA写请求,并将RDMA写请求发送到目的物理机106的RDMA设备。目的物理机106的RDMA设备在接收到RDMA写请求之后,可以将RDMA写请求中携带的待迁移的内存脏页通过DMA方式写入第二存储地址。
上述实施例采用RDMA设备之间的迁移通道(即第二迁移通道)来进行内存脏页的迁移,这样,在进行内存脏页的迁移过程中,SOC芯片之间的迁移通道(即第一迁移通道)处于空闲状态,从而可以在进行内存脏页迁移的过程中利用SOC芯片之间的网络传输能力,并行地对设备状态进行迁移。进一步地,在由目的物理机106的RDMA设备拉取内存脏页的实施例中,由于内存脏页是目的物理机106的RDMA设备主动拉取的,源物理机102无需忙于与目的物理机106的RDMA设备交互,因此,能够获得更好的性能。这种采用RDMA设备实现内存脏页提取的架构称为post read架构。
尽管在上述实施例中第一迁移通道和第二迁移通道可以并行地进行迭代迁移,但在实际应用中,第一迁移通道和第二迁移通道也可以串行地进行迭代迁移。若各个迁移通道并行地进行迭代迁移,第i次迭代迁移时各个迁移通道的总迁移时长基于第i次迭代迁移时各个迁移通道的迁移时长的最大值确定。若各个迁移通道串行地进行迭代迁移,第i次迭代迁移时各个迁移通道的总迁移时长基于第i次迭代迁移时各个迁移通道的迁移时长的总和确定。确定总迁移时长的方式可以参考前述公式(5)和公式(6),此处不再赘述。
在虚拟机中运行的业务处于业务低谷期时,通常满足随着迭代次数逐渐增多,每次迭代迁移的迁移数据的数据量逐渐减少(即迭代迁移的迁移时长与迭代迁移的迭代次数反相关)这一条件,从而能够采用上述实施例中的循环步骤来实现虚拟机104的热迁移。然而,在业务高峰期,设备状态的变化往往比较频繁,导致各次迭代迁移的迁移数据的数据量上下波动,从而导致步骤206中估计出的迁移时长小于预设的时间阈值这一条件始终难以满足。这种情况需要对热迁移进行终止,以避免热迁移进入死循环。具体来说,可以获取多次迭代迁移的迁移时长;基于所述多次迭代迁移的迁移时长判断是否满足热迁移终止条件。
在一些实施例中,可以基于多次迭代迁移的迁移时长确定所述多次迭代迁移的迁移时长的变化趋势,基于该变化趋势判断是否满足热迁移终止条件。若所述变化趋势满足所述多次迭代迁移的迁移时长与迭代迁移的迭代次数反相关,则可以判定不满足热迁移终止条件;否则,可以判定满足热迁移终止条件。
在另一些实施例中,可以获取迁移时长大于或等于所述时间阈值的迭代迁移的次数。如果迁移时长大于或等于所述时间阈值的连续多次迭代迁移的次数达到预设次数阈值,则可以判定满足热迁移终止条件。如果在迭代迁移的次数达到预设次数阈值之前的任意一次迭代迁移对应的迁移时长小于预设的时间阈值,可以判定不满足热迁移终止条件。
在再一些实施例中,可以确定在预设时间段内是否存在迁移时长小于所述时间阈值的迭代迁移。如果在预设时间段内的所述多次迁移迭代迁移中每次迭代迁移的迁移时长均大于或等于所述时间阈值,可以判定满足热迁移终止条件。如果在预设时间段内多次迁移迭代迁移中的任意一次迭代迁移的迁移时长小于所述时间阈值,可以判定不满足热迁移终止条件。
在其他实施例中,还可以根据其他条件确定是否满足热迁移终止条件,此处不再一一列举。
在一些实施例中,在判定满足热迁移终止条件的情况下,可以终止迭代迁移。在另一些实施例中,在终止迭代迁移之后,还可以在预设条件的触发下重新尝试热迁移,重新尝试热迁移的方式可参照前述实施例,此处不再赘述。其中,预设条件可以是达到预设的时间间隔,或者接收到人工下发的热迁移指令,或者源物理机102的运行性能满足预设的性能要求等。
本公开实施例具有以下优点:
(1)通过在虚拟机104运行过程中进行多次迭代迁移,使得大部分设备状态在虚拟机104暂停前完成了迁移,需要虚拟机104暂停后迁移的状态比较少,从而实现了减少热迁移downtime的效果。
(2)设备状态的迁移可以和内存脏页的迁移并发进行,并且能对downtime中设备状态的迁移用时进行控制,使得海量设备状态在迁移时,可以通过精确的计算,实现设备状态的downtime可控。
参见图7,本公开实施例还提供一种虚拟机104的热迁移控制方法,用于将虚拟机104的设备状态和内存脏页从源物理机102迁移到目的物理机106,所述源物理机102和所述目的物理机106上均包括SOC芯片和RDMA设备;所述方法包括:
步骤702:控制所述源物理机102的SOC芯片将所述虚拟机104的设备状态迁移到所述目的物理机106的SOC芯片;以及
步骤704:控制所述源物理机102的RDMA设备将所述虚拟机104的内存脏页迁移到所述目的物理机106的RDMA设备;
其中,所述设备状态的迁移过程和所述内存脏页的迁移过程并行地执行。
在一些实施例中,所述控制所述源物理机的RDMA设备将所述虚拟机的内存脏页迁移到所述目的物理机的RDMA设备,包括:控制所述源物理机的SOC芯片将所述虚拟机的内存脏页在所述源物理机中的第一存储地址发送到所述目的物理机的SOC芯片;响应于所述源物理机的RDMA设备接收到所述目的物理机的RDMA设备发送的RDMA读请求,控制所述源物理机的RDMA设备从所述RDMA读请求中携带的第一存储地址中读取所述虚拟机的内存脏页后返回所述目的物理机的RDMA设备。
在一些实施例中,所述控制所述源物理机的RDMA设备将所述虚拟机的内存脏页迁移到所述目的物理机的RDMA设备,包括:在所述源物理机的SOC芯片接收到所述目的物理机的SOC芯片发送的第二存储地址之后,控制所述源物理机的RDMA设备向所述目的物理机的RDMA设备发送携带所述第二存储地址的RDMA写请求,以将所述虚拟机的内存脏页写入所述第二存储地址。
本公开实施例的设备状态与内存脏页可以通过多次迭代迁移从源物理机102迁移到目的物理机106,也可以采用其他方式进行迁移,例如,可以在虚拟机104暂停状态下进行迁移。在采用迭代迁移的方式进行迁移的实施例中,本公开实施例的方法的具体细节详见前述方法实施例,此处不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
参见图8,本公开实施例还提供一种虚拟机的热迁移控制装置,所述虚拟机的设备状态通过多次迭代迁移从源物理机迁移到目的物理机,所述装置包括:
确定模块802,用于确定下次迭代迁移的迁移数据的数据量;
估计模块804,用于基于下次迭代迁移的迁移数据的数据量和本次迭代迁移的迁移带宽,估计下次迭代迁移的迁移时长;
第一控制模块806,用于若所述迁移时长小于预设的时间阈值,在控制所述虚拟机暂停之后启动下次迭代迁移,以完成所述虚拟机的热迁移;
第二控制模块808,用于若所述迁移时长大于或等于所述时间阈值,在所述虚拟机运行过程中启动下次迭代迁移,并返回执行确定模块的功能;
每次迭代迁移的迁移数据至少包括所述虚拟机的设备状态,下次迭代迁移的迁移数据基于本次迭代迁移后发生变化的设备状态确定,所述确定模块802、估计模块804、第一控制模块806和第二控制模块808的功能在所述虚拟机运行过程中对至少部分迁移数据进行初次迭代迁移后循环执行。
参见图9,本公开实施例还提供另一种虚拟机的热迁移控制装置,用于将虚拟机的设备状态和内存脏页从源物理机迁移到目的物理机,所述源物理机和所述目的物理机上均包括SOC芯片和RDMA设备;所述装置包括:
第三控制模块902,用于控制所述源物理机的SOC芯片将所述虚拟机的设备状态迁移到所述目的物理机的SOC芯片;以及
第四控制模块904,用于控制所述源物理机的RDMA设备将所述虚拟机的内存脏页迁移到所述目的物理机的RDMA设备;
其中,所述设备状态的迁移过程和所述内存脏页的迁移过程并行地执行。
本公开实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述任一实施例所述的方法。
图10示出了本公开实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1002、存储器1004、输入/输出接口1006、通信接口1008和总线1010。其中处理器1002、存储器1004、输入/输出接口1006和通信接口1008通过总线1010实现彼此之间在设备内部的通信连接。
处理器1002可以采用通用的中央处理器(Central Processing Unit,CPU)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本公开实施例所提供的技术方案。处理器1002还可以包括显卡,所述显卡可以是Nvidia titan X显卡或者1080Ti显卡等。
存储器1004可以采用只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、静态存储设备,动态存储设备等形式实现。存储器1004可以存储操作***和其他应用程序,在通过软件或者固件来实现本公开实施例所提供的技术方案时,相关的程序代码保存在存储器1004中,并由处理器1002来调用执行。
输入/输出接口1006用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1008用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1010包括一通路,在设备的各个组件(例如处理器1002、存储器1004、输入/输出接口1006和通信接口1008)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1002、存储器1004、输入/输出接口1006、通信接口1008以及总线1010,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本公开实施例方案所必需的组件,而不必包含图中所示的全部组件。
本公开实施例还提供一种物理机,所述物理机包括:
SOC芯片,用于与其他物理机的SOC芯片进行通信,以在本机与其他物理机之间对虚拟机的设备状态进行迁移;
RDMA设备,用于与其他物理机的RDMA设备进行通信,以在本机与其他物理机之间对虚拟机的内存脏页进行迁移;
控制单元,用于对本机的SOC芯片和本机的RDMA设备进行控制,以使所述设备状态和所述内存脏页并行地迁移。
本公开实施例的物理机的具体架构以及具体的热迁移方法可参见图5以及前述方法实施例,此处不再赘述。其中,本公开实施例的物理机可以是源物理机102,也可以是目的物理机106。在本公开实施例的物理机为源物理机102的情况下,上述设备状态和内存脏页通过热迁移从本机迁移到其他物理机;在本公开实施例的物理机为目的物理机106的情况下,上述设备状态和内存脏页通过热迁移从其他物理机迁移到本机。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一实施例所述的方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机装置或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

Claims (13)

1.一种虚拟机的热迁移控制方法,用于将虚拟机的设备状态从源物理机迁移到目的物理机,所述方法包括:
在虚拟机运行过程中对至少部分迁移数据进行初次迭代迁移后,循环执行以下步骤:
确定下次迭代迁移的迁移数据的数据量;
基于下次迭代迁移的迁移数据的数据量和本次迭代迁移的迁移带宽,估计下次迭代迁移的迁移时长;
若所述迁移时长小于预设的时间阈值,在控制所述虚拟机暂停之后启动下次迭代迁移,并在下次迭代迁移成功后完成所述虚拟机的热迁移;
若所述迁移时长大于或等于所述时间阈值,在所述虚拟机运行过程中启动下次迭代迁移,并返回确定下次迭代迁移的迁移数据的数据量的步骤;
每次迭代迁移的迁移数据至少包括所述虚拟机的设备状态,下次迭代迁移的迁移数据基于本次迭代迁移后发生变化的设备状态确定。
2.根据权利要求1所述的方法,所述方法还包括:
获取本次迭代迁移的开始时间;
对所述开始时间之后发生变化的设备状态进行标记;
将标记的设备状态确定为本次迭代迁移后发生变化的设备状态。
3.根据权利要求1所述的方法,所述源物理机与所述目的物理机之间包括多个迁移通道,不同的迁移通道用于对所述虚拟机中不同的迁移数据进行迭代迁移,其中一个迁移通道的迁移数据为所述虚拟机的设备状态;所述初次迭代迁移包括对各个迁移通道的迁移数据的初次迁移;
所述下次迭代迁移的迁移数据包括本次迭代迁移后各个迁移通道发生改变的迁移数据;
所述本次迭代迁移的迁移带宽为本次迭代迁移时各个迁移通道的平均迁移带宽。
4.根据权利要求3所述的方法,所述迁移数据包括所述虚拟机的设备状态和内存脏页;所述源物理机和所述目的物理机上均包括SOC芯片和RDMA设备;所述多个迁移通道包括:
所述源物理机的SOC芯片和所述目的物理机的SOC芯片之间的第一迁移通道,用于对所述虚拟机的设备状态进行迭代迁移;以及
所述目的物理机的RDMA设备与所述源物理机的RDMA设备之间的第二迁移通道,用于对所述虚拟机的内存脏页进行迭代迁移。
5.根据权利要求4所述的方法,所述方法还包括:
控制所述源物理机的SOC芯片通过所述第一迁移通道将每次迭代迁移时待迁移的设备状态下发到所述目的物理机的SOC芯片;以及
控制所述源物理机的SOC芯片将每次迭代迁移时待迁移的内存脏页在所述源物理机中的第一存储地址发送到所述目的物理机的SOC芯片,以使所述目的物理机的RDMA设备通过所述第二迁移通道拉取所述第一存储地址中存储的内存脏页。
6.根据权利要求4所述的方法,所述方法还包括:
控制所述源物理机的SOC芯片通过所述第一迁移通道将每次迭代迁移时待迁移的设备状态下发到所述目的物理机的SOC芯片;以及
在所述源物理机的SOC芯片接收到所述目的物理机的SOC芯片发送的第二存储地址之后,控制所述源物理机的RDMA设备通过所述第二迁移通道将每次迭代迁移时待迁移的内存脏页写入所述第二存储地址。
7.根据权利要求3所述的方法,所述平均迁移带宽基于本次迭代迁移时各个迁移通道的迁移数据的总数据量与本次迭代迁移时各个迁移通道的总迁移时长确定,其中:
若各个迁移通道并行地进行迭代迁移,所述本次迭代迁移时各个迁移通道的总迁移时长基于本次迭代迁移时各个迁移通道的迁移时长的最大值确定;或者
若各个迁移通道串行地进行迭代迁移,所述本次迭代迁移时各个迁移通道的总迁移时长基于本次迭代迁移时各个迁移通道的迁移时长的总和确定。
8.根据权利要求1所述的方法,所述方法还包括:
获取多次迭代迁移的迁移时长;
基于所述多次迭代迁移的迁移时长判断是否满足热迁移终止条件。
9.根据权利要求8所述的方法,所述基于所述多次迭代迁移的迁移时长判断是否满足热迁移终止条件,包括:
若在预设时间段内的所述多次迁移迭代迁移中每次迭代迁移的迁移时长均大于或等于所述时间阈值,判定满足热迁移终止条件。
10.根据权利要求8所述的方法,所述方法还包括:
在判定满足热迁移终止条件的情况下,终止迭代迁移。
11.一种虚拟机的热迁移控制装置,所述虚拟机的设备状态通过多次迭代迁移从源物理机迁移到目的物理机,所述装置包括:
确定模块,用于确定下次迭代迁移的迁移数据的数据量;
估计模块,用于基于下次迭代迁移的迁移数据的数据量和本次迭代迁移的迁移带宽,估计下次迭代迁移的迁移时长;
第一控制模块,用于若所述迁移时长小于预设的时间阈值,在控制所述虚拟机暂停之后启动下次迭代迁移,以完成所述虚拟机的热迁移;
第二控制模块,用于若所述迁移时长大于或等于所述时间阈值,在所述虚拟机运行过程中启动下次迭代迁移,并返回执行确定模块的功能;
每次迭代迁移的迁移数据至少包括所述虚拟机的设备状态,下次迭代迁移的迁移数据基于本次迭代迁移后发生变化的设备状态确定,所述确定模块、估计模块、第一控制模块和第二控制模块的功能在所述虚拟机运行过程中对至少部分迁移数据进行初次迭代迁移后循环执行。
12.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1至10任意一项所述的方法。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至10任意一项所述的方法。
CN202211419964.0A 2022-11-14 2022-11-14 虚拟机的热迁移控制方法和装置、介质和计算机设备 Pending CN115712486A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211419964.0A CN115712486A (zh) 2022-11-14 2022-11-14 虚拟机的热迁移控制方法和装置、介质和计算机设备
PCT/CN2023/131313 WO2024104295A1 (zh) 2022-11-14 2023-11-13 虚拟机的热迁移控制方法和装置、介质和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211419964.0A CN115712486A (zh) 2022-11-14 2022-11-14 虚拟机的热迁移控制方法和装置、介质和计算机设备

Publications (1)

Publication Number Publication Date
CN115712486A true CN115712486A (zh) 2023-02-24

Family

ID=85233036

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211419964.0A Pending CN115712486A (zh) 2022-11-14 2022-11-14 虚拟机的热迁移控制方法和装置、介质和计算机设备

Country Status (2)

Country Link
CN (1) CN115712486A (zh)
WO (1) WO2024104295A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024104295A1 (zh) * 2022-11-14 2024-05-23 杭州阿里云飞天信息技术有限公司 虚拟机的热迁移控制方法和装置、介质和计算机设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530167B (zh) * 2013-09-30 2017-04-05 华为技术有限公司 一种虚拟机内存数据的迁移方法及相关装置和集群***
CN104965757B (zh) * 2015-01-21 2018-03-30 深圳市腾讯计算机***有限公司 虚拟机热迁移的方法、虚拟机迁移管理装置及***
JP2019049818A (ja) * 2017-09-08 2019-03-28 富士通株式会社 情報処理装置、情報処理システム、情報処理システムの制御方法及びライブマイグレーション制御プログラム
CN111638937A (zh) * 2020-04-23 2020-09-08 龙芯中科技术有限公司 虚拟机的迁移方法、装置、电子设备及存储介质
CN113312138A (zh) * 2020-05-27 2021-08-27 阿里巴巴集团控股有限公司 虚拟机的迁移方法及装置、***、存储介质
CN114048164B (zh) * 2022-01-14 2022-04-12 湖北芯擎科技有限公司 芯片互联方法、***、设备及可读存储介质
CN115712486A (zh) * 2022-11-14 2023-02-24 阿里云计算有限公司 虚拟机的热迁移控制方法和装置、介质和计算机设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024104295A1 (zh) * 2022-11-14 2024-05-23 杭州阿里云飞天信息技术有限公司 虚拟机的热迁移控制方法和装置、介质和计算机设备

Also Published As

Publication number Publication date
WO2024104295A1 (zh) 2024-05-23

Similar Documents

Publication Publication Date Title
CN107590099B (zh) 一种多主机访问从机的方法、扩展装置及存储介质
US20170039485A1 (en) System and Method for Balancing Computation with Communication in Parallel Learning
CN113535721B (zh) 一种数据写入方法及装置
US11010094B2 (en) Task management method and host for electronic storage device
WO2019019926A1 (zh) ***参数的优化方法、装置及设备、可读介质
WO2024104295A1 (zh) 虚拟机的热迁移控制方法和装置、介质和计算机设备
CN113867644B (zh) 磁盘阵列优化方法、装置、计算机设备及存储介质
WO2024041400A1 (zh) 模型训练任务的调度方法、装置及电子设备
CN103345498A (zh) 基于中转服务器的网页加载方法、装置及***
CN110955390B (zh) 数据处理方法、装置、电子设备和存储介质
CN113033785B (zh) 芯片、神经网络训练***、内存管理方法及装置、设备
CN110928489A (zh) 一种写数据方法、装置及存储节点
CN111666184B (zh) 固态驱动器ssd硬盘测试方法、装置及电子设备
CN116089477B (zh) 分布式训练方法及***
CN109656479A (zh) 一种构建存储器命令序列的方法及装置
CN106933646B (zh) 一种创建虚拟机的方法及装置
CN116483584A (zh) Gpu的任务处理方法、装置、电子设备和存储介质
CN112416826A (zh) 专用计算芯片、dma数据传输***及方法
CN111401541A (zh) 一种数据传输控制方法及装置
CN109032965B (zh) 一种数据读取方法、主机及存储设备
CN111461310A (zh) 处理神经网络模型的神经网络设备、神经网络***和方法
US20200380345A1 (en) Neural network chip, method of using neural network chip to implement de-convolution opeation, electronic device, and computer readable storage medium
CN112416253B (zh) 一种基于分布式存储的存储区域动态调整方法及装置
CN116009792B (zh) 一种图像处理中的数据读取、写入装置及方法、电子设备
CN116360708B (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