先看firmware state和predictive failure:firmware state: predictive failure或failed/unconfigured(bad),以及predictive failure: yes,均对应物理盘位黄灯闪烁;再通过megacli64 -pdlist -aall获取enclosure device id和slot number定位[eid:slot],最后用-pdlocate -start -physdrv[eid:slot]触发点灯。

怎么确认哪块盘在闪黄灯:先看 Firmware state 和 Predictive Failure
黄灯不是靠猜的,是控制器根据 SMART 预测值主动触发的状态指示。MegaCli 不会直接告诉你“第3槽位正在闪黄灯”,但它会告诉你哪块盘被标记为 Predictive Failure 或处于 Failed / Unconfigured(Bad) 状态——这些状态几乎必然对应物理盘位上的黄色闪烁 LED。
执行命令查看所有物理盘状态:
/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL | grep -E "(Enclosure|Slot|Firmware state|Predictive Failure)"
重点关注三类输出:
-
Firmware state: Predictive Failure—— 最典型黄灯原因,SMART 报告即将失效 -
Firmware state: Failed或Unconfigured(Bad)—— 已离线,黄灯常亮或快闪 -
Predictive Failure: Yes这一行单独存在,比 Firmware state 更早暴露风险
怎么把逻辑设备名(如 /dev/sdb)和物理槽位(EID:Slot)对上
Linux 的 /dev/sdX 和 RAID 卡看到的物理位置没有直接映射关系。必须通过 Enclosure ID(背板编号)和 Slot Number(槽位号)组合定位,格式是 [EID:Slot],比如 [252:2]。
查法分两步:
- 先用
lsscsi或ls -l /sys/class/scsi_device/看/dev/sdb对应的 HBA 通道、目标 ID、LUN;但这个路径不稳定,尤其多背板时容易错位 - 更可靠的是反向查:用
MegaCli64 -PDList -aALL输出里的Device Id和Media Error Count找出异常盘,再结合Enclosure Device ID和Slot Number得到完整地址 - 如果服务器有 iDRAC,可同步运行
racadm storage get pdisks做交叉验证,避免背板编号识别错误
怎么让指定槽位的硬盘 LED 强制闪烁(点灯)
确认槽位后,用 -PdLocate 命令触发 Locate LED,不是所有盘都支持,但只要 Firmware state 是 Online 或 Unconfigured(Good) 就大概率可用。
命令格式固定:
/opt/MegaRAID/MegaCli/MegaCli64 -PdLocate -start -physdrv[252:2] -a0
-
[252:2]必须严格按[EID:Slot]格式,不能写成[252:02]或漏掉方括号 - 如果提示
No such device,说明 EID 错了——常见于多背板服务器,EncInfo -aALL可查真实背板编号 - LED 通常持续闪烁 15 分钟,想提前关掉就换
-start为-stop - 部分老固件(如 PERC 6/i)不支持
-PdLocate,得用-AdpSetProp LocateLed -1 -a0全局开启定位模式后再试
为什么点了没反应?几个硬性限制条件
点灯失败往往不是命令错了,而是硬件链路断在某个环节:
- 硬盘本身不支持 SES Locate 指令(常见于白牌 SATA 盘或老旧型号)
- 背板未启用 LED 控制通道(某些 Dell R710/R610 背板需 BIOS 中开启
Enclosure Management) - RAID 卡固件太旧(
MegaCli64 -AdpGetProp FWVersion -a0查版本,低于 12.15.0-0083 的 PERC H700 可能无响应) - 系统启用了
scsi_mod.use_blk_mq=1内核参数,会导致 SES 通信异常,临时改回0再试
最麻烦的情况是:盘已 Failed,LED 控制电路随故障中断,此时命令返回成功但灯不亮——只能靠 Predictive Failure + 槽位信息人工定位,别等它闪。











