URE 是什么
URE 指不可恢复读错误率(Unrecoverable Read Error rate),厂商用「每读取多少比特出现一次不可恢复错误」来衡量:消费级盘常见 1e14,企业级盘常见 1e15。它描述的是单块盘在正常读取过程中撞上无法纠正的坏块的概率。RAID 5 重建必须读遍除故障盘以外的所有成员盘,读取量约等于单盘容量乘以剩余盘数,因此单盘容量越大、盘数越多,重建期间撞上 URE 的概率越高。一旦在 RAID 5 上撞到,没有第二组校验可用,重建会失败。
基本信息
| 单位含义 | 每读取 N 比特出现一次不可恢复读错误,N 越大越好 |
|---|---|
| 常见数值 | 消费级 1e14,企业级 1e15(相差一个量级) |
| 重建读取量 | 约等于单盘容量 × 参与重建的盘数 |
| 影响对象 | RAID 5 最严重(单组校验),RAID 6 次之(仍有第二组校验可依) |
| 缓解手段 | 定期校验巡检、选企业级盘、大容量盘用 RAID 6 或 RAID 10 |
重建读取量与撞错概率(模型估算)
| 单盘容量 | 读取比特数 | 1e14 盘 | 1e15 盘 |
|---|---|---|---|
| 2TB | 1.6e13 | 约 16% | 约 1.6% |
| 8TB | 6.4e13 | 约 64% | 约 6.4% |
| 16TB | 1.3e14 | >100% | 约 13% |
查看盘上已记录的读错误
查看盘上已记录的读错误
smartctl -a /dev/sdb | grep -i -E "read|error|uncorrect" # 读错误与不可纠正计数
smartctl -A /dev/sdb | grep -Ei "Reallocated|Pending|Offline_Uncorrectable"
smartctl -l error /dev/sdb | head -30 # 错误日志明细
# 阵列侧交叉核对
storcli /c0/eall/sall show | grep -Ei "Media Error|Other Error|Fail"降低撞错概率的四个办法
- 上 RAID 6:多一组校验,撞到单个坏块时仍能重建出数据
- 坚持定期校验巡检(scrub / patrol read):坏块在盘还健康时被提前发现并重映射
- 选企业级盘:1e15 与 1e14 在 8TB 级盘上的差距是数量级的
- 缩短重建窗口:配热备、调高重建速率、降低重建期业务负载,让读取集中、快速完成
RAID 5 只有一组校验:重建中撞上 URE 即重建失败;RAID 6 因双校验可再承受一次问题块。这也是大容量盘时代方案向 RAID 6 倾斜的原因之一。