背景
針對數據中心中大量的服務器,如何能夠實現針對這些裸設備(裸金屬)進行帶外管理?之前的解決方案是使用IPMI,通過IPMI協議可以獲取這些裸金屬設備的部分傳感器信息,針對故障可以進行告警。但是由于IPMI開發較早,存在一些先天性的不足,比如安全性問題、擴展性問題、功能不夠完善等問題。
于是分布式管理任務組( Distributed Management Task Force,DMTF )于2015年8月發布了Redfish協議,它是一種基于HTTPs服務的管理標準,利用RESTful接口實現設備管理。每個HTTPs操作都以UTF-8編碼的JSON格式(JSON是一種key-value對的數據格式)提交或返回一個資源或結果,就像Web應用程序向瀏覽器返回HTML一樣。該技術具有降低開發復雜性,易于實施、易于使用而且提供了可擴展性優勢,為設計靈活性預留了空間。
Redfish 在標準訂立之初,就設定了以下目標:
1.安全(Security)
2.高可擴展管理(Scalable)
3.人類可讀數據界面(Human readable data)
4.基于現有硬件可實現(Machine capable)
2. 應用
由于Redfish完全基于HTTPs服務的管理標準,數據格式為JSON,支持Apps、GUI和腳本多種調用方式我們可以使用Curl命令或者Api測試工具PostMan等工具來實現。
我們以獲取環境上的網卡信息為例,看下如何使用redfish:
首先獲取Systems資源:/redfish/v1/Systems
可以看出Systems資源下面只有一個id:/redfish/v1/Systems/System.Embedded.1
這里獲取的是Systems資源里面的所有內容,我們可以找到網卡對應的id:/redfish/v1/Systems/System.Embedded.1/EthernetInterfaces
可以看出該服務器總共有四塊網卡,我們可以根據每一個網卡的id,查看網卡的詳細信息:
/redfish/v1/Systems/System.Embedded.1/EthernetInterfaces/NIC.Integrated.1-2-1
從上面可以看出該網卡的mac地址,速率,健康狀態等信息。
3 總結
當然redfish的功能遠不止于此,它幾乎可以完成所有的帶外管理的工作,比如遠程開關機、打開控制臺、掛載iso鏡像、獲取傳感器參數,故障報警等很多的操作。隨著redfish作為新一代的帶外管理標準被幾乎所有的主流廠商采用,裸金屬的運維管理會變得更加的便捷,我們也會緊跟最新的技術,把華云的裸金屬管理做得更好。