【已评审】新增资源协作接口支持机柜资产管理

背景

支持机柜资产管理,机柜管理板需要通过内网将机柜内设备进行纳管,用户、网管等可以通过Web、Cli、Redfish相关接口获取资产信息

历史机柜的功耗封顶功能和机柜资产管理代码耦合在一起。在组件化后,功耗封顶功能和资产管理功能分开,机柜管理组件需要对外提供各节点功耗信息属性以及各节点的功耗封顶下发资源协作接口,供能效子系统功耗封顶使用

整体方案

  1. 定制化相关机柜信息、电源框等信息,通过ipmi命令在装备流程中写入背板eeprom。

    (1) 两总线场景管理没有内网通信,不需要进行节点纳管

  2. 向节点发送携带证书的/redfish/v1/SessionService/Sessions获取token数据

  3. 柜上环境,管理板通过使用内网ip向节点发送https://IP/redfish/v1接口

  4. 批量处理响应报文,将解析到的U位信息刷新到树上资源,并提供对外展示接口

  5. 通过板间通信获取节点能效电源功耗封顶相关信息,并将这些信息上树提供给能效功耗封顶使用,同时提供资源树操作方法支持对节点进行功耗封顶设置

评审点

新增资产管理相关资源协作接口
1. path: /bmc/kepler/Chassis/:ChassisId/RackAssetService/
   interface: bmc.kepler.Chassis.Location
             bmc.kepler.Chassis.Location.PlaceMent
             bmc.kepler.Chassis.Location.PostalAddress
             bmc.kepler.Chassis.RackSpecification
             bmc.kepler.Chassis.RackAsset
             bmc.kepler.Chassis.UnitSpecification
2. path: /bmc/kepler/Chassis/:ChassisId/RackAssetService/:Id/RackOffsets/:Id
   interface: bmc.kepler.Chassis.RackAsset.Unit
3. path: /bmc/kepler/Chassis/:ChassisId/RackAssetService/:Id/RackOffsets/:Id/MountedDevices/:Id
   interface: bmc.kepler.Chassis.RackAsset.Unit.Device
  1. 预期结构:

    Service bmc.kepler.rack_mgmt:
    └─/bmc
      └─/bmc/kepler
        └─/bmc/kepler/Chassis
              └─/bmc/kepler/Chassis/1
                  └─/bmc/kepler/Chassis/1/RackAssetService/
                      └─/bmc/kepler/Chassis/1/RackAssetService/RackOffsets
                        ├─/bmc/kepler/Chassis/1/RackAssetService/RackOffsets/RackOffset_1
                        │ └─/bmc/kepler/Chassis/1/RackAssetService/RackOffsets/RackOffset_1/MountedDevices
                        │     ├─/bmc/kepler/Chassis/1/RackAssetService/RackOffsets/RackOffset_1/MountedDevices/MountedDevice_1
                        │     └─/bmc/kepler/Chassis/1/RackAssetService/RackOffsets/RackOffset_1/MountedDevices/MountedDevice_2
                        └─/bmc/kepler/Chassis/1/RackAssetService/RackOffsets/RackOffset_2
                            └─/bmc/kepler/Chassis/1/RackAssetService/RackOffsets/RackOffset_2/MountedDevices
                              ├─/bmc/kepler/Chassis/1/RackAssetService/RackOffsets/RackOffset_2/MountedDevices/MountedDevice_1
                              └─/bmc/kepler/Chassis/1/RackAssetService/RackOffsets/RackOffset_2/MountedDevices/MountedDevice_2
    

详细描述

1、Location

资源interface:bmc.kepler.Chassis.Location
变化类型:新增
属性名称 变化类型 签名 读写&权限 持久化 变化通知 接口说明 接口约束
CustomLocation 新增属性 s R:ReadOnly W:BasicSetting 掉电持久化 false 机柜自定义位置信息
资源interface:bmc.kepler.Chassis.Location.Placement
变化类型:新增
属性名称 变化类型 签名 读写&权限 持久化 变化通知 接口说明 接口约束
Room 新增属性 s R:ReadOnly W:BasicSetting 掉电持久化 false 机柜部署位置:房间号
Row 新增属性 s R:ReadOnly W:BasicSetting 掉电持久化 false 机柜部署位置:排
Rack 新增属性 s R:ReadOnly W:BasicSetting 掉电持久化 false 机柜部署位置:柜
资源interface:bmc.kepler.Chassis.Location.PostalAddress
变化类型:新增
属性名称 变化类型 签名 读写&权限 持久化 变化通知 接口说明 接口约束
Country 新增属性 s R:ReadOnly W:BasicSetting 掉电持久化 false 机柜地理位置:国家
Territory 新增属性 s R:ReadOnly W:BasicSetting 掉电持久化 false 机柜地理位置:省/州
City 新增属性 s R:ReadOnly W:BasicSetting 掉电持久化 false 机柜地理位置:城市
Street 新增属性 s R:ReadOnly W:BasicSetting 掉电持久化 false 机柜地理位置:街道
HouseNumber 新增属性 s R:ReadOnly W:BasicSetting 掉电持久化 false 机柜地理位置:门牌号
Name 新增属性 s R:ReadOnly W:BasicSetting 掉电持久化 false 机柜地理位置:单位
PostalCode 新增属性 s R:ReadOnly W:BasicSetting 掉电持久化 false 机柜地理位置:邮编
Building 新增属性 s R:ReadOnly W:BasicSetting 掉电持久化 false 机柜部署位置:楼
Floor 新增属性 s R:ReadOnly W:BasicSetting 掉电持久化 false 机柜部署位置:层

2、RackSpecification

资源interface:bmc.kepler.Chassis.RackSpecification
变化类型:新增
属性名称 变化类型 签名 读写&权限 持久化 变化通知 接口说明 接口约束
LoadCapacityKg 新增属性 u R:ReadOnly W:BasicSetting 掉电持久化 false 机柜承重重量(单位:Kg)
RatedPowerWatts 新增属性 u R:ReadOnly W:BasicSetting 掉电持久化 false 整柜额定功耗(单位:W)
DepthMm 新增属性 u R:ReadOnly W:BasicSetting 掉电持久化 false 机柜深度:mm(毫米)
WidthMm 新增属性 u R:ReadOnly W:BasicSetting 掉电持久化 false 机柜宽度:mm(毫米)
HeightMm 新增属性 u R:ReadOnly W:BasicSetting 掉电持久化 false 机柜高度:mm(毫米)
RackModel 新增属性 s R:ReadOnly 掉电持久化 false 机柜型号
RackSerialNumber 新增属性 s R:ReadOnly 掉电持久化 false 空机柜SN 空机柜:不包含计算节点、交换节点的机柜
FullFilledRackSerialNumber 新增属性 s R:ReadOnly 掉电持久化 false 机柜典配SN 典配机柜:包含计算节点、交换节点、电源、液冷管/线的机柜

3、RackAsset

资源path:/bmc/kepler/Chassis/:ChassisId/RackAssetService
资源interface:bmc.kepler.Chassis.RackAsset
变化类型:新增
属性名称 变化类型 签名 读写&权限 持久化 变化通知 接口说明 接口约束
ServiceEnabled 新增属性 b R:ReadOnly 不持久化 false 资产管理服务的可用状态 false:资产管理功能不可用,初始状态、资产条拔出时的状态true:资产管理功能可用,完成第一轮标签扫描和信息获取后的状态
RackFunction 新增属性 y R:ReadOnly W:BasicSetting 不持久化 false 机柜用途 0:计算柜1:网络柜默认值为0
CabinetBusType 新增属性 y R:ReadOnly 不持久化 false 机柜总线类型 0:三总线1:两总线默认值为0

4、RackOffsetSpecification

资源interface:bmc.kepler.Chassis.RackOffsetSpecification
变化类型:新增
属性名称 变化类型 签名 读写&权限 持久化 变化通知 接口说明 接口约束
RackOffsetCountOccupy 新增属性 y R:ReadOnly 不持久化 false 已被占用的U位数
RackOffsetOccupyDirection 新增属性 y R:ReadOnly 不持久化 false U位占用方向 0:占用方向向下(自上而下插入节点)1:占用方向向上(自下而上插入节点) 默认值为0
RackOffsetIndexDirection 新增属性 y R:ReadOnly 不持久化 true U位编号方向 0:自下而上编号1:自上而下编号默认值为0
RackOffsetIndexDirectionFixed 新增属性 b R:ReadOnly 不持久化 false U位编号方向是否固定
RackOffsetCount 新增属性 y R:ReadOnly 不持久化 true U位总数 对于物理资产定位条的情况该属性由资产定位条U位加载刷新对于网络管理的情况需要生产定制化或用户修改,再根据该属性控制U位加载

5、Unit

资源path:/bmc/kepler/Chassis/:ChassisId/RackAssetService/RackOffsets/:id
资源interface:bmc.kepler.Chassis.RackAsset.Unit
变化类型:新增
应用场景:用于记录U位相关资产信息
属性名称 变化类型 签名 读写&权限 持久化 变化通知 接口说明 接口约束
UnitIndex 新增属性 y R:ReadOnly 不持久化 true U位编号
DeviceDetected 新增属性 b R:ReadOnly 复位持久化 true U位是否检测到标签
Status 新增属性 u R:ReadOnly 掉电持久化 true U位相关告警产生状态
DeviceMaxHeight 新增属性 y R:ReadOnly 不持久化 false 允许设备的最大高度(单位:U)
DiscoveredTime 新增属性 u R:ReadOnly 复位持久化 false 上架时间

6、Device

资源path:/bmc/kepler/Chassis/:ChassisId/RackAssetService/RackOffsets/:id/MountedDevices/:id
资源interface:bmc.kepler.Chassis.RackAsset.Unit.Device
变化类型:新增
应用场景:用于记录U位中对应设备相关信息
属性名称 变化类型 签名 读写&权限 持久化 变化通知 接口说明 接口约束
DiscoveredStatus 新增属性 y R:ReadOnly W:BasicSetting 复位持久化 true 设备被发现(上线)标志 0:未开始发现设备1:设备已上线2:设备未上线 默认值为0
MgmtIpv4Addr 新增属性 as R:ReadOnly W:BasicSetting 复位持久化 false IPv4地址
MgmtIpv6Addr 新增属性 as R:ReadOnly W:BasicSetting 复位持久化 false IPv6地址
AssetOwner 新增属性 s R:ReadOnly W:BasicSetting 不持久化 false 资产所有人
Model 新增属性 s R:ReadOnly W:BasicSetting 不持久化 false 设备型号
WeightKg 新增属性 u R:ReadOnly W:BasicSetting 不持久化 false 设备重量(单位:kg)
LifeCycleYear 新增属性 s R:ReadOnly W:BasicSetting 不持久化 false 设备设计生命周期(单位:年)
RatedPowerWatts 新增属性 u R:ReadOnly W:BasicSetting 不持久化 false 设备额定功耗(单位:W)
CheckInTime 新增属性 s R:ReadOnly W:BasicSetting 不持久化 false 首次使用时间 格式为"YYYY/MM/DD"
ExtendField 新增属性 s R:ReadOnly W:BasicSetting 不持久化 false 扩展域数据:JSON字符串,最大支持5个子属性字段;用于存储自定义数据
TokenAvailable 新增属性 b R:ReadOnly W:BasicSetting 不持久化 true Token可用状态 false:无效true:有效,当从true变为false时需上报Token失效事件 默认值为false
IsAutoDiscoveried 新增属性 b R:ReadOnly W:BasicSetting 复位持久化 false 设备是否由机柜管理单元自动发现

评审结论

通过,具体结论如下:

  1. 同意新增资源协作接口及属性
    path:/bmc/kepler/Chassis/:ChassisId/RackAssetService
    interface: bmc.kepler.Chassis.Location
    新增属性:
    CustomLocation:机柜自定义位置信息,签名为 s,读权限: ReadOnly,写权限:BasicSetting,掉电持久化

    path:/bmc/kepler/Chassis/:ChassisId/RackAssetService
    interface: bmc.kepler.Chassis.Location.PlaceMent
    新增属性:
    Room:机柜部署位置:房间号,签名为 s,读权限: ReadOnly,写权限:BasicSetting,掉电持久化
    Row:机柜部署位置:排,签名为 s,读权限: ReadOnly,写权限:BasicSetting,掉电持久化
    Rack:机柜部署位置:柜,签名为 s,读权限: ReadOnly,写权限:BasicSetting,掉电持久化

    path:/bmc/kepler/Chassis/:ChassisId/RackAssetService
    interface: bmc.kepler.Chassis.Location.PostalAddress
    新增属性:
    Country:机柜地理位置:国家,签名为 s,读权限: ReadOnly,写权限:BasicSetting,掉电持久化
    Territory:机柜部署位置:省/州,签名为 s,读权限: ReadOnly,写权限:BasicSetting,掉电持久化
    City:机柜部署位置:城市,签名为 s,读权限: ReadOnly,写权限:BasicSetting,掉电持久化
    Street:机柜部署位置:街道,签名为 s,读权限: ReadOnly,写权限:BasicSetting,掉电持久化
    HouseNumber:机柜部署位置:门牌号,签名为 s,读权限: ReadOnly,写权限:BasicSetting,掉电持久化
    Name:机柜部署位置:单位,签名为 s,读权限: ReadOnly,写权限:BasicSetting,掉电持久化
    PostalCode:机柜部署位置:邮编,签名为 s,读权限: ReadOnly,写权限:BasicSetting,掉电持久化
    Building:机柜部署位置:楼,签名为 s,读权限: ReadOnly,写权限:BasicSetting,掉电持久化
    Floor:机柜部署位置:层,签名为 s,读权限: ReadOnly,写权限:BasicSetting,掉电持久化

  2. 同意新增资源协作接口及属性
    path:/bmc/kepler/Chassis/:ChassisId/RackAssetService
    interface: bmc.kepler.Chassis.Location 新增属性:
    LoadCapacityKg:机柜承重重量(单位:Kg),签名为 u,读权限: ReadOnly,写权限:BasicSetting,掉电持久化
    RatedPowerWatts:整柜额定功耗(单位:W),签名为 u,读权限: ReadOnly,写权限:BasicSetting,掉电持久化
    DepthMm:机柜深度:mm(毫米),签名为 u,读权限: ReadOnly,写权限:BasicSetting,掉电持久化
    WidthMm:机柜宽度:mm(毫米),签名为 u,读权限: ReadOnly,写权限:BasicSetting,掉电持久化
    HeightMm:机柜高度:mm(毫米),签名为 u,读权限: ReadOnly,写权限:BasicSetting,掉电持久化
    RackModel:机柜型号,签名为 s,读权限: ReadOnly,掉电持久化
    RackSerialNumber:空机柜SN,签名为 s,读权限: ReadOnly,掉电持久化
    FullFilledRackSerialNumber:机柜典配SN,签名为 s,读权限: ReadOnly,掉电持久化

  3. 同意新增资源协作接口及属性
    path:/bmc/kepler/Chassis/:ChassisId/RackAssetService
    interface:bmc.kepler.Chassis.RackAsset
    新增属性:
    ServiceEnabled:资产管理服务的可用状态,签名为 b,读权限: ReadOnly,不持久化
    RackFunction:机柜用途,签名为 y,读权限: ReadOnly,写权限:BasicSetting,不持久化
    CabinetBusType:机柜总线类型,签名为 y,读权限: ReadOnly,不持久化

  4. 同意新增资源协作接口及属性
    path:/bmc/kepler/Chassis/:ChassisId/RackAssetService
    interface:bmc.kepler.Chassis.RackOffsetSpecification
    新增属性:
    RackOffsetCountOccupy:已被使用的U位数,签名为 y,读权限: ReadOnly,不持久化
    RackOffsetOccupyDirection:U位占用方向,签名为 y,读权限: ReadOnly,不持久化
    RackOffsetIndexDirection:U位编号方向,签名为 y,读权限: ReadOnly,不持久化,发送变化通知
    RackOffsetIndexDirectionFixed:U位编号方向是否固定,签名为 b,读权限: ReadOnly,不持久化
    RackOffsetCount:U位总数,签名为 y,读权限: ReadOnly,不持久化,发送变化通知

  5. 同意新增资源协作接口及属性

    path:/bmc/kepler/Chassis/:ChassisId/RackAssetService/RackOffsets/:id
    interface:bmc.kepler.Chassis.RackAsset.Unit
    新增属性:
    UnitIndex:U位编号,签名为 y,读权限: ReadOnly,不持久化,发送变化通知
    DeviceDetected:U位是否检测到标签,签名为 b,读权限: ReadOnly,复位持久化,发送变化通知
    Status:U位相关告警产生状态,签名为 u,读权限: ReadOnly,掉电持久化,发送变化通知
    DeviceMaxHeight:允许设备的最大高度(单位:U),签名为 y,读权限: ReadOnly,不持久化
    DiscoveredTime:上架时间,签名为 u,读权限: ReadOnly,复位持久化

  6. 同意新增资源协作接口及属性

    path:/bmc/kepler/Chassis/:ChassisId/RackAssetService/RackOffsets/:id/MountedDevices/:id
    interface:bmc.kepler.Chassis.RackAsset.Unit.Device
    新增属性:
    DiscoveredStatus:设备被发现(上线)标志,签名为 y,读权限: ReadOnly,写权限:BasicSetting,复位持久化,发送变化通知
    MgmtIpv4Addr:IPv4地址,签名为as,读权限: ReadOnly,写权限:BasicSetting,复位持久化
    MgmtIpv6Addr:IPv6地址,签名为as,读权限: ReadOnly,写权限:BasicSetting,复位持久化
    AssetOwner:资产所有人,签名为 s,读权限: ReadOnly,写权限:BasicSetting,不持久化
    Model:设备型号,签名为 s,读权限: ReadOnly,写权限:BasicSetting,不持久化
    WeightKg:设备重量(单位:kg),签名为 u,读权限: ReadOnly,写权限:BasicSetting,不持久化
    LifeCycleYear:设备设计生命周期(单位: 年),签名为 s,读权限: ReadOnly,写权限:BasicSetting,不持久化
    RatedPowerWatts:设备额定功耗(单位: W),签名为 u,读权限: ReadOnly,写权限:BasicSetting,不持久化
    CheckInTime:首次使用时间,签名为 s,读权限: ReadOnly,写权限:BasicSetting,不持久化
    ExtendField:扩展域数据:JSON字符串,最大支持5个子属性字段;用于存储自定义数据,签名为 s,读权限: ReadOnly,写权限:BasicSetting,不持久化
    TokenAvailable:Token状态,签名为 b,读权限: ReadOnly,写权限:BasicSetting,不持久化,发送变化通知
    IsAutoDiscoveried:设备是否由机柜管理单元自动发现,签名为 b,读权限: ReadOnly,写权限:BasicSetting,复位持久化

遗留问题