若重复数据删除和固态驱动器完美组合

DOSTOR存储在线 11月2日国际报道:即使是最随意的观察家也不得不承认过去几年来重复数据删除和固态驱动器(SSD)——以及无处不在的云——是存储界最热门的技术。不过,直到最近,它们还是分别用于非常不同的领域。固态存储是用来解决性能问题的,而重复数据删除——尽管刚刚进入主存储领域——是用来解决效率问题的,而且主要用于二级存储系统。

其实,就好像巧克力和花生酱那样,如果重复数据删除和SSD合起来发挥作用,那么它们合力的价值要高于它们各自发挥作用的价值的总和。大多数存储人员不愿意在主存储上部署重复数据删除技术或数据压缩技术,担心数据缩减技术会导致系统损失必要的性能。固态磁盘从单位容量的角度来看很贵,但是从单位IOPS(每秒输入输出)的角度来看又比较便宜。如果数据缩减技术和SSD的组合可以排除冗余数据,同时又不对性能产生多少影响,那么这会是一个相当合理的组合。

在线重复数据删除会给磁盘写入增加一点延迟,因为系统要检查块、散列值以观察数据是否是重复的。任何一个曾经从重复数据删除数据仓库中恢复过数据的人可以告诉你重复数据删除还会给读取性能带来一定影响,因为逻辑上顺序写入系统的数据要重新组合或者说要从数据仓库中写入块那里“重构”。

如果我们将重复数据删除过的数据存储在一个固态存储阵列而不是旋转式磁盘阵列上,那么读取性能问题就解决了。这是因为SSD对随机读取I/O请求的响应速度与对顺序I/O请求的响应速度一样。虽然,重复数据删除或数据压缩可能会导致数据写入的延迟时间从500微秒增加到1毫妙,但是由于商业级或企业级SSD的写入延迟一般都低于3毫秒,增加后的延迟时间仍然要低于普通1.5万转磁盘驱动器的5毫秒延迟时间。

一个中端的商业级多层单元(MLC)SSD,比如美光的P400e或英特尔的510,每秒可以提供8000次4K IOPS的性能。一个阵列如果使用20个这样的驱动器,同时配置RAID(独立磁盘冗余阵列)10,将可以提供8万次IOPS的性能。即使我们的重复数据删除引擎导致速度损失15%,阵列仍然可以提供6.8万次IOPS的性能,相当于340个1.5万转旋转式磁盘驱动器的性能。

接下来的问题是写入耐久性。大多数管理员对MLC闪存SSD的主要顾虑就是每页闪存只能擦除和重写入3000到5000次。对数据进行重复数据删除可以减少必须写入闪存的数据量,从而延长闪存的寿命。再加上阵列范围的负载均衡和可以限制全页面写入的基于日志的数据结构,重复数据删除可以减少擦除-重写入频率,从而延长SSD的寿命。

包括Nimbus Data、Pure Storage和Solidfire在内的多家厂商已经在他们的固态阵列中加入了重复数据删除功能。其中一些厂商还声称他们的单位容量成本在一定水平的重复数据删除的作用下可以变得很低,不过另外一些厂商则认为这种做法是具有误导性的。不管怎么说,重复数据删除和固态存储的组合对我来说很有吸引力。