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