CRC 错误说明什么
CRC 错误是链路层校验失败留下的计数,说明数据在盘与控制器之间传输时出现了信号错误。常见原因是线缆老化或弯折、背板连接器氧化、SAS 扩展柜链路质量差,以及供电纹波。它和盘体坏道是两类问题:前者不会因为换盘而消失,必须抓住计数的增量来验证修复效果。
基本信息
| 常见原因 | 线缆老化与弯折、连接器氧化、扩展柜链路、电源纹波 |
|---|---|
| 观察方法 | 记录基线后看计数是否继续增长 |
| 验证方法 | 同盘换线换槽位,观察 CRC 是否停止增长 |
| 处理 | 更换线缆或背板,复测 CRC 稳定后归档 |
| 权限要求 | root |
典型使用场景
- 阵列频繁掉盘时排除链路因素
- 换盘后故障依旧时继续往上游查
- 机房搬迁或重新理线后复测链路质量
- 巡检时对比历史计数发现缓慢恶化
- 备件更换后确认问题真的解决
- 为同链路的多块盘建立统一的计数基线
检查 CRC 相关计数
检查 CRC 相关计数
smartctl -A /dev/sdb | grep -E "199|CRC" # 盘侧 CRC 计数
storcli /c0/e252/s4 show all | grep -i -E "invalid|CRC|error" # 卡侧链路错误计数
storcli /c0/eall/sall show | grep -iE "error|invalid" # 全盘列表里筛出异常项
# 先记录一次基线,处理后再复测,比较增量而不是绝对值指标与含义
| 指标 | 位置 | 含义 |
|---|---|---|
| 属性 199 | 盘侧 | UDMA CRC 错误计数 |
| invalid dwords | 卡侧 | 链路上收到的无效数据块计数 |
| reset 计数 | 卡与内核 | 链路复位次数 |
| 链路速率降级 | 卡侧 | 协商速率掉档,常伴随信号问题 |
CRC 增长与盘体坏道是两类问题:前者不会因换盘消失,抓住计数趋势才能验证修复效果。
换线换槽位时一次只改一个变量:同时换线又换槽位,事后无法判断到底是哪一环的问题。
同一条链路上的多块盘同时出现 CRC 增长时,优先怀疑它们共用的线缆、扩展器或供电,而不是分别去换盘。