raid6 p和q计算方法
RAID 6是指带有两种分布存储的奇偶校验码(既P和Q)的独立硬盘结构。与RAID 5相比,RAID 6增加了第二个独立校验码(Q)信息块,两个独立的奇偶校验系统使用不同的算法,数据的可靠性非常高,即使两块硬盘同时失效也不会影响数据的使用,主要是用于要求数据绝对安全的场合。如下图:
【RAID 6的P校验概述】
其实RAID 6的P校验和RAID 5的校验是一样的,都是采用的“异或”运算。异或运算如下:
P = A1xor A2 xor A3
Q=(A1*K1) xor (A2*K2) xor (A3*K3)
(“*”号代表伽罗瓦域乘,K为常量系数,取值1到255之间正整数,A1~A3:条带化的数据)
“伽罗华域”实际上就是“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个本原多项式:
RAID 6常用的本原多项式为0X11D。(X8=x4+x3+x2+1; Xn代表x的n次方。这里X我们取值为2;)
1、生成正表GFILOG
通过下表的方法生成正表GFILOG,注意:此表的本原多项式为0X11D。
2、生成反表GFLOG
有了正向变换表,要得到逆向表就很简单了,把正向中的表变换值做为索引,在把正向表中的索引作为值就OK了。如下表:
3、计算乘除法运算(查表法:gftable代表GF正向变换表, gfitable代表GF反向变换表)
A1*K=gftable[(gfitable[A1]+gfitable[k]) mod 255];
A1/K=A1*K=gftable[(gfitable[A1]-gfitable[k]+255) mod 255];
当A1或K其中一个为零时或两个都等于零时, 上面的乘公式不成立。而应该是(A1*0=A1,K*0=K,0*0=0)。当A1等于K时,A1/K=0,当k等于0时,A1/0=D.
现在知道了伽罗华域的乘除法,那么我们计算Q校验就方便了许多。回到Q校验上,Q校验和P校验结合正好组成了一个二元一次方程,K1、K2、K3为GF(2^8)中多项式的数值。
P = A1 + A2 + A3
Q = A1*K1 + A2*K2 + A3*K3
【根据Q校验生成丢失的数据】
当RAID 6中坏掉两块磁盘,那该如何生成丢失的数据呢?用RAID 6的一个条带举例说明。
1、如果某个条带中丢失的两块数据是P和Q,那么正好,数据没有丢失,正常提取即可。
2、如果某个条带中丢失的两块数据是P和A1,那么可以根据Q校验计算出A1的数据。
P = A1*K1 + A2*K2 + A3*K3
A1*K1 = P + A2*K2 + A3*K3
A 1= (P + A2*K2 +A3*K3)/ K1 //注:K1可以通过查表获取
3、如果某个条带中丢失的两块数据是Q和A1,那么可以根据校验P计算出A1的数据。
P = A1 + A2 + A3
A = P + A2 + A3
根据前的内容已经知道伽罗华域的本原多项式有16种,K值经过测试,其值根据够成RAID 6阵列的磁盘数,从本原多项式0X11D的开始取(RAID 6总磁盘数 -2)个多项式的值作为K的值。
raid6 p和q计算方法相关推荐
- 《计算机系统结构》期末复习
资源已上传CSDN 系统结构基本概念 按功能划分的多级层次结构 翻译:将L+1级程序全部转化成L级程序,再去执行新产生的L级程序 解释:每一条L+1级指令被译码后,直接去执行一串等效的L级指令 计算机 ...
- 12.文件系统——磁盘管理之RAID概述
一.什么是RAID 从上个世纪80年代起,主流的硬盘接口主要有两类: A.IDE:用于桌面系统 B.SCSI:用于工业系统(因为转速高,平均巡道时间短,性能较IDE好) SCSI的性能虽然优于IDE, ...
- opengl计算帧率_或许是迄今为止第一篇讲解 fps 计算原理的文章吧
前言 fps,是 frames per second 的简称,也就是我们常说的"帧率".在游戏领域中,fps 作为衡量游戏性能的基础指标,对于游戏开发和手机 vendor 厂商都是 ...
- 1.4、云计算HCIA虚拟化存储基础知识
目标:了解华为虚拟化方案 掌握虚拟化中存储架构 了解磁盘类型 区分集中存储和分布式存储 掌握虚拟化存储和非虚拟化存储的区别 了解虚拟机磁盘的类型 了解华为虚拟产品的存储特点 一.存储分类 1.DAS( ...
- raid卡直通模式会走缓存吗_磁盘阵列 RAID 技术如何保护数据
RAID 的名称为磁盘阵列,它的作用,是在多块硬盘组成的系统中,牺牲一块至多块硬盘的容量,来对数据的存储提供一定的容错能力. 基本的 RAID 级别有 RAID0.RAID1.RAID5.RAID6. ...
- numpy 函数里面的axis参数的含义
前言 numpy支持对矩阵和数组进行运算,因此很多numpy的很多运算都需要指定操作的维数参数axis(当然这些axis都有带默认值的),本博客以numpy.sum求和函数为例,具体分析axis参数不 ...
- 时间序列预测之为何舍弃LSTM而选择Informer?(Informer模型解读)
LSTM的劣势 Figure 1: (a) LSTF can cover an extended period than the short sequence predictions, making ...
- 存储RAID——RAID级别
目录 RAID基本概念 RAID实现方式 RAID的数据组织形式 RAID的数据保护方式 RAID级别 RAID0 RAID1 RAID3 不怎么用了 RAID5 RAID6 RAID6 P+Q: R ...
- 电容充放电时间的计算方法(重点是对于恒流充放电的常用公式:⊿Vc=I*⊿t/C,其出自公式:Vc=Q/C=I*t/C。)电荷泵(无电感)中电容恒流放电的滤波可以参考4-20毫安的采集中RC滤波电路
电容充放电时间的计算方法 电子发烧友网•来源:fqj • 2019-05-29 14:55 • 45861次阅读 0 1L.C元件称为"惯性元件",即电感中的电流.电容器两端的电 ...
最新文章
- SIEM部署的几条最佳实践
- 漂亮,LSTM模型结构的可视化
- Activity的setContentView的流程
- Elasticsearch Javascript API增删改查
- learn avalon2
- Flash中的“插入关键帧”和“插入空白关键帧”的区别
- 使用 docker 部署 mdnice
- HDU 1950 Bridging signals
- 掌握shell编程中数组的常见用法及示例
- 停止追赶最新的 RPA 趋势
- C 语言实例 - 斐波那契数列
- sublime text3 3176激活
- ndk android studio万年坑
- 程序实现对数据排序并按出现次数进行排序 目录 1. 题目程序实现对数据排序并按出现次数进行排序	1 2. 思路	2 3. 效果	2 4. 代码 /00listPrj/src/Sort.java	2
- matlab中的矩阵元素表示和求和
- SqlServer误删数据恢复
- 100+大屏模板免费领!葡萄城BI行业应用方案重磅发布!
- PMP证书到期后,有没有必要续证了
- 自如网杭州市租房数据分析(1)
- 黑马程序员_常见异常