关联issue
评审背景
背景
当前客户以及产业产线有需求,需要支持BMC一次性可以升级所有分区,即升级之后BMC中所有分区的镜像版本需要一致
现状
当前BMC升级采用 分区轮转 的方式进行,即BMC升级时仅升级一个分区,然后在升级之后复位生效的过程中将当前的 Active 分区轮转到已经升级的分区上,前一个 Active 分区会轮转为 Available 分区,用于镜像切换或者异常恢复时使用。
方案
- 需要在 BMC 的镜像升级配置上增加一个可写的属性,在升级前先设置这个属性,用于标识当前BMC镜像的升级是单分区升级,还是全部升级
- BMC升级时根据这个上述的标记进行升级处理,当已经存在标记(标记为true)时会进行全分区升级,即升级一个分区的同时,将镜像同步到另一个分区
- 【可靠性】当前标记是属于一次性操作标记,因此不需要持久化动作,当BMC固件完成升级时需要由固件管理设置为false,防止BMC延时重启时再次触发升级导致反复升级
评审点
评审点1:新增BMC升级全部分区使能标记
path(已有):/bmc/kepler/UpdateService/UpdateMgmt
interface(已有):bmc.kepler.UpdateService.UpdateMgmt
新增属性信息如下:
| 项 | 取值说明 |
|---|---|
| 属性名称 | OnetimeUpdateEnabled |
| 属性类型 | Boolean |
| 属性权限 | R: ReadOnly W:SecurityMgmt |
| 默认值 | false |
| 持久化 | 无 |
| 变更发送通知 | false |
| 属性来源 | 由下游业务进行设置 |
| 属性说明 | 是否使能全部分区升级,默认为false |
评审结论
通过,同意在资源协作接口 bmc.kepler.UpdateService.UpdateMgmt 新增属性 OnetimeUpdateEnabled,签名为 b,默认值为 false,不需要持久化,不发送变更通知事件,表示是否对待升级部件全部分区升级。