Chinaunix首页 | 论坛 | 博客
  • 博客访问: 299047
  • 博文数量: 40
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 535
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-17 14:08
文章分类

全部博文(40)

文章存档

2011年(1)

2010年(10)

2009年(29)

我的朋友

分类: 服务器与存储

2010-01-31 20:14:16

raid6允许两块磁盘同时失效,将数据从其它盘恢复出来。使用的数学基础是李德-所罗门算法,伽罗瓦域。
这里有一篇文章介绍了raid6的数学算法
如果地址失效,到这里下载
 
1. 在raid6中,需要计算两个因子P,Q,是这样计算的
D就是指的数据盘。 这里的“加”指的是xor,而“乘”是伽罗瓦乘。
g指generator,raid6中一般选择2,它的幂次方都是已知的。
 
2. 如果丢失一个数据盘和P盘,那么就需要从Q和其它数据盘进行恢复了。
假设丢失的数据盘是Dx,我们先令Dx={00},代入(2)式,求出Qx,再观察
这里,x,Q,Qx都是已知的数。在伽罗瓦域中,加和减是一样的,都是xor,于是
这里就能求出丢失的数据盘Dx的数据了。
 
3. 如果丢失了两块数据盘Dx和Dy,可以这样计算,设Dx={00},Dy={00},得到Pxy,Qxy,再观察
这里,x,y,Pxy,P,Q,Qxy都是已知的值,用g(x)除(7)式,得到
 
加法和减法相同,都是xor,得
 
代入等式(6),得到
 
 
如果g (y-x) +{01} 不等于 0,两边就可以同除于它了,这要求g (y-x)不等于{01},这个是成立的,因为y不等于x,故可以得到Dx的值
 
 
进而得到Dy的值
 
 
通常在实际应用中,会先计算g的幂次表和log表,以加快执行速度。
 
阅读(3126) | 评论(0) | 转发(0) |
0

上一篇:Jtag+OpenOCD+GDB调试

下一篇:胃病终于好了

给主人留下些什么吧!~~