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基本是一样,如果在设计过程中,加入智能识别的能力,两者可以达到一样的容错可靠性。
对比、分析与总结
一般情况下,如果磁盘没有故障,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技术,都可实现双磁盘容错,且各有各自的特色,以及对应的应用领域;用户所需要作的是根据自己的环境、功能和预算,选择合适的技术,来满足自己的需求。
上一页 [1] [2]

【责编:Chuan】