共计 6833 个字符,预计需要花费 18 分钟才能阅读完成。
IPMI 是智能型平台管理接口(Intelligent Platform Management Interface)的缩写,是管理基于 Intel 结构的企业系统中所使用的外围设备采用的一种工业标准,该标准由英特尔、惠普、NEC、美国戴尔电脑和 SuperMicro 等公司制定。用户可以利用 IPMI 监视服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。
IPMI 工作原理:
IPMI 的核心是一个专用芯片 / 控制器(叫做服务器处理器或基板管理控制器(BMC)),其并不依赖于服务器的处理器、BIOS 或操作系统来工作,可谓非常地独立,是一个单独在系统内运行的无代理管理子系统,只要有 BMC 与 IPMI 固件其便可开始工作,而 BMC 通常是一个安装在服务器主板上的独立的板卡,现在也有服务器主板提供对 IPMI 支持的。IPMI 良好的自治特性便克服了以往基于操作系统的管理方式所受的限制,例如操作系统不响应或未加载的情况下其仍然可以进行开关机、信息提取等操作。
BMC 具有以下功能:
使用 ipmi 的必要条件——必须在硬件、OS、管理工具等几个方面都满足:
1. 服务器硬件本身提供对 ipmi 的支持(硬件)
目前惠普、戴尔和 NEC 等大多数厂商的服务器都支持 IPMI 2.0,但并不是所有服务器都支持,所以应该先通过产品手册或在 BIOS 中确定服务器是否支持 ipmi,也就是说服务器在主板上要具有 BMC 等嵌入式的管理微控制器。
这里拿 DELL R710 为例:
1) 启动服务器 使用 ctrl+e 进去 ipmi server mangement configuration
2)设置 IPMI Over LAN 为 On
3)进入 IPMI Parameters 设置服务器 ip/ 子网掩码 (也可以进去系统通过 Ipmitool 管理软件设置)
4)进入 LAN User Confuguration 设置用户名 密码(同样 也可以进去系统通过 Ipmitool 管理软件设置)
2. 操作系统提供相应的 ipmi 驱动(OS)
通过操作系统监控服务器自身的 ipmi 信息时需要系统内核提供相应的支持,linux 系统通过内核对 OpenIPMI(ipmi 驱动)的支持来提供对 ipmi 的系统接口。在使用驱动之前,请先启动该驱动:
service ipmi start
或者启动模块:
modprobe ipmi_msghandler
modprobe ipmi_devintf
modprobe ipmi_si
modprobe ipmi_poweroff
modprobe ipmi_watchdog
3.ipmi 管理工具(管理工具)
Linux 下的命令行方式的 ipmi 平台管理工具 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 实现对 Linux 服务器的 ipmi 管理有 2 种方式:
1)通过 OS 监控本地服务, 实现对本地服务器的管理。
架构:应用软件 ipmitool <———–>OS 提供支持 ipmi 系统接口 <————> 硬件主板上有 bmc 芯片
通过 ipmitool 命令获取获取传感器中的各种监测值和该值的监测阈值,包括(CPU 温度,电压,风扇转速,电源调制模块温度,电源电压等信息)
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 信道。
root@linux:~# ipmitool -I open sensor list
Temp | na | degrees C | na | na | na | na | 85.000 | 90.000 | na
Temp | na | degrees C | na | na | na | na | 85.000 | 90.000 | na
Temp | na | degrees C | na | 64.000 | na | -128.000 | -128.000 | na | na
Temp | na | degrees C | na | -128.000 | na | -96.000 | -27.000 | na | na
Ambient Temp | 19.000 | degrees C | ok | na | 3.000 | 8.000 | 42.000 | 47.000 | na
Planar Temp | na | degrees C | na | na | 3.000 | 8.000 | 92.000 | 97.000 | na
2)通过网络监控远程服务器。
被监控服务器需要硬件和操作系统接口驱动的支持,可以无需安装应用软件。监控客户端需要应用软件如 ipmitool 工具,可以无需硬件和操作系统接口驱动的支持。
ipmi 的远程监控是通过向与 BMC 相连的网络接口发送 udp 数据包实现的,udp 数据包的定位是通过把 ip 地址写 BMC 芯片来实现,而这需要本地的 Ipmi 系统接口来完成连接。Ipmitool 可以通过 LAN 远程监控系统,同时 BMC 中保存有一序列用户名和密码,通过 LAN 进行远端访问需要用户名和密码。
被监控服务器使用 ipmitool 更改 ip, 查看 ip
root@linux:~# ipmitool lan set 1 ipaddr 172.16.6.222
Setting LAN IP Address to 172.16.6.222
root@linux:~# ipmitool lan print 1
Set in Progress : Set Complete
Auth Type Support : NONE MD2 MD5 PASSWORD
Auth Type Enable : Callback : MD2 MD5
: User : MD2 MD5
: Operator : MD2 MD5
: Admin : MD2 MD5
: OEM :
IP Address Source : Static Address
IP Address : 172.16.6.222
Subnet Mask : 255.255.255.0
MAC Address : a4:ba:db:4d:3f:2d
SNMP Community String : public
IP Header : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10
Default Gateway IP : 0.0.0.0
Default Gateway MAC : 00:00:00:00:00:00
Backup Gateway IP : 0.0.0.0
Backup Gateway MAC : 00:00:00:00:00:00
802.1q VLAN ID : Disabled
802.1q VLAN Priority : 0
RMCP+ Cipher Suites : 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
Cipher Suite Priv Max : aaaaaaaaaaaaaaa
: X=Cipher Suite Unused
: c=CALLBACK
: u=USER
: o=OPERATOR
: a=ADMIN
: O=OEM
监控客户端 Ipmi ip 地址也必须和被监控服务端在同一网段,
root@Ubuntu:~# ipmitool lan print 1
Set in Progress : Set Complete
Auth Type Support : NONE MD2 MD5 PASSWORD
Auth Type Enable : Callback : MD2 MD5
: User : MD2 MD5
: Operator : MD2 MD5
: Admin : MD2 MD5
: OEM :
IP Address Source : Static Address
IP Address : 172.16.6.175
Subnet Mask : 255.255.255.0
MAC Address : a4:ba:db:1b:81:48
SNMP Community String : public
IP Header : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10
Default Gateway IP : 0.0.0.0
Default Gateway MAC : 00:00:00:00:00:00
Backup Gateway IP : 0.0.0.0
Backup Gateway MAC : 00:00:00:00:00:00
802.1q VLAN ID : Disabled
802.1q VLAN Priority : 0
RMCP+ Cipher Suites : 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
Cipher Suite Priv Max : aaaaaaaaaaaaaaa
: X=Cipher Suite Unused
: c=CALLBACK
: u=USER
: o=OPERATOR
: a=ADMIN
: O=OEM
root@ubuntu:~# ifconfig eth0:1 172.16.6.252 netmask 255.255.255.0
root@ubuntu:~# ifconfig
eth0 Link encap:Ethernet HWaddr a4:ba:db:1b:81:40
inet addr:10.1.6.175 Bcast:10.1.6.255 Mask:255.255.255.0
inet6 addr: fe80::a6ba:dbff:fe1b:8140/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:107931 errors:0 dropped:18357 overruns:0 frame:0
TX packets:12671 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:13418631 (13.4 MB) TX bytes:1551309 (1.5 MB)
eth0:1 Link encap:Ethernet HWaddr a4:ba:db:1b:81:40
inet addr:172.16.6.252 Bcast:172.16.6.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:178 (178.0 B) TX bytes:178 (178.0 B)
root@ubuntu:~# ping 172.16.6.222
PING 172.16.6.222 (172.16.6.222) 56(84) bytes of data.
64 bytes from 172.16.6.222: icmp_req=1 ttl=64 time=0.458 ms
64 bytes from 172.16.6.222: icmp_req=2 ttl=64 time=0.514 ms
能够 Ping 通被监控服务器地址 则可以远程管理该主机。
root@ubuntu:~# ipmitool -I lanplus -H 172.16.6.222 -U root -P password sol activate
[SOL Session operational. Use ~? for help]
LTS debian ttyS1
debian login:
看到以上界面,说明客户端已经可以登录或查看被监控服务器。
以下是 ipmitool 在生产环境下常用命令:
查看 ipmi 信息 #ipmitool mc info
人员 #ipmitool user list 1
查看绑定 IP #ipmitool lan print 1
更改 IP #ipmitool lan set 1 ipaddr x.x.x.x
更改密码 #ipmitool user list 1
#ipmitool user set password 2 “123456”
ipmitool 的 SQL 远程控制服务器 #ipmitool -I lanplus -H x.x.x.x -U root -P password sol (de)activate
强制重启 (关闭或开启) 被监控服务器 #ipmitool -I lanplus -H x.x.x.x -U root -P password chassis power reset (off on)
列出日志 ipmitool sel list
快捷键 shift + ~ +. 是退出 ipmi
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-05/143528.htm