CN109002343B - 一种实现虚拟机批量创建的方法及装置 - Google Patents
一种实现虚拟机批量创建的方法及装置 Download PDFInfo
- Publication number
- CN109002343B CN109002343B CN201710422065.9A CN201710422065A CN109002343B CN 109002343 B CN109002343 B CN 109002343B CN 201710422065 A CN201710422065 A CN 201710422065A CN 109002343 B CN109002343 B CN 109002343B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- disk
- template
- creation
- file
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本文公布了一种实现虚拟机批量创建的方法及装置,包括:将运行状态下的虚拟机挂起,保存所述虚拟机的内存文件,并将所述虚拟机转为模板,以完成极速模板的创建;通过所述极速模板批量创建虚拟机,在创建虚拟机的过程中利用所述内存文件重建所述虚拟机的运行状态。本申请实现了批量创建虚拟机时磁盘创建的并发,存储库也不再需要预留存储空间来创建虚拟机,大幅提高了创建虚拟机的速度,同时大大降低出现加锁超时导致虚拟机创建失败的发生概率。
Description
技术领域
本发明涉及通信领域,具体涉及一种实现虚拟机批量创建的方法及装置。
背景技术
虚拟化环境下,尤其是桌面类型的虚拟机存在频繁批量创建、启动、删除的使用场景。为了提高运行速度,模板的磁盘文件通常放在固态硬盘(SSD,Solid State Drives)上。
相关技术中按照下面步骤来实现此应用场景的:
S01:准备好作为模板的虚拟机,安装特定的软件和数据,将虚拟机先关闭,然后转为模板。虚拟机转为模板只需要修改数据库的虚拟机属性为模板。
S02:模板以增量方式批量创建虚拟机。先给一个虚拟机创建空的磁盘节点文件,然后为模板的磁盘创建新的叶子节点文件,如果模板原叶子节点为空,则删除原叶子节点,把新的空叶子节点加入模板的磁盘管理链表,如果模板原叶子节点不为空,则直接把新的空叶子节点加入模板的磁盘管理链表。最后才将虚拟机的空磁盘节点文件对非空的模板磁盘节点执行快照操作,并且建立虚拟机磁盘和各级节点文件的关系,经过其它一些操作之后,虚拟机创建完成。这个过程由于需要修改模板的磁盘文件,所以需要加到锁里面保护起来。
S03:用户操作启动虚拟机,操作系统启动完毕后,用户自己操作打开特定应用软件等,然后开始使用。
相关技术主要存在如下几个问题:
1.创建虚拟机时会对模板磁盘节点修改,需要用锁保护,批量创建虚拟机时,虚拟机的磁盘创建流程不能并发,只能串行,导致批量创建虚拟机任务执行时间长,效率低,无法达到短时间内创建多个虚拟机的要求。
2.对于逻辑卷管理(LVM,Logical Volume Manager)类型的存储,由于创建、删除文件都需要对卷组(VG,Volume Group)加锁,多模板并发批量创建虚拟机的时候,修改模板磁盘的节点需要多次对vg加锁,大规模批量创建虚拟机时底层lvm容易出现加锁超时导致创建虚拟机失败。
3.模板都是放在SSD盘上的,每次创建虚拟机都需要用新的空叶子节点替换模板老的空叶子节点,新的叶子和老的叶子会共存一段时间,这就要求SSD盘要预留相当于磁盘大小的剩余空间才能创建虚拟机。当多个模板共同操作的时候,需要SSD盘预留的空间会很大,增加了使用成本。
4.创建好的虚拟机启动完成后,还需要用户自己打开特定的应用软件,这个过程耗费的时间无法预估,很难统一管理。
针对上述技术问题,目前尚未提出有效的解决方案。
发明内容
为了解决上述技术问题,本发明实施例提供了一种实现虚拟机批量创建的方法及装置。
本申请提供了:
一种实现虚拟机批量创建的方法,包括:
将运行状态下的虚拟机挂起,保存所述虚拟机的内存文件,并将所述虚拟机转为模板,以完成极速模板的创建;
通过所述极速模板批量创建虚拟机,在创建虚拟机的过程中利用所述内存文件重建所述虚拟机的运行状态。
其中,所述将所述虚拟机转为模板,包括:对所述虚拟机的磁盘叶子节点执行判空操作,为空时删除所述磁盘叶子节点,不为空时清除标识所述磁盘叶子节点的字段。
其中,保存所述虚拟机的内存文件在SSD盘的指定存储库上。
其中,所述在创建虚拟机的过程中利用所述内存文件重建所述虚拟机的运行状态,包括:修改所述内存文件中的指定配置项使之与所述虚拟机相匹配,再执行重建命令以通过所述内存文件重建所述虚拟机的运行状态。
其中,所述指定配置项包括如下之一或多项:
通用唯一识别码UUID;
虚拟机名称;
spice端口号;
虚拟机的串口。
其中,所述指定配置项以xml配置文件的形式包含在所述内存文件中。
其中,所述通过所述极速模板批量创建虚拟机,还包括:在利用所述内存文件重建所述虚拟机的运行状态之前,通过比较查找到所述极速模板的叶子节点,直接对虚拟机的磁盘文件执行快照操作完成磁盘的创建。
其中,所述通过比较查找到所述极速模板的叶子节点,包括:循环极速模板的所有磁盘叶子节点,找到所述所有磁盘叶子节点中的非父节点,所述非父节点即为所述极速模板的磁盘叶子节点。
其中,直接对虚拟机的磁盘文件执行快照操作完成磁盘的创建,包括:直接为所述虚拟机创建空的磁盘叶子节点,并使用所述空的磁盘叶子节点文件与所述极速模板的磁盘叶子节点文件做快照操作,完成所述虚拟机的磁盘创建。
一种实现虚拟机批量创建的装置,包括:
模板创建单元,用于完成极速模板的创建,包括:挂起模块、转换模块,其中,所述挂起模块用于将运行状态下的虚拟机挂起,并保存所述虚拟机的内存文件;所述转换模块,用于将所述虚拟机转为模板;
虚拟机创建单元,用于通过所述极速模板批量创建虚拟机,包括:运行状态重建模块,用于在创建虚拟机的过程中利用所述内存文件重建所述虚拟机的运行状态。
其中,所述转换模块,还用于对所述虚拟机的磁盘叶子节点执行判空操作,为空时删除所述磁盘叶子节点,不为空时清除标识所述磁盘叶子节点的字段。
其中,所述运行状态重建模块,具体用于修改所述内存文件中的指定配置项使之与所述虚拟机相匹配,再执行重建命令以通过所述内存文件重建所述虚拟机的运行状态。
其中,所述虚拟机创建单元,还包括:磁盘创建模块,用于通过比较查找到所述极速模板的叶子节点,直接对虚拟机的磁盘文件执行快照操作完成磁盘的创建。
一种计算设备,包括:
存储有实现虚拟机批量创建的程序的存储器;
处理器,配置为执行所述实现虚拟机批量创建的程序以执行下述操作:将运行状态下的虚拟机挂起,保存所述虚拟机的内存文件,并将所述虚拟机转为模板,以完成极速模板的创建;通过所述极速模板批量创建虚拟机,在创建虚拟机的过程中利用所述内存文件重建所述虚拟机的运行状态。
一种计算机可读存储介质,所述计算机可读存储介质上存储有实现虚拟机批量创建的程序,所述实现虚拟机批量创建的程序被处理器执行时实现上述实现虚拟机批量创建的方法的步骤。
本发明实施例中,通过采用将运行状态的虚拟机先挂起再转为极速模板,解决模板批量创建虚拟机时,磁盘创建不能并发,容易出现lvm加锁超时,存储库需要预留存储空间,启动时间较长不易管理的技术问题,实现了批量创建虚拟机时磁盘创建的并发,存储库也不再需要预留存储空间来用于创建虚拟机,大幅提高了创建虚拟机的速度,同时大大降低出现加锁超时导致虚拟机创建失败的发生概率。
此外,本发明实施例中,在批量创建虚拟机时通过读取内存文件来重建虚拟机的运行状态,不需要用户再执行特定操作来手动在每个虚拟机上加载相应的应用程序,而是在各个虚拟机启动时直接加载相应的应用程序,操作方便快捷,便于统一管理,虚拟机启动更高效快速,满足了需同时启动多个虚拟机并加载特定应用程序或内容的使用需求。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例一实现虚拟机批量创建的方法流程示意图;
图2为本发明实施例二实现虚拟机批量创建的装置的组成结构示意图;
图3为本发明实施例三中计算设备的示例性结构示意图;
图4为实例1中运行状态的虚拟机转为极速模板后删除F3时的磁盘文件结构示意图;
图5为实例1中运行状态的虚拟机转为极速模板后不删除F3时的磁盘文件结构示意图;
图6为实例2中使用极速模板前的磁盘文件结构示意图;
图7为实例2中使用极速模板后的磁盘文件结构示意图;
图8是实例3中虚拟机转为极速模板的示例性实现流程示意图;
图9为实例4中极速模板创建虚拟机的示例性实现流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一
如图1所示,提供一种实现虚拟机批量创建的方法,包括:
步骤101,将运行状态下的虚拟机挂起,保存所述虚拟机的内存文件,并将所述虚拟机转为模板,以完成极速模板的创建;
步骤102,通过所述极速模板批量创建虚拟机,在创建虚拟机的过程中利用所述内存文件重建所述虚拟机的运行状态。
本实施例中的方法,通过将运行状态的虚拟机先挂起再转为模板、删除模板磁盘空的叶子节点,来解决模板批量创建虚拟机时,磁盘创建不能并发、容易出现lvm加锁超时、存储库需要预留存储空间等技术问题。
本实施例中,保存所述虚拟机的内存文件在SSD盘的指定存储库上。也就是,把运行状态的虚拟机挂起,此时虚拟机的内存会以内存文件的形式保存在指定的存储库中,该存储库的类型为SSD类型或其他类似支持快速读取的硬盘。如此,可确保在使用极速模板创建虚拟机时内存文件的读取高效快速,从而快速高效的批量创建加载有特定应用程序或特定内容的虚拟机。
本实施例中,将所述虚拟机转为模板时,对所述虚拟机的磁盘叶子节点执行判空操作,为空时删除所述磁盘叶子节点,不为空时清除标识所述磁盘叶子节点的字段。具体在执行虚拟机转为模板的操作时,通过判断虚拟机磁盘叶子节点是否为空,如果为空就删除空节点,不为空就清除标识所述磁盘叶子节点的字段,使转为模板后模板的磁盘没有空节点,改变了模板磁盘的节点管理结构,以便在利用极速模板创建虚拟机时可以直接对虚拟机的磁盘文件执行快照操作,快速高效的完成磁盘的创建,一方面不需要在存储库预留存储空间,另一方面在创建虚拟机时不再需要修改模板的磁盘文件,从而实现并发,大幅提升创建虚拟机的速度,同时大大降低出现加锁超时导致虚拟机创建失败的发生概率。
一种实现方式中,在创建虚拟机的过程中利用所述内存文件重建所述虚拟机的运行状态,可以包括:修改所述内存文件中的指定配置项使之与所述虚拟机相匹配,再执行重建命令以通过所述内存文件重建所述虚拟机的运行状态。如此,通过读取内存文件来重建虚拟机的运行状态,不需要用户再执行特定操作即可在虚拟机运行时直接加载相应的应用程序,一方面操作方便快捷,便于统一管理,另一方面,虚拟机启动更高效快速,批量虚拟机可同时自动运行特定的应用程序,满足了需同时启动多个虚拟机并加载特定应用程序或内容的使用需求。比如教育培训行业:每门课程都会有单独的模板,上课前会为每个学生增量方式创建一个虚拟机使用,此时通过本实施例的上述方法可使得多个虚拟机共用模板的磁盘文件和内存文件,虚拟机启动时读取磁盘文件和内存文件,多个虚拟机可自动加载课程的应用程序。
其中,所述指定配置项包含用于区分不同虚拟机的配置项。例如,所述指定配置项可以包括如下之一或多项:1)通用唯一识别码(UUID,Universal UniqueIdentification);2)虚拟机名称;3)独立计算环境简单协议(spice,Simple Protocol forIndependent Computing Environment)端口号;4)虚拟机的串口。在其他实施例中,该指定配置项还可以包含其他信息,可根据实际应用的需要进行配置。
实际应用中,所述指定配置项可以存放在一个单独的文件里,该文件包含在所述内存文件中。例如,所述指定配置项可以以xml配置文件的形式包含在所述内存文件中。也就是说,可以将所述指定配置项存放在指定的xml配置文件中,该xml文件是所述内存文件的一部分。
本实施例中,所述通过所述极速模板批量创建虚拟机,还可以包括:在利用所述内存文件重建所述虚拟机的运行状态之前,可以通过比较查找到所述极速模板的叶子节点,直接对虚拟机的磁盘文件执行快照操作完成磁盘的创建。如此,通过极速模板创建虚拟机时,没有了空叶子节点的干扰,通过比较查找出模板非空的叶子节点,直接对虚拟机的磁盘文件执行快照操作完成磁盘的创建。由于不再修改模板磁盘文件,从而实现并发,极大的提高了创建虚拟机的速度,同时大大降低出现加锁超时导致虚拟机创建失败的发生概率。
一种实现方式中,可以通过比较查找到所述极速模板的叶子节点的过程可以是:循环极速模板的所有磁盘叶子节点,找到所述所有磁盘叶子节点中的非父节点,所述非父节点即为所述极速模板的磁盘叶子节点。
一种实现方式中,直接对虚拟机的磁盘文件执行快照操作完成磁盘的创建的过程可以为:直接为所述虚拟机创建空的磁盘叶子节点,并使用所述空的磁盘叶子节点文件与所述极速模板的磁盘叶子节点文件做快照操作,完成所述虚拟机的磁盘创建。
本实施例的上述方法,通过将运行状态的虚拟机先挂起再转为模板、删除模板磁盘空的叶子节点,实现了批量创建虚拟机时磁盘创建的并发,存储库也不再需要预留存储空间来用于创建虚拟机,大幅提高了创建虚拟机的速度,同时大大降低出现加锁超时导致虚拟机创建失败的发生概率。此外,还可通过读取内存文件来重建虚拟机的运行状态,不需要用户再执行特定操作来手动在每个虚拟机上加载相应的应用程序,而是在各个虚拟机运行时直接加载相应的应用程序或内容,操作方便快捷,便于统一管理,虚拟机启动更高效快速,满足了需同时启动多个虚拟机并加载特定应用程序或内容的使用需求。
实施例二
提供一种实现虚拟机批量创建的装置,如图2所示,可包括:
模板创建单元21,用于完成极速模板的创建,包括:挂起模块211、转换模块212,其中,所述挂起模块211可用于将运行状态下的虚拟机挂起,并保存所述虚拟机的内存文件;所述转换模块212,可用于将所述虚拟机转为模板;
虚拟机创建单元22,用于通过所述极速模板批量创建虚拟机,包括:运行状态重建模块221,可用于在创建虚拟机的过程中利用所述内存文件重建所述虚拟机的运行状态。
本实施例中,挂起模块211具体可用于保存所述虚拟机的内存文件在SSD盘的指定存储库上。也就是,挂起模块211把运行状态的虚拟机挂起,此时虚拟机的内存会以内存文件的形式保存在指定的存储库中,该存储库的类型为SSD类型或其他类似支持快速读取的硬盘。如此,可确保在虚拟机创建单元22使用极速模板创建虚拟机时运行状态重建模块221可高效快速的读取内存文件,从而快速高效的批量创建加载有特定应用程序或特定内容的虚拟机。
在一种实现方式中,所述转换模块212,还可用于在将虚拟机转为模板的过程中,对所述虚拟机的磁盘叶子节点执行判空操作,为空时删除所述磁盘叶子节点,不为空时清除标识所述磁盘叶子节点的字段。如此,使转为模板后模板的磁盘没有空节点,改变了模板磁盘的节点管理结构,以便虚拟机创建单元22在利用极速模板创建虚拟机时可以直接对虚拟机的磁盘文件执行快照操作,快速高效的完成磁盘的创建,不需要在存储库预留存储空间,在创建虚拟机时也不再需要修改模板的磁盘文件,从而实现并发,大幅提升创建虚拟机的速度,同时大大降低出现加锁超时导致虚拟机创建失败的发生概率。
本实施例中,所述运行状态重建模块221,具体可用于修改所述内存文件中的指定配置项使之与所述虚拟机相匹配,再执行重建命令以通过所述内存文件重建所述虚拟机的运行状态。如此,运行状态重建模块221通过读取内存文件来重建虚拟机的运行状态,不需要用户再执行特定操作即可在虚拟机运行时直接加载相应的应用程序,操作方便快捷,便于统一管理,虚拟机启动更高效快速,批量虚拟机可同时自动运行特定的应用程序,满足了需同时启动多个虚拟机并加载特定应用程序或内容的使用需求。
其中,所述指定配置项包含用于区分不同虚拟机的配置项。例如,所述指定配置项可以包括如下之一或多项:1)通用唯一识别码(UUID,Universal UniqueIdentification);2)虚拟机名称;3)独立计算环境简单协议(spice,Simple Protocol forIndependent Computing Environment)端口号;4)虚拟机的串口。在其他实施例中,该指定配置项还可以包含其他信息,可根据实际应用的需要进行配置。
实际应用中,所述指定配置项可以存放在一个单独的文件里,该文件包含在所述内存文件中。例如,所述指定配置项可以以xml配置文件的形式包含在所述内存文件中。也就是说,可以将所述指定配置项存放在指定的xml配置文件中,该xml文件是所述内存文件的一部分。
本实施例中,所述虚拟机创建单元22,还可以包括:磁盘创建模块222,可用于通过比较查找到所述极速模板的叶子节点,直接对虚拟机的磁盘文件执行快照操作完成磁盘的创建。如此,虚拟机创建单元22通过极速模板创建虚拟机时,没有了空叶子节点的干扰,磁盘创建模块222可以通过比较查找出模板非空的叶子节点,直接对虚拟机的磁盘文件执行快照操作完成磁盘的创建,由于不再修改模板磁盘文件,从而实现并发,极大的提高了创建虚拟机的速度,同时大大降低出现加锁超时导致虚拟机创建失败的发生概率。
一种实现方式中,磁盘创建模块222可以通过比较查找到所述极速模板的叶子节点的过程可以是:循环极速模板的所有磁盘叶子节点,找到所述所有磁盘叶子节点中的非父节点,所述非父节点即为所述极速模板的磁盘叶子节点。
一种实现方式中,磁盘创建模块222直接对虚拟机的磁盘文件执行快照操作完成磁盘的创建的过程可以为:直接为所述虚拟机创建空的磁盘叶子节点,并使用所述空的磁盘叶子节点文件与所述极速模板的磁盘叶子节点文件做快照操作,完成所述虚拟机的磁盘创建。
本实施例的上述装置,可实现实施例一所述方法的所有细节,不再赘述。实际应用中,模板创建单元21和虚拟机创建单元22及其中的各个模块分别可以是软件、硬件或两者的结合。本实施例的上述装置可通过部署于一台计算设备或包含多台计算设备的分布式系统中实现上述功能。这里,所述计算设备可以为(但不限于)服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、手持装置、可佩戴计算设备、分布式计算系统、多处理器系统和/或被配置为执行本文所述功能的任何其他计算设备。
本实施例的上述装置,实现了批量创建虚拟机时磁盘创建的并发,存储库也不再需要预留存储空间来用于创建虚拟机,大幅提高了创建虚拟机的速度,同时大大降低出现加锁超时导致虚拟机创建失败的发生概率。此外,不需要用户再执行特定操作来手动在每个虚拟机上加载相应的应用程序,即可在各个虚拟机运行时直接加载相应的应用程序或内容,操作方便快捷,便于统一管理,虚拟机启动更高效快速,满足了需同时启动多个虚拟机并加载特定应用程序或内容的使用需求。
实施例三
提供一种计算设备,包括:
存储有实现虚拟化环境下极速模板的程序的存储器;
处理器,配置为执行所述实现虚拟化环境下极速模板的程序以执行下述操作:将运行状态下的虚拟机挂起,保存所述虚拟机的内存文件,并将所述虚拟机转为模板,以完成极速模板的创建;通过所述极速模板批量创建虚拟机,在创建虚拟机的过程中利用所述内存文件重建所述虚拟机的运行状态。
在一种实现方式中,所述处理器还配置为执行下述操作:在将虚拟机转为模板的过程中,对所述虚拟机的磁盘叶子节点执行判空操作,为空时删除所述磁盘叶子节点,不为空时清除标识所述磁盘叶子节点的字段。如此,使转为模板后模板的磁盘没有空节点,在利用极速模板创建虚拟机时可以直接对虚拟机的磁盘文件执行快照操作,快速高效的完成磁盘的创建,不需要在存储库预留存储空间,在创建虚拟机时也不再需要修改模板的磁盘文件,从而实现并发,大幅提升创建虚拟机的速度,同时大大降低出现加锁超时导致虚拟机创建失败的发生概率。
本实施例中,所述处理器还配置为执行下述操作:保存所述虚拟机的内存文件在SSD盘的指定存储库上。也就是,把运行状态的虚拟机挂起,此时虚拟机的内存会以内存文件的形式保存在指定的存储库中,该存储库的类型为SSD类型或其他类似支持快速读取的硬盘。如此,可确保在使用极速模板创建虚拟机时内存文件的读取高效快速,从而快速高效的批量创建加载有特定应用程序或特定内容的虚拟机。
本实施例的计算设备可实现实施例一所述方法的所有细节,不再赘述。实际应用中,本实施例的上述计算设备可以为(但不限于)服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、手持装置、可佩戴计算设备、分布式计算系统、多处理器系统和/或被配置为执行本文所述功能的任何其他计算设备。
如图3所示,为上述计算设备的示例性结构。计算设备可以包括:处理器31、接口单元32、存储器33。当然,在其他实施例中,计算设备还可以包括其他或附加的部件。例如,通信电路34等。此外,在一些实施例中,示例性部件中的一个或多个可以并入另一个部件,例如,在一些实现方式中,存储器或其他部分可以并入处理器中。
处理器31可以为能够执行本文所述功能的任何类型的处理器。例如,处理器可以为单一或多核处理器、数字信号处理器、微处理器、或其他处理器或处理/控制电路。在一些实现方式中,计算设备可以包括一个或一个以上的处理器。
存储器33可以为能够执行本文所述功能的任何类型的存储器。存储器33可存储计算设备的操作器件使用的各种数据和软件,比如,操作系统、应用、程序、库和驱动程序。
存储器33通过所述接口单元32通信地耦合到处理器31,接口单元可以为有助于处理器31、存储器33和计算设备的其他部件的输入/输出操作的电路或部件。
通信电路34可以为能够在计算设备和远程计算设备之间通信的任意通信电路、设备或其集合。该通信电路34可以被配置为使用任何一个或多个通信技术(例如,无线或有线通信)和相关联的协议(如,以太网、蓝牙、WiFi、WiMAX、CDMA、TD-CDMA、LTE等)来实现这样的通信。该通信电路可以为包括无线网络适配器的网络适配器。
下面以具体实例来详细说明本申请的示例性实现方式。需要说明的是下文各实例中的实现流程或实现方式均为示例。实际应用中,下文各实例可相互结合,其具体的结合方式不限。当然,也可采用其他实施方式。例如,可以在各实例的实现流程中增加其他步骤,或者根据实际需要或具体应用场景的不同调整各实现流程中某些步骤的执行顺序。
实例1
本实例中,结合图4和图5来详细说明虚拟机转为极速模板后磁盘文件的变化。
本实例中,通过将运行状态的虚拟机先挂起再转为模板和删除模板磁盘空的叶子节点实现极速模板功能。本实施例中,运行状态下虚拟机磁盘文件结构为:F1是根节点,F2是F1的子节点,F3是F2的子节点并且F3是虚拟机当前的运行节点也就是叶子节点。执行虚拟机转为极速模板操作之后的磁盘文件结构如图4和图5所示。
本实例中,执行虚拟机转为极速模板操作的过程可以是:首先执行挂起虚拟机操作,此时会把虚拟机的内存保存成一个文件,也就是图4和图5中的save文件。然后执行虚拟机转为模板操作,此时查找当前虚拟机的磁盘叶子节点F3,执行命令(例如,判空命令)判断此时F3是否已经写入数据,如果F3为空,说明F3中还没有写入数据,此时,把F3删除,最后的磁盘文件结构如图4所示。如果F3不为空,说明F3中已经写入了数据,此时不删除F3,仅将F3中标识所述磁盘叶子节点的字段清除,最后的磁盘文件结构如图5所示。如此,虚拟机转为了极速模板。
实例2
本实施例中结合图6和图7说明创建极速模板前后的磁盘文件结构。
创建极速模板之前,模板的磁盘文件层级结构如图6所示,其中,F1是根节点,F2是F1的父节点,F3是F2的子节点并且是当前模板的运行节点也就是叶子节点。V1、V2等节点是模板创建出来的虚拟机的运行节点也就是叶子节点,此时它们共用了模板的F1、F2两个节点。虚拟机只会从F1和F2读取数据,写入的数据都放在各自的叶子节点V1、V2等。
应用本申请创建极速模板之后,磁盘文件层级结构如图7所示,极速模板的叶子节点F3为空所以被删除了,只剩F1和F2两个节点。另外挂起操作使极速模板额外多了一个save文件。V1、V2等仍然是极速模板创建出来的虚拟机的运行节点也就是叶子节点,它们和创建极速模板之前对比没有发生变化,变化的是虚拟机会共用极速模板的save文件,后续利用极速模板创建新的虚拟机时可以通过save文件重建各个新建虚拟机的运行状态。
实例3
本实例详细说明虚拟机转为极速模板的示例性实现流程。
如图8所示,虚拟机转为极速模板的流程可以包括:
步骤801,虚拟机挂起,保存内存文件:首先对运行状态的虚拟机执行挂起操作,并且需要指定文件保存的存储库,限制必须是SSD盘的存储库,在该存储库上创建一个空文件,将虚拟机的内存保存进去;
步骤802,将虚拟机转为模板,判断虚拟机磁盘叶子节点是否为空,为空则继续步骤803,不为空则继续步骤804;
步骤803,删掉该磁盘叶子节点,跳转到步骤805;
步骤804,清除标识所述磁盘叶子节点的字段(如磁盘叶子节点的标识位等),继续步骤805;
步骤805,修改虚拟机属性字段,将虚拟机属性改为模板,此时极速模板创建完成。
实例4
本实例详细说明通过极速模板创建虚拟机的示例性实现流程。
如图9所示,通过极速模板创建虚拟机的流程可以包括:
步骤901,创建虚拟机的磁盘叶子节点:根据要创建的虚拟机信息(可以是标识虚拟机的信息,如UUID、名称等),在存储库上创建一个虚拟机运行的空的磁盘叶子节点,该节点就是后面虚拟机运行的节点也就是叶子节点(与上文图7中的V1、V2等节点作用相同)。
步骤902,查找极速模板的叶子节点并执行快照:循环极速模板磁盘的所有节点文件,循环查找不是其他文件的父节点的文件,该文件就是极速模板的磁盘叶子节点文件,用步骤901中创建的空的磁盘叶子节点文件和查找出的极速模板的磁盘叶子节点文件做快照操作建立父子关系(该父子关系如上文图7的V1、V2节点与F2、F1的关系),此时虚拟机磁盘文件的层级结构建立,虚拟机的磁盘创建完成。
步骤903,修改xml配置文件,读取内存文件重建虚拟机的运行状态:根据要创建的虚拟机信息,获取极速模板的save文件路径,执行从save文件中导出xml配置文件的操作,修改xml配置文件中的虚拟机UUID、名称、spice端口号、串口等配置项,执行重建命令读取save文件来重建虚拟机的运行状态,此时极速模板创建虚拟机完成。
需要说明的是,本实例中极速模板可以批量创建多个虚拟机,也可以创建一个虚拟机。在创建多个虚拟机时共用一个save文件,可使得这多个虚拟机的运行状态相同,比如,运行同一应用程序,或加载同一内容等。在创建一个虚拟机时通过save文件重建运行状态,可使得虚拟机自动加载指定的应用程序或内容。
此外,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有实现虚拟化环境下极速模板的程序,所述实现虚拟化环境下极速模板的程序被处理器执行时实现上述虚拟化环境下极速模板的实现方法的步骤。
可选地,在具体实现中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在具体实现中,处理器根据计算机可读存储介质中已存储的程序代码执行上述实施例的方法步骤。
可选地,计算机可读存储介质的具体示例可以参考上述实施例及各实例中所描述的示例,在此不再赘述。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本申请不限制于任何特定形式的硬件和软件的结合。
以上显示和描述了本申请的基本原理和主要特征和本申请的优点。本申请不受上述实施例的限制,上述实施例和说明书中描述的只是说明本申请的原理,在不脱离本申请精神和范围的前提下,本申请还会有各种变化和改进,这些变化和改进都落入要求保护的本申请范围内。
Claims (13)
1.一种实现虚拟机批量创建的方法,其特征在于,包括:
将运行状态下的虚拟机挂起,保存所述虚拟机的内存文件,并将所述虚拟机转为模板,以完成极速模板的创建;
通过所述极速模板批量创建虚拟机,在创建虚拟机的过程中利用所述内存文件重建所述虚拟机的运行状态;
所述将所述虚拟机转为模板,包括:
对所述虚拟机的磁盘叶子节点执行判空操作,为空时删除所述磁盘叶子节点,不为空时清除标识所述磁盘叶子节点的字段。
2.根据权利要求1所述的方法,其特征在于,
保存所述虚拟机的内存文件在SSD盘的指定存储库上。
3.根据权利要求1所述的方法,其特征在于,所述在创建虚拟机的过程中利用所述内存文件重建所述虚拟机的运行状态,包括:
修改所述内存文件中的指定配置项使之与所述虚拟机相匹配,再执行重建命令以通过所述内存文件重建所述虚拟机的运行状态。
4.根据权利要求3所述的方法,其特征在于,
所述指定配置项包括如下之一或多项:
通用唯一识别码UUID;
虚拟机名称;
spice端口号;
虚拟机的串口。
5.根据权利要求3或4所述的方法,其特征在于,所述指定配置项以xml配置文件的形式包含在所述内存文件中。
6.根据权利要求1或3所述的方法,其特征在于,所述通过所述极速模板批量创建虚拟机,还包括:
在利用所述内存文件重建所述虚拟机的运行状态之前,通过比较查找到所述极速模板的叶子节点,直接对虚拟机的磁盘文件执行快照操作完成磁盘的创建。
7.根据权利要求6所述的方法,其特征在于,所述通过比较查找到所述极速模板的叶子节点,包括:
循环极速模板的所有磁盘叶子节点,找到所述所有磁盘叶子节点中的非父节点,所述非父节点即为所述极速模板的磁盘叶子节点。
8.根据权利要求6所述的方法,其特征在于,直接对虚拟机的磁盘文件执行快照操作完成磁盘的创建,包括:
直接为所述虚拟机创建空的磁盘叶子节点,并使用所述空的磁盘叶子节点文件与所述极速模板的磁盘叶子节点文件做快照操作,完成所述虚拟机的磁盘创建。
9.一种实现虚拟机批量创建的装置,其特征在于,包括:
模板创建单元,用于完成极速模板的创建,包括:挂起模块、转换模块,其中,所述挂起模块用于将运行状态下的虚拟机挂起,并保存所述虚拟机的内存文件;所述转换模块,用于将所述虚拟机转为模板;
虚拟机创建单元,用于通过所述极速模板批量创建虚拟机,包括:运行状态重建模块,用于在创建虚拟机的过程中利用所述内存文件重建所述虚拟机的运行状态;
所述转换模块,还用于对所述虚拟机的磁盘叶子节点执行判空操作,为空时删除所述磁盘叶子节点,不为空时清除标识所述磁盘叶子节点的字段。
10.根据权利要求9所述的装置,其特征在于,
所述运行状态重建模块,具体用于修改所述内存文件中的指定配置项使之与所述虚拟机相匹配,再执行重建命令以通过所述内存文件重建所述虚拟机的运行状态。
11.根据权利要求9所述的装置,其特征在于,
所述虚拟机创建单元,还包括:磁盘创建模块,用于通过比较查找到所述极速模板的叶子节点,直接对虚拟机的磁盘文件执行快照操作完成磁盘的创建。
12.一种计算设备,其特征在于,包括:
存储有实现虚拟机批量创建的程序的存储器;
处理器,配置为执行所述实现虚拟机批量创建的程序以执行下述操作:将运行状态下的虚拟机挂起,保存所述虚拟机的内存文件,并将所述虚拟机转为模板,以完成极速模板的创建;通过所述极速模板批量创建虚拟机,在创建虚拟机的过程中利用所述内存文件重建所述虚拟机的运行状态;
处理器,还配置为执行所述实现虚拟机批量创建的程序以执行下述操作:
对所述虚拟机的磁盘叶子节点执行判空操作,为空时删除所述磁盘叶子节点,不为空时清除标识所述磁盘叶子节点的字段。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有实现虚拟机批量创建的程序,所述实现虚拟机批量创建的程序被处理器执行时实现如权利要求1至8中任一项所述实现虚拟机批量创建的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710422065.9A CN109002343B (zh) | 2017-06-07 | 2017-06-07 | 一种实现虚拟机批量创建的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710422065.9A CN109002343B (zh) | 2017-06-07 | 2017-06-07 | 一种实现虚拟机批量创建的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109002343A CN109002343A (zh) | 2018-12-14 |
CN109002343B true CN109002343B (zh) | 2023-08-25 |
Family
ID=64573081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710422065.9A Active CN109002343B (zh) | 2017-06-07 | 2017-06-07 | 一种实现虚拟机批量创建的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109002343B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506389A (zh) * | 2020-03-25 | 2020-08-07 | 新华三大数据技术有限公司 | 一种虚拟机启动方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520881A (zh) * | 2011-12-02 | 2012-06-27 | 中标软件有限公司 | 一种云计算平台的虚拟机快照管理方法和系统 |
CN102981929A (zh) * | 2012-11-05 | 2013-03-20 | 曙光云计算技术有限公司 | 磁盘镜像的管理方法和系统 |
CN103888530A (zh) * | 2014-03-18 | 2014-06-25 | 成都盛思睿信息技术有限公司 | 基于云桌面的实验教学系统 |
CN106155759A (zh) * | 2015-03-26 | 2016-11-23 | 华为软件技术有限公司 | 虚拟机批量创建方法及装置 |
CN106598698A (zh) * | 2016-11-25 | 2017-04-26 | 山东乾云启创信息科技股份有限公司 | 基于迁移方式加速虚拟机批量启动的方法及系统 |
WO2017076180A1 (zh) * | 2015-11-06 | 2017-05-11 | 中兴通讯股份有限公司 | 虚拟机升级方法及装置 |
CN106708419A (zh) * | 2015-11-18 | 2017-05-24 | 中兴通讯股份有限公司 | 一种虚拟机的磁盘文件的处理方法及装置 |
CN106803218A (zh) * | 2017-03-17 | 2017-06-06 | 西安优盛信息技术有限公司 | 一种基于虚拟化和云计算的大数据教学系统 |
-
2017
- 2017-06-07 CN CN201710422065.9A patent/CN109002343B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520881A (zh) * | 2011-12-02 | 2012-06-27 | 中标软件有限公司 | 一种云计算平台的虚拟机快照管理方法和系统 |
CN102981929A (zh) * | 2012-11-05 | 2013-03-20 | 曙光云计算技术有限公司 | 磁盘镜像的管理方法和系统 |
CN103888530A (zh) * | 2014-03-18 | 2014-06-25 | 成都盛思睿信息技术有限公司 | 基于云桌面的实验教学系统 |
CN106155759A (zh) * | 2015-03-26 | 2016-11-23 | 华为软件技术有限公司 | 虚拟机批量创建方法及装置 |
WO2017076180A1 (zh) * | 2015-11-06 | 2017-05-11 | 中兴通讯股份有限公司 | 虚拟机升级方法及装置 |
CN106708419A (zh) * | 2015-11-18 | 2017-05-24 | 中兴通讯股份有限公司 | 一种虚拟机的磁盘文件的处理方法及装置 |
CN106598698A (zh) * | 2016-11-25 | 2017-04-26 | 山东乾云启创信息科技股份有限公司 | 基于迁移方式加速虚拟机批量启动的方法及系统 |
CN106803218A (zh) * | 2017-03-17 | 2017-06-06 | 西安优盛信息技术有限公司 | 一种基于虚拟化和云计算的大数据教学系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109002343A (zh) | 2018-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9483549B2 (en) | Persisting state at scale across browser sessions | |
US8904386B2 (en) | Running a plurality of instances of an application | |
US20120290802A1 (en) | Snapshot creation from block lists | |
US11010401B2 (en) | Efficient snapshot generation of data tables | |
US8832492B1 (en) | Systems and methods for managing applications | |
US8893272B2 (en) | Method and device for recombining runtime instruction | |
WO2013170561A1 (zh) | 基于容器的处理方法、装置和系统 | |
CN110515641A (zh) | 服务器固件的更新方法、装置及系统 | |
CN112256400A (zh) | 一种虚拟机快照管理方法及装置 | |
CN109558121B (zh) | 接口驱动程序的开发方法、装置、设备及存储介质 | |
CN109002343B (zh) | 一种实现虚拟机批量创建的方法及装置 | |
JP2023553220A (ja) | マルチインスタンスプロセスのためのプロセスマイニング | |
US10338891B2 (en) | Migration between model elements of different types in a modeling environment | |
CN110908644A (zh) | 状态节点的配置方法、装置、计算机设备和存储介质 | |
US11809275B2 (en) | FaaS in-memory checkpoint restore | |
CN113741931B (zh) | 软件升级方法、装置、电子设备及可读存储介质 | |
US11048664B2 (en) | Log destaging from fixed-size log portion | |
US20200097172A1 (en) | Mounting a drive to multiple computing systems | |
US20140059538A1 (en) | Virtual machine state tracking using object based storage | |
CN110968566A (zh) | 基于迁移工具的国产化应用系统迁移方法 | |
US10862958B1 (en) | Flexible associativity in multitenant clustered environments | |
US20240152371A1 (en) | Dynamic re-execution of parts of a containerized application pipeline | |
CN111563006B (zh) | 一种数据处理方法、智能终端及存储介质 | |
US11593325B2 (en) | Systems and methods of data migration in multi-layer model-driven applications | |
US10949412B2 (en) | Log marking dependent on log sub-portion |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |