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的值。

爬虫Python学习是指学习如何使用Python编程语言来进行网络爬取和数据提取的过程。Python是一种简单易学且功能强大的编程语言,因此被广泛用于爬虫开发。爬虫是指通过编写程序自动抓取网页上的信息,可以用于数据采集、数据分析、网站监测等多个领域。 对于想要学习爬虫的新手来说,Python是一个很好的入门语言。Python的语法简洁易懂,而且有丰富的第三方库和工具,如BeautifulSoup、Scrapy等,可以帮助开发者更轻松地进行网页解析和数据提取。此外,Python还有很多优秀的教程和学习资源可供选择,可以帮助新手快速入门并掌握爬虫技能。 如果你对Python编程有一定的基础,那么学习爬虫并不难。你可以通过观看教学视频、阅读教程、参与在线课程等方式来学习。网络上有很多免费和付费的学习资源可供选择,你可以根据自己的需求和学习风格选择适合自己的学习材料。 总之,学习爬虫Python需要一定的编程基础,但并不难。通过选择合适的学习资源和不断实践,你可以逐步掌握爬虫的技能,并在实际项目中应用它们。 #### 引用[.reference_title] - *1* *3* [如何自学Python爬虫? 零基础入门教程](https://blog.csdn.net/zihong523/article/details/122001612)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [新手小白必看 Python爬虫学习路线全面指导](https://blog.csdn.net/weixin_67991858/article/details/128370135)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值