首页/系统/服务器硬件与 RAID 速查/校验计算入门:XOR 原理
RAID 级别与计算68 条

校验计算入门:XOR 原理

RAID 5 的校验就是异或(XOR):P = D1 ⊕ D2 ⊕ D3 ⊕ …,任意一块数据可由其余数据与 P 反推。理解异或就能理解为什么同一时刻只能坏一块盘。

4 盘 RAID 5 单条带示例(1 字节块)

4 盘 RAID 5 单条带示例(1 字节块)
D1 = 0x6A    D2 = 0x3F    D3 = 0x9C
P  = D1 ^ D2 ^ D3 = 0x49
校验:D1 = P ^ D2 ^ D3(任一盘丢失都可用同样方式恢复)

用 Python 验证

用 Python 验证
python3 -c "print(hex(0x6A ^ 0x3F ^ 0x9C))"
两块盘同时丢失时 XOR 无法求解(未知数多于方程),这就是 RAID 5 容错上限的数学原因;RAID 6 用两套独立方程(P 与 Q)解决。

易错点

  • 把校验当冗余数据副本:校验是计算结果,单靠校验块不能直接读数据
  • 误以为 RAID 5 可逐盘恢复:恢复推理以其余所有盘为前提,盘数越多读取越多

数据来源与参考

  • 《The RAID Book》(XOR 校验推导)
  • SNIA 存储术语表(parity)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌