服务器运维

BMC 是什么意思?服务器带外管理芯片详解

BMC 是什么意思?它是 Baseboard Management Controller(基板管理控制器)的缩写:焊在服务器主板上的一颗独立管理芯片,自带处理器、内存、固件和网口,只要电源线插着就一直运行。它在操作系统之外监控硬件、控制电源、提供远程画面;IPMI 和 Redfish 是和它对话的协议,iDRAC、iLO 是各厂商给它起的名字。

作者 顶联产品团队发布于 5 分钟阅读

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 自行重启,一般不影响主机运行,具体步骤以厂商文档为准。

想看看在你的机房里怎么用?

从一次产品演示开始,梳理你的业务链路。

查看价格
服务热线 400-112-2951

让我们聊聊你的 IDC 业务

扫码添加企业微信,预约产品演示或申请试用。

Toplink 企业微信二维码

长按保存或使用企业微信 / 微信扫描

也可致电
400-112-2951
Telegram
@TopLink88