第一章:IPMI规范
IPMI接口规范是1998年由Intel、HP、NEC、DELL等公司牵头联合发布的一个工业接口标准,其提出的背景主要有三个:
- 在上世纪90年代,硬件供应商都采用自己独立的管理接口和协议,不同厂商的设备无法使用同一套方案进行管理,造成了高昂的管理与运维成本;
- 随着计算机系统规模和复杂度越来越高,大部分的机器开始集中存放在特定的机房环境,远程管理需求变得越来越重要,所以需要定义一套标准的远程管理接口来随时监视硬件设备的运行状态、控制硬件开关机以及执行系统诊断等动作;
- 在传统的计算机系统中,系统管理主要依赖于操作系统的管理接口,但是当系统发生故障或者无法启动的时候,操作系统就无法提供有效的系统管理功能了;在一些对于稳定性很高的硬件设备上,在操作系统不可用的情况下,仍然可以管理也是必选强需求。
在这样的背景下,一个统一的、标准化的软硬件接口规范应运而生。IPMI规范的管理架构如下图所示,其主要关切和定义的内容集中在软件和硬件的接口上。
在IPMI接口定义中,最底层有一个微处理器芯片(Micro Controller),因为它主要的管理范围是在服务器内部并且通常都长在主板上,所以我们称之为基板管理控制器(Baseboard Management Controller),也就是BMC。BMC芯片可以提供很多硬件上的接口能力,比如GPIO、UART、I2C、SPI、LPC等。IPMI中规定了下面四类主要的硬件接口:
1 |
基于以太网的LAN interface |
传输层协议规定使用RMCP或者RMCP+ |
2 |
基于LPC或者eSPI物理接口的System Interface |
传输层协议使用KCS |
3 |
基于I2C总线的IPMB和ICMB接口 |
使用IPMB和ICMB自定义消息格式 |
4 |
基于UART的Serial/Modem interface |
可使用Basic Mode、PPP Mode或者Termial Mode三种消息传输模式(目前已很少被使用) |
在IPMI软件接口部分,因为有基于带内的KCS以及基于带外的RMCP/RMCP+,可以让操作系统内的系统管理软件或者远程的管理工具(如IPMITOOL/IPMIUTIL等)对服务器进行IPMI层面的沟通和管理。
第二章:BMC常见功能
BMC会负责服务器中的散热控制与管理,比如通过监控到的服务器的温度情况来控制风扇的转速,以保证服务器的散热安全。用户也可以通过BMC的SOL、KVM等功能直接查看或进入服务器操作环境,进行远程监控和操作。另外常见的BMC方案也会提供基于WEB的用户界面,网页上则会整合更多的内容,比如:显示服务器配置、出厂时间和组件信息;更新服务器内的各种固件(如BIOS、BMC、CPLD、FPGA)等功能。其它常见功能列表如下:
第三章:BMC常见接口协议
在BMC方案中除了IPMI规范外,通常还会支持下面这些接口协议,比如:
- 满足RESTFUL要求的Redfish网络接口;
- 传统且历史悠久的SNMP,简单网络管理协议,SNMP TRAP用于主动上报信息,SNMP Server用于被动提供服务器整体信息,可被查询和遍历;
- DMTF之前力推过一段时间,但是最终没有成为主流标准的SMASH,它的优势是基于WS-MAN、CIM等成熟的管理接口方案,但是弱点是可扩展性以及使用便利性较弱;
- 最近较热的MCTP 管理组件传输协议(Management Component Transport Protocol),它主要应用于设备之间的通信和控制,MCTP协议可以实现设备的自动发现、配置、监控和故障处理等功能,基于成熟的PCIe、SMBus等介质协议可以让消息通信高效和可靠;
- WEB GUI、KVM以及虚拟媒体VM等功能接口,这三项功能并没有事实上的行业统一实现标准,但是这几项功能却早就是现代BMC方案中的”必备“模块。
参考文献:
- IPMI Specification
- https://www.intel.cn/content/www/cn/zh/products/docs/servers/ipmi/ipmi-second-gen-interface-spec-v2-rev1-1.html
- DMTF Standards
- https://www.dmtf.org/standards/