重庆做网站电话,国和建设集团网站,河北政务服务网,山东省建设厅网站栏目介绍#xff1a;OurBMC大咖说 是由 OurBMC 社区精心策划的线上讲座栏目#xff0c;邀请 BMC 相关领域大咖共同探讨 BMC 全栈技术的发展趋势、挑战和机遇。无论你是初学者还是资深从业者#xff0c;OurBMC大咖说 都将为你提供一个宝贵的学习和交… 栏目介绍OurBMC大咖说 是由 OurBMC 社区精心策划的线上讲座栏目邀请 BMC 相关领域大咖共同探讨 BMC 全栈技术的发展趋势、挑战和机遇。无论你是初学者还是资深从业者OurBMC大咖说 都将为你提供一个宝贵的学习和交流的平台。 欢迎各位关注 OurBMC大咖说聆听大咖们的智慧之声共同推动 BMC 全栈技术的进步和发展 本期人物介绍汪涛南京百敖软件有限公司技术总监百敖BMC团队负责人。毕业于德国不来梅大学电气工程专业从事固件开发14年历年来多次承担国家科技支撑计划、科技型中小企业、江苏省科技成果转化、无锡市科技支撑项目等发表论文3篇申请专利5项参与多项BMC固件行业和团体标准制定。 前几期的专家老师们都提到了OurBMC社区标准化的问题我对此深有感触也十分赞同几位专家老师们的看法百敖作为国内主要的 IBV 厂家之一基于 OpenBMC 代码为国内多家厂商提供了基于 E2000 BMC 和基于其它 BMC 的技术服务对 BMC 软件的开发和适配有着深厚的经验借此机会初步探讨下当前 BMC 开发过程中遇到的一些非标准化的问题。
BMC 相关软件需求非标准化问题
BMC 的 SEL 事件日志功能是服务器管理中的一个关键组件可以记录服务器运行过程中硬件或软件发生的各种事件或状态变化。这些事件的描述在 IPMI 规范中都有定义主要包括CPU、内存、硬盘、PCIE、电源、风扇等模块的硬件故障信息相关组件的温度过高、电压异常等系统告警信息系统开机/关机/重启等状态变化事件。
随着服务器行业的发展对事件日志的精细化和可扩展性有了更高的要求如果出现了系统硬件故障后运维人员想要知道具体发生了什么样的故障如果故障类型不能准确记录会给系统运维人员造成很大的困扰相反如果故障信息能精确的话则运维人员可以针对不同的故障信息做不同的故障处理可以大大的提高运维效率和节省运维成本。例如有些厂商想让 BMC 能记录 CPU 或者 PCIE 设备的 MCE/AER 事件但当前 IPMI SEL 事件中所支持的 CPU 或 PCIE 事件列表中都没有此类事件BMC 如不能准确记录此类事件的话则运维人员就不能做有针对的处理。
为了解决 BMC SEL 事件日志不够准确和事件类型不够丰富的问题很多厂商都自定义了一套区别于传统 IPMI SEL 事件日志的日志规范。但由于各家的规范并不统一要适配不同的服务器产品就意味着 BMC 需要不同的日志功能解决方案而事件日志又是 BMC 的标配功能这一基础功能的开发却需要实现多套不同方案额外增加了 BMC 软件适配的工作量。如果能新制定一套统一的事件日志规范同时能兼顾多方需求则在能降低 BMC 的开发适配工作的同时也能大大提升服务器的运维管理能力。
BIOS 与 BMC 交互接口非标准化问题
BIOS 在启动过程中与 BMC 会有一些信息交互这些交互基本上是通过 IPMI 命令来实现的。主要包括BIOS 在启动过程中会获取 BMC 的版本信息、自检状态BMC 的网络配置信息、BMC 的用户信息以及系统启动项等信息同时在 BIOS setup 界面也可以修改 BMC 的网络配置以及用户配置最终通过 IPMI 命令发送给 BMC这些命令都有标准的 IPMI 规范。但是随着服务器上的需求越来越多BIOS 需要传送更多的信息给 BMC例如 BIOS 的版本信息、CPU/内存/硬盘/PCIE 的设备信息或启动过程中检测到的一些设备故障信息以及 BIOS 的 setup 配置信息等这些信息标准的 IPMI 命令并没有实现各家厂商实现这些需求时要么是 BIOS 与 BMC 之间协商一套 OEM 命令要么是用其它方式实现总之这些无法用标准 IPMI 命令支持的需求各家 BIOS 和 BMC 厂商都没有一套统一的通信规范从而造成不同厂商的 BMC 适配另一家的 BIOS 时无法做到代码兼容需要重新去适配 BIOS 与 BMC 之间的交互接口增加了适配的工作量。如果能有一套统一的 BIOS 与 BMC 通信标准规范则能大大的提高 BMC 的通用性减少新的服务器项目中的适配工作。
其他固件升级的非标准化问题
服务器主板或各种背板上常用的 CPLD 主要由 Lattice、安路、紫光等厂商提供服务器厂商对 CPLD 都有通过 BMC 进行在线升级的需求然而各 CPLD 厂商通过 BMC 进行在线升级的文件格式基本各不相同有 Lattice 的 jed 格式文件、安路的 aje 格式文件也有 svf 格式或者 vme 格式的升级文件。不同格式的升级文件意味着 BMC 需要去适配开发不同的 CPLD 固件升级应用程序和设备驱动程序如果某款服务器上有多个主板及背板 CPLD且不同板卡上的 CPLD 还有几个备选厂家的话则 BMC 在适配 CPLD 升级代码上就有较大工作量并且无法做到代码归一这样就会加大开发此种场景下 CPLD 在线升级程序的复杂度。实际上CPLD 的在线升级功能基本都是使用的 JTAG 接口也有少量选择 I2C 接口在统一使用 JTAG 接口的情况下各 CPLD 厂商如果能提供统一的升级格式文件给到 BMC如 svf 或者 vme 格式的在线升级文件则 BMC 就可以用一套代码支持不同厂家的 CPLD 在线升级方案无论服务器上有多少个 CPLD 需要升级或有多少家厂商需要支持。
同样的情况在 PSU 固件升级上也存在服务器厂商对 PSU 也都有通过 BMC 进行在线升级的需求而 PMBUS 规范中并没有定义固件升级相关的命令字只是预留了一些厂商自定义命令字因此各厂商在 PMBUS 规范中的自定义命令字里实现了各自的一些功能包括在线升级功能由于没有统一的规范就会导致各家 PSU 厂商的升级功能实现各不相同也给 BMC 的 PSU 在线升级功能的实现增加复杂度在每适配一款新的服务器时就有可能需要重新适配修改 PSU 的在线升级代码。如果各 PSU 厂商把在线升级功能或设置 PSU 主备模式等功能相关的命令字都能做成一个标准规范的话对 BMC 的硬件适配工作将会有极大的帮助。
BMC 接口标准化展望
在 BMC 的开发适配工作中类似上述的非标准化接口非常之多上述也只做了小部分举例说明这些不仅体现在 BMC 自身的一些软件需求上与其它领域都有涉及例如 BIOS、CPLD、PSU、VR、PCIE网卡、NVMe硬盘、RAID卡、GPU卡、DPU卡等。百敖深耕国产化服务器已有多年积累了深厚的服务器 BMC 开发经验同时百敖的 BMC 和 BIOS 早已有一套通信标准为了国产化服务器的发展繁荣我们愿意跟行业内的相关厂商和合作伙伴分享经验并一起制定相关的 BMC 开发标准让 BMC 的开发不再有高的门槛使 BMC 的适配工作变得简单大家能专注于新功能以及更有价值的功能开发共同推动国产化服务器的新发展。
我们很荣幸能加 OurBMC社区也很高兴看到越来越多的伙伴们加入OurBMC社区。国产 BMC 的发展不仅依靠像飞腾这样的国产芯片厂商和 BMC 固件厂商也依赖跟 BMC 有交互的各模块对应的厂商一起助力也希望越来越多的厂商加入到OurBMC社区壮大OurBMC社区一起为国产 BMC 的发展谱写新的篇章。