3. BMC与IPMI基础
在服务器远程管理与带外运维体系中,BMC(Baseboard Management Controller,基板管理控制器)是独立于主机CPU、BIOS和操作系统的核心控制单元。它像一台“服务器中的小服务器”,只要主板接入待机电源(通常为+5V Standby),BMC即可启动并对外提供管理能力。理解BMC的硬件组成、IPMI消息格式、传感器模型以及带外通信原理,是后续配置IPMI、Redfish、KVM和虚拟介质的基础。
一、BMC硬件组成
以Intel Xeon平台常见的服务器主板为例,BMC并不是单一芯片,而是由多个硬件模块协同构成:
- BMC主控芯片:常见为ASPEED AST2500/AST2600或Nuvoton等SoC,内部集成ARM处理器、内存控制器、显示控制器、USB控制器和网络控制器。
- 专用内存:BMC拥有独立于主机内存的DDR3/DDR4颗粒,用于存放固件、日志、传感器缓存和KVM帧缓冲。
- 管理网口:通常为RJ45专用口,也可通过NCSI与业务网口共享。该网口在主机断电但电源仍接市电时依然可用。
- SPI Flash:存放BMC固件、Bootloader和配置分区,支持双镜像冗余。
- 传感器与监控总线:通过I²C/SMBus连接温度、电压、电流、风扇、电源等传感器,通过PECI读取CPU温度,通过GPIO读取按键和前面板状态。
- 视频与虚拟介质接口:集成VGA控制器,将主机显示信号数字化后经网络传输;同时提供虚拟光驱、虚拟U盘和虚拟软驱通道。
- 电源管理接口:通过LPC/eSPI、SMLINK、PMBus等与PCH、VR控制器和电源模块通信,实现开关机、复位和功耗读取。
这些模块共同构成一个完整的带外管理子系统。主机操作系统即使崩溃、蓝屏或未安装系统,BMC仍可独立工作,这正是“带外”的本质。
二、IPMI消息格式
IPMI(Intelligent Platform Management Interface)定义了BMC与外部管理软件之间的标准通信协议。IPMI消息分为应用层消息和底层传输封装。以最常见的RMCP+(Remote Management Control Protocol Plus)为例,一条IPMI请求在网络上通常由以下层次组成:
以太网帧
└─ IP 头
└─ UDP 头(端口623)
└─ RMCP+ 头(含Session ID、Auth Type、Payload Type)
└─ IPMI Session Header
└─ IPMI Message(NetFn + Cmd + Data)
其中IPMI Message本身的结构为:
| 字段 | 长度 | 说明 |
|---|---|---|
| Responder/Requester LUN | 1字节 | 目标逻辑单元号 |
| NetFn | 6位 | 命令所属功能组,如Chassis、Sensor、App |
| Cmd | 1字节 | 具体命令,如0x01为Get Device ID |
| Data | N字节 | 请求或响应参数 |
| Checksum | 2字节 | 头部校验和与数据校验和 |
例如,使用ipmitool -I lanplus -H 192.168.1.120 -U admin -P password raw 0x06 0x01,其中0x06为App NetFn,0x01为Get Device ID命令。BMC返回的响应中会包含设备ID、固件版本、IPMI版本和支持的功能位。理解NetFn与Cmd的对应关系,是排查IPMI命令失败的第一步。
三、传感器模型
IPMI传感器模型采用“传感器—阈值—事件”三层结构。每个传感器由传感器编号、传感器类型、读数、阈值和事件状态组成。BMC周期性轮询传感器,将原始ADC值转换为带单位的读数,并与预设阈值比较。
以CPU温度传感器为例,典型阈值配置如下:
| 阈值类型 | 示例值 | 触发动作 |
|---|---|---|
| Lower Non-Critical | 5°C | 记录事件 |
| Lower Critical | 0°C | 记录事件并告警 |
| Upper Non-Critical | 85°C | 记录事件,提升风扇转速 |
| Upper Critical | 95°C | 告警,可能触发降频 |
| Upper Non-Recoverable | 105°C | 紧急关机保护 |
传感器读数可通过ipmitool sensor list查看,事件则记录在SEL(System Event Log)中。带外运维中,SEL是判断故障时间线和根因的重要依据。
四、带外通信原理
带外通信的核心是“管理通道与业务通道分离”。BMC通过专用管理网口或NCSI共享网口接入管理网络,与主机业务网络逻辑隔离。即使主机操作系统网络协议栈未启动,BMC仍能响应IPMI over LAN、Redfish HTTPS和KVM over IP请求。
带外通信的典型数据路径为:管理终端 → 管理交换机 → BMC管理网口 → RMCP+/HTTPS服务 → IPMI命令解析 → 传感器/电源/虚拟介质执行 → 响应返回。整个过程不经过主机CPU和操作系统。
五、带外通信的实践要点
在实际运维中,配置BMC管理网口时通常需要设置静态IP或DHCP,并确保管理VLAN与业务VLAN隔离。以ipmitool为例,常用命令包括:
# 查看BMC网络配置
ipmitool -I lanplus -H 192.168.1.120 -U admin -P password lan print 1
# 查看传感器读数
ipmitool -I lanplus -H 192.168.1.120 -U admin -P password sensor list
# 查看系统事件日志
ipmitool -I lanplus -H 192.168.1.120 -U admin -P password sel list
# 远程开关机
ipmitool -I lanplus -H 192.168.1.120 -U admin -P password chassis power on
判断带外通信是否正常,可以观察三个层面:管理网口Link灯是否点亮、ping管理IP是否可达、ipmitool mc info是否返回BMC固件版本。若ping通但IPMI命令超时,通常需要检查RMCP+端口623是否被防火墙拦截,或BMC会话数是否已满。
ipmitool mc info确认固件版本,并参考厂商发布说明升级到稳定版本。