虚拟机迁移方法及装置制造方法

文档序号:6526877阅读:156来源:国知局
虚拟机迁移方法及装置制造方法
【专利摘要】本发明涉及一种虚拟机迁移方法及装置。其中,该虚拟机迁移方法包括:根据数据块访问记录确定源虚拟机的第一数据块;向目的主机拷贝所述第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息,以在所述目的主机根据所述第一数据块、所述源虚拟机的临时数据和状态信息启动目的虚拟机;其中,所述源虚拟机的临时数据包括所述源虚拟机中央处理单元CPU寄存器和内存中的数据;所述状态信息包括所述源虚拟机虚拟设备配置信息;向所述目的主机拷贝所述源虚拟机的第二数据块,所述第二数据块为所述源虚拟机的除第一数据块之外的数据块。
【专利说明】虚拟机迁移方法及装置
【技术领域】
[0001]本发明涉及计算机【技术领域】,尤其涉及一种虚拟机迁移方法及装置。
【背景技术】
[0002]在无共享存储虚拟机在线整体迁移技术中,迁移时间是最重要的性能指标之一。一般来说,迁移时间指的是虚拟机整体迁移的总时间,即从源主机迁移开始到目的主机运行虚拟机的时间,包括:存储迁移、临时数据迁移、状态信息迁移和网络重定向的时间。
[0003]在现有的无共享存储下虚拟机在线整体迁移技术中,首先都要进行虚拟机存储的迁移。而通常情况下,虚拟机存储的拷贝过程需要较长的时间。例如:以现今网络带宽和存储设备读写速度考虑,数据的拷贝最多达到几百MB/秒,而虚拟机磁盘则有着不断增大的趋势,通常都能达到几百GB甚至上TB的规模。以虚拟机磁盘500GB,网络传输250MB/s为例计算,完成虚拟机存储拷贝大约需要30分钟的时间。这样的虚拟机存储整体迁移方式,迁移时间长,不利于快速释放源主机的资源。

【发明内容】

[0004]有鉴于此,本发明提供一种虚拟机迁移方法及装置,用以减少虚拟机迁移时间,实现虚拟机的快速迁移,从而使源虚拟机所在的主机的资源得到快速的释放。
[0005]在第一方面,本发明实施例提供一种虚拟机迁移方法,所述方法包括:
[0006]根据数据块访问记录确定源虚拟机的第一数据块;
[0007]向目的主机拷贝所述第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息,以在所述目的主机根据所述第一数据块、所述源虚拟机的临时数据和状态信息启动目的虚拟机;其中,所述源虚拟机的临时数据包括所述源虚拟机中央处理单元CPU寄存器和内存中的数据;所述状态信息包括所述源虚拟机虚拟设备配置信息;
[0008]向所述目的主机拷贝所述源虚拟机的第二数据块,所述第二数据块为所述源虚拟机的除第一数据块之外的数据块。
[0009]在第一方面的第一种可能实现的方式中,所述数据块访问记录用于记录从所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块及所述发生读写请求的数据块的位置。
[0010]结合第一方面的第一种可能实现的方式,在第二种可能实现的方式中,所述数据块访问记录还用于记录至少一次所述源虚拟机从启动到注销过程中发生读写请求的数据块及所述至少一次所述源虚拟机从启动到注销过程中发生读写请求的数据块的位置。
[0011]结合第一方面的第一种可能实现的方式,在第三种可能实现的方式中,所述根据数据块访问记录确定源虚拟机的第一数据块具体包括:将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块确定为所述第一数据块。
[0012]结合第一方面的第二种可能实现的方式,在第四种可能实现的方式中,所述根据数据块访问记录确定源虚拟机的第一数据块具体包括:将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块和所述源虚拟机在本次启动前的至少一次启动到注销的过程中均发生块读写请求的数据块确定为所述第一数据块;或,将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块和所述源虚拟机在本次启动前的至少一次启动到注销的过程中所有发生块读写请求的数据块确定为所述第一数据块。
[0013]结合第一方面或第一方面的第一种可能实现的方式或第一方面的第二种可能实现的方式或第一方面的第三种可能实现的方式或第一方面的第四种可能实现的方式,在第五种可能实现的方式中,所述方法还包括:当正在拷贝或已拷贝的所述第一数据块发生变化时,向所述目的主机拷贝所述第一数据块发生变化后的数据块。
[0014]结合第一方面或第一方面的第一种可能实现的方式或第一方面的第二种可能实现的方式或第一方面的第三种可能实现的方式或第一方面的第四种可能实现的方式或第一方面的第五种可能实现的方式,在第六种可能实现的方式中,所述向所述目的主机拷贝所述源虚拟机的第二数据块,具体包括:确定所述第二数据块的优先级;按照所述优先级向所述目的主机拷贝所述第二数据块。
[0015]在第二方面,本发明实施例提供一种虚拟机迁移方法,所述方法包括:
[0016]接收并存储源虚拟机的第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息;其中,所述源虚拟机的临时数据包括所述源虚拟机中央处理单元CPU寄存器和内存中的数据;所述状态信息包括所述源虚拟机虚拟设备配置信息;
[0017]根据所述源虚拟机的第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息在目的主机启动目的虚拟机;
[0018]接收并存储所述源虚拟机的第二数据块,所述第二数据块为所述源虚拟机的除第一数据块之外的数据块。
[0019]在第二方面的第一种可能实现的方式中,所述方法还包括:当所述源虚拟机中正在拷贝或已拷贝的所述第一数据块发生变化时,接收并存储所述第一数据块发生变化后的数据块。
[0020]结合第二方面或第二方面的第一种可能实现的方式,在第二种可能实现的方式中,所述源虚拟机的第二数据块是从所述源虚拟机按照优先级拷贝至所述目的主机的。
[0021]在第三方面,本发明实施例提供一种虚拟机迁移装置,所述装置包括:
[0022]确定单元,用于根据数据块访问记录确定源虚拟机的第一数据块;
[0023]拷贝单元,用于向目的主机拷贝所述第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息,以在所述目的主机根据所述第一数据块、所述源虚拟机的临时数据和状态信息启动目的虚拟机;其中,所述源虚拟机的临时数据包括所述源虚拟机中央处理单元CPU寄存器和内存中的数据;所述状态信息包括所述源虚拟机虚拟设备配置信息;
[0024]所述拷贝单元还用于向所述目的主机拷贝所述源虚拟机的第二数据块,所述第二数据块为所述源虚拟机的除第一数据块之外的数据块。
[0025]在第三方面的第一种可能实现的方式中,所述数据块访问记录用于记录从所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块及所述发生读写请求的数据块的位置。
[0026]结合第三方面的第一种可能实现的方式,在第二种可能实现的方式中,所述数据块访问记录还用于记录至少一次所述源虚拟机从启动到注销过程中发生读写请求的数据块及所述至少一次所述源虚拟机从启动到注销过程中发生读写请求的数据块的位置。
[0027]结合第三方面的第一种可能实现的方式,在第三种可能实现的方式中,所述确定单元具体用于:将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块确定为第一数据块。
[0028]结合第三方面的第二种可能实现的方式,在第四种可能实现的方式中,所述确定单元具体用于:将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块和所述源虚拟机在本次启动前的至少一次启动到注销的过程中均发生块读写请求的数据块确定为第一数据块;或,将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块和所述源虚拟机在本次启动前的至少一次启动到注销的过程中所有发生块读写请求的数据块确定为第一数据块。
[0029]结合第三方面或第三方面的第一种可能实现的方式或第三方面的第二种可能实现的方式或第三方面的第三种可能实现的方式或第三方面的第四种可能实现的方式,在第五种可能实现的方式中,所述拷贝单元还用于:当正在拷贝或已拷贝的所述第一数据块发生变化时,向所述目的主机拷贝所述第一数据块发生变化后的数据块。
[0030]结合第三方面或第三方面的第一种可能实现的方式或第三方面的第二种可能实现的方式或第三方面的第三种可能实现的方式或第三方面的第四种可能实现的方式或第三方面的第五种可能实现的方式,在第六种可能实现的方式中,所述拷贝单元具体用于:确定所述第二数据块的优先级;按照所述优先级向所述目的主机拷贝所述第二数据块。
[0031]在第四方面,本发明实施例提供一种虚拟机迁移装置,所述装置包括:
[0032]接收单元,用于接收并存储源虚拟机发的第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息;其中,所述源虚拟机的临时数据包括所述源虚拟机中央处理单元CPU寄存器和内存中的数据;所述状态信息包括所述源虚拟机虚拟设备配置信息;
[0033]启动单元,用于根据所述源虚拟机的第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息在目的主机启动目的虚拟机;
[0034]所述接收单元还用于接收并存储所述源虚拟机的第二数据块,所述第二数据块为所述源虚拟机的除第一数据块之外的数据块。
[0035]在第四方面的第一种可能实现的方式中,所述接收单元还用于:当所述源虚拟机中正在拷贝或已拷贝的所述第一数据块发生变化时,接收并存储所述第一数据块发生变化后的数据块。
[0036]通过上述方案,将源虚拟机的数据块进行分块发送,首先向目的主机拷贝能使目的虚拟机启动的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息,以在目的主机快速启动目的虚拟机,不需要等到源虚拟机的所有数据块拷贝完毕后再启动目的虚拟机,因此可有效减少虚拟机迁移时间,实现虚拟机的快速迁移,从而使源虚拟机所在的主机的资源得到快速的释放。
【专利附图】

【附图说明】
[0037]图1为本发明实施例一提供的一种虚拟机迁移方法的流程示意图;
[0038]图2为本发明实施例二提供的一种虚拟机迁移方法的流程示意图;
[0039]图3为本发明实施例三提供的一种虚拟机迁移装置的结构示意图;
[0040]图4为本发明实施例四提供的一种虚拟机迁移装置的结构示意图。
【具体实施方式】
[0041]为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0042]下面以图1为例详细说明本发明实施例一提供的一种虚拟机迁移方法,图1为本发明实施例一提供的一种虚拟机迁移方法的流程示意图。该虚拟机迁移方法的执行主体可以为源虚拟机所在主机中的迁移代理,该迁移代理可配置于源虚拟机所在主机中的控制台虚拟机中。如图1所示,该虚拟机迁移方法包括以下步骤:
[0043]步骤S101,根据数据块访问记录确定源虚拟机的第一数据块。
[0044]源虚拟机所在主机中的控制台虚拟机包括数据块访问记录模块,源虚拟机每启动一次,该数据块访问记录模块生成一个对应该次启动的数据块访问记录,记录源虚拟机从该次启动到注销之间发生读写请求的数据块及发生读写请求的数据块的位置。当需要迁移源虚拟机时,源虚拟机读取相应的数据块访问记录,以确定第一数据块。
[0045]因此,数据块访问记录用于至少记录从源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块及发生读写请求的数据块的位置。其中,第二数据块为源虚拟机的除第一数据块之外的数据块。除此之外,数据块访问记录还可以用于记录至少一次源虚拟机从启动到注销过程中发生读写请求的数据块及所述至少一次源虚拟机从启动到注销过程中发生读写请求的数据块的位置。
[0046]相应的,根据数据块访问记录确定源虚拟机的第一数据块可分为至少以下三种情况:
[0047]第一种,仅将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝所述源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块确定为第一数据块。
[0048]第二种,将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块和源虚拟机在本次启动前的至少一次启动到注销的过程中均发生块读写请求的数据块确定为第一数据块。
[0049]第三种,将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块和源虚拟机在本次启动前的至少一次启动到注销的过程中所有发生块读写请求的数据块确定为第一数据块。
[0050]步骤S102,向目的主机拷贝第一数据块、源虚拟机的临时数据和源虚拟机的状态信息。[0051]其中,源虚拟机的临时数据包括源虚拟机中央处理单元(CPU)寄存器和内存中的数据。状态信息包括源虚拟机虚拟设备配置信息,源虚拟机虚拟设备配置信息具体为源虚拟机CPU、内存、存储控制器和网络等配置信息。
[0052]目的主机中的迁移代理在接收到第一数据块、源虚拟机的临时数据和源虚拟机的状态信息后,首先将第一数据块、源虚拟机的临时数据和源虚拟机的状态信息存储到目的主机的共享存储中,然后根据该第一数据块、源虚拟机的临时数据和源虚拟机的状态信息在目的主机启动目的虚拟机。启动目的虚拟机包括:关联相关物理设备,网络重定向及运行虚拟机业务等。
[0053]按照迁移时间的定义(即从源主机迁移开始到目的主机运行虚拟机的时间),迁移时间只需计算从步骤SlOl到步骤S102所用的时间。由于在步骤SlOl到步骤S102拷贝的不是源虚拟机对应的全部数据块,因此相较于现有的虚拟机迁移方法,本实施例提供的虚拟机迁移方法的迁移时间短,迁移速度快。
[0054]需要说明的是,由于通过第一种方式确定的第一数据块最少,通过第三种确定的第一数据块最多。因此通过第一种方式确定第一数据块后,虚拟机迁移的速度最快。通过第三种方式确定第一数据块后,虚拟机迁移的速度最慢。但是通过第三种方式确定第一数据块后,再进行虚拟机迁移,发生例外访问的概率更低。其中,例外访问是指用户请求访问目的主机的共享存储中还未存储的数据块。
[0055]优选地,可采用迭代的方式向目的主机拷贝第一数据块,即在步骤S102之后,还可以包括:当正在拷贝的第一数据块或已被拷贝的第一数据块发生变化时,向目的主机拷贝第一数据块发生变化后的数据块。
[0056]步骤S103,向目的主机拷贝源虚拟机的第二数据块。
[0057]具体的,确定第二数据块的优先级,然后按照第二数据块的优先级从高到低的顺序,向目的主机拷贝第二数据块。
[0058]在拷贝第二数据块的过程中,第二数据块的优先级是可以根据目的虚拟机的需求进行调整的。因此,该方法还可以包括:接收目的主机中的迁移代理发送的优先拷贝请求,该优先拷贝请求携带第二数据块的位置信息。相应的,源主机中的迁移代理优先向目的主机拷贝第二数据块的位置信息对应的数据块。
[0059]另外,在完成步骤S102后,便可以确定迁移已成功,则关闭源虚拟机,并释放该源虚拟机所在主机中的该源虚拟机所占用的资源。
[0060]通过利用本发明实施例一提供的虚拟机迁移方法,将源虚拟机的数据块进行分块发送,首先向目的主机拷贝能使目的虚拟机启动的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息,以在目的主机快速启动目的虚拟机,不需要等到源虚拟机的所有数据块拷贝完毕后再启动目的虚拟机,因此可有效减少虚拟机迁移时间,实现虚拟机的快速迁移,从而使源虚拟机所在的主机的资源得到快速的释放。
[0061]下面以图2为例详细说明本发明实施例二提供的一种虚拟机迁移方法,图2为本发明实施例二提供的一种虚拟机迁移方法的流程示意图。该虚拟机迁移方法的执行主体为目的主机中的迁移代理,该迁移代理可配置于目的主机中的控制台虚拟机中。如图2所示,该虚拟机迁移方法包括以下步骤:
[0062]步骤S201,接收并存储源虚拟机的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息。
[0063]其中,第一数据块是由源虚拟机所在主机的迁移代理根据源虚拟机的数据块访问记录确定的。根据数据块访问记录确定源虚拟机的第一数据块可分为至少以下三种情况:第一种,仅将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝所述源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块确定为第一数据块。第二种,将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块和源虚拟机在本次启动前的至少一次启动到注销的过程中均发生块读写请求的数据块确定为第一数据块。第三种,将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块和源虚拟机在本次启动前的至少一次启动到注销的过程中所有发生块读写请求的数据块确定为第一数据块。其中,第二数据块为源虚拟机的除第一数据块之外的数据块。
[0064]源虚拟机的临时数据包括源虚拟机中央处理单元(CPU)寄存器和内存中的数据。状态信息包括源虚拟机虚拟设备配置信息,源虚拟机虚拟设备配置信息具体为源虚拟机CPU、内存、存储控制器和网络等配置信息。
[0065]另外,由于在拷贝第一数据块的过程中,正在拷贝的第一数据块或已被拷贝的第一数据块可能会发生变化,所以源虚拟机所在主机中的迁移代理采用迭代的方式拷贝第一数据块,即在发送完所有第一数据块后,还需要发送发生变化的第一数据块。因此,该方法还包括:当源虚拟机中正在拷贝或已拷贝的第一数据块发生变化时,接收并存储第一数据块发生变化后的数据块。
[0066]步骤S202,根据源虚拟机的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息在目的主机启动目的虚拟机。
[0067]目的主机中的迁移代理在接收到第一数据块、源虚拟机的临时数据和源虚拟机的状态信息后,首先将第一数据块、源虚拟机的临时数据和源虚拟机的状态信息存储到目的主机的共享存储中,然后根据该第一数据块、源虚拟机的临时数据和源虚拟机的状态信息在目的主机启动目的虚拟机。启动目的虚拟机包括:关联相关物理设备,网络重定向及运行虚拟机业务等。
[0068]按照迁移时间的定义(即从源主机迁移开始到目的主机运行虚拟机的时间),迁移时间只需计算从步骤S201到步骤S202所用的时间。由于在步骤S201到步骤S202拷贝的不是源虚拟机对应的全部数据块,因此相较于现有的虚拟机迁移方法,本实施例提供的虚拟机迁移方法的迁移时间短,迁移速度快。
[0069]步骤S203,接收并存储源虚拟机的第二数据块。
[0070]源虚拟机所在主机中的迁移代理按照第二数据块的优先级从高到低的顺序,向目的主机拷贝第二数据块。但是,当目的虚拟机发生例外访问时,目的主机中的迁移代理可以向源虚拟机所在主机中的迁移代理发送优先拷贝请求,该优先拷贝请求携带第二数据块的位置信息,以使源虚拟机所在主机中的迁移代理优先向目的主机拷贝第二数据块的位置信息对应的数据块。
[0071]通过利用本发明实施例二提供的虚拟机迁移方法,目的主机的迁移代理首先接收并存储能使目的虚拟机启动的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息,然后便可以根据能使目的虚拟机启动的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息在目的主机快速启动目的虚拟机,不需要等到源虚拟机的所有数据块全部迁移完毕后再启动目的虚拟机,因此可有效减少虚拟机迁移时间,实现虚拟机的快速迁移,从而使源虚拟机所在的主机的资源得到快速的释放。
[0072]下面以图3为例详细说明本发明实施例三提供的一种虚拟机迁移装置,图3为本发明实施例三提供的一种虚拟机迁移装置的结构示意图。该虚拟机迁移装置可以具体为源虚拟机所在主机中的迁移代理,该迁移代理可配置于源虚拟机所在主机中的控制台虚拟机中,用以实现本发明实施例一提供的虚拟机迁移方法。
[0073]如图3所示,该虚拟机迁移装置包括:确定单元310和拷贝单元320。
[0074]确定单元310用于根据数据块访问记录确定源虚拟机的第一数据块。
[0075]数据块访问记录用于至少记录从源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块及发生读写请求的数据块的位置。其中,第二数据块为源虚拟机的除第一数据块之外的数据块。除此之外,数据块访问记录还可以用于记录至少一次源虚拟机从启动到注销过程中发生读写请求的数据块及所述至少一次源虚拟机从启动到注销过程中发生读写请求的数据块的位置。
[0076]相应的,根据数据块访问记录确定源虚拟机的第一数据块可分为至少以下三种情况:
[0077]第一种,确定单元310仅将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝所述源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块确定为第一数据块。
[0078]第二种,确定单元310将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块和源虚拟机在本次启动前的至少一次启动到注销的过程中均发生块读写请求的数据块确定为第一数据块。
[0079]第三种,确定单元310将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块和源虚拟机在本次启动前的至少一次启动到注销的过程中所有发生块读写请求的数据块确定为第一数据块。
[0080]拷贝单元320用于向目的主机拷贝第一数据块、源虚拟机的临时数据和源虚拟机的状态信息。
[0081]其中,源虚拟机的临时数据包括源虚拟机中央处理单元(CPU)寄存器和内存中的数据。状态信息包括源虚拟机虚拟设备配置信息,源虚拟机虚拟设备配置信息具体为源虚拟机CPU、内存、存储控制器和网络等配置信息。
[0082]目的主机中的迁移代理在接收到第一数据块、源虚拟机的临时数据和源虚拟机的状态信息后,首先将第一数据块、源虚拟机的临时数据和源虚拟机的状态信息存储到目的主机的共享存储中,然后根据该第一数据块、源虚拟机的临时数据和源虚拟机的状态信息在目的主机启动目的虚拟机。启动目的虚拟机包括:关联相关物理设备,网络重定向及运行虚拟机业务等。
[0083]优选地,拷贝单元320可采用迭代的方式向目的主机拷贝第一数据块,拷贝单元320还用于当正在拷贝的第一数据块或已被拷贝的第一数据块发生变化时,向目的主机拷贝第一数据块发生变化后的数据块。
[0084]拷贝单元320还用于向目的主机拷贝源虚拟机的第二数据块。[0085]具体的,拷贝单元320确定第二数据块的优先级,然后按照第二数据块的优先级从高到低的顺序,向目的主机拷贝第二数据块。
[0086]在拷贝单元320拷贝第二数据块的过程中,第二数据块的优先级是可以根据目的虚拟机的需求进行调整的。因此,拷贝单元320还用于接收目的主机中的迁移代理发送的优先拷贝请求,该优先拷贝请求携带第二数据块的位置信息。相应的,拷贝单元320优先向目的主机拷贝第二数据块的位置信息对应的数据块。
[0087]通过利用本发明实施例三提供的虚拟机迁移装置,将源虚拟机的数据块进行分块发送,首先向目的主机拷贝能使目的虚拟机启动的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息,以在目的主机快速启动目的虚拟机,不需要等到源虚拟机的所有数据块拷贝完毕后再启动目的虚拟机,因此可有效减少虚拟机迁移时间,实现虚拟机的快速迁移,从而使源虚拟机所在的主机的资源得到快速的释放。
[0088]下面以图4为例详细说明本发明实施例四提供的一种虚拟机迁移装置,图4为本发明实施例四提供的一种虚拟机迁移装置的结构示意图。该虚拟机迁移装置可以具体为目的主机中的迁移代理,该迁移代理可配置于目的主机中的控制台虚拟机中,用以实现本发明实施例二提供的虚拟机迁移方法。
[0089]如图4所示,该虚拟机迁移装置包括:接收单元410和启动单元420。
[0090]接收单元410用于接收并存储源虚拟机的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息。
[0091]其中,第一数据块是由源虚拟机所在主机的迁移代理根据源虚拟机的数据块访问记录确定的。根据数据块访问记录确定源虚拟机的第一数据块可分为至少以下三种情况:第一种,仅将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝所述源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块确定为第一数据块。第二种,将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块和源虚拟机在本次启动前的至少一次启动到注销的过程中均发生块读写请求的数据块确定为第一数据块。第三种,将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块和源虚拟机在本次启动前的至少一次启动到注销的过程中所有发生块读写请求的数据块确定为第一数据块。其中,第二数据块为源虚拟机的除第一数据块之外的数据块。
[0092]源虚拟机的临时数据包括源虚拟机中央处理单元(CPU)寄存器和内存中的数据。状态信息包括源虚拟机虚拟设备配置信息,源虚拟机虚拟设备配置信息具体为源虚拟机CPU、内存、存储控制器和网络等配置信息。
[0093]另外,由于在拷贝第一数据块的过程中,正在拷贝的第一数据块或已被拷贝的第一数据块可能会发生变化,所以源虚拟机所在主机中的迁移代理采用迭代的方式拷贝第一数据块,即在发送完所有第一数据块后,还需要发送发生变化的第一数据块。因此,接收单元410还用于当源虚拟机中正在拷贝或已拷贝的第一数据块发生变化时,接收并存储第一数据块发生变化后的数据块。
[0094]启动单元420用于根据源虚拟机的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息在目的主机启动目的虚拟机。
[0095]启动单元420根据第一数据块、源虚拟机的临时数据和源虚拟机的状态信息在目的主机启动目的虚拟机。启动目的虚拟机包括:关联相关物理设备,网络重定向及运行虚拟机业务等。
[0096]接收单元410还用于接收并存储源虚拟机的第二数据块。
[0097]源虚拟机所在主机中的迁移代理按照第二数据块的优先级从高到低的顺序,向目的主机拷贝第二数据块。但是,当目的虚拟机发生例外访问时,接收单元410可以向源虚拟机所在主机中的迁移代理发送优先拷贝请求,该优先拷贝请求携带第二数据块的位置信息,以使源虚拟机所在主机中的迁移代理优先向目的主机拷贝第二数据块的位置信息对应的数据块。
[0098]通过利用本发明实施例四提供的虚拟机迁移装置,目的主机的虚拟机迁移装置首先接收并存储能使目的虚拟机启动的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息,然后便可以根据能使目的虚拟机启动的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息在目的主机快速启动目的虚拟机,不需要等到源虚拟机的所有数据块全部迁移完毕后再启动目的虚拟机,因此可有效减少虚拟机迁移时间,实现虚拟机的快速迁移,从而使源虚拟机所在的主机的资源得到快速的释放。
[0099]专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0100]结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。
[0101]以上所述的【具体实施方式】,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的【具体实施方式】而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种虚拟机迁移方法,其特征在于,所述方法包括: 根据数据块访问记录确定源虚拟机的第一数据块; 向目的主机拷贝所述第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息,以在所述目的主机根据所述第一数据块、所述源虚拟机的临时数据和状态信息启动目的虚拟机;其中,所述源虚拟机的临时数据包括所述源虚拟机中央处理单元CPU寄存器和内存中的数据;所述状态信息包括所述源虚拟机虚拟设备配置信息; 向所述目的主机拷贝所述源虚拟机的第二数据块,所述第二数据块为所述源虚拟机的除第一数据块之外的数据块。
2.根据权利要求1所述的方法,其特征在于,所述数据块访问记录用于记录从所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块及所述发生读写请求的数据块的位置。
3.根据权利要求2所述的方法,其特征在于,所述数据块访问记录还用于记录至少一次所述源虚拟机从启动到注销过程中发生读写请求的数据块及所述至少一次所述源虚拟机从启动到注销过程中发生读写请求的数据块的位置。
4.根据权利要求2所述的方法,其特征在于,所述根据数据块访问记录确定源虚拟机的第一数据块具体包括: 将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块确定为所述第一数据块。
5.根据权利要求3所述的方法,其特征在于,所述根据数据块访问记录确定源虚拟机的第一数据块具体包括:` 将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块和所述源虚拟机在本次启动前的至少一次启动到注销的过程中均发生块读写请求的数据块确定为所述第一数据块; 或,将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块和所述源虚拟机在本次启动前的至少一次启动到注销的过程中所有发生块读写请求的数据块确定为所述第一数据块。
6.根据权利要求1-5任一所述的方法,其特征在于,所述方法还包括: 当正在拷贝或已拷贝的所述第一数据块发生变化时,向所述目的主机拷贝所述第一数据块发生变化后的数据块。
7.根据权利要求1-6任一所述的方法,其特征在于,所述向所述目的主机拷贝所述源虚拟机的第二数据块,具体包括: 确定所述第二数据块的优先级; 按照所述优先级向所述目的主机拷贝所述第二数据块。
8.—种虚拟机迁移方法,其特征在于,所述方法包括: 接收并存储源虚拟机的第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息;其中,所述源虚拟机的临时数据包括所述源虚拟机中央处理单元CPU寄存器和内存中的数据;所述状态信息包括所述源虚拟机虚拟设备配置信息; 根据所述源虚拟机的第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息在目的主机启动目的虚拟机; 接收并存储所述源虚拟机的第二数据块,所述第二数据块为所述源虚拟机的除第一数据块之外的数据块。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括: 当所述源虚拟机中正在拷贝或已拷贝的所述第一数据块发生变化时,接收并存储所述第一数据块发生变化后的数据块。
10.根据权利要求8或9所述的方法,其特征在于,所述源虚拟机的第二数据块是从所述源虚拟机按照优先级拷贝至所述目的主机的。
11.一种虚拟机迁移装置,其特征在于,所述装置包括: 确定单元,用于根据数据块访问记录确定源虚拟机的第一数据块; 拷贝单元,用于向目的主机拷贝所述第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息,以在所述目的主机根据所述第一数据块、所述源虚拟机的临时数据和状态信息启动目的虚拟机;其中,所述源虚拟机的临时数据包括所述源虚拟机中央处理单元CPU寄存器和内存中的数据;所述状态信息包括所述源虚拟机虚拟设备配置信息; 所述拷贝单元还用于向所述目的主机拷贝所述源虚拟机的第二数据块,所述第二数据块为所述源虚拟机的除第一数据块之外的数据块。
12.根据权利要求11所述的装置,其特征在于,所述数据块访问记录用于记录从所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块及所述发生读写请求的数据块的位置。
13.根据权利要求12所述的装置,其特征在于,所述数据块访问记录还用于记录至少一次所述源虚拟机从启动到注销过程中发生读写请求的数据块及所述至少一次所述源虚拟机从启动到注销过程中发生读写请求的数据块的位置。
14.根据权利要求12所述的装置,其特征在于,所述确定单元具体用于: 将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块确定为第一数据块。
15.根据权利要求13所述的装置,其特征在于,所述确定单元具体用于: 将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块和所述源虚拟机在本次启动前的至少一次启动到注销的过程中均发生块读写请求的数据块确定为第一数据块; 或,将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块和所述源虚拟机在本次启动前的至少一次启动到注销的过程中所有发生块读写请求的数据块确定为第一数据块。
16.根据权利要求11-15任一所述的装置,其特征在于,所述拷贝单元还用于: 当正在拷贝或已拷贝的所述第一数据块发生变化时,向所述目的主机拷贝所述第一数据块发生变化后的数据块。
17.根据权利要求11-16任一所述的装置,其特征在于,所述拷贝单元具体用于: 确定所述第二数据块的优先级; 按照所述优先级向所述目的主机拷贝所述第二数据块。
18.—种虚拟机迁移装置,其特征在于,所述装置包括: 接收单元,用于接收并存储源虚拟机发的第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息;其中,所述源虚拟机的临时数据包括所述源虚拟机中央处理单元CPU寄存器和内存中的数据;所述状态信息包括所述源虚拟机虚拟设备配置信息; 启动单元,用于根据所述源虚拟机的第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息在目的主机启动目的虚拟机; 所述接收单元还用于接收并存储所述源虚拟机的第二数据块,所述第二数据块为所述源虚拟机的除第一数据块之外的数据块。
19.根据权利要 求18所述的装置,其特征在于,所述接收单元还用于: 当所述源虚拟机中正在拷贝或已拷贝的所述第一数据块发生变化时,接收并存储所述第一数据块发生变化后的数据块。
【文档编号】G06F9/455GK103699429SQ201310750510
【公开日】2014年4月2日 申请日期:2013年12月31日 优先权日:2013年12月31日
【发明者】王喆, 李金成, 朱星 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1