CN112559114A - 虚拟机的生成方法和装置 - Google Patents

虚拟机的生成方法和装置 Download PDF

Info

Publication number
CN112559114A
CN112559114A CN201910905762.9A CN201910905762A CN112559114A CN 112559114 A CN112559114 A CN 112559114A CN 201910905762 A CN201910905762 A CN 201910905762A CN 112559114 A CN112559114 A CN 112559114A
Authority
CN
China
Prior art keywords
virtual machine
metadata
initial
initial virtual
configuration information
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
Application number
CN201910905762.9A
Other languages
English (en)
Inventor
彭开桓
罗犇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910905762.9A priority Critical patent/CN112559114A/zh
Publication of CN112559114A publication Critical patent/CN112559114A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Abstract

本申请公开了一种虚拟机的生成方法和装置。其中,该方法包括:初始虚拟机获取宿主机注入的元数据,其中,初始虚拟机通过对虚拟机快照进行恢复得到,元数据用于记录需要生成的目标虚拟机对应的配置信息;初始虚拟机按照预设的数据结构读取已经注入的元数据;初始虚拟机通过根据元数据进行初始化更改初始虚拟机的配置信息,得到目标虚拟机。本申请解决了现有技术中一个快照难以恢复出多个不同的虚拟机的技术问题。

Description

虚拟机的生成方法和装置
技术领域
本申请涉及虚拟机领域,具体而言,涉及一种虚拟机的生成方法和装置。
背景技术
随着虚拟化技术的发展(包括计算虚拟化、内存虚拟化、设备虚拟化),实际上云计算已经具备了很多传统物理硬件环境下所不具备的能力和高级特性,其中之一就是实例快照功能。它和已经应用于PC的休眠技术相似,而相比休眠技术,虚拟化环境中的实例快照可以有更加灵活的使用方式,比如对一个正在运行的虚拟机创建快照并保存下来,那么在一段时间后将快照传输至另外一台宿主机上,并从快照恢复该实例的运行,而这个过程对实例来讲,是完全透明的。
但是,实例快照只能用于单个虚拟机,由于以下几个原因,其并不具备从同一份快照创建出多个实例的能力,因此导致无法应用于更多场景:1、操作系统仅在系统启动引导阶段完成初始化过程,包括获取CPU特性、识别底层硬件设备和完成系统相关配置。这些初始化过程决定了后续整个系统运行期间的相关行为特征。2、从同一份快照创建出来的实例,系统配置都是相同的,那么还需要修改相关配置才能使得系统正常运行。因此导致过程较为复杂,且其中某些系统配置的跳变会给应用程序带来极大影响(比如系统时间、hostname、ip等等)。而很多客户的需求是希望能够快速创建实例,及时解决突发性的业务高峰,然而对很多应用(尤其是java业务)来说,它还需要较长时间的预热,才能达到最高的运行效率。
针对现有技术中一个快照难以恢复出多个不同的虚拟机的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种虚拟机的生成方法和装置,以至少解决现有技术中一个快照难以恢复出多个不同的虚拟机的技术问题。
根据本申请实施例的一个方面,提供了一种虚拟机的生成方法,包括:初始虚拟机获取宿主机注入的元数据,其中,初始虚拟机通过对虚拟机快照进行恢复得到,元数据用于记录需要生成的目标虚拟机对应的配置信息;初始虚拟机按照预设的数据结构读取已经注入的元数据;初始虚拟机通过根据元数据进行初始化更改初始虚拟机的配置信息,得到目标虚拟机。
根据本申请实施例的一个方面,提供了一种虚拟机的生成方法,包括:根据虚拟机快照恢复得到多个初始虚拟机;获取多组元数据,其中,元数据用于记录需要生成的目标虚拟机对应的配置信息,元数据与目标虚拟机具有一一对应的关系;将每组元数据分别注入到初始虚拟机中,得到多个不同的目标虚拟机,其中,初始虚拟机按照预设的数据结构读取已经注入的元数据,通过元数据进行初始化以更改初始虚拟机的配置信息,得到与元数据对应的目标虚拟机。
根据本申请实施例的另一方面,还提供了一种虚拟机的生成装置,包括:获取模块,用于初始虚拟机获取宿主机注入的元数据,其中,初始虚拟机通过对虚拟机快照进行恢复得到,元数据用于记录需要生成的目标虚拟机对应的配置信息;读取模块,用于初始虚拟机按照预设的数据结构读取已经注入的元数据;更改模块,用于初始虚拟机通过根据元数据进行初始化更改初始虚拟机的配置信息,得到目标虚拟机。
根据本申请实施例的另一方面,还提供了一种虚拟机的生成装置,包括:恢复模块,用于根据虚拟机快照恢复得到多个初始虚拟机;获取模块,用于获取多组元数据,其中,元数据用于记录需要生成的目标虚拟机对应的配置信息,元数据与目标虚拟机具有一一对应的关系;注入模块,用于将每组元数据分别注入到初始虚拟机中,得到多个不同的目标虚拟机,其中,初始虚拟机按照预设的数据结构读取已经注入的元数据,通过元数据进行初始化以更改初始虚拟机的配置信息,得到与元数据对应的目标虚拟机。
在本申请实施例中,初始虚拟机获取宿主机注入的元数据,其中,初始虚拟机通过对虚拟机快照进行恢复得到,元数据用于记录需要生成的目标虚拟机对应的配置信息;初始虚拟机按照预设的数据结构读取已经注入的元数据;初始虚拟机通过根据元数据进行初始化更改初始虚拟机的配置信息,得到目标虚拟机。通过元数据的注入和初始虚拟机的初始化,提供了一个对于操作系统和应用可以感知的初始化机制,从而保证了在从快照恢复虚拟机运行,到系统和应用真正可以正常的运行之间,有一个时机能够适应和调整环境和配置的变化,进而解决了现有技术中一个快照难以恢复出多个不同的虚拟机的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了一种用于实现虚拟机的生成方法的计算设备(或移动设备)的硬件结构框图;
图2是根据本申请实施例1的一种虚拟机的生成方法的流程图;
图3是根据本申请实施例1的一种虚拟机的生成方法的示意图;
图4是根据本申请实施例2的一种虚拟机的生成方法的流程图;
图5a是根据本申请实施例2的一种生成虚拟机的示意图;
图5b是根据本申请实施例2的一种生成虚拟机的结构示意图;
图6是根据本申请实施例3的一种虚拟机的生成装置的示意图;
图7是根据本申请实施例4的一种虚拟机的生成装置的示意图;以及
图8是根据本申请实施例6的一种计算设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
VMM:(Virtual Machine Monitor)虚拟机监视器,包括规划、部署、管理和优化虚拟基础结构等功能。
KVM:(kernel-based virtual machine),一种开源的系统虚拟机模块。
虚拟CPU快照:对一个处于运行状态的虚拟机,保存其VCPU、内存以及虚拟磁盘的相关状态和数据,并以一定格式存储成文件。
实施例1
根据本申请实施例,还提供了一种虚拟机的生成方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算设备或者类似的运算装置中执行。图1示出了一种用于实现虚拟机的生成方法的计算设备(或移动设备)的硬件结构框图。如图1所示,计算设备10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的虚拟机的生成方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的虚拟机的生成方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算设备10(或移动设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
在上述运行环境下,本申请提供了如图2所示的虚拟机的生成方法。图2是根据本申请实施例1的一种虚拟机的生成方法的流程图。
步骤S21,初始虚拟机获取宿主机注入的元数据,其中,初始虚拟机通过对虚拟机快照进行恢复得到,元数据用于记录需要生成的目标虚拟机对应的配置信息。
具体的,上述初始虚拟机用于表示宿主机根据虚拟机快照生成的虚拟机,初始虚拟机即为基础实例,进行了VMM的启动和初始化,但还未进行虚拟机内部客户机操作系统的引导和初始化。初始虚拟机可以是宿主机根据虚拟机快照恢复得到的,在一种可选的实施例中,宿主机对一个虚拟机的内存数据进行保存,生成该虚拟机的虚拟机快照。基于该虚拟机快照,可以创建N个初始虚拟机。本实施例中的步骤可以是宿主机根据虚拟机快照恢复得到的任意一个初始虚拟机所执行的步骤。
上述元数据用于记录预先设置的配置信息。在一种可选的实施例中,需要根据一个虚拟机快照生成N个目标虚拟机,则可以设置N个元数据,每个初始虚拟机获取其中的一个元数据即可。上述注入用于表示向指定的对象中插入指令或数据,本申请中用于表示向初始虚拟机中插入元数据。
在上述实施例中,元数据可以具有对应的标识,生成的初始虚拟机可以根据元数据的标识来获取元数据,以避免不同的初始虚拟机获取了相同的元数据。
步骤S23,初始虚拟机按照预设的数据结构读取已经注入的元数据。
具体的,上述元数据描述了该实例的底层信息和配置信息,即记载了目标虚拟机的配置信息,初始虚拟机在获取到元数据后,需要对元数据中的配置信息进行读取,才能够根据元数据进行初始化。
需要说明的是,元数据可以通过接口获得,接口需要遵循指定的地址协议以及二进制接口(ABI)规范。元数据也需要遵循指定的数据格式,从而在初始化阶段才能够被初始虚拟机进行识别和读取。
步骤S25,初始虚拟机通过根据元数据进行初始化更改初始虚拟机的配置信息,得到目标虚拟机。
在该步骤中,虚拟机通过元数据进行虚拟机内部客户机操作系统的引导和初始化,从而能够更改虚拟机的配置信息,得到目标虚拟机。上述进行初始化的步骤可以是初始化虚拟机执行初始化函数init handler。
在一种可选的实施例中,以云服务场景为例,需要为N个用户提供N个不同的虚拟机,使用上述方式,可以使用一个虚拟机快照生成N个不同的虚拟机。具体的,先设置N个与用户对应的不同的元数据,再根据一个虚拟机快照生成N个初始虚拟机,N个初始虚拟机执行上述步骤S21至S25,分别根据一个对应的元数据进行初始化,从而得到最终的N个目标虚拟机。
图3是根据本申请实施例1的一种虚拟机的生成方法的示意图,结合图3所示,首先由宿主机进行实例的启动,得到虚拟机实体,再在虚拟机实体中加载虚拟机快照,得到初始虚拟机。向初始虚拟机中注入元数据,初始虚拟机根据元数据进行实例初始化,从而得到了目标虚拟机,目标虚拟机的实例即可以继续运行虚拟机快照的上下文。
本申请上述实施例中,初始虚拟机获取宿主机注入的元数据,其中,初始虚拟机通过对虚拟机快照进行恢复得到,元数据用于记录需要生成的目标虚拟机对应的配置信息;初始虚拟机按照预设的数据结构读取已经注入的元数据;初始虚拟机通过根据元数据进行初始化更改初始虚拟机的配置信息,得到目标虚拟机。通过元数据的注入和初始虚拟机的初始化,提供了一个对于操作系统和应用可以感知的初始化机制,从而保证了在从快照恢复虚拟机运行,到系统和应用真正可以正常的运行之间,有一个时机能够适应和调整环境和配置的变化,进而解决了现有技术中一个快照难以恢复出多个不同的虚拟机的技术问题,并充分发挥了虚拟化技术的能力,可以极大加快虚拟机的启动速度。
作为一种可选的实施例,在初始虚拟机通过根据元数据进行初始化更改初始虚拟机的配置信息之前,上述方法还包括;初始虚拟机调用中断程序,其中,中断程序用于禁止初始虚拟机运行虚拟机快照的上下文。
需要说明的是,如果没有上述中断程序所提供的中断机制,宿主机在生成初始虚拟机后,初始虚拟机会按照虚拟机快照的上下文继续执行,而并不会进行初始化,即并不会执行初始化函数。因此为了使初始虚拟机能够根据元数据进行初始化,需要向初始化虚拟机注入中断程序,以中断初始虚拟机继续执行虚拟机快照的上下文,而是去执行初始化函数。
作为一种可选的实施例,初始虚拟机获取宿主机注入的元数据,包括:获取预设接口的接口信息;根据接口信息从预设接口获取宿主机注入的元数据。
元数据可以由宿主机存储在指定位置,并向初始虚拟机提供对应的接口信息,该接口信息可以包括元数据存储的位置和字段等信息,初始虚拟机根据接口信息确定预设接口后,从预设接口处获取元数据。
作为一种可选的实施例,初始虚拟机按照预设的数据结构读取已经注入的元数据,包括:获取预设的元数据的数据结构;根据数据接口读取元数据所记录的目标虚拟机的配置信息。
具体的,元数据具有对应的数据结构,用于定义元数据中的不同数据位所表示的意义,初始虚拟机只有知晓元数据规则,才能够成功读取元数据,而元数据必须要符合元数据的数据结构,才能被初始虚拟机所识别和读取。
在一种可选的实施例中,上述元数据可以根据目标虚拟机的实际需求确定,为了使初始虚拟机能够对元数据进行读取和识别,元数据需要遵循预设的规则,也即需要保持一定的数据结构。例如:元数据可以由一组8位的16进制数据来表示,以及元数据为AABBCCDD为例,其中,AABB可以用于表示目标虚拟机内核的特征信息,CC可以用于表示目标虚拟机对应的设备信息,DD可以用于表示目标虚拟机对应的系统信息。初始虚拟机在得到元数据后,将其第一位、第二位、第三位和第四位识别为目标虚拟机内核的特征信息,将其第五位和第六位识别位识别为目标虚拟机对应的设备信息,并将其第七位和第八位识别为目标虚拟机对应的系统信息,从而实现了对元数据的读取。
作为一种可选的实施例,初始虚拟机获取宿主机注入的元数据,包括如下任意一项:通过网络获取元数据;通过网络文件系统获取元数据;通过挂载的外部设备获取元数据;以及通过查找指定路径中的元数据。
初始虚拟机除了从指定的接口获取元数据之外,还可以通过上述的任意一种方式获取元数据。
上述方案还提供了其他的初始虚拟机获取宿主机注入的元数据的方案,其中,例如,从网络中获取元数据、从nfs(Network File System,网络文件系统)中获取元数据、或通过挂在外部设备获取元数据;也可以是在初始虚拟机初始化之前或初始化虚拟机初始化的过程中一直做polling()来实现元数据的获取。
作为一种可选的实施例,初始虚拟机通过根据元数据进行初始化更改初始虚拟机的配置信息,包括:初始虚拟机根据元数据进行初始化配置,以更改初始虚拟机的配置信息,其中,初始化配置包括:操作系统内核的初始化、操作系统系统服务的初始化以及应用程序的初始化。
实例的初始化包括操作系统内核初始化、操作系统系统服务初始化以及应用程序初始化。具体的,基于快照生成示例为基础实例,在基础实例启动时,其每个组件(内核、系统服务、各个应用)都应该注册各自的初始化函数,在运行初始化函数进行初始化的过程中,根据元数据更改配置信息,然后才开始运行各自的正常逻辑。
作为一种可选的实施例,在初始虚拟机通过根据元数据进行初始化更改初始虚拟机的配置信息之后,上述方法还包括:初始虚拟机根据虚拟机快照的上下文运行。
在上述方案中,初始化虚拟机的实例运行各个初始化函数(init handler)的初始化工作结束后,恢复执行虚拟机快照前的系统状态,包括系统内核、以及应用进程。至此,整个实例就完成了系统配置,并且可以立即进入和快照期间一样的运行状态。
作为一种可选的实施例,配置信息至少包括如下一项:目标虚拟机内核的特征信息、目标虚拟机对应的设备信息以及目标虚拟机对应的系统信息。
具体的,上述目标虚拟机内核的特征信息用于表示目标虚拟机内核的属性信息,例如VCPU的各项feature,目标虚拟机对应的设备信息可以包括:比如磁盘、网卡的热插拔等;目标虚拟机对应的系统配置可以包括ip、hostname(主机名)以及系统时间等。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
实施例2
根据本申请实施例,还提供了一种虚拟机的生成方法的实施例,本实施例中的初始虚拟机可以为实施例1中的初始虚拟机,在不冲突的情况下,本实施例中的初始虚拟机可以执行实施例1中的所有步骤。图4是根据本申请实施例2的一种虚拟机的生成方法的流程图,结合图4所示,该步骤包括:
步骤S41,根据虚拟机快照恢复得到多个初始虚拟机。
具体的,上述虚拟机快照是暂停样本虚拟机的运行并保存样本虚拟机的内存数据所得到的文件,上述样本虚拟机是指定的虚拟机。上述初始虚拟机用于表示宿主机根据虚拟机快照恢复得到的虚拟机,初始虚拟机即为基础实例,其进行了VMM的启动和初始化,但还未进行虚拟机内部客户机操作系统的引导和初始化。
根据虚拟机快照恢复得到的多个初始虚拟机可以运行在同一个宿主机上,也可以运行在多个不同的宿主机上,本申请不做具体限定。
步骤S43,获取多组元数据,其中,元数据用于记录需要生成的目标虚拟机对应的配置信息,元数据与目标虚拟机具有一一对应的关系。
具体的,上述元数据可以存储在宿主机的预设存储区域,也可以存储在网络端,由宿主机从网络端获取。目标虚拟机是需要生成的虚拟机,以云服务为例,需要为N个用户生成虚拟机,则需要生成N个目标虚拟机。这N个目标虚拟机必然是不同的。元数据与目标虚拟机具有一一对应的关系,用于表示一个目标虚拟机具有对应的元数据,也即,一组元数据仅用于生成一个目标虚拟机,从而保证在最终生成的目标虚拟机均不相同。
在一种可选的实施例中,上述元数据可以根据目标虚拟机的实际需求确定,为了使初始虚拟机能够对元数据进行读取和识别,元数据需要遵循预设的规则,也即需要保持一定的数据结构。例如:元数据可以由一组8位的16进制数据来表示,以及元数据为AABBCCDD为例,其中,AABB可以用于表示目标虚拟机内核的特征信息,CC可以用于表示目标虚拟机对应的设备信息,DD可以用于表示目标虚拟机对应的系统信息。初始虚拟机在得到元数据后,将其第一位、第二位、第三位和第四位识别为目标虚拟机内核的特征信息,将其第五位和第六位识别位识别为目标虚拟机对应的设备信息,并将其第七位和第八位识别为目标虚拟机对应的系统信息,从而实现了对元数据的读取。
需要说明的是,宿主机根据虚拟机快照恢复得到多个初始虚拟机可以是分组批量进行的,例如,需求的虚拟机的数量为100个,可以将其分为10组,每组10个的方式,分批生成初始虚拟机和获取其对应的元数据,并分批将元数据注入初始虚拟机中,得到最终的多组目标虚拟机。
步骤S45,将每组元数据分别注入到初始虚拟机中,得到多个不同的目标虚拟机,其中,初始虚拟机按照预设的数据结构读取已经注入的元数据,通过元数据进行初始化以更改初始虚拟机的配置信息,得到与元数据对应的目标虚拟机。
具体的,上述元数据中记载了目标虚拟机的配置信息,初始虚拟机在获取到元数据后,需要对元数据中的配置信息进行读取,才能够根据元数据进行初始化。
需要说明的是,元数据可以通过接口获得,接口需要遵循指定的地址协议以及二进制接口(ABI)规范。元数据也需要遵循指定的数据格式,从而在初始化阶段才能够被初始虚拟机进行识别和读取。
在该步骤中,虚拟机通过元数据进行虚拟机内部客户机操作系统的引导和初始化,从而能够更改虚拟机的配置信息,得到目标虚拟机。上述进行初始化的步骤可以是初始化虚拟机执行初始化函数init handler。
在一种可选的实施例中,以云服务场景为例,需要为N个用户提供N个不同的虚拟机,使用上述方式,可以使用一个虚拟机快照生成N个不同的虚拟机。具体的,先设置N个与用户对应的不同的元数据,再根据一个虚拟机快照生成N个初始虚拟机,N个初始虚拟机使用对应的元数据进行初始化,从而得到最终的N各目标虚拟机。
图5a是根据本申请实施例2的一种生成虚拟机的示意图,结合图5a所示,样本虚拟机注册init handler(初始化程序)并开始运行,在运行的过程中对该样本虚拟机制作成快照,从而得到的虚拟机快照。在此之后,可以使用该虚拟机快照回复进行回复得到初始虚拟机,初始虚拟机基于元数据运行init handler,从而更改配置信息,得到目标虚拟机,随后可继续运行。
图5b是根据本申请实施例2的一种生成虚拟机的结构示意图,结合图5b所示,在样本虚拟机51(任意一个指定的虚拟机)运行的过程中,暂停样本虚拟机51的运行并保存其内存数据,得到虚拟机快照。宿主机50基于虚拟机快照进行恢复,得到多个初始虚拟机52,并将多组对应的元数据分别注入至初始虚拟机52,使得初始虚拟机52可以根据注入的元数据进行初始化,以更改初始虚拟机52的配置信息,从而得到多个不同的目标虚拟机53。
作为一种可选的实施例,在根据虚拟机快照恢复得到多个初始虚拟机之前,上述方法还包括:获取虚拟机快照,其中,暂停预设的样本虚拟机的运行,并持久化保存样本虚拟机的内存数据,得到虚拟机快照。
实例的初始化包括操作系统内核初始化、操作系统系统服务初始化以及应用程序初始化。具体的,在基础实例启动时,其每个组件(内核、系统服务、各个应用)都应该注册各自的初始化函数,然后开始运行各自的正常逻辑,并随后被做成快照。
作为一种可选的实施例,根据虚拟机快照恢复得到多个初始虚拟机,包括:获取预设的虚拟机数量;根据虚拟机快照生成与虚拟机数量相对应的多个初始虚拟机。
上述预设的虚拟机数量指的是实际应用所需求的目标虚拟机的数量,在上述方案中,宿主机在生成初始虚拟机时,首先需要根据需求确定生成的虚拟机的数量,然后生成对应数量的初始虚拟机,以满足实际的需求。
如果生成的初始虚拟机的数量小于所需求的目标虚拟机的数量,则无法满足服务需求,而如果生成的初始虚拟机的数量大于所需求的目标虚拟机的数量,则没有足够的元数据进行初始化,最终导致有的初始虚拟机无法初始化,或与其他初始虚拟机使用同一组元数据进行初始化,使得生成了多个相同的目标虚拟机。
作为一种可选的实施例,根据虚拟机快照生成与虚拟机数量相对应的多个初始虚拟机,包括:创建与虚拟机数量相对应的虚拟机实体;为每个虚拟机实体加载虚拟机快照,得到多个初始虚拟机。
在一种可选的实施例中,宿主机启动实例创建相应的虚拟机VMM实体(例如底层的KVM VM、VCPU以及用户态的QEMU进程),此时虚拟机只是启动了,但还没有开始运行客户机操作系统。然后为虚拟机实体加载虚拟机快照,具体过程可以包括如下两个部分:1、加载内存快照,用于初始化客户机物理地址空间;2、加载VCPU快照,用于初始化VCPU中各项寄存器的值。
作为一种可选的实施例,多个初始虚拟机共享同一个存储空间存储对应的虚拟机快照,为每个虚拟机实体加载所述虚拟机快照,得到所述多个初始虚拟机,包括:当向所述初始虚拟机的地址中写入数据时,将所述初始虚拟机的虚拟机快照同步至所述初始虚拟机对应的独立存储区域中。
在上述方案中,在单宿主机同时并发启动很多个虚拟机的情况下,为了加快内存快照的加载,可以使用COW(copy on write,写时拷贝)的机制,即多个虚拟机共享同一份内存快照的地址空间用于读取数据,只有当尝试向虚拟机地址空间中写入数据时,才会同步到各自独立分配的内存中,从而加快内存快照的加载。
实施例3
根据本申请实施例,还提供了一种用于实施上述实施例1中的虚拟机的生成方法的虚拟机的生成装置,图6是根据本申请实施例3的一种虚拟机的生成装置的示意图,如图6所示,该装置600包括:
获取模块602,用于初始虚拟机获取宿主机注入的元数据,其中,初始虚拟机通过对虚拟机快照进行恢复得到,元数据用于记录需要生成的目标虚拟机对应的配置信息。
读取模块604,用于初始虚拟机按照预设的数据结构读取已经注入的元数据。
更改模块606,用于初始虚拟机通过根据元数据进行初始化更改初始虚拟机的配置信息,得到目标虚拟机。
此处需要说明的是,上述获取模块602、读取模块604和更改模块606对应于实施例1中的步骤S21至步骤S25,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算设备10中。
作为一种可选的实施例,上述装置还包括:调用模块,用于在初始虚拟机通过根据元数据进行初始化更改初始虚拟机的配置信息之前,初始虚拟机调用中断程序,其中,中断程序用于禁止初始虚拟机运行虚拟机快照的上下文。
作为一种可选的实施例,获取模块包括:第一获取子模块,用于获取预设接口的接口信息;第二获取子模块,用于根据接口信息从预设接口获取宿主机注入的元数据。
作为一种可选的实施例,读取模块包括:第三获取子模块,用于获取预设的元数据规则,其中,元数据规则用于定义元数据的数据结构;读取子模块,用于根据元数据规则读取元数据所记录的目标虚拟机的配置信息。
作为一种可选的实施例,获取模块包括:第四获取子模块,用于执行如下任意一项:通过网络获取元数据;通过网络文件系统获取元数据;通过挂载的外部设备获取元数据;以及通过查找指定路径中的元数据。
作为一种可选的实施例,更改模块包括:更改子模块,用于初始虚拟机根据元数据进行初始化配置,以更改初始虚拟机的配置信息,其中,初始化配置包括:操作系统内核的初始化、操作系统系统服务的初始化以及应用程序的初始化。
作为一种可选的实施例,上述装置还包括:运行模块,用于在初始虚拟机通过根据元数据进行初始化更改初始虚拟机的配置信息之后,初始虚拟机根据虚拟机快照的上下文运行。
作为一种可选的实施例,配置信息至少包括如下一项:目标虚拟机内核的特征信息、目标虚拟机对应的设备信息以及目标虚拟机对应的系统信息。
实施例4
根据本申请实施例,还提供了一种用于实施上述实施例2中的虚拟机的生成方法的虚拟机的生成装置,图7是根据本申请实施例4的一种虚拟机的生成装置的示意图,如图7所示,该装置700包括:
恢复模块702,用于根据虚拟机快照恢复得到多个初始虚拟机。
获取模块704,用于获取多组元数据,其中,元数据用于记录需要生成的目标虚拟机对应的配置信息,元数据与目标虚拟机具有一一对应的关系。
注入模块706,用于将每组元数据分别注入到初始虚拟机中,得到多个不同的目标虚拟机,其中,初始虚拟机按照预设的数据结构读取已经注入的元数据,通过元数据进行初始化以更改初始虚拟机的配置信息,得到与元数据对应的目标虚拟机。
此处需要说明的是,上述恢复模块702、获取模块704和注入模块706对应于实施例2中的步骤S41至步骤S45,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算设备10中。
作为一种可选的实施例,上述装置还包括:保存模块,用于在根据虚拟机快照恢复得到多个初始虚拟机之前,获取虚拟机快照,其中,暂停预设的样本虚拟机的运行,并持久化保存样本虚拟机的内存数据,得到虚拟机快照。
作为一种可选的实施例,保存模块包括:获取子模块,用于获取预设的虚拟机数量;生成子模块,用于根据虚拟机快照生成与虚拟机数量相对应的多个初始虚拟机。
作为一种可选的实施例,生成子模块包括:创建单元,用于创建与虚拟机数量相对应的虚拟机实体;加载单元,用于为每个虚拟机实体加载虚拟机快照,得到多个初始虚拟机。
作为一种可选的实施例,所述多个初始虚拟机共享同一个存储空间存储对应的虚拟机快照,加载单元包括:同步子单元,用于当向所述初始虚拟机的地址中写入数据时,将所述初始虚拟机的虚拟机快照同步至所述初始虚拟机对应的独立存储区域中。
实施例5
本申请的实施例可以提供一种终端,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:
初始虚拟机获取宿主机注入的元数据,其中,所述初始虚拟机通过对虚拟机快照进行恢复得到,所述元数据用于记录需要生成的目标虚拟机对应的配置信息;
所述初始虚拟机读取所述元数据;
所述初始虚拟机通过根据所述元数据进行初始化更改所述初始虚拟机的配置信息,得到所述目标虚拟机。
此处需要说明的是,存储器还用于为处理器提供实施例1中的其他步骤对应的指令,此处不再赘述。
实施例6
本申请的实施例可以提供一种计算设备,该计算设备可以是计算设备群中的任意一个计算设备。可选地,在本实施例中,上述计算设备也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算设备可以执行虚拟机的生成方法中以下步骤的程序代码:初始虚拟机获取宿主机注入的元数据,其中,初始虚拟机通过对虚拟机快照进行恢复得到,元数据用于记录需要生成的目标虚拟机对应的配置信息;初始虚拟机按照预设的数据结构读取已经注入的元数据;初始虚拟机通过根据元数据进行初始化更改初始虚拟机的配置信息,得到目标虚拟机。
可选地,图8是根据本申请实施例6的一种计算设备的结构框图。如图8所示,该计算设备A可以包括:一个或多个(图中仅示出一个)处理器、存储器、以及外设接口。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的虚拟机的生成方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的虚拟机的生成方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:初始虚拟机获取宿主机注入的元数据,其中,初始虚拟机通过对虚拟机快照进行恢复得到,元数据用于记录需要生成的目标虚拟机对应的配置信息;初始虚拟机按照预设的数据结构读取已经注入的元数据;初始虚拟机通过根据元数据进行初始化更改初始虚拟机的配置信息,得到目标虚拟机。
可选的,上述处理器还可以执行如下步骤的程序代码:在初始虚拟机通过根据元数据进行初始化更改初始虚拟机的配置信息之前,初始虚拟机调用中断程序,其中,中断程序用于禁止初始虚拟机运行虚拟机快照的上下文。
可选的,上述处理器还可以执行如下步骤的程序代码:获取预设接口的接口信息;根据接口信息从预设接口获取宿主机注入的元数据。
可选的,上述处理器还可以执行如下步骤的程序代码:获取预设的元数据规则,其中,元数据规则用于定义元数据的数据结构;根据元数据规则读取元数据所记录的目标虚拟机的配置信息。
可选的,上述处理器还可以执行如下步骤的程序代码:通过网络获取元数据;通过网络文件系统获取元数据;通过挂载的外部设备获取元数据;以及通过查找指定路径中的元数据。
可选的,上述处理器还可以执行如下步骤的程序代码:初始虚拟机根据元数据进行初始化配置,以更改初始虚拟机的配置信息,其中,初始化配置包括:操作系统内核的初始化、操作系统系统服务的初始化以及应用程序的初始化。
可选的,上述处理器还可以执行如下步骤的程序代码:在初始虚拟机通过根据元数据进行初始化更改初始虚拟机的配置信息之后,初始虚拟机根据虚拟机快照的上下文运行。
可选的,配置信息至少包括如下一项:目标虚拟机内核的特征信息、目标虚拟机对应的设备信息以及目标虚拟机对应的系统信息。
采用本申请实施例,提供了一种虚拟机的生成方法。通过初始虚拟机获取宿主机注入的元数据,其中,所述初始虚拟机通过对虚拟机快照进行恢复得到,所述元数据用于记录需要生成的目标虚拟机对应的配置信息;所述初始虚拟机读取所述元数据;所述初始虚拟机通过根据所述元数据进行初始化更改所述初始虚拟机的配置信息,得到所述目标虚拟机。通过元数据的注入和初始虚拟机的初始化,提供了一个对于操作系统和应用可以感知的初始化机制,从而保证了在从快照恢复虚拟机运行,到系统和应用真正可以正常的运行之间,有一个时机能够适应和调整环境和配置的变化,进而解决了现有技术中一个快照难以恢复出多个不同的虚拟机的技术问题。
本领域普通技术人员可以理解,图8所示的结构仅为示意,计算设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图8其并不对上述电子装置的结构造成限定。例如,计算设备A还可包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例7
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的虚拟机的生成方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算设备群中的任意一个计算设备中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:初始虚拟机获取宿主机注入的元数据,其中,初始虚拟机通过对虚拟机快照进行恢复得到,元数据用于记录需要生成的目标虚拟机对应的配置信息;初始虚拟机按照预设的数据结构读取已经注入的元数据;初始虚拟机通过根据元数据进行初始化更改初始虚拟机的配置信息,得到目标虚拟机。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (18)

1.一种虚拟机的生成方法,其特征在于,包括:
初始虚拟机获取宿主机注入的元数据,其中,所述元数据用于记录需要生成的目标虚拟机对应的配置信息;
所述初始虚拟机按照预设的数据结构读取已经注入的所述元数据;
所述初始虚拟机通过根据所述元数据进行初始化更改所述初始虚拟机的配置信息,得到所述目标虚拟机。
2.根据权利要求1所述的方法,其特征在于,所述宿主机根据虚拟机快照恢复得到所述初始虚拟机。
3.根据所述权利要求2所述的方法,其特征在于,在所述初始虚拟机通过根据所述元数据进行初始化更改所述初始虚拟机的配置信息之前,所述方法还包括;
所述初始虚拟机调用中断程序,其中,所述中断程序用于禁止所述初始虚拟机运行所述虚拟机快照的上下文。
4.根据权利要求1所述的方法,其特征在于,初始虚拟机获取宿主机注入的元数据,包括:
获取预设接口的接口信息;
根据所述接口信息从所述预设接口获取所述宿主机注入的元数据。
5.根据权利要求4所述的方法,其特征在于,所述初始虚拟机读取所述元数据,包括:
获取预设的所述元数据的数据结构;
根据所述数据结构读取所述元数据所记录的所述目标虚拟机的配置信息。
6.根据权利要求1所述的方法,其特征在于,初始虚拟机获取宿主机注入的元数据,包括如下任意一项:
通过网络获取所述元数据;
通过网络文件系统获取所述元数据;
通过挂载的外部设备获取所述元数据;以及
通过查找指定路径中的所述元数据。
7.根据权利要求1所述的方法,其特征在于,所述初始虚拟机通过根据所述元数据进行初始化更改所述初始虚拟机的配置信息,包括:
所述初始虚拟机根据所述元数据进行初始化配置,以更改所述初始虚拟机的配置信息,其中,所述初始化配置包括:操作系统内核的初始化、操作系统系统服务的初始化以及应用程序的初始化。
8.根据权利要求2所述的方法,其特征在于,在所述初始虚拟机通过根据所述元数据进行初始化更改所述初始虚拟机的配置信息之后,所述方法还包括:
所述初始虚拟机根据所述虚拟机快照的上下文运行。
9.根据权利要求1的方法,其特征在于,所述配置信息至少包括如下一项:目标虚拟机内核的特征信息、所述目标虚拟机对应的设备信息以及所述目标虚拟机对应的系统信息。
10.一种虚拟机的启动方法,其特征在于,
根据虚拟机快照恢复得到多个初始虚拟机;
获取多组元数据,其中,所述元数据用于记录需要生成的目标虚拟机对应的配置信息,所述元数据与所述目标虚拟机具有一一对应的关系;
将每组所述元数据分别注入到所述初始虚拟机中,得到多个不同的目标虚拟机,其中,所述初始虚拟机读取所述元数据,通过所述元数据进行初始化以更改所述初始虚拟机的配置信息,得到与所述元数据对应的目标虚拟机。
11.根据权利要求10所述的方法,其特征在于,在根据虚拟机快照恢复得到多个初始虚拟机之前,所述方法还包括:
获取虚拟机快照,其中,暂停预设的样本虚拟机的运行,并持久化保存所述样本虚拟机的内存数据,得到所述虚拟机快照。
12.根据权利要求11所述的方法,其特征在于,根据虚拟机快照恢复得到多个初始虚拟机,包括:
获取预设的虚拟机数量;
根据所述虚拟机快照生成与所述虚拟机数量相对应的多个初始虚拟机。
13.根据权利要求12所述的方法,其特征在于,根据所述虚拟机快照生成与所述虚拟机数量相对应的多个初始虚拟机,包括:
创建与所述虚拟机数量相对应的虚拟机实体;
为每个虚拟机实体加载所述虚拟机快照,得到所述多个初始虚拟机。
14.根据权利要求13所述的方法,其特征在于,所述多个初始虚拟机共享同一个存储空间存储对应的虚拟机快照,为每个虚拟机实体加载所述虚拟机快照,得到所述多个初始虚拟机,包括:
当向所述初始虚拟机的地址中写入数据时,将所述初始虚拟机的虚拟机快照同步至所述初始虚拟机对应的独立存储区域中。
15.一种虚拟机的生成装置,其特征在于,包括:
获取模块,用于初始虚拟机获取宿主机注入的元数据,其中,所述元数据用于记录需要生成的目标虚拟机对应的配置信息;
读取模块,用于所述初始虚拟机按照预设的数据结构读取已经注入的所述元数据;
更改模块,用于所述初始虚拟机通过根据所述元数据进行初始化更改所述初始虚拟机的配置信息,得到所述目标虚拟机。
16.一种虚拟机的启动装置,其特征在于,
恢复模块,用于根据虚拟机快照恢复得到多个初始虚拟机;
获取模块,用于获取多组元数据,其中,所述元数据用于记录需要生成的目标虚拟机对应的配置信息,所述元数据与所述目标虚拟机具有一一对应的关系;
注入模块,用于将每组所述元数据分别注入到所述初始虚拟机中,得到多个不同的目标虚拟机,其中,所述初始虚拟机读取所述元数据,通过所述元数据进行初始化以更改所述初始虚拟机的配置信息,得到与所述元数据对应的目标虚拟机。
17.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如下步骤:
初始虚拟机获取宿主机注入的元数据,其中,所述初始虚拟机通过对虚拟机快照进行恢复得到,所述元数据用于记录需要生成的目标虚拟机对应的配置信息;
所述初始虚拟机按照预设的数据结构读取已经注入的所述元数据;
所述初始虚拟机通过根据所述元数据进行初始化更改所述初始虚拟机的配置信息,得到所述目标虚拟机。
18.一种终端,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:
初始虚拟机获取宿主机注入的元数据,其中,所述初始虚拟机通过对虚拟机快照进行恢复得到,所述元数据用于记录需要生成的目标虚拟机对应的配置信息;
所述初始虚拟机按照预设的数据结构读取已经注入的所述元数据;
所述初始虚拟机通过根据所述元数据进行初始化更改所述初始虚拟机的配置信息,得到所述目标虚拟机。
CN201910905762.9A 2019-09-24 2019-09-24 虚拟机的生成方法和装置 Pending CN112559114A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910905762.9A CN112559114A (zh) 2019-09-24 2019-09-24 虚拟机的生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910905762.9A CN112559114A (zh) 2019-09-24 2019-09-24 虚拟机的生成方法和装置

Publications (1)

Publication Number Publication Date
CN112559114A true CN112559114A (zh) 2021-03-26

Family

ID=75028978

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910905762.9A Pending CN112559114A (zh) 2019-09-24 2019-09-24 虚拟机的生成方法和装置

Country Status (1)

Country Link
CN (1) CN112559114A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113791870A (zh) * 2021-09-24 2021-12-14 上海交通大学 一种WebAssembly虚拟机分布式系统细粒度迁移方法及系统
CN114666212A (zh) * 2022-03-25 2022-06-24 阿里云计算有限公司 配置数据下发方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113791870A (zh) * 2021-09-24 2021-12-14 上海交通大学 一种WebAssembly虚拟机分布式系统细粒度迁移方法及系统
CN113791870B (zh) * 2021-09-24 2024-03-26 上海交通大学 一种WebAssembly虚拟机分布式系统细粒度迁移方法及系统
CN114666212A (zh) * 2022-03-25 2022-06-24 阿里云计算有限公司 配置数据下发方法
CN114666212B (zh) * 2022-03-25 2023-08-29 阿里云计算有限公司 配置数据下发方法

Similar Documents

Publication Publication Date Title
US9823877B2 (en) Virtual machine backup from storage snapshot
US7818559B2 (en) Boot negotiation among multiple boot-capable devices
EP2840495A1 (en) Container-based processing method, device and system
CN106959927B (zh) 获取虚拟机中的逻辑分区的位置信息的方法及装置
CN109656646B (zh) 一种远程桌面控制方法、装置、设备及虚拟化芯片
US20110246983A1 (en) Wireless Network Backup Device and Method
CN110968392B (zh) 一种升级虚拟化模拟器的方法和装置
CN110879741A (zh) 虚拟机热迁移方法及装置、存储介质、处理器
CN112559114A (zh) 虚拟机的生成方法和装置
CN114153782B (zh) 数据处理系统、方法和存储介质
EP2466459A1 (en) Seamless application integration apparatus and method
CN110515671B (zh) 初始化方法、初始化装置、终端设备及可读存储介质
CN107844304B (zh) 虚拟机热升级方法及装置
US10503430B2 (en) Method and device for clearing data and electronic device
CN114691390A (zh) 用户态程序的处理方法和装置、存储介质及处理器
CN114064216A (zh) 一种虚拟机初始化方法、装置、终端设备及存储介质
CN111736943A (zh) 虚拟机的迁移方法和系统
CN110874264A (zh) 实例热迁移方法及装置、存储介质、处理器
CN109656674B (zh) 一种计算机设备、虚拟化芯片及数据传输方法
CN116185720A (zh) 基于vSAN超融合虚拟化平台的虚拟机备份及恢复的方法
CN110737502A (zh) 镜像文件的处理方法、装置和系统
CN115469964A (zh) 块设备与虚拟机盘符之间映射关系的确定方法和装置
CN114995888A (zh) 一种智能网卡部署方法、装置及介质
CN110968393A (zh) 虚拟机的迁移处理方法、存储介质、计算设备
CN115794132A (zh) 操作系统部署方法、装置、设备及存储介质

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40046339

Country of ref document: HK