Redfish 技術(shù)的白皮書_第1頁(yè)
Redfish 技術(shù)的白皮書_第2頁(yè)
Redfish 技術(shù)的白皮書_第3頁(yè)
Redfish 技術(shù)的白皮書_第4頁(yè)
Redfish 技術(shù)的白皮書_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

RedfisWitPaperRedfish白皮書目什么是Redfish 為什么采用REST、JSON和 為什么采用超媒體 入 基本概 操 引 集 動(dòng) 模 更多概 會(huì) 冗 服 注冊(cè) 報(bào)文 PUTvs 當(dāng)前的配置vs設(shè) 事 冪等 創(chuàng)建、使用、刪除:POST/GET/DELETE(非冪等性 做動(dòng)作:用“Acon”屬性(非冪等性) 結(jié) 常見用 殼中 什么是RedfishRedfish是一種管理標(biāo)準(zhǔn),它使用超媒體RESTful接口的數(shù)據(jù)模型表示法。此模型以標(biāo)準(zhǔn)的機(jī)器可讀模式表示,其消息負(fù)載以JSON來(lái)表示。協(xié)議本身ODatav4RedfishAPIAPI,可通過(guò)統(tǒng)一的接口來(lái)表示各種實(shí)現(xiàn)。RedfishAPI提供數(shù)據(jù)中心資源管理、事件處理、長(zhǎng)時(shí)間任務(wù)以及首先,市場(chǎng)正在從傳統(tǒng)的數(shù)據(jù)中心環(huán)境向可擴(kuò)展的解決方案轉(zhuǎn)變??蓴U(kuò)(而非集中式),即由大量簡(jiǎn)單的服務(wù)“牲畜”,而不是“寵物”目前的擴(kuò)展管理缺少功能性和同構(gòu)接口。例如,IPMI功能的使用僅限于“最小公分母”命令(如PowerOn/Off/Reboot、temperaturevalue、textconsole)。平臺(tái)管理規(guī)范隨著OEM擴(kuò)展增多逐漸變得零散,致使管理功能無(wú)法滿足零散客其他標(biāo)準(zhǔn)(SMASH)無(wú)法實(shí)現(xiàn)通用性要求。這是由其復(fù)雜性決定的。CLPWSWS系統(tǒng),但它本身的I/O硬件環(huán)境正在迅速變化。將多個(gè)系統(tǒng)置于一個(gè)傳統(tǒng)“刀片”(如機(jī)殼機(jī)箱管理器)API的形式使用協(xié)議、架構(gòu)和安全模型。這些API的優(yōu)勢(shì)在于,客戶已自行研制了加速開發(fā)的工具??蛻?無(wú)需廠商推動(dòng))需要的就是以JSON格式表示數(shù)據(jù)的RESTful協(xié)議。為什么采用REST、JSON和REST正在迅速取代SOAP成為一種主流協(xié)議。整個(gè)云生態(tài)系統(tǒng)以及WebAPI社區(qū)都在采用REST協(xié)議。REST的學(xué)習(xí)比SOAP要快得多。REST是可以直接映射HTTP(而不是嚴(yán)格意義上的協(xié)議)。WebAPI最常用的協(xié)RESTHTTP/HTTPS。因此,RESTJRRESTRESTJSON迅速成為一種現(xiàn)代數(shù)據(jù)格式。它本質(zhì)上是人可讀的,比XML更簡(jiǎn)潔,入式管理環(huán)JSON的一大優(yōu)勢(shì)。大多數(shù)BMC已經(jīng)支持Web服務(wù)器,而通過(guò)瀏JSJSON后,Web瀏覽器可以使用直接來(lái)自其Redfish服務(wù)的數(shù)據(jù),確保通過(guò)瀏覽器和2014年最流行的編碼語(yǔ)新API中使用的數(shù)據(jù)格但下面的RESTful實(shí)踐和JSON格式化的結(jié)果是不夠的。RESTful接口的種類幾乎和應(yīng)用程序的種類一樣多,各種RESTful接口有其特定的資源類型、報(bào)頭和查詢選項(xiàng)以及結(jié)果表示法。雖然JSON提供簡(jiǎn)單易讀的表示方法,但常見屬性(如ID、類型、鏈接等)的語(yǔ)義是會(huì)根據(jù)命名約定來(lái)定義的,不同服務(wù)有不OData定義了一組常見的RESTful約定,提供API之間的互操作性采用常見的OData約定來(lái)描述JSON有效負(fù)載中的模式、URL約定、通用屬RESTfulAPIRedfish為什么采用超媒體客戶需要能夠支持海量計(jì)算平臺(tái)的通用API,而非多種接口或編程方式。他們需要的是適用于獨(dú)立服務(wù)器、超級(jí)擴(kuò)展和可分區(qū)甚至虛擬系統(tǒng)的通用API。單個(gè)固定URIAPI將無(wú)法完全顯示各種金屬片、內(nèi)部服務(wù)器以及相關(guān)管理器之此外,API必須兼具易用性和靈活性,以同時(shí)適應(yīng)簡(jiǎn)單系統(tǒng)和超級(jí)擴(kuò)系統(tǒng)。使用URL來(lái)表示相似資源的關(guān)聯(lián)和集合,這在超媒體API中已得到證明RedfishAPI,下面RedfishAPI是基于REST和JSON的,所以您只需瀏覽器即可查看Redfish實(shí)現(xiàn)。建議您的瀏覽器支持JSON格式,以便讀取數(shù)據(jù)。大多數(shù)瀏覽器JSON為了獲得真正的“Redfsh”體驗(yàn),您可以為瀏覽器下載RESTful插件,如適用于Chrome的高級(jí)REST客戶端。這樣,您就可以設(shè)置頭部,并看到HTTP代碼等瀏覽器通常會(huì)隱藏的項(xiàng)目。您還可以方便地訪問(wèn)“真正的”Redfish實(shí)您可以直接查看標(biāo)記,或通過(guò)Web服務(wù)器查看。為此,您只需訪問(wèn)一個(gè)實(shí)訪問(wèn)公共模型。在R網(wǎng)站上有一個(gè)運(yùn)行JSON的Web服將數(shù)據(jù)復(fù)制到您的Web服務(wù)器。您可以訪問(wèn)Redfish模型,并將Mock-用該路徑提供HTML頁(yè)面。例如,您可以下載nginx,設(shè)置返回JSON格HTML根Redfish是一種超媒體API。這意味著,您可以通過(guò)其它資源返回的URL獲取所有資源。由于存在一個(gè)眾所周知的URL,所有實(shí)現(xiàn)都有一個(gè)共同的起點(diǎn)。此URI即針對(duì)Redfish接口V1版本的“dfis”。URL(HTTP://部分)、節(jié)點(diǎn)(IP)URL。因此,如果您在自己的機(jī)器上使用nginx服務(wù)器,應(yīng)在瀏覽器中輸入dfis”來(lái)訪問(wèn)Redfish在以上URL中,在根服務(wù)中執(zhí)行GET操作。每個(gè)URL代表一個(gè)資源。一個(gè)資源可以是一項(xiàng)服務(wù)、一個(gè)集合、一個(gè)實(shí)體或其他結(jié)構(gòu)。但在RESTful術(shù)語(yǔ)中,URI指向資源和與資源交互的客戶端。所以,當(dāng)您看到“資源”URI資源格式由Schema來(lái)定義。RedfishSchema中規(guī)定了每個(gè)資源的格式,RedfishSchema以兩種格式定義:OData-SchemaJSONSchema格式。以O(shè)DataSchema格式(CSDL)定義,是為了便于通用OData工具和應(yīng)用程序解析。以JSONSchema格式定義,是為了應(yīng)用于其他環(huán)境,如Python腳本、JavaScript代碼和可視化。資源的結(jié)構(gòu)屬性可用作JavaScript變量。這樣可加快采用,并允許JavaScriptWeb頁(yè)面和已啟用的應(yīng)用直接使用數(shù)據(jù)。URI在重新引導(dǎo)后不會(huì)改變,但客戶端應(yīng)從/redfish/v1/啟動(dòng),并在此路徑下發(fā)現(xiàn)URI。將URI固定化是一個(gè)常見的錯(cuò)誤。Redfish是超媒體API,所以各實(shí)(即使是同一廠商的實(shí)現(xiàn))的URI是不同的。當(dāng)前狀態(tài)對(duì)象可以獨(dú)立于理想狀操作包括GET、PUT、PATCH、POST、DELETE和HEAD。在未安裝高級(jí)RESTGET執(zhí)行數(shù)據(jù)檢索。POST用于創(chuàng)建資源或使用動(dòng)作(詳見下文)。DELETEPATCHPUT用于完全替換資源(只有少數(shù)資源可被完全替換,詳見下文)。HEADGE類似,只是不返回主體數(shù)據(jù),訪問(wèn)Redfish實(shí)現(xiàn)的程序可使用HEAD來(lái)獲取結(jié)構(gòu)。Redfish有兩種版本,協(xié)議版本和資源模式版本。協(xié)議版本包含在URIdfis開始。這表示您正在訪問(wèn)協(xié)議版本。V1URIRedfish規(guī)范V1版本。注意,因?yàn)镽edfish基于ODatav4,實(shí)現(xiàn)還要求ODat協(xié)議頭(OaV)的值為4。每個(gè)資源都有資源類型定義。資源類型在帶有版本的命名空間中定義。OData類型注釋“@odata.type”來(lái)表示。類型注釋的值是資源類型URI,包括帶有版本的命名空間。所以,當(dāng)您看到“@odata.type#ServiceRoot.1.0.0.ServiceRoot”時(shí),您處理的是ServiceRoot模式1.0.0ServiceRoot類型的資源。相應(yīng)的模式文件位于Redfish模式庫(kù)的/schema/v1/ServiceRoot路徑下。因此,此類型的完整URI為Root#SRoot.1..0.SRoo”JSON沒有用于引用其它資源的本地引用類型。Redfish無(wú)需客戶端咨詢模式(對(duì)于簡(jiǎn)單操作)。因此,Redfish根據(jù)OData約定來(lái)表示對(duì)表示根據(jù)ODataURL。URI可以是絕對(duì)的或相對(duì)的。絕對(duì)URI沒有IP地址,但從dfis/開始。Chrome的高級(jí)REST客戶端等插件,您可以單擊此插件,輸入下一個(gè)GET操作的URI系統(tǒng)指典型服務(wù)器。系統(tǒng)可以是CPUCPU、內(nèi)存和其他設(shè)備。管理器指BMC(如網(wǎng)卡)。內(nèi)。因此,有一種說(shuō)法叫“機(jī)殼中的機(jī)殼集合可以分頁(yè);帶有“@odata.nextLink”戶端可以使用下一個(gè)鏈接屬性的URL值,在服務(wù)中檢索集合的下一部分。“引用”元素被“Actions”,告知客戶可以調(diào)用哪些操作。(詳見動(dòng)作章節(jié)“Oem”,具體廠商針對(duì)標(biāo)準(zhǔn)資源定義的擴(kuò)展。詳見Oem章節(jié)一些屬性同時(shí)也是注釋。這些屬性以“@”開始,或包含“@”。注釋屬性O(shè)Data注釋和DMTF注釋。OData注釋包含“@odata.”或“@odata.type”“@DMTF.Settings”,表示資源設(shè)置(另一常見注釋是“a。這是通用ODatav4客戶端的專用注釋該注釋由ODatav4規(guī)范定義,但往往用于其它用途提供用于解析相對(duì)引用的根URL理論上,@odata.context提供根URL(如@odata.id),我們必須返回“規(guī)范的”元數(shù)據(jù)文檔。另外,由于@odata.type”注釋為片段而非完整URL,這些片段必須在元數(shù)據(jù)文檔中定義或引用。因?yàn)槲覀儠?huì)解釋包含不帶版本的命名空間別名的動(dòng)作,這些別名也必值為“dfishtibety”。這是告訴通用ODatav4客戶端,在$metadata中查找Systems的定義,查看Links屬性定義,其中使用REST并不能輕松完成所有操作。所以我們還會(huì)發(fā)出“動(dòng)作”“下壓按鈕”操作(根據(jù)設(shè)置不同,可能重置或關(guān)閉系統(tǒng))(如固件更新或正常關(guān)機(jī))以上是最簡(jiǎn)單的RedfishAPI。您會(huì)發(fā)現(xiàn)數(shù)據(jù)簡(jiǎn)單易讀,但可能想進(jìn)一步通常,在沒有建立會(huì)話時(shí),只有根路徑是可以訪問(wèn)的。但如果您使用的是公共模型或本地Web模擬器運(yùn)行在安全模式下,或者您在使用真正的實(shí)現(xiàn),則需要建立會(huì)話。建立會(huì)話使用的URI也可用于不安全POST。在大多數(shù)情況下,此URIHTTPPOST創(chuàng)建會(huì)話,URI為/Redfish/v1#/Links/Sessions/@odata.id,POST/Redfish/v1/SessionService/SessionsHTTP/1.1Host:<host-path>Content-Type:application/JSON;charset=utf-8Content-Length:<computed-length>Accept:application/JSONOData-Version:4.0{"UserName":"<username>","Password":"<password>"}返回信息包含帶有會(huì)話令牌和位置頭的X-Auth-Token報(bào)頭Location:redfish/v1/SessionService/Sessions/1XAuth-Token:<session-auth-token>{"@odata.id":"/redfish/v1/SessionService/Sessions/1","@odata.type":"#Session.1.0.0.Session","Id":"Name":"UserSession","Description":"UserSession","UserName":"<username>"}響應(yīng)X-Auth-Token報(bào)頭中的令牌字符串可用于所有后續(xù)服務(wù)請(qǐng)求的相同@odURL(dfisdmiistrator)執(zhí)行EEE操作。Redfish如何顯示冗余。你會(huì)發(fā)現(xiàn)一個(gè)稱作“冗余”的數(shù)組。它顯示了同一個(gè)集合中的兩個(gè)風(fēng)扇Redfish@odata值指向如果是JSON指針,會(huì)有一個(gè)#方。模式也引用屬性。JSON指針值的一個(gè)示例可能是“/redfish/v1/Chassis/1/Thermal#/Fans/0”。17.相關(guān)“@odata.i”和冗余一樣,"@odata.id"屬性不一定是一個(gè)整體的資源。Redfish服務(wù)支持常見HTTP關(guān)的兩個(gè)報(bào)文頭是Accept頭(必須設(shè)置為application/json)和前面所討論的X-Aut-Token。但你會(huì)從實(shí)際的實(shí)現(xiàn)中得到更多信息,而這些信息你不會(huì)從從靜EtagsIO(緩存)。他們執(zhí)行一個(gè)If-Match語(yǔ)句,如PUT完成或者工具(如BIOS的配置控制臺(tái))發(fā)生變化,每個(gè)Put中Redfish和非Redfish客戶端(Redish客戶端)之間的任何競(jìng)態(tài)條件。問(wèn)題是,這是個(gè)模型并不是真正的web服務(wù),所以你看不到ETag工作If-Match??蛻舳俗x取/修改/獲取資源,包括當(dāng)前的生成一個(gè)新的修補(bǔ)修改的資源,包括包含最后一個(gè)已知的Etag的If-Match如果提供的Etag不再匹配對(duì)象(讀取之后有些已經(jīng)改變),回“Notd”??蛻舳藨?yīng)該通過(guò)重復(fù)這些步客戶端在更新設(shè)置數(shù)據(jù)時(shí)應(yīng)該包含一個(gè)Etag檢測(cè)變化并防止多客戶端競(jìng)態(tài)條件。在簡(jiǎn)單的GET、PUT/PATCH方法的模型中,客戶端可能會(huì)GETPUT或PATCH到同一個(gè)資源URI中。PUT或PATCH操作的成功是由當(dāng)執(zhí)行PUT或PATCH操作后,HTTP響應(yīng)包含一個(gè)HTTPPUTvs為什么PUT和PATCH操作二者都采用?在設(shè)計(jì)本規(guī)范時(shí),當(dāng)要執(zhí)行資源完SettingData屬性。事情開始變得非常復(fù)雜,特殊(即非自然)PATCH解決了這個(gè)問(wèn)題。PUT總是執(zhí)行完全更換。PATCHPATCH在行業(yè)中獲得了廣泛應(yīng)用。已經(jīng)得到了OpenStack和許多其他API的支持,并在許多現(xiàn)成的web服務(wù)器中可獲得。當(dāng)前的配置vs設(shè)置在Redfish中,基本上有兩種類型的對(duì)象-象代表任何給定資源的當(dāng)前狀態(tài)。偶爾,在某個(gè)資源中,你會(huì)看到一個(gè)稱為@DMTF.Settings”PUT和PATCH操作。它代表了資源的未來(lái)狀態(tài)。如果你看到“@DMTF.Sttings”屬性,該屬性有一個(gè)到某個(gè)資源的鏈接,以便進(jìn)行更改,該更改會(huì)在下次機(jī)會(huì)如重置或重啟后被采納。如果您沒有看到設(shè)置鏈接,對(duì)象的所有PATCH操作應(yīng)該立刻執(zhí)行(在沒有衍生任務(wù)的情況下)可能需要設(shè)置操作的資源的例子是像網(wǎng)卡、存儲(chǔ)以及BIOS設(shè)備”相反“OData.Permissions/ReadWrite”或“read-only=false”表示該屬性readonly=true”的模式可以認(rèn)為是可寫的。RedfishPUT/PATCH的語(yǔ)義是,試圖更新非可寫屬性并不視為一個(gè)錯(cuò)誤。HTTP如果響應(yīng)伴隨著一個(gè)帶有擴(kuò)展錯(cuò)誤響應(yīng)的JSON我們需要某種類型的事件機(jī)制來(lái)滿足與SNMP,IPMI和其他協(xié)議競(jìng)爭(zhēng)。PUSH機(jī)制。PUSH事件為BMC選,因?yàn)檫@意味著事件一旦發(fā)送出去,事件不會(huì)在內(nèi)存中持久。類似于事件和會(huì)話,資源通過(guò)POST操作創(chuàng)建。該過(guò)程通常經(jīng)歷一個(gè)POSTAPIURI也會(huì)在該超媒體API中被發(fā)現(xiàn)。模式定義了一個(gè)注釋“RequiredOnCreate”POST中提供。冪等是RedfishDVD冪等操作是HTTPPUT和PATCH。如果客戶端第二次PUT相同的數(shù)據(jù),資源PUT一資源是改變配置的最簡(jiǎn)單表達(dá)。它意味著“用Y替代資源X”交互模式比這更復(fù)雜。PATCHPATCH操作可以完全配置的服務(wù)是比較理想的。Redfish使用基本的REST操作定義了三個(gè)基本的交互模冪等修改PATCHGET一個(gè)資源,修改屬性值,然后通過(guò)執(zhí)行PATCH來(lái)提交修改。PUT端可簡(jiǎn)單地將資源設(shè)為期望的狀態(tài)。創(chuàng)建、使用、刪除:POST/GET/DELETE對(duì)一個(gè)資源執(zhí)行POST做動(dòng)作:用“to屬性(非冪等性)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論