重复数据删除工作原理

在整个 FlexVol 卷或无限卷中,重复数据删除在块级别下运行,这样不但能够删除重复数据块,而且只会存储唯一的数据块。

每个数据块都具有一个数字签名,此签名将与数据卷中的所有其他签名进行比较。如果存在完全匹配的块签名,则会对块中的所有字节执行逐字节比较。仅当所有字节都匹配时,才会丢弃重复块并回收其磁盘空间,从而避免造成任何数据丢失。

重复数据删除将消除数据冗余,如下图所示:


../images/GUID-D91471C7-FC25-4A3C-A749-98ED40C6E9DA-low.gif

Data ONTAP 以 4 KB 的块为单位将所有数据写入到存储系统。首次对已经存在数据的卷运行重复数据删除时,此操作会扫描该卷中的所有块并为每个块创建数字指纹。每个指纹将与卷中的所有其他指纹进行比较。如果发现两个指纹完全相同,则会对块中的所有数据执行逐字节比较。如果逐字节比较检测到完全相同的数据,则会更新指向该数据的指针,并删除重复块。
注:对已经存在数据的卷运行重复数据删除时,最好将重复数据删除配置为扫描该卷中的所有块,以便节省更多空间。

重复数据删除在活动文件系统上运行。因此,随着更多数据写入到已进行重复数据删除的卷,将为每个新块创建指纹并将其写入到更改日志文件。对于后续的重复数据删除操作,系统将对更改日志进行排序并将其与指纹文件合并,然后重复数据删除操作将继续执行如前所述的指纹比较。

有关对无限卷运行重复数据删除的详细信息,请参见《集群模式 Data ONTAP 无限卷管理指南》