
BMC 在服务器中的角色在一台服务器里除了运行业务的主 CPU 和操作系统还有一套独立的管理计算机它有自己的处理器、内存和固件不依赖主机操作系统甚至不依赖主机电源状态只要 Standby 供电正常就能工作。它的核心就是 BMCBaseboard Management Controller基板管理控制器。BMC 通过 I2C/SMBus、LPC/eSPI、GPIO、PWM/Tach 等总线与主板上的传感器、电源、风扇、CPLD 等部件相连对内采集温度、电压、电流、风扇转速等状态并执行上电时序、开关机、风扇调速等控制对外提供 IPMI、Redfish、Web 等标准接口。即使主机宕机或未上电管理员仍能通过带外网络远程开关机、查看状态、挂载镜像装系统、升级固件——这就是带外管理Out-of-Band的价值也是数据中心远程运维与无人值守机房的基础。图 1-1 以飞腾 E2000S OpenBMC 为例给出了 BMC 系统的分层架构自下而上依次是硬件层、内核驱动层BSP、系统框架层、OpenBMC 应用服务层、标准接口层和用户入口层层与层之间通过 D-Bus 对象与标准协议解耦这正是 OpenBMC 一切皆 D-Bus 对象的设计思想。图 1-1 BMC 功能架构分层图飞腾 E2000S OpenBMC按照运维场景可以把 E2000S BMC 的能力归纳为六大功能域见图 1-2。每个功能域在 OpenBMC 中基本对应一组 phosphor-\* 软件包本系列后续的功能开发章节也会按此划分逐个展开。图 1-2 E2000S BMC 功能地图功能与实现的对应关系下表列出主要功能在 OpenBMCPhosphor中的对应实现便于后续在源码树中快速定位功能说明OpenBMC主要实现软件包 / 组件电源管理开关机、复位、启动顺序控制phosphor-state-manager传感器监控温度 / 电压 / 电流 / 功耗采集与阈值phosphor-sensors、phosphor-hwmon风扇控制转速采集、PWM 调速、故障兜底phosphor-fan-controlYAML 配置LED 管理电源、故障、定位指示灯phosphor-led-manager事件日志SEL 记录、查询、清除与导出phosphor-sel-logger、phosphor-logging看门狗喂狗与超时动作复位 / 告警phosphor-watchdogIPMI 2.0本地、LAN 与边带通道的标准 IPMIphosphor-host-ipmid、phosphor-ipmi-netRedfish / RESTDMTF 标准 RESTful 管理接口bmcwebWeb 界面基于 Web 的图形化管理页面phosphor-webui / bmcweb 静态页面SOL串口重定向 over LANobmc-console、phosphor-host-console远程 KVM远程图形控制台bmcweb KVMVNC / HTML5虚拟介质远程挂载 ISO / IMG 装系统virtual-media 相关软件包用户管理多用户、密码与权限phosphor-user-manager、PAM固件更新BMC / BIOS 镜像升级与回滚phosphor-software-managerD-Bus 接口内部对象化消息总线dbus、sdbusplus说明表中软件包以 OpenBMC-2.11 基线为参考飞腾的 meta-phytium、meta-phytium-openbmc 适配层在其上做板级配置与补丁个别包名随基线版本可能略有差异。开发中功能机箱管理批量部署与自动化测试工具链