服务器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
相关推荐
遇见火星1 小时前
Ansible模块——从控制节点向目标主机复制文件!
java·服务器·ansible
带鱼吃猫1 小时前
Linux系统:文件系统前言,详解CHS&LBA地址
linux·运维·服务器
香饽饽~、1 小时前
函数式方法的实现(JDK8+)
java·服务器
默默提升实验室1 小时前
Linux 系统如何挂载U盘
linux·运维·服务器
mahuifa2 小时前
python实现usb热插拔检测(linux)
linux·服务器·python
π大星星️6 小时前
基于LNMP架构的个人博客系统部署
服务器·架构
菜菜why12 小时前
AutoDL租用服务器教程
服务器
IT专业服务商12 小时前
联想 SR550 服务器,配置 RAID 5教程!
运维·服务器·windows·microsoft·硬件架构
稳联技术13 小时前
Ethercat转Profinet网关如何用“协议翻译术“打通自动化产线任督二脉
linux·服务器·网络
烟雨迷13 小时前
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
linux·服务器·学习·编辑器·vim