技术概述
一种数据缩减技术,通常用于基于磁盘的备份系统,旨在减少存储系统中使用的存储容量。它的工作方式是在某个时间周期内查找不同文件中不同位置的重复可变大小数据块。重复的数据块用指示符取代
重删分类
在线/离线
在线重删:指数据在写入磁盘之前进行重删。
后处理重删:数据先写入磁盘,然后再读出来进行重删,重删之后的数据再写入磁盘中。
定长/变长
定长重删:数据按照固定长度进行分块,之后进行重删。
变长重删:数据被划分成不同大小的块进行重删。变长重删一般使用在备份场景中,这种分块重删方式一般可以获得比较好的重删效果。
块级别/文件级别
块级重删:以数据块为粒度进行指纹计算,之后重删。
文件级重删:以整个文件为粒度计算指纹,然后重删(文件级重删又称为单一实例库重删)。
误区提醒:
关于数据块级重删和文件级重删,普遍存在一些误区,以为在文件系统中的重删就是文件级重删。其实在文件系统中,也可以将文件按照粒度分割成单个的数据块,实现数据块级的重删,这种方法也是统一存储中,友商实现重删功能的普遍做法。
源端/目标端
源端重删:数据在源端经过分块并计算指纹,之后发送到目标端进行查重,如果是新的数据块,则通知源端将该数据块发送到目标端进行保存;如果是重复块,则不发送。源端重删的目主要是为了节省两端之间的传输带宽。
目标端重删:直接将数据传输到目标端,在目标端进行分块、计算指纹并查重下盘。
说明:在一套存储设备中,上述重删方式不是孤立的存在,通常都是几种方式的组合。如在备份场景中,一般都采用在线、变长、块级、目标端(或者源端)重删的方法。
重删与压缩的关系
数据压缩是一种字节级的数据缩减技术,其思想是采用编码技术,常用的如Huffman编码,将较长的数据用较短的、经过编码的格式来表示,以此达到减少数据大小的目的。
从效果上来看,可以认为重复数据删除是一种基于“数据块”的压缩,而数据压缩是一种基于“字节”的重复数据删除。
从应用上来看,重删和压缩通常会配合起来一起使用。如在备份场景中,为了提高数据的缩减效率,在数据经过重删之后会对唯一数据块再执行一次压缩。这样,数据的缩减效果就是重删和压缩效果的叠加。