首页/系统/服务器硬件与 RAID 速查/RAID 6 双校验:可容忍两块盘
RAID 级别与计算68 条

RAID 6 双校验:可容忍两块盘

RAID 6 使用两组独立校验(P + Q),任意两块盘同时故障仍可恢复;代价是多消耗一块盘的容量与更高的写惩罚,适合大容量、重建时间长的大盘阵列。

RAID 6 是什么

RAID 6 在 RAID 5 的基础上再加一套独立校验:除了异或得到的 P 校验,还有一份基于伽罗瓦域乘法的 Q 校验,两份校验分布在不同盘上,因此任意两块盘同时故障仍可重建全部数据。代价是最少要 4 块盘、固定损失两块盘的容量,写入要同步更新 P 与 Q,写惩罚升到 6。它解决的核心问题是:大容量盘重建窗口太长,RAID 5 的一盘容错撑不住这段窗口。

基本信息

最少盘数4 块,生产常用 6~12 块一组
容量公式(N - 2) × 单盘容量
容错2 块盘同时故障;坏一块后仍剩一块容错,可从容安排换盘窗口
写惩罚6(满条带对齐写为 4);小随机写性能明显低于 RAID 10
校验构成P 为异或校验,Q 为伽罗瓦域乘加校验,两份轮转分布
典型平台Linux mdadm --level=6、MegaRAID/PERC、部分老控制器对 RAID 6 支持有限

典型使用场景

  • 8TB 以上大容量近线盘组建的阵列:重建动辄一天,必须留两块盘的容错
  • 备份落盘、归档与冷数据卷:写入压力小,容量利用率优先
  • 盘数多(10 块以上)的阵列:盘越多,任一时刻有盘异常的期望越高
  • 无人值守机房或远程站点:现场换盘成本高,先扛住两块盘再等上门
  • 反向提醒:OLTP 数据库、虚拟化小随机写场景不选 RAID 6,写惩罚 6 的代价高于多一块盘的容错收益

容量与 IOPS 估算

容量与 IOPS 估算
# 8 块 8TB 7.2K SATA 盘,单盘随机 IOPS 按 75 估
可用容量 = (8 - 2) x 8TB = 48TB       # 固定损失两块盘容量
随机读 IOPS = 8 x 75 = 600            # 读不碰校验
随机写 IOPS ≈ 8 x 75 / 6 = 100        # 写惩罚 6:两套校验各自读改写
满条带对齐写 IOPS ≈ 8 x 75 / 4 = 150  # Q 校验仍需计算,惩罚降到 4
重建窗口:按 100MB/s 限速,8TB 盘约 22 小时以上

不同盘数的可用容量对比

盘数(8TB)RAID 5 可用RAID 6 可用RAID 6 少掉的容量
6 块40TB32TB8TB(一块盘)
8 块56TB48TB8TB(一块盘)
12 块88TB80TB8TB(一块盘)

mdadm 与 storcli 创建

mdadm 与 storcli 创建
mdadm --create /dev/md1 --level=6 --raid-devices=6 --spare-devices=1 --chunk=512 /dev/sd[b-h]1
cat /proc/mdstat                       # 确认级别为 raid6 且成员齐备
storcli /c0 add vd type=raid6 drives=252:0-7 pdcache=off wb direct   # 硬件卡上建 RAID 6
storcli /c0/v0 show all | grep -Ei 'RAID|State|Size'
RAID 6 的降级运行比 RAID 5 从容:坏掉一块盘后阵列仍处于带校验状态,换盘可以等采购到位、等业务低峰;这也是大容量盘阵列愿意多付一块盘容量的原因。
Q 校验的乘加运算由控制器或 CPU 承担:老款 RAID 卡上 RAID 6 的写性能可能明显低于同盘数的 RAID 5,选型前查卡的规格与固件,别只看级别名。

运维要点

  • 定期做校验巡检(scrub、consistency check、patrol read),把静默坏道在健康状态下暴露出来,别留到重建时才撞上
  • 坏一块盘后不必慌忙换:仍剩一块容错,但要尽快登记工单、准备同规格新盘
  • 重建限速按业务时段调整,夜间拉高重建速率,白天回落到不影响业务的水平
  • 热备盘按阵列容量匹配:容量偏小或残留 Foreign 配置的热备在真故障时接不上

易错点

  • 以为 RAID 6 等于「绝对安全」:它只覆盖磁盘故障,误删、勒索与控制器故障同样致命,备份仍要独立建设
  • 忽略写惩罚差异:把 RAID 6 用在小随机写密集的数据库上,IOPS 可能只有 RAID 10 的三分之一
  • 用老控制器建大容量 RAID 6:部分早期卡对大于 2TB 的 RAID 6 支持有限,建阵列前先核对手册与固件版本
  • 坏两块盘后仍继续运行:此时冗余归零,任何一次读错误都可能变成数据损失,必须停业务、先备份,再重建
  • 扩容时按「再加一块盘」规划:RAID 6 的容量公式是 N-2,加一块盘并不改变校验开销,容量增长的算法要重新核对
  • 把 RAID 6 当成免维护:双校验只覆盖磁盘故障,控制器、背板与固件问题同样会让阵列不可用
  • 在盘数与容量都不紧张的场景硬上 RAID 6:白白多付一块盘容量与更高的写惩罚,不如 RAID 10
  • 把双校验当成可以慢慢换盘的许可:多出的容错是用来从容安排窗口的,拖到第二块盘也坏掉就没有余地

数据来源与参考

  • Broadcom MegaRAID 用户指南(RAID 6)
  • Dell PowerEdge RAID Controller 用户指南
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌