使用 ipmitool 实现 Linux 系统下对服务器的 ipmi 管理

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 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