OurBMC大咖说 | OurBMC技术栈深入解读
栏目介绍:"OurBMC大咖说" 是由 OurBMC 社区精心策划的线上讲座栏目,邀请 BMC 相关领域大咖共同探讨 BMC 全栈技术的发展趋势、挑战和机遇。无论你是初学者还是资深从业者,"OurBMC大咖说" 都将为你提供一个宝贵的学习和交流的平台。
欢迎各位关注 "OurBMC大咖说",聆听大咖们的智慧之声,共同推动 BMC 全栈技术的进步和发展!
本期人物介绍:掬水,OurBMC 社区技术委员会委员,飞腾信息技术有限公司 BMC 软件方案专家,主要负责飞腾腾珑 E2000 的 BMC 固件设计和开发等方面的工作。
最早接触开源社区,是我 2018 年参与 DPDK(Data Plane Development Kit)项目开发工作。在向开源社区 DPDK 贡献代码的过程中,熟悉了开源社区的运作机制;同时,通过参与社区代码检视的互动流程,理解了编码规范背后的种种要求,对代码质量也有了新的认识。OurBMC 社区作为国内首个交流和创新 BMC 开源技术的根社区,坚持 “开源、共建” 的合作方式,致力于推动 BMC 技术的快速发展。通过 OurBMC 社区,可以与更多开发者探讨 BMC 技术的进展,分享想法和经验,并为推动 BMC 技术发展做出自己的贡献。
BMC 是嵌入在计算机主板上的专用微控制器,相当于是服务器的 “根”,一直以来广受行业内的青睐。我从 2020 年开始深入飞腾 BMC 方面的工作,虽然之前使用过 BMC 的部分功能,但对其强大的运维和监控能力了解甚少。这也导致在 BMC 的适配和开发过程中,遇到了不少问题。得益于之前参与开源项目的经历,通过提 ISSUE、发邮件等方式,向 OpenBMC 社区求助,得到了社区成员的及时回应和指导;同时,昆仑、百敖、中国长城等 BMC 伙伴企业也给予了很多帮助和支持。通过多方支持,我成功解决了在飞腾 BMC 适配开发过程中的一系列问题,并积累了在 BMC 软件开发、调试的宝贵经验。
下面谈谈我本人对 OurBMC 技术栈的理解。OurBMC 基于上游仓库 OpenBMC 开发,在技术栈上与 OpenBMC 保持一致,从上到下可以分为软件层和硬件层,这种划分方式有助于更好地理解和组织 BMC 相关的技术和功能。
1. 软件层
-
应用层软件: 其软件与硬件无关,主要负责与 BMC 接口管理协议的交互,如 IPMI、SNMP、RedFish、Web 等。这些协议使得 BMC 可以被外部系统或工具所管理和监控。此外,与 BMC 操作系统相关的服务,如 D-Bus 进程间通信、SSH 网络登录、iKVM 等也都属于应用层软件。
-
内核层: 此部分软件与 BMC 芯片直接相关,包括与 BMC 芯片强相关的驱动程序。在 BMC 内核驱动软件的设计和开发中,有不少值得注意的地方。例如,KCS、BT 的驱动,需要区分 Master 和 Slave 模式,确保 BMC 与 Host 端的带内通信能够正常工作;显示控制器的显存大小是在 BMC 侧设置,而显示控制器的驱动却需要在 Host 端运行,但位于服务器主板上温度传感器、eeprom 等 I2C 设备,挂接到 BMC 的 I2C、I3C 总线上及主板上风扇、支持 PmBus 的电源模块,这些部件的驱动却运行在 BMC 上。因此,深入理解 BMC 驱动的特点,有助于识别出 BMC 驱动与 Host 端驱动的差异点。
-
Uboot:处于 BMC 软件的最底层,这一层除了负责引导内核启动外,还配置与 BMC 卡硬件相关的软件参数。如设置显示控制器的显存大小和访问权限等。
2. 硬件层
-
包括 BMC SoC(System on a Chip)和连接到 BMC 的部件。其中,BMC SoC 内部的部分控制器需要区分 Master 和 Slave 模式,如 I2C 控制器在支持IPMB(Intelligent Platform Management Bus)通信及 MCTP(Management Component Transport Protocol)通信的场景下,只能使用 I2C Master Write 操作,因此需要支持 Master 和 Slave 模式的切换。另外,BMC 还与主板上的其他部件相连,如温度传感器、eeprom 等 I2C 设备、风扇以及支持 PmBus 的电源模块等。这些部件通过 BMC 与主机系统进行通信,并由 BMC 进行管理和监控。
随着服务器的大规模部署和使用,对 BMC 的功能需求越来越多,BMC 的技术栈也在不断深化和扩展。在 BMC 技术纵向发展方面,BMC 的 RedFish 接口协议日益受到重视。其中,基于 Json(JavaScript Object Notation)的数据类型使用 Schema 定义的数据模型,使得 RedFish 支持的 BMC 功能易于扩展,支持动态配置。RedFish 以 Json 格式存储的数据可读性强,在 BMC 中得到愈发广泛的使用。在 BMC 技术横向扩展方面,新技术也被纳入到 BMC 的功能特性规划中。如在 BMC 的带外管理上,使用的 PLDM(Platform Level Data Model)协议功能新增了对 MCTP over PCIE VDM(Vendor Defined Message)的支持,相比 MCTP over I2C 和 MCTP over LPC 在带宽上有显著的提高;并且,通过基于添加类型为 VDM type 1 的消息,到 PCIE 传输层的 TLP(Transaction Layer Packets)报文,使得 MCTP 消息的解析在路由上更快速。此外,BMC 作为服务器的管理系统,对服务器有着强大又全面的监控功能,这也引发了对 BMC 安全、可靠两方面的担忧。所以,在安全技术方面,除采用认证管理、授权控制、密钥管理等传统的防攻击手段之外,还需要探索适合 BMC 特有的安全特性,使得 BMC 安全稳定的长时间运行。我们坚信,随着 BMC 监控模块的增多,BMC 收集故障信息会更全面,为服务器运维人员提供更详细、更准确的诊断日志;BMC 的功能也会逐步向精细化、智能化的方向演进,其技术栈相应也会日益丰富。
OurBMC 社区目前虽然处于起步阶段,但已经吸引众多伙伴加入,为建设社区贡献力量。飞腾信息技术有限公司作为 OurBMC 的理事成员单位,在飞腾腾珑 E2000 BMC 的软硬件设计开发中,积累了丰富的实践经验和技术。飞腾与 OurBMC 社区的伙伴们,共同分享 BMC 相关的知识,深入探讨 MCTP over PCIE VDM 的实现方法,并不断完善 PLDM 协议下的 MCTP 功能。同时,也在 BMC 安全技术方面不断进行研究和探索,如在 BMC 固件里实现对安全启动、可信计算方面功能等。
最后,我们真诚地期待更多伙伴加入 OurBMC 社区,与社区携手并进,共同推动 BMC 技术的发展和应用,为共建社区添砖加瓦,为服务器的管理和监控提供更智能、更可靠、更强大的支持。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
无需改动代码:将传统应用平滑迁移到云端
随着云计算的迅猛发展,云原生已成为企业数字化转型的关键词。然而,对于那些根植于传统IT架构的应用来说,迁移到云端不仅意味着技术栈的更新,更涉及到运维文化和业务流程的重大调整。本文将介绍如何在不改动代码的情况下,快速实现将传统应用迁移到云端。 传统应用与云原生应用的区别 传统应用通常是在单一且封闭的环境中开发和部署的。这些应用通常依赖于特定的硬件环境,与底层操作系统和网络配置紧密耦合,缺乏必要的弹性和可扩展性。此外,由于紧密耦合的架构,更新和维护通常耗时且风险较高。 相比之下,云原生应用的特点在于其轻量级、弹性和可扩展性,它们通常基于微服务架构,每个服务都可以独立更新和扩展;应用以容器化方式运行,并由动态编排系统管理,使其能够根据负载自动调整资源使用,优化性能和成本。 从传统到云原生:常见的挑战和考虑因素 迁移传统应用到云环境是一个复杂的过程,涉及多方面的考量。评估时需要重点考虑以下几点: 业务需求:明确迁移的目的和预期效果,如提高可靠性、降低成本或增强灵活性。 应用特性:分析应用的大小、复杂性以及对现有架构的依赖程度。 技术兼容性:确定迁移工具是否支持现有技术栈和依赖。 在考虑完以上因...
- 下一篇
OurBMC 首个版本1.0.0正式发布!
2023 年 12 月 29 日,经过社区开发者的共同努力,OurBMC 首个版本 1.0.0 正式发布。OurBMC 1.0.0 提供从 host 端到 BMC 端的全栈 BMC 技术实现,适配多种软硬件场景,并为开发者提供全面、高效的 BMC 全栈解决方案。 发布内容 OurBMC 1.0.0 发布内容包含了 bmc-uboot、bmc-linux、bmc-openbmc、bmc-web、host-UEFI 以及 host-linux 6 大模块。 bmc-uboot Bmc-uboot v1.0.0基于U-Boot v2019.04开发,在支持业界主流BMC芯片的基础上,使能飞腾腾珑E2000S BMC芯片,包括运行状态心跳灯、多级复位、pinctrl配置等功能。 bmc-linux Bmc-linux v1.0.0 基于openbmc Linux dev-5.15新增飞腾腾珑E2000S BMC功能支持,主要功能包括IPMI通信、虚拟串口、JPEG、USB vHub、JTAG。 bmc-openbmc Bmc-openbmc 基于 OpenBMC v2.11.0 完善 ARM ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker安装Oracle12C,快速搭建Oracle学习环境