【问题背景】2280v2机型使用BC83NHBN16硬盘背板,对应的机身硬盘槽位丝印为0-3,8-15,20-23,但背板sr中配置的槽位为连续的0-15,因此对sr中槽位配置进行调整,调整如下:
Connector_ComVPDConnect
中对应的Slot
由0-15,调整为0-3、8-15、20-23;Drive
对象中Name
,NodeId
,RelativeSlot
同步由0-15,调整为0-3、8-15、20-23
"Connector_ComVPDConnect_5": {
"Bom": "14140224",
"Slot": 8,
"Position": 5,
...
"SilkText": "J6013",
"IdentifyMode": 2,
"Type": "NVMe"
},
"Connector_ComVPDConnect_6": {
"Bom": "14140224",
"Slot": 9,
"Position": 5,
...
"SilkText": "J6013",
"IdentifyMode": 2,
"Type": "NVMe"
},
...
...
"Drive_5": {
"Id": 4,
"Name": "Disk8",
"PhysicalLocation": "HDD Plane",
"NodeId": "HDDPlaneDisk8",
...
"InAFailedArray": 0,
"FirmwareStatusError": false,
"SerialNumber": "",
"RelativeSlot": 8,
},
"Drive_6": {
"Id": 4,
"Name": "Disk9",
"PhysicalLocation": "HDD Plane",
"NodeId": "HDDPlaneDisk9",
...
"InAFailedArray": 0,
"FirmwareStatusError": false,
"SerialNumber": "",
"RelativeSlot": 9,
}
修改后,在硬盘满配环境进行测试,概率出现硬盘对象重复显示的现象,截图显示Disk22重复出现2次,测试中发现也可能是其他硬盘重复出现
查看一键收集日志中Drive对象,发现Disk14对应的Drive_11,ObjectName被刷成了Disk22对应的Drive_15
/bmc/kepler/Systems/1/Storage/Drives/Drive_11_010102 bmc.kepler.Object.Properties
.ClassName
signature: s
value: "Drive"
flags: emits-change
readonly: true
.ObjectIdentifier
signature: (ysss)
value: [1,"1","1","010102"]
flags: emits-change
readonly: true
.ObjectName
signature: s
value: "Drive_15_010102"
flags: emits-change
readonly: true
找存储模块的同事定位,怀疑可能是受持久化数据影响
在storage模块update_drive_slot_info()
任务中加了日志进行复现,重复的盘变成了Disk20(Drive_13),Drive_9的ObjectName
被刷成了Drive_13
function c_drive:update_drive_slot_info()
self.Id = self.HddBackplaneStartSlot + self.RelativeSlot
self.Name = string.format('Disk%d', self.Id)
self.NodeId = string.format('HDDPlaneDisk%d', self.Id)
log:notice('update_drive_slot_info: path(%s), ObjectName(%s), Name(%s), NodeId(%s)', self.path, self.ObjectName, self.Name, self.NodeId)
end
storage模块启动时,会启动update_drive_slot_info()
任务,定时更新Drive对象的slot属性。
看添加的日志,Drive_9的ObjectName
还正常,但只出现了一次预期的打印,在后面的日志中不存在ObjectName
为Drive_9的update_drive_slot_info()
任务了
2025-03-27 06:07:55.969154 storage NOTICE: drive_object.lua(145): update_drive_slot_info: ObjectName(Drive_9_010102), Name(Disk12), NodeId(HDDPlaneDisk12)
目前暂时没有进一步定位思路,ObjectName
值理论上应该来自sr中的命令,但是在运行过程中却显示成了其他的内容,想请教一下如何进一步定位,或者一键收集日志中是否有其他可参考的内容