云服务器带外管理-从IPMI到RedFish

网友投稿 1520 2022-09-30

云服务器带外管理-从IPMI到RedFish

云服务器带外管理-从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。在标准订立之初,就设定了以下目标:

安全高可扩展管理(Scalable)人类可读数据界面(Human readable data)基于现有硬件可实现第四条十分浅显易懂,也就是现在支持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:[2] IPMI Home: [3] RedFish官网: [4] Red白皮书: [5] RedFish Spec: [6] Dell RedFish: [7] 超微RedFish: [8] 华为RedFish: [9] 百敖BMC: http://byosoft.com-/gj5/index.htm

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot之Jpa通用接口及公共方法使用示例
下一篇:微信小程序打不开什么原因(微信小程序打不开什么原因限时未成年)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~