IPMI&ipmitool

IPMI&ipmitool
IPMI&ipmitool

IPMI & ipmitool

本文档分为原理篇和应用篇,原理篇介绍了IPMI的原理及相关技术,应用篇讲解使用ipmitool来实现IPMI管理与监控的两种方式,最后举例说明ipnm-ipmi脚本如何实现Intel@节点能耗管理。

目录

原理篇 (2)

一、IPMI含义 (2)

二、IPMI发展历史及版本介绍 (2)

三、IPMI技术优点 (3)

四、IPMI工作原理 (3)

、技术实现 (4)

五、

六、未来技术趋势 (6)

七、IPMI功能总结 (7)

应用篇 (7)

一、简介 (7)

二、使用IPMI的先决条件 (8)

三、 实现对Linux服务器的IPMI管理 (9)

1、实现对本地服务器的管理 (9)

2、实现对远程服务器的管理 (11)

四、Intel@节点能耗管理 (12)

附录A Ipmitool安装 (13)

附录B Ipmitool接口说明 (13)

1、OPEN INTERFACE (13)

2、LAN INTERFACE (14)

3、LANPLUS INTERFACE (15)

原理篇

含义

一、IPMI含义

智能平台管理界面(Intelligent Platform Management Interface) 的缩写,它是管理基于Intel@结构的企业系统中所使用外围设备采用的一种工业标准。IPMI 的主要特征是,资源清册、日志记录及恢复控制功能均独立于主处理器、BIOS 和操作系统提供。

及版本介绍

二、IPMI发展历史

发展历史及版本介绍

到目前为止IPMI的一共发行了三个版本,分别是1998年的Version 1.0,2001年的Version 1.5以及2004年的Version 2.0。

在IPMI推出之前,每个计算机厂商都自行开发了监控其平台中各组件性能的方案,这些方案倾向于将一个企业或电信公司与某一具体厂商紧密结合,通常管理效率低下。随着数据中心计算设备和电信网络的激增,这种长期形成的缺点已经变得日益严重。

英特尔并不受硬件厂商的欢迎,所以如果能够开发和推广一种合理化方案,对英特尔来说是很有意义的,最初的支持者有惠普、戴尔和NEC,倡导者们计划开发出一种标准方式,也就是IPMI,可以通过不同的平台获取信息。

IPMI 1.0在1998年发布,后来相继推出的两个版本1.5和2.0。

IPMI 1.5规范包括了通过串行口、调制解调器以及局域网远程控制网络服务器进行系统管理的能力。即使在服务器未开电源的情况下,管理员也能远距离拨号进入IPMI系统,查询服务器系统的健康状况,进行重开机或重关机,或重新配置以及恢复系统。另外系统也可以自动地通过电话或者局域网向服务器管理员发出警报信息,这样网络管理人员便可以随时随地在第一时间了解整个网络系统的物理健康状况,以采取积极的应对措施。

IPMI2.0关注的是安全问题,它通过一种被称为安全散列算法(SHA-1)和基于密钥哈希消息的技术以支持高级认证;定义了高级加密标准(AES),提供高级加密功能;并且支持虚拟局域网(VLAN),从而给予管理员更多的控制权加强了安全性能。此外,还定义了SOL (Serial Over Lan)远程管理指令,利用它们可改变IPMI会话过程中本地串口传送数据方向,从而实现对远程服务器的Pre-os访问,提供了通过LAN远程查看、启动、诊断和维修故障的标准方式。

技术优点

三、IPMI技术优点

首先,IPMI把系统管理软件从系统的硬件平台管理任务中分离出来,并且把底层的服务器管理功能与高层软件分开。这样,推出一个通用的、跨系统的平台管理监控软件就成为可能;

第二,IPMI是可扩展的并且能够快速简单地在其上附加新功能,如增加更多的传感器、管理控制器或特定的配件设备;

第三,在加入IPMI技术的系统里,CPU只需要与IPMI就事件进行通信,形成IPMI事件记录(Event Log)。在系统上的每个设备直接通过IPMI与事件记录文件通信,而事件记录文件以统一的方法为每个特定的设备记录所有的事件状态。这一特点进一步简化了代理(Agent)的处理任务,提高了系统的整体运行性能。

工作原理

四、IPMI工作原理

IPMI的核心是基板管理控制器(BMC),其并不依赖于服务器的处理器、BIOS或操作系统来工作,可谓非常地独立,是一个单独在系统内运行的无代理管理子系统,只要有BMC与IPMI固件其便可开始工作,而BMC通常是一个安装在服务器主板上的独立的板卡,现在也有服务器主板提供对IPMI支持的。IPMI良好的自治特性便克服了以往基于操作系统的管理方式所受的限制,例如操作系统不响应或未加载的情况下其仍然可以进行开关机、信息提取等操作。

在工作时,所有的IPMI功能都是向BMC发送命令来完成的,命令使用IPMI规范中规定的指令,BMC接收并在系统事件日志中记录事件消息,维护描述系统中传感器情况的传感器数据记录。在需要远程访问系统时,IPMI的SOL特性很有用。SOL改变IPMI会话过程中本地串口传送方向,从而提供对紧急管理服务、Windows专用管理控制台或Linux串行控制台的远程访问。BMC通过在LAN上改变传送给串行端口的信息的方向来做到这点,提供了一种与厂商无关的远程查看启动、操作系统加载器或紧急管理控制台来诊断和维修故障的标准方式。

IPMI工作原理示意图

技术实现

五、技术实现

BMC基板管理控制器 (baseboard management controller) 的缩写,这是一个在IPMI 结构下提供智能管理的控制器,BMC因为多集成于主板而得名,系统管理软件对各个被管理器件的管理,都是通过与BMC通信来实现的。BMC通过与主板上的不同传感器通信来监视系统是否有严重事件,并在某些参数超出其预置阈值时发出警报和日志事件。BMC支持工业标准的 Intelligent Platform Management Interface (IPMI) 协议,可以实现远程配置、监测和恢复系统。BMC芯片就相当于计算机中的中央处理器,通过BMC芯片上一对SMBus接口连接网络,用户可通过网络访问实现对远程服务器接管的带外管理(Out-of-band)功能,例如远程接管服务器(Pre-OS),在客户端实现对远程服务器的完全接管;通过RS-232接口连接Modem,在远程服务器宕机情况下,用户可以通过拨号访问获取SDR、SEL数据,分析诊断故障原因;BMC通过IPMB接口访问模组风扇背板、电源背板等上的SMC,实现对各种背板的温度电压风扇转速等关键参数管理;BMC通过系统接口(多用SMIC:Server Management Interface Chip),实现IPMI消息传输机制,控制LCD显示和实现上层软件与底层F/W通信,实现告警、数据采集。SDR、SEL、FRU(Field Replacement Unit)物理实体可以是做在芯片内的存储体,也可以是外挂的E2PROM。

一般来说,BMC具有以下功能:

1、系统的串行端口进行访问

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

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

4、控制包括开机和关机

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

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

BMC功能示意图

从图上看到,BMC从不同的传感器收集信息,然后可以存到本地的SEL里面,便于以后查询,也会把重要的信息显示到服务器前面板上面的那个小的LCD显示器上(需要硬件支持)。同时还能通过网卡(LAN),串口(Serial)、本地(Host)来访问这些信息。

在IPMB(Intelligent Platform Management Bus)总线上连接着各个管理控制器,分别执行不同功能。IPMB总线上还连接着一些I2C器件,用来作为传感器的接口,让系统管理软件能够通过IPMB来读取传感器的数据。同时,这些传感器的具体配置信息,如告警门限、事件触发是否允许等配置都保存在一组名为SDR(Sensor Data Record)的数据里面。而传感器产生的告警事件则保存在一组叫做SEL(Sensor Event Log)的数据里面。在IPMB 总线上,连接着一个ICMB(Intelligent Chassis Management Bus)桥,通过ICMB可以和远程的另一个管理平台通信。此外,在IPMB总线上,还可以外接其他的用户板,用来扩展IPMI管理平台的功能。

六、未来技术趋势

未来技术趋势 控管理厂商的管理产品多种多样,较为常见的有设备监控管理产品、网络监控管理产品、应用监控管理产品等等,几乎涉及IT 产业的各个领域。从对业界一些管理产品的分析来看,有以下一些发展趋势:

1、全方位模块化全方位模块化、、实时化管理实时化管理

管理系统模块化趋势明显:设备管理、监控、应用管理与监控、安全风险管理、备份与恢复、快速部署及软件分发、远程控制(KVM)、资产管理、公共基础服务等功能模块跟整个管理系统形成了松耦合关系,用户可以根据自己的实际需求定制适合自己的服务器管理产品。同时远程控制发挥了越来越明显的作用,借助相应的远程控制工具,管理员在远程控制端可以实现像在服务器现场一样的管理,时效性大大增强。

2、管理技术标准化

管理技术标准化 优秀的管理产品一般都具有较强的平台无关性和通用性,大多都是按照标准协议进行开发,从底层的数据采集,到中间的通信协议,以及终端的管理应用,都由相关的管理标准所覆盖。IPMI 2.0就是很好的一个管理技术标准。

3、对被管对象的描述标准化

对被管对象的描述标准化 SNMP 管理协议,被管对象的描述是按照面向过程的方式对被管对象逐一列举;DMI(Desktop Management Interface)对被管对象采用面向对象的描述方式,将被管信息统一组织,并提供一系列接口给管理程序应用;CIM(Common Information Model)使得管理对象、被管信息和访问方式完全面向对象化。

4、CIM CIM 是是DMTF DMTF((Desktop Management T Desktop Management Task Force ask Force ask Force))提出的通用信息管理模型提出的通用信息管理模型。。

它以面向对象的方式对系统管理的不同问题域进行描述,使得不同管理系统和应用之间能够共享和交换管理信息。它由两部分构成: CIM 规范(CIM Specification)描述了建模语言、命名规则、元模式以及与其他管理信息模型(SNMP 的MIBs ,DMTF 的MIFs 等)之间的映射(Mapping);CIM 模式(CIM Schema)提供了实际的管理信息模型描述,同时还提供了一整套类(Class)用以组织计算环境中的各种管理信息。

目前,在对网络设备的管理中,标准CIM 模型采用得越来越多,从设备监控、安全监控、存储管理等各个方面都有产品应用。这也是下一代服务器管理产品的应用趋势。

5、管理方式逐步向分布式发展

管理方式逐步向分布式发展 传统的管理产品一般是M/A 架构,一个管理中心和多个被管设备之间进行独立点对点通

信,被管设备之间没有任何联系,限制了网络资源的共享和使用,而且对管理员的管理方式也有限定。随着管理系统的发展,被管设备之间的联系会逐步加强,不但管理中心可控制访问被管设备资源,被管设备之间也可以实现资源共享。

七、IPMI功能总结

功能总结

·远程电源控制 (on / off / cycle / status)

·串口的IP映射Serial over LAN (SoL)

·支持健康关机(Graceful shutdown support)

·机箱环境监控(温度, 风扇转速, CPU电压等)

·远程设备身份LED控制(Remote ID LED control)

·系统事件日志(System event log)

·平台事件跟踪(Platform Event Traps)

·数据记录(Data logging)

·虚拟KVM会话(Virtual KVM) 目前不支持 ·虚拟媒体(Virtual Media) 目前不支持

应用篇

应用篇

简介

一、简介

IPMI 是一种可扩展的标准,它定义了如何监控硬件和传感器、控制系统部件以及记录重大事件,随着IPMI技术在服务器中的应用,利用IPMI的众多优势就成为服务器管理特别是集群管理中不可缺少的部分。本篇着重讲述利用 ipmitool 这一工具实现Linux系统中IPMI管理的具体步骤和方法。

ipmitool 是一种可用在Linux系统下的命令行方式的IPMI平台管理工具,它支持IPMIv1.5或 IPMIv2.0规范,通过它可以实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能。ipmitool 有两种使用方式。

方式 接口 IPMI驱动 对应参数 特点

本地调用 本地操作系统 OpenIMPI -I open 通过系统内核提供接口与BMC通信 远程调用 网络 无需安装 -I lan(plus) 通过网络以UDP报文形式与BMC通信

注:①为本地调用;②为远程调用。

的先决条件

二、使用IPMI的先决条件

想要实现对服务器的IPMI管理,必须在硬件、OS、管理工具等几个方面都满足:

的支持

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

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

使用命令dmidecode |sed -n '/IPMI/,+5p' 来验证服务器是否支持IPMI。

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

驱动

通过操作系统监控服务器自身的IPMI信息时需要系统内核提供相应的支持,linux 系统通过内核对 OpenIPMI(IPMI驱动)的支持来提供对IPMI的系统接口,实现与BMC的通信。如果是远程方式,则服务器端无需安装任何软件,由监控端通过网络UDP报文直接和BMC通信。

管理工具

3、IPMI管理工具

本文选择的是 Linux 下的命令行方式的IPMI平台管理工具 ipmitool,请自行下载安装(具体安装方法参见附录A)。其他IPMI管理工具包括ipmiutil或FreeIpmi。

管理

三、实现对Linux服务器的IPMI管理

利用 ipmitool 实现对服务器的 ipmi 管理有两种方式:①通过操作系统监控本地服务器;②通过网络监控远程服务器。下面针对这两种监控方式分别举例予以说明。

要区分究竟是本地方式还是远程方式的关键在于interface的指定,这是因为ipmitool 命令需要通过相应的interface来访问BMC, ipmitool命令包含的Interface有open、lan、lanplus。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+允许使用改进的认证方式和数据完整性检查。

实现对本地服务器的管理

1、实现对本地服务器的管理

系统结构图

1.1系统结构图

OS

硬件

IPMI

1.2配置本地操作系统支持IPMI

载入系统功能模块(2.6 kernels):

modprobe ipmi_msghandler

modprobe ipmi_si

modprobe ipmi_devintf

注意:必须先载入模块,这样内核才能识别 ipmidev 设备。如果是2.4kernels载入模块有所区别,请参考文档结尾附录部分。

创建字符设备node,使ipmitool可以通过驱动程序访问IPMI系统接口

#cat /proc/devices | grep ipmidev 查看设备号

253 ipmidev 命令输出

#mknod /dev/ipmi0 c 254 0 创建设备节点

注意:经测试CentOS 5.5在载入ipmi模块后会自动创建/dev/ipmi0,那么可以省去此步骤。以CentOS5.5为例,自动创建的/dev/ipmi0主设备号是253。如果是其他条件,操作时按实际输出值添加。

ipmitool

1.3安装ipmitool

从https://www.360docs.net/doc/3a13509287.html,/下载安装,具体安装方法参见附录A,安装成功后便可进行本地服务器管理。

执行命令进行监控

1.4执行命令进行监控

Ipmitool本地监控使用命令:ipmitool [-c|-h|-v|-V] -I open ,其中-I open 表示使用OpenIPMI接口,commond有以下项:

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 chassis power on启动底盘,用此命令能够远程开机

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

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

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 查看支持的底盘电源相关策略。

注:经过测试发现本地管理时也可以省去“-I open”,而直接加命令,或者输入“ipmitool shell”后进入ipmitool> 模式,然后直接输入commond命令即可。

实现对远程服务器的管理

2、实现对远程服务器的管理

系统结构图

2.1系统结构图

被监控服务器 监控端

通过UDP报文与BMC交互信息

ipmitool

2.2在监控端安装ipmitool

具体安装方式参见附录A。

执行命令进行远端监控

2.3执行命令进行远端监控

Ipmitool 远程监控使用命令:

ipmitool [-c|-h|-v|-V] -I lan -H

[-p ]

[-U ]

[-A ]

[-L ]

[-a|-E|-P|-f ]

[-o ]

其中-I lan 表示通过Ethernet LAN 网用IPV4的UDP 协议和BMC 通信,commond 与执行本地管理时相同。

命令示例命令示例::

Ipmitool -I lan -H 192.168.1.90 -U root –P 123456 chassis power on 远程开机 Ipmitool -I lan -H 192.168.1.90 -U root –P 123456 chassis power on 远程关机 注:其他命令的使用均与本地管理类同,只需指明lan、主机、用户、密码即可,如果没有指定密码则在交互状态下输入。

四、Intel@Intel@节点能耗管理节点能耗管理节点能耗管理

以上部分我们介绍了ipmitool 的两种通用的操作,这些操作适用于任何支持IPMI 的机器。下面我们将针对Intel@的机器,介绍对其进行能耗管理的特殊命令方式。

要对Intel@的机器进行远程能耗管理,需要用到ipnm-ipmi 脚本,其实不管针对什么机器底层都是使用ipmitool 这个工具来实现的,因为不同的厂商有不同的标准因此就需要用raw 原语这个commond,但该命令参数较为复杂,为了更加易用,对此进行了封装,就得到了ipnm-ipmi 这个脚本。下面举例说明。

比如要为192.168.1.90这台BMC 机器添加一条ID 为0的策略,要求PowerLimit 为32767W,CorrectionTime 为600000ms,StatPeriod 为60s。

用ipnm-ipmi 脚本实现:

ipnm-ipmi –H 192.168.1.90 –U root –P 123456 SetPolicy 0 32767 600000 60 用ipmitool raw 命令实现:

ipmitool –I lanplus –H 192.168.1.90 –U root –P 123456 –b 0x06 –t 0x2C raw 0x2E 0xC1 0x57 0x01 0x00 0x100x00 0x10 0x01 0xff 0x7f 0xc0 0x27 0x09 0x00 0x00 0x00 0x3c 0x00

以上ipmitool命令的详细含义可以参阅文档Intel? Intelligent Power Node Manager-Enomaly。事实上,ipnm-ipmi脚本正是执行的这条命令。通过举例,我们就说明

了ipnm-ipmi和ipmitool的关系。关于ipnm-ipmi的具体使用方式,请参阅其帮助文档。

安装

A I I pmitool安装

附录A

方法一、利用yum安装

如果有配置好的yum源,直接yum install ipmitool即可

方法二、自行编译安装

1、登录站点https://www.360docs.net/doc/3a13509287.html,/下载最新版(1.8.9)的安装包;

2、解压包文件;

3、进入包文件目录,执行以下命令

#./configure;

#make

#make install

4、然后使用ipmitool即可。

接口说明

pmitool接口说明

附录B I

B Ipmitool

1、OPEN INTERFACE

Ipmitool的open接口利用openipmi的内核设备驱动程序。该驱动存在于所有的现代2.4和所有2.6核心中,以及它应该出现在最新的 Linux发行版的内核中。在OpenIPMI的主页中同样有各种针对于使不同版本的核心可用的IPMI驱动核心补丁。2.4和2.6核心所需要

的核心模块是不一样的。

对于2.4内核,必须导入下面的模块以保证ipmitool正常工作:

ipmi_msghandler

ipmi_kcs_drv

ipmi_devintf

对于2.6内核,必须导入下面的模块以保证ipmitool正常工作:

ipmi_msghandler

ipmi_si

ipmi_devintf

一旦以上所需模块被导入,系统会要求一个/dev/ipmi0的动态字符设备。

查看/proc/devices确认ipmidev的设备号(有内核动态分配)以创建设备节点。通常而言,如果是第一快动态设备那么主设备号是254,次设备号是0。因此执行下面的命令创建该节点:

mknod /dev/ipmi0 c 254 0

要使ipmitool使用OpenIPMI设备接口可以使用下面的命令:

ipmitool –I open

2、LAN INTERFACE

Ipmitool的lan接口在IPv4下利用UDP通过一个以太局域网连接与BMC相关联。UDP 数据报被格式化,通过一个IPMI会话头与RMCP(远程管理控制协议)头 来包含IPMI请求/回复。

IPMI-over-LAN利用了1版本的远程管理控制协议(RMCP)来支持预操作系统和操作系统缺失的管理。RMCP是一个在623端口上利用UDP数据报的一个请求-回复传输协议。

LAN接口是一个自动的多会话连接;移交给BMC的信息可以用一个 攻击/回应 协议来认证,使用一个直密码/key 或 消息摘要算法。Ipmitool将会尝试着使用administrator权限级别来连接 从而来执行机架电源功能。

你可以通过-I lan选项让ipmitool使用lan接口:

ipmitool -I lan -H [-U ] [-P ]

当使用ipmitool的lan接口时,在命令行中必须要主机名。密码部分是可选的;如果在命令行中没有提供密码,ipmitool将会在无验证的情况下去连接。如果你指定了密码,他将使用MD5认证。

3、LANPLUS INTERFACE

像LAN接口一样,LANPLUS接口使用BMC在IPv4下使用UDP协议进行通信,不同的是LANPLUS使用IPMI2.0 中描述的RMCP+协议。RMCP+ 提供了一个更好的加密和数据完整性验证。Generic Serial Over Lan 要求使用RMCP+,因此ipmitool sol 命令要求使用lanplus 接口。

你可以通过-I lanplus 选项来使用lanplus接口:

ipmitool -I lanplus -H [-U ] [-P ]

FOR MORE INFORMATION

?ipmitool manpage , https://www.360docs.net/doc/3a13509287.html,/manpage.html

?IPMI 介绍https://www.360docs.net/doc/3a13509287.html,/technology/SP_10002.asp

?ipmitool中文帮助文档

https://www.360docs.net/doc/3a13509287.html,/zuiaituantuan/article/details/5816380

?openipmi help , https://www.360docs.net/doc/3a13509287.html,/

?IPMI Intel home page https://www.360docs.net/doc/3a13509287.html,/design/servers/ipmi/

本文档由武宇亭整理总结

Email:wytdahu@https://www.360docs.net/doc/3a13509287.html,

2011年9月22日星期四

相关主题
相关文档
最新文档