CSR配置字典之Component类
更新时间:2025/7/22
在Gitcode上查看源码

📋 文档信息

项目内容
文档标题Component类配置字典
版本v1.0
创建日期2025-01-27
最后更新2025-01-27
维护状态✅ 活跃维护

📋 变更历史记录

文档变更记录

版本发布日期变更类型变更内容影响范围维护人员
v1.02025-01-27初始版本创建Component类配置字典全新文档系统管理员

🎯 类概览

Component 类

属性
类名称Component
功能描述硬件模块组件管理,提供硬件组件的基本信息、状态管理和告警关联功能
所属SIG组hardware
所属组件component
责任人硬件组件管理组
最后更新2025-01-27
状态🟢 正常运行

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
FruIdU8255U8-关联Fru的Fruid
如果仅用于告警则配置255
查询电子标签255CSR软件
InstanceU8-U8-组件设备Number
即器件在整个单板中的编号
查询电子标签/查询告警2CSR软件
TypeU8-U8-部件类型
请参考IDP文档中的IPMI接口说明的设备类型附录
查询电子标签/查询告警0CSR硬件
NameString-String-部件名称
同一个position中需要保证唯一
补充告警和电子标签各自关注
查询电子标签/查询告警"Cpu2"CSR软件
PresenceU8-0或1-部件在位状态
0:不在位
1:在位
查询电子标签/查询告警1CSR硬件
PowerStateU8-0或1-部件电源状态
0:下电
1:上电
查询电子标签/查询告警1CSR硬件

可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
HealthU8-U8-关联告警时,如果告警则会根据告警严重程度进行更新查询告警0BMC内部设置软件
BoardIdU1665535U16-组件单板BoardId查询电子标签65535CSR硬件
UniqueIdString"N/A"String-组件唯一标识
Vendor + ComponentID
查询电子标签"N/A"CSR软件
ManufacturerString"HUAWEI"String-组件厂商信息查询电子标签"HUAWEI"CSR软件
GroupIdU81U8-组件逻辑组Id查询电子标签/查询告警1CSR软件
LocationString-StringPCIeDevice_1组件的容器查询电子标签/查询告警"<=/PCIeDevice_1.Position"CSR软件
SerialNumberString-StringFruData_DPUCard组件序列号查询告警
补充具体的使用场景
"<=/FruData_DPUCard.BoardSerialNumber"CSR硬件
PartNumberString-StringFruData_DPUCard组件号查询告警"<=/FruData_DPUCard.BoardPartNumber"CSR硬件
SegmentIdU8-U8-组件容器ID查询电子标签1CSR软件
FunctionString-String-部件功能信息
简要描述功能,仅用于告警则不用配置
查询电子标签"memory"CSR软件
PreviousSNString""String-SN号变更时自动更新为上一次的SN号查询告警
热插拔部件
""BMC内部设置软件
ReplaceFlagU800或1-SN号变更时自动更新
0:未更换
1:已更换
查询告警0BMC内部设置软件
NodeIdString-String-节点的ID查询电子标签"2"CSR软件

🔗 动态关联机制

语法规范

使用 #/xxx<=/xxx 格式实现属性间的动态关联:

yaml
# 语法格式
属性名: "<=/目标类.属性名"

# 实际示例
Location: "<=/PCIeDevice_1.Position"                    # 关联PCIe设备位置
SerialNumber: "<=/FruData_DPUCard.BoardSerialNumber"    # 关联FRU序列号
PartNumber: "<=/FruData_DPUCard.BoardPartNumber"        # 关联FRU部件号

关联说明

  • Location: 关联PCIe设备或其他容器的位置信息
  • SerialNumber: 从FRU数据中动态获取序列号
  • PartNumber: 从FRU数据中动态获取部件号

📂 分类标准

硬件属性

  • 定义:与物理器件直接相关的参数
  • 特点:通常固定不变,与硬件BOM表对应
  • 示例Type, Presence, PowerState, BoardId, SerialNumber, PartNumber

软件属性

  • 定义:用于逻辑控制和软件管理的参数
  • 特点:由BMC内部逻辑动态提供和管理
  • 示例FruId, Instance, Name, Health, UniqueId, Manufacturer, GroupId, Location, SegmentId, Function, PreviousSN, ReplaceFlag, NodeId

📝 配置示例

标准CPU组件配置

json
{
  "Component": {
    "FruId": 255,
    "Instance": 2,
    "Type": 0,
    "Name": "Cpu2",
    "Presence": 1,
    "PowerState": 1,
    "Health": 0,
    "BoardId": 65535,
    "UniqueId": "N/A",
    "Manufacturer": "HUAWEI",
    "GroupId": 1,
    "Function": "processor"
  }
}

内存组件配置

json
{
  "Component": {
    "FruId": 10,
    "Instance": 1,
    "Type": 1,
    "Name": "Memory1",
    "Presence": 1,
    "PowerState": 1,
    "Health": 0,
    "BoardId": 65535,
    "UniqueId": "N/A",
    "Manufacturer": "HUAWEI",
    "GroupId": 1,
    "Function": "memory",
    "SegmentId": 1,
    "NodeId": "1"
  }
}

带FRU关联的DPU卡配置

json
{
  "Component": {
    "FruId": 20,
    "Instance": 1,
    "Type": 5,
    "Name": "DPUCard1",
    "Presence": 1,
    "PowerState": 1,
    "Health": 0,
    "BoardId": 65535,
    "UniqueId": "N/A",
    "Manufacturer": "HUAWEI",
    "GroupId": 2,
    "Location": "<=/PCIeDevice_1.Position",
    "SerialNumber": "<=/FruData_DPUCard.BoardSerialNumber",
    "PartNumber": "<=/FruData_DPUCard.BoardPartNumber",
    "Function": "accelerator",
    "SegmentId": 1,
    "NodeId": "1"
  }
}

热插拔组件配置

json
{
  "Component": {
    "FruId": 30,
    "Instance": 1,
    "Type": 3,
    "Name": "HotSwapCard1",
    "Presence": 1,
    "PowerState": 1,
    "Health": 0,
    "BoardId": 65535,
    "UniqueId": "N/A",
    "Manufacturer": "HUAWEI",
    "GroupId": 3,
    "SerialNumber": "<=/FruData_HotSwap.BoardSerialNumber",
    "PartNumber": "<=/FruData_HotSwap.BoardPartNumber",
    "Function": "expansion",
    "PreviousSN": "",
    "ReplaceFlag": 0,
    "SegmentId": 1,
    "NodeId": "1"
  }
}

🔧 使用指南

配置步骤

  1. 确定组件类型:根据硬件BOM表确定Type类型
  2. 设置基本信息:配置FruId、Instance、Name等基本属性
  3. 配置状态属性:设置Presence、PowerState等状态信息
  4. 关联FRU数据:通过动态关联获取序列号、部件号等信息
  5. 设置逻辑分组:配置GroupId、SegmentId、NodeId等逻辑属性
  6. 功能描述:根据需要配置Function功能描述
  7. 告警关联:配置Health属性用于告警状态管理

注意事项

  • 名称唯一性:同一个position中Name需要保证唯一
  • FruId配置:仅用于告警的组件可配置FruId为255
  • 动态关联:SerialNumber和PartNumber需要确保关联的FRU数据存在
  • 热插拔支持:热插拔组件需要配置PreviousSN和ReplaceFlag
  • Health状态:Health属性由BMC内部根据告警严重程度自动更新
  • Type参考:Type类型需要参考IDP文档中的IPMI接口说明

性能建议

  • 合理分组:使用GroupId对相关组件进行逻辑分组
  • 状态监控:定期检查Presence和PowerState状态
  • 告警集成:合理配置Health属性实现告警状态同步
  • FRU优化:避免过度频繁的FRU数据关联更新

故障排查

  • 组件不在位:检查Presence状态和硬件连接
  • 电源状态异常:检查PowerState和电源管理配置
  • 告警状态错误:检查Health属性和告警关联配置
  • FRU数据缺失:检查动态关联的FRU数据源是否存在