ipmi-智能平台管理接口是一个标准,它的实现核心是一个芯片,叫做BMC,它独立于计算机常规部件比如cpu,内存等等然而却真真的存在于主板或者刀片上。基于BMC使用ipmi,你可以不依赖操作系统对机器进行监控或者管理,甚至远程管理,管理的范畴甚至可以是电源操作,比如开机,关机,重启等,比运行于操作系统的SNMP软件要灵活很多,之所以管理的范畴如此之宽就在于BMC芯片的独立性,它独自存在于板卡上,独立供电,只要接通电源它就被供电,甚至可以使用单独的电池给与供电,这样的话,致命的停电(设想ups已损坏)之类的问题都可以被监控到。当机器还没有开启的时候,也就是cpu还没有开始运行的时候,此时假设电源已经接上了,还没有按下开机键,这个时候,BMC芯片已经开始运行了,它可以从网络接收“命令”,然后帮助管理员打开机器,这样管理员就可以在一个地方同时控制N多机器了而不必再往返于各个机房,管理员也可以通过ipmi远程查看任何机器的cpu温度之类的信息,然后根据信息反馈采取相应的动作或者什么也不做。


  ipmi在linux的实现中包含三个部分,首先是硬件设备驱动,第二是操作硬件设备的字符设备,第三是一个消息处理模块,最后还包含一个watchdog。所有这些并不是使用ipmi必须的,这些仅仅是提供了一种可能性,那就是你可以在操作系统上配置ipmi芯片,这会很方便,如果你的操作系统没有这些驱动,那么就必须在bios中对ipmi芯片进行配置了。通过SMBus将BMC和网卡芯片相连接,在关机的情况下网卡依然通着电,它依然可以接收数据,接收到的数据就可以进入BMC,然后BMC根据数据指令进行操作,比如开机之类的,可以说BMC芯片中实现了一个微小的tcp/ip协议栈,正是这个协议栈最终从网线上取出了数据命令,然后执行开机动作的。这样看来,有了ipmi之后,机器只要买回来,在机房布好之后,人的介入就可以最大限度减少了,管理员可以集中控制N台机器,机器不再单独作为一台机器存在,而是和其他的机器一起组成了一个个的网络,这些网络可以组成我们的互联网,一台机器延伸到了一个网络的一分子,同样一个网络分子智能处理生命周期也从电源按键的一开一合之间延展到了机器买回来到机器被砸烂之间。