真“假”RAID6对决
随着人们对双磁盘容错的需求越来越迫切,RAID6也越来越流行,市场关注度也越来越高。而早在RAID6出现以前,一些存储厂商为提高自身存储系统的可靠性,也研发了一些能够支持两个磁盘故障的RAID技术,比较有代表性的包括RAID5E,RAID5EE,以及RAID10和RAID01,这里暂且称呼它们为“假”RAID6或者准RAID6技术。同样是双磁盘容错技术,它们和真RAID6技术到底有何差别?具体有什么优劣势?
RAID5E & RAID5EE
RAID5E和RAID5EE是被经常提起的支持两个磁盘故障的技术,IBM的存储系统就是广泛采用这种RAID技术来实现双磁盘容错。它到底是如何实现,包含什么样的功能?
图-1 RAID5E
RAID5E,是在RAID5中每个 Extent (它是在IBM主机中用于创建RAID的单位) 的后面加入了热备用空间 (Hot Space,如图-1中Extent尾部的HS0、HSr、HSp等) 。如Extent0故障,那么其他剩余Extents的热备份空间将会被用来重建和重新分配数据,并保证剩下的Extents为RAID5的一部分。从而使得即使一个Extent故障,也能马上有热备用磁盘来替换它,并重建RAID5,从而又带来容错力;从而达到所说的支持两个磁盘故障。
但是,它所能容忍的并不是任何两个磁盘同一时刻故障,可以将它看作是RAID5和在线热备用磁盘(online hot spare drives)的变体。它将I/O操作时的数据分布到所有磁盘,包括热备用磁盘;从而减少了每个磁盘的带宽,带来更高的效率。然而,这也就意味着热备用磁盘不能够被多个阵列共享。
在RAID5E中,没有专用的热备用磁盘,就像RAID5中没有专门的校验磁盘一样,热备用数据块是分布到所有的磁盘中;从而,对于10个磁盘的RAID5E,每个磁盘的80%被用于存储数据,10%用于存储校验,10%用于热备用。
图-2 RAID5EE
此外,RAID5EE和RAID5E类似,只是热备用空间被分布在各个Extents中,就像RAID5的检验数据那样分散布置一样;如过某个Extent故障,那么剩余Extent中的热备用空间(如图-2中的HS0, HS1, HS2等),将会被立即用于重建数据,并保证它成为原来RAID5的一部分,从而达到所说的支持两个磁盘故障。
同RAID5E相比,它不是把热备用空间放到每个Extent的尾部,而是分布在数据块其中,它也不允许任何两个磁盘同一时刻故障。不过,RAID5EE在进行热替换时,其寻址可能会更加方便和灵活。 RAID10 & RAID01
关于RAID10和RAID01的对比,曾引起过广泛的争论;下面,通过相关图示进行对比和解释。
RAID10是RAID1和RAID0的组合运用,它第一层为RAID1模式,第二层为RAID0模式,从而结合了两者的优点,提供了新的特性,如图-4所示。如果在下层RAID1中的某个磁盘出现故障,并不会影响数据的读取;然而,如果出现故障的磁盘没有被替换,那么那个剩下的磁盘将会成为单点故障;但是,如果该单点故障的磁盘再次损坏,那么整个阵列存储的数据将会丢失;因此RAID10能支持的并不是任意两个磁盘故障,如图-4中:
图-4 RAID10
a) Disk0和Disk1不能同时损坏,否则数据不能正常读取;
b) Disk2和Disk3不能同时损坏,否则数据也不能正常读取;
RAID10常被应用到高负载的数据库中,因为它不需要进行校验计算,所以能够进行高速的I/O处理,带来更好的性能。
RAID01和RAID10类似,只不过它先做RAID0,然后再利用RAID1来完成两层RAID的设置;当某个RAID0中的一个磁盘损坏,那么损坏的数据将被转换到另一组RAID0;如图-5所示,当在不同RAID0组中的两个磁盘同时故障时,也会导致该RAID01失效;但是它却没有RAID10那么强健(robust),如:
图-5 RAID01
a) Disk0和Disk2不能同时故障,此时两个RAID0都故障,数据不能读取;
b) Disk0和Disk3不能同时故障,此时两个RAID0都故障,数据不能读取;
c) Disk1和Disk2不能同时故障,此时两个RAID0都故障,数据不能读取;
d) Disk1和Disk3不能同时故障,此时两个RAID0都故障,数据不能读取;
显然,比起RAID10,RAID01导致故障的组合更多;其实,从数据存储的逻辑位置来看,RAID01和RAID10基本是一样,如果在设计过程中,加入智能识别的能力,两者可以达到一样的容错可靠性。
除了以上几种双磁盘容错技术外,前面我们已经详细解析过RAID6的算法了,它通过P+Q的双重校验技术,采用基于伽罗瓦域(Galois Field)计算的里德-所罗门(Reed-Solomon)编码,从而允许任意两个磁盘同时故障。 对比、分析与总结
一般情况下,如果磁盘没有故障,raid 5写操作还可以,可是一旦一块磁盘故障,性能会大幅下降。raid组中磁盘越多,性能越差,原来一个写操作只需并行完成两个磁盘写,而如果raid中1块磁盘有故障,8块盘的raid 5需要完成7个块盘的并行读和两块盘的并行写。
通常写操作可以100% cache hit,而读操作能做到90%以上就已经很不错了,何况这种大规模的磁盘读,所以一定需要物理读,写cache是0.00x毫秒级的,而物理读写需要若干毫秒,respnd time可能达到1000倍以上的差别,我们把这种现象称之为写惩罚。
对大型系统,这种性能变化无法接受,即使是故障的时候,因此才会有诸多双磁盘容错技术的引入。我们把这些双磁盘容错技术做一个对比:
表-1 各种RAID对比表
由上表可见,RAID6提供了高可靠性,但是随之而来的却是性能的影响;RAID5E和RAID5EE结合了RAID5和热备用技术,在某种程度上支持两个磁盘故障,其容错能力相对与RAID5和RAID6之间,不过它也需要计算校验,因而对性能也会有一定影响;而RAID01和RAID10可以某两个盘同时故障,其容错能力相对RAID6较弱,不过它不需要校验,从而带来了更好的性能,但是其存储空间的利用率不高。
针对以上不同真假RAID6的技术特性,各厂商也采取了不同的策略。比如,HDS就宣称支持RAID6;而EMC认为RAID10也能满足需求,并且还有其他的存储技术来达到高可靠性,因此目前还不支持RAID6;而IBM则对RAID5E和RAID5EE支持较多,用它来满足高性能的需求;对于中低端应用,比如SATA阵列,由于SATA磁盘的平均故障间隔时间(Mean Time To Failure, MTTF)的影响,大部分都支持RAID6。
由此我们可见,在双磁盘容错的实现方式中,RAID6并不是唯一的,也不是最完美的解决方案。以上提到的几种RAID技术,都可实现双磁盘容错,且各有各自的特色,以及对应的应用领域;用户所需要作的是根据自己的环境、功能和预算,选择合适的技术,来满足自己的需求。 thanks.............................................
转自中国硬盘基地技术社区 http://bbs.intohard.com ,原文地址:http://bbs.intohard.com/viewthread.php?tid=31591 我还是第一次听raid6啊~~看完了,回帖~~~ ding 12008
12008
12008
12008 收藏了,谢谢楼主。 谢谢楼主无私奉献 谢谢八喜无私奉献
页:
[1]