博客详情页
  • 下载
  • 开发
  • 文档
  • 学习
  • 支持
  • 社区
  • 动态
代码仓
EN
代码仓
EN
效率提升150%!基于openUBMC的高密存储服务器产品化实践

效率提升150%!基于openUBMC的高密存储服务器产品化实践

技术干货

2026/04/14
华从辉

概要:
在 AI 与大数据时代,海量数据的存储需求催生了高密度存储服务器的蓬勃发展。然而,当一台服务器容纳的硬盘数量从传统的十几块跃升至 60甚至 70 块时,带外管理系统(BMC)便面临着前所未有的并发压力与性能挑战。
如何让 BMC 在如此庞大的硬件规模下依然保持高效、稳定、流畅的管理体验,成为产品化落地的关键一环。本文将分享我们基于 openUBMC 与社区协作,成功实现高密存储型服务器产品化的实践经验。

背景:当“盘多多”遇上 BMC 管理瓶颈

我们的目标产品是一款典型的高密存储服务器,其核心特点在于极致的存储密度:

  • 双 RAID 卡管理高达 70 块硬盘:
    包括 60 块 3.5 英寸机械盘和 10 块 2.5 英寸盘。
  • 复杂的硬件拓扑:
    4 个 15 盘位背板通过二级扩展架构连接,支持跨槽位即插即用。
  • 独特的散热设计:
    采用双型号风扇分区调速,前置风扇负责主板/PCIe 卡散热,后置风扇专责 3U 硬盘仓散热。

在基于 openUBMC 进行开发初期,我们遇到了一个严重影响用户体验的核心痛点:首次上电或 OS 重启后,Web 界面刷新全部 60+ 块硬盘的带外信息需要长达 20分钟以上!对于运维人员而言,这意味着漫长的等待,极大地降低了服务器的可用性和管理效率。

问题与挑战:多任务并发下的性能瓶颈

深入分析发现,这一痛点背后是多重挑战的叠加:

挑战一:海量任务并发阻塞

  • 现象: 满配 70 盘时,BMC 需要同时处理超过 200 个并发任务,包括RAID 信息刷新、硬盘点灯、SMART 信息读取等。
  • 根因: 有限的 I²C 总线带宽无法承受瞬间爆发的高并发通信压力,导致任务大量阻塞和超时。

alt text
60+盘场景,上电需要等待20分钟以上
alt text
任务阻塞超时

挑战二:多RAID 场景下的数据获取失败

  • 现象: 在双 RAID 卡场景下,BMC 概率性地无法获取完整的 RAID 数据。
  • 根因: 该场景独特,强依赖于闭源组件 hwproxyraid sdk,原生机制存在兼容性问题。

挑战三:硬件适配与部署效率低下

  • 现象: 4个相同的 15 盘背板需支持跨槽位即插即用,但传统方案需为每个槽位编写不同的 CSR 配置,物料成本高且部署繁琐。
  • 根因: 多部件 (如扩展板、Riser卡)的 CSR包需独立升级,每次升级都伴随 BMC 重启,耗时费力。

openUBMC 方案:社区协作驱动的创新优化

面对这些挑战,我们采取了“本地(场景发现 +开源优化) +社区 (闭源优化)”的协作模式,充分利用 openUBMC 的开放性和灵活性,实施了一系列针对性优化。

功能一:多任务并发访问优化

  • 无效冗余优化: 重构硬盘点灯逻辑,将非必要的“盘在位”判断优化为精准的“盘定位”,并减少点灯状态确认次数,单次操作节省数百毫秒,累积效应显著。
  • 任务分级运行: 对硬盘任务进行优先级划分,高优先级任务 (如盘符匹配)优先执行,次要任务(如日志收集)延长刷新周期,有效降低瞬时I²C 通信压力。
  • 多任务隔离: 在非首次上电场景下,优先完成 RAID 任务后再更新硬盘信息,避免任务相互干扰。

alt text

功能二:自适应盘符机制

  • 问题解决: 利用 openUBMC 强大的 CSR 模型和字符串操作能力,设计了一套基于 Connector.SlotSR 公式的自适应公式。
  • 实现效果: 无论 15 盘背板插入哪个槽位,系统都能根据物理链路自动计算并生成正确的对外盘符(如 Disk10-Disk24),真正实现了跨槽位即插即用,省去了硬件拨码开关的成本。

alt text

功能三:高效 CSR 部署

  • 问题解决: 借助社区推出的 BMC Studio 图形化工具,将多个独立的 CSR 包打包成一个 ALL-in-One 的升级包。
  • 实现效果: 部署方式从“多次升级、多次重启”转变为“一次升级、一次重启”,极大提升了多部件产品的部署效率。

alt text

看得见的价值:从 20 分钟级到 8 分钟的飞跃

我们的优化带来了立竿见影的效果 ,用数据证明了方案的有效性:

  • 性能提升: 60+ 盘信息刷新时间从 20+ 分钟缩短至8分钟,效率提升150%+。
  • 稳定性增强 : 双 RAID 场景下 RAID 数据获取成功率从概率性失败提升至100%稳定获取 。
  • 部署提效: CSR 多部件部署时间大幅缩短,运维效率显著提升。
  • 成本节约 : 自适应盘符机制节省了硬件拨码物料成本,并简化了现场运维部署流程。

此外,整个项目过程中,我们向openUBMC社区贡献了38条经验总结与优化建议,形成了良性的社区共建循环。

5. 共建:打造更强大的 openUBMC 存储生态

高密存储服务器的挑战只是 openUBMC 应用场景的一个缩影。我们相信,openUBMC的未来在于每一位开发者的共同参与和贡献。

在此,我们诚挚邀请各位开发者、合作伙伴加入 openUBMC 社区:

  • 如果您也在进行高密存储、AI 服务器或其他创新硬件的产品化开发,欢迎分享您的挑战与解决方案。
  • 如果您对 BMC 的性能优化、硬件抽象、自动化部署等方向有独到见解,期待您的代码贡献。
  • 让我们一同将“问题场景”前置为“需求场景”,推动社区基线版本更贴合产业实际,共同构建一个繁荣、高效、稳定的开源 BMC 生态!

加入我们,让每一次“盘多多”的挑战,都成为 openUBMC 进化的新动力!

[Copyright] Copyright © 2026 openUBMC Community. This article was first published by the openUBMC Community. Reproduction is welcomed under CC-BY-SA 4.0. When reproducing, please prominently note the source in the text and retain the original article link and author information.

[Disclaimer] The views expressed in this article are solely those of the author and do not represent the stance of this website. This website remains neutral regarding the statements and opinions presented and provides no express or implied warranty as to the accuracy, reliability, or completeness of the content. This article is intended for reference only, and all legal responsibilities arising therefrom shall be borne by the reader.

About the Author

华从辉

长江计算 BMC 系统工程师,从事8年嵌入式软件开发,深耕鲲鹏生态,主导多款服务器BMC 及整机柜 RMC 研发。