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元件称为"惯性元件",即电感中的电流.电容器两端的电 ...
最新文章
- python中args1是什么意思_理解Python中的*,*args
- tar 解压命令学习与总结
- python3.6.2安装教程-python 3.6.2 安装配置方法图文教程
- [转载] Web Service工作原理及实例
- python pip国内源_【Python】设置pip源为国内源及简单操作
- JQuery知识点汇总
- 工业交换机中:千兆级别和快速级别传输效率对比
- 嵌入式C开发中用到的位域结构体
- 使用Nuget 安装指定版本package或者更新package到指定版本
- 串口 多个activity 安卓_一个Activity实时向另一个Activity发送消息
- 从零开始学Pytorch之数据操作
- oracle统计信息导出与导入目的,Oracle统计信息的导出与导入
- 如何监控mysql主从之间的延迟
- 进击的雨燕----------基本运算符
- 更改虚拟机centos7的系统时间
- Altium DesignerPCB画3Dbody
- 我心中的超短系统之人气、情绪、大局观、仓控
- Python之pandas学习【5】:导入导出数据
- zip直链生成网站_防止赖床的闹钟软件、免费好用的看图软件、色卡生成器 今天有什么?...
- mysqldump 使用总结
热门文章
- VLAN经典诠释(转)
- 合理的估算线程池的大小
- c语言万年历如何实现横向打印,用C语言如何编写“万年历”
- CSDN问答频道“华章杯”1月排行榜活动开始,丰厚奖品等你拿
- 《细节决定成败》 汪中求著
- 值得学习的linux内核开发
- best-pay-sdk 微信请求支付的时候出现org.simpleframework.xml.core.ElementException:appid is null 问题
- linux vim 复制一个单词,Vim复制粘贴与寄存器
- 用java实现combin函数_【算法-Java实现】组合总和
- 癌症新知和癌症真相的区别_旧版代码是癌症