虚拟机热克隆方法、装置、系统、计算机设备和存储介质与流程

文档序号:27484525发布日期:2021-11-20 02:46阅读:143来源:国知局
虚拟机热克隆方法、装置、系统、计算机设备和存储介质与流程

1.本技术涉及计算机技术领域,特别是涉及一种虚拟机热克隆方法、装置、系统、计算机设备和存储介质。


背景技术:

2.随着计算机技术的发展,逐渐出现了基于计算机的虚拟机技术,基于虚拟机技术得到的虚拟机是具有完整硬件系统功能的完整计算机系统,能够用于完成相应实体计算机所能实现的数据处理。通过部署多个功能相同的虚拟机执行同一数据处理,能够提高数据处理效率。为了提高虚拟机部署效率,可通过虚拟机热克隆方式来部署多个功能相同的虚拟机。目前,通常是同一物理机的虚拟机热克隆,以在同一物理机上部署多个功能相同的虚拟机执行同一数据处理。但是,该种方式会增加部署有虚拟机的物理机的数据处理压力。


技术实现要素:

3.基于此,有必要针对上述技术问题,提供一种能够缓解部署有虚拟机的物理机的数据处理压力的虚拟机热克隆方法、装置、系统、计算机设备和存储介质。
4.一种虚拟机热克隆方法,所述方法包括:
5.接收终端发送的虚拟机克隆指令;
6.将根据所述虚拟机克隆指令生成的虚拟机磁盘克隆任务发送至源物理机;所述虚拟机磁盘克隆任务用于指示所述源物理机对源虚拟机磁盘进行克隆得到克隆磁盘文件;
7.当接收到所述源物理机反馈的表示磁盘克隆成功的提示信息时,根据所述虚拟机克隆指令动态选取目的物理机;
8.根据所述虚拟机克隆指令生成每个目的虚拟机的基本信息;
9.向每个目的物理机发送携带相应目的虚拟机的基本信息的虚拟机克隆任务;所述虚拟机克隆任务用于指示相应目的物理机从所述源物理机获取所述克隆磁盘文件,并基于所述克隆磁盘文件按照相应基本信息在本地克隆相应目的虚拟机。
10.在其中一个实施例中,所述根据所述虚拟机克隆指令动态选取目的物理机,包括:
11.根据所述虚拟机克隆指令确定部署集与目的虚拟机数量;
12.按照所述部署集确定候选物理机;
13.从所述候选物理机中选取所述目的虚拟机数量的目的物理机。
14.在其中一个实施例中,所述按照所述部署集确定候选物理机,包括:
15.当所述部署集为物理机级别时,将各存储集群中的物理机作为候选物理机;
16.当所述部署集为存储集群级别时,将与所述源物理机分处于不同存储集群的物理机作为候选物理机。
17.在其中一个实施例中,所述方法还包括:
18.当接收到各所述目的物理机分别反馈的表示虚拟机克隆成功的提示信息后,生成克隆磁盘文件删除指令;
19.将所述克隆磁盘文件删除指令发送至所述源物理机;所述克隆磁盘文件删除指令用于指示所述源物理机删除所述克隆磁盘文件。
20.在其中一个实施例中,所述目的物理机基于所述克隆磁盘文件按照相应基本信息在本地克隆相应目的虚拟机的步骤,包括:
21.所述目的物理机解析所接收到的虚拟机克隆任务得到相应目的虚拟机的基本信息,根据所述基本信息生成存储目录与配置文件;
22.所述目的物理机对所述克隆磁盘文件对应的文件标识进行重命名,对重命名后的克隆磁盘文件进行修改得到目标磁盘文件,将所述目标磁盘文件按照所述存储目录进行存储;
23.所述目的物理机基于所述配置文件生成相应目的虚拟机的元数据,以完成所述相应目的虚拟机的克隆操作。
24.在其中一个实施例中,所述虚拟机克隆任务还携带有表征相应目的物理机与所述源物理机是否处于同一存储集群的判定结果;所述目的物理机从所述源物理机获取所述克隆磁盘文件的步骤,包括:
25.所述目的物理机从所接收到的虚拟机克隆任务中提取判定结果,根据所提取出的判定结果确定所述克隆磁盘文件的获取方式;
26.所述目的物理机按照所确定的获取方式从所述源物理机获取所述克隆磁盘文件。
27.一种虚拟机热克隆装置,所述装置包括:
28.接收模块,用于接收终端发送的虚拟机克隆指令;
29.第一克隆模块,用于将根据所述虚拟机克隆指令生成的虚拟机磁盘克隆任务发送至源物理机;所述虚拟机磁盘克隆任务用于指示所述源物理机对源虚拟机磁盘进行克隆得到克隆磁盘文件;
30.选取模块,用于当接收到所述源物理机反馈的表示磁盘克隆成功的提示信息时,根据所述虚拟机克隆指令动态选取目的物理机;
31.生成模块,用于根据所述虚拟机克隆指令生成每个目的虚拟机的基本信息;
32.第二克隆模块,用于向每个目的物理机发送携带相应目的虚拟机的基本信息的虚拟机克隆任务;所述虚拟机克隆任务用于指示相应目的物理机从所述源物理机获取所述克隆磁盘文件,并基于所述克隆磁盘文件按照相应基本信息在本地克隆相应目的虚拟机。
33.一种虚拟机热克隆系统,所述系统包括:终端、源物理机、目的物理机与控制设备;
34.所述终端,用于向所述控制设备发送虚拟机克隆指令;
35.所述控制设备,用于将根据所述虚拟机克隆指令生成的虚拟机磁盘克隆任务发送至所述源物理机;
36.所述源物理机,用于根据所述虚拟机磁盘克隆任务对源虚拟机磁盘进行克隆得到克隆磁盘文件;
37.所述控制设备,还用于当接收到所述源物理机反馈的表示磁盘克隆成功的提示信息时,根据所述虚拟机克隆指令动态选取目的物理机;根据所述虚拟机克隆指令生成每个目的虚拟机的基本信息;向每个目的物理机发送携带相应目的虚拟机的基本信息的虚拟机克隆任务;
38.所述目的物理机,用于根据所接收到的虚拟机克隆任务从源物理机获取所述克隆
磁盘文件,并根据所述克隆磁盘文件按照相应基本信息在本地克隆相应目的虚拟机。
39.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述各个方法实施例的步骤。
40.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各个方法实施例的步骤。
41.上述虚拟机热克隆方法、装置、系统、计算机设备和存储介质,在接收到终端发送的虚拟机克隆指令后,将根据该虚拟机克隆指令生成的虚拟机磁盘克隆任务发送至源物理机,以指示源物理机对虚拟机克隆指令所指定的源虚拟机磁盘进行克隆得到克隆磁盘文件,并在接收到源物理机反馈的表示磁盘克隆成功的提示信息时,根据该虚拟机克隆指令动态选取目的物理机,以及生成每个目的虚拟机的基本信息,将携带每个目的虚拟机的基本信息的虚拟机克隆任务发送至相应目的物理机,以指示每个目的物理机根据所接收到的虚拟机克隆任务从源物理机获取克隆磁盘文件,并基于该克隆磁盘文件按照相应基本信息在本地克隆相应目的虚拟机,以实现跨物理机的虚拟机热克隆。这样,通过虚拟机热克隆的方式,将功能相同的多个虚拟机分散部署于不同的物理机,能够缓解每个物理机的数据处理压力,而且,该种部署方式下,能够提高虚拟机的可用性,从而能够提高数据处理的可靠性。
附图说明
42.图1为一个实施例中虚拟机热克隆方法的应用环境图;
43.图2为一个实施例中虚拟机热克隆方法的流程示意图;
44.图3为另一个实施例中虚拟机热克隆方法的流程示意图;
45.图4为一个实施例中虚拟机热克隆方法的时序图;
46.图5为一个实施例中虚拟机热克隆装置的结构框图;
47.图6为一个实施例中虚拟机热克隆系统的架构图;
48.图7为一个实施例中计算机设备的内部结构图。
具体实施方式
49.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
50.本技术提供的虚拟机热克隆方法,可以应用于如图1所示的应用环境中。其中,终端102、源物理机106、目的物理机108分别与控制设备104通过网络进行通信,源物理机106与目的物理机108通过网络进行通信。控制设备104接收终端102发送的虚拟机克隆指令,将根据该虚拟机克隆指令生成的虚拟机磁盘克隆任务发送至源物理机106,以指示源物理机106对源虚拟机磁盘进行克隆得到相应克隆磁盘文件,当接收到源物理机106反馈的表示磁盘克隆成功的提示信息时,根据虚拟机克隆指令动态选取目的物理机108,以及生成每个目的虚拟机的基本信息,并向动态确定的每个目的物理机108发送携带相应目的虚拟机的基本信息的虚拟机克隆任务,以指示目的物理机108从源物理机106获取克隆磁盘文件,并基于该克隆磁盘文件按照相应基本信息在本地克隆相应目的虚拟机。其中,终端102可以但不
限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,控制设备104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。可以理解,图1所示的目的物理机作为示例,并不用于具体限定目的物理机的数量,比如根据虚拟机克隆指令动态选取的目的物理机可以有多个。
51.在一个实施例中,如图2所示,提供了一种虚拟机热克隆方法,以该方法应用于图1中的控制设备为例进行说明,包括以下步骤:
52.步骤202,接收终端发送的虚拟机克隆指令。
53.其中,虚拟机克隆指令是用于触发虚拟机克隆操作的指令。虚拟机克隆指令中携带有待克隆的源虚拟机标识,用于指定待克隆的源虚拟机,还可携带有目的虚拟机数量,用于指定所需克隆的目的虚拟机的数量。虚拟机克隆指令中还可携带有部署有待克隆的源虚拟机的源物理机对应的源物理机标识。
54.具体地,终端检测用户触发的虚拟机克隆操作,根据所检测到的虚拟机克隆操作确定待克隆的源虚拟机,生成携带有该源虚拟机的源虚拟机标识的虚拟机克隆指令,并将所生成的虚拟机克隆指令发送至控制设备。控制设备接收终端发送的虚拟机克隆指令。
55.在一个实施例中,终端还根据所检测到的虚拟机克隆操作确定目的虚拟机数量,并触发生成携带源虚拟机标识与目的虚拟机数量的虚拟机克隆指令。
56.在一个实施例中,终端还可根据虚拟机克隆操作确定部署有源虚拟机的源物理机对应的源物理机标识,并将携带源虚拟机标识、目的虚拟机数量与源物理机标识的虚拟机克隆指令发送至控制设备,以便于控制设备根据该虚拟机克隆指令中的源物理机标识能够确定部署有待克隆的源虚拟机的源物理机。终端还可将携带源虚拟机标识与目的虚拟机数量的虚拟机克隆指令发送至控制设备,以便于控制设备基于该虚拟机克隆指令中的源虚拟机标识,从数据库中确定部署有相应源虚拟机的源物理机。
57.步骤204,将根据虚拟机克隆指令生成的虚拟机磁盘克隆任务发送至源物理机;虚拟机磁盘克隆任务用于指示源物理机对源虚拟机磁盘进行克隆得到克隆磁盘文件。
58.其中,虚拟机磁盘克隆任务是用于触发虚拟机磁盘克隆操作的任务,具体用于指示源物理机对源虚拟机的源虚拟机磁盘进行克隆,以得到相应克隆磁盘文件。克隆磁盘文件也可理解为存储卷,是对源虚拟机磁盘进行克隆或拷贝操作所得到的磁盘文件。克隆磁盘文件包括源虚拟机当前的所有数据。
59.具体地,控制设备解析所接收到的虚拟机克隆指令得到待克隆的源虚拟机标识,生成携带有该源虚拟机标识的虚拟机磁盘克隆任务,并将该虚拟机磁盘克隆任务发送至相应源物理机。源物理机解析所接收到的虚拟机磁盘克隆任务得到待克隆的源虚拟机标识,根据该源虚拟机标识查找相应的源虚拟机磁盘,并对该源虚拟机磁盘进行克隆操作得到相应的克隆磁盘文件。
60.在一个实施例中,控制设备在接收到虚拟机克隆指令后,确定中转虚拟机标识,将携带中转虚拟机标识与源虚拟机标识的虚拟机磁盘克隆任务发送至源物理机。源物理机根据虚拟机磁盘克隆任务对源虚拟机标识对应的源虚拟机磁盘进行克隆时,根据中转虚拟机标识对克隆后的磁盘文件对应的文件标识进行重命名得到克隆磁盘文件。可以理解,磁盘文件对应的文件标识包括相应源虚拟机对应的源虚拟机标识,由此,将克隆后的磁盘文件对应的文件标识中的源虚拟机标识更新为相应中转虚拟机标识,以实现对该文件标识的重
命名。
61.在一个实施例中,虚拟机磁盘克隆任务中还可携带有源物理机标识,以便于源物理机根据所接收到的虚拟机磁盘克隆任务中的源物理机标识,校验该虚拟机磁盘克隆任务,并在校验通过时,执行源虚拟机磁盘克隆操作。可以理解,当虚拟机磁盘克隆任务中携带的源物理机标识与源物理机对应的源物理机标识一致时,该源物理机判定相应虚拟机磁盘克隆任务校验通过。
62.在一个实施例中,源物理机将所得到的克隆磁盘文件存储在本地,以便于目的物理机根据虚拟机克隆任务请求源物理机获取该克隆磁盘文件时,源物理机能够从本地快速获取并反馈该克隆磁盘文件。可以理解,当目的物理机有多个时,通过缓存克隆磁盘文件的方式,能够避免针对每个目的物理机分别执行源虚拟机磁盘克隆操作,从而能够降低虚拟机克隆复杂度,提高克隆效率。
63.步骤206,当接收到源物理机反馈的表示磁盘克隆成功的提示信息时,根据虚拟机克隆指令动态选取目的物理机。
64.其中,目的物理机是需要部署目的虚拟机的物理机,目的物理机与源物理机相对应。目的虚拟机是对源虚拟机进行热克隆所得到的虚拟机,目的虚拟机与源虚拟机相对应,目的虚拟机与源虚拟机能够实现相同的数据处理。
65.具体地,源物理机根据虚拟机磁盘克隆任务对源虚拟机磁盘进行克隆得到相应克隆磁盘文件后,生成表示磁盘克隆成功的提示信息,并将该提示信息反馈至控制设备。控制设备在接收到源物理机反馈的表示磁盘克隆成功的提示信息后,根据所接收到的相应虚拟机克隆指令动态选取目的物理机。
66.在一个实施例中,控制设备根据虚拟机克隆指令动态选取一个或多个目的物理机,目的物理机的数量具体可由虚拟机克隆指令指定。
67.在一个实施例中,控制设备根据虚拟机克隆指令从预配置的物理机中动态选取目的物理机。控制设备具体可从预配置的所有物理机中动态选取目的物理机,也可按照存储集群从除源物理机所在的存储集群之外的各个存储集群中选取目的物理机。存储集群包括一个或多个预配置的物理机。
68.步骤208,根据虚拟机克隆指令生成每个目的虚拟机的基本信息。
69.其中,目的虚拟机的基本信息包括网络配置与虚拟机初始元数据。网络配置是指与网络相关的配套服务或配置,具体可包括ip(internet protocol,网际互连协议)地址、物理网卡地址、域名、时间同步服务等。虚拟机初始元数据包括目的虚拟机对应的密码、主机名、目的虚拟机标识、所属可用区与所属租户等。目的虚拟机标识用于唯一标识目的虚拟机。主机名与目的虚拟机标识通过随机算法生成,以保证每个目的虚拟机对应的主机名与目的虚拟机标识的唯一性。所属可用区是指目的虚拟机部署在哪里,比如深圳或上海。所属租户是指哪个组织或机构的用户对该目的虚拟机具有使用权限。不同目的虚拟机对应的目的虚拟机标识、主机名与密码互不相同,每个目的虚拟机对应的所属租户与所属可用区均与源虚拟机的一致。
70.具体地,虚拟机克隆指令中还包括源虚拟机的基本信息。控制设备解析虚拟机克隆指令得到源虚拟机的基本信息与目的虚拟机数量,并根据源虚拟机的基本信息,按照目的虚拟机数量生成每个目的虚拟机的基本信息。
71.在一个实施例中,控制设备根据源虚拟机的基本信息中的所属可用区与所属租户,确定每个目的虚拟机的所属可用区与所属租户。控制设备通过随机算法随机生成每个目的虚拟机对应的密码、主机名与目的虚拟机标识。虚拟机克隆指令中还包括用户在触发虚拟机克隆操作时选择的网段。控制设备根据虚拟机克隆指令所指定的网段调用接口,以从该网段中随机选取尚未占用的ip地址,作为相应目的虚拟机的ip地址,以每个目的虚拟机分配相应的ip地址。控制设备根据源虚拟机的基本信息确定每个目的虚拟机对应的物理网卡地址、域名、时间同步服务等配置。控制设备根据针对每个目的虚拟机所确定的密码、主机名、目的虚拟机标识、所属可用区与所属租户,得到该目的虚拟机对应的虚拟机初始元数据,并根据所确定的ip地址、物理网卡地址、域名、时间同步服务等得到相应目的虚拟机的网络配置,进而根据虚拟机初始元数据与网络配置得到相应目的虚拟机的基本信息。
72.步骤210,向每个目的物理机发送携带相应目的虚拟机的基本信息的虚拟机克隆任务;虚拟机克隆任务用于指示相应目的物理机从源物理机获取克隆磁盘文件,并基于克隆磁盘文件按照相应基本信息在本地克隆相应目的虚拟机。
73.其中,虚拟机克隆任务是用于触发虚拟机克隆操作的任务,用于指示目的物理机在本地克隆与源物理机对应的目的物理机。虚拟机克隆任务与目的虚拟机相对应。虚拟机克隆任务包括单个目的虚拟机的基本信息,还可包括源物理机标识与源物理机网络信息中的一种或多个,源物理机网络信息比如源物理机ip地址,还可包括源虚拟机标识与源虚拟机对应的克隆磁盘文件的存储路径中的一种或多个。
74.具体地,控制设备动态选取出目的虚拟机数量的目的物理机,以及针对目的虚拟机数量的目的虚拟机中的每个目的虚拟机生成相应基本信息后,确定目的物理机与目的虚拟机之间关联关系,以为每个目的虚拟机分配相应的目的物理机。控制设备根据每个目的虚拟机的基本信息,分别生成携带该目的虚拟机的基本信息的虚拟机克隆任务,得到数量与目的虚拟机数量一致的虚拟机克隆任务。控制设备按照所确定的目的物理机与目的虚拟机之间的关联关系,将所生成的每个虚拟机克隆任务分别发送至相应目的物理机。每个目的物理机在接收到控制设备发送的虚拟机克隆任务后,根据所接收到的虚拟机克隆任务从源物理机获取相应克隆磁盘文件,并根据所获取到的克隆磁盘文件,按照所接收到的虚拟机克隆任务所携带的基本信息,在本地进行虚拟机克隆操作得到相应目的虚拟机。
75.在一个实施例中,每个目的物理机解析所接收到的虚拟机克隆任务,得到源物理机标识、源虚拟机标识与相应目的虚拟机的基本信息,并按照解析得到的源物理机标识与源虚拟机标识,从相应源物理机获取该源虚拟机标识对应的克隆磁盘文件。可以理解,若虚拟机克隆任务中包括源物理机网络信息与源虚拟机对应的克隆磁盘文件的存储路径,控制设备则可按照该源物理机网络信息与克隆磁盘文件的存储路径,从相应源物理机获取克隆磁盘文件。
76.在一个实施例中,虚拟机克隆任务中还可携带有目的物理机标识。每个目的物理机解析所接收到的虚拟机克隆任务得到目的物理机标识,并根据解析得到的目的物理机标识与该目的物理机自身的目的物理机标识,对相应虚拟机克隆任务进行校验,并在校验通过时,执行相应的虚拟机克隆操作。
77.在一个实施例中,控制设备在确定目的物理机与目的虚拟机之间的关联关系后,生成每个目的虚拟机对应的虚拟机克隆任务,所生成的虚拟机克隆任务中还可携带有相应
目的虚拟机所关联的目的物理机的目的物理机网络信息,以便于根据每个虚拟机克隆任务中的物理机网络信息,将该虚拟机克隆任务发送至相应目的物理机。
78.上述虚拟机热克隆方法,在接收到终端发送的虚拟机克隆指令后,将根据该虚拟机克隆指令生成的虚拟机磁盘克隆任务发送至源物理机,以指示源物理机对虚拟机克隆指令所指定的源虚拟机磁盘进行克隆得到克隆磁盘文件,并在接收到源物理机反馈的表示磁盘克隆成功的提示信息时,根据该虚拟机克隆指令动态选取目的物理机,以及生成每个目的虚拟机的基本信息,将携带每个目的虚拟机的基本信息的虚拟机克隆任务发送至相应目的物理机,以指示每个目的物理机根据所接收到的虚拟机克隆任务从源物理机获取克隆磁盘文件,并基于该克隆磁盘文件按照相应基本信息在本地克隆相应目的虚拟机,以实现跨物理机的虚拟机热克隆。这样,通过虚拟机热克隆的方式,将功能相同的多个虚拟机分散部署于不同的物理机,能够缓解每个物理机的数据处理压力,而且,该种部署方式下,能够提高虚拟机的可用性,从而能够提高数据处理的可靠性。
79.在一个实施例中,根据虚拟机克隆指令动态选取目的物理机,包括:根据虚拟机克隆指令确定部署集与目的虚拟机数量;按照部署集确定候选物理机;从候选物理机中选取目的虚拟机数量的目的物理机。
80.其中,部署集用于表征虚拟机的分散级别,具体可以是指源虚拟机与目的虚拟机的分散级别。部署集包括物理机级别与存储集群级别。物理机级别是指源虚拟机与目的物理机分别部署于不同的物理机,部署有源虚拟机的源物理机与部署有目的虚拟机的目的物理机,可同属于一个存储集群,也可分属于不同的存储集群。存储集群级别是指源虚拟机与目的虚拟机分别部署于不同的存储集群,部署有源虚拟机的源物理机与部署有目的虚拟机的目的物理机分属于不同的存储集群。部署集级别具体可由用户在触发虚拟机克隆操作时指定或选择。目的虚拟机数量是指所需克隆的目的虚拟机的数量。
81.具体地,控制设备解析所接收到的虚拟机克隆指令得到部署集与目的虚拟机数量。控制设备按照解析得到的部署集确定候选物理机,并按照解析得到的目的虚拟机数量从所确定的候选物理机中选取目的物理机,得到数量与目的虚拟机数量一致的目的物理机。
82.在一个实施例中,控制设备从数据库中获取预配置的各个物理机的部署情况,并根据各个物理机的部署情况,按照部署集从预配置的物理机中确定候选物理机。物理机的部署情况包括物理机所属的存储集群。
83.在一个实施例中,控制设备动态获取每个候选物理机的当前负载,并根据各个候选物理机的当前负载,从候选物理机中选取目的虚拟机数量的目的物理机。控制设备按照目的虚拟机数量,选取当前负载相对较小的候选物理机作为目的物理机。这样,按照部署集将目的虚拟机分散部署于相对空闲的目的物理机,能够实现物理机间的负载均衡,从而能够降低目的物理机的数据处理压力。
84.在一个实施例中,虚拟机克隆指令中的目的虚拟机数量小于或等于数量阈值,数量阈值比如4。这样,针对源虚拟机的单次克隆过程中,通过限制单次克隆的目的虚拟机数量,能够避免因单次克隆所占用的存储网络带宽过大,从而影响其它虚拟机正常运行的问题。可以理解,若需针对源虚拟机克隆更多的目的虚拟机,可通过多次克隆过程来实现。
85.上述实施例中,按照虚拟机克隆指令所指定的部署集与目的虚拟机数量,选取用
于部署目的虚拟机的目的物理机,能够实现部署集分散的虚拟机热克隆。
86.在一个实施例中,按照部署集确定候选物理机,包括:当部署集为物理机级别时,将各存储集群中的物理机作为候选物理机;当部署集为存储集群级别时,将与源物理机分处于不同存储集群的物理机作为候选物理机。
87.其中,物理机级别是指源虚拟机与目的虚拟机分别部署于不同的物理机。存储集群级别是指源虚拟机与目的虚拟机分别部署于不同的存储集群。
88.具体地,当虚拟机克隆指令所指定的部署集为物理机级别时,控制设备将已有的各个存储集群中预配置的所有物理机作为候选物理机。当部署集为存储集群级别时,控制设备从已有的存储集群中确定除源物理机所处的存储集群之外的存储集群,并将所确定的每个存储集群中预配置的物理机作为候选物理机,以使得所确定的候选物理机与源物理机分处于不同的存储集群。
89.在一个实施例中,当部署集为物理机级别时,控制设备从数据库中获取各个存储集群中预配置的物理机作为候选物理机。可以理解,当部署集为物理机级别时,按照上述方式确定的候选物理机不包括源物理机。当部署集为存储集群级别时,控制设备从数据库中获取与源物理机分处于不同存储集群的物理机作为候选物理机。
90.上述实施例中,按照部署集确定候选物理机,以便于从所确定的候选物理机中选取部署目的虚拟机的目的物理机,并通过所选取的目的物理机进行虚拟机热克隆,能够实现部署集分散的虚拟机热克隆,从而能够降低各目的物理机的数据处理压力。
91.在一个实施例中,上述虚拟机热克隆方法还包括:当接收到各目的物理机分别反馈的表示虚拟机克隆成功的提示信息后,生成克隆磁盘文件删除指令;将克隆磁盘文件删除指令发送至源物理机;克隆磁盘文件删除指令用于指示源物理机删除克隆磁盘文件。
92.其中,克隆磁盘文件删除指令是用于触发克隆磁盘文件删除操作的指令,用于指示源物理机删除本地存储的克隆磁盘文件。
93.具体地,每个目的物理机根据所接收到的虚拟机克隆任务在本地克隆得到相应目的虚拟机后,触发生成表示虚拟机克隆成功的提示信息,并将所生成的提示信息反馈至控制设备。控制设备接收每个目的物理机分别反馈的表示虚拟机克隆成功的提示信息,当接收到源物理机对应的所有目的物理机分别反馈的提示信息后,触发生成克隆磁盘文件删除指令,并将该克隆磁盘文件删除指令发送至源物理机。源物理机根据所接收到的克隆磁盘文件删除指令从本地删除相应的克隆磁盘文件。
94.在一个实施例中,源物理机解析所接收到的克隆磁盘文件,得到源虚拟机标识或源虚拟机对应的克隆磁盘文件的存储路径,并按照存储路径删除相应克隆磁盘文件,或者,根据源虚拟机标识确定并删除相应克隆磁盘文件。
95.在一个实施例中,若目的物理机为一个、且目的物理机与源物理机处于同一个存储集群,源物理机基于目的物理机的克隆磁盘文件获取请求,将本地存储的相应克隆磁盘文件迁移至目的物理机,也即源物理机向目的物理机反馈相应克隆磁盘文件的同时,从本地删除该克隆磁盘文件。
96.在一个实施例中,源物理机根据虚拟机磁盘克隆任务对源虚拟机磁盘进行克隆得到克隆磁盘文件后,还会生成该克隆磁盘文件对应的存储池,以便于目的物理机能够基于该存储池从源物理机获取到相应的克隆磁盘文件。源物理机在根据克隆磁盘文件删除指令
删除相应克隆磁盘文件的同时,还会删除该克隆磁盘文件对应的存储池,以释放该克隆磁盘文件与存储池所占用的存储空间。
97.上述实施例中,在虚拟机热克隆操作成功完成后,指示源物理机删除本地存储的克隆磁盘文件,以减少源物理机的数据存储量。由于源物理机上存储的克隆磁盘文件在源虚拟机与目的虚拟机的运行过程中均不会被使用,由此,在虚拟机克隆操作执行完成后,通过删除该克隆磁盘文件能够避免未被使用的克隆磁盘文件占用不必要的存储空间。
98.在一个实施例中,目的物理机基于克隆磁盘文件按照相应基本信息在本地克隆相应目的虚拟机的步骤,包括:目的物理机解析所接收到的虚拟机克隆任务得到相应目的虚拟机的基本信息,根据基本信息生成存储目录与配置文件;目的物理机对克隆磁盘文件对应的文件标识进行重命名,对重命名后的克隆磁盘文件进行修改得到目标磁盘文件,将目标磁盘文件按照存储目录进行存储;目的物理机基于配置文件生成相应目的虚拟机的元数据,以完成相应目的虚拟机的克隆操作。
99.具体地,每个目的物理机解析所接收到的虚拟机克隆任务,得到相应目的虚拟机的基本信息,并根据基本信息中的目的虚拟机标识生成相应的存储目录,以及根据基本信息生成目的虚拟机对应的配置文件。每个目的物理机根据所接收到的虚拟机克隆任务从源物理机获取到相应克隆磁盘文件后,根据该虚拟机克隆任务所指定的目的虚拟机标识,对所获取到的克隆磁盘文件对应的文件标识进行重命名,对重命名后的克隆磁盘文件进行修改得到相应目的虚拟机所对应的目标磁盘文件,并将该目标磁盘文件按照相应生成的存储目录进行存储。每个目的物理机基于针对相应目的虚拟机所生成的配置文件生成该目的虚拟机的元数据,以完成对相应目的虚拟机的克隆操作,得到部署于本地的目的虚拟机。进一步地,在克隆得到目的虚拟机后,启动该目的虚拟机,该目的虚拟机基于相应目标磁盘文件与元数据来运行,能够实现与源虚拟机一致的数据处理。
100.在一个实施例中,每个目的虚拟机对应的目的虚拟机标识是唯一的。每个目的物理机根据所接收到的虚拟机克隆任务确定相应目的虚拟机标识后,将所确定的目的虚拟机标识作为名称,以生成相应的存储目录。
101.在一个实施例中,每个目的物理机将克隆磁盘文件对应的文件标识所携带的中转虚拟机标识更新为相应目的虚拟机标识,以实现对克隆磁盘文件对应的文件标识的重命名。这样,每个目的物理机通过对所获取到的克隆磁盘文件对应的文件标识进行重命名,能够得到文件标识互不相同的目标磁盘文件。
102.在一个实施例中,每个目的物理机将所得到的目标磁盘文件按照相应生成的存储目录进行存储后,按照存储目录生成目标磁盘文件对应的存储池,以便于按照存储池对相应目标磁盘文件进行管理。目的物理机具体可调用预设存储池创建接口创建目标磁盘文件对应的存储池。
103.在一个实施例中,每个目的物理机将基于虚拟机克隆任务得到的相应目的虚拟机的基本信息,以及从源物理机获取到的克隆磁盘文件组织成预设格式的目标文件,以便于基于该目标文件进行后续的虚拟机克隆操作。预设格式的目标文件比如xml(一种数据组织格式)文件。
104.在一个实施例中,每个目的物理机还会对目的虚拟机的系统配置进行修改。系统配置是指目的虚拟机对应的操作系统的相关配置,比如登录及权限控制配置。目的物理机
对重命名后的克隆磁盘文件进行修改的过程中,会执行上述对目的虚拟机的系统配置的修改操作。可以理解,克隆磁盘文件可理解为镜像文件,由此,对克隆磁盘文件的重命名与修改操作可理解为对镜像文件的重命名与修改操作。
105.在一个实施例中,每个目的物理机调用预设磁盘文件修改函数,对重命名后的克隆磁盘文件进行修改得到相应目标磁盘文件,并调用预设组件修改函数对目的虚拟机内部的虚拟机初始化组件进行修改,以及调用预设元数据生成函数根据配置文件生成目的虚拟机的元数据。可以理解,可将预设磁盘文件修改函数、预设组件修改函数与预设元数据生成函数封装成一个虚拟机克隆函数,以便于目的物理机调用该虚拟机克隆函数即可实现目的虚拟机的克隆。基于配置文件生成目的虚拟机的元数据的过程,也即是对目的虚拟机进行初始化的过程,以便于初始化后的目的虚拟机能够基于目标磁盘文件与元数据运行起来。
106.在一个实施例中,当目的物理机有多个时,该多个目的物理机根据各自接收到的虚拟机克隆任务,并行的执行上述虚拟机克隆操作。
107.上述实施例中,每个目的物理机基于所接收到的虚拟机克隆任务,按照相同的克隆操作流程在本地克隆得到相应的目的虚拟机,以完成部署集分散的虚拟机热克隆流程,得到部署集分散的源虚拟机与目的虚拟机。
108.在一个实施例中,虚拟机克隆任务还携带有表征相应目的物理机与源物理机是否处于同一存储集群的判定结果;目的物理机从源物理机获取克隆磁盘文件的步骤,包括:目的物理机从所接收到的虚拟机克隆任务中提取判定结果,根据所提取出的判定结果确定克隆磁盘文件的获取方式;目的物理机按照所确定的获取方式从源物理机获取克隆磁盘文件。
109.具体地,控制设备在生成每个目的物理机对应的虚拟机克隆任务之前,分别判断每个目的物理机与源物理机是否处于同一个存储集群,得到每个目的物理机对应的、且表征该目的物理机与源物理机是否处于同一存储集群的判定结果,并生成携带该判定结果与相应目的虚拟机的基本信息的虚拟机克隆任务。每个目的物理机解析所接收到的虚拟机克隆任务,得到相应目的虚拟机的基本信息,以及表征该目的物理机与源物理机是否处于同一存储集群的判定结果,并按照判定结果与克隆磁盘文件的获取方式之间的对应关系,根据解析得到的判定结果确定相应克隆磁盘文件的获取方式,进而按照所确定的获取方式从源物理机获取相应的克隆磁盘文件,以便于根据目的虚拟机的基本信息与克隆磁盘文件,按照上述流程进行目的虚拟机的克隆操作。
110.在一个实施例中,当判定结果表征目的物理机与源物理机处于同一存储集群时,该判定结果对应的克隆磁盘文件的获取方式为第一获取方式。当判定结果表征目的物理机与源物理机不处于同一存储集群时,该判定结果对应的克隆磁盘文件的获取方式为第二获取方式。第一获取方式比如基于cp(一种能够实现相同操作系统下,不同存储目录间的文件复制的方式)的获取方式。第二获取方式比如基于scp(一种能够实现不同操作系统间的文件复制的方式)的获取方式。
111.上述实施例中,针对目的物理机与源物理机是否处于同一存储集群的判定结果,分别提供相应的克隆磁盘文件获取方式,以便于基于相应的获取方式快速而准确的获取到相应的克隆磁盘文件。
112.如图3所示,在一个实施例中,提供了一种虚拟机热克隆方法,该方法具体包括以
下步骤:
113.步骤302,接收终端发送的虚拟机克隆指令。
114.步骤304,将根据虚拟机克隆指令生成的虚拟机磁盘克隆任务发送至源物理机;虚拟机磁盘克隆任务用于指示源物理机对源虚拟机磁盘进行克隆得到克隆磁盘文件。
115.步骤306,当接收到源物理机反馈的表示磁盘克隆成功的提示信息时,根据虚拟机克隆指令确定部署集与目的虚拟机数量。
116.步骤308,当部署集为物理机级别时,将各存储集群中的物理机作为候选物理机。
117.步骤310,当部署集为存储集群级别时,将与源物理机分处于不同存储集群的物理机作为候选物理机。
118.步骤312,从候选物理机中选取目的虚拟机数量的目的物理机。
119.步骤314,根据虚拟机克隆指令生成每个目的虚拟机的基本信息。
120.步骤316,向每个目的物理机发送携带相应目的虚拟机的基本信息的虚拟机克隆任务;虚拟机克隆任务用于指示相应目的物理机从源物理机获取克隆磁盘文件,并基于克隆磁盘文件按照相应基本信息在本地克隆相应目的虚拟机。
121.步骤318,当接收到各目的物理机分别反馈的表示虚拟机克隆成功的提示信息后,生成克隆磁盘文件删除指令。
122.步骤320,将克隆磁盘文件删除指令发送至源物理机;克隆磁盘文件删除指令用于指示源物理机删除克隆磁盘文件。
123.上述实施例中,基于虚拟机克隆指令所指定的部署集与目的虚拟机数量,动态选取部署集分散的目的物理机,以便于通过目的物理机从源物理机克隆得到源虚拟机对应的目的物理机时,能够实现源虚拟机与目的虚拟机的部署集分散。这样,在共享存储与本地磁盘场景下能够实现跨物理机与跨存储集群的虚拟机热克隆,能够降低目的物理机的数据处理压力。
124.图4为一个实施例中虚拟机热克隆方法的时序图。如图4所示,控制设备接收终端发送的虚拟机克隆指令,根据虚拟机克隆指令生成虚拟机磁盘克隆任务,将该虚拟机磁盘克隆任务发送至源物理机。源物理机根据虚拟机磁盘克隆任务对源虚拟机磁盘进行克隆得到克隆磁盘文件,并向控制设备反馈表示磁盘克隆成功的提示信息。控制设备在接收到表示磁盘克隆成功的提示信息后,根据虚拟机克隆指令指定的部署集与目的虚拟机数量选取目的物理机,以及生成每个目的虚拟机的基本信息。控制设备判断每个目的物理机与源物理机是否处于同一存储集群,生成携带判定结果与目的虚拟机的基本信息的虚拟机克隆任务,并将虚拟机克隆任务发送至相应目的物理机。图4以目的物理机包括第一目的物理机与第二目的物理机为例,但并不用于具体限定目的物理机的数量。
125.进一步地,假设第一目的物理机与源物理机处于同一存储集群,第一目的物理机则按照第一获取方式从源物理机获取克隆磁盘文件。假设第二目的物理机与源物理机不处于同一存储集群,第一目的物理机则按照第二获取方式从源物理机获取克隆磁盘文件。第一目的物理机与第二目的物理机在获取到克隆磁盘文件后,对重命名后的克隆磁盘文件进行修改得到目标磁盘文件,也即基于克隆磁盘文件得到相应目标磁盘文件。第一目的物理机与第二目的物理机,根据所接收到的虚拟机克隆任务生成存储目录,按照所生成的存储目录存储相应得到的目标磁盘文件,创建目标磁盘文件对应的存储池,并生成目的虚拟机
对应的元数据,以完成目的虚拟机的克隆,启动克隆完成的目的虚拟机即可用于实现与源虚拟机一致的数据处理。第一目的物理机与第二目的物理机在克隆得到各自相应的目的虚拟机后,向控制设备反馈表示虚拟机克隆成功的提示信息。控制设备在接收到所有目的物理机分别反馈的表示虚拟机克隆成功的提示信息后,向源物理机发送克隆磁盘文件删除指令。源物理机基于所接收到的克隆磁盘文件删除指令删除相应克隆磁盘文件。
126.应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
127.在一个实施例中,如图5所示,提供了一种虚拟机热克隆装置500,包括:接收模块501、第一克隆模块502、选取模块503、生成模块504和第二克隆模块505,其中:
128.接收模块501,用于接收终端发送的虚拟机克隆指令;
129.第一克隆模块502,用于将根据虚拟机克隆指令生成的虚拟机磁盘克隆任务发送至源物理机;虚拟机磁盘克隆任务用于指示源物理机对源虚拟机磁盘进行克隆得到克隆磁盘文件;
130.选取模块503,用于当接收到源物理机反馈的表示磁盘克隆成功的提示信息时,根据虚拟机克隆指令动态选取目的物理机;
131.生成模块504,用于根据虚拟机克隆指令生成每个目的虚拟机的基本信息;
132.第二克隆模块505,用于向每个目的物理机发送携带相应目的虚拟机的基本信息的虚拟机克隆任务;虚拟机克隆任务用于指示相应目的物理机从源物理机获取克隆磁盘文件,并基于克隆磁盘文件按照相应基本信息在本地克隆相应目的虚拟机。
133.在一个实施例中,选取模块503,还用于根据虚拟机克隆指令确定部署集与目的虚拟机数量;按照部署集确定候选物理机;从候选物理机中选取目的虚拟机数量的目的物理机。
134.在一个实施例中,选取模块503,还用于当部署集为物理机级别时,将各存储集群中的物理机作为候选物理机;当部署集为存储集群级别时,将与源物理机分处于不同存储集群的物理机作为候选物理机。
135.在一个实施例中,第一克隆模块502,还用于当接收到各目的物理机分别反馈的表示虚拟机克隆成功的提示信息后,生成克隆磁盘文件删除指令;将克隆磁盘文件删除指令发送至源物理机;克隆磁盘文件删除指令用于指示源物理机删除克隆磁盘文件。
136.关于虚拟机热克隆装置的具体限定可以参见上文中对于虚拟机热克隆方法的限定,在此不再赘述。上述虚拟机热克隆装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
137.在一个实施例中,如图1所示,提供了一种虚拟机热克隆系统,该系统包括:终端102、源物理机106、目的物理机108与控制设备104;
138.终端102,用于向控制设备104发送虚拟机克隆指令;
139.控制设备104,用于将根据虚拟机克隆指令生成的虚拟机磁盘克隆任务发送至源物理机106;
140.源物理机106,用于根据虚拟机磁盘克隆任务对源虚拟机磁盘进行克隆得到克隆磁盘文件;
141.控制设备104,还用于当接收到源物理机106反馈的表示磁盘克隆成功的提示信息时,根据虚拟机克隆指令动态选取目的物理机108;根据虚拟机克隆指令生成每个目的虚拟机的基本信息;向每个目的物理机108发送携带相应目的虚拟机的基本信息的虚拟机克隆任务;
142.目的物理机108,用于根据所接收到的虚拟机克隆任务从源物理机106获取克隆磁盘文件,并根据克隆磁盘文件按照相应基本信息在本地克隆相应目的虚拟机。
143.在一个实施例中,控制设备104,还用于根据虚拟机克隆指令确定部署集与目的虚拟机数量;按照部署集确定候选物理机;从候选物理机中选取目的虚拟机数量的目的物理机。
144.在一个实施例中,控制设备104,还用于当部署集为物理机级别时,将各存储集群中的物理机作为候选物理机;当部署集为存储集群级别时,将与源物理机分处于不同存储集群的物理机作为候选物理机。
145.在一个实施例中,控制设备104,还用于当接收到各目的物理机108分别反馈的表示虚拟机克隆成功的提示信息后,生成克隆磁盘文件删除指令;将克隆磁盘文件删除指令发送至源物理机106;源物理机106,还用于根据克隆磁盘文件删除指令删除克隆磁盘文件。
146.在一个实施例中,目的物理机108,还用于解析所接收到的虚拟机克隆任务得到相应目的虚拟机的基本信息,根据基本信息生成存储目录与配置文件;对克隆磁盘文件对应的文件标识进行重命名,对重命名后的克隆磁盘文件进行修改得到目标磁盘文件,将目标磁盘文件按照存储目录进行存储;基于配置文件生成相应目的虚拟机的元数据,以完成相应目的虚拟机的克隆操作。
147.在一个实施例中,虚拟机克隆任务还携带有表征相应目的物理机与源物理机是否处于同一存储集群的判定结果;目的物理机108,还用于从所接收到的虚拟机克隆任务中提取判定结果,根据所提取出的判定结果确定克隆磁盘文件的获取方式;按照所确定的获取方式从源物理机获取克隆磁盘文件。
148.图6为一个实施例中虚拟机热克隆系统的架构图。如图6所示,该虚拟机热克隆系统包括终端、控制设备与存储集群,存储集群包括第一存储集群与第二存储集群,第一存储集群包括第一物理机与第二物理机,第二存储集群包括第三物理机,第一物理机中部署有vm1与vm2两个虚拟机,第二物理机中部署有vm3与vm4两个虚拟机,第三物理机中部署有vm3与vm4两个虚拟机。控制设备接收终端针对虚拟机vm1发送的虚拟机克隆指令,根据虚拟机克隆指令确定待克隆的虚拟机vm1为源虚拟机,部署有该源虚拟机的第一物理机为源物理机,并根据虚拟机克隆指令指定的部署集与目的虚拟机数量,以及数据库动态选取目的虚拟机。图6以部署集为物理机级别,目的虚拟机数量为2为例,控制设备选取第二物理机与第三物理机为目的物理机,并向每个目的物理机分别发送虚拟机克隆任务,以指示每个目的物理机分别针对源虚拟机执行克隆操作得到部署于本地的目的虚拟机。
149.值得说明的是,图6所示的存储集群数量、每个存储集群中包括的物理机数量、每个物理机上部署的虚拟机数量,以及部署集与目的虚拟机数量仅作为示例,并不用于具体限定,比如还可包括第三存储集群,还比如第一存储集群还可包括第四物理机,还比如第一物理机上还部署有虚拟机vm5。可以理解,源物理机与目的物理机是相对的。图6所示的数据库可以是控制设备的组成部分,也可以是独立于控制设备的数据库。
150.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储预配置的每个物理机的部署情况。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种虚拟机热克隆方法。
151.本领域技术人员可以理解,图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
152.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例的步骤。
153.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例的步骤。
154.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
155.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
156.以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1