尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
OpenBMC:A/B 分区升级与失败回滚机制
OpenBMCA/B 分区升级与失败回滚机制1. A/B 分区的作用单分区升级时如果写入中断或新固件无法启动BMC 可能失去远程管理能力。A/B 方案在 Flash 中保存两个相对独立的系统镜像Slot A当前运行版本 Slot B备用或待升级版本升级时不覆盖当前运行分区而是将新固件写入非活动分区。2. 分区布局典型布局如下Flash ├── Bootloader ├── Boot Metadata ├── Slot A │ ├── Kernel │ └── Root Filesystem ├── Slot B │ ├── Kernel │ └── Root Filesystem └── Persistent DataBoot Metadata 可以记录当前活动 Slot各 Slot 优先级剩余启动次数启动成功标志固件版本镜像有效状态持久化数据通常独立于 A/B 系统镜像以便两个版本共享网络和用户配置。3. A/B 升级流程假设当前运行 Slot A当前运行 Slot A ↓ 上传新固件 ↓ 验证镜像 ↓ 擦除并写入 Slot B ↓ 校验 Slot B 内容 ↓ 将 Slot B 标记为待启动 ↓ 设置有限的尝试次数 ↓ 重启 BMC ↓ Bootloader 尝试启动 Slot B升级过程不会修改正在运行的 Slot A因此写入失败时仍然可以继续使用旧版本。4. 启动成功确认仅仅进入 Linux 内核并不一定表示升级成功。系统通常需要在关键服务启动后确认新版本可用。Bootloader 启动 Slot B ↓ Kernel 启动 ↓ 挂载根文件系统 ↓ 关键 OpenBMC 服务运行 ↓ 系统执行健康确认 ↓ 将 Slot B 标记为启动成功健康确认条件可以包括根文件系统成功挂载D-Bus 正常运行网络服务正常启动bmcweb 正常运行关键硬件服务完成初始化系统在规定时间内未重新启动确认成功后Bootloader 可以将 Slot B 保持为首选启动项。5. 失败回滚流程如果新版本无法启动启动 Slot B ↓ 启动失败或看门狗复位 ↓ 未写入启动成功标志 ↓ Bootloader 减少剩余尝试次数 ↓ 再次尝试 Slot B ↓ 尝试次数耗尽 ↓ 降低 Slot B 优先级 ↓ 重新启动 Slot A回滚条件可能包括Bootloader 无法加载镜像镜像签名验证失败Kernel 无法启动根文件系统挂载失败系统启动看门狗超时关键服务健康检查失败连续多次异常重启6. Bootloader 的职责Bootloader 是 A/B 回滚机制的核心执行者主要负责读取启动元数据选择启动 Slot验证镜像完整性管理启动优先级维护启动尝试次数根据成功标志确认版本失败时切换到旧 Slot选择逻辑示例读取 A/B 状态 ↓ 选择优先级最高且有效的 Slot ↓ 检查剩余尝试次数 ↓ 验证镜像 ↓ 启动选定 Slot启动元数据必须采用可靠的更新方式避免掉电后两个 Slot 都失去有效状态。7. 升级状态管理OpenBMC 升级服务需要维护以下状态Active Ready Updating Activating Failed Invalid当新镜像写入完成时不应立即把旧版本标记为无效。只有新版本完成启动确认后才能将其升级为稳定活动版本。建议区分当前运行版本 待启动版本 已确认版本 回滚版本 无效版本这样可以明确当前启动来源和失败后的恢复目标。8. A/B 机制的注意事项A/B 方案需要处理以下问题Flash 容量增加两个 Slot 的分区边界Bootloader 与新旧镜像兼容启动元数据的掉电保护用户配置跨版本兼容回滚后配置格式是否仍可读取固件版本防降级策略健康确认时机启动尝试次数设置两个 Slot 都失效时的恢复方式如果新版本修改了持久化配置格式回滚到旧版本时可能无法识别新配置因此配置迁移也需要具备向后兼容或恢复能力。9. 总结A/B 升级的核心原则是升级非活动分区 保留当前可用版本 新版本启动后进行健康确认 启动失败时由 Bootloader 自动回滚完整流程如下Slot A 正常运行 ↓ 新镜像写入 Slot B ↓ 切换为待启动版本 ↓ 尝试启动 Slot B ├── 成功确认 Slot B └── 失败回滚 Slot AA/B 机制能够显著降低升级中断和新版本启动失败造成的风险是提高 BMC 固件可恢复性的重要方案。
RELATED

相关推荐

OpenRAG 加密实现剖析:OAuth凭证安全存储的完整方案

OpenRAG 加密实现剖析:OAuth凭证安全存储的完整方案

OpenRAG 加密实现剖析:OAuth凭证安全存储的完整方案 【免费下载链接】openrag OpenRAG is a comprehensive, single package Retrieval-Augmented Generation platform built on Langflow, Docling, and Opensearch. 项目地址: https://gitcode.com/GitHub_Trend…

📅 2026/9/15 11:04:48
Mac 窗口摆放太费劲?Loop 用一根触发键搞定分屏、缩放与窗口收纳

Mac 窗口摆放太费劲?Loop 用一根触发键搞定分屏、缩放与窗口收纳

Mac 窗口摆放太费劲?Loop 用一根触发键搞定分屏、缩放与窗口收纳 【免费下载链接】Loop Window management made elegant. 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop Mac 上的窗口多了以后,最常见的动作是反复拖拽标题栏&#xff1…

📅 2026/9/15 11:04:48
3 步给硬盘上锁:VeraCrypt 开源磁盘加密新手完整指南

3 步给硬盘上锁:VeraCrypt 开源磁盘加密新手完整指南

3 步给硬盘上锁:VeraCrypt 开源磁盘加密新手完整指南 【免费下载链接】VeraCrypt Disk encryption with strong security based on TrueCrypt 项目地址: https://gitcode.com/GitHub_Trending/ve/VeraCrypt U 盘丢在地铁上,里面的客户资料就全暴露…

📅 2026/9/15 11:04:48
MORE NEWS

更多资讯

📰

LongProc 长程过程生成基准评测任务:在 lm-evaluation-harness 中使用与指标解析

LongProc 长程过程生成基准评测任务:在 lm-evaluation-harness 中使用与指标解析 【免费下载链接】lm-evaluation-harness A framework for few-shot evaluation of language models. 项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness …

📰

The lunatic is on the grass

The lunatic is on the grass 【免费下载链接】milkdown 🍼 Plugin driven WYSIWYG markdown editor framework. 项目地址: https://gitcode.com/GitHub_Trending/mi/milkdown The lunatic is on the grass The lunatic is on the grass The lunatic is on…

📰

MetaMask Extension 如何用 Mock Segment API 调试 MetaMetrics 事件?

MetaMask Extension 如何用 Mock Segment API 调试 MetaMetrics 事件? 【免费下载链接】metamask-extension :globe_with_meridians: :electric_plug: The MetaMask browser extension enables browsing Ethereum blockchain enabled websites 项目地址: https://…

📰

pyannote.audio 官方 FAQ 全解读:内存音频、离线使用 gated 模型、流式说话人日志与性能提升

pyannote.audio 官方 FAQ 全解读:内存音频、离线使用 gated 模型、流式说话人日志与性能提升 【免费下载链接】pyannote-audio Neural building blocks for speaker diarization: speech activity detection, speaker change detection, overlapped speech detectio…

📰

如何 5 分钟跑通 SillyTavern:免费 AI 角色扮演聊天室的完整上手指南

如何 5 分钟跑通 SillyTavern:免费 AI 角色扮演聊天室的完整上手指南 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 晚上想找个角色聊聊天,翻遍各种 API 页面却只有…

📰

将 InsForge 自托管到 Dokploy:Compose 应用部署完整指南

将 InsForge 自托管到 Dokploy:Compose 应用部署完整指南 【免费下载链接】InsForge The all-in-one, open-source backend platform for agentic coding. InsForge gives your coding agent database, auth, storage, compute, hosting, and AI gateway to ship fu…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬