对于网管员来说,服务器远程管理是一个非常重要的技术,而在服务器远程管理方面,典型的解决方案是基于服务器操作系统的软件管 理方式,但这样的方式有一个致命的缺陷就在于对操作系统的依赖程度太高,一旦系统出现问题将无能为力,影响到服务器的日常运行。而我们今天要向大家介绍的 是一种无需依赖于操作系统的远程管理方式——基于智能平台管理界面 (IPMI)的远程管理方式。IPMI 定义管理员如何监测系统硬件和传感器、控制系统组件和检索重要系统事件的日志以进行远程管理和恢复。使用该种方式,用户无需担心操作系统的状态,即使系统 崩溃也可以轻松得到机器状态、重要系统日志等信息,还能实现系统的重启、关机等控制,非常实用。接下来,就让我们一起来了解一下IPMI的使用情况吧。
认识IPMI
既然要使用IPMI,就让我们首先来认识一下这个神奇的东西吧。
IPMI是智能型平台管理接口(Intelligent Platform. Management Interface)的缩写,是管理基于 Intel结构的企业系 统中所使用的外围设备采用的一种工业标准,该标准由英特尔、惠普、NEC、美国戴尔电脑和SuperMicro等公司制定。用户可以利用IPMI监视服务 器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。而且更为重要的是IPMI是一个开放的免费标准,用户无需为使用该标准而支付额外的费用。
DELL DRAC 5 远程控制卡 |
自1998 年,IPMI论坛创建了IPMI标准依赖,其已经得到了170 多家供应商的支持,这使得其逐渐成为了一个完整地包括服务器和其他系统(如存储设备、网络和通信设备)的硬件管理规范,目前该标准最新版本为IPMI 2.0,该版本在原有基础上有了不少的改进,包括可以通过串口、Modem以及Lan等远程环境管理服务器系统(包括远程开关机),以及在安全、VLAN 和刀片支持等方面的提高。
IPMI针对大量监控、控制和自动回复服务器的作业,提供了智能型的管理方式。此标准适用于不同的服务器拓朴 学,以及Windows、Linux、 Solaris、Mac或是混合型的操作系统。此外,由于IPMI可在不同的属性值下运作,即使服务器本身的运作不正常,或是由于任何原因而无法提供服 务,IPMI仍可正常运作。
The kipmi thread is a workaround to fix the hardware disability. kipmi could be disabled using following steps.
Edit /etc/modprobe.conf and add following entry.
options ipmi_si force_kipmid=0
Restart the ipmi daemon using following command.
# service ipmi restart
Warning: Disabling kipmi may decrease the speed of IPMI operations.
详细介绍:
智能平台管理界面(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具有以下功能:
1. 通过系统的串行端口进行访问
2. 故障日志记录和 SNMP 警报发送
3. 访问系统事件日志 (System Event Log ,SEL) 和传感器状况
4. 控制包括开机和关机
5. 独立于系统电源或工作状态的支持
6. 用于系统设置、基于文本公用程序和操作系统控制台的文本控制台重定向
7. 使用 LAN访问 Red Hat® Enterprise Linux 串行控制台界面
IPMI应用
所举应用都基于以下平台:
服务器:超毅
主板:TyanS5353
服务器监控卡(SMDC,Server Management Daughter Card):M3291
Ipmitool版本:ipmitool version 1.8.8
Ipmitool版本:ipmiutil-1.7.4-1
OpenIPMI版本:OpenIPMI-2.0.7
IPMI可以通过本地和远程两种方式来获取被监控服务器的监测信息,两种方式都需要相关的硬件,但是软件的安装和软件命令使用稍微有所不同。
1 软件安装
1.1本地获取软件安装
通过本地方式获取服务器相应状态信息,需要安装ipmi驱动程序和用于获取信息的软件。驱动程序使用OpenIPMI, ipmi工具软件可以安装ipmitool或者ipmiutil,或者freeipmi。软件下载网址为:
OpenIPMI:http://openipmi.sourceforge.net/
Ipmitool: http://ipmitool.sourceforge.net/
http://ipmitool.sourceforge.net/manpage.html
ipmiutil: http://ipmiutil.sourceforge.net/
1.2远程获取软件安装
远程监控只需要在监控客户端上安装用于获取信息的软件:ipmitool、ipmiutil或者reeipmi即可,而不需要在服务其上安装任何工具。
2 服务器监控信息获取
2.1本地获取服务器监控信息
在获取本地服务器相关的监控信息之前,需要启动相应的驱动模块,可以通过以下两种命令启动驱动:
/etc/init.d/ipmi start
或者通过以下命令:
modprobe ipmi_msghandler
modprobe ipmi_devintf
modprobe ipmi_si
modprobe ipmi_poweroff
modprobe ipmi_watchdog
启 动ipmi驱动后,通过cat /proc/devices | grep ipmidev获得设备号,我得到的设备号是253,用mknod -m 600 /dev/ipmi0 c 253 0 建立文件索引点。然后就可以在本地服务器上运行各种ipmi工具获取相应的服务器信息了。
以下所有的命令都是我用到的,还有更多命令没有涉及,可以查看相应的帮助文档来获得所有命令的用法。
2.1.1 使用ipmitool本地获取信息
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) 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 –I open sensor list命令可以获取传感器中的各种监测值和该值的监测阈值,包括(CPU温度,电压,风扇转速,电源调制模块温度,电源电压等信息)
Ipmitool –I open sensor get “CPU0Temp”可以获取ID为CPU0Temp监测值,CPU0Temp是sensor的ID,服务器不同,ID表示也不同。
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实现硬重启,用此命令可以远程开机
Ipmi还可以设置系统启动boot的设备,具体见ipmitool帮助文档。
Ipmitool –I open mc reset 使BMC重新硬启动
Ipmitool –I open mc info 查看BMC硬件信息
Ipmitool –I open mc getenables 列出BMC所有允许的选项
Ipmitool –I open mc setenables =[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)不能进行设置,也可以使用ipmiutil来进行初始设置。
2.1.2 使用ipmiutil本地获取信息
Ipmiutil安装完成后,会包含以下可执行命令:
• alarms –显示和设置Telco alarms报警(LED显示和延迟)
• bmchealth – 测试BMC是否工作正常。
• fruconfig – 显示FRU的产品信息,写入有用信息
• getevent – 接收一个IPMI event,并显示。
• hwreset – 用于使 firmware 硬重新启动或者关掉系统
• pefconfig – 用于显示和配置LAN端口,配置Platform Event Filter 表,来通过firmare event产生BMC Lan提示
• sensor – 显示Sensor Data Records,值和阈值。
• showsel – 显示System Event Log记录。
• tmconfig – 显示和配置BMC串口。
• wdt – 显示和设置看门狗时间.
以上命令种中最为常用的是sensor命令和pefconfig命令。使用sensor命令可以获取各种监测信息。使用pefconfig命令设置BMC,使得BMC可以在系统有event时候,进行报警。
Sensor 命令显示服务器状态信息。
Pefconfig –e命令用于设置BMC硬件,该命令将从操作系统收集相应的信息,并对bmc进行设置,使得BMC能够在有event时候报警(alert)。
Pefconfig –d命令将设置bmc不报警。
2.2远程获取服务器监控信息
远 程获取服务器监控信息时,需要系统硬件支持ipmiV1.5和IPMIV2.0。获取信息时,不需要在服务器上安装其他软件,只需要在监控的客户端上安装 ipmi工具软件,如ipmitool、ipmiutil或者freeipmi,并需要在相应命令中加入远端服务器的名字或者地址。Ipmitool和 ipmiutil可以通过LAN远程监控系统,同时BMC中保存有一序列用户名和密码,通过LAN进行远端访问需要用户名和密码。
2.2.1使用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+协议(在IPMIV20中描述)来同新,RMCP+允许使用改经的认证方式和数据完整性检 查。Open端口用于本地监控系统使用的;Lan/lanplus通过网络进行远程监控。
远程获取服务器监控信息时,需要加上远程服务器的地址。使用以下的命令格式:
ipmitool -H 10.6.77.249 -U root -P changeme -I lan command。其中-H表示后面跟的是服务器的地址,-U表示后面跟着用户名,-P表示后面跟着用户密码,command与本地获取信息相同。
2.2.2使用ipmiutil获取远程服务器信息
Ipmiutil的sensor命令格式如下:
Sensor -N nodename –U user –R passwd ,
其中-N后面跟的是被监控服务器名字,-U后是用户名,-R后是用户密码。
Pefconfig -e -N nodename –U user –R passwd命令用于设置BMC硬件,该命令将从操作系统收集相应的信息,并对bmc进行设置,使得BMC能够在有event时候报警。
Pefconfig -d -N nodename –U user –R passwd将不允许报警