云计算百科
云计算领域专业知识百科平台

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

作者:华从辉

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

概述

在 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 总线带宽无法承受瞬间爆发的高并发通信压力,导致任务大量阻塞和超时。

图片

60+盘场景,上电需要等待20分钟以上

图片

任务阻塞超时 

➣ 多 RAID 场景下的数据获取失败

  • 现象:在双 RAID 卡场景下,BMC 概率性地无法获取完整的 RAID 数据。原生机制存在兼容性问题。

  • 根因:该场景独特,强依赖于闭源组件,hwproxy 和 raid sdk,原生机制存在兼容性问题。

➣ 硬件适配与部署效率低下

  • 现象:4 个相同的 15 盘背板需支持跨槽位即插即用,但传统方案需为每个槽位编写不同的 CSR 配置,物料成本高且部署繁琐。

  • 现象:多部件(如扩展板、Riser 卡)的 CSR 包需独立升级,每次升级都伴随 BMC 重启,耗时费力。

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

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

➣ 多任务并发访问优化

  • 无效冗余优化:重构硬盘点灯逻辑,将非必要的“盘在位”判断优化为精准的“盘定位”,并减少点灯状态确认次数,单次操作节省数百毫秒,累积效应显著。

  • 任务分级运行:对硬盘任务进行优先级划分,高优先级任务(如盘符匹配)优先执行,次要任务(如日志收集)延长刷新周期,有效降低瞬时 I²C 通信压力。

  • 多任务隔离:在非首次上电场景下,优先完成 RAID 任务后再更新硬盘信息,避免任务相互干扰

图片

➣ 自适应盘符机制

  • 问题解决:利用 openUBMC 强大的 CSR 模型和字符串操作能力,设计了一套基于 Connector.Slot 与 SR 公式的自适应公式。

  • 实现效果:无论 15 盘背板插入哪个槽位,系统都能根据物理链路自动计算并生成正确的对外盘符(如 Disk10-Disk24),真正实现了跨槽位即插即用,省去了硬件拨码开关的成本。

图片

➣ 高效 CSR 部署

  • 问题解决:借助社区推出的 BMC Studio 图形化工具,将多个独立的 CSR 包打包成一个 ALL-in-One 的升级包。

  • 实现效果:部署方式从“多次升级、多次重启”转变为“一次升级、一次重启”,极大提升了多部件产品的部署效率。

图片

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

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

  • 性能提升:60+ 盘信息刷新时间从 20+ 分钟 缩短至 8 分钟,效率提升 150%+。

  • 稳定性增强:双 RAID 场景下 RAID 数据获取成功率从概率性失败提升至 100% 稳定获取。

  • 部署提效:CSR 多部件部署时间大幅缩短,运维效率显著提升。

  • 成本节约:自适应盘符机制节省了硬件拨码物料成本,并简化了现场运维部署流程。

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

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

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

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

  • 如果您也在进行高密存储、AI 服务器或其他创新硬件的产品化开发,欢迎分享您的挑战与解决方案。

  • 如果您对 openUBMC 的性能优化、硬件抽象、自动化部署等方向有独到见解,期待您的代码贡献。

  • 让我们一同将“问题场景”前置为“需求场景”,推动社区基线版本更贴合产业实际,共同构建一个繁荣、高效、稳定的开源 BMC 生态!


  • 社区官网:https://www.openubmc.cn

  • 代码仓地址:https://gitcode.com/openUBMC

赞(0)
未经允许不得转载:网硕互联帮助中心 » 效率提升150%!基于openUBMC的高密存储服务器产品化实践
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!