IPMI

在介绍redfish前,先介绍一下IPMI标准。

市面上服务器市场厂商众多,知名的有Intel、NEC、DELL、HP等,各家厂商有各自不同的硬件配置以及针对自己服务器的硬件配置而编写的软件,所以不同厂商编写的软件无法应用到另一家的硬件上,导致大部分软件无法实现跨平台。服务器购买方可能会购买不同服务器厂商的服务器,各家厂商管理方式的不同为购买方管理服务器带来了极大的不便。

因此,在1998年Intel、DELL、HP、NEC及SuperMicro等公司共同制定出IPMI协议。

IPMI是Intelligent Platform Management Interface的缩写,即智能型平台管理接口,是管理基于 Intel结构的企业系统中所使用的外围设备采用的一种工业标准。用户可以利用IPMI监视服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。而且更为重要的是IPMI是一个开放的免费标准,用户无需为使用该标准而支付额外的费用。

IPMI 的基础在于运行于BMC(基板管理控制器)上的专业固件。BMC完全独立于服务器的CPU/BIOS/OS而存在的,即使系统不开启,只要给它供电就它可以正常工作,它有自己完整的一套系统,有自己的CPU(ARM)、OS、储存设备等,就相当于服务器上有两套系统:一套业务系统,一套管理业务系统和硬件的系统。IPMI良好的自治特性便克服了以往基于操作系统的管理方式所受的限制,例如操作系统不响应或未加载的情况下其仍然可以进行开关机、信息提取等操作。

在工作时,所有的IPMI功能都是向BMC发送命令来完成的,命令使用IPMI规范中规定的指令,BMC接收并在系统事件日志中记录事件消息,维护描述系统中传感器情况的传感器数据记录。在需要远程访问系统时,IPMI新的LAN上串行(SOL)特性很有用。SOL改变IPMI会话过程中本地串口传送方向,从而提供对紧急管理服务、Windows专用管理控制台或Linux串行控制台的远程访问。BMC通过在LAN上改变传送给串行端口的信息的方向来做到这点,提供了一种与厂商无关的远程查看启动、操作系统加载器或紧急管理控制台来诊断和维修故障的标准方式。

随着时代发展,IPMI规范的局限性也越发明显。由于IPMI更多的是单点的服务,所以其扩展性(Scale Out)较差,而这些仅仅是开始,在它发明的后很长时间,IPMI的管理网络是一个专有的网络,只有授权的用户才能访问,这导致其在开始设计的时候就对安全性考虑有所欠缺。在爆出安全漏洞后,IPMI2.0增加了增强身份认证(RAKP+、SHA-1等),但其后更有别的漏洞爆出。业界呼唤一种新的,重新设计的新标准,一劳永逸的解决这些问题,于是RedFish应运而生,IPMI也在2015年公布2.0 v1.1标准后,不再更新,被RedFish永久代替,Intel也宣布不再维护,号召大家转战RedFish。

什么是redfish?

Redfish 规范的第一个版本于2015年8月由分布式管理任务组( Distributed Management Task Force,DMTF )发布,是一个开放的行业标准规范,为可扩展平台硬件提供简单,现代和安全的管理功能。它是一个超媒体API,所以它能够通过一个一致的接口来表示各种实现。它有管理数据中心资源、处理事件、长期任务和发现的机制。基于Redfish统一的管理接口规范普及之后,未来能够有效减少不同服务器硬件管理接口带来的大量适配和开发和测试工作。目前,RedFish标准由DMTF组织的SPMF论坛维护。

Redfish是一种基于HTTPs服务的管理标准,利用RESTful接口实现设备管理。每个HTTPs操作都以UTF-8编码的JSON格式(JSON是一种key-value对的数据格式)提交或返回一个资源或结果,就像Web应用程序向浏览器返回HTML一样。该技术具有降低开发复杂性,易于实施、易于使用而且提供了可扩展性优势,为设计灵活性预留了空间。

Redfish 在标准订立之初,就设定了以下目标:

1.安全

2.高可扩展管理(Scalable)

3.人类可读数据界面(Human readable data)

4. 基于现有硬件可实现

开发Redfish的主要原因之一是解决遗留IPMI无法有效解决的安全需求。例如,Redfish基于其网络传输协议的超文本传输协议安全(HTTPS)/安全套接字层(SSL)标准,这比唯一的IPMI网络协议更普遍、更安全、更可审计。

最后一条浅显易懂,也就是现在支持IPMI的BMC上,不需要(或者很小)硬件改动,就可以支持RedFish,也就是硬件兼容。高可扩展性通过定义所有的API为RESTful形式的API来完成。REST(REpresent State Transfer,REST),这个概念从Web API而来,相对于传统的SOAP API,RESTful的API定义很简单(如:POST,GET,PUT或DELETE),将对象的状态State,用JSON或XML格式在服务器和Client之间传递,这也是它的名字的由来。

Redfish = REST  API + 软件定义的服务器(数据模型)。
         简单来说就是规定了某些资源,通过RESTful API操作这些资源。

下图为DMTF组织定义的Redfish资源示意图,我们可以看到3大分支——Systems(系统的逻辑视图) 、Chassis(系统的物理视图)和 Managers(BMC功能)。

         Redfish依赖于RESTful(Representational State Transfer)编程接口,该接口允许使用多种编程语言进行简单查询。数据传输在HTTPS上,数据格式为JSON,支持Apps、GUI和脚本多种调用方式。HTTP容易被运维人员理解,并且拥有众所周知的安全模型。JSON是一种现代化数据格式,比XML要简单,普通人都能看懂。运维人员可以使用他们现有的 DevOps (运维/开发) 技能和工具链来执行系统管理任务。

(一)Redfish简介相关推荐

  1. OpenBmc开发1:openbmc简介

    1.OpenBMC简介 在说OpenBMC之前,先说一下BMC(Baseboard Manager Controller,简称BMC),BMC应用了IPMI架构的智能性,是嵌入在计算机(通常是服务器) ...

  2. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

  3. Docker学习(一)-----Docker简介与安装

    一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...

  4. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  5. TensorRT简介

    TensorRT 介绍 引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference) ...

  6. 谷粒商城学习笔记——第一期:项目简介

    一.项目简介 1. 项目背景 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O B2B 模式(Business to Business),是指商家和商家建立的商业关系.如阿里巴巴 B ...

  7. 通俗易懂的Go协程的引入及GMP模型简介

    本文根据Golang深入理解GPM模型加之自己的理解整理而来 Go协程的引入及GMP模型 一.协程的由来 1. 单进程操作系统 2. 多线程/多进程操作系统 3. 引入协程 二.golang对协程的处 ...

  8. Linux 交叉编译简介

    Linux 交叉编译简介 主机,目标,交叉编译器 主机与目标 编译器是将源代码转换为可执行代码的程序.像所有程序一样,编译器运行在特定类型的计算机上,输出的新程序也运行在特定类型的计算机上. 运行编译 ...

  9. TVM Operator Inventory (TOPI)简介

    TOPI简介 这是 TVM Operator Inventory (TOPI) 的介绍.TOPI 提供了比 TVM 具有更高抽象的 numpy 风格的,通用操作和调度.TOPI 如何在 TVM 中,编 ...

  10. 计算机视觉系列最新论文(附简介)

    计算机视觉系列最新论文(附简介) 目标检测 1. 综述:深度域适应目标检测标题:Deep Domain Adaptive Object Detection: a Survey作者:Wanyi Li, ...

最新文章

  1. 微信小程序多张图片和表单一起上传,验证表单及进度条的实现完整代码
  2. eclipse java debug 日志输出到文件里面
  3. maven中properties标签定义变量
  4. redis 内存不足 排查_Redis 系统学习之 redis 内存模型
  5. linux版本 如何查kali_000_Kali Linux版本查看和apt源配置
  6. 怎么把matlab中的图导出,matlab的数据能保存到excel表格-如何将matlab 中输出的图形保存到Excel中去,详细点...
  7. 华为 P40 或首发鸿蒙系统;新 iPhone Logo 移至中间;React 组件库 uiw 3.4.0 发布 | 极客头条​...
  8. f1c200s核心板_F1C200s NS 2009 驱动
  9. matlab转置的问题
  10. dijkstra模板(fast)
  11. 利用HY-SRF05 超声波模块实现超声波的测距避障
  12. 2021年全国职业院校技能大赛 “大数据技术与应用”—模拟赛题(三)
  13. 35岁的程序员:第16章,双重担忧
  14. 卓聚社区,新发现的全能社区
  15. 180701 icon文件查找与转换网站
  16. Hadoop下载地址大全
  17. 美元指数是什么,为什么会对伦敦金有影响
  18. 如何配置本地yum源
  19. 上班族计算机学哪个专业好,上班族深圳自考选哪个专业好?
  20. pythontcl协议_OTcl与C++,NS2是如何识别并调用执行协议的 转自百思论坛

热门文章

  1. YDOOK:VSC VisioStudio Code 设置 鼠标滚轮缩放字体大小 滚轮控制字体放大缩小
  2. 年度最骚语言之文言文编程!!!
  3. 湖南中斯:使用SpreadJS 构建云表单
  4. centos查看yum上jdk的版本
  5. Excel度分秒转度--公式大解析
  6. 精讲RestTemplate第6篇-文件上传下载与大文件流式下载
  7. 微信APP支付-Android+springboot搭建后端(一)
  8. Android之ViewStub
  9. MyBatis学习——第五篇(手动分页和pagehelper分页实现)
  10. 正则表达式提取省市区县乡镇等