服务器IPMI管理操作

简介:智能平台管理界面(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

二进制安装的方式有待探索,日后慢慢更新

区分

OpenIPMIipmitool 是两个不同的工具,但它们都涉及管理基于 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
相关推荐
liuyao_xianhui17 分钟前
Linux_基本指令1
linux·运维·服务器
liliangcsdn2 小时前
LLM时代基于unstructured解析非结构化pdf
linux·服务器·数据分析
爱吃喵的鲤鱼2 小时前
仿mudou——Connection模块(连接管理)
linux·运维·服务器·开发语言·网络·c++
郝学胜-神的一滴3 小时前
使用Linux的read和write系统函数操作文件
linux·服务器·开发语言·数据库·c++·程序人生·软件工程
pu_taoc3 小时前
深入剖析:基于epoll与主从Reactor模型的高性能服务器设计与实现
服务器·c语言·c++·vscode
敢敢J的憨憨L5 小时前
GPTL(General Purpose Timing Library)使用教程
java·服务器·前端·c++·轻量级计时工具库
Bug退退退1236 小时前
Java 网络流式编程
java·服务器·spring·sse
QotomPC6 小时前
软件定义的理想硬件平台:Qotom Q30900SE/UE系列在AIO服务器与边缘网关中的实践
运维·服务器
望获linux6 小时前
【实时Linux实战系列】实时系统的可观测性:Prometheus 与 Grafana 集成
大数据·linux·服务器·开发语言·网络·操作系统
捷智算云服务6 小时前
H200服务器维修服务体系构建:捷智算的全链条保障方案
运维·服务器