036、Linux下ipmitool命令

http://www.ibm.com/developerworks/cn/linux/l-ipmi/

http://my.oschina.net/davehe/blog/88801

1、IPMI(Intelligent Platform Management Interface): 即智能平台管理接口是使硬件管理具备“智能化”的新一代通用接口标准。用户可以利用 IPMI 监视服务器的物理特征,如温度、电压、电扇工作状态、电源供应以及机箱入侵等。ipmi最大的优势在于它是独立于CPU BIOS和OS的,所以用户无论在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控。ipmi是一种规范的标准,由美国英特尔、惠普(Hewlett-Packard)、NEC、美国戴尔电脑和SuperMicro等公司制定。新的版本是IPMI2.0(http://www.intel.com/design/servers/ipmi/)。其中最重要的物理部件就是BMC(Baseboard Management Controller),一种嵌入式管理微控制器,它相当于整个平台管理的“大脑”,通过它ipmi可以监控各个传感器的数据并记录各种事件的日志。

新版本的IPMI可以通过串口、Modem以及Lan等远程环境管理服务器系统(包括远程开关机),同时在系统发生错误时能自动发出警告。要对服务器进行IPMI管理,需要被监控的系统具有支持IPMI的硬件设备。如果服务器具有底板管理控制器 (Baseboard Management Controller ,BMC),并且支持IPMI规范,则通过BMC与主机板上的不同传感器通信来监视系统是否有严重事件,并在某些参数超出其预置阈值时发出警报和日志事件。BMC具有以下功能:

(1)通过系统的串行端口进行访问。

(2)故障日志记录和SNMP警报发送。

(3)访问系统事件日志 (System Event Log ,SEL) 和传感器状况。

(4)控制包括开机和关机。

(5)独立于系统电源或工作状态的支持。

(6)用于系统设置、基于文本公用程序和操作系统控制台的文本控制台重定向。

(7)使用LAN访问Red Hat Enterprise Linux串行控制台界面。

2、使用ipmi的先决条件: 想要实现对服务器的ipmi管理,必须在硬件、OS、管理工具等几个方面都满足。

(1)服务器硬件本身提供对ipmi的支持。

(2)目前IBM、HP、Dell和NEC等大多数厂商的服务器都支持IPMI,但并不是所有服务器都支持,所以应该先通过产品手册或在BIOS中确定服务器是否支持ipmi,也就是说服务器在主板上要具有BMC等嵌入式的管理微控制器。

(3)操作系统提供相应的ipmi驱动。通过操作系统监控服务器自身的ipmi信息时需要系统内核提供相应的支持,linux系统通过内核对OpenIPMI(ipmi驱动)的支持来提供对ipmi的系统接口。

3、用IPMI管理工具对服务器进行管理: IPMI可以通过本地和远程两种方式来获取被监控服务器的监测信息,两种方式都需要相关的硬件,但是软件的安装和软件命令使用稍微有所不同。常用的管理工具是ipmitool,在http://ipmitool.sourceforge.net/。Linux下需要先安装OpenIPMI驱动并启动它,在http://sourceforge.net/projects/openipmi/。SourceForge上的ipmitool只支持Linux/Unix系列的OS,不过它有很多针对Windows的移植版本,比如Sun公司的一个版本。在http://www.sun.com/download/上点击Downloads A-Z,找到字母I的分类,可下载支持Windows平台的ipmitool,当前版本为1.8.10.2,集成的ipmi驱动有ism, ms, lan, lanplus, rmcp+lan等,其中ms表示Microsoft的ipmi驱动。注意驱动必须安装在服务器的OS中,管理工具可以安装服务器上(本地管理),或者远程的客户端上(远程管理)。

Linux上启动OpenIPMI驱动模块常用/etc/init.d/ipmi start。启动ipmi驱动后,通过cat /proc/devices | grep ipmidev获得设备号,比如得到的设备号是253,用mknod -m 600 /dev/ipmi0 c 253 0建立文件索引点。然后就可以在本地服务器上运行各种ipmi工具获取相应的服务器信息了。

4、使用ipmitool本地获取信息。

ipmitool本地监控使用命令: ipmitool �CI open command,其中-I open表示使用OpenIPMI接口,Windows下则常用-I ms。command有以下项:

a) raw:发送一个原始的IPMI请求,并且打印回复信息。

b) Lan:配置网络(lan)信道(channel)

c) chassis :查看底盘的状态和设置电源

d) event:向BMC发送一个已经定义的事件(event),可用于测试配置的SNMP是否成功

e) mc:查看MC(Management Contollor)状态和各种允许的项

f) sdr:打印传感器仓库中的所有监控项和从传感器读取到的值。

g) Sensor:打印详细的传感器信息。

h) Fru:打印内建的Field Replaceable Unit (FRU)信息

i) Sel:打印 System Event Log (SEL)

j) Pef:设置 Platform Event Filtering (PEF),事件过滤平台用于在监控系统发现有event时候,用PEF中的策略进行事件过滤,然后看是否需要报警。

k) Sol/isol:用于配置通过串口的Lan进行监控

l) User:设置BMC中用户的信息 。

m) Channel:设置Management Controller信道。

ipmitool �CI open sensor list命令可以获取传感器中的各种监测值和该值的监测阈值,包括(CPU温度,电压,风扇转速,电源调制模块温度,电源电压等信息)

ipmitool �CI open sensor get “CPU0Temp”可以获取ID为CPU0Temp监测值,CPU0Temp是sensor的ID,服务器不同,ID表示也不同。

ipmitool �CI open sensor thresh <id> <threshold> <setting>设置ID值等于id的监测项的各种限制值。

ipmitool �CI open chassis status查看底盘状态,其中包括了底盘电源信息,底盘工作状态等

ipmitool �CI open chassis restart_cause查看上次系统重启的原因

ipmitool �CI open chassis policy list 查看支持的底盘电源相关策略。

ipmitool �CI open chassis power on启动底盘,用此命令可以远程开机

ipmitool �CI open chassis power off关闭底盘,用此命令可以远程开机

ipmitool �CI open chassis power reset实现硬重启,用此命令可以远程开机

ipmi还可以设置系统启动boot的设备,具体见ipmitool帮助文档。

ipmitool �CI open mc reset 使BMC重新硬启动

ipmitool �CI open mc info 查看BMC硬件信息

ipmitool �CI open mc getenables 列出BMC所有允许的选项

ipmitool �CI open mc setenables <option>=[on|off],设置bmc相应的允许/禁止选项。

ipmitool-I open event 1 发送一个温度过高的消息到System Event Log中,可以发送的Event有:

(1) Temperature: Upper Critical: Going High

(2) Voltage Threshold: Lower Critical: Going Low

(3) Memory: Correctable ECC Error Detected

ipmitool-I open event命令可以用测试配置的IPMI中的snmp功能是否成功。

ipmitool -I open lan print 1 打印现咱channel 1的信息 。

ipmitool -I open lan set 1 ipaddr 10.10.113.95设置channel 1 的地址为10.10.113.95

ipmitool -I open lan set 1 snmp public设置channel 1 上snmp的community为public。

ipmitool -I open lan set 1 access on设置channel 1允许访问。

ipmitool -I open pef info打印Platform Event Filtering (pef)信息

ipmitool -I open pef status查看Platform Event Filtering (pef)状态

ipmitool -I open pef policy查看Platform Event Filtering (pef)策略设置

ipmitool -I open sdr list fru 读取fru信息并显示。

备注:PEF由BMC厂商的FIRMWARE设置,ipmitool(V1.8.8)不能进行设置。

Dell 系统底板管理控制器 (BMC) 通过与主板上的不同传感器通信来监视系统是否有严重事件,并在某些参数超出其预置阈值时发出警报和日志事件。 BMC 支持工业标准的 Intelligent Platform Management Interface (IPMI) 协议,可以实现远程配置、监测和恢复系统。 BMC 提供以下功能:

通过系统的串行端口和集成 NIC 进行访问

故障日志记录和 SNMP 警报发送

访问系统事件日志 (SEL) 和传感器状况

控制包括开机和关机在内的系统功能

独立于系统电源或工作状态的支持

用于系统设置、基于文本公用程序和操作系统控制台的文本控制台重定向

使用 LAN 上串行 (SOL) 访问 Linux Enterprise 服务器串行控制台界面。


二,环境检测

dell x9xx系列机器都支持ipmi 2.0协议,如果是在linux环境中,可以运行下面的命令来确认

[root@host ~]# dmidecode |sed -n '/IPMI/,+5p'

如果能看到IPMI信息,就说明支持ipmi,比如下面就是pe 2950 的输出,注意Version 是2.0

IPMI Device Information

Interface Type: KCS (Keyboard Control Style)

Specification Version: 2.0

I2C Slave Address: 0x10

NV Storage Device: Not Present

Base Address: 0x0000000000000CA8 (I/O)

同时需要启动ipmi服务,centos 4 默认安装了该服务执行

#/etc/init.d/ipmi start

如果启动成功就ok

注意:如果要通过网线来控制另一个机器的电源或者是bios重定向,需要满足的条件是这两个机器在同一个局域网或者vlan里面,所以在同一个机房,可能会有机器之间不能相互控制,因为不在同一个vlan或者局域网。

三,配置:

配置bmc可以有多种方法配置,比如开机时候按ctrl+E直接进入配置界面;或者是利用dell 的server admin (web界面)工具包配置,以及dell SDK光盘里面syscfg(CLI命令行)工具配置;还可以通过ipmitool工具进行配置,ipmitool是一个开源软件,这是最方便的配置方 式。考虑到多数机器都是在机房,所以这里主要演示利用ipmitool进行配置的方法。 其他配置方式参考dell文档光盘,有详细的傻瓜化文档。


1. 开启ipmi 服务

#/etc/init.d/ipmi start

2. 编译安装ipmitool 工具

从http://ipmitool.sourceforge.net/ 下载最新稳定版本,然后编译安装到/opt/app/ipmitool

,然后执行该文件自动安装.

3.具体的配置

ipmitool lan set <channel_no> ipsrc static

ipmitool lan set <channel_no> ipaddr x.x.x.x

ipmitool lan set <channel_no> netmask x.x.x.x

ipmitool lan set <channel_no> defgw ipaddr x.x.x.x

ipmitool bmc reset cold 重新加载下

dell和IBM的<channel_no>是1,hp的是2

#$ipmitool lan set 1 ipaddr 10.0.0.12

#$ipmitool lan set 1 netmask 255.255.255.0

#$ipmitool lan set 1 access on

#$ipmitool lan set 1 user

配置好网卡地址和访问权限。

修改一下root用户的密码

#$ipmitool user list 1

#$ipmitool user set password 2 secpass

本机的设置就完成了。

四,测试

然后在局域网的另一个机器上安装好ipmitool ,并且配置一个10.0.0.0/24网段内的地址到该机器上。

比如

# ip a add 10.0.0.11/24 dev eth0

然后测试一下是否能ping 通 10.0.0.12

# ping 10.0.0.12

如果网络通了,则开始下一步的操作

例如直接对服务器关机

#ipmitool -I lan -U root -P secpass -H 10.0.0.12 power off

开机

#ipmitool -I lan -U root -P secpass -H 10.0.0.12 power on

reset

#ipmitool -I lan -U root -P secpass -H 10.0.0.12 power reset

通过sol控制bios和查看linux启动的输出

#ipmitool -I lanplus -U root -P secpass -H 10.0.0.12 sol activate

输入~+. 中断链接,输入~+? 查看帮助

参考文档 http://www.ibm.com/developerworks/cn/linux/l-ipmi/index.html

5、使用ipmitool获取远程服务器信息。

ipmitool命令需要通过相应的interface来访问BMC,在本地获取信息时候采用的是-I open,即为OpenIPMI接口,IPMItool命令包含的接口有open、lan、lanplus。其中open是指的是OpenIPMI与BMC通信,lan是通过Ethernet LAN网用IPV4的udp协议与BMC通信。UDP的数据段包含了IPMI request/resoponse消息,消息具有一个IPMI session头和RMCP头。IPMI使用Remote Management Control Protocol (RMCP) 版本1支持操作系统关闭(pre-OS和OS-absent),RMCP把把数据发送到UDP的623端口。像lan接口一样,lanplus同样使用Ethernet LAN的UDP协议与BMC通信,但是lanplus使用rmcp+协议(在IPMIV2.0中描述)来通信,RMCP+允许使用改经的认证方式和数据完整性检查。Open端口用于本地监控系统使用的;lan/lanplus通过网络进行远程监控。

远程获取服务器监控信息时,需要加上远程服务器的地址。使用以下的命令格式:

ipmitool -H 10.6.77.249 -U root -P changeme -I lan command。

其中-H表示后面跟的是服务器的地址,-U表示后面跟着用户名,-P表示后面跟着用户密码,command与本地获取信息相同。

当提示:

[root@localhost ~]# ipmitool sdr
Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No
such file or directory
Get Device ID command failed
Unable to open SDR for reading

需要添加如下:

unset HISTFILE

modprobe ipmi_watchdog
modprobe ipmi_poweroff
modprobe ipmi_devintf
modprobe ipmi_si
modprobe ipmi_msghandler

当添加ipmi_si时,提示:

FATAL: Error inserting ipmi_si (/lib/modules/2.6.9-5.ELsmp/kernel/drivers/char/ipmi/ipmi_si.ko): No such device

这是因为机器上没有IPMI设备而出现的报错。

你可能感兴趣的:(linux.ipmitool)