一种打包文件备份过程中数据去重碎片消除方法技术

技术编号:20484296 阅读:39 留言:0更新日期:2019-03-02 18:44
本发明专利技术公开了一种打包文件备份过程中数据去重碎片消除方法,由于打包数据集的特性,导致大量被重写的碎片块在之后的备份过程中,仍然被识别为碎片块,因此被重写算法不断地重复重写,这种被反复重写的碎片块,我们称为持久性碎片块,它会严重降低系统的恢复性能。因此我们首先识别持久性碎片块,然后构建了碎片容器用于存储持久性碎片块、正常容器用于存储非持久性碎片块。大量持久性碎片块不是碎片块,写入碎片块数量会减小,容器的平均利用率会增加,重复重写率得到下降;容器包含了更多的有效块,需要读取的容器数量减少了,恢复性能得到显著提高。

【技术实现步骤摘要】
一种打包文件备份过程中数据去重碎片消除方法
本专利技术属于计算机存储
,更具体地,涉及一种打包文件备份过程中数据去重碎片消除方法。
技术介绍
重复数据删除技术(去重技术)是在现代备份系统中消除冗余数据节省空间最为有效的方法,它是一种无损压缩技术,可以有效的节省系统的存储空间。去重技术首先将文件分成等长或者变长的数据块,然后使用哈希算法来计算每个数据块的指纹,通过比对指纹值来确定数据块是否重复。近年来,备份系统正在越来越广泛地应用于恢复损坏的数据,备份系统将文件切分成可变长度的块,使用哈希算法(例如,MD5、SHA1、SHA256)计算每个块的指纹,并通过在指纹索引中查找相同的指纹来识别重复的块。在备份过程中,只有唯一块(不是重复的块)会被写入容器中。当容器已经写满时,系统会将写满的容器刷新到存储设备中。在恢复的过程中,容器根据备份流的指纹序列提供备份流所需的数据块。由于重复的数据块被移除,文件中唯一块在经过多次备份之后会分散在不同容器中,本文称这种现象为碎片化现象,其中影响该现象产生的数据块称为碎片块。在恢复文件的时候,碎片块会产生大量的磁盘查询(寻道)操作。由于磁盘的随机读写,因此碎片会严重影响系统的恢复性能。因此,为了提高备份系统的恢复性能,重写算法CBR、CAP和HAR识别和重写碎片块来解决碎片问题。然而,对于典型的备份存储负载,现有的重写算法无法实现减少碎片块的目标。比如,在备份系统中,大约60%的文件都小于10KB。为了减少元数据开销并实现高吞吐量,一些备份软件例如EMCNetWorker或SymantecNetBackup备份软件通常将一个备份系统中很多小文件聚集成大文件,再将这些大文件存储在磁盘中。这种聚集类似于UNIX系统中对文件进行打包操作。然而,在打包文件中,由于文件头的时间戳一项被经常修改,使得在备份过程中会出现一种现象,重复的数据块总是被夹在两个修改的区域之间。因此,重复块总会被认为是碎片块并且重复地被重写到容器中。这些重复重写的块被称为持久性碎片块,它们不但会严重干扰碎片块的识别,从而降低恢复性能,而且,大量的持久性碎片块也使得现有的HAR重写算法无法实现恢复性能的提高。
技术实现思路
针对现有技术的缺陷,本专利技术的目的在于解决现有的重写算法会产生大量的持久性碎片块、恢复性能过低的技术问题。为实现上述目的,第一方面,本专利技术实施例提供了一种打包文件备份过程中数据去重碎片消除方法,该方法包括以下步骤:S1.打包文件分块后,计算每个数据块的指纹;S2.基于指纹比对判断数据块为重复块还是唯一块并标记,将标记后的数据块写入同一队列;S3.判断所述队列中数据块为重复块还是唯一块,若为重复块,进入步骤S4,若为唯一块,将其写入正常容器;S4.判断所述重复块为碎片块还是非碎片块,若为碎片块,进入步骤S5;若为非碎片块,不做任何处理;S5.判断所述碎片块为持久性碎片块还是非持久性碎片块,若为持久性碎片块,将其写入碎片容器,若为非持久性碎片块,将其写入正常容器;S6.如果碎片容器的大小达到容器的预设值,将所述碎片容器缓冲区中的数据将被直接刷新到磁盘中;如果正常容器的大小达到容器的预设值,将所述正常容器缓冲区中的数据将被直接刷新到磁盘中;S7.重复步骤S3-S6直至所述队列中的数据块均处理。更具体地,步骤S1具体如下:将打包数据集中的打包文件分成定长或者变长的数据块,计算每个数据块的指纹。更具体地,步骤S2具体如下:将每个数据块的指纹与存储系统中已存储的数据块的指纹进行对比,指纹相同的数据块即为重复块,标记为1;指纹不同的数据块即为唯一块,标记为0;将标记后的重复块和唯一块写入同一队列中。更具体地,重写算法将需要重写的重复块标记为碎片块。更具体地,重写算法包括CBR、CAP或HAR。更具体地,步骤S4还包括将识别出的碎片块的指纹同时加入到碎片哈希表Htable_fragment_all和Htable_fragment_current中,其中,碎片哈希表Htable_fragment_all用来存储所有已经备份完成的数据流的碎片信息,碎片哈希表Htable_fragment_current用来存储当前备份的碎片信息。更具体地,所述判断所述碎片块为持久性碎片块还是非持久性碎片块,具体如下:在写入数据块之前,对比Htable_fragment_current哈希表中当前数据块的指纹和Htable_fragment_all哈希表中所有数据块指纹,若当前数据块的指纹存在于Htable_fragment_all哈希表中,则所述碎片块即为持久性碎片块,否则,所述碎片块为非持久性碎片块。更具体地,唯一块写入正常容器的写入信息包括:唯一块的指纹、其在正常容器的偏移量以及唯一块的大小;持久性碎片块写入碎片容器的写入信息包括:持久性碎片块的指纹、其在碎片容器的偏移量以及持久性碎片块的大小;非持久性碎片块写入正常容器的写入信息包括:非持久性碎片块的指纹、其在正常容器的偏移量以及非持久性碎片块的大小。更具体地,步骤S1-S7对应一个打包文件的备份,打包数据集中的每个打包文件的备份均采用步骤S1-S7。第二方面,本专利技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的数据去重碎片消除方法。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,具有以下有益效果:本专利技术利用打包数据集的特性,将数据块划分为重复块和唯一块,将重复块划分为碎片块和非碎片块,将碎片块划分为持久性碎片块和非持久性碎片块,并构建了碎片容器用于存储永久性碎片块、正常容器用于存储唯一块和非永久性碎片块,非碎片块的重复块不做任何处理。大量持久性碎片块不是碎片块,写入碎片块数量会减小,容器的平均利用率会增加,重复重写率得到下降;容器包含了更多的有效块,需要读取的容器数量减少了,恢复性能得到显著提高;与此同时,与现有重写算的去重率保持相当的水平。附图说明图1为本专利技术提供的一种打包文件备份过程中数据去重碎片消除方法流程图;图2为本专利技术提供的整个去重系统结构示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。概念解释如下:打包数据集:备份负载通常使用打包工具将很多小文件打包成大文件,从而减少元数据开销和提高系统吞吐量,因此,打包文件普遍存在于备份系统中,打包数据集包括多个按时间备份的打包文件。一个打包文件是由一系列文件单元组成,每个文件单元都包含文件头和数据块,文件头,即文件元数据,放置在数据块之前,包含文件名,文件大小,文件路径,文件所有者和文件修改时间等。然而每个文件元数据会频繁的改变,不可避免地导致在对数据文件分块后,使得没有改变数据部分,即重复块,总是夹在两个改变的数据块,即唯一块之间,这种特性导致重复块总是被当成碎片块,因此被重写算法不断地重复重写。碎片哈希表Htable_fragment_all:用来存储所有已经备份完成的数据流的碎片信息,其存在于整个打包数据集的备份过程中。碎片哈希表Htable_fragment_current:用来存本文档来自技高网
...

【技术保护点】
1.一种打包文件备份过程中数据去重碎片消除方法,其特征在于,该方法包括以下步骤:S1.打包文件分块后,计算每个数据块的指纹;S2.基于指纹比对判断数据块为重复块还是唯一块并标记,将标记后的数据块写入同一队列;S3.判断所述队列中的数据块为重复块还是唯一块,若为重复块,进入步骤S4,若为唯一块,将其写入正常容器;S4.判断所述重复块为碎片块还是非碎片块,若为碎片块,进入步骤S5;若为非碎片块,不做任何处理;S5.判断所述碎片块为持久性碎片块还是非持久性碎片块,若为持久性碎片块,将其写入碎片容器,若为非持久性碎片块,将其写入正常容器;S6.如果碎片容器的大小达到容器的预设值,将所述碎片容器缓冲区中的数据将被直接刷新到磁盘中;如果正常容器的大小达到容器的预设值,将所述正常容器缓冲区中的数据将被直接刷新到磁盘中;S7.重复步骤S3‑S6直至所述队列中的数据块均处理。

【技术特征摘要】
1.一种打包文件备份过程中数据去重碎片消除方法,其特征在于,该方法包括以下步骤:S1.打包文件分块后,计算每个数据块的指纹;S2.基于指纹比对判断数据块为重复块还是唯一块并标记,将标记后的数据块写入同一队列;S3.判断所述队列中的数据块为重复块还是唯一块,若为重复块,进入步骤S4,若为唯一块,将其写入正常容器;S4.判断所述重复块为碎片块还是非碎片块,若为碎片块,进入步骤S5;若为非碎片块,不做任何处理;S5.判断所述碎片块为持久性碎片块还是非持久性碎片块,若为持久性碎片块,将其写入碎片容器,若为非持久性碎片块,将其写入正常容器;S6.如果碎片容器的大小达到容器的预设值,将所述碎片容器缓冲区中的数据将被直接刷新到磁盘中;如果正常容器的大小达到容器的预设值,将所述正常容器缓冲区中的数据将被直接刷新到磁盘中;S7.重复步骤S3-S6直至所述队列中的数据块均处理。2.如权利要求1所述的数据去重碎片消除方法,其特征在于,步骤S1具体如下:将打包数据集中的打包文件分成定长或者变长的数据块,计算每个数据块的指纹。3.如权利要求1所述的数据去重碎片消除方法,其特征在于,步骤S2具体如下:将每个数据块的指纹与存储系统中已存储的数据块的指纹进行对比,指纹相同的数据块即为重复块,标记为1;指纹不同的数据块即为唯一块,标记为0;将标记后的重复块和唯一块写入同一队列中。4.如权利要求1所述的数据去重碎片消除方法,其特征在于,重写算法将需要重写的重复块标记为碎片块。5.如权利要求4所述的数据去重碎片消除方法,其特征在于,重写算法包括CBR、CAP或HAR。6.如权利要求1所述的数据去重碎片消除方法,其特征在于,...

【专利技术属性】
技术研发人员:王芳左春雪胡燏翀冯丹张宇成
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1