虚拟机克隆方法及装置与流程

文档序号:12963320阅读:229来源:国知局
虚拟机克隆方法及装置与流程

本发明涉及虚拟机技术领域,尤其涉及一种虚拟机克隆方法及装置。



背景技术:

众所周知,现有的虚拟机完整克隆是完全复制一个虚拟机。但是,由于虚拟机的镜像文件通常来说都非常大,因此在拷贝虚拟机镜像文件时,耗时较长,使得虚拟机的克隆效率较低。



技术实现要素:

本发明的主要目的在于提供一种虚拟机克隆方法及装置,旨在缩短虚拟机的克隆时间,提高克隆的效率。

为实现上述目的,本发明提供的一种虚拟机克隆方法,所述虚拟机克隆方法包括以下步骤:

将原始虚拟机的镜像文件设定为基镜像;

根据所述基镜像生成供原始虚拟机运行的第一增量镜像和预克隆得到的目标虚拟机运行的第二增量镜像,且所述第一增量镜像与第二增量镜像相同;

根据所述第二增量镜像克隆得到目标虚拟机。

优选地,所述将原始虚拟机的镜像文件设定为基镜像包括:

将原始虚拟机的镜像文件移动到第一预置目录下,并将移动后的镜像文件设定为基镜像。

优选地,所述根据所述基镜像生成供原始虚拟机运行的第一增量镜像和预克隆得到的目标虚拟机运行的第二增量镜像包括:

根据所述基镜像创建第一增量镜像;

将所述第一增量镜像拷贝到第二预置目录下形成第二增量镜像。

优选地,将原始虚拟机的镜像文件移动到第一预置目录下包括:

判断所述原始虚拟机是否为开机状态;

若是,则控制所述原始虚拟机暂停运行,并卸载镜像文件后,将所述镜 像文件移动到第一预置目录下;

若否,则将所述原始虚拟机对应的镜像文件移动到第一预置目录下。

优选地,所述根据所述基镜像生成供原始虚拟机运行的第一增量镜像和预克隆得到的目标虚拟机运行的第二增量镜像步骤之后还包括:

当所述原始虚拟机为开机状态时,控制所述原始虚拟机加载所述第一增量镜像,以恢复所述原始虚拟机运行。

此外,为实现上述目的,本发明还提供一种虚拟机克隆装置,所述虚拟机克隆装置包括:

控制模块,用于将原始虚拟机的镜像文件设定为基镜像;

处理模块,用于根据所述基镜像生成供原始虚拟机运行的第一增量镜像和预克隆得到的目标虚拟机运行的第二增量镜像,且所述第一增量镜像与第二增量镜像相同;

克隆模块,用于根据所述第二增量镜像克隆得到目标虚拟机。

优选地,所述控制模块具体用于将原始虚拟机的镜像文件移动到第一预置目录下,并将移动后的镜像文件设定为基镜像。

优选地,所述处理模块包括:

处理单元,用于根据所述基镜像创建第一增量镜像;

拷贝单元,用于将所述第一增量镜像拷贝到第二预置目录下形成第二增量镜像。

优选地,控制模块包括:

判断单元,用于判断所述原始虚拟机是否为开机状态;

控制单元,用于当所述原始虚拟机为关机状态时,将所述原始虚拟机对应的镜像文件移动到第一预置目录下;用于当所述原始虚拟机为开机状态时,控制所述原始虚拟机暂停运行,并卸载镜像文件后,将所述镜像文件移动到第一预置目录下。

优选地,所述虚拟机克隆装置还包括:

恢复模块,用于当所述原始虚拟机为开机状态时,控制所述原始虚拟机加载所述第一增量镜像,以恢复所述原始虚拟机运行。

优选地,所述虚拟机克隆装置还包括:

加载模块,用于控制所述目标虚拟机加载运行所述第二增量镜像。

本发明实施例通过将原始虚拟机的镜像文件设定为基镜像;根据所述基镜像生成供原始虚拟机运行的第一增量镜像和预克隆得到的目标虚拟机运行的第二增量镜像,且所述第一增量镜像与第二增量镜像相同;根据所述第二增量镜像克隆得到目标虚拟机。由于本发明实施例只要根据基镜像得到第二增量镜像,即可进行克隆得到目标虚拟机,相对于现有技术,本发明实施例无需拷贝镜像文件,因此缩短了虚拟机的克隆时间,提高了克隆的效率。

附图说明

图1为本发明虚拟机克隆方法第一实施例的流程示意图;

图2为本发明虚拟机克隆方法第二实施例中根据基镜像得到第一增量镜像和第二增量镜像的细化流程示意图;

图3为本发明虚拟机克隆方法第三实施例中根据移动镜像文件的细化流程示意图;

图4为本发明虚拟机克隆装置第一实施例的功能模块结构示意图;

图5为本发明虚拟机克隆装置第二实施例中处理模块的细化功能模块结构示意图;

图6为本发明虚拟机克隆装置第三实施例中控制模块的细化功能模块结构示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种虚拟机克隆方法,参照图1,在一实施例中,该虚拟机克隆方法包括以下步骤:

步骤s10,将原始虚拟机的镜像文件设定为基镜像;

本发明实施例提供的虚拟机克隆方法主要应用在虚拟机克隆应用中,以实现快速克隆虚拟机。

具体地,在虚拟化产品中克隆虚拟机就是说将复制一个虚拟机成单独独立的另一个虚拟机,克隆出的虚拟机和原始虚拟机都是单独独立的,使用互不影响。克隆就是将虚拟机镜像文件复制一份,内容和原文件一模一样。

上述虚拟机的镜像文件是指磁盘镜像文件,在虚拟机内部虚拟机镜像就是虚拟机使用的磁盘,使用上和物理磁盘没差别。在虚拟化平台上,虚拟机镜像就是一个文件,虚拟机使用的磁盘就是这个文件(即虚拟机的镜像文件)。

由于克隆的虚拟机的镜像文件所在的位置不一致,为了形成标准化的克隆需求,优选地,在本实施例中,上述步骤s10为将原始虚拟机的镜像文件移动到第一预置目录下,并将移动后的镜像文件设定为基镜像。

上述第一预置目录为用户指定目录,可以预先设定该目录的路径地址。具体地,将原始虚拟机的镜像文件移动到第一预置目录下,在本实施例中是指,将镜像文件以剪切的形式将镜像文件移动至第一目录下。

步骤s20,根据所述基镜像生成供原始虚拟机运行的第一增量镜像和预克隆得到的目标虚拟机运行的第二增量镜像,且所述第一增量镜像与第二增量镜像相同;

本实施例中,上述基镜像也是一个虚拟机的镜像文件,只是这个文件是一个母体,这个母体是单独独立的,这个母体可以衍生出很多个子体,子体也是一个镜像文件,只是这个子体是单独的但是不独立,它依赖于母体,子体和子体之间是单独且独立的,子体也可以是一个基镜像。

上述增量镜像是由基镜像衍生出来的子体构成的,本实施例中可以由上述基镜像生成两个相同个增量镜像,其中一个增量镜像为第一增量镜像,另一个增量镜像为第二增量镜像。

步骤s30,根据所述第二增量镜像克隆得到目标虚拟机。

由于上述第一增量镜像和第二增量镜像完全一致,因此在根据第二增量镜像进行克隆得到的目标虚拟机与原始虚拟机完全一致。

本发明实施例通过将原始虚拟机的镜像文件设定为基镜像;根据所述基镜像生成供原始虚拟机运行的第一增量镜像和预克隆得到的目标虚拟机运行的第二增量镜像,且所述第一增量镜像与第二增量镜像相同;根据所述第二 增量镜像克隆得到目标虚拟机。由于本发明实施例只要根据基镜像得到第二增量镜像,即可进行克隆得到目标虚拟机,相对于现有技术,本发明实施例无需拷贝镜像文件,因此缩短了虚拟机的克隆时间,提高了克隆的效率。

进一步地,参照图2,基于本发明虚拟机克隆方法第一实施例,提出了本发明虚拟机克隆方法第二实施例,与本发明虚拟机克隆方法第一实施例的区别在于,在本实施例中,采用拷贝第一增量镜像的方式得到第二增量镜像。具体地,在本发明虚拟机克隆方法第二实施例中,上述将原始虚拟机的镜像文件移动到第一预置目录下包括:

步骤s21,根据所述基镜像创建第一增量镜像;

步骤s22,将所述第一增量镜像拷贝到第二预置目录下形成第二增量镜像。

本实施例中,为了保证第二增量镜像与第一增量镜像的一致性,首先根据基镜像衍生得到第一增量镜像,然后将第一增量镜像拷贝到指定的第二预置目录下形成第二增量镜像。具体地,该第二预置目录上述第一预置目录不为同一个目录,该第二预置目录可以为用户预先设定的目录,用于在创建上述目标虚拟机运行时所加载运行该第二增量镜像的目录。在本实施例中,由于只需要拷贝第一增量镜像,然而在由于刚开始创建的增量镜像相对于基镜像而言要小很多,通常开始创建的增量镜像只有几兆左右,因此相对于现有技术中拷贝完整镜像文件而言,本发明实施例拷贝增量镜像的时间更短,从而提高了克隆的效率。

进一步地,参照图3,基于本发明虚拟机克隆方法第一实施例,提出了本发明虚拟机克隆方法第三实施例,与本发明虚拟机克隆方法第一实施例的区别在于,在本实施例中,对移动镜像文件的操作进行了进一步地限定。具体地,在本发明虚拟机克隆方法第三实施例中,上述步骤s10包括:

步骤s11,判断所述原始虚拟机是否为开机状态;若是,则执行步骤s12,否则执行步骤s13;

步骤s12,控制所述原始虚拟机暂停运行,并卸载镜像文件后,将所述镜像文件移动到第一预置目录下;

步骤s13,将所述原始虚拟机对应的镜像文件移动到第一预置目录下。

本实施例中,当原始虚拟机在开机状态下运行时,镜像文件将被加载在虚拟机中运行,将无法直接移动镜像文件;此时,将首先控制虚拟机暂停运行,然后再从原始虚拟机上卸载镜像文件,最后将镜像文件移动到第一预置目录下;当原始虚拟机当前为关机状态,则可以直接移动镜像文件。

应当说明的是,在本实施例中,对原始虚拟机进行暂停,而未直接终止,可以在后续克隆完目标虚拟机后,再恢复原始虚拟机的启动,从而防止了操作中断,提高了用户的体验度。于此同时,无需用户再次启动原始虚拟机,因此提高了操作的灵活性。以下将对恢复原始虚拟机运行的过程作出详细说明。

具体地,在上述步骤s20之后还包括:

当所述原始虚拟机为开机状态时,控制所述原始虚拟机加载所述第一增量镜像,以恢复所述原始虚拟机运行。

本实施例中,在得到上述第一增量镜像和第二增量镜像后,可以判断原始虚拟机是否为开机状态。若之前为开机暂停状态,则需要控制原始虚拟机加载运行第一增量镜像,从而恢复原始虚拟机的运行状态,以保证原始虚拟机的正常运行。

此外,本实施例中,上述虚拟机克隆方法还包括:

控制所述目标虚拟机加载运行所述第二增量镜像。

在本实施例中,克隆后的目标虚拟机与原始虚拟机一致,且目标虚拟机加载运行的第二增量镜像与原始虚拟机加载运行的第一增量镜像一致,因此第一虚拟机的运行状态与第二虚拟机的运行状态可以一致。此外,需要说明的是,由于克隆后的目标虚拟机运行的第一增量镜像和原始虚拟机运行的第二增量镜像是一模一样,所以克隆后目标的虚拟机和原始虚拟机是一模一样的。由于第一增量镜像和第二增量镜像的基镜像是一样的,并且增量镜像之间是单独且独立的,所以克隆后的目标虚拟机和原始虚拟机又是独立的。

进一步地,参照图4,本发明还提出一种虚拟机克隆装置第一实施例,在本发明虚拟机克隆装置第一实施例中,该虚拟机克隆装置包括:

控制模块10,用于将原始虚拟机的镜像文件设定为基镜像;

本发明实施例提供的虚拟机克隆装置主要应用在虚拟机克隆应用中,以实现快速克隆虚拟机。

具体地,在虚拟化产品中克隆虚拟机就是说将复制一个虚拟机成单独独立的另一个虚拟机,克隆出的虚拟机和原始虚拟机都是单独独立的,使用互不影响。克隆就是将虚拟机镜像文件复制一份,内容和原文件一模一样。

上述虚拟机的镜像文件是指磁盘镜像文件,在虚拟机内部虚拟机镜像就是虚拟机使用的磁盘,使用上和物理磁盘没差别。在虚拟化平台上,虚拟机镜像就是一个文件,虚拟机使用的磁盘就是这个文件(即虚拟机的镜像文件)。

由于克隆的虚拟机的镜像文件所在的位置不一致,为了形成标准化的克隆需求,优选地,在本实施例中,控制模块10具体用于将原始虚拟机的镜像文件移动到第一预置目录下,并将移动后的镜像文件设定为基镜像。

上述第一预置目录为用户指定目录,可以预先设定该目录的路径地址。具体地,将原始虚拟机的镜像文件移动到第一预置目录下,在本实施例中是指,将镜像文件以剪切的形式将镜像文件移动至第一目录下。

处理模块20,用于根据所述基镜像生成供原始虚拟机运行的第一增量镜像和预克隆得到的目标虚拟机运行的第二增量镜像,且所述第一增量镜像与第二增量镜像相同;

本实施例中,上述基镜像也是一个虚拟机的镜像文件,只是这个文件是一个母体,这个母体是单独独立的,这个母体可以衍生出很多个子体,子体也是一个镜像文件,只是这个子体是单独的但是不独立,它依赖于母体,子体和子体之间是单独且独立的,子体也可以是一个基镜像。

上述增量镜像是由基镜像衍生出来的子体构成的,本实施例中可以由上述基镜像生成两个相同个增量镜像,其中一个增量镜像为第一增量镜像,另一个增量镜像为第二增量镜像。

克隆模块30,用于根据所述第二增量镜像克隆得到目标虚拟机。

由于上述第一增量镜像和第二增量镜像完全一致,因此在根据第二增量镜像进行克隆得到的目标虚拟机与原始虚拟机完全一致。

本发明实施例通过将原始虚拟机的镜像文件设定为基镜像;根据所述基镜像生成供原始虚拟机运行的第一增量镜像和预克隆得到的目标虚拟机运行的第二增量镜像,且所述第一增量镜像与第二增量镜像相同;根据所述第二 增量镜像克隆得到目标虚拟机。由于本发明实施例只要根据基镜像得到第二增量镜像,即可进行克隆得到目标虚拟机,相对于现有技术,本发明实施例无需拷贝镜像文件,因此缩短了虚拟机的克隆时间,提高了克隆的效率。

进一步地,参照图5,基于本发明虚拟机克隆装置第一实施例,提出了本发明虚拟机克隆装置第二实施例,与本发明虚拟机克隆装置第一实施例的区别在于,在本实施例中,采用拷贝第一增量镜像的方式得到第二增量镜像。具体地,在本发明虚拟机克隆装置第二实施例中,上述处理模块20包括:

处理单元21,用于根据所述基镜像创建第一增量镜像;

拷贝单元22,用于将所述第一增量镜像拷贝到第二预置目录下形成第二增量镜像。

本实施例中,为了保证第二增量镜像与第一增量镜像的一致性,首先根据基镜像衍生得到第一增量镜像,然后将第一增量镜像拷贝到指定的第二预置目录下形成第二增量镜像。具体地,该第二预置目录上述第一预置目录不为同一个目录,该第二预置目录可以为用户预先设定的目录,用于在创建上述目标虚拟机运行时所加载运行该第二增量镜像的目录。在本实施例中,由于只需要拷贝第一增量镜像,然而在由于刚开始创建的增量镜像相对于基镜像而言要小很多,通常开始创建的增量镜像只有几兆左右,因此相对于现有技术中拷贝完整镜像文件而言,本发明实施例拷贝增量镜像的时间更短,从而提高了克隆的效率。

进一步地,参照图6,基于本发明虚拟机克隆装置第一实施例,提出了本发明虚拟机克隆装置第三实施例,与本发明虚拟机克隆装置第一实施例的区别在于,在本实施例中,对移动镜像文件的操作进行了进一步地限定。具体地,在本发明虚拟机克隆装置第三实施例中,上述控制模块10包括:

判断单元11,用于判断所述原始虚拟机是否为开机状态;

控制单元12,用于当所述原始虚拟机为关机状态时,将所述原始虚拟机对应的镜像文件移动到第一预置目录下;用于当所述原始虚拟机为开机状态时,控制所述原始虚拟机暂停运行,并卸载镜像文件后,将所述镜像文件移动到第一预置目录下。

本实施例中,当原始虚拟机在开机状态下运行时,镜像文件将被加载在虚拟机中运行,将无法直接移动镜像文件;此时,将首先控制虚拟机暂停运行,然后再从原始虚拟机上卸载镜像文件,最后将镜像文件移动到第一预置目录下;当原始虚拟机当前为关机状态,则可以直接移动镜像文件。

应当说明的是,在本实施例中,对原始虚拟机进行暂停,而未直接终止,可以在后续克隆完目标虚拟机后,再恢复原始虚拟机的启动,从而防止了操作中断,提高了用户的体验度。于此同时,无需用户再次启动原始虚拟机,因此提高了操作的灵活性。以下将对恢复原始虚拟机运行的过程作出详细说明。

具体地,上述虚拟机克隆装置还包括:

恢复模块,用于当所述原始虚拟机为开机状态时,控制所述原始虚拟机加载所述第一增量镜像,以恢复所述原始虚拟机运行。

本实施例中,在得到上述第一增量镜像和第二增量镜像后,可以判断原始虚拟机是否为开机状态。若之前为开机暂停状态,则需要控制原始虚拟机加载运行第一增量镜像,从而恢复原始虚拟机的运行状态,以保证原始虚拟机的正常运行。

此外,本实施例中,上述虚拟机克隆装置还包括:

加载模块,用于控制所述目标虚拟机加载运行所述第二增量镜像。

在本实施例中,克隆后的目标虚拟机与原始虚拟机一致,且目标虚拟机加载运行的第二增量镜像与原始虚拟机加载运行的第一增量镜像一致,因此第一虚拟机的运行状态与第二虚拟机的运行状态可以一致。此外,需要说明的是,由于克隆后的目标虚拟机运行的第一增量镜像和原始虚拟机运行的第二增量镜像是一模一样,所以克隆后目标的虚拟机和原始虚拟机是一模一样的。由于第一增量镜像和第二增量镜像的基镜像是一样的,并且增量镜像之间是单独且独立的,所以克隆后的目标虚拟机和原始虚拟机又是独立的。

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

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1