原创 raid6 theory summary1

2008-5-9 16:28 4645 8 8 分类: 软件与OS


1RAIDxRAID6的性能对比



1.1 RAID技术的特点



RAID技术主要有如下三个特点:



u     
通过对硬盘上的数据进行条带化,实现对数据成块存取,减少硬盘的机械寻道时间,提高数据存取速度。



u     
通过对磁盘阵列中的几块硬盘同时读取,减少硬盘的机械寻道时间,提高数据存取速度。



u     
通过镜像或者存储奇偶校验信息的方式,实现对数据的冗余保护。



 



1.2 RAID6RAID-X的性能对比



RAID6RAID5的升级,通过双层校验码来实现高容错性。除了多一层校验码之外,RAID6的数据和RAID5一样被分散地存储到每个硬盘。因为RAID5只有一套校验码,所以如果两个硬盘都坏掉或在重建时发生错误,那么数据就会永远丢失。如果有了RAID6的保护,就算坏掉两个硬盘,数据也可以被复原。RAID6能够提供非常高的数据容错度,并且能够支持多个硬盘同时发生故障。





RAID5在掉一块盘时,不用停机还能保护数据,但是,如果掉两块盘,数据就会丢失。虽然掉两块盘比掉一块盘的可能性要小,但是当涉及到如下一些情况,掉两个盘的可能性还是会增大的。



1、SATA硬盘应用量的增长。SATA硬盘有低成本,大容量的好处,但是,其平均无故障时间比FCSCSI硬盘的都短。这些硬盘使用率的增大,使同一时间掉两块盘的可能性变大了。



2、容量大,重建时间过长。在一块硬盘中,如果容量过大,意味着如果这块硬盘坏掉,需要重建数据的时间就越长,那么在长时间的重建过程中,掉第二块盘的可能性变大。



3、人为错误。当一块硬盘坏掉时,维护人员会用一块新盘来取代坏盘,但是一旦维护人员不小心拔错了硬盘,就会造成同时掉两块硬盘的状况,RAID数据将丢失。



4、硬盘数量的增加,很大程度上提高了硬盘预期故障发生率。



 



2RAID6原理



RAID6RAID家族中的新技术,是在RAID5基础上扩展出来的,所以同RAID5一样,数据和校验码都是被分成数据块然后分别存储到磁盘阵列的各个硬盘上。RAID6加入了一个独立的校验磁盘,它把分布在各个磁盘上的校验码都被分在一起,这样RAID6磁盘阵列就允许多个磁盘同时出现故障,这对于数据安全要求很高的应用场合是非常必要的。这样搭建一个RAID6磁盘阵列最少需要4块硬盘。但是RAID6并没有改善RAID5写入性能不佳的情况,写入缓存的应用仅仅能对于这个缺点进行一定程度的弥补,但是并不能从根本上解决问题。在实际应用中,RAID6的应用范围并没有其他的RAID模式那么广泛,如果实现这个功能一般需要涉及更加复杂、造价更昂贵的RAID控制器。



RAID6的随机读取性能:很好(当使用大数据块时)



RAID6的随机写入性能:差,因为不但要在每块硬盘上写入校验数据而且要在专门的校验硬盘上写入数据。



RAID6的持续读取性能:好(当使用小数据块时)



RAID6的持续写入性能:一般



RAID6的优点:快速的读取性能,更高的容错能力。



RAID6的缺点:很慢的写入速度,RAID控制器在设计上更加复杂,成本更高。



目前,实现RAID6标准有多种算法:Reed-Solomon P+Q Double ParityEVEN-ODD编码算法。RAID6是第一个允许掉两块硬盘的RAID标准,在RAID5的基础上大大提高了平均故障时间(MTDL)。



点击看大图
2985914f-81f9-4d80-9b75-8c48b731823e.JPG


热交换和热冗余



RAID系统中一般具有热交换和热冗余能力,热交换允许在不关闭系统或者电源的前提下更换故障硬盘,当然更换上的新硬盘也可以被系统动态的石碑出来并且正确的配置和添加,而这些都不需要重新启动计算机。热冗余一般用于不适于热交换的场合。这种设计一般是在故障出现之前就在计算机中配置了额外的硬盘,当有硬盘出现故障的时候,这块冗余的就可以自动替代故障的硬盘位置,对于这样的系统在系统关闭之前是不能把损坏的硬盘拔下来的。





3、双重纠错编码方法



目前,适用于磁盘阵列的双重冗余纠错码主要有三种:2D方案(二维奇偶校验),RSReed-Solomon)编码以及EVENODD编码。



3.1 
2D
方案



二维奇偶校验方法将数据磁盘组织成m*n矩阵,然后分别在水平方向和垂直方向都进行奇偶校验编码的方法,若数据盘是m*n个,则用于存放校验信息的磁盘数为m*n。二维奇偶校验采用简单的异或运算,容易实现。



3779f114-a00f-471b-9c3a-ccbc2b80acf5.JPG



磁盘校验方法如下:



1.      如果同一行的两个磁盘出现故障,可以通过列校验盘恢复这两个磁盘中的数据;或者在通过列校验盘恢复了其中一个磁盘的数据之后,再通过行校验盘恢复另一个磁盘中的数据。



2.       
如果同一列的两个磁盘出现故障,可以通过行校验盘恢复这两个磁盘中的数据;或者在通过行校验盘恢复了其中一个磁盘的数据之后,再通过列校验盘恢复另一个磁盘中的数据。



3.       
如果出现故障的两个磁盘分属于不同行和不同列,这时任意选择行校验盘或列校验盘来分别恢复这两个磁盘中的数据。



在这种方案中,冗余率高达 (m+n)/(m*n + m + n),而存储空间利用率仅为(m*n)/(m*n+m+n),因此,该方案并不实用。



3.2  EVEN-ODD编码



在二维奇偶校验法中采用了两种类型的冗余:水平冗余和垂直冗余。另一重巧妙的方法是使用水平冗余和对角冗余来设计校验码,这种方法为EVEN-ODD编码。该编码有m+2个磁盘,其中前两个磁盘为数据盘,最后两个为校验盘,当然也可以按照RAID5的方式将校验数据均匀分布在m+2个磁盘上,为了便于描述,下面采用固定校验盘的方式,即相当于RAID4方式。



EVEN-ODD编码构造双容错磁盘阵列可以看作(m+1)*(m+2)维阵列,矩阵每一列对应一个盘,共m+2个磁盘,前m个磁盘存放数据信息,后两个盘存储冗余校验信息,每个磁盘均含有m-1条带单元。

(一)水平校验


4e7b9a63-1e61-49c9-97ed-7e6706c1b815.JPG


36e06a57-519d-446a-bc2a-9978158d6055.JPG



(一)对角线校验



5fc89b9d-fffa-4072-89d8-fcb8bcc0aed2.JPG


3.3 
Reed-Solomon
编码



该部分内容将重点讨论,因此独立成节。





3.5 
各种纠错编码方法的优缺点



判断双重纠错码的优劣需要从以下几个方面进行考虑:读写性能,冗余磁盘的个数,数据平均修复时间以及小写性能。



各种纠错编码比较




方案



二维奇偶校验法



Reed-Solomon编码



EVEN-ODD编码



读性能



一般



一般



一般



写性能



较好



一般



一般



平均修复时间



最短



较长



一般



磁盘冗余个数



最多



2



2



小写性能



一般



一般



最长




二维奇偶校验码简单,易于实现,但是构造的阵列性价比低,一般不采用此方法,RS码和EVEN-ODD码为最优冗余编码,只需两个冗余信息盘就可以纠双错,其中,RS编码、译码较EVENT-ODD复杂,一般需要用硬件电路实现,但是RS码小写性能好,因此RS码适用于硬件实现的阵列控制器中。EVEN-ODD码编、译过程较RS码简单,只有异或操作,但是小写性能差,因此,EVEN-ODD适用于实时性较强的连续数据存储,如:摄影图像存储等。——摘自冯丹的论文,《电子学报》。





4、条带数据存储方式



RAID6条带数据的存储方式延续了RAID5的方式,与RAID4的条带存储方式不一样。如下图所示,他改变了传统采用两个固定盘做校验的方式,避免了校验盘读写的瓶颈。



ef46588b-bc3e-460e-86a9-b11871d98374.JPG


















文章评论0条评论)

登录后参与讨论
我要评论
0
8
关闭 站长推荐上一条 /2 下一条