ipmi是一個适用于bmc的标準協定,開發者可以通過ipmi oem cmd和bmc互動。
oem cmd的實作與組成(均為unsigned char類型):NetFunction、Cmd、Request_data、Response_data(Response_data的組成:Res[0] + Res_data)
發送oem cmd的一般格式為:NetFunction + Cmd + Request_data
oem cmd旨在為開發人員設計和調試,供測試人員測試,客戶一般不會發送oem cmd,除非bmc開發人員提供bmc管理手冊,不然使用oem cmd對于客戶來說将是一場噩夢。
并且oem cmd為一對一管理bmc,不同廠家的bmc對于oem cmd的Response_data也可能不太一樣,是以redfish誕生。
redfish可以使用post main或者linux環境發送url,傳回的資料根據redfish規範,呈現為jason格式的字元串,上層管理人員可以通過腳本批量監控&控制整個機房的bmc。
優化:AMI傳統的redfish在redies資料庫擷取内容,bmc需要定時同步資料到redies,大大增加bmc的負荷(展現在Web,sel,sdr中)。
反觀web端:也是通過發送url,解析傳回的response中的jason資訊。是以,放棄同步redies子產品,使用類似web的構架發送url,傳回的資料資訊遵循redfiah規範,大大降低bmc的負荷,實測web,sel ,sdr等資訊通路速度大大提高,并且同樣可以使用post main和Linux發送url,最終效果和傳統redfish一樣,并且大大降低了開發人員開發的難度(傳統redfish用Lua開發,優化方案使用c開發)。