使用 ipmitool 实现 Linux 系统下对服务器的 ipmi 管理
简介: IPMI 是一种可扩展的标准,它定义了如何监控硬件和传感器、控制系统部件以及记录重大事件,随着 ipmi 技术在服务器中的应用,利用 ipmi 的众多优势就成为服务器管理特别是集群管理中不可缺少的部分。本文首先介绍了 ipmi 的一些基本概念,然后给出了如何利用 ipmitool 这一工具实现 linux 系统中ipmi 管理的具体步骤和方法。
IPMI(Intelligent Platform Management Interface)即智能平台管理接口是使硬件管理具备“智能化”的新一代通用接口标准。用户可以利用 IPMI 监视服务器的物理特征,如温度、电压、电扇工作状态、电源供应以及机箱入侵等。Ipmi 最大的优势在于它是独立于 CPU BIOS 和 OS 的,所以用户无论在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控。Ipmi 是一种规范的标准,其中最重要的物理部件就是BMC(Baseboard Management Controller 如图1),一种嵌入式管理微控制器,它相当于整个平台管理的“大脑”,通过它 ipmi 可以监控各个传感器的数据并记录各种事件的日志。
ipmitool 是一种可用在 linux 系统下的命令行方式的 ipmi 平台管理工具,它支持 ipmi 1.5 规范(最新的规范为 ipmi 2.0),通过它可以实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能。Ipmitool 有两种使用方式(如 表1)
想要实现对服务器的 ipmi 管理,必须在硬件、OS、管理工具等几个方面都满足:
目前惠普、戴尔和 NEC 等大多数厂商的服务器都支持 IPMI 1.5,但并不是所有服务器都支持,所以应该先通过产品手册或在 BIOS 中确定服务器是否支持 ipmi,也就是说服务器在主板上要具有 BMC 等嵌入式的管理微控制器。
通过操作系统监控服务器自身的 ipmi 信息时需要系统内核提供相应的支持,linux 系统通过内核对 OpenIPMI(ipmi 驱动)的支持来提供对 ipmi 的系统接口。
本文选择的是 Linux 下的命令行方式的 ipmi 平台管理工具 ipmitool。
利用 ipmitool 实现对服务器的 ipmi 管理有两种方式:①通过 OS 监控本地服务器;②通过网络监控远程服务器。本文针对这两种监控方式分别给出了利用 ipmi 本地获取 cpu温度和远程控制电源的例子。
特点(如表2)
文中采用的 OS Redhat 9.0 在内核中已经提供了对 ipmi 的支持,这里只需完成如下步骤:
① 载入支持 ipmi 功能的系统模块
注意:必须先载入模块,这样内核才能在②中识别 ipmidev 设备
② 创建字符设备 node,使 ipmitool 可以通过驱动程序访问 ipmi 系统接口
①依次执行如下命令,安装 ipmitool
② 通过 ipmitool 命令获取 cpu 温度
特点(如表 3)
3.2.2 在被监控服务器端,把 ip 地址写入 bmc 芯片中
ipmi 的远程监控是通过向与 bmc 相连的网络接口(如图 1:②)发送 udp 数据包实现的,udp 数据包的定位是通过把 ip 地址写入 bmc 芯片来实现,而这需要通过本地的 ipmi 系统接口来完成连。先通过 3.1.2 与 3.1.3 节的步骤在服务器端实现本地 ipmi 系统接口并安装 ipmitool 管理工具。
通过 ipmitool-1.5.9.tar.gz 附带的 bmcautoconf.sh 脚本(默认安装位置 /usr/local/bin/)配置被监控服务器的 ipmi 网络接口(IPMI-over-LAN),并把 ip 地址等信息写入 bmc 中,过程如下:
①用 ipmitool 确定服务器的 LAN channel
从结果可以看出“Channel Medium Type : 802.3 LAN”,channel 7 是 LAN channel
注意:Intel SHASTA SPSH4 服务器的 channel 7 是对应 eth0 网卡的,所以网络连接时必须选择 eth0(100M网卡)进行 ipmi 管理。
②根据确定的 LAN channel 号和网卡修改 bmcautoconf.sh 脚本
注意:上述改动是根据①中确定的LAN channel、对应的 nic 以及 ipmitool 的具体安装位置进行的。
③运行 bmcautoconf.sh,把 ip 等信息写入 bmc
④确定 bmcautoconf.sh 的结果
⑤设置网络访问密码
注意:完成了上述步骤后,被监控服务器上就不再需要 ipmi 系统接口了,可以把 3.1.2 节中的模块卸载,甚至可以重装一个全新的无ipmi 支持的操作系统。
3.2.3 在监控客户端安装 ipmitool,并远程操作服务器电源
①依次执行如下命令,安装 ipmitool
②通过 ipmitool 命令远程控制服务器电源
注意:通过 ipmitool 还可以监控风扇、机箱等众多相关信息,具体的使用方式见 ipmitool manpage
崔涛,现从事高性能服务器方面的研发工作,对集群、Linux 方面都很有兴趣。您可以通过email: taocui@163.com与他取得联系。
简介: 本文主要讲述如何配置 HMC(Hardware Management Console) 的 BMC(Baseboard Management Controller) 与 OS(Operating System) 内核参数 , 激活 SOL(Serial-over-LAN) 功能 , 以实现运用 IPMItool 远程管理 HMC。
运用 IPMItool 进行 HMC 远程管理是一种非常有效的系统管理方法;它充分利用了当前 HMC 都带有 BMC 的硬件优势,可以不必关心 HMC 操作系统是否处于停机,而远程进行 HMC 开关机与查看其开机后的启动过程;这将不仅大大地减少管理人员奔赴机房的次数,而且更重要的是在很大程度上加强了硬件设备被远程控制的能力。
一般来说,带有 BMC 硬件控制器的设备都可以采用了 IPMItool 进行远程管理。本文将重点介绍 IPMItool 远程管理 HMC 的配置方法,希望对读者能起到一些抛砖引玉的作用。
HMC、BMC、SOL、 IPMI 与 IPMItool 是当前基于 x86 架构的服务器中经常遇到几个非常重要概念,应该说要想很好地知道 system p 服务器是如何被管理的,理解这几个概念是必不可少的,现在就让我对它们进行逐一地介绍:
HMC 硬件控制台(Hardware Management Console for pSeries)是基于 Intel 芯片的工作站,它安装了 Linux 的操作系统和 i5 的管理软件。每一台 HMC 除了有内存、硬盘、DVD-RAM、以太网口等,还可以选择不同的显示器、键盘等设备。它提供的一系列功能用来管理 Power System 系列服务器以及服务器上 LPAR 分区的配置。
BMC(Baseboard Management Controller) 是一种专用芯片 / 控制器 ( 叫做服务器处理器或基板管理控制器 (BMC)),是基于 IPMI 系统的心脏;在 IPMI 管理平台中,系统管理软件对各个被管理器件的管理,都是通过与 BMC 通信来实现的.
BMC 并不依赖于服务器的处理器、BIOS 或操作系统来工作,它有自己的固件、电源、MAC 地址与网络接口,可谓非常地独立,是一个单独在系统内运行的无代理管理子系统。
即便在 HMC 操作系统停机的情况下,BMC 也处于运行状态,它主要支持三种系统接口方法:(1) KCS (Keyboard Controller Style)(2) SMIC(System Management Interface Controller) 与 (3) BT (Block Transfer),具体采用哪种方法是由 SMBIOS 表决定的.
PMI 2.0 中定义了 SOL(Serial Over LAN) 指令,利用它们可改变 IPMI 会话过程中本地串口传送数据方向,从而实现对远程服务器的 Pre-os 访问、BIOS 设置,提供了通过 LAN 远程查看、启动、诊断和维修故障的标准方式。
其实现原理为:用户在控制端通过 LAN 连接远端服务器(控制端需要根据 SOL 定义指令设计软件来实现监控,远端服务器上 BMC 硬件连线及底层代码需要根据 SOL 定义连线、指令做相应设计),即可在控制端通过安装的软件监控到远端服务器 POST 整个过程,并可以实现远程接管,进入并修改 BIOS 设置。远端服务器主板上必须有 BMC 芯片(或通过外插卡上 BMC 芯片),BMC 芯片和网卡芯片间有 SMBus 连接,控制台通过网络连接,从 BMC 获取 POST 信息。
IPMI(Intelligent Platform Management Interface) 是一项标准开放的硬件管理能力接口规范,由 Intel、HP、Dell 和 IBM 公司在 1998 年共同提出,其主要经历过版本 1.0 与 1.5 两代,目前最新版本为 2.0。
利用此接口规范有助于在不同类服务器系统硬件上实施系统管理,使不同硬件平台的集中管理成为可能。它的主要提供了以下几种通用的系统组件访问接口:
IPMI 良好的自治特性便克服了以往基于操作系统的管理方式所受的限制,例如操作系统不响应或未加载的情况下其仍然可以进行开关机、信息提取等操作。
在工作时,所有的 IPMI 功能都是向 BMC 发送命令来完成的,命令使用 IPMI 规范中规定的指令,BMC 接收并在系统事件日志中记录事件消息,维护描述系统中传感器情况的传感器数据记录。在需要远程访问系统时,IPMI 新的 LAN 上串行 (SOL) 特性很有用。SOL 改变 IPMI 会话过程中本地串口传送方向,从而提供对紧急管理服务、Windows 专用管理控制台或 Linux 串行控制台的远程访问。BMC 通过在 LAN 上改变传送给串行端口的信息的方向来做到这点,提供了一种与厂商无关的远程查看启动、操作系统加载器或紧急管理控制台来诊断和维修故障的标准方式。
IPMItool 是一种管理与配置支持 IPMI1.5/2.0 规范的设备的工具,它提供了一个与设备内 BMC 部件进行通信的简单命令行接口;它能读取传感器数据与域可替代单元信息,打印其值,显示系统事件记录,设置 LAN 配置参数,并且能执行远程机架电源控制。
该部分主要是介绍如何进行 IPMItool 远程管理 HMC 的配置方法;一般来说,该功能的实现需要由 HMC BIOS 与 OS 内核两方面的共同支持,因此它的配置方法也就很自然而然地由 (1) 设置 BIOS 参数与 (2) 设置 OS 参数两大块组成:
为了支持 SOL 功能,HMC 的 BIOS 参数设置主要包括 (1) 设置 BMC 网络参数,(2) 使能远程 Console 重定向与 (3) 进行 BMC 设置等。
主要在 BMC 配置中设置 IP 地址,子网掩码与缺省网关等网络参数.具体请看下面的实例:
********************************************************** ********* BMC Network Configuration ********************** * BMC ***************************************************** * BMC * BMC MAC Address 00*14*5E*F9*50*A9 * * * BMC * Host Name [ HMC2BMC ] * * * * DHCP Control [ Use Static IP ] * * * BMC * * * * BMC * IP Settings * * * Syst* IP Address [ 192.168.000.242 ] * * * BMC * Subnet Mask [ 255.255.255.000 ] * * * Rebo* Gateway [ 192.168.000.250 ] * * * Powe* * ] * * BMC * * * * BMC * Save Network Settings in BMC * * * BMC ******************************************** * * User Account Settings * ********************************************************** |
为了使能远程 Console 重定向的功能,需要在 HMC 的 BIOS 中设置如下参数:
******************************************** * Devices and I/O Ports * ******************************************************** * Remote Console Redirection * ******************************************************** * Remote Console Active [ Enabled ] * * Remote Console COM Port [ COM 1 ] * * Remote Console Baud Rate [ 19200 ] * * Remote Console Data Bits [ 8 ] * * Remote Console Parity [ None ] * * Remote Console Stop Bits [ 1 ] * * Remote Console Text Emulation [ VT100/VT220 ] * * Remote Console Keyboard Emulation [ VT100/VT220 ] * * Remote Console Active After Boot [ Enabled ] * * Remote Console Flow Control [ Hardware ] * ******************************************************** * System MAC Addresses * ******************************************** |
为了使能 BMC 功能,其配置应该进行如下设置:
********************************************************** * Baseboard Management Controller (BMC) Settings * ********************************************************** * BMC Firmware Version 01.20 * * BMC Build Level GFBT32E * * BMC Build Date 11*01*06 * * * * BMC POST Watchdog [ Disabled ] * * BMC POST Watchdog Timeout [ 5 Minutes ] * * System*BMC Serial Port Sharing [ Enabled ] * * BMC Serial Port Access Mode [ Dedicated ] * * Reboot System on NMI [ Enabled ] * * Power Restore Policy [ Always On ] * * BMC Fan Acoustic Mode [ Standard ] * * BMC Network Configuration * * BMC System Event Log * * User Account Settings * ********************************************************** |
为了支持 SOL 功能,设置 OS 参数主要包括 (1) 激活串行 Console 功能与 (2) 使能 OS 内核支持串行端口。主要是在下列两个文件中添加红色部分的内容.
cdlhmc2:~ # vi /etc/inittab s0:345:respawn:/sbin/agetty ttyS0 19200 vt100 |
cdlhmc2:~ # vi /boot/grub/menu.lst kernel /boot/bzImage ro root=/dev/sda2 clock=pmtmr vga=0x317 apm=power-off psmouse.proto=bare console=ttyS0,19200 |
以上配置是否正确,有待在第三章中进行检验,假如 ipmitool 能从 HMC 上获取到想要的信息,则说明上面的配置正确;否则,请进一步检查。
在一台 Linux 远程控制站上安装上 IPMItool 软件包,当然假如你的远程控制站是 AIX 系统,请先将 IPMItool 源代码进行相应的修改,重新 AIX 编译器进行编译,再进行安装.
借助 ipmitool 命令 man page,弄清楚它的主要参数的意义,然后进行下面这些实例的尝试:
#lookup HMC's status [root@p5n09 ~]# ipmitool -I lanplus -H 192.168.0.242 -U USERID -P PASSW0RD chassis power status Chassis Power is on |
# power off HMC [root@p5n09 ~]# ipmitool -I lanplus -H 192.168.0.242 -U USERID -P PASSW0RD chassis power off Chassis Power Control: Down/Off # power on HMC [root@p5n09 ~]# ipmitool -I lanplus -H 192.168.0.242 -U USERID -P PASSW0RD chassis power on Chassis Power Control: Up/On # reboot HMC [root@p5n09 ~]# ipmitool -I lanplus -H 192.168.0.242 -U USERID -P PASSW0RD chassis power reset Chassis Power Control: Reset |
# login to HMC [root@p5n09 ~]# ipmitool -I lanplus -H 192.168.0.242 -U USERID -P PASSW0RD sol activate [SOL Session operational. Use ~? for help] Welcome cdlhmc2 login: hscpe Password: Last login: Thu Nov 19 15:00:25 CST 2009 on ttyS0 hscpe@cdlhmc2:~> |
管理 HMC 的方法有很多,本文主要介绍了运用 IPMItool 远程管理 HMC 所需的配置方法,并给出其中所需关键步骤的具体实例;希望能给读者的学习与工作带去一点点的帮助.
吴志勇,IBM 中国软件开发中心 HPC 部门的软件工程师,主要从事集群系统管理软件的相关研发工作。在业余时间喜欢关注 Linux Kernel community 与 Linux KVM project,学习并阅读其相关源代码。
本日志由 flyinweb 于 2010-10-28 09:08:21 发表,目前已经被浏览 4486 次,评论 0 次;
引用通告:http://www.517sou.net/Article/536/Trackback.ashx
而且直接配置文件是效率最高的,通过其它驱动效率都相对较低,BDB
这个测试不太准确,看官方的测试结果:http://bind-dlz.sourceforg
为什么使用BDB时QPS这么低? 我在bind版本基本相似的环境中测试的
It is quite useful and interesting too.
VIRT 的上限是64G,也就是36位, cat /proc/cpuinfo的结果是:addre
昨天要准备用线程重写webbench,试验了下Fedora Linux 2.6.35.14
不明白您的具体的意思是什么?
已经发送到你QQ邮箱