Redfish下一代数据中心管理标准详解和实践

[图片上传失败...(image-fb4cba-1588146034160)]

前言

纵观现在的服务器从以前闭源的管理系统,如DELL的OpenManage和iDRAC,华为的iBMC,惠普的OneView和iLO,联想的XClarity和XClarity Controller 嵌入式管理,IMM2(收购自IBM的 SystemX PC Server系列)等等,都在积极拥抱开源自动化工具如Ansible等开源软件,在这种情况下被称作下一代数据中心管理标准的Redfish出现了。

更新历史

2020年04月28日 - 初稿

阅读原文 - https://wsgzao.github.io/post/redfish/


Redfish简介

DMTF’s Redfish® is a standard designed to deliver simple and secure management for converged, hybrid IT and the Software Defined Data Center (SDDC). Both human readable and machine capable, Redfish leverages common Internet and web services standards to expose information directly to the modern tool chain.

https://www.dmtf.org/standards/redfish

DMTFRedfish®是一个标准API,旨在为融合、混合IT和软件定义数据中心(SDDC)提供简单和安全管理。

Redfish出现之前,现代数据中心环境中缺乏互操作管理标准。随着机构越来越青睐于大规模的解决方案,传统标准不足以成功管理大量简单的多节点服务器或混合基础设施。IPMI是一种较早的带外管理标准,仅限于“最小公共集”命令集(例如,开机/关机/重启、温度值、文本控制台等),由于供应商扩展在所有平台上并不常见,导致了客户常用的功能集减少。许多用户开发了自己的紧密集成工具,但是也不得不依赖带内管理软件。

而对于企业级用户来说,设备都是上千台,其需要统一的管理界面,就要对接不同供应商的API。当基本IPMI功能已经不太好满足大规模Scale-out环境时,如何以更便捷的方式调用服务器高级管理功能就是一个新的需求。

为了寻求一个基于广泛使用的工具来加快发展的现代接口,现如今,客户需要一个使用互联网和web服务环境中常见的协议、结构和安全模型定义的API

Redfish可扩展平台管理APIThe Redfish Scalable Platforms Management API)是一种新的规范,其使用RESTful接口语义来访问定义在模型格式中的数据,用于执行带外系统管理 (out of band systems management)。其适用于大规模的服务器,从独立的服务器到机架式和刀片式的服务器环境,而且也同样适用于大规模的云环境。

Redfish的第1版侧重于服务器,为IPMI-over-LAN提供了一个安全、多节点的替代品。随后的Redfish版本增加了对网络接口(例如NICCNAFC HBA)、PCIe交换、本地存储、NVDIMM、多功能适配器和可组合性以及固件更新服务、软件更新推送方法和安全特权映射的管理。此外,Redfish主机接口规范允许在操作系统上运行应用程序和工具,包括在启动前(固件)阶段与Redfish管理服务沟通。

在定义Redfish标准时,协议与数据模型可分开并允许独立地修改。以模式为基础的数据模型是可伸缩和可扩展的,并且随着行业的发展,它将越来越具有人类可读性定义。

Redfish应用场景

可能上面那一大段晦涩的介绍描述让你难以理解Redfish的用处,简而言之,如今大多数服务器厂商(比如SupermicroDell等等)都会自带IPMI系统,这个系统是独立装在主板芯片上,用户可以通过浏览器远程控制服务器,比如开关、装系统、进入服务器终端等等,而不用跑到机房忍受过高或过低的温度、忍受服务器嘈杂的声音、忍受蹩脚的显示器……

传统的IPMI是带来了很多的便捷,但是当服务器规模变大后,单一服务器的管理已经满足不了需求,用户期望能够批量管理服务器,比如笔者想一次性给100个服务器安装系统,并且这100个服务器并不都是同一厂商,不同厂商的IPMI操作都不一样,比如DelliDRAC,你还需要专门学习iDRAC使用和各种对接,这会带来很多困扰。而Redfish标准的出现彻底改变这种情况,它是凌驾于所有服务器之上的一个标准,对服务器的基本操作都是统一的,并且是基于Restful API的方式实现。所以客户可以利用ansible等工具轻松实现自动化批量管理大规模服务器。

服务器供应商都希望成为Redfish生态系统的一份子,但他们不想放弃对自家的服务器的管控机制。因此,他们会在Redfish规定范围之外,持续强化其API支持的功能,比如DellRedfish接口就要比Supermicro多很多,强大很多。

为什么选择REST、HTTP以及JSON?

Redfish将语言支持与普遍存在的REST、HTTP和JSON相结合,使IT管理任务能够与其他IT和dev/ops任务的技能集和工具链结合使用。随着云生态系统采用REST,RESTful协议正在迅速取代SOAP,web API接口也紧随其后。RESTful协议比SOAP学习起来要快得多,而且它具有数据模式(因为REST严格来说不是协议)的简单性,可以直接映射到HTTP操作。

HTTP以其常用的安全模型和网络配置为管理员所熟知。

JSON正迅速成为现代数据格式。它本质上是人类可读的,比XML更简洁,拥有大量现代语言支持,是web服务API中增长最快的数据格式。

对于嵌入式可管理性环境,JSON还有一个额外的优势:大多数基板管理控制器(BMC)已经支持web服务器,通过浏览器来管理服务器已经非常普遍(通常通过Java脚本驱动的接口)。通过在Redfish中使用JSON,可以在浏览器中直接查看来自Redfish服务的数据,从而确保数据和编程接口在语义和价值上是一致的。

除了REST、HTTP和JSON之外,Redfish还采用常见的OData v4约定来描述模式、URL约定和命名,以及JSON有效负载中常见属性的结构。越来越多的通用客户端库、应用程序和工具生态系统使用Redfish。

它有多简单?下面显示了使用Redfish从服务器检索序列号的示例Python代码:此示例中的输出如下所示

rawData= urllib.urlopen(‘http://192.168.1.135/redfish/v1/Systems/1’) jsonData=json.loads(rawData)print(jsonData[‘SerialNumber’])

1A87CA442K

Redfish实践

更多硬件厂商的Redfish API接口可以浏览参考文章

The python-redfish project

Python环境redfish接口获取泰山服务器和鲲鹏CPU信息

pip install python-redfish

import redfish
 
login_host="https://10.93.20.10"
login_account="ADMIN"
login_password="ADMIN"
REDFISH_OBJ = redfish.redfish_client(base_url=login_host, username=login_account, password=login_password, default_prefix='/redfish/v1')
REDFISH_OBJ.login(auth="session")
response = REDFISH_OBJ.get("/redfish/v1/Systems/1", None)
print(response)
REDFISH_OBJ.logout()

基于Redfish你可以获取详细的硬件资产信息与CMDB联动

[图片上传失败...(image-95de2d-1588146034160)]

参考文章

DMTF’s Redfish

Redfish 融合、混合IT的简单和安全管理

Redfish 白皮书

Redfish:下一代数据中心管理标准

Redfish 详解

Supermicro Redfish Reference Guide

Redfish API with Dell integrated Remote Access Controller

华为服务器 iBMC Redfish 接口说明

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容