背景
在此前已评审过超节点配置的资源协作对象路径和接口,议题链接如下:
【已评审】新增资源协作接口设置节点信息 - Interface SIG / Interface评审 - openUBMC 论坛
【已评审】新增资源协作接口方法设置节点信息 - Interface SIG / Interface评审 - openUBMC 论坛
但是之前的设计是将资源协作对象路径限定在昇腾产品范围内,其他产品也有超节点配置查询和设置的场景和诉求,因此需要设计更为通用的资源树协作对象路径和接口。同时,产品在组集群时,需要区分是UB管控节点,还是非管控节点,需要新增资源协作接口属性,并支持BIOS启动阶段需要通过IPMI命令从BMC查询该属性
关联ISSUE
暂无
整体方案
超节点配置查询和设置功能迁移到Chassis组件。
评审点
1、原超节点配置信息的资源协作对象路径和接口改为通用设计;
2、新增用于区分UB管控节点的资源协作接口属性;
详细描述
方案1:原限定在昇腾产业的超节点信息资源协作对象路径和接口全部迁移到Chassis组件,具体变更如下
变更前:
path:/bmc/kepler/Products/Ascend/SuperPodLabel
interface :bmc.kepler.Products.SuperPodLabel
变更后:原path和interface废弃,同时原interface的属性和方法迁移到如下对象路径和接口
path:/bmc/kepler/Chassis/{ChassisId}/SuperPodLabel
interface:bmc.kepler.Chassis.SuperPodLabel
属性迁移说明
| 变更类型 | 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | 访问权限 | 属性来源 | 持久化类型 | 变更点 | 变更影响 |
|---|---|---|---|---|---|---|---|---|---|---|
| 变更 | ChassisId | q | true | false | 节点所在的机框号,默认值0xffff | 只读 R: ReadOnly | 网管下发 | 掉电持久化 | Interface 路径变更,原接口删除 | csr配置变更,当前未发版本,影响可控 |
| 变更 | TopologyType | y | true | false | 节点拓扑类型,默认值0 | 只读 R: ReadOnly | 网管下发 | 掉电持久化 | Interface 路径变更,原接口删除 | csr配置变更,当前未发版本,影响可控 |
| 变更 | InterconType | y | true | false | 节点互联类型,默认值0 | 只读 R: ReadOnly | 网管下发 | 掉电持久化 | Interface 路径变更,原接口删除 | csr配置变更,当前未发版本,影响可控 |
| 变更 | PresentDPUCount | y | true | false | 节点所在的机框内物理在位的DPU数量,默认值0 | 只读 R: ReadOnly | 网管下发 | 掉电持久化 | Interface 路径变更,原接口删除 | csr配置变更,当前未发版本,影响可控 |
| 变更 | NPUBootOption | y | true | false | NPU启动方式,默认值0 | 只读 R: ReadOnly | 网管下发 | 掉电持久化 | Interface 路径变更,原接口删除 | csr配置变更,当前未发版本,影响可控 |
| 变更 | LogicalSlotNumber | y | true | true | 节点柜内逻辑槽位号,默认值255 | 只读 R: ReadOnly | 硬件上报 | 否 | 1.名称变更LogicalSlotNumber 2.Interface 路径变更,原接口删除 | csr配置变更,当前未发版本,影响可控 |
| 新增 | IsUBFabricMode | bool | true | false | 计算服务器是否通过UB设备组集群,True:集群;False:单机 | 只读 R: ReadOnly | 网管下发 | 掉电持久化 | 新增属性 | 无 |
| 变更 | UBManagedBy 变更:UBMDeployMode | y | true | false | 计算服务器UBM部署位置,0:带内物理机,1:带外物理机(运行在独立的CPU上),2:带内虚拟机 | 只读 R: ReadOnly | 网管下发 | 掉电持久化 | Interface 路径变更,原接口删除 | csr配置变更,当前未发版本,影响可控 |
| 新增 | IsUBControlNode | bool | true | false | 是否为UB控制节点 true:控制节点 false:代理节点 | 只读 R: ReadOnly | 网管下发 | 掉电持久化 | 新增属性 | 无 |
方法迁移说明
| 变更类型 | 方法名称 | 请求签名 | 请求参数描述 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 | 变更点 | 变更影响 |
|---|---|---|---|---|---|---|---|---|---|
| 变更 | SetSuperPodLabel | a{su} 变更 ya{su} | y: Policy:设置策略 bit0 - 数据保存在BMC bit1 - 数据应用到目标硬件 bit2:7 - 保留 a{su}: 具体参数,为K-V结构,Key表示设置的属性名,Value表示属性值 |
无 | 无 | 设置超节点配置参数 | BasicSetting | 1.请求签名a{su} 变更 ya{su} 2.方法添加到接口bmc.kepler.Chassis.SuperPodLabel,原接口删除 |
无 |
方案2:Chassis组件新增超节点信息设置查询方法,支持超节点信息查询配置,原产业接口删除
变更描述:产业接口删除,在Chassis组件 bmc.kepler.Chassis.SuperPodLabel接口下新增方法SetSuperPodLabel,GetSuperPodLabel方法,支持超节点属性设置
方法评审点
| 变更类型 | 方法名称 | 请求签名 | 请求参数描述 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 | 变更点 | 变更影响 |
|---|---|---|---|---|---|---|---|---|---|
| 变更 | SetSuperPodLabel | a{su} 变更 ya{su} | y: Policy:设置策略 bit0 - 数据保存在BMC bit1 - 数据应用到目标硬件 bit2:7 - 保留 a{su}: 具体参数,为K-V结构,Key表示设置的属性名,Value表示属性值 |
无 | 无 | 设置超节点配置参数 | BasicSetting | 1.请求签名a{su} 变更 ya{su} 2.方法添加到接口bmc.kepler.Chassis.SuperPodLabel,原接口删除 |
无 |
| 新增 | GetSuperPodLabel | as | 获取的超节点属性列表,若是空数组,全部获取;s :属性值,取值为方案1列出的属性 | a{su} | Key:超节点属性,Value:属性值值 | 获取超节点配置信息 | BasicSetting | 无 | 无 |
方案对比
| 方案 | 优点 | 缺点 |
|---|---|---|
| 方案1 | 1.可维护性比较好,超节点信息在资源树上,一键日志里可以收集到超节点信息 | 1.可扩展性较差,后续若新增超节点配置信息,需要新增资源树属性2.存在部分不通用的属性 |
| 方案2 | 1.可裁剪性好,支持各产业按实际获取超节点配置信息 2.可扩展性好,后续新增属性不需要新增资源树属性 | 1.可维护性相对较差,只能通过rpc接口获取到超节点信息 |
评审结论
1、同意方案一,将原bmc.kepler.Products.SuperPodLabel接口下的属性和方法,迁移到bmc.kepler.Chassis.SuperPodLabel接口下,属性UBManagedBy 变更为 UBMDeployMode,方法SetSuperPodLabel签名由 a{su} 变更为 ya{su};
2、同意接口bmc.kepler.Chassis.SuperPodLabel新增属性IsUBFabricMode和IsUBControlNode,表示是否通过UB互联组集群,是否为UB控制节点,签名为boolean,只读,不发送变更通知事件;
遗留问题
无