ipmi对于统一硬件管理的意义

ipmi-智能平台管理接口是一个标准,它的实现核心是一个芯片,叫做BMC,它独立于计算机常规部件比如cpu,内存等等然而却真真的存在于主板或者刀片上。基于BMC使用ipmi,你可以不依赖操作系统对机器进行监控或者管理,甚至远程管理,管理的范畴甚至可以是电源操作,比如开机,关机,重启等,比运行于操作系统的SNMP软件要灵活很多,之所以管理的范畴如此之宽就在于BMC芯片的独立性,它独自存在于板卡上,独立供电,只要接通电源它就被供电,甚至可以使用单独的电池给与供电,这样的话,致命的停电(设想ups已损坏)之类的问题都可以被监控到。当机器还没有开启的时候,也就是cpu还没有开始运行的时候,此时假设电源已经接上了,还没有按下开机键,这个时候,BMC芯片已经开始运行了,它可以从网络接收“命令”,然后帮助管理员打开机器,这样管理员就可以在一个地方同时控制N多机器了而不必再往返于各个机房,管理员也可以通过ipmi远程查看任何机器的cpu温度之类的信息,然后根据信息反馈采取相应的动作或者什么也不做。
     ipmi的设计思想其实并不是起始于服务器范畴,笔记本电脑的电源管理使用了类似的思想,那就是EC,也是一个一直在运行的嵌入式设备(EC是一个单片机,比BMC要简单得多),EC的精妙之处也在于它独立于cpu和操作系统而运行,因此可以进行定制化的电源管理操作,比如在关机的情况下充电指示灯的显示和颜色控制。传统的计算机都是按下电源cpu即开始工作,cpu停止工作的那一刻,电源即切断,其生命周期仅在于电源按键的一张一合之间,而普通电器无异,这样的机器,人工的退出必然在电源开启之后,电源开启之前必然需要人去做“第一推动”,这很不方便,特别是对于管理员来讲,如今,EC和IPMI的设计思想解决了这个问题。另一方面,操作系统内置的监控机制无法对操作系统本身的问题进行毫无偏见的监控,毕竟当局者不清,比如基于SNMP的监控程序就无法对硬件故障之类的问题进行实时监控而只能使用类似heartbeat的机制进行,如果使用ipmi,这就方便多了,毕竟BMC是以旁观者的身份站在一旁来看主板上的硬件设备和总线情况的,因此ipmi更适合硬件的管理和监控而snmp则更适合于软件,对于ipmi而言,软件的运行情况必须通过操作系统提供的接口进行监控,否则BMC是看不到的。
     ipmi在linux的实现中包含三个部分,首先是硬件设备驱动,第二是操作硬件设备的字符设备,第三是一个消息处理模块,最后还包含一个watchdog。所有这些并不是使用ipmi必须的,这些仅仅是提供了一种可能性,那就是你可以在操作系统上配置ipmi芯片,这会很方便,如果你的操作系统没有这些驱动,那么就必须在bios中对ipmi芯片进行配置了。通过SMBus将BMC和网卡芯片相连接,在关机的情况下网卡依然通着电,它依然可以接收数据,接收到的数据就可以进入BMC,然后BMC根据数据指令进行操作,比如开机之类的,可以说BMC芯片中实现了一个微小的tcp/ip协议栈,正是这个协议栈最终从网线上取出了数据命令,然后执行开机动作的。这样看来,有了ipmi之后,机器只要买回来,在机房布好之后,人的介入就可以最大限度减少了,管理员可以集中控制N台机器,机器不再单独作为一台机器存在,而是和其他的机器一起组成了一个个的网络,这些网络可以组成我们的互联网,一台机器延伸到了一个网络的一分子,同样一个网络分子智能处理生命周期也从电源按键的一开一合之间延展到了机器买回来到机器被砸烂之间。

你可能感兴趣的:(工作,互联网,网络,服务器,嵌入式,管理和监控)