一、IPMI是什么
首先IPMI的定位是一种协议,是实现人机交互也就是定义某种使人和服务器能够交流的协议,这种交流协议能够帮助人类更省钱更省力更智能的管理服务器。具体的实现方式后面再一一讲述,首先在脑海里留下这样一个定位的印象。
IPMI,全称Intelligent Platform Management Interface,是一个开放的标准规范,也就是说大家都可以免费使用而不需要支付额外的费用,此协议是1998年由Intel、HP、DELL、NEC等多家企业共同定制,目前最新的版本是IPMI V2.0。主要应用在服务器市场,通过IPMI协议,用户可以实现对服务器的智能管理。
二、为什么会出现IPMI
目前服务器市场厂商众多,知名的有Intel、NEC、DELL、HP等,各家厂商有各自不同的硬件配置以及针对自己服务器的硬件配置而编写的软件,所以不同厂商编写的软件无法应用到另一家的硬件上,导致大部分软件无法实现跨平台。服务器购买方可能会购买不同服务器厂商的服务器,各家厂商管理方式的不同为购买方管理服务器带来了极大的不便。
1、服务器市场面临的挑战
(1)服务器数量庞大不好一一管理
(2)服务器一般放在机房,远程管理困难
(3)服务器厂商众多,不同厂商服务器硬件配置不一样,没有一套通用的软件实现跨平台统一管理
综合来讲就是服务器管理上面,传统方式管理浪费人力物力,管理上也不方便。
2、预想需要解决的问题
(1)实现软件跨平台,一套工具管理不同厂商的服务器
(2)实现服务器远程管理,不在机房就可以知道服务器的物理健康状况
(3)众多服务器是否可以共用一套KVM(keyboard、video、mouse),节省资源和开支
为了解决这些问题,几大服务器厂商联合定制了一套标准,即IPMI标准规范,各大厂商在制作硬件和编写软件的时候都遵循这一规范从而实现服务器的统一管理。
三、IPMI的实现的环境条件
如果要实现IPMI,还需要硬件和软件方面的支持。
1、硬件环境
(1)服务器主板上需要嵌入一个微控制器—BMC(Baseboard Management Controller),这是IPMI实现的核心部件,等同于CPU在电脑中的地位。以上提到的服务器厂商的服务器都支持IPMI,但不是所有的服务器都支持IPMI协议。
(2)服务器上需要按上sensor去监测服务器物理健康状况,比如监测CPU温度的sensor、监测风扇转速的sensor等等。
(3)专门用于记录监测结果的储存设备,这个设备IPMI有专门定义的名字—SEL device,还有用于记录FRU信息的FRU inventory,记录SDRs的SDR repository,IPMI的specification里面是全英文编写的,这些专有名词用英文表示会比较准确,这三个设备的定位是储存设备,一般是EEPROM或者flash,有可能这三部分信息都是存储在一个EEPROM或者flash里面,如果储存设备容量大的话。
2、软件环境
(1)操作系统的内核需要有支持IPMI的驱动,在使用驱动之前,先启动驱动:service ipmi start 或者启动模块:modprobe ipmi_devintf
(2)需要有IPMI的管理工具,一般是ipmitool,还有freeipmi等其他工具,都是遵循IPMI协议编写的IPMI管理工具
四、IPMI的实现方式
(1)定义一系列统一的抽象化的接口协议,KCS/SMIC/BT/SSIF/IPMB等,其中包括各接口消息传输的格式。意思就是所有的服务器厂商生产服务器的时候都需要定义这些接口规范,使用相同的消息格式。当服务器的健康状态以这些格式show出来的时候,人类可以看懂,我们再以这样的格式给服务器下达命令,读取我们想知道的信息或者更改服务器的配置,这样就完成了人机交互。
(2)定义标准的格式记录,SEL/SDR/FRU的格式。SEL/SDR/FRU是IPMI协议定义的一些概念,用来记录多种参数。
五、IPMI的大脑—BMC
BMC本质上是服务器主板上的一颗微控制器(micro controller),它是IPMI的大脑,地位相当于电脑的CPU。BMC完全独立于服务器的CPU/BIOS/OS而存在的,即使系统不开启,只要给它供电就它可以正常工作,它有自己完整的一套系统,有自己的CPU(ARM)、OS、储存设备等,就相当于服务器上有两套系统:一套业务系统,一套管理业务系统和硬件的系统。
1、BMC的软硬件组成
(1)硬件组成
CPU (Hitachi or ARM),处理器一般用的是32位的ARM处理器,ARM用于移动端嵌入式领域,目前也在开始进军PC端了。
RAM (internal or external),BMC有自己的内存,处理通信过程的数据储存。
Flash ROM (internal or external),存放BMC的固件,SDR/FRU/SEL等信息。
Timer/WDT, Counter/ internal sensors,监测服务器上的硬件和软件。
Interface: LPC, I2C/SMBus, serial port, MII,承载信号传输。
(2)软件组成
OS,BMC有自己的OS,一般是经过剪裁的类Linux系统。
F/W,事先就储存BMC芯片中的程序。
Drivers,驱动程序。
2、BMC的特性
(1)独立于业务系统的OS,不论OS是Linux系统还是windows系统,并不影响BMC的管理功能。BMC有自己类Linux的OS。
(2)独立于业务系统的电源,BMC有自己standby的电源,只要主板上有电,BMC就有电,就可以开始工作,与开不开机无关。
(3)独立于业务系统的硬件和软件,硬件上BMC有自己的CPU、RAM、存储设备等,软件上BMC有自己的OS、kernel、软件等。
3、BMC的主要功能
(1)监测。监测业务系统的软件和硬件,软件上监测OS的状态,开机状态还是关机状态;硬件上监测CPU的温度和电压、memory的温度、PSU的温度和电压、风扇的转速等等,还有硬件是插上了还是没插上,监测的范围广,监测的硬件种类多,监测的性能指标多。
(2)控制。当CPU温度过高时,IPMI启动一种机制来加快风扇转速加速散热,紧急情况下还可以关闭系统。BMC可以控制系统的开关机、重启。
(3)信息传递。BMC可以传递BIOS/OS/CPU发送过来的信息,并做一定处理传递到IPMB上,也可以把IPMB上的信息传递回到BIOS/OS/CPU。
六、IPMI的神经—sensors
IPMI实现对服务器的监控主要是通过sensor,每个需要被监控的硬件都有对应的sensor,BMC通过这些sensor感知硬件的各种指标,比如温度、电压、是否插入等等。就像人通过遍布全身的神经感知冷热酸痛一样。sensor本身也有很多参数,这些信息都被存在SDR中,SDR是记录sensor的一条记录,每个sensor都有自己的一条SDR记录。这些记录统一存在一个叫SDR repository的存储设备里面。