Redfish 规范的第一个版本于2015年8月由分布式管理任务组( Distributed Management Task Force,DMTF )发布,是一个开放的行业标准规范,为可扩展平台硬件提供简单,现代和安全的管理功能。基于Redfish统一的管理接口规范普及之后,未来能够有效减少不同服务器硬件管理接口带来的大量适配和开发和测试工作。
下图为DMTF组织定义的Redfish资源示意图,我们可以看到3大分支——Systems(系统的逻辑视图) 、Chassis(系统的物理视图)和 Managers(BMC功能)。
Redfish依赖于RESTful(Representational State Transfer)编程接口,该接口允许使用多种编程语言进行简单查询。数据传输在HTTPS上,数据格式为JSON,支持Apps、GUI和脚本多种调用方式。HTTP容易被运维人员理解,并且拥有众所周知的安全模型。JSON是一种现代化数据格式,比XML要简单,普通人都能看懂。运维人员可以使用他们现有的 DevOps (运维/开发) 技能和工具链来执行系统管理任务。
Redfish中的URI符合RFC 3986 规范,以一个URL为例介绍URL的三个组成部分。
URL示例:https://mgmt.vendor.com/redfish/v1/Systems/1
- 模式和授权,授权可以进一步分为:用户信息、主机和端口。本示例中只有主机:https://mgmt.vendor.com
- 根服务和版本 :/redfish/v1/
- 唯一的资源路径:Systems/1
以Dell PowerEdge服务器为例,iDRAC with Lifecycle Controller从v2.30.30.30版本已经开始支持Redfishv1.0,其操作模型就是Get、Post这样的REST方式。在Dell服务器Redfish root下面的分类包括System逻辑视图、Chassis全局清单、iDRAC操作、报警、iDRAC会话功能和运行任务服务,这与前面列出的Redfish通用资源定义是基本对应的。
除了服务器外,Redfish也在逐渐扩展对存储、网络方面的支持,Redfish很有可能成为未来数据中心管理领域的标准。
Redfish里有Profile的概念,Profile定义了服务器、交换机等设备的具体接口标准。
Redfish 目前主要实现都基于OpenBMC,当然也可基于其它BMC。最后列出几款支持Redfish 的 OCP 白牌设备:
- 基于OpenBMC 和 Redfish 的开放服务器 ON5263M5 (浪潮)
- 400G开放网络交换机 AS9716-32X (Edge-core)
- 基站网关路由器 AS7316-26XB (Edge-core)
- XGS-PON OLT ASXvOLT16 (Edge-core)
- ……