《一种基于级联式存储介质的冗余数据清理方法.pdf》由会员分享,可在线阅读,更多相关《一种基于级联式存储介质的冗余数据清理方法.pdf(7页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 (43)申请公布日 (21)申请号 201410756525.8 (22)申请日 2014.12.10 G06F 17/30(2006.01) G06F 12/06(2006.01) G06F 3/06(2006.01) (71)申请人 上海爱数软件有限公司 地址 201112 上海市闵行区联航路1188号8 幢第 2 层 A-1 单元 (72)发明人 朱劲松 (74)专利代理机构 上海科盛知识产权代理有限 公司 31225 代理人 赵志远 (54) 发明名称 一种基于级联式存储介质的冗余数据清理方 法 (57) 摘要 本发明涉及一种基于级联式存储介质的冗余 数据清理方法,。
2、 包括 : (1) 将位于低速存储介质中 的数据按照预设大小均分地分割成多个数据块 ; (2) 针对每个数据块进行如下操作 : i. 计算得到 该数据块对应的 hash 值 ; ii. 在最高速存储介质 中查找是否已存在该 hash 值, 若存在, 则删除该 数据块并后保存一个指针, 该指针指向已存在的 与该数据块内容相同的数据块 ; iii. 在高速存储 介质中查找是否已存在该 hash 值, 若存在, 则删 除该数据块后只保存一个指针, 该指针指向已存 在的与该数据块内容相同的数据块, 并将该 hash 值存入最高速存储介质中。 与现有技术相比, 本发 明具使用高速存储介质加快指纹查找速度。
3、, 从而 提升了重删效率, 继而提高了写 IO 的性能。 (51)Int.Cl. (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书3页 附图2页 (10)申请公布号 CN 104462388 A (43)申请公布日 2015.03.25 CN 104462388 A 1/1 页 2 1.一种基于级联式存储介质的冗余数据清理方法, 其特征在于, 包括以下步骤 (1) 将位于低速存储介质中的数据按照预设大小均分地分割成多个数据块 ; (2) 针对每个数据块进行如下操作 : i. 计算得到该数据块对应的 hash 值 ; ii. 在最高速存储介质中查找是否已存在该 。
4、hash 值, 若存在, 则删除该数据块并后保 存一个指针, 该指针指向已存在的与该数据块内容相同的数据块 ; 若不存在, 则进行步骤 iii ; iii. 在高速存储介质中查找是否已存在该 hash 值, 若存在, 则删除该数据块后只保存 一个指针, 该指针指向已存在的与该数据块内容相同的数据块, 并将该 hash 值存入最高速 存储介质中 ; 若不存在, 则将该 hash 值存入高速存储介质和最高速存储介质中。 2.根据权利要求 1 所述的一种基于级联式存储介质的冗余数据清理方法, 其特征在 于, 所述步骤 2 的 iii 中将 hash 值存入高速存储介质后, 设定数量的 hash 值组。
5、合成 hash 组, 并在最高速存储介质中保存一个与每个 hash 组对应的索引表 ; 所述步骤 2 的 iii 中在高速存储介质中查找是否已存在该 hash 值的方法具体为 : 根 据 hash 值在所述索引表中查找该 hash 值所在的 hash 组, 并进一步在该 hash 组中查找该 hash 值。 3.根据权利要求 2 所述的一种基于级联式存储介质的冗余数据清理方法, 其特征在 于, 所述 hash 值按照数据块的逻辑地址进行分组, 每个 hash 组中的 hash 值对应的数据块 在逻辑地址上是连续的。 4.根据权利要求 3 所述的一种基于级联式存储介质的冗余数据清理方法, 其特征。
6、在 于, 所述的步骤 2 的 iii 中将该 hash 值存入最高速存储介质中的方法具体为 : 将该 hash 值 所在的 hash 组存入最高速存储介质中。 5.根据权利要求 4 所述的一种基于级联式存储介质的冗余数据清理方法, 其特征在 于, 所述的每个 hash 组包含 32 个 hash 值。 6.根据权利要求 1-5 中任意所述的一种基于级联式存储介质的冗余数据清理方法, 其 特征在于, 所述的最高速存储介质为内存。 7.根据权利要求 1-5 中任意所述的一种基于级联式存储介质的冗余数据清理方法, 其 特征在于, 所述的高速存储介质为 NVDIMM、 NVRAM、 SAS SSD 或。
7、 PCI-E SSD。 8.根据权利要求 1-5 中任意所述的一种基于级联式存储介质的冗余数据清理方法, 其 特征在于, 所述的低速存储介质为机械磁盘。 权 利 要 求 书 CN 104462388 A 2 1/3 页 3 一种基于级联式存储介质的冗余数据清理方法 技术领域 0001 本发明涉及一种数据清理方法, 尤其是涉及一种基于级联式存储介质的冗余数据 清理方法。 背景技术 0002 过去数年间, 随着计算机的普及和信息技术的进步, 各行各业都在经历着数据量 的爆炸性增长。不论是由于互联网、 电子邮件的出现, 还是越来越庞大、 需要大量介质的应 用软件所致, 数据量现已呈现出了巨大的增长态。
8、势。数据正在日益成为公司的实际资产之 一, 支撑着公司正常、 高效的运转。 0003 伴随着数据爆炸性的增长, 所需要的存储容量也越来越大, 相应的, 无论是管理成 本、 还是存储介质成本, 都越来越高。 而另一方面, 在海量的数据背后, 存在着大量的冗余数 据, 导致磁盘利用率太低。为了应对这个挑战, 在将数据写到存储介质中时, 会进行重复数 据删除。 0004 重复数据删除技术解决方案的基本步骤是 : 分块、 指纹计算、 查重、 更新。 分块的功 能是按照一定的粒度将数据流切分为数据块。 指纹计算则是指将切分好的数据块进行hash 计算, 产生唯一的一个标识, 称为指纹。用这个指纹去指纹库。
9、中匹配, 匹配成功则认为该块 是重复块, 不再将实际数据写入磁盘, 而只是保存一个指针指向已存在的数据块, 否则就将 该数据块及其指纹保存到磁盘中。 0005 传统上, 指纹库和数据保存在同一介质中, 即磁盘上, 因而每次查找的时候都需要 查找磁盘。机械磁盘对于随机 IO 的读写性能都比较差, 而由于指纹库的庞大, 指纹的查找 过程就变成了随机 IO, 因此开启了重删功能的备份速度非常慢。 0006 加快指纹查找速度, 可以有多种办法。 一是使用更加高端的磁盘作为存储介质, 如 更高的转速及高密度的机械式磁盘以及利用固态磁盘 (SSD) 替换机械式。其次是增加系统 的内存量, 通过操作系统自身。
10、的磁盘缓冲技术来加快数据的访问。但是将所有数据存储在 这样的高速介质中, 固然是一个解决数据访问速度的直接有效的方案。但是在数据量的总 量很大的情况下, 完全采用高端磁盘, 其增加的成本将会出现几倍, 甚至是几十倍的增长。 除非对一些关键应用, 否则这样的存储方案其性价比是得不偿失的, 在预算有限的情况下, 用户也无法承受这样的成本压力。 而增加系统的内存量, 随着磁盘容量越来越大, 所需要的 内存容量也越来越大, 结果就是内存容量无法跟上指纹库的膨胀速度。 0007 如果将指纹库与数据分开保存, 数据仍保存在机械磁盘中, 指纹库保存在高速存 储介质中, 利用高速存储介质相对机械磁盘无与伦比的。
11、读写性能, 就能明显提升重删数据, 最终提升数据备份的速度。 发明内容 0008 本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于级联式存 储介质的冗余数据清理方法。 说 明 书 CN 104462388 A 3 2/3 页 4 0009 本发明的目的可以通过以下技术方案来实现 : 0010 一种基于级联式存储介质的冗余数据清理方法, 其特征在于, 包括以下步骤 0011 (1) 将位于低速存储介质中的数据按照预设大小均分地分割成多个数据块 ; 0012 (2) 针对每个数据块进行如下操作 : 0013 i. 计算得到该数据块对应的 hash 值 ; 0014 ii. 在最高速存储。
12、介质中查找是否已存在该 hash 值, 若存在, 则删除该数据块并 后保存一个指针, 该指针指向已存在的与该数据块内容相同的数据块 ; 若不存在, 则进行步 骤 iii ; 0015 iii. 在高速存储介质中查找是否已存在该 hash 值, 若存在, 则删除该数据块后只 保存一个指针, 该指针指向已存在的与该数据块内容相同的数据块, 并将该 hash 值存入最 高速存储介质中 ; 若不存在, 则将该 hash 值存入高速存储介质和最高速存储介质中。 0016 所述步骤 2 的 iii 中将 hash 值存入高速存储介质后, 设定数量的 hash 值组合成 hash 组, 并在最高速存储介质中。
13、保存一个与每个 hash 组对应的索引表 ; 0017 所述步骤 2 的 iii 中在高速存储介质中查找是否已存在该 hash 值的方法具体为 : 根据 hash 值在所述索引表中查找该 hash 值所在的 hash 组, 并进一步在该 hash 组中查找 该 hash 值。 0018 所述 hash 值按照数据块的逻辑地址进行分组, 每个 hash 组中的 hash 值对应的数 据块在逻辑地址上是连续的。 0019 所述的步骤 2 的 iii 中将该 hash 值存入最高速存储介质中的方法具体为 : 将该 hash 值所在的 hash 组存入最高速存储介质中。 0020 所述hash组中ha。
14、sh值数量由高速存储介质特性以及hash值大小决定。 以SSD为 例, 假定 page 大小为 4K, hash 值大小为 128 字节, 则一个 hash 组中至少包含有 32 个 hash 值。可以包含更多的 hash 值, 但应该是 page 的整数倍, 以适应 SSD 的整条写的特点。 0021 所述的最高速存储介质可以为内存。 0022 所述的高速存储介质可以为 NVDIMM、 NVRAM、 SAS SSD 或 PCI-E SSD。 0023 所述的低速存储介质可以为机械磁盘。 0024 与现有技术相比, 本发明可以达到如下的效果 : 0025 1. 使用高速存储介质加快指纹查找速度。
15、, 从而提升了重删效率, 继而提高了写 IO 的性能。同时, 未访问低速磁盘, 不影响低速磁盘设备响应其它 IO 请求。 0026 2. 由于重复数据得到删除, 所以磁盘利用率得到提高, 不仅降低企业存储介质成 本, 还减少了数据管理成本。 附图说明 0027 图 1 : 数据块指纹组织结构图 ; 0028 图 2 : 指纹查找处理流程图。 具体实施方式 0029 下面结合附图和具体实施例对本发明进行详细说明。 0030 本发明通过将指纹库和实际数据分离, 将全部指纹保存在高速存储介质, 加速指 说 明 书 CN 104462388 A 4 3/3 页 5 纹查找过程, 提高重删效率。为了实现。
16、上述目的, 本发明的关键技术包含以下几个要点 : 0031 1. 在主存和低速磁盘之间增加高速存储介质, 将指纹库从原来低速磁盘中移出, 单独保存在高速存储介质中。 0032 2.为适应这种模式, 引入了新的数据组织方式。 先将低速磁盘上的数据进行切分, 可使用任意一种切分方式。 每个切分后的数据块, 通过hash函数, 产生唯一的指纹。 一定数 量的指纹组合成一个指纹组。指纹组中指纹数量由高速存储介质特性以及指纹大小决定。 以 SSD 为例, 假定 page 大小为 4K, 指纹大小为 128 字节, 则一个指纹组中至少包含有 32 个 指纹。可以包含更多的指纹。但应该是 page 的整数倍。
17、, 以适应 SSD 的整条写的特点。除此 之外, 一个指纹组中的指纹对应的的数据块在逻辑地址上应该是连续的。 0033 受限于主存大小, 高速存储介质中的指纹不可能全部保存到主存中, 当主存未命 中时, 就需要访问高速存储介质, 每次访问高速存储介质中的指纹就将其所属指纹组中的 所有指纹都读入主存中, 有效减少访问高速存储介质的次数。为了加快访问高速存储介质 的速度, 必须在内存中对它建立索引方便查找, 主存中的 hash 表就是为此设计的。新的数 据组织结构如下图 1 所示 . 0034 在本发明中, 将原来保存在低速磁盘中的和数据保存在一起的指纹库移到了高速 存储介质中, 并设计了适合于这。
18、种情形的数据结构, 因而原来的指纹查找过程不再适用, 需 要使用新的指纹查找过程替换先前的查找过程。根据图 2, 下面描述一下这个查找过程 : 0035 1) 首先在主存中查找, 若匹配则该数据块已存在, 只需要写入指向已存在的数据 块指针即可, 本次写入完成。 0036 2)若主存中查找不到, 则从高速存储介质中查找。 若命中, 则说明该数据块是一个 重复块, 只需要写入指向已存在的数据块的指针即可, 本次写入完成。同时, 根据数据局部 性原理, 该指纹组中的数据在随后可能还会被使用, 所以需要将该指纹组从高速存储介质 中读到主存中。 0037 3) 若高速存储介质中也查找不到, 则说明该数据块是一个新块, 需要计算出该数 据块的指纹, 并保存到高速存储介质中。 说 明 书 CN 104462388 A 5 1/2 页 6 图 1 说 明 书 附 图 CN 104462388 A 6 2/2 页 7 图 2 说 明 书 附 图 CN 104462388 A 7 。