IPMI 支持¶
https://blueprints.launchpad.net/ceilometer/+spec/ipmi-support
在 ceilometer 中添加 IPMI 功能,以便能够通过具备 IPMI 功能的服务器获取电源/热数据。这些数据可以导出到其他 openstack 组件用于其他用途,例如策略控制。
问题描述¶
智能平台管理接口 (IPMI) 是一种标准化的计算机系统接口,系统管理员使用它来对计算机系统进行带外管理和监控其运行。在 ceilometer 中启用 IPMI 允许云运营商监控服务器的电源和热行为,并根据数据中心的实时电源/热状态制定合理的运行或策略。
通过 IPMI 支持,这些服务器的电源和热信息可用于提高整体数据中心效率并最大化整体数据中心利用率。数据中心管理员可以在确信机架电源预算不会超支的情况下最大化机架密度。在发生电源或热紧急情况时,我们可以限制服务器功耗并通过预定义的策略向管理员发送警报。
目前,Ironic 项目正在进行工作,以在消息总线上发出包含 IPMI 传感器数据的通知,以便 Ceilometer 可以处理这些通知以进行高级别的用法。但是对于不由 Ironic 管理的节点,IPMI 数据仍然缺失。此规范通过在 Ceilometer 中添加 IPMI 支持来消除对 Ironic 的依赖。
提议的变更¶
添加一个新的 IPMI 代理,该代理以周期性的方式通过 IPMI 协议获取电源和热数据,并通过 pipeline 发布这些数据。IPMI 代理驻留在每个具备 IPMI 功能的节点上,并在部署中进行配置。
这样,数据就可以在没有网络凭据的情况下本地获取。此外,pipeline 文件可以控制代理轮询周期。
使指标与 Ironic 中的 IPMI 支持保持一致,这样无论底层方法如何(每个节点直接发出样本的代理,或 Ceilometer 通知代理消耗 Ironic 发出的通知),我们都可以获得相同的 IPMI 数据。如果两者都可用,用户只需部署一个即可。
名称
类型
单位
来源
hardware.ipmi.fan
g
RPM
p
hardware.ipmi.temperature
g
C
p
hardware.ipmi.current
g
W
p
hardware.ipmi.voltage
g
V
p
g = gauge(计量表), n = notification(通知), p = pollster(轮询器)
IPMI 是一种通用协议,每个供应商可能会为自己的硬件添加特定的指标。因此,在实现中可能还有更多供应商特定的指标。
此规范的目标是提供:1) 存在于大多数供应商的标准的指标 2) 启用 IPMI 的基础设施,即发送 IPMI 命令的基本工作单元。
它可以包括一个简单的供应商特定实现作为示例,以便其他供应商可以轻松地完成自己的工作。
替代方案¶
与其为每个节点部署 IPMI 代理,不如让 Ceilometer 本身托管一个代理来管理一批节点。它以周期性的方式通过网络从每个节点轮询 IPMI 数据。Ceilometer 中的 SNMP 支持和 Ironic 中的 IPMI 采用类似的方法。
这种方法避免在每个节点中部署代理,但它会给 Ceilometer 本身带来更多的工作负载,从而导致可扩展性差。此外,通过网络进行的 IPMI 需要凭据管理。
数据模型影响¶
无。
REST API 影响¶
无
安全影响¶
无。
Pipeline 影响¶
无。
其他最终用户影响¶
应通过 Horizon 计量仪表板公开电源/热数据。
性能/可扩展性影响¶
默认情况下,IPMI 代理未启用,直到运营商在 IPMI 具备节点的配置文件中显式启用它。因此,默认情况下不会产生性能影响。
其他部署影响¶
需要添加 IPMI 配置选项(默认关闭)
需要将一个 IPMI 代理添加到每个节点并部署,以及 ceilometer 配置,例如计量密钥
如果 Ironic 和 Ceilometer 都可用于 IPMI 数据,用户只需部署一个即可
开发者影响¶
无。
实现¶
负责人¶
- 主要负责人
edwin-zhai
- 其他贡献者
lianhao-lu shane-wang
工作项¶
实现一个用于数据获取的 IPMI 代理,部署在每个具备 IPMI 功能的节点上。
添加单元测试覆盖
更新相关文档
未来生命周期¶
一旦此功能启用,需要在接下来的 2 个版本中进行测试和错误修复,以避免回归
依赖项¶
此功能依赖于具备 IPMI 功能的服务器
测试¶
由于只需要测试数据获取/导出,因此单元测试就足够了。
文档影响¶
添加的指标需要在 测量部分中记录。
需要记录新的部署配置。
如果节点由 Ironic 管理,则不应部署 IPMI 代理,这需要在文档中说明。
参考资料¶
http://www.intel.com/content/www/us/en/servers/ipmi/ipmi-home.html