SP686Craid卡下硬盘异常问题分析
更新时间: 2026/05/28
在Gitcode上查看源码问题背景
- 单板类型:NA
- 软件版本:NA
- 涉及功能:raid卡下硬盘点灯。
- 触发条件:对raid下sata盘进行热插拔后,手动给未在raid下的盘点灯。
- 业务表现:预期raid下sata盘热插拔后盘序正常显示;实际raid下显示了未接raid的nvme盘序号。
问题复现步骤
- raid下有五个sata盘:Disk0,1(sata)组了个raid0,Disk2,4,5(sata)是jbod。Disk8-11是nvme,没有接raid。
- Disk0,1(sata)组了个raid0。
- 对Disk0 (RAID0的一个sata)进行热插拔之后,手动给其他盘点灯会报错,并且Disk0的盘序被错误显示成Disk8。
- 重启BMC也不会恢复。
关键日志信息
对Disk0 (RAID0的一个sata)进行热插拔之后,手动给其他盘点灯会报错,并且Disk0的盘序被错误显示成Disk8。
定位过程
目前发现Disk8对应的Drive的SlotNumber被赋值为和Disk4相同的pd.slot。是下面这个流程异常:
点灯流程中,不能手动点其他盘的定位灯,会干扰定位流程,定位流程每次只会点一个盘的灯,并读取盘的定位灯状态来确定是否bmc侧的盘和带内raid卡的管理的盘是同一个,之所以重启bmc也未恢复是因为映射关系做了复位持久化,在os下电情况下,raid卡定位过的盘依然能显示在raid卡下。
问题原因
在执行map_allowed时,手动对nvme8进行了点灯,导致映射关系建立错误。
解决方案
快速解决方案:
需要AC一下:BMC侧cli命令(此命令在装备调试版本才可以使用):
bashipmcset -t maintenance -d accycle长期规避方案:
- 防止定位流程中,用户手动点灯干扰了定位。
- 错误定位了后,除了AC,可以通过拔盘恢复。