华为 发表于:14年05月16日 15:33 [综述] DOIT.com.cn
重复数据删除技术作为存储十大热点技术备受大家的关注。在备份存储领域,重删技术已基本成熟,且具有极高的市场价值,各大厂家都推出了相关的重删产品,并受到了客户青睐。而在主存储领域,重删技术虽然还不够成熟,但由于市场的需要及较高的市场价值,很多厂商也都推出了主存储重删产品。但在主存储场景下,客户对存储的性能要求都比较高,考虑到对性能的影响,很多厂商在重删技术上面选择了后重删技术,如EMC的VNX、NetApp的FAS。然而,后重删技术能解决我们主存储场景下的问题吗?
重删之“痛” ——后重删:
一痛:后重删与快照天然的就存在兼容性的问题。重删的目的是对数据进行处理,当存在重复数据时,需要将重复的数据删除从而达到节约空间的目的,而快照的目的则是将快照后的元数据和数据进行锁定,保证快照时刻数据的完成性。当快照后进行重删,重删为了缩减数据对数据和元数据进行修改或删除,而快照则是将修改或删除后的元数据和数据拷贝到快照空间保证快照时刻数据的完成性。为此,虽然重删缩减了正在使用的空间容量,但快照空间容量则会大幅度增加,最终起不到任何数据缩减的效果。为此,选择后处理重删的厂家都要求在重删压缩后再进行快照,当前EMC的VNX、NetApp的FAS都存在这样的情况。这使得用户在同时使用快照和重删功能时,非常的不满意。
二痛:后重删处理重删数据会滞后,一般是一天或一周处理一次。这就需要用户预留足够的空间存储这段时间内产生的新数据,即使是所有的新数据都是重复数据。例如:在批量部署虚拟机时,每个虚拟机50G,部署1000个,则需要预留50T的空间,而实际重删后所占空间仅需要50G。
三痛:后重删原理:先将数据写入到设备,待重删时,再将未重删的数据读到内存中进行重删处理,如下图1:后处理重删示意图。由此可以分析,后处理对一个数据块需要进行两次写,一次读的操作。也就是说由于后处理重删的原因,会导致设备总的负荷增加,在设备空闲业务时间很少或不间断时,后处理重删实际上对性能的消耗将大于在线重删(在线重删对一个数据块仅需1次写,如图:在线重删示意图)。同时,由于增加了写的次数,对磁盘寿命也有一定的影响,特别是SSD,这在闪存阵列中是无法接受的。
在线重删示意图
四痛:为了更好的使用重删功能,减少对系统性能的影响。推出后重删产品的厂商都提供了对应的一些配置策略,以及使用须知等。这使得在使用重删功能时变得很复杂,需要考虑的东西很多。这不符合存储的发展方向:简单、易用。
后重删有如此多的痛,而在线重删就没有了吗? 在线重删由于在写入数据后就已经完成了重删,所以可以很好的和快照兼容;在预留空间问题上,由于是实时重删也不存在问题;在对设备总的IO负荷方面,由于数据经过了重删写盘数据更少,显得优势更为明显,特别是在全闪存阵列中。当前主要的全闪存阵列厂商都是采用的在线重删方案。而在易用性方面,在线重删功能的配置等,简单很多,仅需开启关闭即可。在线重删真是如此之好?那为何很多主存储厂商还是选择了后重删?
迎难而上,华为选择在线重删:
在线重删需要实时的对每一个IO进行指纹计算、查重及数据压缩,会占用较多的CPU及磁盘IO。基于该原因,很多主存储厂商,退而求其次,选择了后处理重删。而同样作为主存储厂商的华为,则另辟蹊径选择了在线重删。
那为什么华为会选择在线重删呢?
1、CPU方面:重删是CPU消耗的大户。降低重删对CPU的消耗,是在主存储重删中引入在线重删的关键。华为能在设备中增加重删压缩加速卡,将重删压缩过程中,大量的计算功能放到加速卡中进行计算,从而降低CPU的消耗同时还能提升计算速度。另外,在一些性能要求不高的场景中,则可以去除加速卡降低成本,这样使得华为在不同场景下支持重删压缩功能变得更加灵活、多变。
2、磁盘IO方面:数据查重的过程需要消耗较多磁盘IO,能否使得查重效率最高、速度最快,是整个重删技术的关键。华为在数据查重方面完成了多个关键技术的优化:
a)采用SSD Cache技术对存储重删元数据进度加速,从而加快重删过程中元数据的读写性能;
b)基于场景的重删Cache优化,如数据的时空局部性在Cache中的应用等;
c)基于IO特征的优化,根据不同场景的IO智能选择重删流程等。经过上面的优化,在线重删磁盘IO访问明显下降,甚至在部分场景下,磁盘IO的访问量比没有重删的情况下还少。华为公司给出了VDI场景下的在线重删压缩性能测试情况:在线重删压缩性能影响小于10%,而数据缩减率高于3:1。
总结:在线重删是整个重删技术的趋势,而在线重删却在主存储场景中始终步履蹒跚。相信,华为5月份即将发布的新一代企业级OceanStor V3系列新品即是一个很好的契机,将促使在线重删技术在主存储场景中开出绚烂的花朵。