重复数据删除方法 【技术领域】
本发明涉及一种数据删除方法, 尤指一种重复数据删除方法。背景技术 重复数据删除 (De-duplication) 是一种数据缩减技术, 旨在减少存储系统中使 用的存储容量。它通过删除存储系统中重复的数据, 只保留其中的一份, 从而消除冗余数 据。重复数据删除技术可以很大程度上减少对物理存储空间的消耗。
重复数据删除技术根据数据处理方式可分为在线处理方式 (In-Line) 与后处理 方式 (Post-Process)。
在线处理方式的重复数据删除方法是在数据写入磁盘之前执行重复数据删除。 在 线处理的重复数据删除在一定程度上减少了数据量, 但同时也存在一个问题, 去重操作本 身会降低数据吞吐速率, 造成业务性能的降低。 另外, 由于重复数据删除是在写入到磁盘之 前进行的, 因此重复数据删除处理过程本身就是一个单点故障。
后处理方式的重复数据删除方法是在数据写到磁盘后再执行重复数据删除。 数据 先被写入到临时的磁盘空间, 之后再开始重复数据删除, 最后将经过重复数据删除的数据 写入磁盘。由于重复数据删除是数据写入磁盘后再在单独的存储设备上执行的, 因此一般 对正常业务处理几乎不产生影响。 但由于目前的后处理方式不能对系统资源的占用进行动 态调整, 也不具备优先保障在线业务性能的功能, 当系统占用率过大时, 还是会对系统在线 业务造成影响。
重复数据删除技术根据去重粒度可以分为文件级、 文件块级、 字节级。
文件级的重复数据删除以文件为单位来检测、 删除重复数据。该方式的优点是算 法简单, 计算速度快, 缺点是去重率低。
文件块级的重复数据删除将一个文件按不同的方式划分成数据块, 以数据块为单 位进行检测。该方法的优点是计算速度快、 对数据变化较敏感。
文件块级重删按照分块方式的不同又分为定长分块与变长分块方式。
请参阅图 3, 定长分块方式将文件划分为固定长度的块, 但此方法对数据的插入和 删除非常敏感, 实际应用中数据重复度非常低, 重删效果十分有限。
字节级的重复数据删除从字节层次查找和删除重复的内容, 一般通过差异压缩策 略生成差异部分内容。字节级去重的优点是去重率较高, 缺点是去重速度较慢。
另外, 传统重复数据删除方法, 通过单个物理设备提供数据业务, 进行重复数据删 除时, 会形成故障单点, 对系统可靠性带来了挑战。
发明内容
本发明的目的在于克服现有技术的缺陷, 而提供一种重复数据删除方法, 实现了 可动态调整重删操作对系统资源的占用, 优先保障在线业务的性能, 对系统在线业务的影 响降至最低的重复数据删除方法, 具有可靠性高、 稳定性好、 去重率更高, 性能优的特点。实现上述目的的技术方案是 :
本发明的一种重复数据删除方法, 包括 :
写入文件, 对所述文件进行变长分块, 形成不同长度的复数个数据块并计算所述 数据块的哈希值 ;
通过对所述哈希值进行抽样, 形成所述文件的抽样数据 ;
通过比较所述文件的抽样数据与现有文件的抽样数据, 定位所述文件的一相似性 组;
通过比较所述文件的哈希值和一元数据库中所述相似性组的哈希值, 确定重复数 据块 ;
去重保存非重复数据块 ;
生成元文件, 并将所述非重复数据块的哈希值保存至所述元数据库中。
上述变长分块采用滑动窗口技术, 根据文件内容进行数据切分, 该技术对文件内 容变化不敏感, 插入或删除数据只会影响到较少的数据块, 其余数据块不受影响。
当计算上述数据块的哈希值时, 通过所述滑动窗口技术中一滑动窗口滑动前的哈 希值, 滑入字节值和滑出字节值计算所述滑动窗口滑动后的内部字节数组的哈希值, 提高 了重删操作的运算效率。 当计算上述数据块的哈希值时, 限定一所述数据块大小的最小值, 从所述数据块 头部最小值区间内的数据不进行哈希值计算, 降低了计算开销, 提高了重删操作的运行效 率。
当在比较上述文件的抽样数据与现有文件的抽样数据时, 若所述文件的抽样数据 与当前现有文件的抽样数据的相似度超过一定数值, 则确定当前现有文件的抽样数据对应 的数据组为所述文件的一相似性组。
上述数据块按照似性组分组保存。
上述元文件是原文件的数据描述, 包含了原文件的各项文件属性等内容, 并记录 了原文件各数据块的存放位置。
当系统收到一读写请求时, 进一步包括以下步骤 :
判断目标文件是否为经过重删操作的文件 ;
若所述目标文件未经过重删操作, 直接读写所述目标文件 ;
若所述目标文件经过重删操作, 则对所述目标文件的元文件进行解析, 定位读写 请求的目标数据块 ;
完成读写等操作。
上述去重步骤的周期可调。
本发明由于采用了以上技术方案, 使其具有以下有益效果是 :
本发明中的重复数据删除基于策略的后处理式重删技术。 用户可自定义重删操作 的周期, 控制重删操作的启动时机。重复数据删除操作在系统后台运行, 对业务完全透明, 可动态调整重删操作对系统资源的占用, 优先保障在线业务的性能, 对系统在线业务的影 响降至最低。滑动窗口技术对文件内容变化不敏感, 插入或删除数据只会影响到较少的数 据块, 其余数据块不受影响。读写重删文件写时, 无需将该文件所有的数据块全部解析出 来, 只需定位出此次写操作影响的数据块, 进行小范围的数据操作, 这些措施在最大程度上
保障了开启重删功能系统的业务读写性能。实现了可动态调整重删操作对系统资源的占 用, 优先保障在线业务的性能, 对系统在线业务的影响降至最低的重复数据删除方法, 具有 可靠性高、 稳定性好、 去重率更高, 性能优的特点。 附图说明
图 1 为本发明一种重复数据删除方法的流程图 ;
图 2 为本发明一种重复数据删除方法的变长分块技术原理图 ;
图 3 为现有技术的定长分块技术原理图 ;
图 4 为现有技术的相似性检测技术原理图。 具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
请参阅图 1, 本发明的一种重复数据删除方法, 包括以下步骤 :
首先, 写入文件, 对该文件进行变长分块, 形成不同长度的复数个数据块并计算数 据块的哈希值 ;
通过对哈希值进行抽样, 形成该文件的抽样数据 ;
通过比较文件的抽样数据与现有文件的抽样数据, 定位文件的一相似性组 ;
若文件的抽样数据与当前现有文件的抽样数据的相似度超过一定数值, 则确定当 前现有文件的抽样数据对应的数据组为文件的一相似性组。
通过比较文件的哈希值和一元数据库中相似性组的哈希值, 确定重复数据块 ;
去重保存非重复数据块 ;
生成元文件, 并将非重复数据块的哈希值保存至元数据库中。
元文件是原文件的数据描述, 包含了原文件的各项文件属性等内容, 并记录了原 文件各数据块的存放位置。
数据块按照似性组分组保存。
当系统收到一读写请求时, 进一步包括以下步骤 :
判断目标文件是否为经过重删操作的文件 ;
若目标文件未经过重删操作, 直接读写目标文件 ;
若目标文件经过重删操作, 则对目标文件的元文件进行解析, 定位读写请求的目 标数据块 ;
完成读写等操作。
上述去重步骤的周期可调。
请参阅图 2, 变长分块采用滑动窗口技术, 根据文件内容进行数据切分, 该技术对 文件内容变化不敏感, 插入或删除数据只会影响到较少的数据块, 其余数据块不受影响。
当计算上述数据块的哈希值时, 通过滑动窗口技术中一滑动窗口滑动前的哈希 值, 滑入字节值和滑出字节值计算滑动窗口滑动后的内部字节数组的哈希值, 提高了重删 操作的运算效率。
采用双阈值双除数算法 (TTTD), 对重删操作进行了进一步的性能优化。当计算上 述数据块的哈希值时, 限定一数据块大小的最小值, 从数据块头部最小值区间内的数据不进行哈希值计算, 降低了计算开销, 提高了重删操作的运行效率。
方法通过一定的算法对文件数据块的哈希值 (HASH) 进行抽样, 将这些抽样值与 当前系统中已有数据块的哈希值对比确定文件的相似性。根据文件的相似度, 可将重删后 的文件分成不同的相似性组。每个相似性组中, 各文件的抽样 HASH 构成了该组的相似性索 引。同一相似性组中的所有文件分块 HASH 保存在该组的元数据库中, 供新文件写入时进行 HASH 比对。
有文件需要进行重删时, 先将该文件的抽样 HASH 值与各相似性组中文件的相似 性索引进行比较, 若该文件与某一相似性组的相似度超过一定数值, 则确定该文件归属于 该组, 最后再将该文件中各个分块的 HASH 值与该组元数据库中 HASH 值相比较, 存储不重复 的数据块, 并刷新相应的元数据。
这种技术降低了识别重复数据过程中的数据查询次数, 与传统的在线数据重删技 术相比, 大大提升了重复数据删除的性能。
重复数据删除功能模块部署在系统中每个集群节点上, 集群中任意一个节点或数 个节点故障, 重删业务及用户读写业务均不会受到影响。
重删可动态调整重删操作对系统资源的占用, 优先保障在线业务的性能, 可以智 能调整重删操作对系统资源的占用。重删采用了文件变长分块技术, 利用了滑动分块技术 以及高效的 Adter 算法及 TTTD 算法, 在文件分块运算效率上优于传统重复数据删除技术。 另外, 重删使用领先的文件相似性检测技术检测重复数据, 这种技术通过相似性检测算法 将存储系统中的文件分为多个相似性组, 在组内进行数据比对, 更有利于重复数据的识别, 并且减少了数据比对次数。 请参阅图 4, 本发明的重复数据删除使用获专利的文件相似性检测技术来进行重 复数据的识别。这种检测技术通过一定的算法对文件数据块的 HASH 值进行抽样, 将这些抽 样 HASH 值与当前系统中已有数据块的 HASH 值对比确定文件的相似性。 根据文件的相似度, 可将重删后的文件分成不同的相似性组。每个相似性组中, 各文件的抽样 HASH 构成了该组 的相似性索引。同一相似性组中的所有文件分块 HASH 保存在该组的元数据库中, 供新文件 写入时进行 HASH 比对。
有文件需要进行重删时, 先将该文件的抽样 HASH 值与各相似性组中文件的相似 性索引进行比较, 若该文件与某一相似性组的相似度超过一定数值, 则确定该文件归属于 该组, 最后再将该文件中各个分块的 HASH 值与该组元数据库中 HASH 值相比较, 存储唯一的 数据块, 并刷新相应的元数据。
这种技术降低了识别重复数据过程中的数据查询次数, 与传统的在线数据重删技 术相比, 大大提升了重复数据删除的性能。
我们通常使用重复数据删除比率 ( 简称重删比 ) 来衡量重复数据删除的效果。若 用重删前的总数据量表示在传统存储系统中存储数据所需的空间大小, 用重删后的总数据 量表示在带重删的存储系统中存储相同数据所需的空间大小。 这两个数值间的差异率即是 重复数据删除比率。
重复数据删除比率等于重删前的总数据量与重删后的总数据量 ;
通过重复数据删除特性对文件系统中的数据进行处理时, 数据集内重复数据段的 数量会因为数据性质的不同而存在很大的差异, 这通常取决于数据文件的类型以及创建这
些文件的应用程序。 对具体应用场景的分析有助于我们了解重复数据删除特性在这些场景 中的应用效果与价值。
在某些特定的应用场景下, 例如 : 来自特定数据库的一组备份映像, 将数据写入文 件系统中时, 重复数据删除的优势往往非常明显, 因为每个新的写入操作只会写入该操作 引入的新数据段, 而在传统的数据库备份应用中, 两个备份之间的数据段级差异时常只有 1% -2%, 尽管高变化率也会存在。在这样的应用场景下, 高效的重删比将令投资者满怀信 心。
相反, 在另一种应用场景下, 例如 : 保存数万份照片的素材库, 重复数据删除能够 取得的效果则差强人意。因为不同的照片间能够找到的重复数据段数量极为有限。这将最 终体现为低效的重删比。
因此, 在应用重复数据删除技术时, 需要针对具体应用场景进行具体的分析。 我们 推荐在两种应用场景中开启重复数据删除功能, 一是备份应用场景, 此种场景下, 数据的重 复率极高, 重删效果十分明显 ; 二是虚拟机应用场景, 此种场景下, 存储系统中会存放大量 虚拟机文件及这些文件的拷贝, 数据重复率高, 重删效果明显。
重复数据删除使用了多种技术优化性能, 对系统在线业务的性能几乎不会带来任 何影响。 首先, 重删可动态调整重删操作对系统资源的占用, 优先保障在线业务的性能, 可 以智能调整重删操作对系统资源的占用。
其次, 重删采用了领先的文件变长分块技术, 利用了滑动分块技术以及高效的 Adter 算法及 TTTD 算法, 在文件分块运算效率上优于传统重复数据删除技术。
另外, 重删使用领先的文件相似性检测技术检测重复数据, 这种技术通过相似性 检测算法将存储系统中的文件分为多个相似性组, 在组内进行数据比对, 更有利于重复数 据的识别, 并且减少了数据比对次数。与传统重复数据删除技术相比, 去重率更高, 性能更 优。
传统重复数据删除产品中, 通过单个物理设备提供数据业务, 此时, 重复数据删除 软件以及承载该软件的物理设备都会成为故障单点, 对系统可靠性带来了挑战。
本发明将重复数据删除与 Active-Active 集群技术相结合, 提供了系统级的可靠 性。 在多节点的集群环境中, 只要系统中任意一个节点仍然在正常运行, 那么重复数据删除 及重删数据的读写都能够顺利执行, 保障了客户业务的连续性。
本发明的重复数据删除功能通过消除数据存储空间中的冗余数据, 用户可从存储 空间效率上获益。 这将直接体现为初期存储采购成本的降低, 并且, 重复数据删除功能可有 效控制数据增长, 也延缓了后继的存储扩容需求。 另外, 存储空间需求的降低使得用户无需 管理大量的存储设备, 带来了空间、 电力、 制冷及维护管理等运维成本的降低。最大限度降 低 TCO。
本发明中的重复数据删除技术应用于备份应用场景时, 去重效果极为明显。这种 应用场景中, 备份服务器将用户数据备份到 NAS 存储空间中, 通过一定的备份策略, 进行全 备、 增备, 数据重复度高。
本发明中的重复数据删除在虚拟机应用场景中也具有较大的优势。在这种应用 中, 用户将大量虚拟机文件存放在存储设备中, 这些文件通常包含相同的 OS 系统, 这就意
味着大量的重复数据。重删针对虚拟机文件进行了优化, 可高效识别此类文件中的重复数 据。
重复数据删除是基于策略的后处理式重删技术。用户可自定义重删操作的周期, 控制重删操作的启动时机。重复数据删除操作在系统后台运行, 对业务完全透明。另外, 与 传统后处理式在线数据重删技术不同的是, 本发明中的重删可动态调整重删操作对系统资 源的占用, 优先保障在线业务的性能, 对系统在线业务的影响降至最低。
以上结合附图实施例对本发明进行了详细说明, 本领域中普通技术人员可根据上 述说明对本发明做出种种变化例。 因而, 实施例中的某些细节不应构成对本发明的限定, 本 发明将以所附权利要求书界定的范围作为本发明的保护范围。