创建虚拟机的方法及装置制造方法

文档序号:6499739阅读:219来源:国知局
创建虚拟机的方法及装置制造方法
【专利摘要】本发明公开了一种创建虚拟机的方法,包括以下步骤:基于虚拟机模板对应的基础镜像文件生成一个增量镜像文件,作为虚拟机的第一级增量镜像文件,基于第一级增量镜像文件生成一个增量镜像文件作为所述虚拟机的第二级增量镜像文件;将所述虚拟机对数据的最新修改保存在第二级增量镜像文件中;每当第二级增量镜像文件的存储量达到镜像文件容量阈值时,将第二级增量镜像文件中的内容合并到第一级增量镜像文件中,清除第二级增量镜像文件中的内容。本发明还公开了一种创建虚拟机的装置。本发明在提高批量虚拟机创建效率并节省磁盘空间的同时,可以提高虚拟机的磁盘访问效率。
【专利说明】创建虚拟机的方法及装置
【技术领域】
[0001]本申请涉及虚拟机【技术领域】,尤其涉及创建虚拟机的方法及装置。
【背景技术】
[0002]随着硬件速度的不断提高,服务器性能大大提升,数据中心中的部分服务器的使用率有所下降,为了提高服务器硬件利用率,降低数据中心的运维成本,近年来,虚拟化技术得到了很大的发展,其中,虚拟机的使用日益普遍。
[0003]虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件,我们可以在一台物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如可以安装操作系统、安装应用程序、访问网络资源等等。从用户的角度看,它只是运行在你物理计算机上的一个应用程序,但是对于在虚拟机中运行的应用程序而言,它就像是在真正的计算机中进行工作。目前主要的虚拟机平台有VMware、Xen、Hyper-V、KVM等。
[0004]在虚拟化过程中,创建虚拟机的通常做法是为虚拟机指定一个已安装操作系统的镜像,然后通过虚拟化平台进行加载。在同一个物理主机(宿主机)上运行多个功能完全一样的虚拟机时,通过克隆的方式从已有的镜像生成多个相互独立的镜像,也就是完全复制所述已有的镜像,得到多个功能完全相同的、但相互独立的镜像,从而达到运行多个虚拟机的目的。
[0005]采用上述创建虚拟机的方式会产生如下问题:对于大规模的虚拟化节点(虚拟化服务器)的情况,存在多个虚拟化节点、且每个虚拟机节点上都存在多个克隆的镜像,此时,用于存储虚拟机镜像文件的存储空间将变得非常庞大。比如,一台物理主机(即一个虚拟化节点)上运行了 10个虚拟机,假设每个虚拟机镜像为4GB,将需要40GB的存储空间,假如整个云中有1000台这样的物理主机,存储设备的开销将变得非常庞大。而且,由于每次创建虚拟机都需要对已有镜像文件进行完全的复制,导致创建虚拟机的效率低下。
[0006]目前存在另一种方案,可以节省磁盘空间并提高虚拟机的创建效率,该方案如下:基于基础镜像文件创建虚拟机,所述虚拟机上的镜像文件为基于所述基础镜像文件生成的增量镜像文件(即不同于基础镜像的私有数据),每当对虚拟机进行一次升级,其增量镜像文件就增加一级,因此,一个虚拟机镜像文件分为基础镜像及多级增量镜像。
[0007]这里首先需要创建一个基础镜像(base image),里面把各个虚拟机都需要的环境搭建好,由于不同于基础镜像的数据相对较少,因此,在进行虚拟机克隆、备份等操作时,就可以只对增量数据进行克隆或备份,形成增量镜像,增量镜像文件在进行多次升级后形成多级增量镜像文件。在读虚拟机磁盘操作时,先从多级增量镜像文件中读取,如果没有,再从基础镜像文件中读取;在写数据时,总是写入增量镜像文件中,也就是说,虚拟机对镜像中所有的改变都记录在多级增量镜像文件里面,基础镜像文件始终保持不变,从而可以实现虚拟机的快速部署,提高了虚拟机创建效率,也节省了磁盘空间。
[0008]但采用上述方案部署虚拟机时,对每一个虚拟机的增量镜像文件的级数没有进行控制,在读虚拟机磁盘操作时,先从多级增量镜像文件中一级一级读取,如果没有,最后才从基础镜像文件中读取。例如,一个虚拟机的增量镜像文件存在10级,如果要读取的文件位于基础镜像文件中,则需要查找10次,即从第10级增量镜像文件开始读取,没有读取到需要的数据时,再读取第9级增量镜像文件,如此下去,直至读取完第I级增量镜像文件后,才能读取基础镜像,查找到需要的数据,从而导致虚拟机的磁盘访问效率低下。
[0009]此外,当虚拟机的增量镜像级数较多时,对虚拟机的备份、恢复及维护操作均会涉及到增量镜像的每一级,导致虚拟机的备份、恢复及虚拟机镜像维护都比较困难。

【发明内容】

[0010]有鉴于此,本申请提出一种创建虚拟机的方法,在提高批量虚拟机创建效率并节省磁盘空间的同时,可以提高虚拟机的磁盘访问效率。
[0011]本申请还提出一种创建虚拟机的装置,在提高批量虚拟机创建效率并节省磁盘空间的同时,可以提高虚拟机的磁盘访问效率。
[0012]为达到上述目的,本申请实施例的技术方案是这样实现的:
[0013]一种创建虚拟机的方法,包括以下步骤:
[0014]基于虚拟机模板对应的基础镜像文件生成一个内容为空的增量镜像文件,作为虚拟机的第一级增量镜像文件,基于所述第一级增量镜像文件生成一个内容为空的增量镜像文件,作为所述虚拟机的第二级增量镜像文件;
[0015]将所述虚拟机对数据的最新修改保存在第二级增量镜像文件中;
[0016]每当第二级增量镜像文件的存储量达到镜像文件容量阈值时,将第二级增量镜像文件中的内容合并到第一级增量镜像文件中,清除第二级增量镜像文件中的内容。
[0017]一种创建虚拟机的装置,包括:增量镜像创建模块、修改保存模块、增量镜像处理模块,其中:
[0018]增量镜像创建模块,用于基于虚拟机模板对应的基础镜像文件生成一个内容为空的增量镜像文件,作为虚拟机的第一级增量镜像文件,基于所述第一级增量镜像文件生成一个内容为空的增量镜像文件,作为所述虚拟机的第二级增量镜像文件;
[0019]修改保存模块,用于将所述虚拟机对数据的最新修改保存在第二级增量镜像文件中;
[0020]增量镜像处理模块,用于每当第二级增量镜像文件的存储量达到镜像文件容量阈值时,将第二级增量镜像文件中的内容合并到第一级增量镜像文件中,清除第二级增量镜像文件中的内容。
[0021]本申请的有益效果为,通过使用两级增量镜像文件来实现虚拟机,虚拟机每次修改的最新数据保存在基于第一级增量镜像文件生成的第二级增量镜像文件中,每当第二级增量镜像文件的存储量达到镜像文件容量阈值时,将其合并到基于基础镜像生成的第一级增量镜像文件中,然后清除第二级增量镜像文件中的内容。如此,在读虚拟机磁盘操作时,如果待查找的数据位于基础镜像中,只需要查找两次,就可以读取到基础镜像。从而在大量部署虚拟机时,既可以提高虚拟机创建效率、节省磁盘空间,又可以极大地提高虚拟机的磁盘访问效率。【专利附图】

【附图说明】
[0022]图1为本申请实施例的方法流程图;
[0023]图2为现有backing file技术原理说明示意图;
[0024]图3为本申请实施例的虚拟机对其增量镜像文件的最新修改处理示意图;
[0025]图4为本申请实施例的虚拟机对两级增量镜像文件的处理过程示意图;
[0026]图5-1为本申请实施例的增量镜像文件第一次合并过程示意图;
[0027]图5-2为本申请实施例的增量镜像文件第二次合并过程示意图;
[0028]图5-3为本申请实施例的增量镜像文件第三次合并过程示意图;
[0029]图5-4为本申请实施例的三次合并后得到的第一级增量镜像文件示意图;
[0030]图6为本申请实施例的装置功能模块结构示意图。
【具体实施方式】
[0031]为了使本申请的目的、技术方案及优点更加清楚明白,以下通过具体实施例并参见附图,对本申请进行详细说明。
[0032]本申请在创建虚拟机时,基于虚拟机模板对应的基础镜像文件生成一个内容为空的增量镜像文件,作为虚拟机的第一级增量镜像文件,基于所述第一级增量镜像文件生成一个内容为空的增量镜像文件,作为所述虚拟机的第二级增量镜像文件;
[0033]将所述虚拟机对数据的最新修改保存在第二级增量镜像文件中;
[0034]每当第二级增量镜像文件的存储量达到镜像文件容量阈值时,将第二级增量镜像文件中的内容合并到第一级增量镜像文件中,清除第二级增量镜像文件中的内容。
[0035]本申请通过使用两级增量镜像文件来实现虚拟机,每个虚拟机对应两级增量镜像文件,这两级增量镜像文件包括:基于基础镜像文件生成的增量镜像文件作为第一级增量镜像文件、以及基于第一级增量镜像文件生成的第二级增量镜像文件,虚拟机每次修改的数据都保存在第二级增量镜像文件中,因此,第二级增量镜像文件量会不断增大,每当第二级增量镜像文件的存储量达到预先设定的镜像文件容量阈值时,将其合并到第一级增量镜像文件中,同时清除第二级增量镜像文件中的内容。如此,在读虚拟机磁盘操作时,如果待查找的数据位于基础镜像中,只需要查找两次,就可以读取到基础镜像文件。从而在大量部署虚拟机时,既可以提高虚拟机创建效率、节省磁盘空间,又可以极大地提高虚拟机的磁盘访问效率。
[0036]本申请实施例的方法流程如图1所示,一种创建虚拟机的方法,包括以下步骤:
[0037]步骤101:基于虚拟机模板对应的基础镜像文件生成一个内容为空的增量镜像文件,作为虚拟机的第一级增量镜像文件,基于所述第一级增量镜像文件生成一个内容为空的增量镜像文件,作为所述虚拟机的第二级增量镜像文件。
[0038]虚拟机管理平台管理一组虚拟机模板,比如winxp_templet、win7_templet>redhat6_templet等等,管理员通过指定模板批量创建虚拟机,将虚拟机模板对应的磁盘文件作为基础镜像文件,基础镜像文件保存到共享存储中,在创建虚拟机时,使用backingfile技术基于所述基础镜像文件生成增量镜像文件。
[0039]本申请实施例中的增量镜像文件可以采用qcow2格式,qcow2的全称为QEMUCopyOn Write version2,其中,QEMU是一套由Fabrice Bellard所编写的开源跨平台模拟器,qcow2格式是一种常用的虚拟机磁盘镜像格式,在qcow格式上优化而来,使用qcow2格式时,数据被保存在多个簇cluster内,qcoW2格式根据实际使用量来占用空间使用量,磁盘镜像文件大小随着实际使用量增长,支持快照,支持加密和压缩,是目前比较主流的磁盘镜像格式。本申请实施例中的增量镜像文件也可以采用其它格式,比如qcow格式、raw格式等,并不仅限于qcow2格式。
[0040]使用backing file技术可以基于基础镜像文件生成增量镜像文件,因此,现有技术中,往往使用backing file技术大量部署虚拟机。backing file技术的基本原理就是:基于一个基础文件产生一个增量文件,用于存储后续虚拟机写入的用户私有数据,因此,在进行虚拟机克隆、备份等操作时,就可以只对增量数据(即不同于基础镜像的私有数据)进行克隆或备份,形成增量镜像,现有技术中每个增量镜像对应一个虚拟机。在读虚拟机磁盘操作时,先从增量镜像文件中读取,如果没有,再从基础镜像文件中读取;在写数据时,总是写入增量镜像文件中,也就是说,虚拟机对镜像中所有的改变都记录在增量镜像文件里面,基础镜像文件始终保持不变,从而可以实现虚拟机的快速部署,节省磁盘空间。
[0041]例如,如图2所示,master disk image是一个通用的只读的qcow2格式虚拟机基础镜像文件,可以基于master disk image创建虚拟机win7_001和win7_002,即根据backing file 技术,win7_001 和 win7_002 上的镜像文件 win7_001.q cow2> win7_002.qcow2是基于master disk image产生的qcow2格式增量镜像文件。以虚拟机win7_001为例,在读磁盘操作时,先从win7_001.qcow2中读取,如果没有,再从win7_base.qcow2中读取;在写数据时,总是写入win7_001.qcow2, win7_base.qcow2始终保持不变。
[0042]本申请实施例采用backing file技术基于基础镜像文件生成一个内容为空的增量镜像文件,但所生成的增量镜像文件并不是对应一个虚拟机,而是将所生成的增量镜像文件作为虚拟机的第一级增量镜像文件,同时,采用backing file技术基于所述第一级增量镜像文件生成一个内容为空的增量镜像文件,作为所述虚拟机的第二级增量镜像文件。所以,一个虚拟机对应两级增量镜像文件,这两级增量镜像文件用于保存所述虚拟机的私有数据,基础镜像文件对于虚拟机来说是只读的。由于使用了 backing file技术,因此,本申请实施例方案同样可以提高虚拟机的创建效率,实现虚拟机的快速部署,并节省磁盘空间。
[0043]根据backing file技术,初始生成的第一级增量镜像文件和第二级增量镜像文件均为空白的增量镜像文件,初始生成时指明了第一级增量镜像文件是基于基础镜像文件生成的,第二级增量镜像文件是基于第一级增量镜像文件生成的,即标记了各个增量镜像文件是基于什么源文件生成的,从而在读磁盘操作时,根据所述标记,就可以顺序读取镜像文件,即先从第二级增量镜像文件开始读取,如果没有查找到需要的数据,则继续读取第一级增量镜像文件进行查找,如果仍没有找到需要的数据,则最后读取基础镜像文件。backingfile技术属于现有技术,此处不多赘述。
[0044]基于基础镜像文件生成一个内容为空的增量镜像文件作为所述虚拟机的第一级增量镜像文件,可以设置第一级增量镜像文件的空间是可自动扩展的。第一级增量镜像文件用于在后续的合并操作中存储第二级增量镜像的私有数据,实现对私有数据的有效保护,以及更及时地备份私有数据。因为基础镜像文件一般是保存在共享存储中,需要保护的私有数据不可能保存于基础镜像中,所以,需要另外创建一个增量镜像文件作为第一级增量镜像文件,专门用于保存虚拟机的私有数据,即第一级增量镜像文件预留为增量镜像文件后续合并时的目的存储文件。
[0045]步骤102:将所述虚拟机对数据的最新修改保存在第二级增量镜像文件中。
[0046]虚拟机对数据的最新修改主要指虚拟机对系统内容的修改。
[0047]如图3所示,所述虚拟机对数据的最新修改保存在第二级增量镜像文件中。
[0048]步骤103:每当第二级增量镜像文件的存储量达到镜像文件容量阈值时,将第二级增量镜像文件中的内容合并到第一级增量镜像文件中,清除第二级增量镜像文件中的内容。
[0049]由于虚拟机对其增量镜像文件的最新修改保存在第二级增量镜像文件中,第二级增量镜像文件的存储量会不断增加,预先根据实际需要为第二级增量镜像文件设置一个镜像文件容量阈值,如图4所示,每当第二级增量镜像文件的存储量达到镜像文件容量阈值时,将第二级增量镜像文件中的内容合并到第一级增量镜像文件中。合并操作后,第二级增量镜像文件的内容还存在,因此,需要清除第二级增量镜像文件中的内容。
[0050]所述将第二级增量镜像文件中的内容合并到第一级增量镜像文件中时,所述合并的操作可通过Libvirt (支持Linux下主流虚拟化工具的C函数库,其旨在为包括Xen在内的各种虚拟化工具提供一套方便、可靠的编程接口)来实现,例如,可以增加virshblockcommit domain命令,实现对所述虚拟机的所有镜像文件(即第一级增量镜像文件和第二级增量镜像文件)执行commit功能,虚拟机运行和停机时均可调用。当虚拟机运行时,Libvirt将向QEMU发送commit all命令;当虚拟机停机时,Libvirt对第一级增量镜像文件和第二级增量镜像文件分别调用qemu-1mg commit命令。
[0051]所述清除第二级增量镜像文件中的内容时,清除的操作可通过如下方式实现:
[0052]在QEMU进行上述commit操作时,也就是将第二级增量镜像文件中的内容合并到第一级增量镜像文件中的同时,清空当前的第二级增量镜像文件中的内容。
[0053]对于虚拟机应用中涉及到的一些重要数据,比如银行数据、容灾数据等,为了保护这些重要的私有数据,需要间隔一段时间就备份一次数据,备份的数据可以存放在与虚拟机所在磁盘不同的存储空间中,数据越重要,备份频率越高,而且每次需要及时、快速备份这些数据。数据备份可以增加数据安全性,是绝大多数虚拟机应用中不可缺少的部分,如何快速备份数据显得至关重要。
[0054]因此,本申请实施例中,所述将第二级增量镜像文件中的内容合并到第一级增量镜像文件中之前,可以对第二级增量镜像文件中的内容进行备份,也就是将第二级增量镜像文件中的内容复制到备份的目的存储空间。此处为定时备份,也就是周期性备份。当所述对第二级增量镜像文件内容进行的备份为所述虚拟机第一次对其第二级增量镜像文件进行备份时,还需要对所述基础镜像文件进行备份。
[0055]上述现有技术中,一个虚拟机只对应一个增量镜像文件,每次备份时直接对此增量镜像文件进行备份,而此增量镜像文件的存储量会因为数据修改而不断增多,从而导致备份所需要的时间越来越长,不利于类似银行、容灾等应用中重要数据的快速备份,而每次快速备份对于这些重要数据的保护是至关重要的。
[0056]但采用本申请实施例方案,可以实现对增量镜像文件内容的快速备份。本申请实施例方案中,对第二级增量镜像文件设置了镜像文件容量阈值,每当第二级增量镜像文件的存储量超过所述阈值时,对所述第二级增量镜像文件进行备份,可以防止第二级增量镜像文件的存储量不断增大,每次备份数据时,数据量不大,从而可以实现每次对增量镜像文件的快速备份。
[0057]进一步地,实际应用中,往往需要根据实际需要及时备份一些重要的私有数据,因此,有可能出现这样的情况:第二级增量镜像文件还未达到镜像文件容量阈值,就需要对其进行备份,即不定时备份。此时,作为本申请的较佳实施例,采用如下处理方式:
[0058]每当需要对所述虚拟机的增量镜像文件进行备份时,将第二级增量镜像文件中的内容进行备份,将第二级增量镜像文件中的内容合并到第一级增量镜像文件中,清除第二级增量镜像文件中的内容。
[0059]为保证重要数据的及时备份,定时备份和不定时备份可以同时存在,同时存在时,当所述对第二级增量镜像文件内容进行的备份为所述虚拟机第一次对其第二级增量镜像文件进行备份时,对所述基础镜像文件进行备份。
[0060]进行虚拟机的增量备份时,若虚拟机正在运行,则暂停虚拟机,使虚拟机磁盘达到相对一致的状态。然后,检查虚拟机是否是第一次进行增量备份,如果是第一次进行增量备份,则可以先备份基础镜像文件,再对第二级增量镜像文件中的内容进行备份,将第二级增量镜像文件中的内容合并到第一级增量镜像文件中,清除第二级增量镜像文件中的内容。
[0061]之所以不定时备份时也进行增量镜像文件的合并,是为了保证每次不定时备份的数据量不会太大,从而可以保证每次快速备份,同时也是为了避免后续当第二级增量镜像文件的存储量达到镜像文件容量阈值时,对已备份过的数据进行重复备份。
[0062]当需要恢复所述虚拟机时,比如,当所述虚拟机的增量镜像文件所在磁盘损坏而需要恢复所述虚拟机时,删除当前的第一级增量镜像文件和第二级增量镜像文件,获取已备份的基础镜像文件及所有第二级增量镜像文件;
[0063]使用backing file技术基于所述基础镜像文件生成一个内容为空的增量镜像文件,作为所述虚拟机新的第一级增量镜像文件,将所述已备份的所有第二级增量镜像文件合并到所述新的第一级增量镜像文件,使用backing file技术基于所述新的第一级增量镜像文件生成一个内容为空的增量镜像文件,作为所述虚拟机新的第二级增量镜像文件。
[0064]例如,虚拟机的增量镜像文件所在磁盘突然损坏而需要恢复所述虚拟机,若虚拟机正在运行,则先关闭虚拟机,删除当前已损坏的第一级增量镜像文件和第二级增量镜像文件,获取已备份的虚拟机的基础镜像文件及所有第二级增量备份文件,也就是虚拟机的历史增量备份文件。基于所述基础镜像文件重新生成一个增量镜像文件作为新的第一级增量镜像文件,然后将备份的所有第二级增量镜像文件依次合并到所述新的第一级增量镜像文件中,假如虚拟机的第二级增量镜像文件已经备份过三次,则需要合并三次。
[0065]第一次合并的过程如图5-1所示,将已备份的第二级增量镜像文件I合并到新建的第一级增量镜像文件中,第二次合并的过程如图5-2所示,将已备份的第二级增量镜像文件2合并到所述第一级增量镜像文件中,第三次合并的过程如图5-3所示,将已备份的第二级增量镜像文件3合并到所述第一级增量镜像文件中。从而得到三次合并后的第一级增量镜像文件如图5-4所示。合并后的镜像文件作为恢复后的虚拟机的第一级增量镜像文件,同时,基于所述合并后的第一级增量镜像文件生成一个空白的增量镜像文件作为恢复后的虚拟机的第二级增量镜像文件。
[0066]采用本申请实施例方案,在大批量部署虚拟机时,由于共用一份基础镜像文件,只需要生成两个增量镜像文件就可部署一个虚拟机,从而可以提高虚拟机的部署效率,节省虚拟机占用的存储空间,并且可以提高虚拟机的磁盘访问效率。且由于每次对虚拟机进行增量备份时需要备份的数据较少,可以提高虚拟机增量镜像的备份效率。另外,由于每个虚拟机只将修改的数据保存到各自的增量镜像文件中,还能够有效地保护用户的私有数据。
[0067]此外,采用本申请实施例方案,还可以实现虚拟机的快速克隆及离线迁移。由于基础镜像文件保存在共享存储上,所有的物理主机都能访问,所以不论是本地克隆虚拟机还是异地克隆虚拟机,都只需将第一、二级增量镜像文件进行克隆即可。同样的离线迁移也只需要将第一、二级增量镜像文件迁移到目的主机即可。从而可以提高虚拟机的克隆效率及离线迁移效率。
[0068]本申请实施例的装置功能模块结构示意图如图6所示,一种创建虚拟机的装置,包括:增量镜像创建模块、修改保存模块、增量镜像处理模块,其中:
[0069]增量镜像创建模块,用于基于虚拟机模板对应的基础镜像文件生成一个内容为空的增量镜像文件,作为虚拟机的第一级增量镜像文件,基于所述第一级增量镜像文件生成一个内容为空的增量镜像文件,作为所述虚拟机的第二级增量镜像文件;
[0070]修改保存模块,用于将所述虚拟机对数据的最新修改保存在第二级增量镜像文件中;
[0071]增量镜像处理模块,用于每当第二级增量镜像文件的存储量达到镜像文件容量阈值时,将第二级增量镜像文件中的内容合并到第一级增量镜像文件中,清除第二级增量镜像文件中的内容。
[0072]较佳地,所述增量镜像处理模块在将第二级增量镜像文件中的内容合并到第一级增量镜像文件中之前,进一步用于:
[0073]对第二级增量镜像文件中的内容进行备份。
[0074]较佳地,所述装置进一步包括:
[0075]增量镜像备份模块,用于每当需要对所述虚拟机的增量镜像文件进行备份时,对第二级增量镜像文件中的内容进行备份,将第二级增量镜像文件中的内容合并到第一级增量镜像文件中,清除第二级增量镜像文件中的内容。
[0076]较佳地,所述装置进一步包括:
[0077]基础镜像备份模块,用于当所述对第二级增量镜像文件进行的备份为所述虚拟机第一次对其第二级增量镜像文件进行备份时,对所述基础镜像文件进行备份。
[0078]较佳地,所述装置进一步包括:
[0079]虚拟机恢复模块,用于当需要恢复所述虚拟机时,删除当前的第一级增量镜像文件和第二级增量镜像文件,获取已备份的基础镜像文件及所有第二级增量镜像文件;
[0080]基于所述基础镜像文件生成一个内容为空的增量镜像文件,作为所述虚拟机新的第一级增量镜像文件,将所述已备份的所有第二级增量镜像文件合并到所述新的第一级增量镜像文件,基于所述新的第一级增量镜像文件生成一个内容为空的增量镜像文件,作为所述虚拟机新的第二级增量镜像文件。
[0081]较佳地,所述增量镜像创建模块使用backing file技术基于所述基础镜像文件生成一个内容为空的增量镜像文件,使用backing file技术基于所述第一级增量镜像文件生成一个内容为空的增量镜像文件。
[0082]本申请实施例中,将创建虚拟机模板对应的磁盘镜像文件作为基础镜像文件,该文件只读,同时将基础镜像文件保存在共享存储中,同一类型的虚拟机共用一个基础镜像文件。部署虚拟机时,创建两个增量镜像文件,分为第一级增量镜像文件及第二级增量镜像文件。虚拟机对数据的最新修改只保存到第二级增量磁盘文件中。每当第二级增量镜像文件的存储量达到镜像文件容量阈值时,将第二级增量镜像文件中的内容合并到第一级增量镜像文件中,清除第二级增量镜像文件中的内容。当需要进行虚拟机的增量备份时,对所述第二级增量镜像文件进行备份,将第二级增量镜像文件中的内容合并到第一级增量镜像文件中,清除第二级增量镜像文件中的内容。
[0083]采用本申请方案,在大量部署虚拟机时,既可以快速部署虚拟机并提高硬盘空间利用率,又能提高虚拟机操作系统运行读写硬盘的效率,此外,还可以实现虚拟机的快速增量备份。
[0084]以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
【权利要求】
1.一种创建虚拟机的方法,其特征在于,包括以下步骤: 基于虚拟机模板对应的基础镜像文件生成一个内容为空的增量镜像文件,作为虚拟机的第一级增量镜像文件,基于所述第一级增量镜像文件生成一个内容为空的增量镜像文件,作为所述虚拟机的第二级增量镜像文件; 将所述虚拟机对数据的最新修改保存在第二级增量镜像文件中; 每当第二级增量镜像文件的存储量达到镜像文件容量阈值时,将第二级增量镜像文件中的内容合并到第一级增量镜像文件中,清除第二级增量镜像文件中的内容。
2.根据权利要求1所述的方法,其特征在于,所述将第二级增量镜像文件中的内容合并到第一级增量镜像文件中之前,进一步包括: 对第二级增量镜像文件的内容进行备份。
3.根据权利要求1所述的方法,其特征在于,所述将虚拟机对数据的最新修改保存在第二级增量镜像文件中之后,进一步包括: 每当需要对所述虚拟机的增量镜像文件进行备份时,对第二级增量镜像文件中的内容进行备份,将第二级增量镜像文件中的内容合并到第一级增量镜像文件中,清除第二级增量镜像文件中的内容。
4.根据权利要求2或3所述的方法,其特征在于,当所述对第二级增量镜像文件进行的备份为所述虚拟机第一次对其第二级增量镜像文件进行备份时,对所述基础镜像文件进行备份。
5.根据权利要求4所述的方法,其特征在于,所述方法进一步包括: 当需要恢复所述虚拟机时,删除当前的第一级增量镜像文件和第二级增量镜像文件,获取已备份的基础镜像文件及所有第二级增量镜像文件; 基于所述基础镜像文件生成一个内容为空的增量镜像文件,作为所述虚拟机新的第一级增量镜像文件,将所述已备份的所有第二级增量镜像文件合并到所述新的第一级增量镜像文件中,基于所述新的第一级增量镜像文件生成一个内容为空的增量镜像文件,作为所述虚拟机新的第二级增量镜像文件。
6.根据权利要求1或5所述的方法,其特征在于,所述基于基础镜像文件生成一个内容为空的增量镜像文件、以及基于第一级增量镜像文件生成一个内容为空的增量镜像文件的方法为: 使用backing file技术基于所述基础镜像文件生成一个内容为空的增量镜像文件,使用backing file技术基于所述第一级增量镜像文件生成一个内容为空的增量镜像文件。
7.一种创建虚拟机的装置,其特征在于,包括:增量镜像创建模块、修改保存模块、增量镜像处理模块,其中: 增量镜像创建模块,用于基于虚拟机模板对应的基础镜像文件生成一个内容为空的增量镜像文件,作为虚拟机的第一级增量镜像文件,基于所述第一级增量镜像文件生成一个内容为空的增量镜像文件,作为所述虚拟机的第二级增量镜像文件; 修改保存模块,用于将所述虚拟机对数据的最新修改保存在第二级增量镜像文件中; 增量镜像处理模块,用于每当第二级增量镜像文件的存储量达到镜像文件容量阈值时,将第二级增量镜像文件中的内容合并到第一级增量镜像文件中,清除第二级增量镜像文件中的内容。
8.根据权利要求7所述的装置,其特征在于,所述增量镜像处理模块在将第二级增量镜像文件中的内容合并到第一级增量镜像文件中之前,进一步用于: 对第二级增量镜像文件中的内容进行备份。
9.根据权利要求7所述的装置,其特征在于,所述装置进一步包括: 增量镜像备份模块,用于每当需要对所述虚拟机的增量镜像文件进行备份时,对第二级增量镜像文件中的内容进行备份,将第二级增量镜像文件中的内容合并到第一级增量镜像文件中,清除第二级增量镜像文件中的内容。
10.根据权利要求8或9所述的装置,其特征在于,所述装置进一步包括: 基础镜像备份模块,用于当所述对第二级增量镜像文件进行的备份为所述虚拟机第一次对其第二级增量镜像文件进行备份时,对所述基础镜像文件进行备份。
11.根据权利要求10所述的装置,其特征在于,所述装置进一步包括: 虚拟机恢复模块,用于当需要恢复所述虚拟机时,删除当前的第一级增量镜像文件和第二级增量镜像文件,获取已备份的基础镜像文件及所有第二级增量镜像文件; 基于所述基础镜像文件生成一个内容为空的增量镜像文件,作为所述虚拟机新的第一级增量镜像文件,将所述已备份的所有第二级增量镜像文件合并到所述新的第一级增量镜像文件,基于所述新的第一级增量镜像文件生成一个内容为空的增量镜像文件,作为所述虚拟机新的第二级增量镜像文件。
12.根据权利要求7或11所述的装置,其特征在于,所述增量镜像创建模块使用backing file技术基于所述基础镜像文件生成一个内容为空的增量镜像文件,使用backing file技术基于所述第一级增量镜像文件生成一个内容为空的增量镜像文件。
【文档编号】G06F9/455GK103970585SQ201310042901
【公开日】2014年8月6日 申请日期:2013年1月31日 优先权日:2013年1月31日
【发明者】郑雄开 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1