背景
针对数据中心中大量的服务器,如何能够实现针对这些裸设备(裸金属)进行带外管理?之前的解决方案是使用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作为新一代的带外管理标准被几乎所有的主流厂商采用,裸金属的运维管理会变得更加的便捷,我们也会紧跟最新的技术,把华云的裸金属管理做得更好。