【大V开讲】OceanStor V3系列数据重删与压缩技术
|
什么是SmartDedupe&SmartCompression? 随着业务的不断增长,需要存储的业务越来越多。随着数据量的增大,企业可能面临如下问题: 业务数据中可能存在大量的冗余数据。冗余数据的增长势必导致购买存储设备的费用大幅增长。 存储设备的增加,带来了维护管理的复杂性。同时,为了维持存储设备的正常运行,需要投入大量的资金用于建设机房环境、提供电力和冷却系统。 由此可见,冗余数据带来的价值远远小于企业用于维护存储设备的成本。因此,在保证信息不丢失,不影响业务数据准确性的前提下,缩减冗余数据量,减少冗余数据占用的存储空间成为系统管理员关注的问题。 SmartDedupe&SmartCompression是华为技术有限公司提供的数据缩减技术,旨在减少冗余数据占用的存储空间,提高存储系统的传输、处理和存储效率。 SmartDedupe&SmartCompression包括数据重删和数据压缩两种功能。 SmartDedupe通过删除存储系统中的冗余数据块,减少数据占用的物理存储容量,从而满足日益增长的数据存储需求。 SmartCompression通过对数据进行重新组织,减少数据占用的物理存储空间,提高存储系统的传输、处理和存储效率。 SmartDedupe&SmartCompression是如何实现的(说明是在线重删)? 存储系统支持的SmartDedupe&SmartCompression是在写入数据之前实现的,即主机下发写请求后,存储系统先进行重删压缩处理,再写入硬盘,实现在线重删和压缩。 在SmartDedupe&SmartCompression特性中您需要了解的概念如下: 重删数据块:用于指定存储系统进行重删的粒度。 对于LUN,重删数据块的大小与Thin LUN的分配单元大小一致。根据业务需要,用户可以在CLI模式下运行create lun命令创建Thin LUN时设置不同的分配单元大小(grain_size)。 对于文件系统,重删数据块的大小与文件系统块大小一致。根据业务需要,用户可以在CLI模式下运行create file_system general命令创建文件系统时设置不同的文件系统块大小(block_size)。 压缩数据块:用于指定存储系统进行压缩的粒度。存储系统基于新写入存储系统的数据块大小进行智能合并压缩。 哈希算法:校验数据块一致性的方法。通过该方法,可以计算出数据块的指纹信息。当两个数据块的指纹信息一致时,存储系统会认为这些数据块是重复的。 逐字节比较策略:查找重复数据块时,对哈希算法的补充校验方法。当采用逐字节比较策略时,存储系统除了要对比指纹,还需要逐字节比较数据块中的数据。 对于LUN或文件系统,SmartDedupe和SmartCompression功能可以单独开启也可以同时开启。同时开启SmartDedupe和SmartCompression时,存储系统先进行重删处理再进行压缩处理。下面分别讲解SmartDedupe和SmartCompression的实现过程。 SmartDedupe处理流程
存储系统利用哈希算法计算新写入数据块的指纹信息。 通过指纹信息对比,判断新写入数据块与原有数据块是否重复。 是 => 存储系统认为新写入的数据与原有数据重复,删除该数据块,并将该数据块的存储位置指向原有数据块的存储位置。 否 => 存储系统认为新写入的数据是一个新数据块,将新数据块写入硬盘。 例如,LUN中原有数据为A、B和C。应用服务器写入数据块D和数据块E,数据块D和数据块E与原有数据的比较结果如表1所示。采用不同的数据重删策略时,数据重删处理结果示意图如图2所示。
存储系统提供的 “逐字节比较”策略,可以提升数据块比对的准确度。用户可以在CLI模式下运行change lun命令或change file_system dedup_compress设置逐字节比较策略。 存储系统进行SmartCompression处理时,会根据用户设定的压缩策略进行不同程度的压缩。存储系统支持如下两种压缩策略: Fast:Fast策略是系统默认使用的压缩方法。该方法压缩速度快,但与Deep策略相比压缩后空间节省效率低一些。 Deep:Deep策略可以获得空间节省效率的明显提升,但压缩和解压需要花费更长的时间。 数据块写入示意(SmartCompression处理)
使用SmartDedupe&SmartCompression时有哪些限制条件? 在OceanStor V3R3存储系统中,文件系统和LUN都支持SmartDedupe&SmartCompression特性。 在使用时需要注意以下事项: 只有Thin LUN和配置了SmartThin特性的文件系统才能配置SmartDedupe&SmartCompression特性。 Thin LUN只有在创建时才能开启SmartDedupe&SmartCompression;创建成功后,无法通过修改属性进行开启。文件系统可以在创建时开启SmartDedupe&SmartCompression,也可以在创建成功后通过修改属性开启。 SmartDedupe&SmartCompression是一项增值特性,需要购买License才能使用。对于文件系统, SmartDedupe和SmartCompression需要分别购买License,License文件中对应的“特性名称”分别为“智能数据重删(文件系统专用)”和“智能数据重删(文件系统专用)”;对于LUN,SmartDedupe和SmartCompression共用一个License,License文件中对应的“特性名称”为“智能数据重删压缩(LUN专用)”。 为什么会出现逐字节比较策略? 在计算数据块的指纹信息时,可能会出现不同数据块计算出相同的指纹信息,此现象称为哈希冲突。逐字节比较策略主要是为了解决哈希冲突。 开启SmartDedupe&SmartCompression特性后是否会对业务有影响? 存储系统实现SmartDedupe&SmartCompression特性的过程中,计算指纹、指纹对比、压缩等过程会占用CPU资源。所以重删压缩的数据越多,系统性能的影响越大。 智能加速模块是否适用于所有的场景? 存储系统支持智能加速模块,通过将计算指纹、指纹对比、压缩等过程占用的CPU资源卸载到硬件上,减少对其他业务的影响。但并非所有的场景都适合使用智能加速模块。由于智能加速模块中可以处理并行I/O的通道不多,在以IOPS为主的业务中(例如数据库),会造成I/O请求排队,时延增加。在以带宽为主的业务中(例如VDI),建议安装智能加速模块,减少CPU对其他业务的影响。 各业务场景中数据的重删压缩率是多少? 重删压缩的效果和其处理的数据强相关,不同的数据和场景重删和压缩的效率不同。
以上数据仅供参考。在业务运行中,重复数据删除和数据压缩的空间节省效率请以实际为准。
|







