ISSUE链接
暂无
评审背景
- 为了避免BMC升级异常后BMC长时间无法升级和重启,支持BMC升级处理异常时进行自恢复,自自恢复的方式是进行BMC复位。即:
当BMC进入升级模式后,如果出现升级异常情况,对端的固件升级处理如果长时间没有完成升级(没有升级完成的响应),此时需要进行DFX处理,当前固件的升级异常退出。
当前现状以及差距
现状
BMC进入升级模式之后,固定等待 120min。如果在这个时间之内没有固件升级成功的响应,则当前升级流程退出,并且上报升级失败的错误。
差距
客户有需求,需要等待固定的时间(比如A客户是Xmin),超过时间之后需要进行BMC的自恢复。当前BMC是固定时间,无法满足客户需求。
解决方案
采用 “客户定制 + 产品配置 + 默认值” 的方式进行三步走的处理策略。具体策略如下:
- 优先级1:采用 定制升级超时(单位:min),定制之后BMC的升级模式最长等待时间按照定制项进行处理;
- 优先级2:采用 产品配置(单位:min),CSR配置之后如果在没有定制的情况下采用该超时时间,超时时间默认是 120min。
决策点1:新增资源协作接口属性
path: /bmc/kepler/UpdateService
interface: bmc.kepler.UpdateService
properties: TimeoutThreshold/TimeoutPolicy
新增属性1:升级超时时间
项 | 说明 |
---|---|
属性名称 | TimeoutThreshold |
属性类型 | U16 |
属性读写 | 只读 |
属性权限 | R:ReadOnly W:不涉及 |
属性值来源 | 产品CSR配置/定制化项 |
是否发送信号 | 否 |
持久化 | 否 |
属性说明 | 升级管理监控每个升级任务的最大超时时间,单位:min,取值范围 1 ~ 120,默认 120 |
新增属性2:升级超时策略
项 | 说明 |
---|---|
属性名称 | TimeoutPolicy |
属性类型 | U8 |
属性读写 | 只读 |
属性权限 | R:ReadOnly W:不涉及 |
属性值来源 | 产品CSR配置/定制化项 |
是否发送信号 | 否 |
持久化 | 否 |
属性说明 | 升级管理对于升级超时之后的处理策略,0:无动作;1:复位BMC,默认0 |
决策点2:新增定制化项
新增定制项1:升级超时时间
项 | 说明 |
---|---|
定制化项名称 | Custom_UpgradeTimeout |
归属组件 | firmware_mgmt |
类型 | integer |
默认值 | 120 |
处理逻辑 | if(Custom_UpgradeTimeout != 空) BMC升级超时时间设置为Custom_UpgradeTimeout else BMC升级超时时间设置为默认值 |
说明 | 取值范围 [1, 120],单位:分钟(min) |
新增定制项1:升级超时策略
项 | 说明 |
---|---|
定制化项名称 | Custom_FirmwareUpdateTimeoutPolicy |
归属组件 | firmware_mgmt |
类型 | integer |
默认值 | 0 |
处理逻辑 | if(Custom_FirmwareUpdateTimeoutPolicy != 空) BMC升级超时策略设置为Custom_FirmwareUpdateTimeoutPolicy else BMC升级超时策略设置为默认值 |
说明 | 升级超时策略,取值如下: 0:无动作 1:复位BMC |
决策点3:新增配置导入导出项
新增配置导入导出项1:升级超时时间
项 | 说明 |
---|---|
导出项 | UpgradeService |
导出子项 | UpgradeTimeout |
归属组件 | firmware_mgmt |
类型 | integer |
导入导出类型 | 导入导出 |
属性类型 | ImportAndExport |
导出后是否可以直接导入 | true |
说明 | 升级超时时间,取值范围 [1, 120],单位:分钟(min) |
新增配置导入导出项1:升级超时策略
项 | 说明 |
---|---|
导出项 | UpgradeService |
导出子项 | FirmwareUpdateTimeoutPolicy |
归属组件 | firmware_mgmt |
类型 | integer |
导入导出类型 | 导入导出 |
属性类型 | ImportAndExport |
导出后是否可以直接导入 | true |
说明 | 升级超时策略,取值如下: 0:无动作 1:复位BMC |
评审结论
部分通过,同意新增超时策略,不同意新增超时时间。具体结论如下:
- 同意在资源协作接口
bmc.kepler.UpdateService
增加属性TimeoutPolicy
,表示固件升级超时之后的处理策略,签名为y
,只读,读权限:ReadOnly,取值有:0 - 无动作;1 - 复位BMC;默认值为 0 - 同意新增定制化项
Custom_FirmwareUpdateTimeoutPolicy
,类型为integer
,表示固件升级超时之后的处理策略,取值有:0 - 无动作;1 - 复位BMC;默认值为 0 - 同意新增配置导入导出项
FirmwareUpdateTimeoutPolicy
, 类型为integer
,表示固件升级超时之后的处理策略,取值有:0 - 无动作;1 - 复位BMC;默认值为 0