简介:智能平台管理界面(IPMI,Intelligent Platform Management Interface)是管理基于 Intel® 结构的企业系统中所使用的外围设备采用的一种工业标准,用户可以利用IPMI监视服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。该标准由美国英特尔、惠普(Hewlett-Packard)、NEC、美国戴尔电脑和SuperMicro等公司制定。新的版本是IPMI2.0(http://www.intel.com/design/servers/ipmi/)。
新版本的IPMI可以通过串口、Modem以及Lan等远程环境管理服务器系统(包括远程开关机),同时在系统发生错误时能自动发出警告。要对服务器进行IPMI管理,需要被监控的系统具有支持IPMI的硬件设备。如果服务器具有底板管理控制器 (Baseboard Management Controller ,BMC),并且支持IPMI规范,则通过BMC与主机板上的不同传感器通信来监视系统是否有严重事件,并在某些参数超出其预置阈值时发出警报和日志事件。BMC具有以下功能:
● 通过系统的串行端口进行访问
● 故障日志记录和 SNMP 警报发送
● 访问系统事件日志 (System Event Log ,SEL) 和传感器状况
● 控制包括开机和关机
● 独立于系统电源或工作状态的支持
● 用于系统设置、基于文本公用程序和操作系统控制台的文本控制台重定向
● 使用 LAN访问 Red Hat® Enterprise Linux 串行控制台界面
简单来讲,IPMI是Intelligent Platform Management Interface
是一种开放标准的硬件管理系统接口,可以在服务器、计算机等设备中实现远程管理和监测。通过IPMI,系统管理员可以在不开机的情况下对硬件进行故障排查、电源控制、BIOS 配置管理、日志记录等操作。这样可以提高管理效率,并且在紧急情况下快速响应的能力。
OpenIPMI
OpenIPMI 是一个开源项目,旨在提供用于 IPMI 的开放源代码实现。它包括一组库和工具,允许访问基于 IPMI 的 BMC(Baseboard Management Controller)功能。OpenIPMI 提供了用于与 IPMI 设备通信的编程接口和命令行工具。
centos下可以直接使用yum安装的方式进行
bash
yum -y install OpenIPMI
或者使用二进制离线安装
官方链接:https://sourceforge.net/projects/openipmi/
bash
wget https://sourceforge.net/projects/openipmi/files/latest/download/OpenIPMI-2.0.34.tar.gz
tar -zxf OpenIPMI-2.0.34.tar.gz
./configure && make && make install
装完OpenIPMI后,启用IPMI服务 /etc/rc.d/init.d/ipmi start 一般如果内核支持的话,能正常启动
ipmitool
ipmitool 是一个命令行实用程序,用于与支持 IPMI 的硬件设备进行通信。它允许用户执行各种 IPMI 相关操作,如读取传感器数据、控制系统电源、重置系统等。ipmitool 是一个独立的工具,而不是库或框架。
centos下可以直接使用yum安装的方式进行
bash
yum -y install ipmitool
二进制安装的方式有待探索,日后慢慢更新
区分
OpenIPMI
和 ipmitool
是两个不同的工具,但它们都涉及管理基于 IPMI 标准的服务器硬件。
OpenIPMI 是一个开源项目,提供了一整套 IPMI 功能的库和工具,可以用于编程接口和脚本化任务。它提供了更灵活的方式来与 IPMI 兼容硬件进行交互。
ipmitool 是一个命令行实用程序,用于在命令行界面下执行 IPMI 相关操作。它更适合于一次性或交互式任务,允许用户直接输入命令来执行特定的 IPMI 命令。
ipmi 操作
登录ipmi
bash
ipmitool -I lanplus -H "192.168.10.13" -U "root" -P "password"
打印当前 lan 信息
bash
ipmitool lan print 1
在系统内使用工具更改ipmi IP
bash
ipmitool lan set 1 ipsrc static #设置ID 1 为静态IP
ipmitool lan set 1 ipaddr 192.168.1.2 #设置IPMI IP地址
ipmitool lan set 1 netmask 255.255.0.0 #设置IPMI 掩码
ipmitool lan set 1 defgw ipaddr 192.168.1.1 #设置IPMI网关
查看用户信息
bash
ipmitool user list 1
修改id 2 的密码为 Password
bash
ipmitool user set password 2 <newPassword>
查看电源状态
bash
ipmitool chassis power status
关闭电源
bash
ipmitool chassis power off
开启电源
bash
ipmitool chassis power on
查看上次重启原因
bash
ipmitool chassis power restart_cause
重启
bash
ipmitool chassis power reset
列出服务器传感信息
bash
ipmitool sensor
IPMI取得硬件信息
bash
ipmitool fru print | grep '^FRU.*(ID 0)' -A10
IPMI风扇控制
首先要关闭风扇自动调速功能,否则我们手动设置的转速是不会生效的。最后的 0x00 表示关闭自动调速 0x01 表示开启自动调速。
bash
ipmitool -I lanplus -H 192.168.1.2 -U 'root' -P 'passwd' raw 0x30 0x30 0x01 0x00
关闭自动调速之后,我们就可以按照我们自己的意愿来调整转速了,我这边设置为10%
bash
ipmitool -I lanplus -H 192.168.1.2 -U 'root' -P 'passwd' raw 0x30 0x30 0x02 0xff 0x20
最后的 0x20 表示转速的百分比的十六进制,0x20 表示32%(大约 6600RPM) 最大 0x64
设置完成后我们可以通过iDRAC管理页面查看设置的结果。
或者执行以下代码块
bash
__fszs() {
#转换十进制为十六进制
hm=$(printf '%x' $1)
ipmitool raw 0x30 0x30 0x01 0x00 >/dev/null
ipmitool raw 0x30 0x30 0x02 0xff 0x$hm >/dev/null
}
__fszu 20