BMC(Baseboard Management Controller)即基板管理控制器,是IPMI(Intelligent Platform Management Interface)协议即智能平台管理接口所定义的服务器管理体系中的核心组件。
1. 概述
1.1 IMPI简介
维基百科中IPMI定义如下:
智能平台管理接口(IPMI)是一套为自主计算机子系统定义的计算机接口规范,用于提供独立于主机系统的CPU,固件(BIOS或UEFI)和操作系统等软硬件的管理和监视功能。 IPMI定义了一套系统管理员接口,用于计算机系统的带外管理和管理员操作监视。
简言之,IPMI提供了一套基标准接口,通过嵌入到服务器主板上的BMC、相关传感器及相应固件,提供独立于服务器CPU、固件、和操作系统等软硬件的服务器检测管理功能,既不需要服务器操作系统支持,也不占用服务器操作系统资源。IPMI接口提供的服务包括服务器物理健康状态检测,服务器软硬件信息和运行状态查询,开关机,察看和修改BIOS配置,远程安装操作系统等。被监控的主机可以断电,但是必须保持电源和局域网连接。
IMPI接口基于命令/响应机制,通过网络功能码将机箱、传感器、固件、存储、应用等主机组件进行分类和传递消息,通过软件ID对BIOS、系统管理软件、远程终端等传感器管理软件进行分类,在网络、串行/Moderm接口、IPMB(I2C)、KCS、SMIC、SMBus等不同接口上传递使统一格式的IPMI消息。
IPMI1.5允许IPMI系统通过串口,BMC专用的带外网口,或者与主机共享的带内网口(NC-SI)与远程管理系统通讯。
IPMI2.0增加了SOL(serial over LAN)、群组管理系统、增强身份认证(RAKP+、SHA-1等)、基于OpenSSL/RCMP+的安全增强网络接口、固件防火墙和VLAN支持等。其中,SOL支持将BIOS输出和操作系统终端重定向到与BMC相连的串口,进而通过IPMI与远程系统管理软件连接。并且IPMI2.0兼容系统通常还提供KVM over IP(基于IP的远程键盘鼠标显示器连接)、远程桌面和页面服务器等功能,虽然这些功能并不属于IPMI协议的一部分。
IMPI规范主体架构如下:
IPMI主体架构
此外,为了提供更多的功能和更好的安全性,DMTF(分布式管理任务组)制定了基于浏览器RESTful插件和JSON数据格式的的安全可扩展数据中心管理标准Redfish API。英特尔也实现了IPMI 2.0的大数据中心扩展DCMI(Data Center Manageability Interface),基于IPMI接口但是最小化可选接口数量,并包括功率上限控制等其他不同。
1.2 BMC简介
维基百科中BMC定义如下:
基板管理控制器(BMC)提供IPMI架构中的智能特性。它是嵌入在计算机(通常是服务器)主板上的专用微控制器。 BMC负责管理系统管理软件和平台硬件之间的接口。
维基百科BMC框图
根据IPMI规范,BMC需要满足如下条件:
实现IMPI必选命令;
提供任一BMC访问接口;
提供标准化的看门狗定时器接口和看门狗内部事件产生功能;
提供可被其他主机组件使用的事件接收功能;
提供可通过相应的IPMI必选命令访问的SDR(传感器数据记录)仓库、SEL(系统事件记录)和FRU(现场可替换单元)目录等功能;
提供初始化代理功能以初始化BMC和其他管理控制器的传感器和事件产生组件。
简而言之,BMC就是嵌入到服务器主板上的一块独立处理器,通过IPMB、LPC(low-pin-count-interface)、SMBus等各种接口收集与主机内部的其他软硬件组件进行通信,并通过网络、串行/Moderm、PCI等接口传向本地主机/远程服务器提供查询和控制功能。
典型的BMC系统如下所示