块级重复数据删除技术 ǁ

功能结构:

  1. Dedup engine

重删引擎涵盖了重删客户端与重删服务器中的数据分割,指纹标识,指纹识别,以及重删客户端本地去重与重删服务器二次去重之间的业务交互等。它还包含针对已进行重删文件和数据的存储与管理。

  1. Dedup manage

重删管理器涵盖功能包括:重删全局配置的维护,重删内部功能的控制与优化,安全机制的管理与配置等。后期它还应包括并行重删业务中的多节点指纹库管理。此部分内容为第二阶段实施内容;

生命周期:

1.初始播种期

首次针对所有重删客户端进行备份的场景称为重删业务的初始播种期。 该业务周期的功能体验表现为重删客户端算力与重删服务器资源均为高消耗阶段。

第二阶段目标:最大化提升首次备份的重删率;启用压缩+重删;

2.重删操作期

当所有客户端已经备份一次后进行的正常重删操作期。

第二阶段目标:提升整体重删率;重删场景策略应用+并行重删;

3.维护清理期

执行维护操作,如删除失效的备份数据块。

第二阶段目标:逐步完善重删管理器中的指纹库分配与回收机制;

环境配置:

1.硬件部署优化

1)支持ssd加速

通过将ssd作为重删指纹库的存放位置,以借助ssd的高性能读写,达到提高重删指纹库的索引查询速度,提升重删业务效率。

2)基础存储要求

在进行重删业务配置之前,必须先将存储配置好且为正常工作状态。重删业务要求以独占方式使用存储资源,如果保证不了独占方式使用存储,则将无法管理重删池容量以及无法正确管理重删生命周期的各项策略。因此,重删功能必须使用独立存储单元进行重删业务部署。

3)重删存储容量

重删系统有最大的重复数据删除的理论容量。 重删服务器的重删指纹库与重删业务日志使用过程中会占用部分存储容量。如果将重删指纹库容量包括在内时,则应使用90%的阈值存储数据以防止整体存储过载。为了优化重删存储性能,建议为重删服务器指纹库使用单独的存储磁盘或存储卷。

重删客户端的缓存是基于备份任务而一一对应的,可根据单个任务的数据量计算出最大的指纹缓存占用量。计算公式大致如下:

(任务的预估数据量 / 任务对应的最小分块大小)* 48(字节)* 1.5 * 2 = 任务对应的最大指纹缓存占用量

(如包含多个任务则需累加多个任务对应的最大指纹缓存占用量)

2.软件策略优化

1)文件备份的最优分块

a.高压缩比的文件数据源

此类数据源分块范围越大,重删率越高,备份速率越快。(建议重删分块范围为256~512KB;例如:word, txt, log等文件类型)

b.低压缩比的文件数据源

此类数据源分块范围为默认值时,重删率较高,备份速率也相对较高。(建议重删分块范围为16~128KB;例如:图片,视频,镜像,压缩等文件类型)

c.大文件数据源

此类数据源建议使用文件级重删业务,对于非首次备份场景,备份速率较快。(最小重删的文件大小建议为50MB)

d.海量小文件数据源

此类数据源建议使用数据块级重删业务,备份速率受磁盘读写IO限制。(文件大小均小于10MB)

2)虚机备份的最优分块

a.对于VMware备份任务来说,分块越大备份速率越快,即最优分块范围建议使用256~512KB。

b.多次备份(不算首次备份)场景,不同分块基本不影响备份速率,备份速率取决于磁盘读写或网络带宽。

c.因一般重删任务首次重删率大于0,故开启较大分块重删的备份速率可能会高于不开的备份速率。

d.重删率跟备份文件重复数据量有一定关系。按照测试结果,最小分块重删率最高,最大分块其次,默认分块重删率最低。

3)数据库备份的最优分块

a.在备份测试数据容量为8T的重删测试中,分块为16~128K的三次备份速率最高达到290M/s,4~16K最低122M/s。

b.在备份测试数据容量为8T的重删测试中,分块为128~256K的最高备份速率达到280M/s。

4)其它备份的最优分块

按照理论,重删分块范围越小,重删率越高;重删分块范围越大,备份速率越快;但在最小分块为4KB时,系统资源占用达到最高;重删分块范围建议使用默认值16~128KB;

5)文件大小对重删率的影响

现象为: 如果在首次备份后不久对客户端进行第二次备份,此时重复数据删除率不高。但是如果在文件指纹处理后进行二次备份,则会提高重复数据删除率。

结论为:  使用大文件段合并的小文件可能会导致初始重删率较低。在重删引擎执行指纹库处理后,重删率会上升。

3.重删客户端设置

用户应可以根据设置向导针对重删缓存存储路径和重删任务的内存使用大小进行设置; 客户端产生的指纹缓存会根据用户设置存储到制定的重删缓存存储路径下,如果用户不进行配置,则使用默认值进行配置;(客户端安装路径\dedup.cfg)

用户还可以根据自身客户端的实际运行内存环境配置重删任务的内存空间大小,以提高重删功能效率;默认值为1024MB;

4.重删服务器设置

重删指纹库相关的配置内容(多节点内容相关,暂无)

核心算法介绍:

1.数据切块算法(客户端)

对不同的备份目标类型的采用不同的数据块分割技术,充分利用了固定块和变长块的技术优势,既保障了源端重删时对客户端主机资源的最小化占用,又实现了对重复数据的最大化删除。

对于结构化数据、操作系统备份、虚拟机备份等备份目标,采用了固定块的分割技术。因为在这些数据中,现有数据变化不大,而更多的是新增数据,采用固定块技术,可以避免对旧有数据的重分块处理,而更多处理工作在于对新增数据的分块计算和数据重删。这样在保障数据重删效果的同时,也减少了重删处理对客户端主机资源的占用。

对于非结构化数据,特别是海量小文件的备份,采用了变长块的分割技术。因为海量小文件中,数据变化情况复杂,采用固定块分割,常导致重新对整个备份数据进行重新分块,而采用变长块的分割处理,解决了固定块分割中存在的问题,只针对变化部分的数据做分割处理,这样就大大降低了数据分割处理上对客户端计算资源的占用,并且保障了海量小文件的最佳数据重删效果。

1)完全文件检测技术(文件级重删)

WFD 技术是以文件为粒度查找重复数据的方法。首先对整个文件进行 hash 计算,然后将该值与已存储的 hash 值进行比较,如果检测到相同的值,则仅将文件用指针替换,不进行实际存储,否则存储新文件。

将 hash 算法引入到重复数据删除技术中,是利用了 hash 值可以唯一地表征 特定的数据实体,通过hash 技术数据被标志为一个固定大小的值,比较该值就可以判别数据的重复性。目前 MD5 和 SHA1 是应用最广泛的 Hash 算法,两者的抗冲突性都比较好。

2)基于FSP算法的块检测技术

完全文件检测技术不能用于文件内部的重复数据查找,因此提出了更细粒度——块级别的重复数据检测。基于固定尺寸划分算法(FSP)的相同数据块检测技术是使用固定大小的分块策略在存储系统中识别相同数据的方法。该方法分 3 个步骤:(1) 提供一个已经预先定义好的块的大小(该值独立于所存取的数据内容),所有文件均按照这个固定的块大小进行划分;(2) 每个划分好的数据块均通过哈希算法(MD5 或SHA1)得到一个指纹值;(3) 将该值与已存储的块指纹值进行比对,如果检测到相同的值,则删除其代表的数据块,否则存储新的数据块。

3)可变分块检测技术

CDC算法是应用 Rabin指纹将文件分割成长度大小不一的分块策略。与固定分块策略不同的是,它对文件进行块划分的方法是基于文件内容的,因此数据块大小是可变的。其过程有两步:(1) 一个文件按照 CDC 算法分为若干数据块。CDC 算法首先从文件头开始,将固定大小(互相重叠)的滑动窗口中的数据看成组成文件的各个部分。在窗口的每个位置,该窗口中数据的一个指纹(Fingerprint)被计算出来。在实际中鉴于 Rabin 指纹计算的高效性及 Rabin 指纹函数的随机性(对任意数据呈现出均匀分布),大多使用其计算滑动窗口内容的指纹值。当指纹满足某个条件时,如当它的值模某个指定的整除数为 0 时,则把此时窗口的位置作为块的边界。重复这个过程直到整个文件数据都被分为块。(2) 划分出的每个块用 hash 函数(MD5,SHA-1或更高的 SHA 标准函数)计算出它的指纹值并与已存储的数据块进行对比,如果检测到相同的指纹值,则删除其代表的数据块,否则存储新的数据块。

2.指纹标识算法(客户端)

关于重复数据删除指纹识别dedup engine使用唯一标识符来标识备份的每个文件和每个数据块。该引擎会标识备份映像中的文件,然后处理这些文件。此过程称为指纹识别。(Rabin karp算法简要介绍,略)

3.指纹去重算法(服务器)

基于 bloom filter 的检测技术

Bloom filter是一种集合的表示方法,能够支持成员查询(查询某元素是否在该集合中)。将 bloom filter 技术引入到相似数据检测中,可以弥补 shingle 中应用特征集交集计算文件相似性所导致的高计算开销,在性能与相似性匹配精度之间取得平衡。

在副本同步消除冗余的技术中,系统应用 bloom filters 进行文件相似性检测,其中每个文件被看作是bloom filter 中定义的一个集合,它的元素是文件按照 CDC 算法所划分出块的指纹值。有相同指纹值集合的文件由相同的 bloom filter 表示。相应地,相似的文件在它们的 bloom filter 中有大量共同的 1.因为 bloom filter 存在一个有限的错误匹配概率的特性,文献证明在所提出的 CDC 与 bloom filter 相结合的技术中,错误匹配的位的部分取决于 bloom filter 的大小。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Capricorn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值