OpenBMC是Linux Foundation中的一个项目,也是开源BMC中最成熟的项目,也是社区中最活跃的项目。几天前,我们得知字节跳动系统部
STE团队开发的OpenBMC已经在内部成功上线,已经稳定运行了两个多月。这也是字节跳动首次正式启动OpenBMC计划并进行初步制作。
为此,我们采访了字节跳动系统部STE团队工程师,他分享了字节跳动自研OpenBMC的布局和推广过程。
#传统BMC生态封闭,难以及时响应。
BMC是服务器上的管理模块,包含独立的SoC和SoC。
在系统上运行,完成对服务器的管理和监控,并提供外部服务。它是服务器不可或缺的一部分。
目前,在服务器BMC的解决方案中,有些厂商已经完全自主开发了解决方案,而其他厂商将基于IBV(独立BMC厂商)商用BMC。
定制开发,但这些都是闭源的,服务器用户无法控制BMC的全部功能。
同时,商用BMC也有很多局限性,比如一些不必要的功能,可能会影响网络和系统的稳定性;修复bug和漏洞通常需要向ODM供应商甚至IBV反馈。
支持,使得修复时间过长;有些bug只会在特定的情况下重新出现,这使得修复它们变得更加困难。
随着互联网的不断发展和数据中心的不断壮大,数据中心服务的运维需求越来越精细化和定制化。
严重依赖ODM厂商和IBV的传统BMC开发模式,开发周期长,无法实时响应互联网日新月异的需求。一个更加开放和现代化的BMC方案已经成为当务之急。
#新功能和优秀架构,OpenBMC成为字节跳动首选。
OpenBMC是Linux基金会的一个开源项目,方案成熟,社区活跃,深受
IBM、谷歌、脸书、英特尔、Inspur等国内外主要厂商。
架构方面,OpenBMC支持Aspeed、Nuvoton等各种BMC芯片,以及x86、ARM、OpenPOWER等各种服务器架构。
Linux内核5.15,Systemd 249 (249.4),GCC 11.2.0,C 20等。
OpenBMC解决方案流程概述
但OpenBMC最初是为了满足国外企业的数据中心需求而设计开发的,并不能完全满足国内互联网数据中心的需求。根据
OpenBMC结合字节跳动服务器管理和运维,开发自研版本,成为更理想的选择。
#从社区版到落地应用,OpenBMC在字节跳动实现了产品化。
为了加快OpenBMC与字节跳动内部业务的适配,STE团队对OpenBMC进行了调研。
社区,每个模块的技术解决方案,比较字节跳动服务器的管理和运行,选择适用的解决方案。
字节跳动OpenBMC产品化过程示意图
对于能够满足STE字节跳动内部需求的模块
团队决定直接使用社区版;对于额外的需求,将基于社区模块,增加和增强功能,最终形成一个完整的解决方案进行深入测试。
STE团队工程师为我们分享了具体的计划:
*对于x86专用模块,重用英特尔模块,如PECI和节点管理器。
*对于电源控制,重用x86电源控制
*对于各种传感器,基于现有的实体管理器/dbus-sensors/virtual-sensors,添加yaml定义所需的传感器。
*对于风扇控制,重新使用了磷pid控制,并增加了单转子和双转子的检测和适配。
*对于FRU,应根据硬件情况修改相关代码,以支持非标准FRU格式。
*对于SEL,实现新的统一日志模式,将日志条目转换为标准SEL。
*代码更新方面,在phopsphor-bmc-code-mgmt的基础上,增加了BIOS、CPLD、FPGA等模块的支持。
*针对字节跳动的内部管理和运维,增加了新的代码,完成在线适配工作。
此外,STE团队还在字节跳动构建了一个CI服务器,完成了自动化编译和测试,并与开源社区的Gerrit取得了联系:
*对于每个内部推送/合并请求
uest,会跑 CI* 对于每一次编译,都会通过 QEMU 来跑基本的测试
* 对于重要的 release tag,还会通过 HW CI 在实际服务器上验证
* 对于开源社区里meta-bytedance的每一个改动,也会跑编译和 QEMU CI
# 积极呼吁行业合作,共同参与社区共建
据 STE 团队工程师介绍,OpenBMC 项目目前已经在两种不同配置的机器上顺利完成上线,并持续稳定运行了两个多月。
同时,STE 团队的工程师们,也在 OpenBMC 开源社区里提交了涉及新 feature 及 bug fix 的诸多 commits,目前已经成为了
OpenBMC Technical Oversight Forum (TOF) 的一员。
* https://github.com/search?p=1&q;=org%3Aopenbmc+bytedance.com&type;=Commits
* https://github.com/openbmc/docs/blob/master/tof/contract.md
未来,字节跳动系统部 STE 团队将在更多的平台上持续研发 OpenBMC,来更好、更快速地支持服务器的管理和运维。工程师还表示,在后续开发中,STE
团队希望能与更多厂商进行全方位、多维度的紧密合作共建,共同开发更符合国内互联网数据中心需求的开源 BMC 方案。
专访最后,STE 团队的工程师也充分表达了对于优秀人才的渴求,欢迎对新技术、开源感兴趣的小伙伴加入字节跳动系统部 STE 团队,用最新的
kernel、最新的编译器,写最 modern 的 C++。
* * *
关于字节跳动系统部 STE 团队:
字节跳动系统部 STE 团队 (STE=System Technologies & Engineering,系统技术与工程)
一直致力于操作系统内核与虚拟化、系统基础软件与基础库的构建和性能优化、超大规模数据中心的系统稳定性和可靠性建设、新硬件与软件的协同设计等基础技术领域的研发与工程化落地,具备全面的基础软件工程能力,为字节上层业务保驾护航。同时,团队积极关注社区技术动向,拥抱开源和标准。
更多招聘信息,可联系 chenziying@bytedance.com 获取。