一、概述
在之前存储系统中,一般都采用RAID技术来对数据进行保护,一旦阵列中某块硬盘损坏,可通过RAID技术所形成的镜像来对丢失数据进行恢复。但随着海量数据问题的出现,RAID越来越难发挥其作用。如采用2TB的硬盘作为存储介质,某块硬盘故障,使用镜像对其进行恢复,大概需要4个小时,而这还是将恢复作为最高优先级的情况下才能实现的数据恢复时间。但在实际情况中是不可能出现的,一般都是将RAID作为较低优先级的,在计算资源闲置的情况下在后台进行的,那么在这种情况下,RAID重建的时间就会不断延长,数据恢复长达1-2周也就不算奇怪了。如果在数据重建过程之中,又发生硬盘故障的话,那么也就意味着数据将永久丢失。因为RAID 5最多能允许阵列中一块硬盘损坏,RAID 6允许两块硬盘同时故障,但在海量数据时代,多块硬盘同时损坏并非不可能,企业重要资源之一的数据该如何保证其安全呢?
英特尔在IDF大会期间公布了新的可扩展的数据保护方式——擦除编码。其工作原理是将存储系统接收到的大块数据进行切割并编码,之后再对切割后的数据进行再次切割并编码,重复这一操作直到数据切割到满意的数据块大小为止,这样使得数据块分散成多个数据块,再进行冗余校验,将不重复的数据块和编码写入存储系统之中。其与传统的RAID数据保护如下图所示:
擦除编码将数据保护架构由RAID 5/6扩展至RAID k,k等于在不造成数据丢失的情况下,可以介绍的故障数量。对于RAID 5来说,k=1;对于RAID 6来说,k=2;对于擦除编码来说,k=n,如在16块硬盘组成的阵列之中,采用擦除编码机制的话,即使6块硬盘同时故障,其也可对丢失数据进行恢复.
由此可以看出,擦除编码目前主要针对的大数据块,英特尔也将其应用在其所推荐的大型对象存储系统之中,经过实际测试,其结果显示,与传统的RAID相比,擦除编码在各个方面都具有无可比拟的优势,具体结果如下图所示:
擦除编码的应用还不仅与此,在关于擦除编码的技术课程之中,相关的技术工程师还介绍了擦除编码灵活应用于多个数据中心的情况,具体如下图所示:
通常而言,传统的擦除编码技术对性能的影响,特别是IOPS和延迟的影响还是比较大的,因此目前适用的场景主要局限在归档、云存储等冷数据方面;