首页/系统/服务器硬件与 RAID 速查/RAID 6 的双校验:P 与 Q
RAID 级别与计算68 条

RAID 6 的双校验:P 与 Q

RAID 6 在 P(XOR)之外增加 Q 校验:P 基于异或,Q 基于伽罗瓦域 GF(2^8) 的乘法系数。两套独立方程让任意两块盘故障可解,代价是每写一次要更新两组校验。

RAID 6 的双校验是什么

RAID 6 在 RAID 5 的 P 校验之外增加了一组独立的 Q 校验:P 基于异或,Q 基于伽罗瓦域 GF(2^8) 上的乘法系数。两套方程相互独立,因此任意两块盘同时故障都能解出原始数据,这就是 RAID 6 的容错来源。代价是每次写要更新两组校验,随机写与重建的负担都高于 RAID 5。

校验公式

P 校验D1 ⊕ D2 ⊕ … ⊕ Dn
Q 校验g^0·D1 ⊕ g^1·D2 ⊕ … ⊕ g^(n-1)·Dn(GF(2^8) 运算)
意义两条独立线性方程,可解两个未知数,因此容忍两盘故障
开销每次写需更新 P 与 Q 两组校验,计算量约为 RAID 5 的 1.5 到 2 倍

RAID 5 与 RAID 6 对照

维度RAID 5RAID 6
校验盘数1 块(分布在各盘)2 块(分布在各盘)
容错能力任意 1 块盘故障任意 2 块盘故障
可用容量(N-1) x 单盘容量(N-2) x 单盘容量
重建风险大容量盘重建窗口内风险高重建期间仍有一块冗余余量

查看阵列的级别与校验布局

查看阵列的级别与校验布局
storcli /c0/v0 show all | grep -i -E "raid|drives"   # 级别与成员盘
storcli /c0/v0 show cc                              # 一致性检查进度
storcli /c0/vall show all | grep -i -E "RAID|State"  # 状态是否保持 Optimal
storcli /c0 show events | tail -30                   # 是否有盘被剔除的记录

典型使用场景

  • 大容量归档阵列:单盘容量大、重建时间长,双校验能扛住第二个盘故障
  • 近线存储与备份目标:顺序写为主,RAID 6 的校验开销可接受
  • 无人值守机房:现场响应慢,需要更长的可容忍故障窗口
  • 盘数较多的阵列:成员盘越多,双盘故障概率越高,RAID 6 更合适
  • 重要但非极致性能业务:用少量写性能换取更高的数据可用性
RAID 6 计算量约为 RAID 5 的 1.5 到 2 倍,卡上芯片与固件质量直接影响随机写表现。
RAID 6 的两块冗余不是把重建时间缩短,而是把「重建期间又坏一块」的后果从数据丢失降级为仍可恢复;重建限速与巡检节奏依然要规划。

选型考虑点

  • 单盘容量越大、重建越久,双校验的价值越明显
  • 写密集型业务优先评估 RAID 10 或带缓存的方案
  • 成员盘数量增加时同步评估故障域与背板布局
  • 配套规划重建限速与巡检周期,避免长期处于高风险窗口

易错点

  • 以为 RAID 6 是「RAID 5 加一块热备」:热备只是备用盘,不提升同时故障容忍度
  • 忽略 Q 校验的维护开销:一致性检查与重建都比 RAID 5 更重
  • 用 RAID 6 承担写密集业务:校验开销与写放大叠加,性能低于预期

数据来源与参考

  • 《The RAID Book》(RAID 6 数学)
  • Broadcom MegaRAID 用户指南(RAID 6)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌