虚拟机升级的方法及装置的制作方法

文档序号:6385497阅读:138来源:国知局
专利名称:虚拟机升级的方法及装置的制作方法
技术领域
本申请涉及虚拟机升级技术领域,尤其涉及虚拟机升级的方法及装置。
背景技术
随着硬件速度的不断提高,服务器性能大大提升,数据中心中的部分服务器的使用率有所下降,为了提高服务器硬件利用率,降低数据中心的运维成本,近年来,虚拟化技术得到了很大的发展,其中,虚拟机的使用日益普遍。虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件,我们可以在一台物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如可以安装操作系统、安装应用程序、访问网络资源等等。从用户的角度看,它只是运行在你物理计算机上的一个应用程序,但是对于在虚拟机中运行的应用程序而言,它就像是在真正的计算机中进行工作。使用备份文件技术(backing file技术)可以基于一个基础镜像文件大量部署虚拟机。backing file技术的基本原理就是基于一个基础文件产生一个不同于所述基础文件的增量文件,因此,根据backing file技术,首先需要创建一个基础镜像(base image),里面把各个虚拟机都需要的环境都搭建好,由于不同于基础镜像的数据相对较少,因此,在进行虚拟机克隆、备份等操作时,就可以只对增量数据(即不同于基础镜像的私有数据)进行克隆或备份,形成增量镜像,即基于所述基础镜像可以建立起一个个可读可写的增量镜像,每个增量镜像对应一个虚拟机。在读虚拟机磁盘操作时,先从增量镜像文件中读取,如果没有,再从基础镜像文件中读取;在写数据时,总是写入增量镜像文件中,也就是说,虚拟机对镜像中所有的改变都记录在增量镜像文件里面,基础镜像文件始终保持不变,从而可以实现虚拟机的快速部署,提高了效率,也节省了磁盘空间。例如,如图1所示,master disk image是一个通用的只读的qcow2格式虚拟机基础镜像文件,可以基于master disk image创建虚拟机win7_001和win7_002,即根据backing f ile 技术,win7_001 和 win7_002 上的镜像文件win7_001. qcow2、win7_002. qcow2是基于master disk image产生的qcow2格式增量镜像文件。以虚拟机win7_001为例,在读磁盘操作时,先从win7_001. qcow2中读取,如果没有,再从win7_base. qcow2中读取;在写数据时,总是写入win7_00L qcow2, win7-base. qcow2始终保持不变。在有大量使用backing file技术创建的虚拟机的情况下,比如数据中心中部署了数百甚至上千个win7虚拟机,各个虚拟机的补丁或软件升级对于管理员来说是比较繁琐的事情,因为管理员需要逐个登录每台虚拟机桌面,进行升级工作,从而导致虚拟机升级的工作量较大,升级操作比较繁琐,效率极其低下。

发明内容
有鉴于此,本申请提出一种虚拟机升级的方法,当需要对大量虚拟机进行升级时,可以极大减少升级的工作量,简化升级操作,提高效率。本申请还提出一种虚拟机升级的装置,当需要对大量虚拟机进行升级时,可以极大减少升级的工作量,简化升级操作,提高效率。为达到上述目的,本申请实施例的技术方案是这样实现的一种虚拟机升级的方法,包括 生成每一虚拟机模板时,在该虚拟机模板对应的基础镜像文件中预留出空闲存储空间,为该虚拟机模板创建超级管理虚拟机;当需要对基于上述基础镜像文件创建的虚拟机中的任一虚拟机升级时,查找到该虚拟机对应的基础镜像文件,暂停所有基于该基础镜像文件创建的虚拟机,通过该基础镜像文件对应的超级管理虚拟机对该基础镜像文件进行升级,将升级时变化的数据写入该基础镜像文件预留的空闲存储空间,对基于该基础镜像文件创建的所有虚拟机进行批量升级。一种虚拟机升级的装置,包括存储空间预留模块、超级管理虚拟机创建模块、虚拟机创建模块和虚拟机升级模块,其中存储空间预留模块,用于生成每一虚拟机模板时,在所述虚拟机模板对应的基础镜像文件中预留出空闲存储空间;超级管理虚拟机创建模块,用于为所述虚拟机模板创建超级管理虚拟机;虚拟机创建模块,用于基于上述基础镜像文件创建虚拟机;虚拟机升级模块,用于当需要对虚拟机创建模块创建的任一虚拟机升级时,查找到该虚拟机对应的基础镜像文件,暂停所有基于该基础镜像文件创建的虚拟机,通过该基础镜像文件对应的超级管理虚拟机对该基础镜像文件进行升级,将升级时变化的数据写入该基础镜像文件预留的空闲存储空间,对基于该基础镜像文件创建的所有虚拟机进行批量升级。本申请的有益效果为,通过生成每一虚拟机模板时,在该虚拟机模板对应的基础镜像文件中预留出空闲存储空间,对基于上述任一基础镜像文件创建的大量虚拟机升级时,所述基础镜像文件的某部分数据在升级时发生了变化,将升级时变化的数据写入所述基础镜像文件预留的空闲存储空间,并将这部分数据的跳转地址修改为指向升级后的新地址,升级完成后,虚拟机在读磁盘操作时,当读到这部分数据时,根据上述跳转地址的指向,会读取上述新地址的数据,使得只要对基础镜像文件升级,就完成了对所有基于该基础镜像文件创建的大量虚拟机的升级,从而可以极大减少升级的工作量,简化升级操作,提高升级效率。


图1为现有利用backing file技术生成虚拟机的原理说明示意图;图2为本申请实施例的虚拟机管理平台的系统结构示意图; 图3为本申请实施例的方法流程图;图4为本申请实施例的超级管理虚拟机对qcow2格式基础镜像文件进行补丁或软件升级的原理示意图;图5为本申请实施例的装置功能模块结构示意图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下通过具体实施例并参见附图,对本发明进行详细说明。本申请中,生成每一虚拟机模板时,在该虚拟机模板对应的基础镜像文件中预留出空闲存储空间,为该虚拟机模板创建超级管理虚拟机;当需要对基于上述基础镜像文件创建的虚拟机中的任一虚拟机升级时,查找到该虚拟机对应的基础镜像文件,暂停所有基于该基础镜像文件创建的虚拟机,通过该基础镜像文件对应的超级管理虚拟机对该基础镜像文件进行升级,将升级时变化的数据写入该基础镜像文件预留的空闲存储空间,对基于该基础镜像文件创建的所有虚拟机进行批量升级。本申请方案通过预先在基础镜像文件中留出空闲存储空间,升级时将因升级而导致变化的数据写入所述预留的空闲存储空间中,使得在使用backing file技术基于基础镜像文件部署大量虚拟机的情况下,不需要对每个虚拟机进行补丁或软件升级,只需要对所述基础镜像文件进行补丁或软件升级,即可完成对所有基于该基础镜像文件创建的虚拟机的补丁或软件升级,可以极大减少升级的工作量,简化升级操作,提高效率。为了便于更好理解本申请的实施例,首先对现有虚拟机管理平台的系统组网结构进行简要介绍。如图2所示,三台物理主机在一个集群中,为了简化,这里仅仅以三台物理主机组成的集群为例,实际组网中的物理主机节点个数可以灵活的弹性伸展,各物理主机上运行基于Linux的qemu-kvm虚拟化平台,运行Iibvirt开源等虚拟化中间件,是虚拟机、虚拟交换机、存储的载体。每个物理主机上运行多个虚拟机,如物理主机A上运行虚拟机VMO VMl,各虚拟机上分别运行不同的业务,比如DataBase server>web server>file server>ftp serve>mail server 等。虚拟机管理平台用于实现对所有物理主机以及物理主机上运行的虚拟机、虚拟交换机、存储等资源的统一管理。相关功能介绍如下A、实现对物理主机的增加、删除等操作。虚拟机管理平台通过ssh等远程工具来
管理物理主机。B、实现虚拟机的创建、删除、启动、停止、暂停、迁移等所有虚拟机生命周期相关的操作和管理。C、实现对虚拟机模板的管理。虚拟机模板可以由一个虚拟机转化或克隆而来。本申请实施例中对虚拟机模板的相关操作均可由虚拟机管理平台来实现。虚拟机管理平台管理一组虚拟机模板,比如winxp_templet、win7_templet>redhat6_templet等,管理员通过指定模板批量部署虚拟机,在部署虚拟机时采用backingfile技术,将模板对应的磁盘文件作为基础镜像文件,新部署的虚拟机在此基础镜像文件的基础上创建属于自己的可读写的新的磁盘文件(或称为增量镜像文件),用于保存自己的私有数据。上述系统组网属于现有虚拟机管理平台的常用组网方式,下面结合图2的虚拟机管理平台组网结构示意图,通过具体实施例对本申请方案进行进一步说明。
本申请实施例的方法流程如图3所示,一种虚拟机升级的方法,包括以下步骤步骤301 :生成每一虚拟机模板时,在该虚拟机模板对应的基础镜像文件中预留出空闲存储空间,为该虚拟机模板创建超级管理虚拟机。如图2所示,管理员可以在IE等浏览器上登录虚拟机管理平台vManager,依据具体的业务部署需要或用户群类别创建用于转为虚拟机模板的虚拟机,在创建的虚拟机上安装指定操作系统以及相应补丁、需要的应用软件等。例如,若需要针对销售业务生成虚拟机模板,则可在创建的虚拟机上安装指定操作系统、以及与销售相关的应用软件,然后将此虚拟机转为虚拟机模板,即依据销售业务生成了相应的虚拟机模板。上述过程属于现有技术,此处不再赘述。本申请实施例中,生成的任一虚拟机模板对应一个基础镜像文件,当所述基础镜像文件为qcow2格式时,数据被保存在多个簇cluster内,如图4所示。qcow2 的全称为 QEMU Copy On Write version 2,其中,QEMU 是一套由FabriceBellard所编写的开源跨平台模拟器,qcow2格式是一种常用的虚拟机磁盘镜像格式,在qcow格式上优化而来,使用qcow2格式时,数据被保存在多个簇cluster内,qcow2格式根据实际使用量来占用空间使用量,磁盘镜像文件大小随着实际使用量增长,支持快照,支持加密和压缩,是目前比较主流的磁盘镜像格式。生成任一虚拟机模板时,若该虚拟机模板对应的基础镜像文件为qcow2格式,则可以通过qemu软件的命令语句,实现在所述qcow2格式基础镜像文件中预留设定数量的空闲簇cluster,如图4所示的预留空闲区,为后续可能的系统补丁或软件升级做准备。例如,可以通过在qemu软件的qemu-1mg命令语句中增加reserve参数(也可用其它参数表示),实现在现有qcow2格式基础镜像文件的基础上预留多个clusters,比如,为基础镜像文件win7_001. qcow2预留500个cluster的空闲空间,可使用如下命令qemu-1mg reserve-clusters 500 win7-templet. qcow2每个cluster的大小根据实际需要设置,比如可以通过cluster_size参数设定。所述预留的空闲cluster的数量根据该虚拟机模板安装的操作系统、及该虚拟机模板对应的qcow2格式基础镜像文件的实际磁盘占用空间大小来确定。例如,若该虚拟机模板安装的操作系统比较稳定,假设为Linux系统,系统漏洞较少,需要打补丁的地方就越少,进行补丁升级的次数也就越少,这时可以少预留一些空闲cluster,否则,可以多预留一些空闲cluster。此外,预留的cluster数量还与该虚拟机模板对应的qcow2格式基础镜像文件的实际磁盘占用空间大小有关,比如winxp模板安装完成后磁盘占用2G、且每个cluster大小为2M;那么,可以考虑预留2G的空闲空间用于升级,即预留1000个cluster。当然,也可以使用qemu软件的其它命令语句实现上述预留空闲空间的目的。每个cluster上带有特殊标记,用于指示该cluster是为升级预留的、且只有超级管理虚拟机有写入的权限,还用于标识该cluster是否已被使用。例如,每个cluster上可带有特殊标记LabelA和LabelB, LabelA用于指不该cluster是为升级预留的、且只有超级管理虚拟机有写入的权限,LabelB用于标识该cluster是否已被使用。当然,也可以用其它方式设置每个cluster的标记,比如,也可以为每个cluster只设置一个标记,用一个比特位表示,该标记的值为I时,表示该cluster是为升级预留的、只有超级管理虚拟机有写入的权限、且该cluster未被使用,该标记的值为O时,表示该cluster是为升级预留的、只有超级管理虚拟机有写入的权限、且该cluster已被使用。本申请实施例中的基础镜像文件也可以采用其它格式,比如qcow格式、raw格式等,并不仅限于qcow2格式。为该虚拟机模板创建一个超级管理虚拟机,通过该超级管理虚拟机可以对基础镜像文件进行补丁或软件升级管理,在升级时将变化的数据写入上述预留的空闲cluster中。每个虚拟机模板都对应着一个超级管理虚拟机,该超级管理虚拟机对该虚拟机模板对应的基础镜像文件有读写权限。步骤302 :当需要对基于上述基础镜像文件创建的虚拟机中的任一虚拟机升级时,查找到该虚拟机对应的基础镜像文件,暂停所有基于该基础镜像文件创建的虚拟机,通过该基础镜像文件对应的超级管理虚拟机对该基础镜像文件进行升级,将升级时变化的数据写入该基础镜像文件预留的空闲存储空间,对基于该基础镜像文件创建的所有虚拟机进行批量升级。基于上述基础镜像文件创建虚拟机的方法为使用backing file技术基于此基础镜像文件创建虚拟机,所述创建的每一虚拟机上的镜像文件,为基于此基础镜像文件而生成的增量镜像文件。基于所述基础镜像文件创建的虚拟机的数量可以根据实际需要而定。对于创建的任何一个虚拟机,其上的镜像文件就是基于基础镜像文件而产生的增量镜像文件,用于保存该虚拟机的私有文件,且这个增量镜像文件是可读可写的,而基础镜像文件是只可读、不可写的。例如,如图2所示,管理员若需要选择在物理主机B上批量部署虚拟机,则可使用backing file技术在虚拟机模板对应基础镜像文件的基础上创建虚拟机VM2 VM5,即为每个虚拟机基于该基础镜像文件创建一个可读可写的增量镜像文件,用于保存该虚拟机的私有数据。backing file技术属于现有技术,此处不再赘述。管理员可以将上述创建的虚拟机分配给指定的用户使用,或作为一个公共虚拟机供多人使用,虚拟机运行一段时间后,需要进行系统补丁或软件升级。当虚拟机的操作系统出现漏洞时,需要对虚拟机进行补丁升级。有时也需要对虚拟机上的软件进行升级。当需要对任一虚拟机升级时,可以很容易查找到该虚拟机对应的基础镜像文件,这部分属于现有技术。该基础镜像文件对应的超级管理虚拟机,即如步骤301中所述,为该基础镜像文件所在的虚拟机模板创建的超级管理虚拟机。通过所述超级管理虚拟机对该基础镜像文件进行补丁或软件升级,将升级时变化的数据写入该基础镜像文件预留的空闲存储空间时,查找携带了所述特殊标记的空闲cluster,将升级时变化的数据写入所述cluster,更新所述cluster携带的特殊标记。如图4所示,需要先查找适用于升级的预留空闲区,因为也有可能存在一些预留空闲区是用于其它用途的,所以,需要找到专门用于升级的预留空闲区,即查找到携带了所述特殊标记的空闲cluster,接续步骤301中的举例,就是查找携带了特殊标记LabelA和LabelB、且LabelB标识为未被使用的cluster,然后将因为升级而带来变化的数据写入所述cluster。由步骤301中的示例可知,每个cluster上带有特殊标记LabelA和LabelB,LabelA用于指示该cluster是为升级预留的、且只有超级管理虚拟机有写入的权限,LabelB用于标识该cluster是否已被使用。将升级时变化的数据写入所述cluster中,还要更新所述cluster携带的特殊标记,例如,需要将LabelB更新为标识所述cluster已被使用。以补丁升级为例,在任一虚拟机上的操作系统需要补丁升级时,找出该虚拟机对应的基础镜像文件,暂停所有基于该基础镜像文件创建的虚拟机,启动所述基础镜像文件对应的超级管理虚拟机,通过所述超级管理虚拟机对所述基础镜像文件进行补丁升级操作,且在升级操作时,在该超级虚拟机内部,同补丁程序交互,获取数据变化,并能够查找到事先预留的clusters,将变化的数据写入事先预留出来的用于升级的空闲clusters中并更新特殊标记。如图4所示,将升级时变化的数据写入该基础镜像文件预留的空闲存储空间时,按补丁或软件的升级原理,会把只限于某一段二进制代码的跳转地址修改为指向补丁或软件升级之后的新的二进制代码地址,也就是说,若基础镜像文件的某部分数据(一般为一段二进制代码)在升级时发生了变化,则将发生变化了的该部分数据写入基础镜像文件的预留存储空间,并将该部分数据的跳转地址修改为指向预留存储空间中的写入地址,升级完成后,虚拟机在读磁盘操作时,当读到这部分数据时,根据上述跳转地址指向,会读取上述新地址的数据。因此,可以实现只对基础镜像文件升级,就完成了对所有基于该基础镜像文件创建的大量虚拟机的升级。升级完成后,恢复升级前暂停的所有虚拟机,即对所述暂停的所有虚拟机取消暂停操作,关闭超级管理虚拟机。这样就完成了所有虚拟机的补丁或软件升级工作。升级前之所以需要暂停所有基于该基础镜像文件创建的虚拟机,是为了保证系统补丁或软件升级之前,使用各增量镜像文件的虚拟机不会去读写因为基础镜像文件进行了系统升级而做修改的那部分内容,从而保证了基于基础镜像文件部署的所有虚拟桌面不至于受到系统补丁或软件升级的影响,可以在升级完成后不对增量镜像文件进行修改而直接使用。也就是说,虽然基础镜像文件进行了升级,发生了变化,但基于该基础镜像文件创建的所有虚拟机却可以不因该基础镜像文件的变化而改变各自的增量镜像文件,仍然可以直接使用修改后的所述基础镜像文件。目前,现有技术中,针对windows系列操作系统的虚拟机进行升级,可以使用Windows Server Update Service (WSUS)技术,该技术是微软提供的免费网络化补丁管理的统一解决方案,WSUS可以从微软公司的官方网站上自动下载最新的Windows操作系统补丁,并且可以自动分发给内网中的各终端用户,帮助管理员进行局域网内的系统补丁升级管理。WSUS采用C/S工作模式,分为WSUS服务器端和客户端,服务器端软件可以从微软网站上获取,WSUS客户端已被包含在各Windows操作系统上,无需单独安装。对于Iinux系列操作系统的虚拟机,也有类似的相关技术。这种情况下,一般是安装一个虚拟机,然后复制相应的份数,形成各个虚拟机,不是采用backing file技术基于一个基础镜像文件而生成增量镜像文件的虚拟机。上述现有技术方案虽然将管理员从大量的繁琐的手工升级工作中解脱出来,可以通过软件实现自动升级,但是,仍然需要在每一个终端虚拟机上执行升级工作,升级完成后一般都需要对虚拟机进行重启,而本申请方案无需在每个终端虚拟机上执行升级工作,只需对基础镜像文件进行升级即可,且无需对虚拟机进行重启,只需暂停就可以。相对于上述现有方案,本申请方案创建的虚拟机因为只保存该虚拟机的私有数据而可以节省存储空间,且因为无需重启而对用户使用的干预较小。本申请实施例的装置结构如图5所示,一种虚拟机升级的装置,包括存储空间预留模块、超级管理虚拟机创建模块、虚拟机创建模块和虚拟机升级模块,其中存储空间预留模块,用于生成每一虚拟机模板时,在所述虚拟机模板对应的基础镜像文件中预留出空闲存储空间;超级管理虚拟机创建模块,用于为所述虚拟机模板创建超级管理虚拟机;虚拟机创建模块,用于基于上述基础镜像文件创建虚拟机;虚拟机升级模块,用于当需要对虚拟机创建模块创建的任一虚拟机升级时,查找到该虚拟机对应的基础镜像文件,暂停所有基于该基础镜像文件创建的虚拟机,通过该基础镜像文件对应的超级管理虚拟机对该基础镜像文件进行升级,将升级时变化的数据写入该基础镜像文件预留的空闲存储空间,对基于该基础镜像文件创建的所有虚拟机进行批量升级。较佳地,所述虚拟机创建模块,具体用于基于上述基础镜像文件创建虚拟机时,使用backing file技术基于此基础镜像文件创建虚拟机,所述创建的每一虚拟机上的镜像文件,为基于此基础镜像文件而生成的增量镜像文件。较佳地,若所述基础镜像文件为qC0W2格式,所述存储空间预留模块具体用于生成任一虚拟机模板时,通过qemu软件的命令语句,实现在所述qcow2格式基础镜像文件中预留设定数量的空闲簇cluster ;每个cluster上带有特殊标记,用于指示该cluster是为升级预留的、且只有超级管理虚拟机有写入的权限,还用于标识该cluster是否已被使用。较佳地,所述存储空间预留模块预留的空闲cluster的数量,根据该虚拟机模板安装的操作系统、及该虚拟机模板对应的qcow2格式基础镜像文件的实际磁盘占用空间大小来确定,每个cluster的大小根据实际需要设置。较佳地,所述虚拟机升级模块,在将升级时变化的数据写入该基础镜像文件预留的空闲存储空间时,查找携带了所述特殊标记的空闲cluster,将升级时变化的数据写入所述cluster,更新所述cluster携带的特殊标记。本申请实施例中,为了能够实现大量虚拟机的补丁或软件升级,对虚拟机模板对应的基础镜像文件做了特殊处理,即在安装完成操作系统后,预留足够大的磁盘存储空间(多个簇cluster,比如一个cluster为2M,预留500M的空间的话,就是预留256个clusters),为后续可能的补丁或软件升级作准备。此外,预留的空闲存储空间也可以用来进行数据共享。
这样,基于虚拟机模板部署的所有的虚拟机都对这些预留的存储空间有读的权限,基于该虚拟机模板部署的虚拟机对应的可读写的增量镜像文件的内容不必由于系统补丁或软件升级而改变。也就是说,系统升级之前,使用各增量镜像文件的虚拟机不会去读写因为基础镜像文件进行了系统升级而做修改的那部分内容,从而保证了基于基础镜像文件部署的所有虚拟桌面不受到系统补丁或软件升级的影响,可以在补丁或软件升级完成后,不对增量镜像文件进行修改而直接使用增量镜像文件。如此,可以简化使用backing file技术创建的大量虚拟机的系统补丁或软件升级操作,减少升级的工作量,提高升级效率。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种虚拟机升级的方法,其特征在于,该方法包括生成每一虚拟机模板时,在该虚拟机模板对应的基础镜像文件中预留出空闲存储空间,为该虚拟机模板创建超级管理虚拟机;当需要对基于上述基础镜像文件创建的虚拟机中的任一虚拟机升级时,查找到该虚拟机对应的基础镜像文件,暂停所有基于该基础镜像文件创建的虚拟机,通过该基础镜像文件对应的超级管理虚拟机对该基础镜像文件进行升级,将升级时变化的数据写入该基础镜像文件预留的空闲存储空间,对基于该基础镜像文件创建的所有虚拟机进行批量升级。
2.根据权利要求1所述的方法,其特征在于,所述基于上述基础镜像文件创建虚拟机的方法为使用backing file技术基于此基础镜像文件创建虚拟机,所述创建的每一虚拟机上的镜像文件,为基于此基础镜像文件而生成的增量镜像文件。
3.根据权利要求1所述的方法,其特征在于,当所述基础镜像文件为qcow2格式时,所述在该虚拟机模板对应的基础镜像文件中预留出空闲存储空间,包括通过qemu软件的命令语句,实现在所述qcow2格式基础镜像文件中预留设定数量的空闲簇cluster ;每个cluster上带有特殊标记,用于指示该cluster是为升级预留的、且只有超级管理虚拟机有写入的权限,还用于标识该cluster是否已被使用。
4.根据权利要求3所述的方法,其特征在于,所述预留的空闲cluster的数量根据该虚拟机模板安装的操作系统、及该虚拟机模板对应的qcow2格式基础镜像文件的实际磁盘占用空间大小来确定,每个cluster的大小根据实际需要设置。
5.根据权利要求3所述的方法,其特征在于,所述将升级时变化的数据写入该基础镜像文件预留的空闲存储空间,包括查找携带了所述特殊标记的空闲cluster,将升级时变化的数据写入所述cluster,更新所述cluster携带的特殊标记。
6.一种虚拟机升级的装置,其特征在于,包括存储空间预留模块、超级管理虚拟机创建模块、虚拟机创建模块和虚拟机升级模块,其中存储空间预留模块,用于生成每一虚拟机模板时,在所述虚拟机模板对应的基础镜像文件中预留出空闲存储空间;超级管理虚拟机创建模块,用于为所述虚拟机模板创建超级管理虚拟机;虚拟机创建模块,用于基于上述基础镜像文件创建虚拟机;虚拟机升级模块,用于当需要对虚拟机创建模块创建的任一虚拟机升级时,查找到该虚拟机对应的基础镜像文件,暂停所有基于该基础镜像文件创建的虚拟机,通过该基础镜像文件对应的超级管理虚拟机对该基础镜像文件进行升级,将升级时变化的数据写入该基础镜像文件预留的空闲存储空间,对基于该基础镜像文件创建的所有虚拟机进行批量升级。
7.根据权利要求6所述的装置,其特征在于,所述虚拟机创建模块,具体用于基于上述基础镜像文件创建虚拟机时,使用backing file技术基于此基础镜像文件创建虚拟机,所述创建的每一虚拟机上的镜像文件,为基于此基础镜像文件而生成的增量镜像文件。
8.根据权利要求6所述的装置,其特征在于,若所述基础镜像文件为qc0W2格式,所述存储空间预留模块具体用于生成任一虚拟机模板时,通过qemu软件的命令语句,实现在所述qcow2格式基础镜像文件中预留设定数量的空闲簇cluster ;每个cluster上带有特殊标记,用于指示该 cluster是为升级预留的、且只有超级管理虚拟机有写入的权限,还用于标识该cluster是否已被使用。
9.根据权利要求8所述的装置,其特征在于,所述存储空间预留模块预留的空闲 cluster的数量,根据该虚拟机模板安装的操作系统、及该虚拟机模板对应的qcoW2格式基础镜像文件的实际磁盘占用空间大小来确定,每个cluster的大小根据实际需要设置。
10.根据权利要求8所述的装置,其特征在于,所述虚拟机升级模块,在将升级时变化的数据写入该基础镜像文件预留的空闲存储空间时,查找携带了所述特殊标记的空闲 cluster,将升级时变化的数据写入所述cluster,更新所述cluster携带的特殊标记。
全文摘要
本申请公开了一种虚拟机升级的方法,包括生成每一虚拟机模板时,在该虚拟机模板对应的基础镜像文件中预留出空闲存储空间,为该虚拟机模板创建超级管理虚拟机;当需要对基于上述基础镜像文件创建的虚拟机中的任一虚拟机升级时,查找到该虚拟机对应的基础镜像文件,暂停所有基于该基础镜像文件创建的虚拟机,通过该基础镜像文件对应的超级管理虚拟机对该基础镜像文件进行升级,将升级时变化的数据写入该基础镜像文件预留的空闲存储空间,对基于该基础镜像文件创建的所有虚拟机进行批量升级。本申请还公开了一种虚拟机升级的装置。本申请在需要对大量虚拟机进行升级时,可以极大减少升级的工作量,简化升级操作,提高效率。
文档编号G06F9/455GK102999369SQ201210574168
公开日2013年3月27日 申请日期2012年12月25日 优先权日2012年12月25日
发明者蔡志峰, 常利民, 郑雄开 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1