基于应用感知的重复数据删除存储系统中的数据重构方法

文档序号:9261186阅读:476来源:国知局
基于应用感知的重复数据删除存储系统中的数据重构方法
【技术领域】
[0001]本发明涉及计算机存储领域,尤其是涉及一种基于应用感知的重复数据删除存储系统中的数据重构方法。
【背景技术】
[0002]随着网络的发展,各种数据呈爆炸性的生长,对存储容量的需求也不断增大,所以存储容量的要求也不断增加。在考虑存储成本的情况下,人们开始思考如何在有限的空间内存储更多的数据,于是重复数据删除技术开始问世。
[0003]重复数据删除是一种目前主流且热门的存储技术,通过检测数据集的相同数据部分,删除重复的数据内容,只保留唯一的数据对象副本,从而达到消除冗余的目标。重复数据删除技术能够有效减少数据的存储容量和数据在网络中的传输量,进而降低存储成本和能耗需求或提高网络带宽。
[0004]存储系统的重复数据删除过程一般如下:系统首先将文件分成一组数据块,计算每个数据的哈希指纹,然后以该哈希指纹为关键字查找哈希表,判断该数据块是否与已存储的数据重复。若重复,则丢弃该数据块,只保留该数据块的索引号;若不重复,即该数据块是全新的,则保存该数据块并给其分配唯一的索引号,同时将该数据块的哈希指纹保存到哈希表。一个文件经过重复数据删除后在存储系统中就表现为一系列的数据块索引号。因此,一个物理文件在存储系统中对应一个逻辑表示,由一组指纹组成的元数据组成。当进行文件读取时,先读取该逻辑文件,然后根据指纹信息从存储系统中读取出相应的数据块,还原物理文件。
[0005]数据的分块方式主要有两种,一种是固定大小分块,即将数据分割成大小固定的数据块;另一种是基于内容的分块,为避免数据更新时带来的分块边界迀移问题而根据数据内容将数据分割成不同大小的数据块。通过对多个数据集的观察可以知道,对于静态应用文件即数据不会被更新的文件,例如虚拟机镜像文件,固定大小分块方法优于基于内容的分块方法。这两种分块方法都需要计算每个数据块的哈希指纹值,而计算哈希指纹是一个非常占用中央处理器资源的过程,所以评估哈希指纹的计算花销也是很重要的。
[0006]Vasily Tarasowj Deepak Jain, Geoff Kuenningj Sonam Mandalj KarthikeyaniPalanisamij Philip Shilanej Sagar Trehanj and Erez Zadol.Dmdedup:Device MapperTarget for Data Deduplicat1n.1n Proceeding of the 20140ttawa Linux Symposium.Pagesl-2.

【发明内容】

[0007]本发明的目的在于针对重复数据删除存储系统中数据的写入过程会直接影响数据的读取过程,因此改进数据的写入模式可以提升数据读取时的数据重构速度,提供一种用于提升数据读取时数据重构速度的基于应用感知的重复数据删除存储系统中的数据重构方法。
[0008]本发明包括并行的备份文件的数据写入阶段和备份文件的数据读取阶段;
[0009]所述备份文件的数据写入阶段,包括以下步骤:
[0010](I)文件分类步骤,进行下列过程:
[0011]递归遍历备份路径下的所有文件,统计所有出现的文件类型和每个类型的所有文件及其路径,以生成分类树和备份版本号;转步骤(2);
[0012](2)文件分块步骤,对同一类型的文件进行下列过程:
[0013](2.1)遍历此类型下的全部文件,依次打开步骤(I)提供的对同一类型的所有文件路径;转过程(2.2);
[0014](2.2)对每个文件路径,创建一个块结构体并标记文件开始;转过程(2.3);
[0015](2.3)读取过程(2.2)中文件路径里的数据内容,创建一个块结构体并在此块结构体中存储文件数据内容,直至文件结束;除最后一个块结构体外,文件结构体中的数据大小固定的;转过程(2.4);
[0016](2.4)创建一个块结构体并标记文件结束,并把所有创建的块结构体保存到一个块结构体队列中;判断同类型文件是否都已完成分块,若是,则转步骤(3),否则转步骤(2);
[0017](3)哈希指纹计算步骤,进行下列过程:
[0018]根据过程(2.4)得到的块结构体队列,依次调用哈希函数计算每个块结构体数据部分的哈希值,然后创建一个相应的块结构体以保存其哈希值,把本过程创建的块结构体保存到一个哈希指纹队列中,并将标记文件开始和结束的块结构体也保存到哈希指纹队列中;转步骤(4);
[0019](4)重复数据删除步骤,进行下列过程:
[0020](4.1)将步骤(3)中的哈希指纹队列的一个块结构体包含的哈希指纹在键值表中进行查找,键值表是存储所有哈希指纹及对应存储地址的索引表,若键值表中找到一致的哈希指纹,则将此块结构标记为重复,否则将此哈希指纹及其对应存储地址写入键值表中;
[0021](4.2)判断所有数据块是否都已经完成哈希指纹查找步骤即步骤(3)中创建的哈希指纹队列中所有块结构体中的哈希指纹都已在键值表中完成查找,若是,则转步骤(5),否则转过程(4.1);
[0022](5)数据写入步骤,进行下列过程:
[0023](5.1)判断过程(4.1)中的块结构体标记的数据块是否是重复的,若是,则记录该数据块在磁盘上的位置,否则将该数据块添加到存储缓存中;转过程(5.2);
[0024](5.2)将存储缓存中的块结构体、元数据文件、键值表和哈希指纹队列写入到磁相应位置;转过程(5.3);
[0025](5.3)判断所有文件类型是否都已完成写入操作,若是,则备份文件的数据写入阶段结束,否则转步骤(2);
[0026]所述备份文件的数据读取阶段,包括以下步骤:
[0027](6)文件分类信息获取步骤,进行下列过程:
[0028]根据需要读取的备份文件的版本号获取相应的备份文件的分类树,统计此备份版本中出现的所有文件类型,对同一类型的文件进行步骤(7);
[0029](7)文件指纹信息获取步骤,进行下列过程:
[0030]读取元数据文件,查找此备份版本中的全部哈希值队列;转步骤(8);
[0031](8)文件数据块获取步骤,进行下列过程:
[0032]根据哈希指纹队列中的指纹信息查询键值表,读取对应的数据块;转步骤(9);
[0033](9)数据重构完成步骤,进行下列过程:
[0034]递归创建备份文件目录,根据元数据文件将读取到的数据块重构到指定路径下,判断所有类型的数据是否都已经读取完毕,若是,则备份文件的数据读取阶段结束,否则转步骤(7)。
[0035]在重复数据删除存储系统中,数据的写入过程会直接影响数据的读取过程,因此改进数据的写入模式可以提升数据读取时的数据重构速度。针对这个问题,本发明提出的基于应用感知的数据重构方法,通过改变传统重复数据删除过程中的数据写入方法以提高数据读取时的数据重构速度。
[0036]本发明由并行的备份文件的数据写入阶段和备份文件的数据读取阶段组成。所述备份文件的数据写入阶段由文件分类步骤、文件分块步骤、哈希指纹计算步骤、重复数据删除步骤和数据写入步骤顺序组成;所述备份文件的数据读取阶段由文件分类信息获取步骤、文件指纹信息获取步骤、文件数据块获取步骤、数据重构完成步骤顺序组成。
[0037]所述重复数据删除系统关键在于基于应用感知的数据布局和指纹存储,每种类型的应用文件都对应四个磁盘文件,即数据块文件、索引文件、指纹序列文件和元数据文件。数据块文件保存此次备份的数据内容;索引文件保存数据分块后的键值对,即每个哈希指纹及其对应数据块所在的地址;指纹序列文件保存此次备份中所有数据块对应的指纹序列值;元数据文件保存此次备份的备份版本、文件数量、文件大小、分块数量、重复删除率和指纹序列文件地址。读取备份文件时根据需要读取的文件类型按类型重构。
【附图说明】
[0038]图1为本发明的示意图;
[0039]图2为本发明备份文件的数据写入过程的示意图;
[0040]图3为本发明文件分类过程结果的示意图;
[0041]图4为本发明文件数据布局的示意图;
[0042]图5为本发明数据读取过程的示意图。
【具体实施方式】
[0043]下面以三个文件a.txt、b.doc和c.pdf为例,结合附图对本发明作进一步说明。
[0044]本发明包括并行的备份文件的数据写入阶段和备份文件的数据读取阶段;
[0045]所述备份文件的数据写入阶段,包括以下步骤:
[0046](I)文件分类步骤,进行下列过程:
[0047]递归遍历备份路径下的所有文件,统计所有出现的文件类型和每个类型的所有文件及其路径,以生成分类树和备份版本号;转步骤(2);
[0048](2)文件分块步骤,对同一类型的文件进行下列过程:
[0049](2.1)遍历此类型下的全部文件,依次打开步骤(I)提供的对同一类型的所有文件路径;转过程(2.2);
[0050](2.2)对每个文件路径,创建一个块结构体并标记文件开始;转过程(2.3);
[0051](2.3)读取过程(2.2)中文件路径里的数据内容,创建一个块结构体并在此块结构体
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1