IPMI Introuduce

简介:         IPMI(Intelligent Platform Management Interface)是一种带外(out-of-band)管理接口,IPMI的核心是一个BMC(Baseboard Manager Controller),其并不依赖于服务器的处理器、BIOS或操作系统来工作,可谓非常地独立,是一个单独在系统内运行的无代理管理子系统,只要

        IPMI(Intelligent Platform Management Interface)是一种带外(out-of-band)管理接口,IPMI的核心是一个BMC(Baseboard Manager Controller),其并不依赖于服务器的处理器、BIOS或操作系统来工作,可谓非常地独立,是一个单独在系统内运行的无代理管理子系统,只要有BMC与IPMI固件其便可开始工作,而BMC通常是一个安装在服务器主板上的独立的板卡,也有服务器主板提供对IPMI支持的。(IPMI目前已不维护,逐渐由RedFish替代, RedFish目前支持IPMI2.0和PMCI)。

  • IPMI的硬件连接

下图为简要的连接方案

4个主要部分为remote,BMC,SERVER,pcie card。其中BMC通过IPMB(I2C硬件接口)与PCIE板卡连接,软件上BMC OS通过ipmi driver与pcie card内部的firmware通信,主要传输控制流。PCIE card与SERVER保持原有连接, 传输数据流。BMC通过LPC(Low Pin Count Bus)连接SERVER可以对cpu进行管理,属于System interface。关于remote 部分,是指其他server远程访问BMC,主要通过LAN通信,中间经过KVM over IP(Keyboard Video Mouse)或者SOL (Serial Over LAN)转换器转换成网络通信方式。

实物图

下图为IPMI 2.0 spec中的连接结构原图

  • IPMI的系统结构

如下图,其中Remote Access负责接受远端Server的控制协议,Local Access负责本地控制协议,其中system interface包括KCS(Keyboard Controller  Style),BT(block transfer)等负责与system cpu通信,mgmt Busses主要负责device 比如pcie card相关的通信。

具体参考 

https://www.intel.cn/content/www/cn/zh/products/docs/servers/ipmi/ipmi-second-gen-interface-spec-v2-rev1-1.html

software

  • ipmitools(user mode tools):

负责调用ipmi driver进行管理,或者通过网络进行控制,即可以再remote端使用ipmitools经过BMC里通过kipmi0进程(属于ipmitools一部分)进行数据转发。

ipmitools控制命令比如

温度查看

查看风扇

  • linux ipmi driver:

位于driver/char/ipmi,包括以下几个部分

ipmi_msghandler - This is the central piece of software for the IPMI system. It handles all messages, message timing, and responses. The IPMI users tie into this, and the IPMI physical interfaces (called System Management Interfaces, or SMIs) also tie in here. This provides the kernelland interface for IPMI, but does not provide an interface for use by application processes.

ipmi_devintf - This provides a userland IOCTL interface for the IPMI driver, each open file for this device ties in to the message handler as an IPMI user.

ipmi_si - A driver for various system interfaces. This supports KCS, SMIC, and BT interfaces. Unless you have an SMBus interface or your own custom interface, you probably need to use this.

ipmi_ssif - A driver for accessing BMCs on the SMBus. It uses the I2C kernel driver’s SMBus interfaces to send and receive IPMI messages over the SMBus.

ipmi_powernv - A driver for access BMCs on POWERNV systems.

ipmi_watchdog - IPMI requires systems to have a very capable watchdog timer. This driver implements the standard Linux watchdog timer interface on top of the IPMI message handler.

ipmi_poweroff - Some systems support the ability to be turned off via IPMI commands.

bt-bmc - This is not part of the main driver, but instead a driver for accessing a BMC-side interface of a BT interface. It is used on BMCs running Linux to provide an interface to the host.

  • pcie card firmware

firmware负责从IPMB(i2c)接收到command并进行处理,返回结果。

x86->pcie card的调用:

ipmi sensor path:

|++++bmc  os+++++++|                              |++PCIE card firmware++|

application->/driver/ipmi->IPMB(i2c hardware)->firmware->method

IPMI VS Redfish

Redfish是被用于取代IPMI的新方案。Redfish目前支持IPMI2.0以及PMCI

PMCI(Platform Management Components Intercommunication

  • PMCI连接结构

如下图,中间是BMC,Redfish是运行在BMC上的网络服务。

  • PMCI系统结构

具体参考https://www.dmtf.org/sites/default/files/DSP2015_2.0.0%20%20%E8%AF%91%E6%96%87.pdf

相关文章
|
Prometheus 监控 异构计算
阿里云容器服务GPU监控2.0基础篇3:监控NVIDIA XID错误
本系列相关文章:阿里云容器服务GPU监控2.0基础篇1:基本功能使用阿里云容器服务GPU监控2.0基础篇2:监控NVLINK带宽阿里云容器服务GPU监控2.0基础篇3:监控NVIDIA XID错误阿里云容器服务GPU监控2.0进阶篇1:剖析(Profiling)GPU使用情况必备知识阿里云容器服务GPU监控2.0进阶篇2:学会剖析(Profiling)GPU使用情况本篇文章将向您介绍如何使用GPU
8962 0
阿里云容器服务GPU监控2.0基础篇3:监控NVIDIA XID错误
|
Linux
【开发/调试工具】【串口工具】不同串口软件如何生成带时间戳的日志
【开发/调试工具】【串口工具】不同串口软件如何生成带时间戳的日志
3547 0
【开发/调试工具】【串口工具】不同串口软件如何生成带时间戳的日志
|
3月前
|
存储 机器学习/深度学习 人工智能
大模型应用:通俗理解大模型量化:从概念到实践的原理流程完整拆解.38
大模型量化是通过降低参数精度(如FP32→INT8),在几乎不损精度的前提下,显著压缩模型体积、提升推理速度、降低硬件门槛与功耗的关键技术,使大模型得以落地手机、PC等端侧设备。
539 16
|
5月前
|
人工智能 自然语言处理 数据可视化
数字展厅升级重点推荐方案:AI数字人+智慧大屏实现低成本高互动
传统展厅升级痛点多?AI数字人+智慧大屏方案来了!无需更换硬件,低成本快速部署,支持智能问答、多语种讲解、后台一键更新内容。适配政务、企业、文旅等多场景,提升互动体验与运营效率,助力展厅迈向“可对话、会思考”的智慧新时代。
452 0
|
机器学习/深度学习 数据采集 算法
【机器学习】基于机器学习的分类算法对比实验
【机器学习】基于机器学习的分类算法对比实验
836 6
【机器学习】基于机器学习的分类算法对比实验
|
机器学习/深度学习 存储 数据挖掘
Python图像处理实用指南:PIL库的多样化应用
本文介绍Python中PIL库在图像处理中的多样化应用,涵盖裁剪、调整大小、旋转、模糊、锐化、亮度和对比度调整、翻转、压缩及添加滤镜等操作。通过具体代码示例,展示如何轻松实现这些功能,帮助读者掌握高效图像处理技术,适用于图片美化、数据分析及机器学习等领域。
663 20
|
11月前
|
Java 物联网 数据处理
Java Solon v3.2.0 史上最强性能优化版本发布 并发能力提升 700% 内存占用节省 50%
Java Solon v3.2.0 是一款性能卓越的后端开发框架,新版本并发性能提升700%,内存占用节省50%。本文将从核心特性(如事件驱动模型与内存优化)、技术方案示例(Web应用搭建与数据库集成)到实际应用案例(电商平台与物联网平台)全面解析其优势与使用方法。通过简单代码示例和真实场景展示,帮助开发者快速掌握并应用于项目中,大幅提升系统性能与资源利用率。
298 6
Java Solon v3.2.0 史上最强性能优化版本发布 并发能力提升 700% 内存占用节省 50%
|
网络协议 安全 网络安全
OSPF的安全性考虑:全面解析与最佳实践
OSPF的安全性考虑:全面解析与最佳实践
495 0
|
运维 监控 Linux
自动化运维的魔法:如何用Python脚本简化日常任务
【9月更文挑战第13天】在数字化时代的浪潮中,自动化运维如同一股清流,为IT团队带来了效率和灵活性的双重提升。本文将深入探讨如何通过Python脚本实现日常运维任务的自动化,从而释放双手,让重复性工作变得轻松愉快。从环境搭建到实际案例分析,我们将一步步揭开自动化运维的神秘面纱,让你的运维之路更加顺畅。
|
JSON 数据格式
postman 实用教程(含带 token 访问需登录权限的接口、测试文件上传接口、测试文件下载接口)
postman 实用教程(含带 token 访问需登录权限的接口、测试文件上传接口、测试文件下载接口)
7723 0