第一章:前言
本文将在《Sensor Data Record(SDR)概述》之后,进一步探讨此前未能全面展开的、使用频率相对较低的SDR类型,如Type 03h、08h、09h、10h、11h、12h、13h、14h、C0h等。这些SDR在功能和应用场景上各具特色,在功能上也各有侧重。
43.1 |
SDR Type 01h |
Full Sensor Record |
43.2 |
SDR Type 02h |
Compact Sensor Record |
43.3 |
SDR Type 03h |
Event-Only Record |
43.4 |
SDR Type 08h |
Entity Association Record |
43.5 |
SDR Type 09h |
Device-relative Entity Association Record |
43.6 |
SDR Type 0Ah:0Fh |
Reserved Records |
43.7 |
SDR Type 10h |
Generic Device Locator Record |
43.8 |
SDR Type 11h |
FRU Device Locator Record |
43.9 |
SDR Type 12h |
Management Controller Device Locator Record |
43.10 |
SDR Type 13h |
Management Controller Confirmation Record |
43.11 |
SDR Type 14h |
BMC Message Channel Info Record |
43.12 |
SDR Type C0h |
OEM Record |
第二章:SDR Type 03h - Event-Only Record
SDR Type 03h - Event-Only Record 的最大长度为34字节,我们注意到它比SDR Type 02h, Compact Sensor Record的最大长度48字节还要少14个字节,这样的设定从侧面表明03h类型的SDR只能描述更为“简化”的传感器能力,它具有如下的几个特点:
- 通常用于描述BMC Firmware无法控制其是否产生事件日志的Sensor,比如用于记录内存错误的MEM_Status Sensor,内存的CE/UE等错误事件日志的发送主动权在BIOS而不是BMC;
- 可用于描述物理世界实际存在的传感器设备,也可以描述逻辑传感器,但这些传感器有一个共同的特点是无法提供任何种类的传感器读值(Sensor Reading);
- 如果不考虑IPMI工具无法解析Sensor Name的缺陷,只产生事件日志的Sensor并不一定需要配置03h 类型的SDR,暨03h type SDR是非必需的。
第三章:SDR Type 08h & 09h - Entity Association
SDR Type 08h和09h这两种类型的SDR是用于表示实体之间的包含关系的。举例来说:一个电源模组(Power Unit)通常由两个或更多电源单体(Power Supply)组成,这种情况下电源模组(Power Unit)会被称为“容器实体”(Container Entity),而单个电源(Power Supply)就像是组成大蛋糕的独立小块,被称为“实例”(Entity Instance),这两种类型的SDR将会给电源模组以及电源单体分别定义相同的Entity ID以及不同的Instance ID。这样系统管理软件(SMS)便可以通过SDR来搞明白逻辑化的Sensor与实际物理部件的对应关系。详细的Entity ID以及Instance ID的定义可以在IPMI Spec V2.0 - 43.14 Entity IDs章节中查询,笔者就不做冗余展开。在实际的IPMI运维和使用过程中Entity ID以及Instance ID也会经常出现,例如在某传统服务器平台上ipmitool sdr elist命令返回示意中也包含了这部分的实体关系信息:
第四章:SDR Type 10h~14h + C0h
余下的几个SDR Type我们用表格来做一个用法说明:
类型 |
SDR 名称 |
SDR 用法 |
10h |
Generic Device Locator Record |
用于描述在IPMB总线或者BMC其它私有总线上的“非IPMI智能设备”的位置和类型,详见IPMI Spec V2.0 -Table 43-12, IPMB/I2C Device Type Codes 。 |
11h |
FRU Device Locator Record |
用于描述定位于IPMB 总线、私有总线或者BMC上的FRU的位置和类型,可以说明FRU是物理世界实际存在的设备还是仅仅是一个虚拟出来的逻辑设备。 |
12h |
Management Controller Device Locator Record |
用于描述在IPMB总线以及其它内部总线上包括BMC在内的所有管理控制器(Management Controllers)的能力(Device Capabilities)和初始化信息(Global Initialization)。 |
13h |
Management Controller Confirmation Record |
用于描述管理控制器的各项信息,主要内容来自于Get Device ID命令中的内容,主要给外部工具来使用。 |
14h |
BMC Message Channel Info Record |
用于描述BMC消息通道的分配和协议类型。对于IPMI v1.5之后的设备而言,该SDR已被弃用,并使用Get Channel Info command(IPMI Spec V2.0 - Chap 22.24)来代替。 |
C0h |
OEM Record |
最大64字节空间,定义遵循SDR标准三块的定义,具体内容可由用户自由定义。 |
第五章:小结及展望
Sensor Data Record(SDR)是服务器中常见且成熟的传感器描述方法,适用于所有兼容IPMI规范的服务器环境以及管理软件,它本身也是基板管理控制器固件(BMC Firmware)对传感器做硬件抽象的重要技术方法。但部分的SDR Type在BMC FLASH容量并没有那么捉襟见肘的今天已经很少用来使用(如Type 02h),甚至部分SDR 种类也已经由标准的IPMI命令代替了其功能(如Type 14h)。因此我们看到在最近比较热门的OpenBMC开源社区项目中,SDR功能的实现并没有成为该社区的主要目标之一,未来也大概率会有更多、更佳的“服务器管理能力查询方法”被发明和应用。