一篇读懂 BMC:服务器的带外管理与 Redfish

什么是带外管理

GPU 集群动辄几百上千台服务器,机器怎么坏、怎么巡检自愈,「GPU 集群故障工程」一篇讲过流程;本篇讲流程背后那根救命稻草——带外管理。设想一个常见场景:凌晨三点,一台训练节点失联,SSH 连不上,系统看起来死了。如果这台机器没有带外通道,唯一的办法是联系机房人肉重启,几个小时起步;如果它有,你可以在家里用一条命令远程把它开关机、看看传感器读数、甚至盯着它的 BIOS 画面重装系统。这条独立于主机操作系统的管理通道,就是带外管理——「带」指的是正常的业务网络与操作系统这条「带内」路径。

带外之所以成立,靠的是一块独立的小电脑:BMC(基板管理控制器)。它是焊在主板上的一颗独立芯片,有自己的处理器、内存与存储,跑着一个嵌入式 Linux,与主 CPU 之间只在约定的接口上交换管理信息。主机关机(只要还插着电)、操作系统崩溃、甚至主 CPU 死锁,BMC 都照常活着——这是它能当救命稻草的根本原因。

带外的能力边界也要说清楚,它不是万能保险:整机电源线被拔掉,BMC 一样没电;BMC 自己固件损坏或死机,主机反而失管——现代 BMC 普遍带固件双镜像与自动回滚(常识口径),坏了能自己滚回上一版;个别机型还留物理复位按钮或独立的 BMC 复位电路,作为最后的救援手段。理解「管理平面本身也是需要被管理的系统」,是带外运维成熟的第一步。

与现代机房的关系还有一层:整机柜交付、液冷等新形态把管理面进一步复杂化,机柜级的管理控制器、泵与阀门的监控也在往管理网段上挂——BMC 是这个体系的最小单元,但体系在变大。把单机 BMC 的原理吃透,往上理解机房级管理平台就顺理成章;反过来,机房平台的自动化能力再强,最终也要落到一台台 BMC 的接口上。

BMC 的硬件形态

一颗芯片,一张网卡,一路独立电

BMC 在物理上是三样东西的组合。第一是主板上的管理芯片,它通过总线连着整机各处的传感器(温度、风扇转速、电压、电源瓦数),连着前面板电源键与复位信号(所以它能替你按电源键),连着主机的 USB 与显卡信号(所以它能提供远程键盘鼠标与屏幕画面,即 KVM over IP)。第二是网络通道:多数服务器主板带一个独立的管理网口,插上管理网线就能直达 BMC;也有机型不带独立口,与管理流量共享业务网卡(通过 NC-SI 这类接口复用,属常识口径),但生产环境几乎都要求独立管理口——管理流量混进业务网络是事故温床。第三是独立电源域:只要服务器插着电源线,哪怕主机整体关机,BMC 都有电、有网、可管理。

机房布线时,这些管理口会汇聚到独立的管理交换机上,形成与业务网络物理隔离的管理网段。这个网段是数据中心的「后门走廊」:平时没人走,出事时全靠它。

GPU 服务器让 BMC 的辖区变得更繁忙:GPU 的在位检测、整机功耗封顶策略、供电与散热联动都在管理平面上——大功率 GPU 机器要按机柜供电预算给整机设功率上限,这个策略就配在 BMC 里;集群巡检工具也常从管理平面收 GPU 节点的带外健康数据。向上还有一层聚合:几百台机器的 BMC 信息由管理平台统一收集(开源生态里的 OpenBMC 项目把 BMC 系统本身开源化了,属常识口径),形成「单机 BMC 到机房管理平台」的两级结构。

管理网段的规划还有几条实操经验:管理交换机要做冗余——管理网自己单点故障,带外就成了摆设;地址规划固定化,BMC 地址与业务机位一一对应写进台账,「按机位查管理地址」是找人找机器最常用的路径;跳板机的访问记录也纳入审计,进过管理网的人与动作都要留痕。

两代管理协议:IPMI 与 Redfish

IPMI:二十年的事实标准与它的安全债

要让 BMC 可被远程指挥,得有协议。第一代事实标准是 IPMI(智能平台管理接口),上世纪九十年代末由 Intel 等厂商发起,此后统治服务器管理二十年。运维熟悉的 ipmitool 就是它的客户端:本地走系统接口,远程走网络接口,一条命令就能查电源状态、看传感器、执行开关机。示例感受一下口径:

ipmitool -I lanplus -H 10.0.10.12 -U admin -P '密码' power status
ipmitool -I lanplus -H 10.0.10.12 -U admin -P '密码' sensor list

IPMI 的功勋册上记着机房自动化的整个童年,但它的安全欠账也同样著名:出厂默认密码曾被各厂商玩出各种花样(弱密码字典表在安全圈流传多年);协议自带的远程加密选项历史上存在可被绕过的设计缺陷(著名的「空加密套件」问题,安全研究圈反复警示过);认证机制本身也被发现过可离线爆破的弱点。IPMI 的接口暴露在公网上,历来是入侵事故的高发地——挖矿与勒索团伙经由未防护 BMC 进入内网的公开案例并不少见。这些欠账直接催生了下一代标准。

顺手记一条本地用法:OS 里装上 ipmitool 后,可以走本地接口直接查本机传感器与电源状态,不经网络——远程排障时先本地后远程,先确认管理面通不通,是标准的排查顺序。各厂商还为自己的服务器配了带图形界面的管理面板(浏览器直接访问管理口),单台排障很方便,但批量操作还是要靠命令行与 API。

Redfish:现代数据中心的管理 API

第二代标准是 DMTF 主导的 Redfish:跑在 HTTPS 上的 REST 加 JSON 接口,把整台服务器建模成一棵资源树——系统、管理器、机箱、电源、传感器各是带标准地址的资源节点,客户端按路径取 JSON,还有一套通用的服务发现口径可以自动枚举资源结构。相比 IPMI 的二进制命令与多年积攒的历史包袱,Redfish 有三样现代化红利:接口语义化(一个地址一类资源,读改删符合 REST 直觉)、传输层就是标准 HTTPS(复用整套 TLS 生态)、模型可扩展(厂商私有功能挂在 OEM 扩展字段,不影响标准部分)。用 curl 就能操作,示例口径如下:

curl -k -u admin:'密码' https://10.0.10.12/redfish/v1/Systems/1

现状是新服务器两者并存:BMC 里 IPMI 兼容层还在,ipmitool 仍是脚本党的顺手工具;Redfish 承担更完整的现代管理(批量查询、固件盘点、配置下发),新平台建设应默认以 Redfish 为主、IPMI 为兼容兜底。

Redfish 的真正威力在批量操作。资源树是统一的:从服务根出发可以枚举出机器集合,再进到每台机器的系统、传感器、固件资源——于是「盘点几百台机器的固件版本」就是一个循环脚本:遍历机器列表,逐台请求固件资源,聚合结果出报表,几十行代码替代几百次人肉登录。规模化机房的管理平台,底层基本都是对这套资源树的批量读写。

常用操作清单

带外管理在实战中的高频操作,可以列成五件套。远程电源控制:开机、关机、硬重启、长按强制断电,故障恢复的第一板斧——大量「失联」只是系统挂死,硬重启十秒解决。传感器与健康:拉取温度、风扇、电压、电源瓦数读数,以及事件日志(SEL,BMC 自己记录的硬件事件流水);系统进不去时,这里是判断「软件死了还是硬件烧了」的第一现场。KVM 与虚拟媒体:KVM over IP 把主机的键盘、鼠标、屏幕画面经网络转发给你——能看到 BIOS 自检画面,意味着连操作系统都没装也能操作;虚拟媒体则把本地的 ISO 镜像「插」成远程主机的虚拟光驱,装机与救援由此自动化。固件管理:BMC 自身、BIOS、网卡与盘固件的版本查询与带外升级,规模化机房靠它做固件合规巡检。资产盘点:序列号、内存条插在哪条槽、哪块盘在哪个背板位,坏件定位与资产台账的原始来源。这五件事覆盖了服务器生命周期里绝大多数「人到不了现场」的时刻。

几件套里再补几个实操细节。电源控制有一项常被忽略的策略配置:市电恢复后的自动开机行为——机房整柜断电再来电,机器是保持关机还是自动拉起,决定了故障恢复要人肉多少台;生产环境通常配成「恢复供电自动开机」。虚拟媒体的镜像走网络源挂载,装机速度受机房带宽约束,镜像放本地源会快很多。固件升级有兼容性讲究:BMC 与 BIOS、主板与机型的固件版本存在匹配矩阵,跨版本升级要按厂商给的顺序来,乱序升级把 BMC 刷死并不罕见——刷之前查矩阵、留回滚,是两条铁律。

操作层面还有一条纪律:对生产机器的带外操作要走变更流程——尤其是电源与固件操作。「顺手重启一下试试」在共享集群里可能打断别人的训练作业,带外权限大,用它的时候更要有流程感;紧急情况下先动手后补单可以,但要补,不能免。

安全注意事项

BMC 的强大与它的危险是一体两面:它看得到主机的一切,权限又独立于主机——拿下 BMC 等于拿下整台服务器,而且是固件级的拿下,重装系统都未必能清除持久化后门。安全红线条条都要当真。其一,默认密码开机即改,账号纳管,禁用或严控 IPMI 老协议里已知危险的加密选项。其二,管理网段物理隔离,防火墙上只允许指定跳板机访问 BMC,永远不要把管理口或管理网段暴露到公网——这一条是无数公开事故换来的铁律。其三,固件保持更新:BMC 自己也是一台跑着 Linux 的计算机,历年同样有漏洞公告,厂商固件更新要纳入例行运维。其四,最小权限与审计:不同角色给不同的 Redfish 权限(只读巡检与全权管理分开),登录与电源操作的审计日志接入统一的日志平台,谁在什么时候远程动过哪台机器,要能查出来。其五,供应链视角:采购时了解 BMC 芯片来源与厂商的安全响应记录——BMC 是近年来供应链攻击讨论里的常客,这不是杞人忧天,而是现实威胁模型的一部分。

再补两条日常纪律:其一,一人一账号,别共享管理员凭据——共享账号让审计彻底失效,「谁动过这台机器」答不出来,等于没有审计;其二,管理口的证书要治理:BMC 默认用自签证书,浏览器天天报警,正规做法是统一签发证书并配置到期巡检,证书过期导致管理面「看起来坏了」是最冤的一种故障。

定期做带外演练同样值得:挑业务低峰,随机抽几台机器走一遍「远程关机、开机、拉传感器、挂镜像」的完整流程,确认带外通道真的可用。管理面常年没人动,真要用时才发现账号被锁、证书过期、固件损坏,是最常见的翻车剧本——演练就是把翻车提前到没有代价的时刻。

小结

BMC 是服务器里那台「管电脑的电脑」:独立芯片、独立网口、独立电源域,构成了主机死活都在线的带外管理平面。协议层面从 IPMI 到 Redfish 完成了现代化换代——IPMI 功勋与欠账同样深厚,Redfish 用 REST 加 JSON 把服务器管理带进了标准 API 时代;实战层面远程电源、传感器、KVM 加虚拟媒体、固件与资产盘点五件套,覆盖了机房里绝大多数人够不着的时刻;安全层面,默认密码、公网暴露、固件陈旧三大红线,条条都有公开事故背书。

理解 BMC 对 AI 基础设施团队还有一层特殊意义:GPU 服务器的管理平面比普通服务器更繁忙——GPU 的带外健康数据、固件版本、整机功耗策略都在 BMC 的辖区里,集群越大,BMC 越是从「出事才摸的救命稻草」变成「自动化运维的常规 API」。把管理网段搭对、把 Redfish 用起来、把安全红线守住,这台小电脑会在某个凌晨三点的故障里,替你省下一次去机房的车票。

← 返回资讯列表

读者留言

COMMENTS 暂无
仅本站原创文章开放留言 · 请勿留下手机号、邮箱等个人信息

还没有留言,来说第一句?