记得在2013年末的时候,开始将存储虚拟化为主导的数据保护技术归纳为RAID2.0。从市场的角度来看,这个一个非常好的概念,一方面可以延续传统RAID的思想,大家可以很容易明白这是一种数据保护技术;另一方面又表述了这是一种传统RAID的技术延伸,而且具有更新换代的意思。在技术发展的过程中,HP称这种技术为virtual RAID;NetApp称之为DDP(Dynamic Disk Pool)。本质上的思想是相同的,都是通过底层虚拟化的方式使得RAID构建的灵活性大为增加,并且在数据恢复的时候能够做到全员参与,提高数据恢复的性能。
通过RAID2.0的技术方式的确可以使得数据重构的性能随着磁盘数量的增加而线性提升。传统RAID由于结构僵化,数据重构的性能局限在单盘性能,在一个磁盘组中,无论磁盘数量多少,数据重构的性能最高为单盘吞吐带宽。在采用RAID2.0技术之后,数据重构不再是单盘参与,而会涉及到存储池中的所有磁盘,因此,磁盘数量越多,数据重构性能越高,数据恢复的时间窗口越短,从而数据可靠性越高。下图是一套RAID2.0系统在2013年的实测结果,从该结果可以看出,RAID2.0数据重构性能和RAID相比存在天壤之别。但是在JBOD数量为2时,可以发现RAID2.0性能还比传统RAID低了。这主要是因为磁盘本身抖动造成的结果。采用这种RAID2.0之后,数据在磁盘上存储的IO Pattern发生了变化,这也是RAID2.0技术不能在小规模磁盘存储中大量使用的一个重要原因。
在海量存储系统中RAID2.0已经开始大规模部署,在闪存存储系统中同样可以采用这种数据保护技术。并且对于闪存存储,RAID2.0具有天然优势,其最主要原因在于SSD不存在随机写性能急剧下降的问题。和磁盘相比,NVMe SSD的故障模型存在较大差异,如果采用传统RAID架构实现数据保护,那么无法很好解决SSD的新问题,例如SSD同时失效问题,并且很难适应大容量存储盘的发展趋势。
为此,RAID2.0思想可以被应用于闪存数据保护中。仔细分析,归纳起来RAID2.0的核心思想是“数据保护域与物理资源管理域分离”。这种分离与解耦可以为数据保护提供更大的灵活性,从而可以更好的为数据实现数据保护,并且可以很容易的实现本地或者远程的数据保护。传统存储软件架构与RAID2.0软件架构对比如下图所示:
在RAID2.0中,通过资源池化的手段对物理资源进行管理。存储资源池本身不具备数据保护的能力,该资源池被称之为“物理资源管理域”。在存储池之上是存储对象层,每个存储对象被称之为Container。Container由CHUNK构成,每个Container是一个数据保护单位。因此,存储对象层也被称之为“数据保护域”。由于Container是一个逻辑对象,与具体存储盘无关,因此,RAID2.0可以很灵活的在存储池之上实现多种不同方式的数据保护。与传统RAID相比,RAID2.0数据保护不再依赖于物理盘,通过虚拟化的方式将物理资源与数据保护进行了彻底的分离。
类似于RAID2.0这种数据保护技术核心的思想在于将数据保护域从物理资源管理域中分离、独立。一方面解决了传统RAID的数据重构问题,大大提高数据可靠性;另一方面也为数据保护走向分布式打下坚实的基础。在闪存大行其道的今天,RAID2.0技术与闪存结合,可以很好的解决闪存存储自身的问题,发挥闪存优势,为SSD的数据可靠性保驾护航。
本文转自 wuzhongjie 51CTO博客,原文链接:http://blog.51cto.com/alanwu/1876942,如需转载请自行联系原作者