服务器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

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

区分

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
相关推荐
测试界的小码农3 小时前
【Linux 命令实战(06):Linux 文件权限管理,掌握 chmod、chown、chgrp】
linux·运维·服务器
艺杯羹4 小时前
1Panel 装好后 ufw 仍是 inactive:一次服务器安全盲区复盘
服务器·数据库·安全·网络安全·系统架构·实战·1panel
女神下凡6 小时前
芯参谋(107):杰理AC_中科蓝讯_开发指南
linux·服务器·网络·单片机·嵌入式硬件
落羽的落羽6 小时前
【C++】C++17的主要特性
linux·服务器·开发语言·c++·算法·机器学习
say_fall13 小时前
【Linux网络编程】UDP套接字编程:系统编程组件、基础回显服务、InetAddr与地址转换、翻译服务与线程池聊天室
linux·服务器·网络·udp·vr
无奈笑天下1 天前
银河麒麟上nproc命令教程详解
linux·运维·服务器
火云代理1 天前
更换网络后为什么会退出登录?分清 IP、Cookie 与会话的关系
服务器·网络·网络协议·tcp/ip·php·ip
威嵌神州1 天前
嵌入式排故实录:高并发下串口数据“超时丢包”的根因剖析与架构优化
运维·服务器·嵌入式硬件·缓存
火云代理1 天前
同一个网站,有的网络能打开、有的打不开?认识 IPv4 与 IPv6 的访问差异
服务器·网络·网络协议·tcp/ip·测试工具·php·状态模式
坤坤子吖1 天前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习