博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
raid5 和 异或运算的关系
阅读量:3521 次
发布时间:2019-05-20

本文共 523 字,大约阅读时间需要 1 分钟。

RAID5 的算法其实就是数学里面的XOR的算法, 是这样表示的⊕,这个运算方式大概是在大学课程中学习过。 

  • 1 ⊕ 1 = 0
  • 1 ⊕ 0 = 1
  • 0 ⊕ 1 = 1
  • 0 ⊕ 0 = 0

多个数字XOR的时候,有两个特点:

  • A)结果与运算顺序无关。也就是 (a XOR b) XOR c = a XOR (b XOR c)。
  • B)各个参与运算的数字与结果循环对称。如果 a XOR b XOR c = d,那么a = b XOR c XOR d;b = a XOR c XOR d;c = a XOR b XOR d。

    磁盘阵列中的RAID5之所以能够容错,就是利用了XOR运算的这些特点。上面例子中的a、b、c、d就可以看作是四颗磁盘上的数据,其中三个是应用数据,剩下一个是校验。碰到故障的时候,甭管哪个找不到了,都可以用剩下的三个数字XOR一下算出来。

    在实际应用中,阵列控制器一般要先把磁盘分成很多条带(英文叫Stripe),然后再对每组条带做XOR。

  所以做RAID5 至少要有三个硬盘, 而实际存储空间的大小 = 最小硬盘的存储大小 * (总的硬盘数 - 1 ),它容许当中任意一个硬盘出错, 这样可以根据校验位算出另外一个硬盘的数据。

转载地址:http://zkeqj.baihongyu.com/

你可能感兴趣的文章
React绑定全局方法或变量
查看>>
js监听div标签上面的自定义属性
查看>>
navcat如何重置窗口
查看>>
代码注入
查看>>
off-by-one
查看>>
ctf-pwn的一些小技巧
查看>>
POJ 1915 Knight Moves
查看>>
Git 撤销修改
查看>>
Git 删除文件
查看>>
Git与远程仓库关联以及关联错误解决方法
查看>>
[HDU] 平方和与立方和
查看>>
[HDU 2096] 小明A+B
查看>>
[HDU 2520] 我是菜鸟,我怕谁(不一样的for循环)
查看>>
[HDU 1215] 七夕节(求因子,不超时)
查看>>
[POJ 1915] Knight Moves
查看>>
Memcache技术精华
查看>>
Redis详解入门篇
查看>>
php开启redis扩展包与redis安装
查看>>
php使用openssl来实现非对称加密
查看>>
pdo如何防止 sql注入
查看>>