经 RAID 卡读 SMART 是什么
盘接在硬件 RAID 卡后面时,操作系统看不到单独的物理盘,smartctl 默认也无法读取它们的 SMART。做法是用 -d 指定透传方式,把命令穿过控制器送到指定物理盘:-d megaraid,N 是 Broadcom/LSI 卡的标准写法,N 是该盘在卡上的 Device ID,而不是机箱槽位号。读通之后,健康预测的字段与直连盘完全一致。
基本信息
| 设备号来源 | 取卡工具的 Device ID(storcli /c0/eall/sall show all 中的 DID) |
|---|---|
| 写法 | smartctl -d megaraid,N /dev/sdX,X 为该卡对应的主机设备 |
| SATA 变体 | 部分版本对 SATA 盘需加前缀,形如 -d sat+megaraid,N |
| 替代路径 | 盘处于直通模式下可直接用 /dev/sdX 查询,无需透传 |
透传查询
透传查询
storcli /c0/eall/sall show all | grep -E "DID|Slt|SN" # 取 DID 与槽位对应
smartctl -i -d megaraid,4 /dev/sda # 识别信息与序列号
smartctl -H -d megaraid,4 /dev/sda # 健康总评
smartctl -A -d megaraid,4 /dev/sda | grep -Ei "Reallocated|Pending|CRC"
smartctl -l selftest -d megaraid,4 /dev/sda # 自测历史常见 -d 取值
| 取值 | 适用场景 | 说明 |
|---|---|---|
| sat | SATA 盘直连 | 按 ATA 命令透传 |
| scsi | SAS 盘直连 | 按 SCSI 命令透传 |
| megaraid,N | Broadcom/LSI 硬件 RAID 之后 | N 为卡上的 Device ID |
| sat+megaraid,N | SATA 盘位于 RAID 卡之后(部分版本) | 需要额外加 sat 前缀才能识别 |
典型使用场景
- 巡检建线:对阵列中每块盘循环执行,把属性计数采集进监控系统
- 重建前评估:确认新盘与源盘的健康状态,再决定是否执行
- PFA 复核:控制器报预测性故障时,用 SMART 属性交叉验证
- 换盘取证:拔盘前保存属性输出,作为盘体状况的证据
- 故障域排查:对照 DID 与槽位,判断异常是否集中在同一背板
把 Device ID、槽位、序列号三者一起记进台账:换盘与巡检时三条线索互相校验,能避免误判。
在不支持透传的老固件或老版本工具上硬试会超时或返回无意义数据;先确认工具版本,再改走其他途径核对盘况。
使用注意
- 透传访问比直连慢,批量巡检时控制并发,避免加重控制器负担
- 同一台机器可能有多个 /dev/sdX 对应多张卡,先确认目标设备再执行
- 记录 Device ID 与槽位的映射关系,硬件更换后重新核对一次
- 读取失败时先确认盘是否为可配置状态,而非直接判定盘坏