RAID6数据结构分析
RAID6技术
RAID 6技术发布时间:2007年5月12日此信息已被浏览722次RAID技术是为了防止存储系统因为磁盘故障而丢失数据而研发出来的。
该技术把数据和校验信息分布到一组盘中(RAID组),当有盘坏的时候,丢失的那部分数据可以通过其他盘上的数据和校验信息计算恢复。
这样就增强了存储系统的可靠性。
如今磁盘的容量和密度一再变大,出现了300GB的光纤盘和750GB的SATA盘,每个盘中存放的数据比以往大了很多,磁盘故障影响的数据量也跟着增加。
这样从磁盘故障,到磁盘系统恢复正常状态的时间也会比以往长很多,这个过程中同一个RAID组里面第二块磁盘出现故障而导致数据丢失的可能性也变大。
为了防止两块磁盘故障而引起的数据丢失, AMA存储系统现支持RAID 6(6D + 2P),从而为企业多增加了一层数据保护机制,防止企业免受损失。
和RAID 5相似的是,RAID 6采用了校验数据,和RAID 5不同的是RAID 6有两份检验数据,可以保证同一RAID组中两块磁盘同时故障而不丢失数据基于P+Q的RAID6原理:和RAID 5相似,RAID 6(6D + 2P)根据条带化的数据生成校验信息,条带化数据和校验数据一起分散存储到RAID组的各个磁盘上。
(P代表校验数据,Q是第二份校验数据)。
如下图是RAID6数据块在磁盘上的分布:如果其中的一块盘坏掉的话,就会利用其中的P 校验信息就可以算出来,而不会用到Q校验信息,如果两块盘同时坏掉的情况下,才会用到Q校验信息!也就用到异或运算,通过其中的两个盘的信息,在加上P、Q校验信息算出其中的数据。
RAID6的性能:既然RAID6是最新的RAID冗余技术,那么他的性能应该是非常不错的。
(1)RAID6的随机读取性能:很好(2)RAID6的随机写入性能:差,因为不但要在每硬盘上写入校验数据而且要在专门的校验硬盘上写入数据。
(3)RAID6的持续读取性能:好(4)RAID6的持续写入性能:一般。
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。
什么是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。
raid6计算方法
raid6计算方法RAID6可是存储领域里很厉害的一种技术呢 。
RAID6是啥?简单说呀,它是一种磁盘阵列技术,主要是为了保证数据的安全性和可靠性。
那它的计算方法呢?RAID6需要至少4块磁盘哦。
它的容量计算有点小特别。
假如我们有n块磁盘,每块磁盘的容量是C,那RAID6的可用容量就是(n - 2)×C。
比如说,我们有5块1TB的磁盘,那可用容量就是(5 - 2)×1TB = 3TB啦。
这是为啥呢?因为RAID6要牺牲两块磁盘的容量来存储校验信息,这样才能在两块磁盘同时出故障的时候还能恢复数据呢,是不是很神奇 。
再说说它的校验计算。
RAID6用的是双重校验,这就像给数据上了双保险。
它通过复杂的算法来计算校验数据,这个算法有点像数学里的那种高深的组合计算。
不过咱不用太纠结具体算法啦,只要知道它能通过这些校验数据在磁盘故障的时候把数据找回来就行。
打个比方,就像我们有个魔法盒子,里面的数据要是少了或者乱了,这个魔法盒子里的校验数据就能像魔法咒语一样把数据还原到正确的样子 。
RAID6在企业级的存储应用里可太重要啦。
想象一下,如果企业的数据是宝贝,那RAID6就是保护这些宝贝的超级保镖。
它能容忍两块磁盘同时出故障,这对于那些不能容忍数据丢失的企业来说,简直就是救星。
而且它的计算方法虽然有点复杂,但是理解了基本的原理之后,就会觉得它真的很巧妙。
就像一个精心设计的机关,每个部分都有它的作用,组合起来就成了保护数据的强大力量 。
总之呢,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 能从保存的对等数据中恢复所有数据,重建缺陷磁盘。
• 磁盘组本身没问题,但其中一个磁盘上出现了坏块(即不能读取的块),造成某些数据不能恢复。
【免费下载】raid5与raid6之间的区别
raid5和raid6的数据安全性比较磁盘阵列(disk array)可以有效的提高存储系统的可靠性和性能,同时也存在显著的缺点,那就是由于多个设备(磁盘)同时使用,导致了可靠性降低(从概率的角度来讲:N个设备的可靠性是一个设备的1/N)。
RAID(Redundant array of inexpensive disk)就是为了解决这个问题而产生的,RAID通过给磁盘阵列增加冗余磁盘提高了磁盘阵列的可靠性。
所谓冗余磁盘,即该磁盘不用于存放实际数据,而用来存放一些冗余信息,而这些冗余信息可用来在必要的时候进行有效数据恢复,从而增加磁盘阵列的可靠性,翻译成中文应该叫廉价磁盘冗余阵列。
在RAID6出现之前,RAID已经有了从RAID0~RAID5六个版本。
那么我们已经有了这么多的RAID方式,提供了相当级别的可靠性保护,为什么我们还需要RAID6?在这里,我们这里先比较研究一下几种比较有代表性的RAID方式:磁盘冗余家族概览目前应用最广泛,支持设备最多的RAID方式主要是RAID0,RAID1和RAID5(1)无冗余(RAID0):RAID0实际上不能算做真正的RAID技术,它只是实现了磁盘阵列存放数据的带状分布。
虽然提高了大规模数据访问的性能,但是RAID0并没有冗余容错的功能,因为它本身并无冗余,所以可以说这里的RAID0是个误称。
(2)镜像(RAID1):RAID1同样实现了数据的带状分布,与RAID0所不同的是,在数据写入一个磁盘的时候,同时在另一个磁盘做相应的镜象。
因此,RAID1虽然有数据容错功能,但是其对磁盘的利用率实在比较底,仅为50%。
数据分布示意图(以4块磁盘组成的阵列为例):注释:其中d1,d2等表示存放的数据,d1’, d2’分别表示了数据d1和d2的备份。
(3)奇偶校验(RAID5):相对于RAID1比较,RAID5也是仅仅实现了单个磁盘的冗余纠错功能,但是却大大提高了磁盘的有效利用率。
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 6带图介绍
RAID 6的简单介绍RADI6技术Independent Data disks with two independent distributed parity schemes(独立的数据硬盘与两个独立分布式校方案)RAID 6等级是在RAID 5基础上,为了进一步加强数据保护而设计的一种RAID方式,实际上是一种扩展RAID 5等级。
与RAID 5的不同之处于除了每个硬盘上都有同级数据XOR校验区外,还有一个针对每个数据块的XOR校验区。
当然,当前盘数据块的校验数据不可能存在当前盘而是交错存储的,具体形式见图。
RAID-6结构图解这样一来,等于每个数据块有了两个校验保护屏障(一个分层校验,一个是总体校验),因此RAID 6的数据冗余性能相当好。
但是,由于增加了一个校验,所以写入的效率较RAID 5还差,而且控制系统的设计也更为复杂,第二块的校验区也减少了有效存储空间。
由于RAID 6相对于RAID 5在校验方面的微弱优势和在性能与性价比方面的较大劣势,RAID 6等级基本没有实际应用过,只是对更高级的数据的冗余进行的一种技术与思路上的尝试,下面我们就做一个总结:RAID-6 是在RAID-5基础上把校验信息由一位增加到两位的raid 级别。
RAID-6和RAID-5一样对逻辑盘进行条带化然后存储数据和校验位,只是对每一位数据又增加了一位校验位。
这样在使用RAID-6时会有两块硬盘用来存储校验位,增强了容错功能,同时必然会减少硬盘的实际使用容量。
以前的raid级别一般只允许一块硬盘坏掉,而RAID-6可以允许坏掉两块硬盘,因此,RAID-6 要求至少4块硬盘。
一个RAID-6的阵列中可以最多有16个硬盘。
假设一共6块硬盘,使用4块创建逻辑盘,raid6,4个硬盘在使用时都被先条带化,然后分别存储数据和校验位。
如果一块硬盘出现物理故障,RAID的会处于降级状态,但是仍然有容错功能;如果出现第二块硬盘故障,逻辑盘中还剩下的两块硬盘就不再有容错功能。
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,以及一系列循环迭代。
RAID-6
11. 幂数(不断地乘以同一个值)对模 255 同余除了 {00}。 A256 = {01} · A = A A255 = {01} A254 = A255 /A = {01}/A = A−1
A ̸= {00}
A−1 称为 A 的逆。{01} 的逆是其本身,{00} 没有逆,对于所有其他元素 A−1 ̸= A。 对于任意 A、 B ̸= {00},有 A/B = A · B −1 。相应地对应所有 A ̸= {00},满足 A/A = A · A−1 = {01}。 12. 元素 (g ) 称为生成元,g n 遍历域内所有元素除了 {00}。对于 AES 使用的域,{02} 是其生 成元。 13. g 定义了一个GF(28 ) 中非零的元素到 Z255 的映射(比如:整数 0 − 254,模 255) ,称之为 以 g 为底数的对数,记做 logg 。比如,{02}4 = {10},所以 log{02} {10} = 4。 对于任意非零的伽罗瓦域上的元素 A 和 B : A · B = C ⇐⇒ logg A ⊕ logg B = logg C ⊕ 表示模 255 的传统加法运算。因此有: C = g logg A⊕logg B
4
vv = (v << 1) & 0xfefefefe; vv ^= ((v & 0x00000080) ? 0x0000001d : 0) + ((v & 0x00008000) ? 0x00001d00 : 0) + ((v & 0x00800000) ? 0x001d0000 : 0) + ((v & 0x80000000) ? 0x1d000000 : 0); 第一行 0xfefefefe 将每个字节中移位出下一个字节的内容去掉。第二行则显然太复杂,离高效 相差甚远。但如果我们能够遮盖每个字节的最高位,我们就只需要做: uint32_t v, vv; vv = (v << 1) & 0xfefefefe; vv ^= MASK(v) & 0x1d1d1d1d; 其中,MASK() 函数在标准 C 中是这样的: uint32_t MASK(uint32_t v){ v &= 0x80808080; /* Extract the top bits */ return (v << 1) - (v >> 7); /* Overflow on the top bit is OK */ } 如果最高位比特为 0,结果为 0x00,否则为 0xff。这个算法在 raid6int.uc 中使用。 为了进一步加速,可以使用机器上可用的整数向量指令集,比如 x86 上的 MMX 或者 SSE-2, 和 PowerPC 上的 AltiVec 等。 (后面有关指令集的内容就没翻译了)
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通过使用多个磁盘驱动器和两个奇偶校验值来提供高容量、高可靠性的数据存储。
它可以同时容忍两个磁盘故障,并能够通过重新计算奇偶校验值来恢复丢失的数据。
RAID6与RAID5数据安全性对比
RAID6与RAID5数据安全性对比磁盘阵列(disk array)可以有效的提高存储系统的可靠性和性能,同时也存在显著的缺点,那就是由于多个设备(磁盘)同时使用,导致了可靠性降低(从概率的角度来讲:N个设备的可靠性是一个设备的1/N)。
RAID(Redundant array of inexpensive disk)就是为了解决这个问题而产生的,RAID通过给磁盘阵列增加冗余磁盘提高了磁盘阵列的可靠性。
所谓冗余磁盘,即该磁盘不用于存放实际数据,而用来存放一些冗余信息,而这些冗余信息可用来在必要的时候进行有效数据恢复,从而增加磁盘阵列的可靠性,翻译成中文应该叫廉价磁盘冗余阵列。
在RAID6出现之前,RAID已经有了从RAID0~RAID5六个版本。
那么我们已经有了这么多的RAID方式,提供了相当级别的可靠性保护,为什么我们还需要RAID6?在这里,我们这里先比较研究一下几种比较有代表性的RAID方式:磁盘冗余家族概览目前应用最广泛,支持设备最多的RAID方式主要是RAID0,RAID1和RAID5(1)无冗余(RAID0):RAID0实际上不能算做真正的RAID技术,它只是实现了磁盘阵列存放数据的带状分布。
虽然提高了大规模数据访问的性能,但是RAID0并没有冗余容错的功能,因为它本身并无冗余,所以可以说这里的RAID0是个误称(2)镜像(RAID1):RAID1同样实现了数据的带状分布,与RAID0所不同的是,在数据写入一个磁盘的时候,同时在另一个磁盘做相应的镜象。
因此,RAID1虽然有数据容错功能,但是其对磁盘的利用率实在比较底,仅为50%。
数据分布示意图(以4块磁盘组成的阵列为例):注释:其中d1,d2等表示存放的数据,d1’, d2’分别表示了数据d1和d2的备份。
(3)奇偶校验(RAID5):相对于RAID1比较,RAID5也是仅仅实现了单个磁盘的冗余纠错功能,但是却大大提高了磁盘的有效利用率。
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
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为了防止两块磁盘故障而引起的数据丢失,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是第二份校验数据。
图1
RAID 6(6D + 2P)根据条带化的数据生成校验信息,条带化数据和校验数据一起分散存储到RAID组的各个磁盘上
RAID 6校验数据生成公式(P和Q):
P的生成用了异或
P = D0 XOR D1 XOR D2 XOR D3 XOR D4 XOR D5
Q的生成用了系数和异或
Q = A0*D0 XOR A0*D1 XOR A0*D2 XOR A0*D3 XOR A0*D4 XOR A0*D5
D0~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个磁盘中,可以充分保证读写性能和数据的安全性。
图2
RAID 6的数据分布
RAID 6可以保证同一个RAID组中两块磁盘故障的情况下的数据安全。
RAID 6的数据恢复
从1块磁盘故障中恢复数据
当有1块磁盘出故障的时候,利用公式1恢复数据,这个过程不需要Q这部分校验数据,如图3所示,这个过程是和RAID 5一样的。
图3
在RAID 6(6D + 2P)中恢复D3数据,展示了存放D3数据的盘出现故障的恢复过程
公式:D3 = D0 XOR D1 XOR D2 XOR P XOR D4 XOR D5
从2块磁盘故障中恢复数据
当同时有2块磁盘故障的时候,需要同时用到公式1和公式2来恢复数据,如图4所示。
图4
在RAID 6(6D + 2P)中恢复D3和D4数据,展示了存放D3和D4数据的盘出现故障的恢复过程
公式1和公式2:
P = D0 XOR D1 XOR D2 XOR D3 XOR D4 XOR D5
Q = A0*D0 XOR A0*D1 XOR A0*D2 XOR A0*D3 XOR A0*D4 XOR A0*D5
D3和D4由解以上两个联立的方程得出结果,从而实现RAID6数据的重建工作。
总结
以上可以看出RAID6是较RAID5更加安全的一种磁盘阵列RAID类型级别,RAID5损
坏一块盘的情况下可以正常工作,而RAID6在损坏2块盘的情况下还可以正常工作,因此,RAID6技术将来会取代RAID6,流行于磁盘存储的领域中。
本文出自: 江民飞客硬盘数据恢复技术区, 原文地址:/bloger/post/96.html。