使用IPMI管理Linux服务器

2019-07-14 03:43发布


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 –I 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 –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 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)不能进行设置。 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与本地获取信息相同。