基于虚拟磁盘文件的流式增量备份方法及装置与流程

文档序号:15998880发布日期:2018-11-20 19:11阅读:157来源:国知局

本发明涉及云计算、虚拟化、增量备份、灾备的技术领域,尤其涉及基于虚拟磁盘文件的流式增量备份方法及装置。



背景技术:

虚拟磁盘文件通常由元数据和数据部分构成,元数据以块为单位管理数据,通常一个元数据单位可以管理多个数据块。

增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的数据,现在的导致增量技术通常在识别到第一个差异数据块分配并输出一个元数据单位,之后如果再属于这个元数据单位管理的数据块时,输出这个数据块的同时修改之前已经输出的元数据单位,这就要求输出的目标端需要有随机写入的特性,通常是文件系统。

但如果输出的目标端是流式(比如对象存储,通过http网络协议访问),不具备随机写,只有追加写的功能时,就无法满足,或者只能先完整输出到文件系统后,再以流式上传。

现有技术方案通过先完整输出到文件系统,之后再流式上传,其缺点是,文件系统会成为可靠性、性能以及容量的瓶颈,尤其在并发量大的情况更为严重。



技术实现要素:

为了克服现有技术的不足,本发明的目的在于提供基于虚拟磁盘文件的流式增量备份方法及装置,旨在解决现有的文件系统中转带来的文件系统本身的不可靠、容量占用大、性能不高的问题。

本发明的目的采用以下技术方案实现:

一种基于虚拟磁盘文件的流式增量备份方法,包括:

确定步骤,扫描需要备份的增量文件链中虚拟磁盘文件元数据,计算出差异数据量,并根据差异数据量确定元数据偏移量;所述增量文件链为具有链式关系的增量虚拟磁盘文件;所述元数据偏移量包括每个元数据在最终输出的虚拟磁盘文件流的偏移量;

存放步骤,在内存中开辟一块连续区域用以存放元数据;

输出步骤,扫描内存中的元数据,如果元数据显示数据有差异,则根据元数据信息读取差异数据并输出到虚拟磁盘文件流,且输出差异数据时并不输出元数据,只更新内存中的元数据;完成差异数据输出后,根据元数据偏移量,最终输出内存中的元数据到虚拟磁盘文件流。

在上述实施例的基础上,优选的,所述确定步骤后,还包括:

头部步骤,输出增量文件链的头部到虚拟磁盘文件流,所输出的头部包含元数据偏移量。

在上述任意实施例的基础上,优选的,所述存放步骤,还包括:

将所开辟的连续区域初始化为零。

在上述任意实施例的基础上,优选的,所述确定步骤中,元数据偏移量满足:使元数据位于最终输出的虚拟磁盘文件流的末端。

或者,优选的,所述确定步骤中,每个元数据对应若干数据块,元数据偏移量满足:使每个元数据位于最终输出的虚拟磁盘文件流中,且位于该元数据相应的若干数据块之后。

一种基于虚拟磁盘文件的流式增量备份装置,包括:

确定模块,用于扫描需要备份的增量文件链中虚拟磁盘文件元数据,计算出差异数据量,并根据差异数据量确定元数据偏移量;所述增量文件链为具有链式关系的增量虚拟磁盘文件;所述元数据偏移量包括每个元数据在最终输出的虚拟磁盘文件流的偏移量;

存放模块,用于在内存中开辟一块连续区域用以存放元数据;

输出模块,用于扫描内存中的元数据,如果元数据显示数据有差异,则根据元数据信息读取差异数据并输出到虚拟磁盘文件流,且输出差异数据时并不输出元数据,只更新内存中的元数据;完成差异数据输出后,根据元数据偏移量,最终输出内存中的元数据到虚拟磁盘文件流。

在上述实施例的基础上,优选的,还包括:

头部模块,用于输出增量文件链的头部到虚拟磁盘文件流,所输出的头部包含元数据偏移量。

在上述任意实施例的基础上,优选的,所述存放模块,还用于:

将所开辟的连续区域初始化为零。

在上述任意实施例的基础上,优选的,元数据偏移量满足:使元数据位于最终输出的虚拟磁盘文件流的末端。

或者,优选的,每个元数据对应若干数据块,元数据偏移量满足:使每个元数据位于最终输出的虚拟磁盘文件流中,且位于该元数据相应的若干数据块之后。

相比现有技术,本发明的有益效果在于:

本发明公开了基于虚拟磁盘文件的流式增量备份方法及装置,扫描增量文件链中虚拟磁盘文件元数据,提前计算好差异数据量,以确定元数据在整个输出的虚拟磁盘文件流的偏移量;在内存中开辟一块连续区域用以存放元数据;输出差异数据时并不输出元数据,只更新内存中的元数据,在完成全部扫描将所有差异数据输出后输出内存中的元数据,优选的,元数据在虚拟磁盘文件流中的位置可以在整个流的末端,也可以在与之相应的若干数据块之后。本发明不通过文件系统中转,以流的方式直接上传,因此可以解决现有的文件系统中转带来的文件系统本身的不可靠、容量占用大、性能不高的问题。

附图说明

下面结合附图和实施例对本发明进一步说明。

图1示出了本发明实施例提供的一种基于虚拟磁盘文件的流式增量备份方法的流程示意图;

图2示出了本发明实施例提供的一种基于虚拟磁盘文件的流式增量备份方法的应用场景示意图;

图3示出了本发明实施例提供的一种基于虚拟磁盘文件的流式增量备份装置的结构示意图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。

具体实施例一

本发明实施例提供了一种基于虚拟磁盘文件的流式增量备份方法,包括:

确定步骤,扫描需要备份的增量文件链中虚拟磁盘文件元数据,计算出差异数据量,并根据差异数据量确定元数据偏移量;所述增量文件链为具有链式关系的增量虚拟磁盘文件;所述元数据偏移量包括每个元数据在最终输出的虚拟磁盘文件流的偏移量;

存放步骤,在内存中开辟一块连续区域用以存放元数据;

输出步骤,扫描内存中的元数据,如果元数据显示数据有差异,则根据元数据信息读取差异数据并输出到虚拟磁盘文件流,且输出差异数据时并不输出元数据,只更新内存中的元数据;完成差异数据输出后,根据元数据偏移量,最终输出内存中的元数据到虚拟磁盘文件流。

本发明实施例首先扫描增量文件链中虚拟磁盘文件元数据,提前计算好差异数据量,以确定元数据在整个输出的虚拟磁盘文件流的偏移量;在内存中开辟一块连续区域用以存放元数据;输出差异数据时并不输出元数据,只更新内存中的元数据,在完成全部扫描将所有差异数据输出后输出内存中的元数据,优选的,元数据在虚拟磁盘文件流中的位置可以在整个流的末端,也可以在与之相应的若干数据块之后。本发明实施例不通过文件系统中转,以流的方式直接上传,因此可以解决现有的文件系统中转带来的文件系统本身的不可靠、容量占用大、性能不高的问题。

优选的,所述确定步骤后,还可以包括:头部步骤,输出增量文件链的头部到虚拟磁盘文件流,所输出的头部包含元数据偏移量。这样做的好处是,输出文件头时预先输出元数据偏移量。

优选的,所述存放步骤,还可以包括:将所开辟的连续区域初始化为零。这样做的好处是,能够防止其他数据污染增量虚拟磁盘文件数据。

本发明实施例对元数据偏移量不做限定,优选的,所述确定步骤中,元数据偏移量可以满足:使元数据位于最终输出的虚拟磁盘文件流的末端。

或者,每个元数据对应若干数据块,元数据偏移量可以满足:使每个元数据位于最终输出的虚拟磁盘文件流中,且位于该元数据相应的若干数据块之后。这样做的好处是,使每个输出的元数据在虚拟磁盘文件流中的位置在与之相应的若干数据块之后。

如图1所示,本发明实施例的一个优选情况可以是:

给定一组具有链式关系的增量虚拟磁盘文件,确定增量文件链的头尾虚拟磁盘文件增量1和虚拟磁盘文件增量N;

扫描增量文件链中虚拟磁盘文件元数据,计算好增量数据量,以确定元数据在整个输出的虚拟磁盘文件流的偏移量;

输出需要最终导出的增量虚拟磁盘文件头部到流,流中包含元数据偏移量;

内存中预开辟一片连续空间(空间大小取决于虚拟磁盘文件的虚拟大小),初始化为零;

扫描虚拟磁盘文件增量1和虚拟磁盘文件增量N(含其中间的增量文件)元数据,如果元数据显示数据有差异,则根据元数据信息读取差异数据并输出到流,同时更新在内存中的元数据指定区域,直到所有扫描完成;

输出在内存中的元数据到流形成一个完整的增量虚拟磁盘文件流。

如图2所示,本发明的一个应用场景可以是:云平台中计算节点中有一虚拟机0,本地磁盘D,对应计算节点中的Qcow2Active文件(一种虚拟磁盘文件格式),在虚拟磁盘文件的链中,存在多个增量文件以及上次备份点(全量文件),按照本发明实施例中的流式增量备份方法实施增量备份,并不通过文件系统上传到对象存储。

在上述的具体实施例一中,提供了基于虚拟磁盘文件的流式增量备份方法,与之相对应的,本申请还提供基于虚拟磁盘文件的流式增量备份装置。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

具体实施例二

如图3所示,本发明实施例提供了一种基于虚拟磁盘文件的流式增量备份装置,包括:

确定模块201,用于扫描需要备份的增量文件链中虚拟磁盘文件元数据,计算出差异数据量,并根据差异数据量确定元数据偏移量;所述增量文件链为具有链式关系的增量虚拟磁盘文件;所述元数据偏移量包括每个元数据在最终输出的虚拟磁盘文件流的偏移量;

存放模块202,用于在内存中开辟一块连续区域用以存放元数据;

输出模块203,用于扫描内存中的元数据,如果元数据显示数据有差异,则根据元数据信息读取差异数据并输出到虚拟磁盘文件流,且输出差异数据时并不输出元数据,只更新内存中的元数据;完成差异数据输出后,根据元数据偏移量,最终输出内存中的元数据到虚拟磁盘文件流。

本发明实施例首先扫描增量文件链中虚拟磁盘文件元数据,提前计算好差异数据量,以确定元数据在整个输出的虚拟磁盘文件流的偏移量;在内存中开辟一块连续区域用以存放元数据;输出差异数据时并不输出元数据,只更新内存中的元数据,在完成全部扫描将所有差异数据输出后输出内存中的元数据,优选的,元数据在虚拟磁盘文件流中的位置可以在整个流的末端,也可以在与之相应的若干数据块之后。本发明实施例不通过文件系统中转,以流的方式直接上传,因此可以解决现有的文件系统中转带来的文件系统本身的不可靠、容量占用大、性能不高的问题。

优选的,本发明实施例还可以包括:头部模块,用于输出增量文件链的头部到虚拟磁盘文件流,所输出的头部包含元数据偏移量。

优选的,所述存放模块202,还可以用于:将所开辟的连续区域初始化为零。

本发明实施例对元数据偏移量不做限定,优选的,元数据偏移量满足:使元数据位于最终输出的虚拟磁盘文件流的末端。

或者,优选的,每个元数据对应若干数据块,元数据偏移量满足:使每个元数据位于最终输出的虚拟磁盘文件流中,且位于该元数据相应的若干数据块之后。

本发明从使用目的上,效能上,进步及新颖性等观点进行阐述,其具有的实用进步性,己符合专利法所强调的功能增进及使用要件,本发明以上的说明及附图,仅为本发明的较佳实施例而己,并非以此局限本发明,因此,凡一切与本发明构造,装置,待征等近似、雷同的,即凡依本发明专利申请范围所作的等同替换或修饰等,皆应属本发明的专利申请保护的范围之内。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。尽管本发明已进行了一定程度的描述,明显地,在不脱离本发明的精神和范围的条件下,可进行各个条件的适当变化。可以理解,本发明不限于所述实施方案,而归于权利要求的范围,其包括所述每个因素的等同替换。对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。

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