全面解析RAID6技术专业
RAID6数据结构分析
为了防止两块磁盘故障而引起的数据丢失,HDS TagmaStore存储系统现在支持RAID 6(6D + 2P)。
和RAID 5相似的是,RAID 6采用了校验数据,和RAID 5不同的是RAID 6有两份检验数据,可以保证同一RAID组中两块磁盘同时故障而不丢失数据。
RAID 6(6D + 2P)原理和RAID 5相似,RAID 6(6D + 2P)根据条带化的数据生成校验信息,条带化数据和校验数据一起分散存储到RAID组的各个磁盘上。
在图1中,D0,D1,D2,D3,D4和D5是条带化的数据,P代表校验数据,Q是第二份校验数据。
图1RAID 6(6D + 2P)根据条带化的数据生成校验信息,条带化数据和校验数据一起分散存储到RAID组的各个磁盘上RAID 6校验数据生成公式(P和Q):P的生成用了异或P = D0 XOR D1 XOR D2 XOR D3 XOR D4 XOR D5Q的生成用了系数和异或Q = A0*D0 XOR A0*D1 XOR A0*D2 XOR A0*D3 XOR A0*D4 XOR A0*D5D0~D5:条带化数据A0~A5:系数XOR:异或*:乘在RAID 6中,当有1块磁盘出故障的时候,利用公式1恢复数据,这个过程是和RAID 5一样的。
而当有2块磁盘同时出故障的时候,就需要同时用公式1和公式2来恢复数据了。
在图1中,各系数A0~A5是线性无关的系数,在D0,D1,D2,D3,D4,D5,P,Q 中有两个未知数的情况下,也可以联列求解两个方程得出两个未知数的值。
这样在一个RAID组中有两块磁盘同时坏的情况下,也可以恢复数据。
上面描述的是校验数据生成的算法。
其实RAID 6的核心就是有两份检验数据,以保证两块磁盘同时出故障的时候,也能保障数据的安全。
数据分布如图2所示,通过条带化,把应用数据和校验数据打散到一个RAID组的8个磁盘中,可以充分保证读写性能和数据的安全性。
RAID 6
RAID 6能保护更多的对象RAID 6提供了比RAID 5更高级别的数据保护、数据可用性及容错性,但也要付出更大的代价。
冗余独立磁盘阵列(RAID)技术让你可以根据某个应用的特殊需要,建立不同程度的数据保护机制。
RAID 0、RAID 1、RAID 5和RAID 10是应用最广泛的几种RAID;RAID 5(旋转奇偶校验)更是由于可以重建失效驱动器上的数据、照样能够访问存储的信息而最为流行;而RAID 6(双奇偶校验)万一遇到故障,可以保护两只驱动器上的数据,从而提供了更高级别的容错性。
更好的安全性在RAID 5阵列中,所有驱动器上的数据进行了条带化处理;奇偶校验信息分布、保存在所有磁盘上。
要是某只驱动器失效,剩余的那个阵列就会工作在降级模式下,直到失效驱动器被替换、上面的数据利用奇偶校验信息得到重建为止。
但倘若第二只驱动器在重建过程中也失效了,或者潜伏的存储介质缺陷导致重新过程中引起读错误,所有数据就会丢失。
如今更高的硬盘容量导致重建时间延长,这就增加了第二只驱动器在重建过程中失效的可能性。
RAID 6消除了这种风险。
在使用RAID 6的系统中,第二组奇偶校验在所有驱动器上进行计算、写及分布。
这第二个奇偶校验计算大大加强了容错性,因为即使两只驱动器都失效,也不会导致数据丢失。
但RAID 6所需的额外计算对写性能带来了不利影响。
性能基准测试显示,与RAID 5控制器相比,RAID 6控制器的总体写性能下降了30%以上。
RAID 5和RAID 6的读性能两者相当。
RAID提供商实现产品的方式各不相同,所以找到最大程度地减小RAID 6写开销的控制器,这很重要。
应当物色这种控制器:不仅能同时进行双奇偶校验计算,而且使用基于硅的专用条带管理器,从而大大降低写开销。
更低存储容量实现RAID 5至少需要三只驱动器,拥有N-1只驱动器的存储容量,因为相当于一只驱动器的容量专门用于保存奇偶校验数据。
譬如在四只驱动器、每只驱动器容量为200GB 的阵列中,总容量为800GB,而可用的存储容量为600GB。
RAID0,RAID1,RAID5,RAID6有什么区别
RAID0,RAID1,RAID5,RAID6有什么区别一、raid什么意思?RAID是“Redundant Array of Independent Disk”的缩写,raid什么意思了?说白了,中文翻译过来通俗的讲就是磁盘阵列的意思,也就是说RAID就是把硬盘做成一个阵列,而阵列也就是把硬盘进行组合配置起来,做为一个整体进行管理,最关键的是这个阵列的磁盘之间具有冗余容错处理,这样可提高磁盘之间相互的安全性和稳定性,不存在“单点”硬盘现象,也就说不会让某些硬盘读写频繁,其他的硬盘可能数据交换较少的现象,从而提高硬盘的安全性,同时磁盘的整体管理会提高读写速度,使硬盘的利用发挥到最大。
那么RAID什么意思?在实际应用中有什么意义了?一般而言,作为服务器最容易出现的故障是服务器的硬盘和电源,因此服务器采用磁盘阵列技术是非常重要的。
简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。
组成不同方式的磁盘阵列我们称为RAID的级别(RAID Levels)。
磁盘阵列中针对不同的应用使用的不同磁盘阵列配置情况,大家通称为RAID level(Raid 级别), 而每一level代表一种具体配置阵列的方法或叫阵列技术,目前业界公认的标准是RAID 0~RAID 5。
其中Raid0、Raid1、Raid5是最常见,后期又推出了Raid6、Raid1+0(也有人误解为Raid10),Raid5+0(也有人误解为Raid50),而Raid2、3、4不是非常通用.需要特别说明的是,不同的Raid level并不代表技术的高低,level 5并不高于level 3,level 1也不低过level 4,至于要选择那一种RAID level的产品,纯视用户的操作环境(operating environment)及具体应用(application)而定,与level的数字高低(大小)没有必然的关系。
什么是RAIDRAID0,RAID1,RAID2,RAID3,RAID4,RAID5,RAID6,RAID10
一.什么是RAID:RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。
冗余磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。
RAID磁盘阵列(Redundant Array of Independent Disks)简单地解释,就是将N台硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用,其特色是N台硬盘同时读取速度加快及提供容错性Fault Tolerant,所以RAID是当成平时主要访问Data的Storage不是Backup Solution。
在RAID有一基本概念称为EDAP(Extended Data Availability and Protection),其强调扩充性及容错机制,也是各家厂商如:Mylex,IBM,HP,Compaq,Adaptec,Infortrend等诉求的重点,包括在不须停机情况下可处理以下动作:RAID 磁盘阵列支援自动检测故障硬盘;RAID 磁盘阵列支援重建硬盘坏轨的资料;RAID 磁盘阵列支援支持不须停机的硬盘备援 Hot Spare;RAID 磁盘阵列支援支持不须停机的硬盘替换 Hot Swap;RAID 磁盘阵列支援扩充硬盘容量等。
一旦RAID阵列出现故障,硬件服务商只能给客户重新初始化或者REBUILD,这样客户数据就会无法挽回。
因此对RAID0、RAID1、RAID5以及组合型的RAID系列磁盘阵列数据恢复,出现故障以后只要不对阵列作初始化操作,就有机会恢复出故障RAID磁盘阵列的数据。
二.关于RAID的技术规范介绍(1)RAID技术规范简介冗余磁盘阵列技术最初的研制目的是为了组合小的廉价磁盘来代替大的昂贵磁盘,以降低大批量数据存储的费用,同时也希望采用冗余信息的方式,使得磁盘失效时不会使对数据的访问受损失,从而开发出一定水平的数据保护技术,并且能适当的提升数据传输速度。
解析RAID6:最新的冗余技术
解析RAID6:最新的冗余技术【简介】即使是通过三块以上硬盘建立的RAID5磁盘阵列也不能百分之百的保证数据的安全,当同时有两块硬盘出现问题时部分数据还是会损坏的。
因此为了进一步提高数据的安全级别,保证工作硬盘在同时损坏两块的情况下还可以保证数据不丢失,RAID6这种技术应运而生,而今天我们也将为各位IT168的读者介绍RAID6的一些基本情况并给大家推荐几款不错的RAID6存储产品。
第 2 页第 3 页众所周知服务器上的数据是珍贵的,而这些宝贵数据的保护工作是通过硬盘的冗余技术实现的,在以往的配置过程中我们依据数据的安全级别和当前服务器硬件配置两个条件来选择冗余技术的级别,从最简单的RAID0到RAID1,从中级冗余技术RAID3到RAID5。
然而即使是通过三块以上硬盘建立的RAID5磁盘阵列也不能百分之百的保证数据的安全,当同时有两块硬盘出现问题时部分数据还是会损坏的。
因此为了进一步提高数据的安全级别,保证工作硬盘在同时损坏两块的情况下还可以保证数据不丢失,RAID6这种技术应运而生,而今天我们也将为各位IT168的读者介绍RAID6的一些基本情况并给大家推荐几款不错的RAID6存储产品。
一、RAID6的前世今生:RAID6属于RAID磁盘冗余技术的最新标准。
在了解他之前首先要对RAID家族中的其他成员信息有所掌握。
RAID将普通硬盘组成一个磁盘阵列,在主机写入数据,RAID控制器把主机要写入的数据分解为多个数据块,然后并行写入磁盘阵列;主机读取数据时,RAID控制器并行读取分散在磁盘阵列中各个硬盘上的数据,把它们重新组合后提供给主机。
由于采用并行读写操作,从而提高了存储系统的存取系统的存取速度。
另外这种将数据平均分配在各个磁盘上的方法也避免了数据的大量损坏,再结合校验和冗余技术就可以保证一定的数据安全性。
RAID可分为级别0到级别6,通常称为RAID0,RAID1,RAID2,RAID3,RAID4,RAID5,RAID6。
存储专家剖析解读RAID 6
存储专家剖析解读RAID 6过去几年来,RAID 6 不断推广,已成为购买RAID 控制器时必须考虑的一项特性。
本文将探讨人们对该技术兴趣不断提高背后的一些原因,说明有的原因是合理的,而有的则是盲信,并将给出具体模型与实施实例,分别说明其优缺点,为分析问题、明确解决方案奠定坚实的基础。
从最基本的角度来说,RAID 就是指一组磁盘关联和相对应的数据布局,在某些组件发生读取错误的情况下仍能确保从系统检索到数据。
RAID 0 是基础条带化模型,不支持任何冗余,因此可最优化系统性能,但在数据故障情况下不能恢复数据。
RAID 5 设计旨在从单次数据故障中恢复数据,通过添加一个冗余校验盘(“P”盘即奇偶校验盘),作为对等数据XOR 计算,从而实现数据恢复功能。
从数学角度来说,我们把数据恢复可看作只有一个未知变量(也就是因读取故障丢失的数据)的线性方程式,并能通过基础代数方法轻松解出任何线性方程。
RAID 6 扩展了RAID 5 的功能,可在同一数据集上恢复两个数据错误。
从数学角度来说,RAID 5 使用一个方程式解出一个未知变量,而RAID 6 则能通过两个独立的线性方程构成方程组,从而恢复两个未知数据。
第一个方程与RAID 5 机制一样,也是通过添加P 盘实现的,而第二个方程则有所不同,将创建一个Q 盘,因此RAID 6 又称作“P+Q”盘机制。
从理论上说,这种回归计算可以无限延伸,可创建任意类型的M+N 冗余,但实际应用通常仅限于N=2,也就是说数据条带上同时发生两个不同的故障,这也就是RAID 6 所要解决的主要问题。
为什么需要RAID 6?RAID 5可独立解决磁盘不能检索数据的两种情况:• 一个磁盘损坏,也就是说不能对任何读写命令做出响应,需要更换。
RAID 5 能从保存的对等数据中恢复所有数据,重建缺陷磁盘。
• 磁盘组本身没问题,但其中一个磁盘上出现了坏块(即不能读取的块),造成某些数据不能恢复。
raid6介绍
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技术 2.1 RAID1图-1 RAID1RAID1就是大家常说的镜像系统,如图-1所示,它将数据分别写到源 (Source) 存储设备和镜像 (Mirror) 存储设备上,因此数据被保存了两份,从而使得即使源设备损坏,或者说源设备上的某快数据损坏,仍然还有镜像设备上的备份数据,从而提供了容错的特性,反之亦然。
只有源设备和目标设备的数据同时损坏时,整个容错系统才汇报失败。
对于RAID1,因为源设备和镜像设备保存了同样的数据,所以其存储空间利用率为50%。
如果每个存储设备的故障率为p,那么整个RAID1其可用性为:1- p * p = 1 – p22.2 RAID5图-2 RAID5RAID5采用计算异或 (XOR) 的方式来实现容错,也就是说对于发送下来的数据,采用条带 (stripe) 技术分块,并计算校验。
如图-2所示,P0 = 0⊕1⊕2, ⊕为异或运算因此,即使其中的一个存储设备出现故障,也可以通过计算异或,得到相对应的数据,比如数据块0出现故障,可以采用如下方式得到它:P0⊕1⊕2 = 0⊕1⊕2⊕1⊕2= 0⊕1⊕1⊕2⊕2 = 0对于RAID5,如果由N个存储设备组成,由于要保存额外的校验数据,那么其存储空间利用率为:(N-1)/N = 1 - 1/N如果每个存储设备的故障率为p,只要任何两个存储设备出现故障,RAID5就不可用了,因此整个RAID5其可用性为1- p * p = 1 – p22.3 RAID6图-3 RAID6RAID6采用双重校验的方法,如图-3所示。
全面解析RAID6技术
直线网既然是讲原理,那些“为什么需要RAID6”、“RAID6的优势”等内容就都省去了。
直接进入枯燥无趣的理论。
一、RAID5和XOR运算为了照顾初学者,还是先把相关基本概念介绍一下,老手可以跳过这部分直接看下面。
(别低头!是看本帖下面,想些什么呐~)XOR运算是数理逻辑的基本运算之一,在课本上的符号是一个圆圈里面一个加号。
实在懒得用插入符号功能,大家就凑合着看吧。
两个数字之间的XOR运算定义是:1 XOR 1 = 01 XOR 0 = 10 XOR 1 = 10 XOR 0 = 0(忽然想起试行新车牌的时候,有些深圳人用三位二进制数标记性别。
010是男的,101是女的。
Sorry,扯远了。
)多个数字XOR的时候,有两个特点:A)结果与运算顺序无关。
也就是 (a XOR b) XOR c = a XOR (b XOR c)。
B)各个参与运算的数字与结果循环对称。
如果 a XOR b XOR c = d,那么a =b XORc XOR d;b = a XOR c XOR d;c = a XOR b XOR d。
磁盘阵列中的RAID5之所以能够容错,就是利用了XOR运算的这些特点。
上面例子中的a、b、c、d就可以看作是四颗磁盘上的数据,其中三个是应用数据,剩下一个是校验。
碰到故障的时候,甭管哪个找不到了,都可以用剩下的三个数字XOR一下算出来。
在实际应用中,阵列控制器一般要先把磁盘分成很多条带(英文叫Stripe,注意不是Stripper),然后再对每组条带做XOR。
见下面第一个图。
P1 = 数据a XOR 数据b XOR 数据cP2 = 数据d XOR 数据e XOR 数据fP3 = 数据g XOR 数据h XOR 数据iP4 = 数据j XOR 数据k XOR 数据l扫盲部分就讲这么多,再不懂就google吧,满山遍野都是RAID5算法的介绍。
二、RAID6和Reed-Solomon编码本来想写成“李德-所罗门编码”,但那样就不方便大家一边看帖子一边google 了。
RAID系列技术详解
RAID系列技术详解1、RAID 0 RAID 0是把n个物理磁盘虚拟成⼀个逻辑磁盘,即形成RAID 0的各个物理磁盘会组成⼀个逻辑上连续,物理上也连续的虚拟磁盘。
⼀级磁盘控制器(指使⽤这个虚拟磁盘的控制器,如果某台主机使⽤配适卡链接外部盘阵,则指的就是主机上的磁盘控制器)对这个虚拟磁盘发出的指令,都被RAID控制器收到并分析处理,根据Block映射关系算法公式转换成对组成RAID0的各个物理盘的真实物理磁盘IO请求指令,收集或写⼊数据之后,再提交给主机磁盘控制器。
RAID 0也称为条带化存储,它代表了所有RAID级别中最⾼的存储性能。
⽆数据校验,下⾯分析从上到下访问RAID 0磁盘的过程。
假如某⼀时刻,主机控制器发出指令:读取初始扇区10000长度128 RAID控制器接收到这个指令之后,⽴即进⾏计算,根据对应公式算出10000号逻辑扇区所对应的物理磁盘的扇区号,然后依次算出逻辑上连续的下128个扇区所在物理磁盘的扇区号。
分别向对应这些扇区的磁盘再次发出指令。
这次是真是的读取数据了,磁盘接受到指令,各⾃将数据提交给RAID控制器,经过控制器在Cache中的组合,再提交给主机控制器。
经过以上过程,发现如果这128个扇区都落在同⼀个Segment中的话,也就是说条带深度容量⼤于128个扇区的容量(64KB),则这次IO就只能真实地从这⼀块物理盘上读取,性能和单盘相⽐会减慢,因为没有任何优化,反⽽还增加了RAID控制器额外的计算开销。
所以,在某种特定条件下要提升性能,让⼀个IO尽量扩散到多块物理盘上,就要减⼩条带深度。
在磁盘数量不变的条件下,也就是减⼩条带⼤⼩(Stripe SIZE,也就是条带长度),让这个IO的数据被控制器分割,同时放满⼀个条带的第⼀个Segment、第⼆个Segment等,以此类推,这样就能极⼤地占⽤多块物理盘。
所以RAID 0要提升性能,条带做的越⼩越好。
但是有⼀个⽭盾出现了,就是条带太⼩,导致并发IO⼏率降低,因为如果条带太⼩,则每次IO⼀定会占⽤⼤部分物理盘,队列中的IO就只能等待这次IO结束后才能使⽤物理盘,⽽条带太⼤,⼜不能充分提⾼传输速度。
RAID 6 原理分析
Part1 RAID算法的数学基础作者: 190344862@A.Galois(迦里瓦域)代数算法1.接下来讨论的迦里瓦数域是GF{28},域中最小0,最大257;表示最大有257颗HDD,其中255(28 - 1)数据磁盘,2个冗余盘P 和Q2.在迦里瓦域中,域内元素用{}括起,代表一个十六进制数:{02} = 0x02;域外的数字代表一个常数3.加、减法操作代表按位XOR:A+B=A-B;由此,A+A=A-A={00}4.加法恒元:{00},乘法恒元:{01};A + {00} = A, A * {01} = AA256 = {01} * A = AA255 = {01}5.域中加法及乘法符合交换律,结合律:A +B = B + A(A + B) + C = A + (B + C)A * B=B * A(A * B) * C = A * (B * C)(A + B) * C = A * C + B * C6.单独讨论一下和{02}的乘法,拆开按位计算:X为某迦里瓦域的被乘数,与乘法因子{02}计算,X n为新乘积数的第N位(X * {02})7 = X6(X * {02})6 = X5(X * {02})5 = X4(X * {02})4 = X3 + X7(X * {02})3 = X2 + X7(X * {02})2 = X1 + X7(X * {02})1 = X0(X * {02})0 = X7这种算法用数字电路来表示,很像LFSR 线性反馈移位寄存器7.参照上面与{02}的乘法规则,推导{02}n的结果:{02}2 = {02}* {02}= {04}{02}3 = {04} *{02} = {08}{02}4 = {08} * {02}= {10}{02}5 = {10} * {02}= {20}{02}6 = {20} * {02}= {40}{02}7 = {40} * {02}= {80}( BUT: {02}8 = {1d} ){02}8 = {02}7 * {02} = {80} * {02} (推导)由此可以看出,任何一个十六进制数[7:0]和{02}相乘,最高位bit7为1时,和{02}的乘法结果为{1d}8.任何一个十六进制数X,可分解为各个位上数的XOR之和:X = (X7 000 0000) ^ (0X600 0000) ^ (00X50 0000) ^ (000X4 0000) ^ (0000 X3000) ^ (0000 0X200) ^ (0000 00X10) ^ (0000 000X0)B.在RAID6上的应用1.P = D0 + D1 + D2 +… + D n-1Q =g0 * D0 + g1 * D1 + g2 * D2 + … + g n-1 * D n-1通常情况下,乘法因子选取g={02}, n<=255,P/Q/ D x向量,表示一组字节数2.在计算中主要的消耗在于迦里瓦域的乘法和加法,主要在于计算Q,对计算Q的公式进行简化:Q2 = g2 * D2 + g1 * D1 + g0 * D0 = (( D2 * g + D1) * g) + D0….Q = ((…D n-1...) * g + D2) * g + D1) * g + D0由此可以看出,对Q的计算可以化简为D x * g + D x-1,以及一系列循环迭代。
RAID0到RAID6全解析
RAID0到RAID6全解析RAID是通过磁盘阵列与数据条块化方法相结合, 以提高数据可用率的一种结构。
IBM早于1970年就开始研究此项技术。
RAID 可分为RAID级别1到RAID级别6, 通常称为:RAID 0, RAID 1, RAID 2, RAID 3,RAID 4,RAID 5,RAID6。
每一个RAID级别都有自己的强项和弱项. “奇偶校验”定义为用户数据的冗余信息, 当硬盘失效时, 可以重新产生数据。
RAID 0:RAID 0 并不是真正的RAID结构, 没有数据冗余。
RAID 0 连续地分割数据并并行地读/写于多个磁盘上。
因此具有很高的数据传输率。
但RAID 0在提高性能的同时,并没有提供数据可靠性,如果一个磁盘失效, 将影响整个数据.因此RAID 0 不可应用于需要数据高可用性的关键应用。
RAID 1:RAID 1通过数据镜像实现数据冗余, 在两对分离的磁盘上产生互为备份的数据。
RAID 1可以提高读的性能,当原始数据繁忙时, 可直接从镜像拷贝中读取数据.RAID 1是磁盘阵列中费用最高的, 但提供了最高的数据可用率。
当一个磁盘失效, 系统可以自动地交换到镜像磁盘上, 而不需要重组失效的数据。
RAID0+1:正如其名字一样RAID01是RAID 0和RAID 1的组合形式;RAID 10则是RAID1和RAID0的组合形式。
RAID10是存储性能和数据安全兼顾的方案。
它在提供与RAID 1一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。
由于RAID 0+1也通过数据的100%备份提供数据安全保障,因此RAID 0+1的磁盘空间利用率与RAID 1相同,存储成本高。
RAID 0+1的特点使其特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,如银行、金融、商业超市、仓储库房、各种档案管理等。
RAID 2:从概念上讲, RAID 2 同RAID 3类似, 两者都是将数据条块化分布于不同的硬盘上, 条块单位为位或字节。
RAID-6技术分析
・
1 6・ 3
D 无 疑是一种有吸引力 的新技术 。 6 从 R I0—5都 有 很 好 的 标 准 和 广 泛 的 应 用。但 AD R I6并没有标准定义。只需要满足下面 2个条件 , AD 就被 认 为 是 R I6: AD 1 .一个 阵列 中允许 2块磁盘出错。 2 .有最佳的空间利用 率。一个 N+ 2块硬盘组成 的 R I6阵列可 以给用 户提供 的空 间相 当于 N块 磁盘 ; AD 双
完成这个任务了。可以说 , 次存储操作 当中 , 块硬 在每 每 盘的任务 是随机分配 的, 过 , 是两块硬盘用来存 储 不 肯定 分割后 的文件碎片另一块硬盘用来存储校验信息。 众所周 知 , 服务器 硬盘上 的数据 是珍贵 的 , R I 而 AD 技术就是用 以保护这些数据 的有效方式之一。经过多 年 的发展 , A D技术虽然种类众多 , RI 但一个突出的局限性就 是, 无法容忍两块硬盘同时故 障的情况发生 。一旦存 储系 统 中两块硬盘同时损坏 , 以往 的 R I A D技术对此也无 能为
21 00年 1 月
湖北成人教育学院学报
Ju M fHu e ut d c t nI s ht om o B i Ad l E u a o n t l i i e
J n, a 2 0 10
V O 1 1 N O 1 . 6 .
第l 6卷 第 1 期
R I 6技 术 分 析 A D一
冗余 由多余 的 2 块硬盘实现。 下面介绍一种 md 的实现算 法 , i6 本人称之 为奇偶 校
验法。 二 、 述 详
奇偶校验法是一种 2维的 , 以容纳 2块硬盘 出错 的 可 算法。2列用来存储校验码 : 一列存储 水平校验另 一列存 储对 角线校验码。行和列交叉处的最小单位叫元 素
raid6 原理
raid6 原理RAID6原理RAID6(Redundant Array of Independent Disks Level 6)是一种冗余磁盘阵列技术,它通过使用多个磁盘驱动器来提供高容量的数据存储和容错能力。
与其他RAID级别相比,RAID6在数据冗余性和容错能力方面更为出色。
RAID6的原理是将数据和校验信息分散写入多个磁盘驱动器中。
与RAID5类似,RAID6也使用奇偶校验来实现数据的冗余存储。
然而,RAID6在奇偶校验的计算上更为复杂,它使用了两个奇偶校验值来实现数据的冗余。
在RAID6中,数据被切分成多个块,并在不同的磁盘驱动器上进行分布式存储。
同时,RAID6使用了两个独立的奇偶校验算法,分别计算两个奇偶校验值。
这样,即使在同时发生两个磁盘故障的情况下,RAID6依然能够保证数据的完整性和可靠性。
对于每个数据块,RAID6会计算两个奇偶校验值。
这两个奇偶校验值分别基于不同的数据块和磁盘驱动器组合计算得出。
通过使用这两个奇偶校验值,RAID6可以检测和恢复同时发生的两个磁盘故障。
当发生磁盘故障时,RAID6可以通过重新计算奇偶校验值来恢复丢失的数据。
RAID6使用逆向计算的方法,通过已知的数据块和奇偶校验值来计算丢失的数据块。
然后,RAID6将恢复的数据块写入新的磁盘驱动器中,以保持数据的完整性。
与其他RAID级别相比,RAID6的容错能力更强。
由于使用了两个奇偶校验值,RAID6能够同时容忍两个磁盘故障。
这使得RAID6在数据保护方面更加可靠,提供了更高的数据可用性。
然而,RAID6也存在一些缺点。
首先,RAID6的写性能相对较低,因为需要计算两个奇偶校验值,并将它们写入磁盘驱动器。
其次,RAID6需要至少四个磁盘驱动器来实现冗余存储,这增加了成本和空间需求。
总结起来,RAID6通过使用多个磁盘驱动器和两个奇偶校验值来提供高容量、高可靠性的数据存储。
它可以同时容忍两个磁盘故障,并能够通过重新计算奇偶校验值来恢复丢失的数据。
RAID 技术大解密
RAID 技术大解密目录RAID 技术大解密 (1)1.RAID 0 (3)2.RAID 1 (4)3.RAID 2 (5)4.RAID2.0+ (6)5.RAID 3 (8)6.RAID 4 (9)7.RAID 5 (10)8.RAID 50 (11)9.RAID 6 (13)10.RAID 7 (15)1.RAID 0RAID 0是最早出现的RAID模式,即Data Stripping数据分条技术。
RAID 0是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量。
RAID 0没有提供冗余或错误修复能力,但实现成本是最低的。
RAID 0最简单的实现方式就是把N块同样的硬盘用硬件的形式通过智能磁盘控制器或用操作系统中的磁盘驱动程序以软件的方式串联在一起创建一个大的卷集。
在使用中电脑数据依次写入到各块硬盘中,它的最大优点就是可以整倍的提高硬盘的容量。
如使用了三块80GB 的硬盘组建成RAID 0模式,那么磁盘容量就会是240GB。
其速度方面,各单独一块硬盘的速度完全相同。
最大的缺点在于任何一块硬盘出现故障,整个系统将会受到破坏,可靠性仅为单独一块硬盘的1/N。
为了解决这一问题,便出现了RAID 0的另一种模式。
即在N块硬盘上选择合理的带区来创建带区集。
其原理就是将原先顺序写入的数据被分散到所有的四块硬盘中同时进行读写。
四块硬盘的并行操作使同一时间内磁盘读写的速度提升了4倍。
虽然RAID 0可以提供更多的空间和更好的性能,但是整个系统是非常不可靠的,如果出现故障,无法进行任何补救。
所以,RAID 0一般只是在那些对数据安全性要求不高的情况下才被人们使用。
2.RAID 1raid是由分区,条块,条带组成的虚拟磁盘。
我来rsid1,就不用说xor等算法了,raid1又称为镜像,数据同时写到住硬盘和镜像硬盘,所以两块硬盘数据是相同的。
和0相比,1的读写方式完全不同。
RAID6、RAID01、RAID10、RAID50详解
磁盘镜像器
磁盘镜像器
磁盘0 D4 D2 D0
RAID 1
磁盘1 D4 D2 D0
RAID 0
磁盘2 D5 D3 D1
RAID 1
磁盘3 D5 D3 D1
RAID 10数据保护方式
四盘的RAID 10组中,位于不同RAID 1组的两个磁盘同时损坏,整个逻辑磁盘仍能恢复数 据和正常工作。
D0、D1、D2、D3、D4、D5 磁盘镜像器
磁盘镜像器
磁盘0 D4 D2 D0
RAID 1
磁盘1 D4 D2 D0
RAID 0
磁盘2 D5 D3 D1
RAID 1
磁盘3 D5 D3 D1
RAID 10应用场景与优缺点
优缺点(注:阵列磁盘成员数为N):
RAID 10 优点 缺点 其他
特点
读性能高 写性能高 安全性高 空间利用率低 最小硬盘数 有效容量
安全性:镜像冗余保护。 性能:支持并发/行读写。
RAID 0
RAID 1
磁盘0 A1 A3 A5
数据盘0
磁盘1 A1’ A3’ A5’
镜像盘0
RRAAIDID10
磁盘2 A2 A4 A6 数据盘1
磁盘3 A2’ A4’ A6’
镜像盘1
RAID 10工作原理-数据写入
写入数据块D2、D3、D4、D5 写入数据块D1 写入数据块D0
横向校验:P0=D0⊕D1⊕D2 ⊕ D3 斜向校验:DP0=D0 ⊕D5⊕D10 ⊕ D15
RAID6 DP磁盘阵列对数据的读写方式与RAID 3同理。
磁盘0 D0 D4 D8 D12
数据盘0
磁盘1 D1 D5 D9 D13
数据盘1
raid6计算方法
raid6计算方法RAID6可是存储领域里很厉害的一种技术呢 。
RAID6是啥?简单说呀,它是一种磁盘阵列技术,主要是为了保证数据的安全性和可靠性。
那它的计算方法呢?RAID6需要至少4块磁盘哦。
它的容量计算有点小特别。
假如我们有n块磁盘,每块磁盘的容量是C,那RAID6的可用容量就是(n - 2)×C。
比如说,我们有5块1TB的磁盘,那可用容量就是(5 - 2)×1TB = 3TB啦。
这是为啥呢?因为RAID6要牺牲两块磁盘的容量来存储校验信息,这样才能在两块磁盘同时出故障的时候还能恢复数据呢,是不是很神奇 。
再说说它的校验计算。
RAID6用的是双重校验,这就像给数据上了双保险。
它通过复杂的算法来计算校验数据,这个算法有点像数学里的那种高深的组合计算。
不过咱不用太纠结具体算法啦,只要知道它能通过这些校验数据在磁盘故障的时候把数据找回来就行。
打个比方,就像我们有个魔法盒子,里面的数据要是少了或者乱了,这个魔法盒子里的校验数据就能像魔法咒语一样把数据还原到正确的样子 。
RAID6在企业级的存储应用里可太重要啦。
想象一下,如果企业的数据是宝贝,那RAID6就是保护这些宝贝的超级保镖。
它能容忍两块磁盘同时出故障,这对于那些不能容忍数据丢失的企业来说,简直就是救星。
而且它的计算方法虽然有点复杂,但是理解了基本的原理之后,就会觉得它真的很巧妙。
就像一个精心设计的机关,每个部分都有它的作用,组合起来就成了保护数据的强大力量 。
总之呢,RAID6的计算方法虽然不是那种一眼就能看透的简单计算,但是它在数据存储的世界里可是非常有用的,就像一个低调又强大的英雄,默默地守护着我们的数据财富 。
RAID6、RAID01、RAID10、RAID50详解
RAID6、RAID01、RAID10、RAID50详解
内容提要
RAID6 RAID01 RAID10 RAID50
RAID 6 P+Q工作原理
RAID6 P+Q:P和Q代表2个彼此独立的校验数据,分别使用以下两种校验方式算得,以
P0和Q0为例,其他同理: P0=D0⊕ D1 ⊕ D2 Q0=(α⊗D0)⊕(β⊗D1)⊕(γ⊗D2)
缺点
随机写性能适中
支持并发写入,写惩罚较大
其他
最小硬盘数 有效容量
6盘 N-M个磁盘容量总和
RAID 50适用于随机数据存储,安全性要求高、并发能力要求高的应用,如邮件服务器, WWW服务器等。
RAID比较
THANKS
磁盘2 D9 D5 P0
磁盘3 P5 D6 D2
RAID 5
磁盘4 D10 P3 D3
磁盘5 D11 D7 P1
RAID 50应用场景与优缺点
优缺点(注:阵列磁盘成员数为N,RAID 5组数为M):
RAID技术全解图解
RAID技术全解图解RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆。
这篇文章为网络摘取进行了整合,它对RAID 技术的概念特征、基本原理、关键技术、各种等级和发展现状进行了全面的阐述,并为用户如何进行应用选择提供了基本原则,对于初学者应该有很大的帮助。
一、RAID 概述1988年美国加州大学伯克利分校的D. A. Patterson 教授等首次在论文“A Case of Redundant Array of Inexpensive Disks” 中提出了RAID 概念[1] ,即廉价冗余磁盘阵列(Redundant Array of Inexpensive Disks )。
由于当时大容量磁盘比较昂贵, RAID 的基本思想是将多个容量较小、相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量、性能、可靠性。
随着磁盘成本和价格的不断降低,RAID 可以使用大部分的磁盘,“廉价”已经毫无意义。
因此,RAID 咨询委员会(RAID Advisory Board, RAB )决定用“ 独立” 替代“ 廉价” ,于时RAID 变成了独立磁盘冗余阵列(Redundant Array of Independent Disks )。
但这仅仅是名称的变化,实质内容没有改变。
RAID这种设计思想很快被业界接纳,RAID 技术作为高性能、高可靠的存储技术,已经得到了非常广泛的应用。
RAID 主要利用数据条带、镜像和数据校验技术来获取高性能、可靠性、容错能力和扩展性,根据运用或组合运用这三种技术的策略和架构,可以把RAID 分为不同的等级,以满足不同数据应用的需求。
D. A. Patterson 等的论文中定义了RAID1 ~ RAID5 原始RAID 等级,1988 年以来又扩展了RAID0 和RAID6 。
近年来,存储厂商不断推出诸如RAID7 、RAID10/01 、RAID50 、RAID53 、RAID100 等RAID 等级,但这些并无统一的标准。
阵列双保险—RAID 6技术简介
阵列双保险—RAID 6技术简介为什么需要RAID 6?在经过多年的沉寂之后,RAID 6技术随着大容量ATA硬盘的广泛采用又重新引起了业界的重视。
相对于RAID 5来说,用户对RAID 6的了解比较少,因此本文根据HDS 的技术白皮书《Using RAID-6 With Hitachi TagmaStore Storage for Improved Data Protection》改编与大家共享。
RAID 5 是在存储系统中广泛采用的数据保护技术。
该技术是通过把应用数据分成数段,连同这些数据段的校验信息写入一组磁盘来实现的。
如果其中有个磁盘出现了故障,就会利用其余的磁盘中的数据和检验信息把故障盘中的数据恢复到热备盘中以保证数据不会丢失。
这样RAID 5就存在一种风险,如果在数据重建的过程中,RAID组中的第二块硬盘出现故障,就会出现数据丢失。
以前,两块盘同时坏的情况是小概率事件,几乎不可能发生。
但是近来随着光纤(FC)盘和SATA盘的容量和密度不断增加,使得RAID 5的重建时间也不断增加。
这样两块盘同时坏的概率也增加了,在企业级存储上,这种风险必须得到重视。
为了应对这种情况,存储厂商的RAID 6技术就是可以保证两块盘同时出故障而不会丢失数据的新技术。
日立数据系统(HDS)公司的TagmaStore 全线存储系统除了支持RAID 5,RAID 1技术以外还可以支持RAID 6保护技术,提供给用户多种保护方式的选择。
RAID 6技术背景和简介RAID技术是为了防止存储系统因为磁盘故障而丢失数据而研发出来的。
该技术把数据和校验信息分布到一组盘中(RAID组),当有盘坏的时候,丢失的那部分数据可以通过其他盘上的数据和校验信息计算恢复。
这样就增强了存储系统的可靠性。
HDS公司的TagmaStore全线存储系统可以支持RAID 0,RAID 1,RAID 5和RAID 6技术,所以HDS的存储系统不但可以提供更好的可靠性,而且也可以比以往的存储系统有更出色的性能。
全面介绍RAID7与RAID6磁盘阵列技术-电脑资料
全面介绍RAID7与RAID6磁盘阵列技术-电脑资料全面介绍RAID7与RAID6磁盘阵列技术随着技术和计算技术的进步,人们又对RAID 技术进行了发展,形成了称之为RAID6 和RAID7 的技术,。
RAID6与RAID7的RAID6磁盘阵列技术特点及优劣这里简单描述如下:RAID6 全称Independent Data disks with two independent distributed parity schemes (独立的数据硬盘与两个独立分布式校方案)RAID 6 等级是在RAID 5 基础上,为了进一步加强数据保护而设计的一种RAID 方式,实际上是一种扩展RAID 5 等级。
与RAID 5 的不同之处于除了每个硬盘上都有同级数据XOR 校验区外,还有一个针对每个数据块的XOR 校验区。
当然,当前盘数据块的校验数据不可能存在当前盘而是交错存储的。
这样一来,等于每个数据块有了两个校验保护屏障(一个分层校验,一个是总体校验),因此RAID 6 的数据冗余性能相当好。
但是,由于增加了一个校验,所以写入的效率较RAID 5 还差,而且控制系统的设计也更为复杂,第二块的校验区也减少了有效存储空间。
RAID 7 不仅仅是一种磁盘阵列技术,还是一种存储计算机(Storage Computer )。
RAID 7 存储计算机操作系统(Storage Computer Operating System )是一套实时事件驱动操作系统,主要用来进行系统初始化和安排RAID 7 磁盘阵列的所有数据传输,并把它们转换到相应的物理存储驱动器上,电脑资料《全面介绍RAID7与RAID6磁盘阵列技术》(https://www.)。
通过自身系统中的阵列电脑板来设定和控制读写速度,存储计算机操作系统可使主机I/O 传递性能达到最佳。
如果一个磁盘出现故障,还可自动执行恢复操作,并可管理备份磁盘的重建过程。
RAID 7 突破了以往RAID 标准的技术架构,采用了非同步访问,极大地减轻了数据写瓶颈,提高了I/O 速度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全面解析RAID6技术既然是讲原理,那些“为什么需要RAID6”、“RA ID6的优势”等内容就都省去了。
直接进入枯燥无趣的理论。
一、RAID5和XOR运算为了照顾初学者,还是先把相关基本概念介绍一下,老手可以跳过这部分直接看下面。
(别低头!是看本帖下面,想些什么呐~)XOR运算是数理逻辑的基本运算之一,在课本上的符号是一个圆圈里面一个加号。
实在懒得用插入符号功能,大家就凑合着看吧。
两个数字之间的XOR运算定义是:1 XOR 1 = 01 XOR 0 = 10 XOR 1 = 10 XOR 0 = 0(忽然想起试行新车牌的时候,有些深圳人用三位二进制数标记性别。
010是男的,101是女的。
Sorry,扯远了。
)多个数字XOR的时候,有两个特点:A)结果与运算顺序无关。
也就是 (a XOR b) XOR c = a XOR (b XOR c)。
B)各个参与运算的数字与结果循环对称。
如果 a XOR b XOR c = d,那么a = b XOR c XOR d;b = a XOR c XOR d;c = a XOR b XOR d。
磁盘阵列中的RAID5之所以能够容错,就是利用了XOR运算的这些特点。
上面例子中的a、b、c、d就可以看作是四颗磁盘上的数据,其中三个是应用数据,剩下一个是校验。
碰到故障的时候,甭管哪个找不到了,都可以用剩下的三个数字XOR一下算出来。
在实际应用中,阵列控制器一般要先把磁盘分成很多条带(英文叫Stripe,注意不是Stripper),然后再对每组条带做XOR。
见下面第一个图。
P1 = 数据a XOR 数据b XOR 数据cP2 = 数据d XOR 数据e XOR 数据fP3 = 数据g XOR 数据h XOR 数据iP4 = 数据j XOR 数据k XOR 数据l扫盲部分就讲这么多,再不懂就google吧,满山遍野都是RAID5算法的介绍。
二、RAID6和Reed-Solomon编码本来想写成“李德-所罗门编码”,但那样就不方便大家一边看帖子一边google了。
Reed-Solomon编码是通讯领域中经常碰到的一个算法,已经有15年以上的历史了。
(靠!讲存储嘛,跟通讯有个鸟关系?)其实很多校验算法都是通讯领域最先研究出来,然后才应用到其他领域的。
前面说到的XOR算法对一组数据只能产生一个校验,搞通讯的工程师们觉得不够可靠,于是就研究出很多能对一组数据产生多个校验的算法。
Reed-Solomon编码是其中应用最广泛的一个,咱们以前经常用的ADSL、xDSL、高速Modem都有采用。
后来手机、卫星电视、数字电视、CD唱片、DVD、条码系统、还有……(有完没完!说存储呢!)连高级点儿的服务器内存也用这个算法做校验和纠错。
(总算跟存储沾上点儿边~)现在存储的工程师也觉得RAID5中只能容忍一颗磁盘离线不够理想,需要一种容忍多颗磁盘离线的技术,自然就会想到Reed-Solomon编码啦。
把这种算法应用到存储中,就可以让N颗磁盘的空间装应用数据,M 颗磁盘的空间装校验码(对一组N个数据生成M个校验,但实际上校验码是分散在所有磁盘上的),这样只要离线的磁盘不大于M颗,数据就不会丢失。
Reed-Solomon编码理论中有一个公式:N + M + 1 = 2的b次方(在电脑里写公式真是麻烦!)其中b是校验字的位数。
(校验字是生成校验过程需要用的一个东东,不是最后的校验码。
)举例来说,如果用8位的字节做校验字,那么M + N = 255,而RAID6是特指M = 2,这样N = 253。
就是说,用8位字节做校验字的话,理论上一个RAID6的磁盘组可以容下253颗磁盘。
当然啦,实际应用中,太多的磁盘一起做运算会严重影响性能,所以阵列控制器和芯片的设计者都会把磁盘组的容量限制在16颗左右。
(做了这么多无聊算术题,还是没提RAID6到底是啥!)喂!喂!别走啊,很快就讲到RAID6的实现啦。
卖了这么多关子,实在是因为RAID6这个概念所指的意义太混乱。
从功能上讲,能实现两颗磁盘掉线容错的,都叫RAID6。
(至少我认识的销售们都这么认为。
)但是实行这一功能的方式却有很多很多。
(沉默3分钟)真的很多!哎哟!别打啊~Intel的P+Q RAID6,NetApp的RAID-DP,HP的RAID5-DP,还要很多实验室中的原型机都能实行这个功能。
但是由于机制不同,各种所谓的RAID6,其性能表现、磁盘负载分布、错误恢复方式都完全不同。
你让我从哪说起好哩?三、基于P+Q的RAID6在Intel的80333IOP芯片中,有一个新的引擎叫P+Q单元,是专门用来处理RAID6加速的。
详情请查阅Intel官方网站,讲座到此结束……(鸡蛋、西红柿、拖鞋。
咦!这是谁的臭袜子?)真当我什么都不懂啊!好,接着说。
对比RAID5的机制,Intel的P+Q RAID6是这样写磁盘的:见下面第二个图。
这里每个条带中的P,跟RAID5里面的P意义完全一样,就是同一条带中除Q以外其它数据的XOR运算结果。
而Q呢,就是理解这个技术的关键所在了。
咳~咳~听好了。
Q是同一条带中各数据的女朋友们进行XOR运算的结果。
别翻白眼啊,书上就是这么写的啊!哦,还是英文的,我翻译给你听。
“把条带中每个数据分别GF一下,然后这些结果再XOR,就得到Q。
”(大哥,你到底懂不懂啊!GF是Galois Field的缩写,是法国著名数学家伽罗瓦发明的一种数学变换。
)哦,想起来了。
伽罗瓦嘛,发明群论的那个。
生于法国大革命前,二十出头就英年早逝,还是为了个姑娘跟人决斗被打死的。
最著名的成果就是给3次以上方程判了死刑。
是我人生第二偶像啊……(唐僧!)这个GF变换呢,就是这个淘气的伽同学当年为了逃避老师点名,而发明的一种教室换座位方法。
按照这种方法,每个人都不会坐在自己的座位上,而且每个人都肯定会有座位。
而且任意个同学的座位号进行XOR 运算之后,仍然跑不出这个教室里的座位号。
(这个伽同学好像很无聊噢!没办法,人家聪明嘛!)扯太远啦!回到正题。
在Intel 80333IOP中存着两个表格,分别对应GF正向变换和反向变换。
任何一个8位二进制数,都可以直接在表格中查到对应的GF变换结果。
(我还是想把这个结果说成是源数据的女朋友~)这两个表格分别在Intel 80333IOP研发手册的第445页和446页,不过我估计大部分人会懒得去看。
也是,看了又能怎么样呢?反正Intel已经把那玩意固化到芯片里了。
哇!都半夜2点了,说完P+Q RAID6的恢复,我要先zZZ……了。
如果一颗磁盘掉线,根本不需要Q用P直接就搞定了,跟RAID5一样。
如果两颗磁盘掉线,又分做两种情况:A)坏的地方有Q。
这种情况跟RAID5坏一颗磁盘一样,用XOR就恢复了。
B)坏的地方没有Q。
用GF变换加XOR一起搞定。
结合上面表格的例子,如果磁盘5和磁盘6掉线。
那条带1和条带2就属于情况A;而条带3、4、5和6属于情况B。
上回书说到P+Q的RAID6在Intel芯片里的实现。
其实P+Q只是一种算法,Intel IOP里面的硬件加速引擎并不是必须的。
有一些产品就采用了PowerPC等不含P+Q引擎的CPU,一样不耽误P+Q RAID6功能。
GF转换表在软件里完成就是了。
(不敢提女朋友的事了,怕Host说我~四、准RAID6技术除了P+Q RAID6,还要好多种办法可以实现对两颗磁盘掉线的容错。
Billylee提供的Intel讲义中就提到一种Dual-XOR算法,这种方法就是取横向和斜向两个方向进行XOR 运算,这样每个应用数据都在两个校验中留下痕迹,当两颗磁盘掉线时,就可以恢复数据。
但是Dual-XOR的恢复工作异常复杂艰苦,并不实用。
很多技术人员研究这种算法的意义,完全是把它当作未经优化的原型思想。
如图,Pa是横向的校验,跟RAID5完全一样:Pa1 = 数据a XOR 数据bPa2 = 数据c XOR 数据d…………Pa6 = 数据k XOR 数据lPb是斜向校验,定义为:Pb4 = 数据a XOR Pa2 XOR数据fPb5 = 数据c XOR 数据e XOR Pa4Pb6 = Pa3 XOR数据h XOR 数据j可以看出Dual-XOR的校验生成过程比P+Q要简单,但是根据“麻烦守恒定律”,正向工作简单的事情,一般反向工作都会复杂。
备份和恢复一般也遵循这个规律。
(别跟我提CDP,那东西遵循的是广义麻烦守恒定律。
每个I/O都打个时间标签,还都当宝贝存着不扔,这能是个不麻烦的事吗?Sorry,又扯远了。
)当两颗磁盘掉线的时候,Dual-XOR的算法只能支持逐个数据块的恢复,而且不同条带之间还要共同参与计算。
比如图中的磁盘1和2掉线,恢复数据e的时候,就要至少动用到数据f、Pb3、Pa4和Pb5。
而数据c和Pa3的恢复还要依赖数据e的恢复。
总之恢复起来是件贼头痛的事情!虽然Intel的Dual-XOR理论意义大于实际意义,但其改良的版本RAID-DP却已经被NetApp产品化。
NetApp 之所以喜欢这个类似Dual-XOR的RAID-DP算法,原因也很简单。
NetApp原本用的就是RAID4,而不是RAID5,其算法的中心思想就是每次I/O只跟两颗磁盘打交道就OK,自然就不会在乎RAID-DP中很多动作都只跟两、三颗磁盘打交道。
(这个思想也许在很多RAID5的Fans看来有点奇怪,难道不是磁头越多性能就越好吗?但是人家NetApp 这么多年的经验都集中在WAFL文件系统上,而WAFL文件系统又是专门针对这种思想优化的。
所以NetApp 对这个略有异类的思想不仅没有放弃,而且越研究越起劲。
)这个递归式数据恢复机制简直像在玩RPG游戏,但是对WAFL文件系统来说,却的确是最合适的选择之一。
除了RAID-DP,还有X-Code编码、ZZS编码、Park编码……都可以看做是“准RAID6”。
下面这个图是X-Code的解释P3x = 数据33 XOR 数据35 XOR 数据32Px4 = 数据44 XOR 数据24 XOR 数据54其他的校验是啥意思,不需要一一列出来了吧~X-Code从理论上看,的确是个负载均衡、计算简单(只有XOR,没有类似GF一样的变换)、磁盘对称度很高的算法。
但是实际应用还是有问题。
20楼的例子是5颗磁盘的X-Code编码方式,例子中的5个条带是一个整体,一起处理。
如果写入的数据不多,没有写满前3个条带,就需要在写入的同时,把未更新的数据读出来,凑齐3x5个数据,再一起计算校验码。
如果是6颗磁盘,那就要6个条带作为一个整体。
7颗磁盘一个RAID组,就需要7个条带一个整体。
8颗磁盘一个RAID组,就需要8个条带一个整体。
9颗磁盘一个RAID组,就需要9个条带一个整体。