著录项信息
专利名称 | 一种基于文件内容类型的重复数据删除方法 |
申请号 | CN200910273171.0 | 申请日期 | 2009-12-10 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2010-05-12 | 公开/公告号 | CN101706825A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0;;;G;0;6;F;1;1;/;1;4查看分类表>
|
申请人 | 华中科技大学 | 申请人地址 | 湖北省武汉市洪山区珞喻路1037号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华中科技大学 | 当前权利人 | 华中科技大学 |
发明人 | 周敬利;秦磊华;曾东;聂雪军;刘科;朱建峰 |
代理机构 | 华中科技大学专利中心 | 代理人 | 方放 |
摘要
一种基于文件内容类型的重复数据删除方法,属于计算机数据备份的重复数据删除方法,适用于基于磁盘的备份系统,解决现有重复数据删除方法存在的分块策略单一,不能根据文件内容类型进行优化的问题。本发明预先进行块边界特征计算步骤,以下顺序包括内容类型识别步骤、文件分块步骤、数字指纹计算步骤、重复数据块判断步骤和结束步骤。本发明基于内容类型对备份文件进行分类,并针对每种内容类型计算最优的块边界特征值;在处理备份文件时增加了文件内容类型识别步骤,并根据识别结果选择块边界特征,提高了重复数据删除方法在处理复合备份文件时的整体效能。
1.一种基于文件内容类型的重复数据删除方法,预先进行块边界特征计算步骤:在备份系统中采集样本文件集合,提取样本文件的元数据,并根据元数据确定样本文件的内容类型,再根据样本文件的内容类型将样本文件集合分类为多个子集合,计算每个子集合的块边界特征值,将各个子集合的块边界特征值保存在块边界特征库中;
以下顺序包括:
A.内容类型识别步骤:提取用户输入文件的元数据,并根据元数据确定文件的内容类型,根据文件的内容类型在块边界特征库中寻找对应的块边界特征值;
B.文件分块步骤:根据步骤A中寻找到的块边界特征值,采用滑动窗口对用户输入文件整体进行扫描,将用户输入文件划分为多个数据块;
C.数字指纹计算步骤:对步骤B中产生的每个数据块,计算其哈希(HASH)值作为该数据块的数字指纹,转步骤D;
D.重复数据块判断步骤:将步骤C中生成的哈希值与存储池中的哈希值表中的哈希值进行比较,判断是否相同,是则仅将该哈希值存入文件的索引节点中,转步骤E;否则把该哈希值存入哈希值表以及文件的索引节点中,并将对应的数据块写入存储池中,转步骤E;
E.结束步骤:当前文件重复数据删除结束,当用户输入下一文件时,转步骤A;
所述存储池存储哈希值表和数据块,该哈希值表中包含所存储每个数据块的哈希值以及在磁盘上的地址,所存储的所有数据块不重复;
所述样本文件和用户输入文件的元数据均包括文件的内容类型、文件扩展名、生成文件的应用程序以及文件内容的编码方式,其中,文件扩展名、生成文件的应用程序以及文件内容的编码方式三种元数据构成一个元数据三元组,形为{扩展名,应用程序,编码方式}。
2.如权利要求1所述的重复数据删除方法,其特征在于:
所述块边界特征计算步骤,包括下述子步骤:
A.在存储池中生成样本文件集合:从备份系统定期执行的备份过程中,随机抽取1次备份过程生成的备份文件集合,作为样本文件集合,放入存储池中;
B.样本文件分类:提取样本文件集合中每个样本文件的元数据,并根据元数据确定文件的内容类型,相同内容类型的样本文件被放入同一子集合中;
C.确定候选块边界特征值取值范围:根据备份系统规定的平均分块大小,确定候选块边界特征值取值范围为[0,n),其中n为备份系统规定的平均分块字节大小,n=
256、512、1024、2048、4096或8192;
D.生成块边界特征值:对于样本文件集合中各种内容类型的文件子集合,遍历候选特征值取值范围中的每个候选特征值,并计算该候选特征值生成的重复数据块数量,以生成重复数据块数量最大的候选特征值作为该内容类型的块边界特征值;
E.保存:在每种内容类型与相应的块边界特征值之间建立一一映射关系并保存到块边界特征库中。
3.如权利要求1或2所述的重复数据删除方法,其特征在于:
所述内容类型识别步骤或者块边界特征计算步骤的样本文件分类子步骤中,根据元数据确定文件的内容类型过程为:
判断元数据中是否包含内容类型属性,是则直接将其设置为文件的内容类型,否则,将文件扩展名、生成文件的应用程序以及文件内容的编码方式构成一个元数据三元组,形式为{扩展名,应用程序,编码方式},在内容类型查询表中找到文件所对应的内容类型;
所述内容类型查询表反映元数据三元组的每种取值和内容类型的对应关系。
4.如权利要求1或2所述的重复数据删除方法,其特征在于:
所述文件分块步骤,包括下述子步骤:
A.将文件的起始位置作为滑动窗口的初始位置,将滑动窗口所包含的字节作为第一个数据块边界;
B.将滑动窗口在文件中移动,每次移动一个字节,判断滑动窗口是否到达文件末尾,是则转子步骤C,否则转子步骤D;
C.将该滑动窗口所包含的字节作为最后一个数据块边界,该数据块边界与上一个数据块边界之间的所有字节作为文件的最后一个数据块,划分结束;
D.计算滑动窗口特征值f:
式中,ti为滑动窗口中的字节,i=0~w-1,滑动窗口的长度w为10、20、30、40或50字节,滑动窗口中的所有字节表示为字节序列(t0,t1,...,tw-1);
E.将滑动窗口特征值f对块边界特征值取模,判断取模结果是否为0,是则转子步骤F;否则返回子步骤B;
F.该滑动窗口所包含的字节作为下一个数据块边界,下一个数据块边界与上一个数据块边界中的所有字节被划分为一个数据块,返回子步骤B。
5.如权利要求3所述的重复数据删除方法,其特征在于:
所述文件分块步骤,包括下述子步骤:
A.将文件的起始位置作为滑动窗口的初始位置,将滑动窗口所包含的字节作为第一个数据块边界;
B.将滑动窗口在文件中移动,每次移动一个字节,判断滑动窗口是否到达文件末尾,是则转子步骤C,否则转子步骤D;
C.将该滑动窗口所包含的字节作为最后一个数据块边界,该数据块边界与上一个数据块边界之间的所有字节作为文件的最后一个数据块,划分结束;
D.计算滑动窗口特征值f:
式中,ti为滑动窗口中的字节,i=0~w-1,w为滑动窗口的长度,滑动窗口中的所有字节表示为字节序列(t0,t1,...,tw-1);
E.将滑动窗口特征值f对块边界特征值取模,判断取模结果是否为0,是则转子步骤F;否则返回子步骤B;
F.该滑动窗口所包含的字节作为下一个数据块边界,下一个数据块边界与上一个数据块边界中的所有字节被划分为一个数据块,返回子步骤B。
一种基于文件内容类型的重复数据删除方法\n技术领域\n[0001] 本发明属于计算机数据备份的重复数据删除方法,具体涉及一种基于文件内容类型(Content Type)的重复数据删除方法,适用于基于磁盘的备份系统。\n背景技术\n[0002] 进入到21世纪以后,随着信息时代的加速,数据呈现出爆炸性增长的趋势,用户存储容量日趋紧张、数据管理难度日益加大、存储支出逐渐增加。 为了应对这些问题,提出了重复数据删除技术,以有效地减少用户日常备份中的重复数据,使得备份数据大大减少,从而为用户节省了存储容量,并降低了数据管理工作的难度。 许多存储厂商都推出了基于重复数据删除的备份系统或软件,例如EMC公司的Avamar Data Store备份存储系统,Data Domain公司的DDX阵列以及SEPATON公司的DeltaStor软件。\n[0003] 根据重复数据识别的粒度,重复数据删除技术可分为文件级重复数据删除和数据块级重复数据删除,在备份环境下通常采用后者。 数据块级重复数据删除技术是指将备份文件划分为多个数据块,然后判断每个数据块是否已处于存储池中,如果发现某一数据块已经存在,则会在备份文件的索引节点中插入指向已存在数据块的指针;只有不重复的数据块才会被写入磁盘的相应区域。 存储池是由硬盘、磁带或光盘构成的计算机虚拟存储设备,用于存储海量数据。\n[0004] 在数据块级重复数据删除技术中,关键问题在于如何将备份文件划分为数据块,即如何确定数据块的边界特征。目前的分块技术有两种,定长分块和变长分块。 定长分块是指将文件分块为同一大小的数据块,例如4K、8K等;变长分块是采用滑动窗口对备份文件做整体扫描,如果滑动窗口中的内容满足预定的数据块边界条件,则被识别为一个边界,两个边界之间的所有字节被分块为一个数据块。\n[0005] 对于数据块级重复数据删除技术而言,目前存在的主要问题是:对备份系统中的所有文件采用单一的块边界特征,而没有考虑重复数据块的数量会因文件内容性质(包括文件类型与采用的编码方式等)的不同而存在较大差异,单一块边界特征的策略不能使不同内容类型文件的重复数据删除率都达到最优。 因此,需要根据内容类型对文件进行分类,并采用复合策略来分别处理不同内容类型的备份文件。\n发明内容\n[0006] 本发明提供一种基于文件内容类型的重复数据删除方法,解决现有重复数据删除方法存在的分块策略单一,不能根据文件内容类型进行优化的问题。\n[0007] 备份系统定期执行备份过程,每次备份过程都得到一个备份文件集合。\n[0008] 在存储池中,每个文件都以一个索引节点来标识。 文件被划分为多个数据块,每个数据块都通过计算得到一个哈希值;在索引节点中包含了每个数据块对应的哈希值;在哈希值表中包含了所有数据块的哈希值以及数据块在磁盘上的存储地址;通过哈希值表可以找到文件中每个数据块的地址。\n[0009] 本发明的一种基于文件内容类型的重复数据删除方法,预先进行块边界特征计算步骤:在备份系统中采集样本文件集合,提取样本文件的元数据,并根据元数据确定样本文件的内容类型,再根据样本文件的内容类型将样本文件集合分类为多个子集合,计算每个子集合的块边界特征值,将各个子集合的块边界特征值保存在块边界特征库中;\n[0010] 以下顺序包括:\n[0011] A.内容类型识别步骤:提取用户输入文件的元数据,并根据元数据确定文件的内容类型,根据文件的内容类型在块边界特征库中寻找对应的块边界特征值;\n[0012] B.文件分块步骤:根据步骤A中寻找到的块边界特征值,采用滑动窗口对用户输入文件整体进行扫描,将用户输入文件划分为多个数据块;\n[0013] C.数字指纹计算步骤:对步骤B中产生的每个数据块,计算其哈希(HASH)值作为该数据块的数字指纹,转步骤D;\n[0014] D.重复数据块判断步骤:将步骤C中生成的哈希值与存储池中的哈希值表中的哈希值进行比较,判断是否相同,是则仅将该哈希值存入文件的索引节点中,转步骤E;否则把该哈希值存入哈希值表以及文件的索引节点中,并将对应的数据块写入存储池中,转步骤E;\n[0015] E.结束步骤:当前文件重复数据删除结束,当用户输入下一文件时,转步骤A;\n[0016] 所述存储池存储哈希值表和数据块,该哈希值表中包含所存储每个数据块的哈希值以及在磁盘上的地址,所存储的所有数据块不重复;\n[0017] 所述文件的元数据包括文件的内容类型、文件扩展名、生成文件的应用程序以及文件内容的编码方式,其中,文件扩展名、生成文件的应用程序以及文件内容的编码方式三种元数据构成一个元数据三元组,形为{扩展名,应用程序,编码方式}。\n[0018] 所述的重复数据删除方法,其特征在于:\n[0019] 所述块边界特征计算步骤,包括下述子步骤:\n[0020] A.在存储池中生成样本文件集合:从备份系统定期执行的备份过程中,随机抽取1次备份过程生成的备份文件集合,作为样本文件集合,放入存储池中;\n[0021] B.样本文件分类:提取样本文件集合中每个样本文件的元数据,并根据元数据确定文件的内容类型,相同内容类型的样本文件被放入同一子集合中;\n[0022] C.确定候选块边界特征值取值范围:根据备份系统规定的平均分块大小,确定候选块边界特征值取值范围为[0,n),其中n为备份系统规定的平均分块字节大小,n=\n256、512、1024、2048、4096或8192;\n[0023] D.生成块边界特征值:对于样本文件集合中各种内容类型的文件子集合,遍历候选特征值取值范围中的每个候选特征值,并计算该候选特征值生成的重复数据块数量;以生成重复数据块数量最大的候选特征值作为该内容类型的块边界特征值;\n[0024] E.保存:在每种内容类型与相应的块边界特征值之间建立一一映射关系并保存到块边界特征库中。\n[0025] 所述的重复数据删除方法,其特征在于:\n[0026] 所述内容类型识别步骤或者块边界特征计算步骤的样本文件分类子步骤中,根据元数据确定文件的内容类型过程为:\n[0027] 判断元数据中是否包含内容类型属性,是则直接将其设置为文件的内容类型,否则,将文件扩展名、生成文件的应用程序以及文件内容的编码方式构成一个元数据三元组,形式为{扩展名,应用程序,编码方式},在内容类型查询表中找到文件所对应的内容类型;\n[0028] 所述内容类型查询表反映元数据三元组的每种取值和内容类型的对应关系。\n[0029] 所述的重复数据删除方法,其特征在于:\n[0030] 所述文件分块步骤,包括下述子步骤:\n[0031] A.将文件的起始位置作为滑动窗口的初始位置,将滑动窗口所包含的字节作为第一个数据块边界;\n[0032] B.将滑动窗口在文件中移动,每次移动一个字节,判断滑动窗口是否到达文件末尾,是则转子步骤C,否则转子步骤D;\n[0033] C.将该滑动窗口所包含的字节作为最后一个数据块边界,该数据块边界与上一个数据块边界之间的所有字节作为文件的最后一个数据块,划分结束;\n[0034] D.计算滑动窗口特征值f:\n[0035] \n[0036] 式中,ti为滑动窗口中的字节,i=0~w-1,滑动窗口的长度w为10、20、\n30、40或50字节,滑动窗口中的所有字节表示为字节序列(t0,t1,...,tw-1);\n[0037] E.将滑动窗口特征值f对块边界特征值取模,判断取模结果是否为0,是则转子步骤F;否则返回子步骤B;\n[0038] F.该滑动窗口所包含的字节作为下一个数据块边界,下一个数据块边界与上一个数据块边界中的所有字节被划分为一个数据块,返回子步骤B。\n[0039] 本发明文件内容类型的分类采用多用途互联网邮件扩展(MIME,Multipurpose Internet Mail Extensions)定义的标准,即分为文本,图像,音频,视频,可执行程序以及复合文件6大类。 每个大类下又定义了多个子类。\n[0040] 本发明基于内容类型对备份文件进行分类,并针对每种内容类型计算最优的块边界特征值;在处理备份文件时增加了文件内容类型识别步骤,并根据识别结果选择块边界特征,提高了重复数据删除方法在处理复合备份文件时的整体效能。\n附图说明\n[0041] 图1为本发明的流程图;\n[0042] 图2为本发明的数据压缩比性能测试结果图;\n[0043] 图3为本发明的写入吞吐率性能测试结果图;\n[0044] 图4为本发明的读取吞吐率性能测试结果图。\n具体实施方式\n[0045] 下面结合附图对本发明进一步说明。\n[0046] 如图1所示,本发明预先进行块边界特征计算步骤,以下顺序包括内容类型识别步骤、文件分块步骤、数字指纹计算步骤、重复数据块判断步骤和结束步骤。\n[0047] 下面给出基于内容类型的重复数据删除方法的一个完整流程示例:\n[0048] 预先进行块边界特征计算步骤,包括下述子步骤:\n[0049] A.在存储池中生成样本文件集合:从备份系统中抽取2009年9月30日执行的备份过程生成的备份文件集合,共14427个文件,作为样本文件集合,放入存储池中;\n[0050] B.样本文件分类:提取样本文件集合中每个样本文件的元数据,并根据元数据确定文件的内容类型,相同内容类型的样本文件被放入同一子集合中,共分为文本,图像,音频,视频,可执行程序以及复合文件6个子集合;\n[0051] C.确定候选块边界特征值取值范围:备份系统规定的平均分块大小为1024字节,因此确定候选块边界特征值取值范围为[0,1024);\n[0052] D.生成块边界特征值:对于样本文件集合中6种内容类型的文件子集合,遍历候选特征值取值范围中的每个候选特征值,并计算该候选特征值生成的重复数据块数量;以生成重复数据块数量最大的候选特征值作为该内容类型的块边界特征值;计算得到的块边界特征值分别为,文本内容类型的块边界特征值为257,图像内容类型的块边界特征值为182,音频内容类型的块边界特征值为45,视频内容类型的块边界特征值为\n799,可执行程序内容类型的块边界特征值为1007,复合文件内容类型的块边界特征值为\n368;\n[0053] E.保存:在每种内容类型与相应的块边界特征值之间建立一一映射关系并保存到块边界特征库中。\n[0054] 用户输入文件file.dat,顺序执行以下步骤:\n[0055] A.内容类型识别步骤:提取用户输入文件的元数据,构成元数据三元组{dat,Visual Studio,TXT},文件的内容类型为文本,在特征数据库中对应的块边界特征值为\n257;\n[0056] B.文件分块步骤:根据步骤A中寻找到的块边界特征值257,采用滑动窗口对用户输入文件整体进行扫描,其中滑动窗口的长度w设为50字节,用户输入文件file.dat被划分为62个数据块;\n[0057] C.数字指纹计算步骤:对步骤B中产生的每个数据块,计算其哈希(HASH)值作为该数据块的数字指纹,转步骤D;\n[0058] D.重复数据块判断步骤:将步骤C中生成的哈希值与存储池中的哈希值表中的哈希值进行比较,判断是否相同,是则仅将该哈希值存入文件的索引节点中,在file.dat中共判断出48个重复数据块,转步骤E;否则把该哈希值存入哈希值表以及文件的索引节点中,并将对应的数据块写入存储池中,转步骤E;\n[0059] E.结束步骤:当前文件重复数据删除结束,当用户输入下一文件时,[0060] 转步骤A;\n[0061] 本发明内容类型识别步骤和块边界特征计算步骤的样本文件分类子步骤中,涉及内容类型查询表,内容类型查询表反映元数据三元组的每种取值和内容类型的对应关系。文件扩展名可能多达近20种、生成文件的应用程序可能多达20余种、文件内容的编码方式有10种左右。 本发明实施例中,以2种文件扩展名、2种生成文件的应用程序和\n2种文件内容的编码方式,构成元数据三元组,元数据三元组的每种取值和内容类型的对应关系如下述内容类型查询表所示:\n[0062] \n 三元组{扩展名,应用程序,编码方式} 内容类型\n {dat,Visual Studio,TXT} 文本\n {dat,Visual Studio,BMP} 图片\n {dat,Eclipse,TXT} 文本\n {dat,Eclipse,BMP} 图片\n {dll,Visual Studio,TXT} 可执行程序\n {dll,Visual Studio,BMP} 可执行程序\n {dll,Eclipse,TXT} 可执行程序\n {dll,Eclipse,BMP} 可执行程序\n[0063] 申请人在IP存储系统上实现了本发明,并进行了实验测试。 存储应用服务器采用了AMD Dual Core 2800+2.21G的CPU,1GB内存,操作系统为Linux 2.6.12;IP存储设备采用Pentium 42.4G的CPU,1.2G内存,操作系统同样为Linux 2.6.12;两台计算机通过1Gb/s的以太网卡互联。 测试结果包括备份数据的压缩比,写入吞吐率以及读取吞吐率。\n[0064] 图2为本发明的数据压缩比性能测试结果图;其中横坐标为备份系统规定的平均分块字节大小,分别为256,512,1024,2048和4096字节;纵坐标为本发明在不同的平均分块字节大小下到达的数据压缩比,分别为10.14,9.24,8.26,8.13和8.12;数据压缩比为重复数据删除之前的数据总量除以重复数据删除之后的数据总量得到的值。\n[0065] 图3为本发明的写入吞吐率性能测试结果图;其中横坐标为备份系统规定的平均分块字节大小,分别为256,512,1024,2048和4096字节;纵坐标为本发明在不同的平均分块字节大小下到达的写入吞吐量,分别为69.1,62.1,55.7,55.6和55.1MB/s;\n[0066] 图4为本发明的读取吞吐率性能测试结果图;其中横坐标为备份系统规定的平均分块字节大小,分别为256,512,1024,2048和4096字节;纵坐标为本发明在不同的平均分块字节大小下到达的读取吞吐量,分别为40.86,39.48,37.68,37.74和31.92MB/s。
法律信息
- 2015-02-04
未缴年费专利权终止
IPC(主分类): G06F 17/30
专利号: ZL 200910273171.0
申请日: 2009.12.10
授权公告日: 2011.04.20
- 2011-04-20
- 2010-06-30
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 200910273171.0
申请日: 2009.12.10
- 2010-05-12
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2009-09-30
|
2008-03-27
| | |
2
| |
2003-07-09
|
2002-12-24
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |