CN103699429A - 虚拟机迁移方法及装置 - Google Patents
虚拟机迁移方法及装置 Download PDFInfo
- Publication number
- CN103699429A CN103699429A CN201310750510.6A CN201310750510A CN103699429A CN 103699429 A CN103699429 A CN 103699429A CN 201310750510 A CN201310750510 A CN 201310750510A CN 103699429 A CN103699429 A CN 103699429A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- data block
- source virtual
- described source
- 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
Links
Images
Abstract
本发明涉及一种虚拟机迁移方法及装置。其中,该虚拟机迁移方法包括:根据数据块访问记录确定源虚拟机的第一数据块;向目的主机拷贝所述第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息,以在所述目的主机根据所述第一数据块、所述源虚拟机的临时数据和状态信息启动目的虚拟机;其中,所述源虚拟机的临时数据包括所述源虚拟机中央处理单元CPU寄存器和内存中的数据;所述状态信息包括所述源虚拟机虚拟设备配置信息;向所述目的主机拷贝所述源虚拟机的第二数据块,所述第二数据块为所述源虚拟机的除第一数据块之外的数据块。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种虚拟机迁移方法及装置。
背景技术
在无共享存储虚拟机在线整体迁移技术中,迁移时间是最重要的性能指标之一。一般来说,迁移时间指的是虚拟机整体迁移的总时间,即从源主机迁移开始到目的主机运行虚拟机的时间,包括:存储迁移、临时数据迁移、状态信息迁移和网络重定向的时间。
在现有的无共享存储下虚拟机在线整体迁移技术中,首先都要进行虚拟机存储的迁移。而通常情况下,虚拟机存储的拷贝过程需要较长的时间。例如:以现今网络带宽和存储设备读写速度考虑,数据的拷贝最多达到几百MB/秒,而虚拟机磁盘则有着不断增大的趋势,通常都能达到几百GB甚至上TB的规模。以虚拟机磁盘500GB,网络传输250MB/s为例计算,完成虚拟机存储拷贝大约需要30分钟的时间。这样的虚拟机存储整体迁移方式,迁移时间长,不利于快速释放源主机的资源。
发明内容
有鉴于此,本发明提供一种虚拟机迁移方法及装置,用以减少虚拟机迁移时间,实现虚拟机的快速迁移,从而使源虚拟机所在的主机的资源得到快速的释放。
在第一方面,本发明实施例提供一种虚拟机迁移方法,所述方法包括:
根据数据块访问记录确定源虚拟机的第一数据块;
向目的主机拷贝所述第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息,以在所述目的主机根据所述第一数据块、所述源虚拟机的临时数据和状态信息启动目的虚拟机;其中,所述源虚拟机的临时数据包括所述源虚拟机中央处理单元CPU寄存器和内存中的数据;所述状态信息包括所述源虚拟机虚拟设备配置信息;
向所述目的主机拷贝所述源虚拟机的第二数据块,所述第二数据块为所述源虚拟机的除第一数据块之外的数据块。
在第一方面的第一种可能实现的方式中,所述数据块访问记录用于记录从所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块及所述发生读写请求的数据块的位置。
结合第一方面的第一种可能实现的方式,在第二种可能实现的方式中,所述数据块访问记录还用于记录至少一次所述源虚拟机从启动到注销过程中发生读写请求的数据块及所述至少一次所述源虚拟机从启动到注销过程中发生读写请求的数据块的位置。
结合第一方面的第一种可能实现的方式,在第三种可能实现的方式中,所述根据数据块访问记录确定源虚拟机的第一数据块具体包括:将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块确定为所述第一数据块。
结合第一方面的第二种可能实现的方式,在第四种可能实现的方式中,所述根据数据块访问记录确定源虚拟机的第一数据块具体包括:将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块和所述源虚拟机在本次启动前的至少一次启动到注销的过程中均发生块读写请求的数据块确定为所述第一数据块;或,将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块和所述源虚拟机在本次启动前的至少一次启动到注销的过程中所有发生块读写请求的数据块确定为所述第一数据块。
结合第一方面或第一方面的第一种可能实现的方式或第一方面的第二种可能实现的方式或第一方面的第三种可能实现的方式或第一方面的第四种可能实现的方式,在第五种可能实现的方式中,所述方法还包括:当正在拷贝或已拷贝的所述第一数据块发生变化时,向所述目的主机拷贝所述第一数据块发生变化后的数据块。
结合第一方面或第一方面的第一种可能实现的方式或第一方面的第二种可能实现的方式或第一方面的第三种可能实现的方式或第一方面的第四种可能实现的方式或第一方面的第五种可能实现的方式,在第六种可能实现的方式中,所述向所述目的主机拷贝所述源虚拟机的第二数据块,具体包括:确定所述第二数据块的优先级;按照所述优先级向所述目的主机拷贝所述第二数据块。
在第二方面,本发明实施例提供一种虚拟机迁移方法,所述方法包括:
接收并存储源虚拟机的第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息;其中,所述源虚拟机的临时数据包括所述源虚拟机中央处理单元CPU寄存器和内存中的数据;所述状态信息包括所述源虚拟机虚拟设备配置信息;
根据所述源虚拟机的第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息在目的主机启动目的虚拟机;
接收并存储所述源虚拟机的第二数据块,所述第二数据块为所述源虚拟机的除第一数据块之外的数据块。
在第二方面的第一种可能实现的方式中,所述方法还包括:当所述源虚拟机中正在拷贝或已拷贝的所述第一数据块发生变化时,接收并存储所述第一数据块发生变化后的数据块。
结合第二方面或第二方面的第一种可能实现的方式,在第二种可能实现的方式中,所述源虚拟机的第二数据块是从所述源虚拟机按照优先级拷贝至所述目的主机的。
在第三方面,本发明实施例提供一种虚拟机迁移装置,所述装置包括:
确定单元,用于根据数据块访问记录确定源虚拟机的第一数据块;
拷贝单元,用于向目的主机拷贝所述第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息,以在所述目的主机根据所述第一数据块、所述源虚拟机的临时数据和状态信息启动目的虚拟机;其中,所述源虚拟机的临时数据包括所述源虚拟机中央处理单元CPU寄存器和内存中的数据;所述状态信息包括所述源虚拟机虚拟设备配置信息;
所述拷贝单元还用于向所述目的主机拷贝所述源虚拟机的第二数据块,所述第二数据块为所述源虚拟机的除第一数据块之外的数据块。
在第三方面的第一种可能实现的方式中,所述数据块访问记录用于记录从所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块及所述发生读写请求的数据块的位置。
结合第三方面的第一种可能实现的方式,在第二种可能实现的方式中,所述数据块访问记录还用于记录至少一次所述源虚拟机从启动到注销过程中发生读写请求的数据块及所述至少一次所述源虚拟机从启动到注销过程中发生读写请求的数据块的位置。
结合第三方面的第一种可能实现的方式,在第三种可能实现的方式中,所述确定单元具体用于:将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块确定为第一数据块。
结合第三方面的第二种可能实现的方式,在第四种可能实现的方式中,所述确定单元具体用于:将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块和所述源虚拟机在本次启动前的至少一次启动到注销的过程中均发生块读写请求的数据块确定为第一数据块;或,将所述数据块访问记录中的记录的所述源虚拟机本次启动到向所述目的主机拷贝所述源虚拟机的第二数据块之前所述源虚拟机发生读写请求的数据块和所述源虚拟机在本次启动前的至少一次启动到注销的过程中所有发生块读写请求的数据块确定为第一数据块。
结合第三方面或第三方面的第一种可能实现的方式或第三方面的第二种可能实现的方式或第三方面的第三种可能实现的方式或第三方面的第四种可能实现的方式,在第五种可能实现的方式中,所述拷贝单元还用于:当正在拷贝或已拷贝的所述第一数据块发生变化时,向所述目的主机拷贝所述第一数据块发生变化后的数据块。
结合第三方面或第三方面的第一种可能实现的方式或第三方面的第二种可能实现的方式或第三方面的第三种可能实现的方式或第三方面的第四种可能实现的方式或第三方面的第五种可能实现的方式,在第六种可能实现的方式中,所述拷贝单元具体用于:确定所述第二数据块的优先级;按照所述优先级向所述目的主机拷贝所述第二数据块。
在第四方面,本发明实施例提供一种虚拟机迁移装置,所述装置包括:
接收单元,用于接收并存储源虚拟机发的第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息;其中,所述源虚拟机的临时数据包括所述源虚拟机中央处理单元CPU寄存器和内存中的数据;所述状态信息包括所述源虚拟机虚拟设备配置信息;
启动单元,用于根据所述源虚拟机的第一数据块、所述源虚拟机的临时数据和所述源虚拟机的状态信息在目的主机启动目的虚拟机;
所述接收单元还用于接收并存储所述源虚拟机的第二数据块,所述第二数据块为所述源虚拟机的除第一数据块之外的数据块。
在第四方面的第一种可能实现的方式中,所述接收单元还用于:当所述源虚拟机中正在拷贝或已拷贝的所述第一数据块发生变化时,接收并存储所述第一数据块发生变化后的数据块。
通过上述方案,将源虚拟机的数据块进行分块发送,首先向目的主机拷贝能使目的虚拟机启动的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息,以在目的主机快速启动目的虚拟机,不需要等到源虚拟机的所有数据块拷贝完毕后再启动目的虚拟机,因此可有效减少虚拟机迁移时间,实现虚拟机的快速迁移,从而使源虚拟机所在的主机的资源得到快速的释放。
附图说明
图1为本发明实施例一提供的一种虚拟机迁移方法的流程示意图;
图2为本发明实施例二提供的一种虚拟机迁移方法的流程示意图;
图3为本发明实施例三提供的一种虚拟机迁移装置的结构示意图;
图4为本发明实施例四提供的一种虚拟机迁移装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面以图1为例详细说明本发明实施例一提供的一种虚拟机迁移方法,图1为本发明实施例一提供的一种虚拟机迁移方法的流程示意图。该虚拟机迁移方法的执行主体可以为源虚拟机所在主机中的迁移代理,该迁移代理可配置于源虚拟机所在主机中的控制台虚拟机中。如图1所示,该虚拟机迁移方法包括以下步骤:
步骤S101,根据数据块访问记录确定源虚拟机的第一数据块。
源虚拟机所在主机中的控制台虚拟机包括数据块访问记录模块,源虚拟机每启动一次,该数据块访问记录模块生成一个对应该次启动的数据块访问记录,记录源虚拟机从该次启动到注销之间发生读写请求的数据块及发生读写请求的数据块的位置。当需要迁移源虚拟机时,源虚拟机读取相应的数据块访问记录,以确定第一数据块。
因此,数据块访问记录用于至少记录从源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块及发生读写请求的数据块的位置。其中,第二数据块为源虚拟机的除第一数据块之外的数据块。除此之外,数据块访问记录还可以用于记录至少一次源虚拟机从启动到注销过程中发生读写请求的数据块及所述至少一次源虚拟机从启动到注销过程中发生读写请求的数据块的位置。
相应的,根据数据块访问记录确定源虚拟机的第一数据块可分为至少以下三种情况:
第一种,仅将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝所述源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块确定为第一数据块。
第二种,将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块和源虚拟机在本次启动前的至少一次启动到注销的过程中均发生块读写请求的数据块确定为第一数据块。
第三种,将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块和源虚拟机在本次启动前的至少一次启动到注销的过程中所有发生块读写请求的数据块确定为第一数据块。
步骤S102,向目的主机拷贝第一数据块、源虚拟机的临时数据和源虚拟机的状态信息。
其中,源虚拟机的临时数据包括源虚拟机中央处理单元(CPU)寄存器和内存中的数据。状态信息包括源虚拟机虚拟设备配置信息,源虚拟机虚拟设备配置信息具体为源虚拟机CPU、内存、存储控制器和网络等配置信息。
目的主机中的迁移代理在接收到第一数据块、源虚拟机的临时数据和源虚拟机的状态信息后,首先将第一数据块、源虚拟机的临时数据和源虚拟机的状态信息存储到目的主机的共享存储中,然后根据该第一数据块、源虚拟机的临时数据和源虚拟机的状态信息在目的主机启动目的虚拟机。启动目的虚拟机包括:关联相关物理设备,网络重定向及运行虚拟机业务等。
按照迁移时间的定义(即从源主机迁移开始到目的主机运行虚拟机的时间),迁移时间只需计算从步骤S101到步骤S102所用的时间。由于在步骤S101到步骤S102拷贝的不是源虚拟机对应的全部数据块,因此相较于现有的虚拟机迁移方法,本实施例提供的虚拟机迁移方法的迁移时间短,迁移速度快。
需要说明的是,由于通过第一种方式确定的第一数据块最少,通过第三种确定的第一数据块最多。因此通过第一种方式确定第一数据块后,虚拟机迁移的速度最快。通过第三种方式确定第一数据块后,虚拟机迁移的速度最慢。但是通过第三种方式确定第一数据块后,再进行虚拟机迁移,发生例外访问的概率更低。其中,例外访问是指用户请求访问目的主机的共享存储中还未存储的数据块。
优选地,可采用迭代的方式向目的主机拷贝第一数据块,即在步骤S102之后,还可以包括:当正在拷贝的第一数据块或已被拷贝的第一数据块发生变化时,向目的主机拷贝第一数据块发生变化后的数据块。
步骤S103,向目的主机拷贝源虚拟机的第二数据块。
具体的,确定第二数据块的优先级,然后按照第二数据块的优先级从高到低的顺序,向目的主机拷贝第二数据块。
在拷贝第二数据块的过程中,第二数据块的优先级是可以根据目的虚拟机的需求进行调整的。因此,该方法还可以包括:接收目的主机中的迁移代理发送的优先拷贝请求,该优先拷贝请求携带第二数据块的位置信息。相应的,源主机中的迁移代理优先向目的主机拷贝第二数据块的位置信息对应的数据块。
另外,在完成步骤S102后,便可以确定迁移已成功,则关闭源虚拟机,并释放该源虚拟机所在主机中的该源虚拟机所占用的资源。
通过利用本发明实施例一提供的虚拟机迁移方法,将源虚拟机的数据块进行分块发送,首先向目的主机拷贝能使目的虚拟机启动的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息,以在目的主机快速启动目的虚拟机,不需要等到源虚拟机的所有数据块拷贝完毕后再启动目的虚拟机,因此可有效减少虚拟机迁移时间,实现虚拟机的快速迁移,从而使源虚拟机所在的主机的资源得到快速的释放。
下面以图2为例详细说明本发明实施例二提供的一种虚拟机迁移方法,图2为本发明实施例二提供的一种虚拟机迁移方法的流程示意图。该虚拟机迁移方法的执行主体为目的主机中的迁移代理,该迁移代理可配置于目的主机中的控制台虚拟机中。如图2所示,该虚拟机迁移方法包括以下步骤:
步骤S201,接收并存储源虚拟机的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息。
其中,第一数据块是由源虚拟机所在主机的迁移代理根据源虚拟机的数据块访问记录确定的。根据数据块访问记录确定源虚拟机的第一数据块可分为至少以下三种情况:第一种,仅将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝所述源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块确定为第一数据块。第二种,将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块和源虚拟机在本次启动前的至少一次启动到注销的过程中均发生块读写请求的数据块确定为第一数据块。第三种,将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块和源虚拟机在本次启动前的至少一次启动到注销的过程中所有发生块读写请求的数据块确定为第一数据块。其中,第二数据块为源虚拟机的除第一数据块之外的数据块。
源虚拟机的临时数据包括源虚拟机中央处理单元(CPU)寄存器和内存中的数据。状态信息包括源虚拟机虚拟设备配置信息,源虚拟机虚拟设备配置信息具体为源虚拟机CPU、内存、存储控制器和网络等配置信息。
另外,由于在拷贝第一数据块的过程中,正在拷贝的第一数据块或已被拷贝的第一数据块可能会发生变化,所以源虚拟机所在主机中的迁移代理采用迭代的方式拷贝第一数据块,即在发送完所有第一数据块后,还需要发送发生变化的第一数据块。因此,该方法还包括:当源虚拟机中正在拷贝或已拷贝的第一数据块发生变化时,接收并存储第一数据块发生变化后的数据块。
步骤S202,根据源虚拟机的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息在目的主机启动目的虚拟机。
目的主机中的迁移代理在接收到第一数据块、源虚拟机的临时数据和源虚拟机的状态信息后,首先将第一数据块、源虚拟机的临时数据和源虚拟机的状态信息存储到目的主机的共享存储中,然后根据该第一数据块、源虚拟机的临时数据和源虚拟机的状态信息在目的主机启动目的虚拟机。启动目的虚拟机包括:关联相关物理设备,网络重定向及运行虚拟机业务等。
按照迁移时间的定义(即从源主机迁移开始到目的主机运行虚拟机的时间),迁移时间只需计算从步骤S201到步骤S202所用的时间。由于在步骤S201到步骤S202拷贝的不是源虚拟机对应的全部数据块,因此相较于现有的虚拟机迁移方法,本实施例提供的虚拟机迁移方法的迁移时间短,迁移速度快。
步骤S203,接收并存储源虚拟机的第二数据块。
源虚拟机所在主机中的迁移代理按照第二数据块的优先级从高到低的顺序,向目的主机拷贝第二数据块。但是,当目的虚拟机发生例外访问时,目的主机中的迁移代理可以向源虚拟机所在主机中的迁移代理发送优先拷贝请求,该优先拷贝请求携带第二数据块的位置信息,以使源虚拟机所在主机中的迁移代理优先向目的主机拷贝第二数据块的位置信息对应的数据块。
通过利用本发明实施例二提供的虚拟机迁移方法,目的主机的迁移代理首先接收并存储能使目的虚拟机启动的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息,然后便可以根据能使目的虚拟机启动的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息在目的主机快速启动目的虚拟机,不需要等到源虚拟机的所有数据块全部迁移完毕后再启动目的虚拟机,因此可有效减少虚拟机迁移时间,实现虚拟机的快速迁移,从而使源虚拟机所在的主机的资源得到快速的释放。
下面以图3为例详细说明本发明实施例三提供的一种虚拟机迁移装置,图3为本发明实施例三提供的一种虚拟机迁移装置的结构示意图。该虚拟机迁移装置可以具体为源虚拟机所在主机中的迁移代理,该迁移代理可配置于源虚拟机所在主机中的控制台虚拟机中,用以实现本发明实施例一提供的虚拟机迁移方法。
如图3所示,该虚拟机迁移装置包括:确定单元310和拷贝单元320。
确定单元310用于根据数据块访问记录确定源虚拟机的第一数据块。
数据块访问记录用于至少记录从源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块及发生读写请求的数据块的位置。其中,第二数据块为源虚拟机的除第一数据块之外的数据块。除此之外,数据块访问记录还可以用于记录至少一次源虚拟机从启动到注销过程中发生读写请求的数据块及所述至少一次源虚拟机从启动到注销过程中发生读写请求的数据块的位置。
相应的,根据数据块访问记录确定源虚拟机的第一数据块可分为至少以下三种情况:
第一种,确定单元310仅将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝所述源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块确定为第一数据块。
第二种,确定单元310将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块和源虚拟机在本次启动前的至少一次启动到注销的过程中均发生块读写请求的数据块确定为第一数据块。
第三种,确定单元310将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块和源虚拟机在本次启动前的至少一次启动到注销的过程中所有发生块读写请求的数据块确定为第一数据块。
拷贝单元320用于向目的主机拷贝第一数据块、源虚拟机的临时数据和源虚拟机的状态信息。
其中,源虚拟机的临时数据包括源虚拟机中央处理单元(CPU)寄存器和内存中的数据。状态信息包括源虚拟机虚拟设备配置信息,源虚拟机虚拟设备配置信息具体为源虚拟机CPU、内存、存储控制器和网络等配置信息。
目的主机中的迁移代理在接收到第一数据块、源虚拟机的临时数据和源虚拟机的状态信息后,首先将第一数据块、源虚拟机的临时数据和源虚拟机的状态信息存储到目的主机的共享存储中,然后根据该第一数据块、源虚拟机的临时数据和源虚拟机的状态信息在目的主机启动目的虚拟机。启动目的虚拟机包括:关联相关物理设备,网络重定向及运行虚拟机业务等。
优选地,拷贝单元320可采用迭代的方式向目的主机拷贝第一数据块,拷贝单元320还用于当正在拷贝的第一数据块或已被拷贝的第一数据块发生变化时,向目的主机拷贝第一数据块发生变化后的数据块。
拷贝单元320还用于向目的主机拷贝源虚拟机的第二数据块。
具体的,拷贝单元320确定第二数据块的优先级,然后按照第二数据块的优先级从高到低的顺序,向目的主机拷贝第二数据块。
在拷贝单元320拷贝第二数据块的过程中,第二数据块的优先级是可以根据目的虚拟机的需求进行调整的。因此,拷贝单元320还用于接收目的主机中的迁移代理发送的优先拷贝请求,该优先拷贝请求携带第二数据块的位置信息。相应的,拷贝单元320优先向目的主机拷贝第二数据块的位置信息对应的数据块。
通过利用本发明实施例三提供的虚拟机迁移装置,将源虚拟机的数据块进行分块发送,首先向目的主机拷贝能使目的虚拟机启动的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息,以在目的主机快速启动目的虚拟机,不需要等到源虚拟机的所有数据块拷贝完毕后再启动目的虚拟机,因此可有效减少虚拟机迁移时间,实现虚拟机的快速迁移,从而使源虚拟机所在的主机的资源得到快速的释放。
下面以图4为例详细说明本发明实施例四提供的一种虚拟机迁移装置,图4为本发明实施例四提供的一种虚拟机迁移装置的结构示意图。该虚拟机迁移装置可以具体为目的主机中的迁移代理,该迁移代理可配置于目的主机中的控制台虚拟机中,用以实现本发明实施例二提供的虚拟机迁移方法。
如图4所示,该虚拟机迁移装置包括:接收单元410和启动单元420。
接收单元410用于接收并存储源虚拟机的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息。
其中,第一数据块是由源虚拟机所在主机的迁移代理根据源虚拟机的数据块访问记录确定的。根据数据块访问记录确定源虚拟机的第一数据块可分为至少以下三种情况:第一种,仅将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝所述源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块确定为第一数据块。第二种,将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块和源虚拟机在本次启动前的至少一次启动到注销的过程中均发生块读写请求的数据块确定为第一数据块。第三种,将数据块访问记录中的记录的源虚拟机本次启动到向目的主机拷贝源虚拟机的第二数据块之前源虚拟机发生读写请求的数据块和源虚拟机在本次启动前的至少一次启动到注销的过程中所有发生块读写请求的数据块确定为第一数据块。其中,第二数据块为源虚拟机的除第一数据块之外的数据块。
源虚拟机的临时数据包括源虚拟机中央处理单元(CPU)寄存器和内存中的数据。状态信息包括源虚拟机虚拟设备配置信息,源虚拟机虚拟设备配置信息具体为源虚拟机CPU、内存、存储控制器和网络等配置信息。
另外,由于在拷贝第一数据块的过程中,正在拷贝的第一数据块或已被拷贝的第一数据块可能会发生变化,所以源虚拟机所在主机中的迁移代理采用迭代的方式拷贝第一数据块,即在发送完所有第一数据块后,还需要发送发生变化的第一数据块。因此,接收单元410还用于当源虚拟机中正在拷贝或已拷贝的第一数据块发生变化时,接收并存储第一数据块发生变化后的数据块。
启动单元420用于根据源虚拟机的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息在目的主机启动目的虚拟机。
启动单元420根据第一数据块、源虚拟机的临时数据和源虚拟机的状态信息在目的主机启动目的虚拟机。启动目的虚拟机包括:关联相关物理设备,网络重定向及运行虚拟机业务等。
接收单元410还用于接收并存储源虚拟机的第二数据块。
源虚拟机所在主机中的迁移代理按照第二数据块的优先级从高到低的顺序,向目的主机拷贝第二数据块。但是,当目的虚拟机发生例外访问时,接收单元410可以向源虚拟机所在主机中的迁移代理发送优先拷贝请求,该优先拷贝请求携带第二数据块的位置信息,以使源虚拟机所在主机中的迁移代理优先向目的主机拷贝第二数据块的位置信息对应的数据块。
通过利用本发明实施例四提供的虚拟机迁移装置,目的主机的虚拟机迁移装置首先接收并存储能使目的虚拟机启动的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息,然后便可以根据能使目的虚拟机启动的第一数据块、源虚拟机的临时数据和源虚拟机的状态信息在目的主机快速启动目的虚拟机,不需要等到源虚拟机的所有数据块全部迁移完毕后再启动目的虚拟机,因此可有效减少虚拟机迁移时间,实现虚拟机的快速迁移,从而使源虚拟机所在的主机的资源得到快速的释放。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (19)
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所述的装置,其特征在于,所述接收单元还用于:
当所述源虚拟机中正在拷贝或已拷贝的所述第一数据块发生变化时,接收并存储所述第一数据块发生变化后的数据块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310750510.6A CN103699429A (zh) | 2013-12-31 | 2013-12-31 | 虚拟机迁移方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310750510.6A CN103699429A (zh) | 2013-12-31 | 2013-12-31 | 虚拟机迁移方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103699429A true CN103699429A (zh) | 2014-04-02 |
Family
ID=50360968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310750510.6A Pending CN103699429A (zh) | 2013-12-31 | 2013-12-31 | 虚拟机迁移方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103699429A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536800A (zh) * | 2014-09-29 | 2015-04-22 | 杭州华为数字技术有限公司 | 一种虚拟机放置方法及装置 |
CN104965757A (zh) * | 2015-01-21 | 2015-10-07 | 深圳市腾讯计算机系统有限公司 | 虚拟机热迁移的方法、虚拟机迁移管理装置及系统 |
WO2015196774A1 (zh) * | 2014-06-24 | 2015-12-30 | 华为技术有限公司 | 虚拟机迁移方法及设备 |
CN105760218A (zh) * | 2016-01-05 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种虚拟机在线迁移方法及装置 |
CN106375465A (zh) * | 2016-09-14 | 2017-02-01 | 广东欧珀移动通信有限公司 | 一种数据迁移方法及服务器 |
CN106571980A (zh) * | 2016-11-07 | 2017-04-19 | 广东欧珀移动通信有限公司 | 一种数据迁移方法及移动终端 |
WO2017132872A1 (zh) * | 2016-02-03 | 2017-08-10 | 华为技术有限公司 | 虚拟机备份方法、备份装置及宿主机 |
CN107678830A (zh) * | 2017-09-15 | 2018-02-09 | 联想(北京)有限公司 | 数据迁移方法、设备及其系统 |
CN107870802A (zh) * | 2016-09-27 | 2018-04-03 | 阿里巴巴集团控股有限公司 | 一种虚拟机迁移方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464812A (zh) * | 2009-01-06 | 2009-06-24 | 北京航空航天大学 | 一种虚拟机迁移方法 |
CN102073462A (zh) * | 2010-11-29 | 2011-05-25 | 华为技术有限公司 | 虚拟存储迁移方法、系统和虚拟机监控器 |
CN103399778A (zh) * | 2013-07-01 | 2013-11-20 | 华为技术有限公司 | 一种虚拟机在线整体迁移方法和设备 |
-
2013
- 2013-12-31 CN CN201310750510.6A patent/CN103699429A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464812A (zh) * | 2009-01-06 | 2009-06-24 | 北京航空航天大学 | 一种虚拟机迁移方法 |
CN102073462A (zh) * | 2010-11-29 | 2011-05-25 | 华为技术有限公司 | 虚拟存储迁移方法、系统和虚拟机监控器 |
CN103399778A (zh) * | 2013-07-01 | 2013-11-20 | 华为技术有限公司 | 一种虚拟机在线整体迁移方法和设备 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015196774A1 (zh) * | 2014-06-24 | 2015-12-30 | 华为技术有限公司 | 虚拟机迁移方法及设备 |
CN104536800A (zh) * | 2014-09-29 | 2015-04-22 | 杭州华为数字技术有限公司 | 一种虚拟机放置方法及装置 |
CN104536800B (zh) * | 2014-09-29 | 2018-05-11 | 杭州华为数字技术有限公司 | 一种虚拟机放置方法及装置 |
CN104965757A (zh) * | 2015-01-21 | 2015-10-07 | 深圳市腾讯计算机系统有限公司 | 虚拟机热迁移的方法、虚拟机迁移管理装置及系统 |
CN104965757B (zh) * | 2015-01-21 | 2018-03-30 | 深圳市腾讯计算机系统有限公司 | 虚拟机热迁移的方法、虚拟机迁移管理装置及系统 |
CN105760218A (zh) * | 2016-01-05 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种虚拟机在线迁移方法及装置 |
WO2017132872A1 (zh) * | 2016-02-03 | 2017-08-10 | 华为技术有限公司 | 虚拟机备份方法、备份装置及宿主机 |
CN106375465A (zh) * | 2016-09-14 | 2017-02-01 | 广东欧珀移动通信有限公司 | 一种数据迁移方法及服务器 |
CN106375465B (zh) * | 2016-09-14 | 2019-08-20 | 广东欧珀移动通信有限公司 | 一种数据迁移方法及服务器 |
CN107870802A (zh) * | 2016-09-27 | 2018-04-03 | 阿里巴巴集团控股有限公司 | 一种虚拟机迁移方法和装置 |
CN107870802B (zh) * | 2016-09-27 | 2021-09-07 | 阿里巴巴集团控股有限公司 | 一种虚拟机迁移方法和装置 |
CN106571980A (zh) * | 2016-11-07 | 2017-04-19 | 广东欧珀移动通信有限公司 | 一种数据迁移方法及移动终端 |
CN107678830A (zh) * | 2017-09-15 | 2018-02-09 | 联想(北京)有限公司 | 数据迁移方法、设备及其系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103699429A (zh) | 虚拟机迁移方法及装置 | |
US11099769B1 (en) | Copying data without accessing the data | |
EP3361409B1 (en) | Data deduplication method and apparatus | |
US10701134B2 (en) | Transferring data between block and file storage systems | |
CN103763383A (zh) | 一体化云存储系统及其存储方法 | |
CN101482838A (zh) | 基于写时拷贝的数据写入方法及设备 | |
CN109725823B (zh) | 用于管理混合存储盘阵列的方法和设备 | |
US9658799B2 (en) | Data storage device deferred secure delete | |
US10795579B2 (en) | Methods, apparatuses, system and computer program products for reclaiming storage units | |
US7650476B2 (en) | System, method and computer program product for generating a consistent point in time copy of data | |
US8627126B2 (en) | Optimized power savings in a storage virtualization system | |
CN104484354B (zh) | 保证数据一致性的快照方法和存储设备 | |
CN103324446A (zh) | 一种高性能弹性容量虚拟机磁盘的实现方法 | |
CN105260264A (zh) | 一种快照实现方法及快照系统 | |
KR101643278B1 (ko) | 데이터베이스 시스템에서 스토리지 서버 관리 방법, 장치 및 컴퓨터 판독가능 매체에 저장된 컴퓨터-프로그램 | |
US20130031320A1 (en) | Control device, control method and storage apparatus | |
US11030100B1 (en) | Expansion of HBA write cache using NVDIMM | |
CN103425550A (zh) | 一种系统克隆方法和装置 | |
TWI530787B (zh) | 電子裝置以及資料寫入方法 | |
US10789008B2 (en) | Reducing write collisions in data copy | |
CN106202262A (zh) | 一种信息处理方法及电子设备 | |
JP2011090531A (ja) | 情報記憶装置 | |
US9875037B2 (en) | Implementing multiple raid level configurations in a data storage device | |
US10101940B1 (en) | Data retrieval system and method | |
US11977785B2 (en) | Non-volatile memory device-assisted live migration of virtual machine data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140402 |
|
RJ01 | Rejection of invention patent application after publication |