http://www.ibm.com/developerworks/cn/linux/l-ipmi/html
IPMI(Intelligent Platform Management Interface)即智能平台管理接口是使硬件管理具有“智能化”的新一代通用接口标准。用户能够利用 IPMI 监视服务器的物理特征,如温度、电压、电扇工做状态、电源供应以及机箱入侵等。Ipmi 最大的优点在于它是独立于 CPU BIOS 和 OS 的,因此用户不管在开机仍是关机的状态下,只要接通电源就能够实现对服务器的监控。Ipmi 是一种规范的标准,其中最重要的物理部件就是BMC(Baseboard Management Controller 如图1),一种嵌入式管理微控制器,它至关于整个平台管理的“大脑”,经过它 ipmi 能够监控各个传感器的数据并记录各类事件的日志。node
ipmitool 是一种可用在 linux 系统下的命令行方式的 ipmi 平台管理工具,它支持 ipmi 1.5 规范(最新的规范为 ipmi 2.0),经过它能够实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能。Ipmitool 有两种使用方式(如 表1)linux
回页首服务器
想要实现对服务器的 ipmi 管理,必须在硬件、OS、管理工具等几个方面都知足:网络
目前惠普、戴尔和 NEC 等大多数厂商的服务器都支持 IPMI 1.5,但并非全部服务器都支持,因此应该先经过产品手册或在 BIOS 中肯定服务器是否支持 ipmi,也就是说服务器在主板上要具备 BMC 等嵌入式的管理微控制器。ide
经过操做系统监控服务器自身的 ipmi 信息时须要系统内核提供相应的支持,linux 系统经过内核对 OpenIPMI(ipmi 驱动)的支持来提供对 ipmi 的系统接口。工具
本文选择的是 Linux 下的命令行方式的 ipmi 平台管理工具 ipmitool。操作系统
回页首.net
利用 ipmitool 实现对服务器的 ipmi 管理有两种方式:①经过 OS 监控本地服务器;②经过网络监控远程服务器。本文针对这两种监控方式分别给出了利用 ipmi 本地获取 cpu温度和远程控制电源的例子。命令行
特色(如表2)
文中采用的 OS Redhat 9.0 在内核中已经提供了对 ipmi 的支持,这里只需完成以下步骤:
① 载入支持 ipmi 功能的系统模块
注意:必须先载入模块,这样内核才能在②中识别 ipmidev 设备
② 建立字符设备 node,使 ipmitool 能够经过驱动程序访问 ipmi 系统接口
①依次执行以下命令,安装 ipmitool
② 经过 ipmitool 命令获取 cpu 温度
特色(如表 3)
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 支持的操做系统。
①依次执行以下命令,安装 ipmitool
②经过 ipmitool 命令远程控制服务器电源
注意:经过 ipmitool 还能够监控风扇、机箱等众多相关信息,具体的使用方式见 ipmitool manpage