什麼是BMC
在介紹BMC之前需要了解一個概念,即平臺管理(platform management)。
平臺管理表示的是一系列的監視和控制功能,操作的對象是系統硬件。比如通過監視系統的溫度,電壓,風扇、電源等等,並做相應的調節工作,以保證系統處於健康的狀態。
當然如果系統真的不正常了,也可以通過復位的方式來重新啓動系統。
同時平臺管理還負責記錄各種硬件的信息和日誌記錄,用於提示用戶和後續問題的定位。
以上的這些功能可以集成到一個控制器上來實現,這個控制器被稱爲基板管理控制器(Baseboard Manager Controller,簡稱BMC)。
需要說明的是,BMC是一個獨立的系統,它不依賴與系統上的其它硬件(比如CPU、內存等),也不依賴與BIOS、OS等(但是BMC可以與BIOS和OS交互,這樣可以起到更好的平臺管理作用,OS下有系統管理軟件可以與BMC協同工作以達到更好的管理效果)。
一般我們的電腦不會帶BMC,因爲用處不大,一些溫度、電源等的管理,CPU來控制就夠了。
但是對於系統要求高的設備,比如服務器,就會用到BMC。
當然因爲BMC是一個獨立的系統,對於某些嵌入式設備,可能不需要其它處理器,光一個BMC就能完成工作。
說到底BMC本身也是一個帶處理器(一般都是ARM處理器)的小系統,單獨用來處理某些工作也完全是可以的。
不過這裏既然叫做BMC,那麼總的來說重點還是在平臺管理,所以本文主要說的是服務器中的BMC。
BMC在系統中的位置大致如下圖所示:
BMC通過不同的接口與系統中的其它組件連接。
LPC、I2C、SMBUS,Serial等,這些都是比較基本的接口,而IPMI,它是與BMC匹配的總線,所有的BMC都需要實現這種接口,這裏需要特別的介紹。
IPMI
IPMI的全稱是Intelligent Platform Management Interface,智能平臺管理接口。
看了名字也不需要特別介紹它用來幹什麼的了,關於它的詳細介紹可以參看https://www.intel.com/content/www/us/en/servers/ipmi/ipmi-home.html,這裏只做簡單的介紹。
IPMI規定了很多的東西,BMC是其中最重要的一個部分,此外還有一些”衛星“控制器通過IPMB與BMC相連,這些”衛星“控制器一般控制特定的設備。
IPMB全稱Intelligent Platform Management Bus,是一種基於I2C的串行總線,它用於BMC與”衛星“控制器的通信,其上傳遞的是IPMI命令。
下面的圖描述了與IPMI有關的各個模塊:
下面簡單的介紹各個部分。