ipmi操作

http://blog.csdn.net/yunsongice/article/details/5408802

智能平台管理界面(IPMI,Intelligent Platform Management Interface)是管理基于 Intel结构的企业级系统中所使用的外围设备采用的一种工业标准,用户能够利用IPMI监控服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。该标准由美国英特尔、惠普(Hewlett-Packard)、NEC、美国戴尔电脑和SuperMicro等公司定制。新的版本是 IPMI2.0(http://www.intel.com/design/servers/ipmi/)。

 

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

 

1、服务器硬件本身提供对 ipmi 的支持

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

2、操作系统提供相应的 ipmi 驱动

通过操作系统监控服务器自身的 ipmi 信息时需要系统内核提供相应的支持,linux 系统通过内核对 OpenIPMI(ipmi 驱动)的支持来提供对 ipmi 的系统接口。在使用驱动之前,请先启动该驱动:

服务 ipmi 启动

或者启动模块:

modprobe ipmi_msghandler
modprobe ipmi_devintf
modprobe ipmi_si
modprobe ipmi_poweroff
modprobe ipmi_watchdog

 

3、ipmi 管理工具

我们的集群选择的是 Linux 下的命令行方式的 ipmi 平台管理工具 ipmitool。没有的同志可以去“http://ipmitool.sourceforge.net/”下,开源滴......

 

 

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+协议(在IPMIV20中描述)来同新,RMCP+允许使用改经的认证方式和数据完整性检查。Openport用于本地监控系统使用的;Lan/lanplus通过网络进行远程监控。

 

ipmitool本地监控使用命令:ipmitool -I open command,其中-I open表示使用OpenIPMI接口,command有以下项:
a) raw:发送一个原始的IPMI请求,并且打印回复信息。
b) lan:配置网络(lan)信道(channel)
c) chassis :查看底盘的状态和配置电源
d) event:向BMC发送一个已定义的事件(event),可用于测试配置的SNMP是否成功
e) mc: 查看MC(Management Contollor)状态和各种允许的项
f) sdr:打印传感器仓库中的任何监控项和从传感器读取到的值。
g) 传感器:打印周详的传感器信息。
h) Fru:打印内建的Field Replaceable Unit (FRU)信息
i) sel: 打印 System Event Log (SEL)
j) pef: 配置 Platform Event Filtering (PEF),事件过滤平台用于在监控系统发现有事件时候,用PEF中的策略进行事件过滤,然后看是否需要报警。
k) sol/isol:用于配置通过串口的Lan进行监控
l) user:配置BMC中用户的信息 。
m) 通道:配置管理控制器信道。

ipmitool -I open sensor list命令能够获取传感器中的各种监测值和该值的监测阈值,包括(CPU温度,电压,风扇转速,电源调制模块温度,电源电压等信息)
[root@oss11 chenys]# ipmitool -I open sensor list
CPU1 Temp |0.000 |未指定的|还行 |0.000 |na |0.000 |0.000 |na |na
CPU2 Temp |0.000 |未指定的|还行 |0.000 |na |0.000 |0.000 |na |na
系统温度|39.000 |摄氏度|还行 |0.000 |0.000 |0.000 |81.000 |82.000 |83.000
CPU1 Vcore |1.048|电压 |还行 |0.808 |0.816 |0.824 |1.384|1.392 |1.400
CPU2 |1.048|电压 |还行 |0.808 |0.816 |0.824 |1.384|1.392 |1.400
+5V |5.040|电压 |还行 |4.280 |4.320 |4.360 |5.240 |5.280|5.320
+12V |11.904 |电压 |还行 |10.464 |10.560 |10.656 |13.344 |13.440|13.536
处理器1DIMM |1.544 |电压 |还行 |1.320 |1.328 |1.336 |1.656 |1.664 |1.672
处理器2DIMM |1.544 |电压 |还行 |1.320 |1.328 |1.336 |1.656 |1.664 |1.672
+1.5V |1.512 |电压 |还行 |1.320 |1.328 |1.336 |1.656 |1.664 |1.672
+3.3V |3.240|电压 |还行 |2.880|2.904 |2.928 |3.648|3.672|3.696
+3.3VSB |3.336|电压 |还行 |2.880|2.904 |2.928 |3.648|3.672|3.696
VBAT |3.336|电压 |还行 |2.880|2.904 |2.928 |3.648|3.672|3.696
Fan1 |7072.000 |转速|还行 |340.000 |408.000 |476.000 |17204.000 |17272.000 |17340.000
Fan2 |7072.000 |转速|还行 |340.000 |408.000 |476.000 |17204.000 |17272.000 |17340.000
Fan3 |na |转速|na |340.000 |408.000 |476.000 |17204.000 |17272.000 |17340.000
Fan4 |na |转速|na |340.000 |408.000 |476.000 |17204.000 |17272.000 |17340.000
PS 状态|0.000 |未指定的|还行 |0.000 |na |0.000 |0.000 |na |na

ipmitool -I open sensor get “CPU1 Temp” 能够获取ID为CPU1 Temp监测值,CPU1 Temp是sensor的ID,服务器不同,ID表示也不同。
[root@oss11 chenys]# ipmitool-I打开传感器获取“CPU1温度”
定位传感器记录...
传感器 ID : CPU1 温度 (0x1)
实体 ID : 7.1
传感器类型(模拟) : 未知 (0xC0)
传感器读数 : 0 (+/- 0) 未指定
状态 : 正常
下部不可恢复 : 0.000
低级 严重 : na
低非临界 : 0.000
非高非临界 : 0.000
上非紧急 : na 上部不可恢复 : na
上部不可恢复 : na
断言事件 :
断言启用 : lcr-
已启用取消断言:lcr-

 

具体的命令自己去查,这里只讲关键的:

 

ipmitool -I open sensor thresh 配置ID值等于id的监测项的各种限制值。

ipmitool -I open chassis status 查看主板状态,其中包括了主板电源信息,主板工作状态等

ipmitool -I open chassis restart_cause 查看上次系统重启的原因

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

ipmitool -I open chassis power on 启动底盘,用此命令能够远程开机

ipmitool -I open chassis power off 关闭底盘,用此命令能够远程关机

ipmitool -I open chassis power reset实现硬重启,用此命令能够远程重启

ipmitool -I open mc reset 使BMC重新硬启动

ipmitool -I open mc info 查看BMC硬件信息

ipmitool -I open mc setenables =[on|off],配置bmc相应的允许/禁止选项。

ipmitool -I open mc getenables 列出BMC任何允许的选项

ipmitool -I open lan print 1 打印现咱channel 1的信息 。这个channel是太重要了,困扰我的问题也出在它身上,下面我们就来详细讲解:

 

远程获取服务器监控信息


远程获取服务器监控信息时,需要系统硬件支持ipmiV1.5和IPMIV2.0。获取信息时,不需要在服务器上安装其他软件,只需要在监控的客户端上安装ipmi工具软件——ipmitool,并需要在相应命令中加入远端服务器的名字或者地址。Ipmitool可以通过LAN远程监控系统,同时BMC中保存有一序列用户名和密码,通过LAN进行远端访问需要用户名和密码。

 

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

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

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

 

那么,怎么设置本地BMC的IP和用户名密码呢:

 

ipmitool -I open lan print 1 显示BMC通道的信息,如果不知道BMC使用的是哪个通道,请使用下面的命令确认:

ipmitool -I open channel info 1

ipmitool -i open lan set 1 ipsrc static 设置本地BMC地址为静态,才能设置IP

ipmitool -I open lan set 1 ipaddr 10.53.11.113 设置本地BMC的IP地址

ipmitool -I open lan set 1 netmask 255.255.255.0 子网掩码,别忘了设

ipmitool -I open lan set 1 defgw ipaddr 10.53.11.254 网关,可设可不设,不过一定要确保监控它的机器位于同一路由

ipmitool user list 1 查看BMC的用户列表

ipmitool用户设置名称 1 用户名 对BMC的1号用户设置用户名

用户名 ipmitool user set password 1 123456 对BMC的1号用户设置密码123456

 

下面讲讲我今天遇到的问题:

我在被监控端设置好了IPMI地址、子网掩码、用户名、密码等,但是,在监控端却死活连不上,返回下面的信息:

错误:无法建立 LAN 会话
“获取设备 ID”命令失败

 

搞了半天,才在MAC地址上发现了破绽:

[root@localhost ~]# ipmitool -I 打开局域网打印 1
正在设置 : 设置完整的
身份验证类型 支持 : 无 MD2 MD5 OEM
身份验证类型 启用 : 回调 : 无 MD2 MD5 OEM
: 用户 : 无 MD2 MD5 OEM
: 操作员 : 无 MD2 MD5 OEM
: 管理员 : 无 MD2 MD5 OEM
: OEM :
IP 地址 源 : DHCP 地址
IP 地址 : 10.53.11.61
子网掩码 : 255.255.255.0
MAC 地址 : 00:30:48:c9:61:60
SNMP 社区字符串 : AMI
IP 标头 : TTL=0x00 标志=0x00优先级=0x00 TOS=0x00
BMC ARP 控制 : ARP 响应已启用,免费 ARP 禁用了
无端 ARP Intrvl : 0.0 秒
默认网关 IP : 10.53.11.254
默认网关 MAC : 00:00:00:00:00:00:00:00:00:00
备份
网关 MAC : 00:00:00:00:00:00:00
802.1q VLAN ID : 已
禁用802.1q VLAN 优先级 : 0
RMCP+ 密码套件 : 1,2,3,6,7,8,11,12,0
密码套件 Priv Max : aaaaXXaaaXXaaXX
: X=密码套件未
使用 : c=回
调 : u=用户
: o=操作员
: a=ADMIN
: O=OEM

所以,得在监控端加入这个MAC地址的arp解析:

arp -s 10.53.11.28 00:30:48:c9:61:60

posted @ 2022-08-22 15:31  DMCF  阅读(684)  评论(0编辑  收藏  举报