传统RAID技术在面临大容量磁盘的时候显得有点力不从心,这主要由于大容量磁盘技术的引入使得RAID的数据重构时间急剧变长,并且整体IO性能也受到了严重影响。所以很多人预测,传统RAID技术作为存储核心的时代即将过去,大容量磁盘的数据管理需要其它的数据保护技术。我也曾经在一些文章中分析过,传统RAID如果不进行架构级别的革新,那么数据重构时间(reconstruction time)和一致性性能(consistent performance)将会无法得到彻底解决。
在2012年中的时候,我在公司内部提出采用存储虚拟化的技术解决磁盘RAID所面临的问题。该核心思想能够大大提高数据重构的性能,并且可以将应用IO和数据重构IO进行有效分离,使得应用IO性能在数据重构的时候不受到严重影响。无独有偶,在2012年的时候DELL,NetApp也推出了在架构上非常类似的系统,该系统就是Dynamic Disk Pool,简称DDP。2013年底,华为也发布了他们最新的磁盘阵列系统RAID2.0,该架构和DDP也是类似的。这种架构的核心思想是将传统RAID中的数据保护层从磁盘管理组(DiskGroup)中剥离出来。数据保护在逻辑域中完成;磁盘管理在物理域中实现。通过这种分离,数据保护域和磁盘物理域之间可以进行很灵活的映射。这种架构上的灵活性可以提高数据重构的性能,并且使得数据重构性能随着磁盘数量的增加而提升。
下面首先来看一下DDP的技术特征。上面已经提及,DDP也将数据保护域和磁盘物理域进行了分离。从下图可以看出,DDP将所有的物理磁盘分成D-Piece,通过映射算法映射之后,若干个D-Piece组成一个D-Stripe;每个D-Stripe内部和传统的RAID-6的布局是相同的。也就是说,一个D-Stripe由多个传统的Stripe(条带)构成。由于这种虚拟化是底层虚拟化,为了降低虚拟化技术所引入的overhead,D-Piece的容量往往会大于512MB。
通过上图可以很清晰的说明DDP的数据分布不是固定的,而传统RAID在磁盘上的数据分布是固定的。DDP需要通过一个D-Piece的资源分配器进行资源分配,这种资源分配策略往往采用动态按需分配的方式。
分析到此处,其实我们只是看到了DDP这种架构上的灵活性,但是还没有看到为什么采用DDP之后数据重构时间将会大大降低,这其中的奥妙何在?
要想搞清楚为什么引入虚拟化之后,RAID的数据重构时间会大大降低,这还需要分析传统RAID的性能瓶颈点。传统RAID的数据重构性能瓶颈点不仅在于Spare盘的写,而更为重要的是在于重构数据读操作。其实,如果数据重构的性能瓶颈点在于Spare盘的写,那么可以将Spare盘分布到多个磁盘上,这样可以避免单点写入的瓶颈,这种方案也就是distributed spare。
在实践中可以发现,即使将spare盘分布到多个物理磁盘上,reconstruction的整体性能还是无法得到提升。其主要原因在于重构数据的读性能是性能瓶颈点。所以,如果想要提升reconstruction的性能,必须要破解重构数据读写的双重瓶颈点。而且,我们知道写瓶颈是相对容易解决的,但是读瓶颈是很难解决的。其主要原因在于,如果想要破解读瓶颈,那么需要调整优化RAID的数据分布。
采用DDP的灵活架构就可以优化RAID的数据分布,这样就可以消除数据重构的读性能瓶颈。试想,在一个由多个shelf构成的大系统中,存在多个RAID6的array;并且所有这些Array中的数据都按照分配算法分布到所有这些shelf中。那么,当一个shelf中的一个磁盘发生故障后,所有array都将会受到影响;那么所有array都会参与到数据重构中去。更为重要的是,由于在数据布局的过程中采用了特殊算法,因此,在所有array都进行数据重构的过程,所有的磁盘都会参与到数据重构过程中去,那么,这时候的数据重构性能将会是一个什么样的表现?事实证明,这时候的数据重构性能非常出色,并且如果shelf的数量越多,数据重构速度就越快,这是一个线性扩展的关系。而要达到这种目的,数据布局算法,也就是虚拟化过程中的资源分配器尤为重要,其决定了数据重构的性能。
华为和NetApp的技术架构类似,但是在分配算法上应该是不相同的。我采用虚拟化技术实现这种数据保护的RAID架构,并且实现了一种满足数据备份领域需求的分配算法,能够达到很好的数据重构性能以及一致性文件系统性能(consistent file system performance)。
从NetApp的数据来看,随着磁盘数量的增加,DDP的数据重构时间在减少。这种数据重构性能的线性扩展能力是大容量磁盘梦寐以求的事情。从下图中可以看出,随着磁盘数量的增加,传统RAID的数据重构时间是恒定的,但是,DDP的重构时间可以线性降低。
另一个非常有意思的结果是在两块盘发生故障的情况下,传统RAID的数据重构时间将会是翻倍的关系,但是,DDP不是这种关系。如下图所示,在两块盘发生故障的情况下,DDP的数据重构时间增加了50%,而不是100%。
可以说,DDP技术是在传统RAID基础上发展起来的新一代RAID架构,其核心思想是引入了虚拟化技术。随着磁盘容量的进一步增大,未来DDP技术将会在磁盘存储系统中大行其道。
Dynamic Disk Pool技术解析,布布扣,bubuko.com