云服务器带外管理-从IPMI到RedFish
想當年(其實就是前年)碩士期間給導師上架服務器到學校機房,其實主要就是EDA服務器(用于跑IC設計軟件),是第一次面對占地半個樓層的機房(之前的眼界也就是幾十臺機器的網吧)。那種感覺,想象一下,你來到一個鋼鐵森林,Funcy的燈光閃爍。你正想欣賞這充滿科技感的奇異景象,忽然同時有幾千只蟬在你的四周聒噪,仿佛你是個大號母蟬,那聲音就像有兩架黑鷹直升飛機 武值10在你身邊起飛。一開始是有新鮮感的,后面由于實驗室經常有人使用root命令去shutdown機器(雖然給大家都分配了賬戶,但是看起來大家都想對服務器有滿滿的控制欲呀),所以要經常申請去機房啟動某些Dell機架式服務器,也就變得異常煩躁了。曾經的服務器管理確實需要進行現場管理,當CPU死機,ssh不響應的時候,拿上筆記本,推上帶有鍵鼠和蹩腳顯示器的小車去到服務器機架下,現場調試。當然,上面說的這些我在現場都沒有,只是帶著清華同方的屏幕和鼠標去的。當時心想能不能有自帶啥遠程開機等操作就可以真正無人值守了。
 
IPMI
1998年,IPMI的出現讓這一切好了不少。由Intel和HP主推的IPMI標準,引入了單獨的帶外管理芯片BMC:
 
 所謂的帶外,是指在CPU這個主計算資源之外。有了這個ARM based芯片加持,和開放免費的IPMI標準,服務器的管理上了一個臺階。IPMI定義了一個所謂的服務器管理的最小集,并標準化了相關命令集合。IPMI消息采用統一格式,它的下層是透明的,可以架構在網絡、串行/Moderm接口、IPMB(I2C)、KCS、SMIC、SMBus等不同接口上。如BIOS和BMC之間的IPMI消息是在KCS或者IPMB管道中,而遠程控制Console則和BMC通過網絡發送IPMI消息。IPMI的引入極大的方便了服務器的遠程管理。盡管IPMI標準規定的功能十分有限,但各個服務器廠商則百花齊放,在其基礎上擴展了很多實用的功能,包括Remote Console(KVM,注意不是虛擬機世界那個KVM),Remote Media等等新鮮實用的功能。我可以坐在我的cubicle里,把我的筆記本上插的U盤Remote Mount到某個服務器中,更新其中的BIOS或者操作系統,并通過KVM監視進度。太方便了。
 但隱患已經埋下,這些繁雜的功能沒有統一的標準,各家都不通用,而一個云服務廠商為了保障供應鏈往往會采購不同的品牌的服務器,從而造成了極大的混亂。IPMI更多的是單點的服務,擴展性(Scale Out)差。而這些僅僅是開始,在它發明的后很長時間,IPMI的管理網絡是一個專有的網絡,只有授權的用戶才能訪問,這導致其在開始設計的時候就對安全性考慮有所欠缺。在爆出安全漏洞后,IPMI2.0增加了增強身份認證(RAKP+、SHA-1等),但其后更有別的漏洞爆出。業界呼喚一種新的,重新設計的新標準,一勞永逸的解決這些問題,于是RedFish應運而生,IPMI也在2015年公布2.0 v1.1標準[1]后,不再更新,被RedFish永久代替,Intel也宣布不再維護,號召大家轉戰RedFish[2]。
RedFish
RedFish標準由DMTF組織的SPMF論壇維護[3]。它的初始提出者和IPMI初始提出者幾乎一樣,為Intel,HPE(HP拆分),Dell和Emerson。在標準訂立之初,就設定了以下目標:
第四條十分淺顯易懂,也就是現在支持IPMI的BMC上,不需要(或者很小)硬件改動,就可以支持RedFish,也就是硬件兼容。安全性依賴TLS-Secured HTTP,也就是HTTPS來保證。高可擴展性通過定義所有的API為RESTful形式的API來完成。REST(REpresent State Transfer,REST),這個概念從Web API而來,相對于傳統的SOAP API,RESTful的API定義很簡單(如:POST,GET,PUT或DELETE),將對象的狀態State,用JSON或XML格式在服務器和Client之間傳遞,這也是它的名字的由來。
這些訪問的數據格式都是JSON形態的數據。JSON(JavaScript Object Notation) 脫胎于JavaScript,不過這并不代表JSON無法使用于其他語言,它現在迅速成為一種現代數據格式。它比XML簡單,也是實現人類可讀數據界面的重要手段。關于它我就不展開了,網上資料很多。
光有RESTful API和JSON格式數據是不夠的。RedFish還引入OData,定義了一組常見的 RESTful Schema,提供 API 之間的互操作性。如描述JSON有效負載的模式、URL約定、通用屬性等等。
感興趣的朋友可以閱讀RedFish中文白皮書[4],想追究細節的朋友可以閱讀RedFish Spec[5]
自RedFish在2014年推出以來,幾乎所有重要的大廠都已經開啟了“紅魚”之旅。如Dell在其iRAC中加入了RedFish[6],SuperMicro引入了RedFish[7]。值得一提的是,國產之光的華為服務器的iBMC中也全面支持了RedFish[8],國產BIOS和BMC領軍企業百敖軟件自研BMC中也全面支持了RedFish[9]。最后要多說一句,RedFish和IPMI并不矛盾,很多現有BMC同時支持IPMI 2.0和RedFish,有些甚至在IPMI上包裝了一層RedFish界面。全面淘汰IPMI還需時日,同時支持兩者也保證了過渡的平滑性。
參考:
 [1] IPMI Spec:https://www.intel.com/content/www/us/en/servers/ipmi/ipmi-technical-resources.html
 [2] IPMI Home: https://www.intel.com/content/www/us/en/products/docs/servers/ipmi/ipmi-home.html
 [3] RedFish官網: https://redfish.dmtf.org/
 [4] Red白皮書: https://www.dmtf.org/sites/default/files/DSP2044%20Redfish%20%E7%99%BD%E7%9A%AE%E4%B9%A6%201.0.0.pdf
 [5] RedFish Spec: https://www.dmtf.org/sites/default/files/standards/documents/DSP0266_1.10.0.pdf
 [6] Dell RedFish: http://cdn.tony-yin.site/Implementation%20of%20the%20DMTF%20Redfish%20API%20on%20Dell%20EMC%20PowerEdge%20Servers.pdf
 [7] 超微RedFish: http://cdn.tony-yin.site/RedfishRefGuide.pdf
 [8] 華為RedFish: https://support.huawei.com/view/PdfRead/EDOC1000126991/SUPE_DOC/k001/document.pdf
 [9] 百敖BMC: http://www.byosoft.com.cn/gj5/index.htm
總結
以上是生活随笔為你收集整理的云服务器带外管理-从IPMI到RedFish的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 20210422-微信刷脸支付获取调用凭
- 下一篇: py将dicm格式图片转为jpg格式
