




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
RAID 6 介绍一、 RAID技术 RAID是由美国加州大学伯克利分校的D.A. Patterson教授在1988年提出的。RAID是Redundent Array of Inexpensive Disks的缩写,直译为“廉价冗余磁盘阵列”,也简称为“磁盘阵列”。后来RAID中的字母I被改作了Independent,RAID就成了“独立冗余磁盘阵列”,但这只是名称的变化,实质性的内容并没有改变。RAID的级别包括RAID0、RAID1、RAID2、RAID3、RAID4、RAID5、RAID6,以及在此之上的各种组合,其中具有容错功能的是RAID1、RAID5和RAID6。本文就以介绍各种容错功能的RAID系统,来讲讲RAID6诞生的历程。二、 容错的RAID技术 21 RAID1 图1 RAID1RAID1就是大家常说的镜像系统,如图1所示,它将数据分别写到源 (Source) 存储设备和镜像 (Mirror) 存储设备上,因此数据被保存了两份,从而使得即使源设备损坏,或者说源设备上的某快数据损坏,仍然还有镜像设备上的备份数据,从而提供了容错的特性,反之亦然。只有源设备和目标设备的数据同时损坏时,整个容错系统才汇报失败。对于RAID1,因为源设备和镜像设备保存了同样的数据,所以其存储空间利用率为50%。如果每个存储设备的故障率为p,那么整个RAID1其可用性为:1- p * p = 1 p22.2 RAID5 图2 RAID5RAID5采用计算异或 (XOR) 的方式来实现容错,也就是说对于发送下来的数据,采用条带 (stripe) 技术分块,并计算校验。如图2所示,P0 = 012, 为异或运算因此,即使其中的一个存储设备出现故障,也可以通过计算异或,得到相对应的数据,比如数据块0出现故障,可以采用如下方式得到它:P012 = 01212= 01122 = 0对于RAID5,如果由N个存储设备组成,由于要保存额外的校验数据,那么其存储空间利用率为:(N-1)/N 1 1/N如果每个存储设备的故障率为p,只要任何两个存储设备出现故障,RAID5就不可用了,因此整个RAID5其可用性为1- p * p = 1 p22.3 RAID6 图3 RAID6RAID6采用双重校验的方法,如图3所示。第一种校验,采用异或 (XOR) 方法,来计算P;另一种则为采用Reed-Solomon编码方式,来计算校验Q。从而使得即使RAID6损坏两个存储设备时,也能够完成正常的操作。其计算公式为:P0 = 0123Q0 = (K00)(K11)(K22)(K33),其中 为伽罗瓦域(Galois Field)计算操作,关于该计算的细节,在RAID6的技术原理中进行讲解。对于RAID6,如果由N个存储设备组成,由于要保存两个额外的校验数据,那么其存储空间利用率为:(N-2)/N 1 2/N如果每个存储设备的故障率为p,只要任何三个存储设备出现故障,RAID6就不可用了,因此整个RAID6其可用性为1- p * p * p = 1 p324 容错RAID的对比 RAID1RAID5RAID6是否校验无有有保护能力允许一个存储设备故障允许一个存储设备故障允许两个存储设备故障性能写操作时,无校验计算,但需写两个存储设备写操作时,计算校验的性能影像写操作时,双重计算校验的性能影响存储空间利用率50%1- 1/N1-2/N可用性1 p21 p21 p3表1 容错RAID对比表从表1可以看出,相对于RAID1来说,当N>2时,其存储空间的利用率得到了提高;对于可用性来说,显然RAID6提供了更好的可用性,允许两个存储设备故障,这对于容错RAID来说,算的上是最重要的特性之一。三、 RAID6特色 RAID6最大的特点就是通过二维异或校验 (Two dimensional XOR) ,从而使得允许两个存储设备出现故障的情况下,仍然能够正常的操作数据,在充分利用存储空间的基础上,大大的提高了RAID的容错能力;相比较于RAID5,RAID6技术是一种质的飞跃。四、 RAID6优缺点 RAID5在掉一块盘时,不用停机还能保护数据。但是,如果掉两块盘,数据就会丢失。虽然掉两块盘比掉一块盘的可能性要小,但是当涉及到下面的几个原因,掉两盘的可能性还是会增大的:A) SATA硬盘应用量的增长:SATA硬盘有低成本,大容量的好处,但是,其平均无故障时间(MTBF)比FC和SCSI硬盘的都短。这些硬盘使用率的增大,使同一时间掉两块盘的可能性变大了。B) 容量大,重建时间过长:在一块硬盘中,如果容量越大,就意味着如果这块盘坏掉,需要重建数据的时间就越长。系统在执行重建任务时就要经受巨大的负载,并且很有可能因此损坏另一块盘或者是在长时间的重建过程中掉第二块盘。C) 人为错误:当一块盘坏掉时,维护人员会用一块新盘来取代这个坏掉的盘。但一旦维护人员不小心拔错了硬盘,就会造成同时掉两块盘的状况,RAID数据将丢失。D) 所用硬盘数量的增加,很大程度上提高了硬盘预期故障发生率:当盘阵中增加硬盘的数量时,很大程度上提高了硬盘预期故障发生率。在系统用备援硬盘恢复数据时,其余的硬盘也增加了故障发生率。因此系统内硬盘个数越多时,就越需要提升数据冗余的安全性。E) 不过RAID6在计算校验时,需要消耗大量的时间来做计算;如果采用CPU来完成这个动作,那么它对CPU的占用率是相当高的。因此,为了提高RAID6的性能,设计了专门的硬件加速器来完成该操作。总之,RAID6技术恰好提供了可同时损坏两块盘的容错度,很明显,数据存储急需RAID6 的广泛应用。一、XOR校验 XOR算法,最基本的bit运算法则为:11 = 0, 00=0, 10=1;因此,会衍生出如下的byte运算法则,对于byte数据M来说:MM=0, M0M;从而如果P为数据块X,Y,Z计算的XOR 值,也就说P = XYZ时;当X数据块不可用时,可以通过P,Y,Z来得到它,也就是X = PYZ = (XYZ) YZ=X(YY) (ZZ)这就是基于XOR运算的RAID5能够允许一个存储设备故障的根本原因。二、P+Q校验 2.1 多个块同时写图1 同时写多个块的P+Q校验对于RAID6需要计算双重校验,第一重校验和RAID5一样,采用XOR校验,从上面的讲解可知,异或运算法则比较简单,所以可以设计专门的硬件来完成;在Intel的IOP33x处理器上就有专门的硬件模块,XOR应用加速器 (Application Accelerator with XOR),它专门处理异或运算,将CPU解放出来,从而提高整个系统的性能。如图-1,同时写多个数据块时,P = D0D1D2D3,只需告诉XOR应用加速器D0, D1, D2, D3在内存的位置,它就可以自动的完成XOR计算得到P。对于第二重校验,需要采用基于伽罗瓦域(Galois Field)计算操作的Reed- Solomon编码,也就是说在计算Q时,会引入一个系数Ki,如图-1所示:Q = (K0D0)(K1D1)(K2D2)(K3D3)同样,由于RAID6采用了更为复杂的算法,因此可以设计专门的硬件来完成RAID6计算,Intel的IOP333上就有RAID6应用加速器 (Application Accelerator for RAID6);它和XOR应用加速器一样,只需要知道数据D0,D1,D2,D3在内存中的位置,它就可以自动完成RAID6的计算。2.1 只写一个块图2 写一个块的P+Q校验当系统只需要写一个数据块时,如果把所有的其他相关的数据块都读取出来计算校验,是比较耗费计算资源的。如图2所示,此时先把需要写的块D0new对应的旧数据D0old读取,同时还有对应的Pold和Dold读取出来,从而可以得到如下公式:Pnew = Pold (D0new D0old)= (D0oldD1D2D3)(D0new D0old)= D0newD1D2D3Qnew = Qold Kx (D0new D0old)=(K0D0)(K1D1)(K2D2)(K3D3)Kx(D0new D0old)=(K0D0)(K1D1)(K2D2)(K3D3)K0(D0new D0old)=(K0D0)(K1D1)(K2D2)(K3D3)(K0D0new)(K0 D0old)= (K1D1)(K2D2)(K3D3)(K0D0new)= (K0D0new)(K1D1)(K2D2)(K3D3) 显然,通过上述只操作P和Q达到更新写一个块的数据,更为简洁高效。三、里德所罗门(Reed-Solomon)编码 Reed-Solomon编码,是欧文.里德(Irving Reed)和格斯.所罗门(Gus Solomon)于1960年发布的一种纠错编码,它是最大距离可分码(MDS码,Maximum Distance Separable Code)的一种类型;表示为RS(n,k),其中n表示每个码字(codeword)符号的总数,k表示每个码字(codeword)中数据符号的总数图3 RS码字其中2t = n k,对于RAID6来说2t2,所以它能修复两个磁盘损坏;如果符号(symbol)的长度为s,那么码字的长度n=2s 1。Reed-Solomon编码将会用到伽罗瓦域(GF)运算法则,对于采用byte长度为Symbol,其最大码字长度为n = 281=255,所以它此时支持255个磁盘 ,其中253个为数据盘,剩下2个为校验盘,下面对该运算进行详细讲解。四、伽罗瓦域(Galois Field)运算 它包括+,-, 四种运算,其中+,-操作和XOR运算一样,表示为;而表示为乘以基数a,表示为;同样,定义为,若A=CB,则C=AB。 十进制整数(常规数学运算)伽罗瓦域(用XOR表示+)数(十进制)X=10有效值=09数(二进制/十六进制)X=a有效值=0,12562X2+5X1+6X01/0x11a0151 X1+5 X0101/0x51a2+0a1+1a0求多项式的根X2-3X1+2=0,X2=3X1+2X=1,2如果a为多项式P(x)= X3+X1+1=0的根,那么由于+为XOR操作,所以a3=a1+1推导公式: E0=1,En+1= En +1推导公式: E0=a0,En+1= aEn表-1 十进制运算和伽罗瓦域运算对比因此,可以得到GF(8)在产生多项式X8+ X4+ X3+ X2+1情况下的表: 多项式X8+ X4+ X3+ X2+1求a8+ a4+ a3+ a2+1=0的根为-> a8=a4+ a3+ a2+1HEX000ha011ha1a2ha2a24ha3a38ha4a410ha5a520ha6a640ha7a780ha8a4+ a3+ a2+11dha9a(a4+ a3+ a2+1)= a5+ a4+ a3+a3ah表-2多项式X8+ X4+ X3+ X2+1的GF(8)表从而得到该多项式GF(8)的运算表为: Gfilog(x)=ars s012345678fr01248102040801d2614c982d5ab475eac98fc0表-3 GF(8)运算表对应GF(8)的逆运算表GF-1(8)为 Gflog(x)=ars s012345678fr0-01192321ac634b1464e0e348def811c71表-3 GF-1(8)运算表从而,在GF运算将通过查表完成,如28 = gfilog gflog2 + gflog8 = gfilog1+3= gfilog4 = 0x10五、RAID6的数据恢复 5.1 P、Q故障5.2 P与数据盘故障5.3 Q与数据盘故障5.4 两个数据盘故障四、计算校验与性能关系 内容一、硬件方案 图1 IOP333模块图由于RAID6要计算P+Q两层校验,如果全部由CPU来处理该计算,显然相当影响系统性能;因此可以设计专门的硬件模块来完成校验计算,比如Intel就专门设计了Xscale IOP芯片,来处理存储应用,下面就以IOP333为例进行讲解。IOP333是基于ARM架构的处理器,它支持多功能设备,最有特色的是加入了应用加速器单元(Application Accelerator Unit),如图1中红框部分。该模块主要完成校验计算,如图2所示:图2 应用加速器模块图它通过其控制寄存器,提供给系统软件操作AAU的接口;而其中的数据队列、布尔运算单元,以及填充/不填充单元来处理数据,并通过总线接口单元来和整个系统总线进行数据的交换和传输。很多RAID厂商都采用Xscale来设计硬件RAID,从而提供高性能、高可靠性的存储产品。二、软件方案 除了上述的硬件解决方案之外,在Linux下的MD (Linux下的Software RAID)也支持软件的RAID6解决方案,它通过系统CPU来完成RAID6的P+Q校验计算,从而会影响到系统性能;但是通过和Linux下的存储模块紧密结合,并采用一定的优化策略,它也可以达到一定的性能需求,满足大部分的应用。目前,MD已经被放到大部分2.6.x系列内核中,并提供和RAID5类似的一些算法,如:a) 左对称算法(LEFT_SYMMETRIC);b) 左不对称算法(LEFT_ASYMMETRIC);c) 右对称算法(RIGHT_SYMMETRIC);d) 右不对称算法(RIGHT_ASYMMETRIC);通过下面图3和图4进行对比。图3 左对称和左不对称算法通过图3的对比,可以看出在左对称和左不对称中,D3的存放位置是有差别的。也就是说,在左对称时D3是立即放在校验数据后的那个磁盘中,而左不对称是还是放在整个RAID的第一个逻辑磁盘中。图4 右对称和右不对称算法右对称和左对称的最大差别就是在于P和Q校验的存放位置,通过对比图3和图4很容易找到两者的差别。而对称与不对称仍然采用上面图3中的数据放置原理。MD驱动是集成到Linux内核的一个模块,管理员可以通过mdadm应用程序来进行管理和配置。三、前景分析 RAID技术是为了防止存储系统因为磁盘故障而丢失数据而研发出来的。和RAID 5不同的是RAID 6有两份检验数据,可以保证同一RAID组中两块磁盘同时出现故障而不丢失数据。然而,在RAID组中第二块磁盘出现故障需要重建两块磁盘时,RAID6控制器的性能就大打折扣,这就限制了RAID6系统的可用性,导致了一些厂商放弃了对RAID6控制器的使用。RAID 6性能受损是因为RAID6 技术采用双重奇偶校验技术以确保在两个磁盘驱动器同时都出现故障的时候系统运行不中断,而RAID6控制器一次只能运算一个校验位。RAID 6系统已经问世有一段时间了,DataDirect Networks声称在过去10个月中售出的RAID6系统的容量已经超过20PB。其他厂商,比如Adaptec、Promise Technology、HighPoint Technologies都在最近推出了RAID6系统。另外,Dot Hill、Infortrend、SGI、Xyratex也表示即将推出RAID6系统但是也有不少厂商对RAID6提出异议,尤其是主流厂商。EMC在昨天发布的产品里没有RAID6支,EMC认为其他的高可用性功能,比如metaLUNs、媒介扫描、故障隔离、更好的容灾恢复,都比RAID6能带来更多好处。不足为奇,HDS采用了与EMC不同的策略。HDS公司的TagmaStore全线存储系统可以支持RAID 6。HDS CTO Hu Yoshida说,对于公司来说,利用低成本高性能的SATA硬盘如同生命线一样重要。四、总结 被称为双重奇偶的RAID-6技术并不是一种新技术,它在理论上已经出现了大约20年。然而,直到最近,RAID-6技术才得到了实际应用,这多亏了功能更加强大的RAID处理器。迄今为止,RAID-6通过SATA技术在现实世界中获得了巨大成功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 知道智慧树药物化学(青岛大学)满分测试答案
- 深圳无人机飞行知识培训课件
- 2025年度电动四轮车夜间租赁与应急救援服务合同
- 2025年新能源汽车全险代理服务合同智能驾驶保障方案
- 2025年文化创意产业知识产权保护与法律援助服务合同
- 路桥系毕业论文范文
- 2025年新型别墅泥瓦工程劳务分包服务合同书
- 2025年专业级产妇护理与产后身体调理服务合同
- 2025年度多式联运合同执行与风险评估准则
- 2025年度特色餐厅股权收购及区域连锁化运营管理协议
- 皖2015s209 混凝土砌块式排水检查井
- 外墙涂料工程技术标书
- 教学课件-信号智能电源屏(鼎汉)的简介与维护
- CML慢性髓系白血病医学教学课件
- 临床实习带教工作总结
- 老年营养不良
- 【公开课】社区教案
- 高考语文一轮复习备考小说语言 (共25张ppt)
- 2023年漳州市交通发展集团有限公司招聘笔试模拟试题及答案解析
- 放射性药物医学知识培训
- SHSG0522023年石油化工装置工艺设计包(成套技术)内容规定
评论
0/150
提交评论