一种基于qcow2格式增量快照的轻量化实现方法

文档序号:10686785阅读:346来源:国知局
一种基于qcow2格式增量快照的轻量化实现方法
【专利摘要】本发明公开了基于qcow2格式增量快照的轻量化实现方法,包括以下步骤S1、以镜像模板为后备文件创建基础卷并创建基础快照;S2、以基础卷为后备文件创建相互关联的第0级子卷至第t+i级子卷;S3、对由第0级子卷所生成的多个相互关联的第t级子卷与第t+i?1级子卷之间的所有子卷至少做一次逆向合并入所述第t级子卷所对应的父卷的合并操作,将第t+i级子卷的后备文件设置为第t级子卷所对应的父卷;S4、将第0级子卷的后备文件设置为所述基础快照,将第t级子卷的后备文件作为第t?1级子卷所对应的第t?1级增量快照。通过本发明,可有效的解决因卷链过长所导致的云硬盘读写性能降低的问题,降低了计算开销。
【专利说明】
一种基于qc〇w2格式増量快照的轻量化实现方法
技术领域
[0001]本发明涉及云计算存储技术领域,尤其涉及一种基于qC0W2格式增量快照的轻量化实现方法。【背景技术】
[0002]KVM(Kernel_based Virtual Machine)内置于Linux内核,是一种基于硬件的完全虚拟化系统。KVM基本结构由KVM Driver和qemu组成。其中,KVM Driver已经成为了Linux内核的一个模块,并负责创建虚拟机、虚拟内存的分配、虚拟CPU寄存器的读/写与运行等。 qemu是运行在HOST 0S(主机操作系统)中的一个应用程序,并以宿主机文件的形式存储虚拟机硬盘数据,并提供raw和qcow2两种常用的文件格式。qcow2提供写时复制技术(copy-on_write,cow),数据块仅在更新时被分配,并提供了snapshot(快照功能)c^qemu用于模拟 PC硬件的用户空间组件,提供硬盘、网络等设备模型以及访问途径。[00〇3]云计算平台支持多种存储方式的云硬盘,qcow2是qemu所支持的一种镜像文件格式。qC0W2具有写时复制、zlib压缩,AES加密等特性,其中,基于写时复制特性实现了在云硬盘中快速创建多个系统盘镜像文件,进而开通虚拟机的流程,多个系统盘镜像文件具有共同的后备文件(base文件)。在对qcow2格式的云硬盘做快照时,其本质上是以当前active盘为后备文件(backing file)创建一个新的qcow2格式的镜像文件。
[0004]当用户增加数据时,需要频繁的将镜像文件作创建操作、删除操作。然而,镜像快照的创建操作与删除操作需要根据当前云硬盘是否处于挂载状态以及所挂载的虚拟机状态分为在线快照和离线快照。在线快照需要通过调用Libvirt的静默文件系统和创建快照接口来实现;而离线快照不需要与qemu交互,而是通过qemu-1mg工具来实现。现有技术中的这种在线快照创建操作与删除操作及增量快照功能,虽然一定程度上保证了用户与云硬盘之间的数据访问业务不中断。但是,随着快照数量的增加,多个快照之间所形成的快照链也会变长,进而使得总的卷链变长,因此会极大的影响到用户执行各种读写操作时云硬盘的读写性能;此外,由于快照链在卷链上,因此当卷处于挂载状态时,删除快照时需要与qemu 交互,从而导致开销较大,操作复杂。
[0005]参图1所示,卷链30中包含多个相互关联的子卷,被创建在后的子卷包含被创建在先的子卷中的增量数据。但是,如果要读取被创建在先的某一时刻的子卷中的数据,必须根据卷链30中多个相互关联的快照(即第i级子卷至第0级子卷)的方向进行逆向读取。因此, 当卷链30变得非常长时,就会造成读取被创建在先的某个子卷中的数据时的计算开销较大。
【发明内容】

[0006]本发明的目的在于公开一种基于qC〇w2格式增量快照的轻量化实现方法,避免因卷链过长所导致的云硬盘读写性能降低的缺陷,并简化在线增量快照的删除操作流程,降低计算开销。
[0007]为实现上述发明目的,本发明公开了一种基于qC〇w2格式增量快照的轻量化实现方法,包括以下步骤:
[0008]S1、以镜像模板为后备文件创建基础卷并创建基础快照;
[0009]S2、以基础卷为后备文件创建相互关联的第0级子卷至第t+i级子卷;
[0010]S3、对由第〇级子卷所生成的多个相互关联的第t级子卷与第t+1-1级子卷之间的所有子卷至少做一次逆向合并入所述第t级子卷所对应的父卷的合并操作,将第t+i级子卷的后备文件设置为第t级子卷所对应的父卷;
[0011]S4、将第0级子卷的后备文件设置为所述基础快照,将第t级子卷的后备文件作为第t-1级子卷所对应的第t-1级增量快照;
[0012]其中,所述t取大于或者等于1的整数,i取大于或者等于1的整数。
[0013]在一些实施方式中,所述步骤S2中的多个相互关联的子卷形成至少一条链路。 [〇〇14]在一些实施方式中,所述步骤S2中的多个相互关联的子卷呈链状架构。[〇〇15]在一些实施方式中,所述步骤S2中的多个相互关联的子卷呈树状架构。[〇〇16]在一些实施方式中,所述步骤3还包括:对由第0级子卷所生成的多个相互关联的第t级子卷与第t+1-1级子卷之间的所有子卷依次逆向合并入所述第t级子卷所对应的父卷的合并操作,将第t+i级子卷的后备文件设置为第t级子卷所对应的父卷。
[0017]在一些实施方式中,对由第0级子卷所生成的多个相互关联的第t级子卷与第t+i_ 1级子卷之间的所有子卷跳跃逆向合并入所述第t级子卷所对应的父卷的合并操作,将第t+ i级子卷的后备文件设置为第t级子卷所对应的父卷。
[0018]在一些实施方式中,所述“创建基础快照”具体为:以基础卷为输入,并利用qemu-1mg工具创建基础快照。
[0019]与现有技术相比,本发明的有益效果是:通过本发明,有效的降低了因卷链过长所导致的云硬盘读写性能降低的问题,并简化了在线增量快照的删除操作流程,降低了计算开销。【附图说明】
[0020]图1为现有技术中云硬盘经过多个快照获取周期所形成的包含增量数据及其该增量数据所对应形成的多个快照的原理图;[0021 ]图2为本发明一种基于qc〇W2格式增量快照的轻量化实现方法的流程图;[〇〇22]图3为本发明一种基于qc〇W2格式增量快照的轻量化实现方法在t取1且i取1时进行一次依次逆向合并操作以合并入基础卷中的原理图;[〇〇23]图4为图3中所获得增量快照的原理图;[〇〇24]图5为卷链中的多个子卷相互关联并形成树状架构的原理图;
[0025]图6为本发明一种基于qc〇W2格式增量快照的轻量化实现方法在进行依次逆向合并操作以合并入基础卷中的原理图;[〇〇26]图7为图6中所获得增量快照的原理图。【具体实施方式】[〇〇27]下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、 或者结构上的等效变换或替代,均属于本发明的保护范围之内。
[0028]本发明一种基于qc〇w2格式增量快照的轻量化实现方法的应用场景为虚拟化云平台中云硬盘做快照操作。云硬盘包括系统盘和数据盘,云硬盘采用qc〇w2镜像文件格式。云平台管理系统包括计算模块、存储模块,其中计算模块负责虚拟机的生命周期的管理,其底层采用QEMU-KVM Hypervisor,存储模块负责管理云硬盘及快照。云硬盘可挂载给虚拟机。
[0029]以下结合图2至图7,对qc〇W2镜像文件格式的随着后台获取快照的所设定的时间阈值T时,所获取的多个快照在在线快照的创建、离线快照的创建的具体实现过程进行详细描述,以实现对基于qc〇w2格式增量快照的轻量化实现方法。
[0030]实施例一:
[0031]如图2及图5所示,本实施方式所示出的一种基于qc〇W2格式增量快照的轻量化实现方法,包括以下步骤:步骤S1、以镜像模板10为后备文件创建基础卷20,并由基础卷20创建基础快照400;步骤S2、以基础卷20为后备文件创建相互关联的第0级子卷至第t+i级子卷 307,这些t+i+1个子卷形成了卷链30;步骤S3、对由第0级子卷311所生成的多个相互关联的第t级子卷306与第t+1-1级子卷305之间的所有子卷至少做一次逆向合并入所述第t级子卷 306所对应的父卷(即第t+1-1级子卷305)的合并操作,将第t + i级子卷307的后备文件 (backing file)设置为第t级子卷306所对应的父卷(S卩第t+1-1级子卷305);步骤S4、将第0 级子卷311的后备文件设置为所述基础快照400,将第t级子卷306的后备文件作为第t+1-1 级子卷305所对应的第t-1级增量快照;其中,所述t取大于或者等于1的整数,i取大于或者等于1的整数。
[0032]在本实施方式中,系统盘中存在有一个或者多个镜像模板10。以镜像模板10为后备文件(backing file)创建基础卷20,然后再以基础卷20为后备文件创建第0级子卷311。 以基础卷20为输入,利用qemu-1mg工具转换一个基础快照400。
[0033]云主机可在设定的时间阈值T为间隔对由第0级子卷311所创建的包含增量数据的多级子卷,多级子卷构成了如图4至图6中的卷链30。卷链30中的多个子卷形成至少一条链路。如图5所示,该卷链30中的第0级子卷311至第1级子卷301至第t+i级子卷307所形成的t+ 2个子卷依次相互关联,以形成链状架构。图5中的每一个子卷为云主机新增数据时由前一级子卷(即父卷)所创建的形成并包含增量数据的在后的子卷。例如,位于同一条卷链30上的第5级子卷与第6级子卷之间形成了该增量数据。[〇〇34]如图5所示,由基础卷20所创建并相互关联的多个子卷之间呈树状架构。第2级子卷302a与第2级子卷302b关联到第1级子卷301;第3级子卷303a与第3级子卷303b关联到第2 级子卷302a,第3级子卷303c与第3级子卷303d关联到第2级子卷302b,从而形成相互关联的多个子卷之间呈树状架构。
[0035]具体的,第3级子卷303a可沿图中虚线箭头所指方向通过第一次逆向合并操作,将增量数据合并入第2级子卷302a中,然后第2级子卷302a通过第二次逆向合并操作,将包括第2级子卷302a与第3级子卷303a的增量数据之和合并入第1级子卷301中,依次类推并执行第三次逆向合并操作及第四次逆向合并操作。此时,完成全部逆向合并操作后的基础卷20 中包含了第0级子卷311、第1级子卷301、第2级子卷302a及第3级子卷303a所形成的增量数据之和。
[0036]具体的,参图3及图4所示,图3与图4示范性的说明了执行一次逆向合并操作的完整过程,并可按图3中的数字序号①②③④⑤⑥⑦顺序执行。[〇〇37]需要说明的是,结合图5所示,第3级子卷303a可也采用跳跃逆向合并的方式与第1 级子卷301进行第一次逆向合并操作,以将第1级子卷301至第三字卷303a之间所形成的增量数据合并入第1级子卷301中,然后再将合并后所形成的第1级子卷301采用跳跃逆向合并的方式与基础卷20进行第二次逆向合并操作。此时,完成全部逆向合并操作后的基础卷20 中也包含了第0级子卷311、第1级子卷301、第2级子卷302a及第3级子卷303a所形成的增量数据之和。[〇〇38]在本实施方式中,由第0级子卷311创建了一个相互关联的第1级子卷301。以镜像模板10为后备文件创建基础卷20,以基础卷20为输入,利用qemu-1mg工具转换一个基础快照400。以基础卷20为后备文件创建相互关联的第0级子卷311,然后再以第0级子卷311为后备文件创建相互关联的第1级子卷301。对由第0级子卷311所生成的多个相互关联的第1级子卷301做一次逆向合并入所述第0级子卷311所对应的父卷(即基础卷20)的合并操作,将第0级子卷311的后备文件设置为基础快照400;最后,将第1级子卷301的后备文件作为基础卷20。将第0级子卷311重命名为第0级增量快照401。通过上述一次逆向合并操作,以形成图 4所示出的原理图。
[0039]如图4所示,在执行一次逆向合并操作后,该第0级子卷311从卷链30中消失,降低了对图5或者图6中卷链30的长度,因此可有效的降低因卷链30过长所导致的云硬盘读写性能降低的问题,并简化了在线增量快照的删除操作流程,降低了计算开销。
[0040]实施例二:
[0041]参图2、图3、图4及图7所示出的本发明一种基于qc〇W2格式增量快照的轻量化实现方法的第二种【具体实施方式】。
[0042]本发明公开了一种基于qC〇W2格式增量快照的轻量化实现方法,包括以下步骤:步骤S1、以镜像模板10为后备文件创建基础卷20并创建基础快照400;步骤S2、以基础卷20为后备文件创建相互关联的第0级子卷311至第t+i级子卷;步骤S3、对由第0级子卷311所生成的多个相互关联的第t级子卷306与第t+1-1级子卷之间的所有子卷至少做一次逆向合并入所述第t级子卷306所对应的父卷的合并操作,将第t+i级子卷的后备文件设置为第t级子卷 306所对应的父卷;步骤S4、将第0级子卷311的后备文件设置为所述基础快照400,将第t级子卷的后备文件作为第t-1级子卷所对应的第t-1级增量快照。接下来,将第t级子卷306的后备文件设置为第t_l级增量快照409;将第t级子卷306重命名为第t级增量快照410。该重命名的过程如特定子卷向下指向其对应的增量快照之间的虚线箭头所示。[〇〇43]结合实施例一所述,在本实施方式中,可形成包含基础快照400、第0级快照401、第 1级增量快照402(余略)、第t-1级增量快照409、第t级增量快照410及第t+1级增量快照411 所形成的一条与卷链30相互分离的快照链40。
[0044]在本实施方式中,所述t取大于或者等于1的整数,i取Ut可随云主机取镜像快照所设定的时间阈值T的选定,而在某个时间段内形成多个直接和/或间接的与基础卷20相关联的子卷,并与基础卷20及镜像模板10共同构成卷链30。[〇〇45]当i取1时,对由第0级子卷311所生成第1级子卷301以及多个相互关联的第t-1级子卷305、第t级子卷306与第t+1级子卷307之间的所有子卷依次逆向合并入所述第t级子卷306所对应的父卷(即第t-1级子卷305)的合并操作,将第t+1级子卷307的后备文件设置为第t级子卷306所对应的父卷。具体技术方案请参实施例一所述。[〇〇46]在执行多个子卷做逆向合并操作之前,由基础卷20所创建的多个相互关联的子卷呈链状结构,并且卷链30的长度非常长;通过该轻量化实现方法可对卷链30中的多个子卷做多次逆向合并操作。优选的,最终所形成的卷链30中仅仅包含镜像模板10、基础卷20及第 t+1级子卷307。
[0047]当i取大于1的整数时,具体的在本实施例中i取2。对由第0级子卷311所生成的多个相互关联的第t级子卷306与第t+1级子卷307之间的所有子卷跳跃逆向合并入所述第t级子卷306所对应的父卷的合并操作,将第t+1级子卷307的后备文件设置为第t级子卷306所对应的父卷。
[0048]在图7中,随着第t级子卷306至第0级子卷311之间的一次或者多次的逆向合并操作,使得整个卷链30中的子卷数量被大大限缩,从而有效的缩短了卷链30的长度,因此可有效的降低因卷链30过长所导致的云硬盘读写性能降低的问题,并简化了在线增量快照的删除操作流程,降低了计算开销。
[0049]上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
[0050]对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
[0051]此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
【主权项】
1.一种基于qc〇w2格式增量快照的轻量化实现方法,其特征在于,包括以下步骤:51、以镜像模板为后备文件创建基础卷并创建基础快照;52、以基础卷为后备文件创建相互关联的第0级子卷至第t+i级子卷;53、对由第0级子卷所生成的多个相互关联的第t级子卷与第t+1-1级子卷之间的所有 子卷至少做一次逆向合并入所述第t级子卷所对应的父卷的合并操作,将第t+i级子卷的后 备文件设置为第t级子卷所对应的父卷;54、将第0级子卷的后备文件设置为所述基础快照,将第t级子卷的后备文件作为第t-1 级子卷所对应的第t_l级增量快照;其中,所述t取大于或者等于1的整数,i取大于或者等于1的整数。2.根据权利要求1所述的基于qc〇w2格式增量快照的轻量化实现方法,其特征在于,所 述步骤S2中的多个相互关联的子卷形成至少一条链路。3.根据权利要求2所述的基于qc〇W2格式增量快照的轻量化实现方法,其特征在于,所 述步骤S2中的多个相互关联的子卷呈链状架构。4.根据权利要求2所述的基于qc〇W2格式增量快照的轻量化实现方法,其特征在于,所 述步骤S2中的多个相互关联的子卷呈树状架构。5.根据权利要求3或者4所述的基于qc〇W2格式增量快照的轻量化实现方法,其特征在 于,所述步骤3还包括:对由第0级子卷所生成的多个相互关联的第t级子卷与第t+1-1级子 卷之间的所有子卷依次逆向合并入所述第t级子卷所对应的父卷的合并操作,将第t+i级子 卷的后备文件设置为第t级子卷所对应的父卷。6.根据权利要求3或者4所述的基于qc〇W2格式增量快照的轻量化实现方法,所述步骤3 还包括:对由第0级子卷所生成的多个相互关联的第t级子卷与第t+1-1级子卷之间的所有 子卷跳跃逆向合并入所述第t级子卷所对应的父卷的合并操作,将第t+i级子卷的后备文件 设置为第t级子卷所对应的父卷。7.根据权利要求1所述的基于qc〇w2格式增量快照的轻量化实现方法,所述“创建基础 快照”具体为:以基础卷为输入,并利用qemu-1mg工具创建基础快照。
【文档编号】G06F3/06GK106055278SQ201610387923
【公开日】2016年10月26日
【申请日】2016年6月3日
【发明人】许广彬, 郑军, 张银滨, 刘晓欣, 刘志坤, 刘苏
【申请人】无锡华云数据技术服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1