BMC 是什么意思?服务器带外管理芯片详解
BMC 是什么意思?它是 Baseboard Management Controller(基板管理控制器)的缩写:焊在服务器主板上的一颗独立管理芯片,自带处理器、内存、固件和网口,只要电源线插着就一直运行。它在操作系统之外监控硬件、控制电源、提供远程画面;IPMI 和 Redfish 是和它对话的协议,iDRAC、iLO 是各厂商给它起的名字。
BMC 是一颗什么样的芯片
BMC 本质上是焊在服务器主板上的一台小型计算机,和主机的 CPU、内存、硬盘完全分开:
| 部件 | 说明 |
|---|---|
| 处理器 | ARM 架构的片上系统(SoC),主流型号来自 ASPEED 和 Nuvoton:ASPEED AST2500 为单核 ARM11(800 MHz),AST2600 为双核 Cortex-A7(1.2 GHz)并带一个 Cortex-M3 协处理器;Nuvoton NPCM7xx 为双核 Cortex-A9 |
| 内存 | 独立的 DDR 内存颗粒,几百 MB 到 1 GB 量级 |
| 固件存储 | SPI 闪存,容量几十 MB,存放 BMC 固件;部分主板配双份闪存做冗余 |
| 网口 | 一个专用的 RJ45 管理口,或者通过 NC-SI 接口复用主板板载网卡 |
| 显示控制器 | ASPEED 系列 BMC 同时是主板的集成显卡,主机画面直接在 BMC 内部被捕获,这是远程 KVM 能看到 BIOS 画面的原因 |
BMC 固件多数基于精简的 Linux,来源有三类:厂商自研(如 Dell iDRAC、HPE iLO)、商业方案 AMI MegaRAC(白牌和不少中小厂商采用)、开源项目 OpenBMC(Linux 基金会项目,超大规模数据中心和部分厂商采用)。
它和主机之间有一组专用连线,每条对应一项能力:
| 接口 | 连接对象 | 提供的能力 |
|---|---|---|
| LPC 或 eSPI(KCS 通道) | 主机芯片组 | 带内 IPMI:在操作系统里运行 ipmitool 不需要密码 |
| I2C、SMBus、PMBus | 温度传感器、电源模块、FRU 存储芯片、内存 SPD | 传感器读数、电源状态、主板序列号 |
| PECI | CPU | 读取 CPU 温度 |
| 视频捕获 | 主机显卡输出 | 远程 KVM 画面 |
| USB | 主机 USB 控制器 | 模拟键盘鼠标、虚拟光驱与 U 盘 |
| UART | 主机串口 | 串口重定向(SOL) |
| GPIO、PWM、转速反馈 | 电源按钮、复位线、风扇、指示灯 | 开关机、强制重启、风扇调速、定位灯 |
独立供电与独立网口
为什么主机关机了 BMC 还在运行
服务器电源模块有两路输出:主电源给 CPU、内存、硬盘供电,主机关机后就断开;待机电源(standby)只要交流电接通就一直有输出。BMC 挂在待机电源上,所以:
- 主机关机(S5 状态):BMC 运行,可以远程开机;
- 操作系统崩溃:BMC 不受影响,因为它不依赖主机 CPU;
- 拔掉电源线或 PDU 断电:BMC 也断电,什么都做不了。
BMC 自身的功耗只有几瓦,不占用主机 CPU 和内存,这也是它能常年待机的原因。
BMC 的网口:专用还是共享
BMC 有两种接入网络的方式,出厂默认因厂商而异,在 BIOS 或 BMC 设置里可以切换:
| 模式 | 连线 | 优点 | 缺点 |
|---|---|---|---|
| 专用管理口(Dedicated) | 主板上单独的 RJ45 口接管理交换机 | 管理流量与业务流量物理隔离;业务网卡故障或被限速时管理不受影响 | 每台服务器多占一个交换机端口和一根网线 |
| 共享网口(Shared、NC-SI) | BMC 通过 NC-SI 旁路借用一块业务网卡,同一根线上跑两个 MAC 地址 | 省端口、省线 | 业务端口被关闭、被 VLAN 隔离或欠费断网时,BMC 也一起失联 |
IDC 里通常用专用管理口,接入独立的管理 VLAN,不和客户业务混在一起。开通服务器时,BMC 的地址来自专门的 IPMI 地址段,与公网地址分开管理。
BMC 和 IPMI、Redfish 的区别
最常见的混淆是“BMC 和 IPMI 有什么区别”。一句话:BMC 是硬件,IPMI 和 Redfish 是访问这块硬件的协议。
| BMC | IPMI | Redfish | |
|---|---|---|---|
| 是什么 | 主板上的管理芯片及其固件 | 平台管理接口规范 | 基于 REST 的管理 API 规范 |
| 制定者 | 各服务器与主板厂商 | Intel、Dell、HP、NEC 于 1998 年发布 1.0,2004 年发布 2.0 | DMTF 于 2015 年发布 1.0 |
| 传输方式 | — | 带外走 RMCP+(UDP 623 端口),带内走 KCS 等系统接口 | HTTPS 上的 JSON,路径以 /redfish/v1/ 开头 |
| 常用工具 | 厂商 Web 界面 | ipmitool、FreeIPMI | curl、redfishtool、厂商 CLI(如 racadm、ilorest) |
| 现状 | 每台服务器都有 | 普遍支持,规范在 2.0 之后没有大版本更新 | 新功能的主要方向,现代 BMC 同时支持 |
同一颗 BMC 通常同时提供三种入口:厂商的 Web 界面、IPMI(供脚本和管理系统调用)、Redfish(供新的自动化工具调用)。用 ipmitool 能做的事,用 Redfish 基本都能做,而且能拿到更结构化的数据,比如硬盘、网卡、固件版本的完整清单。
各厂商把 BMC 叫什么
| 厂商 | BMC 名称 | 备注 |
|---|---|---|
| 戴尔 Dell | iDRAC | 分 Basic、Express、Enterprise、Datacenter 等授权级别 |
| 慧与 HPE | iLO | 分 Standard、Advanced 等授权 |
| 联想 Lenovo | XClarity Controller(XCC) | 分 Standard、Advanced、Enterprise 授权 |
| 华为 | iBMC | 早期机型叫 iMana |
| 新华三 H3C | HDM | — |
| 浪潮 Inspur | BMC | 文档中直接称 BMC |
| 思科 Cisco | CIMC / IMC | — |
| 超微 Supermicro | BMC / IPMI | 带外刷 BIOS 等功能需要 SFT-OOB-LIC 授权 |
| 白牌与其他 | AMI MegaRAC、OpenBMC | 界面和功能取决于固件方案 |
需要注意授权:戴尔、慧与、联想都把图形远程控制台、虚拟介质等功能放在高级授权里,基础授权通常只能看状态和控制电源。采购二手服务器或白牌机时,先确认授权是否随机附带,否则 BMC 有,但控制台打不开。授权级别和各级别包含的功能以各厂商当前文档为准。
主机各种状态下 BMC 能做什么
| 主机状态 | BMC 能做 | BMC 做不了 |
|---|---|---|
| 已通电、主机关机 | 远程开机;读温度、电压、风扇转速;读系统事件日志(SEL)和主板 FRU 信息;设置下次启动设备;挂载虚拟光驱;部分机型带外更新 BIOS 和固件 | 看到操作系统画面(主机还没运行) |
| 主机开机、系统死机 | KVM 看当前画面;强制重启或断电;发送 NMI 让系统转储;通过 SOL 看串口输出 | 优雅关机(依赖操作系统响应 ACPI 信号) |
| 主机开机、没装系统 | 通过虚拟介质或设置 PXE 启动来装系统;在 KVM 里操作 BIOS | — |
| 电源线拔掉或 PDU 断电 | 无 | 全部;这时只能靠可远程控制的 PDU 恢复供电 |
用命令和 BMC 打交道:查看、配置与排障
常用命令
以下命令在装了 ipmitool 的 Linux 上可用。在服务器操作系统里执行(带内)不需要地址和密码;从别的机器远程执行(带外)加上 -I lanplus -H 地址 -U 用户 -P 密码 即可。
# 带内使用前加载 IPMI 驱动
modprobe ipmi_si
modprobe ipmi_devintf
# 看 BMC 自己的信息:固件版本、厂商 ID、支持的功能
ipmitool mc info
# 看 BMC 管理口的网络配置(通道号多为 1,个别机型为 2 或 8,以厂商文档为准)
ipmitool lan print 1
# 给 BMC 配静态地址
ipmitool lan set 1 ipsrc static
ipmitool lan set 1 ipaddr 10.0.0.10
ipmitool lan set 1 netmask 255.255.255.0
ipmitool lan set 1 defgw ipaddr 10.0.0.1
# 读主板 FRU(型号、序列号)和温度类传感器
ipmitool fru print 0
ipmitool sdr type Temperature
# 查看 BMC 用户列表,再按用户 ID 重置密码
ipmitool user list 1
ipmitool user set password 2 '新密码'
# 让机箱定位灯闪 60 秒,方便在机房里找到这台机器
ipmitool chassis identify 60
# BMC 卡住时冷重启 BMC,不影响主机运行
ipmitool mc reset cold
同样的信息也可以用 Redfish 读取,返回 JSON:
# 列出这台服务器的管理器(BMC)和系统资源
curl -k -u admin:'密码' https://10.0.0.10/redfish/v1/Managers/
curl -k -u admin:'密码' https://10.0.0.10/redfish/v1/Systems/
Managers 下面具体资源的 ID 因厂商而异(例如 iDRAC 为 iDRAC.Embedded.1,很多机型为 1),先列出再进入。
常见问题的处理
- BMC 无响应、Web 打不开:先在操作系统里执行
ipmitool mc reset cold;如果带内也无响应,只能断开服务器的交流电、等半分钟左右再上电,让 BMC 从待机电源重新启动。这是 BMC 独立供电带来的副作用:主机重启不会重启 BMC。 - 管理口不亮灯:检查 BIOS 或 BMC 设置里的网口模式是专用还是共享,很多“BMC 连不上”是网线插在了专用口而设置却是共享模式。
- 忘记密码:在操作系统里用带内 ipmitool 重置,不需要旧密码;或者用厂商工具(戴尔 racadm、慧与 hponcfg)。
- 时间不对:SEL 日志时间戳依赖 BMC 时钟,用
ipmitool sel time set或在 Web 界面里配置 NTP。 - 固件太旧:BMC 固件有过多次公开的安全漏洞,而 BMC 拥有整台服务器的控制权,上架前先升级到厂商当前版本,之后定期检查。
安全上的原则和 IPMI 一样:管理口不上公网、改掉默认密码、只允许管理系统和跳板机访问。这些在 IPMI 是什么 里有更完整的说明。
在管理系统里 BMC 处在什么位置
对于机房里成百上千台不同品牌的服务器,BMC 是管理系统伸进每台机器内部的手。Toplink DCIM 的做法是:为服务器录入 BMC 的地址、用户名和密码,之后远程开关机、设置启动项、挂载 ISO、打开 VNC 控制台都在网页完成,远程控制台针对 iDRAC、iLO、iBMC、超微、XClarity 等主流 BMC 做了适配(见 IPMI 远程管理);BMC 的地址段在 IP 地址管理 里标记为 IPMI 类型单独分配;硬件型号模板里记录该型号是否支持 IPMI 和控制台类型;BMC 无响应时可以在后台远程重置,客户也能在自助端自己重置 BMC。
常见问题
BMC 和 BIOS 有什么区别?
BIOS(或 UEFI)是主机 CPU 开机时运行的固件,负责初始化硬件并引导操作系统,主机关机它就不运行;BMC 是另一颗芯片上的独立系统,主机关机时仍在运行,可以远程开机、看 BIOS 画面,部分机型还能带外更新 BIOS。
普通台式机或工作站有 BMC 吗?
消费级主板一般没有。少数工作站主板和服务器级主板带 BMC;一些商用台式机用 Intel AMT 之类的技术提供类似的远程管理,但那不是 BMC。
BMC 的默认账号密码在哪里找?
先看机身或拉手上的标签:近年出厂的服务器多数使用随机初始密码并印在标签上;旧机型多用厂商统一的默认账号,具体以厂商文档为准。无论哪种,接入管理网之前都应改掉。
BMC 固件怎么升级?
通过厂商 Web 界面上传固件包,或者用 Redfish、厂商命令行工具推送;部分厂商支持从操作系统内更新。升级过程中不要断电,升级后 BMC 自行重启,一般不影响主机运行,具体步骤以厂商文档为准。