Saturday, April 6, 2024

Redfish 简介

伺服器管理標準

基於 RESTful API

JSON 格式的 HTTPS

Schema-backed但可讀性高

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誕生的契機就出現了

What is Redfish

  • 用於 IT 基礎架構的行業標準 RESTful API
  • 基於 Odata v4 的 JSON 格式的 HTTPS
  • 應用程式、GUI 和腳本同樣可用
  • Schema-backed但可讀性高

Redfish Key technology 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)來判斷請求的狀態



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

  • GET:獲取,例如獲取系統帳戶訊息GET /redfish/v1/AccountService
  • POST:
    • 新增,例如新增一個帳戶 POST /redfish/v1/AccountService/Accounts {"id":"xxx" "password":"xxx"}
    • 執行,例如執行韌體更新,開關機等動作
  • 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

OData


From: https://iris123321.blogspot.com/2022/02/10-redfish.html

No comments:

Post a Comment

n8n index

 【n8n免費本地端部署】Windows版|程式安裝x指令大補帖  【一鍵安裝 n8n】圖文教學,獲得無限額度自動化工具&限時免費升級企業版功能