一种虚拟机快速创建方法与流程

文档序号:12463523阅读:461来源:国知局
一种虚拟机快速创建方法与流程

本发明涉及云计算技术领域,尤其涉及一种在云平台或者数据中心中基于用户请求或者后台管理员发出的创建虚拟机请求而执行的虚拟机快速创建方法。



背景技术:

虚拟机(Virtual Machine,VM)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在云平台中创建一台虚拟机,就是将CPU数量、内存容量、联网方式以及其他虚拟硬件信息保存起来,需要开启虚拟机时使用这些参数来启动,并能够实现在很短的时间内对这些信息进行存储,而创建时真正的耗时的操作是创建一个有可用操作系统的虚拟磁盘。

在使用虚拟机之前,需要在物理服务器中创建并配置。具体过程包括:准备服务器、安装操作系统、配置操作系统及部署应用几个步骤。因为涉及的过程较为繁琐,且创建虚拟机的过程中涉及到的数据文件较大,整个创建过程的时间较长。

目前的常见做法是通过模板技术实现快速创建。所谓模板是指包含了完整的操作系统(OS)以及用户特定的应用的虚拟机镜像。通过模板创建一个虚拟机分为如下的步骤:创建虚拟机磁盘;从模板库或模板快照(cache)中复制模板到建好的虚拟机磁盘上;生成虚拟机的配置信息;启动虚拟机。在此过程中,虚拟机磁盘在物理服务器上以文件或设备的方式存在。因此,创建虚拟机磁盘即是物理服务器上创建一个文件或一个设备。复制模板到虚拟机磁盘即是将模板的数据信息写入虚拟机磁盘上。因为模板本身是一个虚拟机的完全复制,所以系统启动需要的分区引导信息也包含在模板镜像中,这就使得将模板数据信息完全写到虚拟机磁盘后,虚拟机即可正常启动。但是,此种方法中,在创建虚拟机时,因为需要读取全部的模板数据信息并写入对应的虚拟机磁盘中。因为模板数据信息通常较大,通常以千兆(G)计,而且同时进行读操作和写操作所涉及的数据量即为模板数据本身大小的两倍,这无疑会花费较长的时间。此外,这种虚拟机创建方法还可能会影响该物理服务器中其他已经创建的虚拟机的正常运行。

有鉴于此,有必要对现有技术中在云平台中创建虚拟机的方法予以改进,以解决上述问题。



技术实现要素:

本发明的目的在于公开一种在云平台中快速创建虚拟机的方法,用以克服现有技术中在创建虚拟机的过程中所存在的虚拟机启动时间过长、创建效率不高等缺陷,降低后台计算开销。

为实现上述发明目的,本发明提供了一种虚拟机快速创建方法,包括以下步骤:

S1、在能够配置虚拟机的介质中构建基础配置,以逐级配置出至少一个基础虚拟机;

S2、获取并保存基础虚拟机被配置时的状态;

S3、遍历虚拟机创建的请求,以基础虚拟机为模板加载增量配置或者卸载配置,直至请求被执行完毕,并响应用户。

作为本发明的进一步改进,所述基础配置是CPU配置、内存配置、带宽配置、磁盘配置、实时时钟配置或者外设配置中的一种或者两种以上任意组合的配置。

作为本发明的进一步改进,所述基础配置还包括操作系统。

作为本发明的进一步改进,所述步骤S1中配置形成两个或者两个以上基础虚拟机,每个基础虚拟机被配置的基础配置呈增量关系。

作为本发明的进一步改进,所述步骤S2还包括:获取配置形成的多个基础虚拟机的操作系统状态文件、操作系统日志或者磁盘文件系统。

作为本发明的进一步改进,所述步骤S2还包括:根据用户发送的创建请求的历史记录建立索引表,并通过索引表匹配出满足用户发送的创建请求的一个虚拟机并响应用户。

作为本发明的进一步改进,所述步骤S2中,在基础虚拟机配置完毕之后,还包括保存基础虚拟机的操作系统状态文件并关闭基础虚拟机的步骤。

作为本发明的进一步改进,所述步骤S3还包括:根据基础虚拟机的操作系统状态文件以及基础虚拟机被配置时的状态,启动虚拟机。

作为本发明的进一步改进,所述基础虚拟机被配置时的状态包括:CPU状态、内存状态、带宽状态、磁盘状态、实时时钟状态或者外设状态。

作为本发明的进一步改进,所述CPU配置包括单虚拟CPU或者对称多处理结构虚拟CPU组。

作为本发明的进一步改进,所述方法还包括对向用户响应的虚拟机设置上限配置的步骤,所述上限配置包括最大的CPU配置、内存配置、带宽配置、监视器配置、磁盘配置、实时时钟配置或者外设配置。

作为本发明的进一步改进,所述步骤S1中的介质包括:物理机、计算机集群服务器、计算机节点或者分布式存储系统。

作为本发明的进一步改进,在步骤S1中配置形成的多个基础虚拟机,每个基础虚拟机之间形成能够支持用户请求所创建的虚拟机的最低配置要求作为增量配置。

作为本发明的进一步改进,所述操作系统包括:Windows操作系统、Linux操作系统、Unix操作系统或者Be操作系统。

与现有技术相比,本发明的有益效果是:通过本发明,极大提高了创建虚拟机的速度,并降低了虚拟机的启动时间,避免了对能够配置虚拟机的介质(例如服务器)的计算开销;同时也实现了尽可能使用较少的模板来启动并创建虚拟机,进一步降低了计算开销。

附图说明

图1为现有技术中在云平台中创建虚拟机的步骤图;

图2为本发明一种虚拟机快速创建方法的流程示意图;

图3为实现本发明步骤S1的示意图。

具体实施方式

下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。

请参图1所示,图1为现有技术中在云平台中创建虚拟机的步骤图。在创建一个虚拟机过程中依次需要经过云平台UI创建,后台(或者提供交互式服务的后台服务器)在接收到用户创建虚拟机的请求后,交由控制台处理。然后,通过虚拟化调度层及虚拟化统一层并使用虚拟化软件逐个启动各种应用,并返回active至虚拟化统一层。在上述执行过程中所消耗的时间定义为T1。然后,后台开始准备虚拟化环境,并进去启动引导程序,启动系统,并最终启动服务,至此虚拟机创建完毕。上述执行过程中所消耗的时间定义为T2。则该虚拟机创建的总时间T=T1+T2。由此可见,现有计算中创建虚拟机的步骤繁琐、时间较长且后台的计算开销过大。

请参图2至图3所示出的本发明一种虚拟机快速创建方法的一种具体实施方式。在本实施方式中,该方法具体包括以下步骤。

步骤S1、在能够配置虚拟机的介质中构建基础配置,以逐级配置出至少一个基础虚拟机。基础配置是CPU配置、内存配置、带宽配置、磁盘配置、实时时钟配置或者外设配置中的一种或者两种以上任意组合的配置或者操作系统。该操作系统可为Windows操作系统、Linux操作系统、Unix操作系统或者Be操作系统。在下文所示出的实例中,所选用的操作系统为Linux操作系统,本领域技术人员可以合理预测到其他操作系统根据各自操作系统实际硬件的虚拟硬件环境(包括处理器,内存,I/O设备)而适应性选用。

所谓能够配置虚拟机的介质包括但不限于PC、服务器、计算机集群服务器、计算节点、虚拟机、分布式存储系统或者其他具有逻辑运算功能的电子装置,在本实施方式中,该能够配置虚拟机的介质选用服务器,并作示范性说明。

在传统的创建虚拟机的现有计算中,后台在接收到用户发送的创建虚拟机的请求后,在由服务器通过虚拟化技术(例如Hyper-V)经过虚拟化所形成的各种虚拟化资源,以形成资源池,并根据用户发送的请求来临时创建虚拟机以响应用户的创建请求。

然而,在本实施方式中,可预先在能够配置虚拟机的介质(例如服务器),既可以预先将所有资源(基于一定规格的服务器所形成支持各种应用的最大资源)预先封装或者配置成具有单个功能的子资源。例如,将资源池中的CPU资源封装为1颗、2颗、3颗至10颗,将内存资源封装为1G、2G、3G至10G,其他支持虚拟机健康运行的各种资源,并以此类推,并逐级增量设置;或者将1颗CPU与1G内存封装为一个基础配置,将2颗CPU与2G内存为另一个配置增加的基础配置,从而形成多个基础配置。各个基础配置之间可形成线性增加的逻辑关系,并在后期创建虚拟机的过程中进行整合或者组合,以灵活的根据用户发送的虚拟机创建请求创建符合请求的虚拟机,防止后台根据用户发送的创建虚拟机的请求临时从资源池中抽取CPU、内存等配置并创建虚拟机时对后台造成拥塞或者无法响应请求的问题,降低系统上线后的计算开销,从而降低了临时创建虚拟机时对后台造成额外的计算开销;同时,也能降低云平台中的负载均衡器的开销。

当然,也可如图3所的将配置虚拟机的介质预先封装或者逐级配置出基础虚拟机101、基础虚拟机102(余略)……基础虚拟机10n,以构成n个基础虚拟机。n个基础虚拟机之间的配置形成增量关系。例如,基础虚拟机101的CPU配置为1颗,内存配置为1G(余略),基础虚拟机102的CPU配置为2颗,内存配置为2G(余略)。其中,基础虚拟机101的各项配置设定为用以响应用户创建虚拟机的请求所对应的最低配置。

另,可选择云平台所有基础虚拟机创建共有设备集(相当于上述基础虚拟机),以基础虚拟机101为最小化的基础虚拟机并作为其他基础虚拟机的创建模板或者配置模板。该共有设备集可理解成上文所述的经过封装后的包含CPU及内存的配置。这些共有设备集用于后期支持虚拟机的创建。

接下来我们以虚拟化软件选用qemu为例,在创建共有设备集的具体过程作简要阐述。

上述共有设备集包括:monitor(监视器),串口,CPU,内存,实时时钟(rtc)以及对称多处理结构虚拟CPU组(SMP)等等,并可根据云平台设置作适应性选择。具体的,创建该共有设备集的主要代码如下所示:

-cpu qemu64

-chardev socket,id=charmonitor,path=./qemu.monitor,server,nowait

-mon chardev=charmonitor,id=monitor,mode=control

-rtc base=utc,driftfix=slew

-machine pc

-m 1G,slots=3,maxmem=4G

-smp 1,maxcpus=64,sockets=64,cores=1,threads=1

其中,smp反映了基础虚拟机内的CPU颗数,指定maxcpus意图是在基础虚拟机启动后动态的根据客户配置(2颗、4颗、8颗或者数量更多的CPU进行选择)增加CPU颗数,最大到64颗CPU。-m反映了运行该基础虚拟机的系统内存,maxmem是运行该基础虚拟机可配置的最大内存容量。然后根据选择的已经安装好的系统盘启动基础虚拟机,并作为后续创建定制化虚拟机的创建模板。

在本实施方式中,为了避免用户发送的创建虚拟机的请求突破该能够配置虚拟机的介质所形成的共有设备集或者资源的上限,在执行完步骤S1之后,还可执行对向用户响应的虚拟机配置上限配置的步骤。该上限配置包括最大的CPU配置、最大的内存配置、最大的带宽配置、最佳的监视器配置、最大的磁盘配置、最优的实时时钟配置以及最优的外设配置等资源。当基础虚拟机被配置完毕后,可以关闭基础虚拟机也可不关闭基础虚拟机。

然后,执行步骤S2、获取并保存基础虚拟机被配置时的状态。优选的,在本实施方式中,该步骤S2还包括获取配置形成多个基础虚拟机的操作系统状态文件、操作系统日志(OS log file)或者磁盘文件系统(disk file system)。所述基础虚拟机被配置时的状态包括:CPU状态、内存状态、带宽状态、磁盘状态、实时时钟状态或者外设状态。优选的,该步骤S3还包括:根据基础虚拟机的操作系统状态文件以及基础虚拟机被配置时的状态,启动虚拟机。

需要说明的是,在本实施方式中,所谓“状态”对于内存(或虚拟内存)而言是指内存快照,对于磁盘(或虚拟磁盘)而言是指磁盘快照。在创建快照操作时,以创建基础虚拟机的内置系统还原点为例,其相应的执行代码为:(qemu)savevm xxc。

在步骤S2中,在基础虚拟机配置完毕之后,还包括保存基础虚拟机的操作系统状态文件并关闭基础虚拟机的步骤,以进一步降低后台的计算开销。

然后,执行步骤S3、遍历虚拟机创建的请求,以基础虚拟机为模板加载增量配置或者卸载配置,直至请求被执行完毕,并响应用户。

由于在步骤S1中所预先配置或者预先创建的基础虚拟机并非能完全满用户的请求,同时为了提高后期虚拟机创建与部署的效率,避免预先配置数量过多的基础虚拟机,在本发明中,可将能够配置虚拟机的介质中预先配出处最低配置的一个基础虚拟机,一个中等配置的基础虚拟机以及一个高等配置的基础虚拟机,三者之间形成增量配置的关系。在后期的虚拟机创建过程中,对于一般用户发送的性能不是很高的虚拟机创建请求时,可直接基于上述最低配置的虚拟机并以其为模板加载增量配置,从而从上文的步骤S1中所形成的共有设备集或者称之为基础配置中选取合适的配置(或者资源),从而进一步封装成一台能够满足用户请求的虚拟机,以响应用户。

具体的,启动增量配置的命令为:-loadvm xxc。

假定用户的配置仅仅在最低配置的模板虚拟机上增加了内存使用量,为2G,在qemu monitor内动态增加内存,其代码如下所示:

(qemu)object_add memory-backend-ram,id=mem1,size=1G

(qemu)device_add pc-dimm,id=dimm1,memdev=mem1。

下文示出了最低配置的基础虚拟机进行加载增量配置这一个过程前后的代码。

a.加载增量配置前

[root@localhost~]#cat/proc/meminfo

b.加载增量配置后

[root@localhost~]#cat/proc/meminfo

至此,符合用户请求的虚拟机创建完毕。

在本实施方式中,通过逐级配置出一个或者多个呈增量配置的基础虚拟机,并通过加载增量配置的方式,以形成满足用户创建请求的虚拟机,极大的提高了虚拟机的创建效率。

另一方面,由于客户的创建请求是个性化的,如果一味地增加基础虚拟机的数量也会导致后台计算开销的增加。因此,如果当某个用户所发送的创建虚拟机的请求所关联的虚拟机的配置超过最低配置的基础虚拟机时,后台可从与该用户请求相匹配的最接近的配置的基础虚拟机中进行选取,并进行卸载配置的操作。

例如,对最接近的配置的基础虚拟机减少内存配置的代码如下所示。

(qemu)device_del dimm1//从基础虚拟机中移除虚拟内存;

(qemu)object_del mem1//从虚拟化软件中移移除内存配置对象;

具体的,可以GB、MB或者KB为单位逐级减少配置,从而匹配出与用户请求最接近的虚拟机,并向用户响应,从而有效的避免了资源池中内存资源的浪费。

例如,对最接近的配置的基础虚拟机减少磁盘配置或者增加磁盘配置的代码如下所示。

(qemu)drive_add 0if=none,file=/tmp/test.img,format=raw,id=disk1//添加一块RAW格式磁盘test.img名字为disk1到虚拟化软件。

(qemu)device_add virtio-blk-pci,drive=disk1,id=myvirtio1

//将添加到虚拟化软件的名字为disk1的块设备添加为到虚拟机设备,设备识别名为myvirtio1。

(qemu)device_del disk1

//将名为disk1的块设备从虚拟机和虚拟化软件中移除。

作为本实施方式的进一步优化,在步骤S2还包括:根据用户发送的创建请求的历史记录建立索引表,并通过索引表匹配出满足用户发送的创建请求的一个虚拟机并响应用户。索引表可记录用户创建、启动、运行及关闭虚拟机的使用习惯,并形成记录文件。记录文件可与步骤S1中所创建的基础虚拟机进行关联,并在用户再次发起请求操作时通过该索引表直接创建并启动虚拟机,从而进一步提高了用户创建虚拟机的效率。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

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