原理
SmartDedupe&SmartCompression特性通过删除重复数据或对业务数据进行压缩,减少数据冗余,节省存储空间。并且通过减少对SSD盘的写入次数和数据量,提高SSD盘使用寿命。
相关概念
在了解SmartDedupe&SmartCompression特性的原理前,需要先了解相关概念:
- 重删数据块大小:用于指定存储系统进行重删的粒度。
- 压缩数据块大小:用于指定存储系统进行压缩的粒度。
- 相似重删:重删过程中,存储系统按照相同的重删数据块大小对写入LUN的相似数据进行重删。
- 指纹信息:数据块的代表,是一个固定长度的二进制数值。OceanStor Dorado V6系列存储系统采用弱哈希算法计算出数据块的指纹信息。存储系统中将所有数据块的指纹信息和数据存储位置的映射关系存储在指纹库中。
- 机会表:保存数据块的指纹信息和位置信息,用于识别热点指纹。
- 逐字节比较策略:查找重复数据块时,进行指纹信息对比后,如果指纹信息一致,还会逐字节比较数据块中的数据。
- 重删元数据:保存重删处理相关信息。例如,数据块的指纹信息,重删后数据的存放位置等。
重复数据删除
存储系统进行相似数据重删处理的流程如图1-1所示。
第一步:
- 存储系统对新写入的数据进行分块。LUN上设置的“应用请求大小”即为分块的大小。
- 存储系统利用相似指纹算法计算新写入数据块的相似指纹信息。
- 写入数据块到硬盘,并将数据块的指纹信息和位置信息写入到机会表。
第二步:
- 存储系统周期性的检查机会表中是否存在相似的指纹信息。
- 是 =>执行2。
- 否 => 继续周期性检查。
- 通过逐字节比较结果确认相似的数据块是否相同。
- 比较结果相同 => 存储系统认为新写入的数据块与原有数据块重复,删除该数据块,并在指纹库中将该数据块的指纹信息及存储位置映射关系指向原有数据块的记录。
- 比较结果相似 => 存储系统将数据块进行差量压缩,记录指纹信息到指纹表,更新指纹信息到数据块元数据中,并回收这些数据块的空间。
例如,存储系统中LUN1、LUN2和LUN4的属性相同。LUN1、LUN2和LUN4中原有数据块,及LUN1新写入数据块J、数据块K、数据块L与原有数据的比较结果如表1-2所示。
LUN名称 |
原有数据块 |
新写入数据块特征 |
---|---|---|
LUN1 |
数据块A、数据块B、数据块C |
|
LUN2 |
数据块D、数据块E、数据块F |
- |
LUN4 |
数据块G、数据块H、数据块I |
- |
存储系统采用不同的数据重删策略时,数据重删结果的示意图如图1-2所示。
数据压缩
OceanStor Dorado V6系列存储系统实现了在线压缩。如果创建LUN时对该LUN开启了数据压缩(SmartCompression)功能,后续存储系统会对写入该LUN的所有数据进行数据压缩处理。
数据压缩处理的示意图如图1-3所示。