解析Linux环境下RAID 6的Q校验算法.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
解析Linux环境下RAID 6的Q校验算法 【前言】 RAID为廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),RAID技术将一个个单独的磁盘以不同的组合方式形成一个逻辑硬盘,从而提高了磁盘读取的性能和数据的安全性。不同的组合方式用RAID级别来标识,常见RAID的级别有0、1、01、10、5、6等等。具体实现的数据存储的原理请参考相关文章。本章主要概述Linux环境下RAID 6级别的存储原理。Linux环境下配置RAID的命令是“mdadm”。 【RAID 6概述】 ? ? RAID 6是指带有两种分布存储的奇偶校验码(既P和Q)的独立硬盘结构。与RAID 5相比,RAID 6增加了第二个独立校验码(Q)信息块,两个独立的奇偶校验系统使用不同的算法,数据的可靠性非常高,即使两块硬盘同时失效也不会影响数据的使用,主要是用于要求数据绝对安全的场合。如下图: 上图中Q为RAID 6的第二个校验信息块,采用的是非常复杂的“伽罗华域”算法,稍后会讲到。 【RAID 6的P校验概述】 ? ? 其实RAID 6的P校验和RAID 5的校验是一样的,都是采用的“异或”运算。异或运算符的原则就是相同为0,不同为1的。在RAID 5的环境中只能掉一块硬盘,但是RAID 6在RAID 5的基础上添加了Q校验,因此RAID 6支持同时掉两块盘。异或运算如下: P = A + B + C = A xor B xor C A = P - B - C = P xor B xor C 注意:上述的加减法都是异或运算。 【RAID 6的Q校验概述】 ? ?说到Q校验就有点复杂了,它采用上面所提到的“伽罗华域”算法。“伽罗华域”实际上就是“0-255”的一个有限域GF(2^8),在GF(2^8)内不管是是加、减、乘、除都不会超过这个范围。并且,加减法可逆,乘除法可逆,而且计算的值在GF(2^8)内是唯一的。注意:此处提到的加、减、乘、除法不是日常使用的加减乘除,而是“伽罗华域”内的运算。在GF(2^8)中,如果2的n次方大于某个值(本原多项式)就会对该值(本原多项式)取余,结果又会返回到GF(2^8)中。因此,保证了2^0到2^255的结果值在GF(2^8)内是唯一的。 在GF(2^8)中一共有16个本原多项式,分别如下: 1 ? ? x8+x7+x6+x5+x4+x2+1 ? ? ? ? ? ? ?1 1111 0101 = 0x1F5 ? 2 ? ? x8+x7+x6+x5+x2+x+1 ? ? ? ? ? ? ? 1 1110 0111 = 0x1E7 3 ? ? x8+x7+x6+x3+x2+x+1 ? ? ? ? ? ? ? 1 1100 1111 = 0x1CF 4 ? ? x8+x7+x6+x+1 ? ? ? ? ? ? ? ? ? ? 1 1100 0011 = 0x1C3 5 ? ? x8+x7+x5+x3+1 ? ? ? ? ? ? ? ? ? ?1 1010 1001 = 0x1A9 6 ? ? x8+x7+x3+x2+1 ? ? ? ? ? ? ? ? ? ?1 1000 1101 = 0x18D 7 ? ? x8+x7+x2+x+1 ? ? ? ? ? ? ? ? ? ? 1 1000 0111 = 0x187 8 ? ? x8+x6+x5+x4+1 ? ? ? ? ? ? ? ? ? ?1 0111 0001 = 0x171 9 ? ? x8+x6+x5+x3+1 ? ? ? ? ? ? ? ? ? ?1 0110 1001 = 0x169 10 ? ?x8+x6+x5+x2+1 ? ? ? ? ? ? ? ? ? ?1 0110 0101 = 0x165 11 ? ?x8+x6+x5+x+1 ? ? ? ? ? ? ? ? ? ? 1 0110 0011 = 0x163 12 ? ?x8+x6+x4+x3+x2+x+1 ? ? ? ? ? ? ? 1 0101 1111 = 0x15F 13 ? ?x8+x6+x3+x2+1 ? ? ? ? ? ? ? ? ? ?1 0100 1101 = 0x14D 14 ? ?x8+x5+x3+x2+1 ? ? ? ? ? ? ? ? ? ?1 0010 1101 = 0x12D 15 ? ?x8+x5+x3+x+1 ? ? ? ? ? ? ? ? ? ? 1 0010 1011 = 0x12B 16 ? ?x8+x4+x3+x2+1 ? ? ? ? ? ? ? ? ? ?1 0001 1101 = 0x11D RAID 6常用的本原多项式为0X11D,既上列中最后一个。Linux 环境中的RAID 6也是如此。 好了回到Q校验上,Q校验和

文档评论(0)

知识贩卖机 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档