DMTF Redfish 概念介绍

DMTF Redfish 概念介绍这几年 BMC 领域中最受瞩目的两件事情就是 Redfish 的出现和 OpenBMC 的崛起 所以今天我想用 10 分钟来聊聊下一代数据中心基础设施管理标准 红鱼 Redfish 红鱼的诞生 Redfish 是在 2015 年由 DMTF DistributedM 这个组织开始着手建立的伺服器管理标准 官方的描述是 Astandard Redfishisdes

今天来聊聊 Redfish

Redfish 的诞生

Redfish 是在2015年由DMTF(Distributed Management Task Force) 这个组织开始着手建立的伺服器管理标准,官方的描述是

A standard, Redfish is designed to deliver simple and secure management for converged, hybrid IT and the Software Defined Data Center (SDDC).

作为一项标准,Redfish 旨在为converged, hybrid IT 和  SDDC 提供简单而安全的管理

这边的SDDC就是”Software Defined Data Center (SDDC) – 软件定义数据中心”,简单来说就是希望未来能提供单一软件工具集来管理这些虚拟化资源。但在伺服器的领域,长期发展且成熟的协定一直是IPMI,对于数据中心的管理者/客户端的反馈是他们并不了解IPMI这个协定,他们的人员都需要重新学习,而且很多现代化的管理工具并不能直接应用在IPMI上面,所以Redfish诞生的契机就出现了

什么是 Redfish 

  • 用于 IT 基础架构的行业标准 RESTful API
  • 基于 Odata v4 的 JSON 格式的 HTTPS
  • 应用程序、GUI 和脚本同样可用
  • Schema-backed但可读性高

Redfish Data model

Redfish Data model (红鱼的资料模型)_yeiris的博客-CSDN博客今天来聊个简单的概念,Redfish 的 Data model上面是Redfish Spec的内容,提到Redfish 将 Protocol 和 Data model 的版本分开了,那这边的Data model 是指什么呢?什么是Data model ?在软体工程中,在系统开发前,需要先作需求的统计和分析,这时候我们会将需要处理的资料(Data requirement) 作初步的概念设计(conceptual design),产生概念模型 (Conceptual schema),这是一个hiDMTF Redfish 概念介绍https://blog.csdn.net/yeiris/article/details/123242151

Redfish 关键技术

HTTP

超文本传输协议 (HTTP) 是分布式、协作、超媒体信息系统的应用层协议。它是一种通用、无状态的协议,透过扩展其请求方法(Method)错误代码(Status-Code)头标(Header),可用于超文本之外的许多任务。

底下是HTTP协议的概念图,详细可以参考Hypertext Transfer Protocol — HTTP/1.1,例如我们想要看Redfish 的Service root URL ,Request-Line就是 GET   /redfish/v1   http/1.1

我们可以透过回传响应中的错误代码(Status-Code)来判断请求的状态

DMTF Redfish 概念介绍

 常用的Method(GET, POST, PATCH, DELETE)

  • GET:获取,例如获取系统帐户讯息GET /redfish/v1/AccountService
  • POST:
    1. 新增,例如新增一个帐户 POST /redfish/v1/AccountService/Accounts {“id”:”xxx” “password”:”xxx”}
    2. 执行,例如执行韧体更新,开关机等动作
  • PATCH:更新,例如更新帐户名字 PATCH /redfish/v1/AccountService/Accounts/01 {“Name”: “123”}
  • DELETE:删除,例如删除一个帐户 DELETE /redfish/v1/AccountService/Accounts/01

常見的错误代码(Status-Code)

Status-Code 是由三个数字所组合组成的,目的是企圖去理解和满足请求

  • 1xx:Informational (信息):提供协议级信息
  • 2xx:Success(成功):客户端请求被接受(成功)
    • 200:OK
    • 201:  Created:申请资源创建成功
    • 202:Accepted (已接受):用于报告异步操作成功
    • 204:No content (无内容):当 API 想要发送空内容或没有内容时响应体
  • 3xx:Redirection (重定向):客户端请求由服务器重定向到满足客户端请求的不同端点
    • 301:Moved Permanently (永久移动):用于重新定位的资源
    • 302:Found (找到)
  • 4xx:Client error(客户端错误):客户端错误
    • 400:Bad request (错误请求)
    • 401:Unauthorized (未经授权)
    • 403:Forbidden (禁止)
    • 404:Not found (未找到)
    • 405:Method not allowed (方法不允许)
  • 5xx:Server error (服务器错误)
    • 500: Internal server error(内部服务器错误)

HTTPS (Hyper Text Transfer Protocol Secure)

HTTPS 对在浏览器和网站之间发送的数据进行加密,使其比 HTTP 更安全,通信协议使用传输层安全性 (TLS) 或以前的安全套接字层 (SSL) 进行加密。 TLS的概念可以参考 [OpenBMC] LDAP 设定(三) – LDAPS(LDAP over TLS) TLS的部分

Restful API

REST( Representational State Transfer, 表现层状态转移),它是一种设计风格,RESTful 是转为形容词,RESTful 形容以此规范设计的 API,称为 RESTful API

它的约束(constraints)有以下几项

  • 主从架构 Client-server
  • 无状态 Statelessness
  • 可暂存 Cacheable
  • 统一介面 Uniform interface
  • 阶层式系统 Layered systems: 每一个资源有对应至少一个的URI
  • [Optional] 依需求提供程式 Code on demand

OData

OData(The Open Data Protocol) 是一种基于REST的数据访问方式,该标准由微软发起,前三个版本1.0、2.0、3.0是微软开放标准,第4.0版于2014年在OASIS投票通过成为 开放工业标准。

The Open Data Protocol (OData) enables the creation of REST-based data services which allow resources, identified using Uniform Resource Locators (URLs) and defined in a data model, to be published and edited by Web clients using simple HTTP messages.

This specification defines the core semantics and the behavioral aspects of the protocol.

OData – the Best Way to REST

但odata我没有很熟,所以这边只会简单介绍一些Redfish会用到的(我大概知道的)

OData‑URL

Odata定义了一组推荐的(但不是必需的)规则,用于构建 URL 以识别 OData 服务公开的数据和元数据,以及一组保留的 URL 查询字符串运算符。

DMTF Redfish 概念介绍

  • Service root URL:  url 的服务根是服务的基本 url。当对该 url 发出 GET 请求时,它将返回一个服务文档,该文档定义了通过该服务可用的所有资源。Redfish 的Service root URL 是 /redfish/v1 这在redfish spec中有定义
  • Resource path : REST 定义的资源是可通过 HTTP 使用标准 GET、POST、PUT、PATCH 和 DELETE 方法访问的对象。
  • Query options: 查询选项本质上是标准化的查询字符串参数,可以传递给 OData 服务以对请求的资源运行查询。例如对资源的filter, count, skip, order, search 和 format。所有 OData 查询选项都以 $ 符号为前缀,并且不区分大小写。

另外在service root URL后面加上$metadata可以看到Service的实体模型(entity model),内容根据 [OData-CSDLJSON] 或 [OData-CSDLXML] 

DMTF Redfish 概念介绍

OData-CSDLXML

OData 服务是根据实体模型来描述的。 CSDL(Common Schema Definition Language) 使用XML(Extensible Markup Language ) 定义了由 OData 服务公开的实体数据模型的表示法,以及来自 W3C XML 模式定义语言的进一步构建块 (XSD) 。

简单来说,就是定义我们常听到的Redfish的Schema和Property,这样使用者可以知道它会得到的讯息格式,进而先处理(微软有些tool可以直接将CSDL转为结构或资料库),这部分DMTF有CSDL的教学文件,同时也有一个Redfish Service Validator 的tool 来验证我们的Redfish Services有没有符合定义的CSDL

Redfish_School-Introduction_to_CSDL (dmtf.org)DMTF Redfish 概念介绍https://www.dmtf.org/sites/default/files/Redfish_School-Introduction_to_CSDL.pdfGitHub – DMTF/Redfish-Service-ValidatorDMTF Redfish 概念介绍https://github.com/DMTF/Redfish-Service-Validator

OData-JSON

OData 定义一些特定的property 来扩展 JSON。举一些常见的例子,詳細可以參閱Spec

  • @odata.id:entity-id与实体的规范URL相同,通常是必须存在的
  • @odata.count:计数控制信息仅出现在响应中,可以注释在任何集合中

Redfish 的版本怎么看

Redfish的版本怎么看 ? CSDN博客DMTF Redfish 概念介绍https://blog.csdn.net/yeiris/article/details/122759365

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227791.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午8:32
下一篇 2026年3月16日 下午8:32


相关推荐

  • RabbitMQ消费消息坑:failed to convert serialized Message content

    RabbitMQ消费消息坑:failed to convert serialized Message content文章目录一、问题描述二、解决方案方案一:共同使用一个对象方案二:消息JSON序列化(推荐)2.1.生产者发送消息JSON序列化2.2.消费者接收消息JSON反序列化三、测试一、问题描述2022-05-0314:01:40.630WARN16876—[ntContainer#0-2]s.a.r.l.ConditionalRejectingErrorHandler:ExecutionofRabbitmessagelistenerfailed.org.springfram

    2022年6月16日
    634
  • window.getcomputedstyle(get position)

    获取元素CSS值之getComputedStyle方法熟悉一、碎碎念~前言我们都用过jQuery的CSS()方法,其底层运作就应用了getComputedStyle以及getPropertyValue方法。对于那些只想混口饭吃的人来讲,晓得CSS()如何使用就足够了。对于希望在JS道路上越走越远的来人说,简单了解一些JS库底层实现对自己的学习很有帮助。可能谈不上信手拈来的使用,至少对创…

    2022年4月11日
    35
  • arcgis python实例_arcgis二次开发_arcgis二次开发python_arcgis二次开发实例

    arcgis python实例_arcgis二次开发_arcgis二次开发python_arcgis二次开发实例[1.rar]-QQ连连看的源码.单消秒杀挂机等功能喜欢的朋友请拿去研究[qqCHAR.rar]-qq验证码识别程序可以叫准确的识别出qq登陆前的验证码[1.rar]-本书以Visualc++作为开发语言,结合大量实例,详细介绍了利用Arcobjects组件进行GIS二次开发的方法和过程。书中在讲述利用Arcobjects实现GIS功能的基础上,重点介绍了在Arcobjects环境…

    2022年6月17日
    27
  • 漏洞挖掘丨敏感信息泄露+IDOR+密码确认绕过=账户劫持

    漏洞挖掘丨敏感信息泄露+IDOR+密码确认绕过=账户劫持获得账户auth_token目标网站是一个工作招聘门户网站,测试保密原因暂且称其为redacted.com。一开始,我登录以应聘者身份去测试CSRF或某些存储型XSS,但没什么发现。接下来,我就想到了越权测试(IDOR),为此,我又创建了另外一个账号,两个账号一起可以测试如注册、登录、忘记密码等功能点的越权可能。创建账号前我开启了流量抓包想看看具体服务端的响应,注册开始时,网站会跳出一个提示,…

    2022年6月10日
    33
  • 端口详解

    端口详解

    2021年4月28日
    137
  • python爬12306并买票_python开发12306抢票

    python爬12306并买票_python开发12306抢票说明文字:1.本项目只是一个练习,熟悉python爬虫技术,没有任何用途2.最后运行的结果有时候会成功,有时候会显示错误界面,如下图所示。因为12306怎么可能允许你一直爬它呢准备工作:项目结构:…

    2025年6月21日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号