伺服器通用背板管理(UBM)實現
本文分享自天翼雲開發者社群《伺服器通用背板管理 (UBM)實現》,作者: 乘風
連結: https://www.ctyun.cn/developer/article/369237170032709
一 UBM概述
透過 SGPIO 進行 SAS 和 SATA 背板管理的 SCSI 機箱服務 (SES) 標準於 2003 年首-次推出。該規範提供主機控制 LED,並允許主機檢測槽位和已安裝驅動器的存在,以及槽位編號方案。該規範提供了驅動器活動和故障指示,同時控制器可以透過協議自動識別裝置型別、分支和速度。 SGPIO 自 2006 年以來一直保持不變。此後,許多創新增加了背板管理的複雜性,超出了 SES 和 SGPIO 的能力。
現代儲存產品包括多通道驅動器和第三種驅動器協議,即 NVMe。為了確保相同級別的儲存功能,需要更智慧的背板。這種需求產生了通用背板管理 (UBM) 標準。
Universal Backplane Management (UBM)為主機提供了一個通用背板管理框架,以確定 SAS/SATA/PCIe 背板功能、Drive Facing Connector (DFC) 狀態和控制資訊,並讀取背板的面向驅動器的聯結器(DFC)到面向主機的聯結器Host Facing Connector (HFC) 的埠路徑。
採用 UBM 標準可實現背板管理的兩個關鍵方面:
在伺服器內構建一套完全可互換的背板,無論背板與主機的介面或背板支援的介質如何變化。在各種儲存架構中使用 UBM 是通用的,它可以避免手動配置的複雜性和錯誤配置的成本。
能夠建立支援驅動器槽位內完全可互換的儲存介質型別的背板,包括在系統執行時在 NVMe 和 SAS/SATA 之間進行切換。
二 UBM組成
UBM 可用於在單個驅動器機架中建立支援所有三種協議的 SAS/SATA 背板、NVMe 背板或組合背板。 同樣,UBM 規範可用於帶有 SAS/SATA 擴充套件器和 PCIe 開關的背板。UBM 使支援 UBM 的主機(例如 CPU、RAID 或 HBA 卡或其他儲存控制器)能夠準確瞭解背板的功能,以及感知驅動器型別和存在。
UBM 系統的元件由 FRU 和 UBM 控制器組成,它們透過 2 線介面連線到主機。
2.1 2線介面
UBM使用邊帶訊號定義SAS,其他的標準定義使用2線模式。伺服器主機板的BMC提供到背板的2Wire主介面,可以實現對於背板的統一管理和遠端控制,韌體更新等功能。2Wire主介面定義 了UBM 背板管理功能和主機到背板的埠通路資訊。該2Wire主介面會與背板上的UBM 控制器2Wire從介面和UBM FRU 2Wire介面互聯。UBM 控制器2Wire從介面,提供背板點燈功能和 DFC 狀態和控制描述符。連線到同一個 2Wire從介面的 UBM FRU 為一個NVRAM,實現了一個格式化的IPMI FRU 。同時,為了支援PCIE裝置,例如NVME SSD硬碟,該2wire介面還會連線到MUX bridge,用於2wire介面擴充套件,以實現同一2wire介面管理多個PCIe SSD裝置。
2.2 UBM FRU
提供將背板識別為支援 UBM 的子系統的方法,並透過 2 線介面連線到主機。UBM FRU 是具有 IPMI FRU 格式內容的 256 位元組只讀 NVRAM,負責上報靜態背板資訊,使用單位元組 2Wire 定址。
定義主機建立訪問對映的埠路徑資訊描述符,該訪問對映由面向驅動器的聯結器 (DFC)、埠鏈路寬度、面向主機的聯結器 (HFC) 和 HFC 起始通道組成。
指定連線到 HFC 的 UBM 控制器的 2 線地址,允許儲存控制器訪問。
2.3 UBM控制器
負責管理面向驅動器的聯結器 (DFC),透過 2 線接受預先確定的命令序列,可分為以下幾類:
控制器狀態和身份:報告命令和控制器狀態。
背板功能:反映 UBM 控制器實現支援的功能。
面向驅動器的聯結器狀態:允許 UBM 控制器報告每個面向驅動器的聯結器中“安裝了什麼”的關鍵功能。
定義 PCIe 參考時鐘預期、PCIe 復位預期、PwrDIS 訊號支援和雙埠支援。
背板 UBM 控制器韌體更新
三 UBM操作
3.1 驅動器檢測
驅動器型別識別是透過從驅動器中取樣 PRSNT#、IFDET# 和 IFDET2# 引腳來執行的。 這些引腳的值透過 DFC 狀態和控制描述符命令報告給主機。 驅動器引腳狀態與背板對映資料結合使用,允許將適當的配置應用於連線到該驅動器的儲存控制器 PHY。
3.2 埠分叉
支援從面向主機的聯結器到面向驅動器的聯結器的 x4 或 x2 連線的背板可分別重新用作 x2 或 x1 背板。 這是使用埠分叉欄位完成的。 當從主機連線到背板的電纜不再直接對映,而是連線每個驅動器只有一條鏈路時,背板將以 DFC 的寬度分為兩部分執行。 透過使用埠分叉欄位,可以在兩種配置中使用單個背板,從而減少所需的背板 SKU 數量。
3.3 LED 和電源控制
LED 和電源控制是使用 SES 陣列裝置元素欄位執行的,類似於 SAS 擴充套件器。 主機可以透過 UBM 控制器的 2 線介面請求以下操作:
禁用電源
燈識別 LED
顯示 “重建”LED 模式
顯示 “失敗的陣列”LED
如果 LED 閃爍模式超出了 UBM 規範的範圍,可以遵循 IBPI 規範 SFF-8489,對應於主機與 UBM 控制器介面發出的訊號。
3.4 復位、REFCLK 控制
FRU 透過定義以下內容來定義背板和主機之間的狀態和控制訊號介面:
PCIe 參考時鐘預期
PCIe 重置預期
PwrDIS 訊號支援
雙埠支援(如果適用)
3.5 透過 BP_TYPE 支援 SGPIO
BP_TYPE 訊號指示背板是否支援 SGPIO 或 2 線介面。 使用訊號的狀態,主機可以確定它是應該使用 SGPIO 還是繼續進行 UBM 發現。
3.6 維護
UBM 規範允許透過 UBM 控制器韌體更新過程更新控制器程式碼。
四 UBM實現示例
UBM可以實現HFC透過x1、x2、x4或其它lane頻寬連線多個DFC,還可以支援多個面向主機的聯結器。但是,對於同一背板,UBM 控制器實現應在同一背板內提供唯 -一的面向主機的聯結器標識欄位,指示相同的背板編號欄位。 多個面向主機的聯結器不應將其 2Wire 介面與其他面向主機的聯結器 2Wire 介面互連。
下圖的 UBM 系統部署檢視顯示了主機(例如,介面卡、PCIe 交換機、SAS 擴充套件器)和背板之間的連線關係。 伺服器機箱內可以只有一個背板,也可能存在多個背板。 支援直接連線主機或儲存控制器的 U.2 NVMe 和 SAS/SATA。每個面向主機的聯結器支援兩個 x4/x2/x1 U.2 NVMe 驅動器或 4 個 x1 SAS/SATA 驅動器。UBM 控制器位於背板上,用於管理來自驅動器的控制和狀態訊號。高速電纜和邊帶 I/O 訊號用於與背板通訊。UBM FRU 應在 0xAE 的固定 8 位地址上進行 2Wire 定址。 UBM FRU 提供主機與底板上的 UBM 控制器通訊所需的 UBM 控制器 2Wire 地址。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014251/viewspace-2945458/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 通用mapper和分類實現APP
- 基於.NET 5實現的開源通用許可權管理平臺
- Spring Boot整合MyBatis實現通用MapperSpring BootMyBatisAPP
- 使用IPMI工具實現對伺服器的遠端管理伺服器
- 物件池技術和通用實現GenericObjectPool物件Object
- 伺服器直通用scsi伺服器
- 如何實現LLM的通用function-calling能力?Function
- vue3中如何實現通用頭部?Vue
- List,DataTable實現行轉列的通用方案
- nuxt3_使用pinia實現伺服器端渲染狀態管理UX伺服器
- 內網穿透(mac,window,linux通用)1分鐘實現外網訪問電腦本地伺服器內網穿透MacLinux伺服器
- Avalonia如何與通用主機Host整合實現MsDI
- 一個PHP通用隨機密碼的實現PHP隨機密碼
- Android 實現一個通用的圓角佈局Android
- Vue + Element UI + Lumen 實現通用表格功能 - 分頁VueUI
- Spring Boot實現通用的介面引數校驗Spring Boot
- [kotlin]帶分類的RecyclerView通用實現新思路KotlinView
- 虛擬伺服器管理實踐伺服器
- Linux 本地AMH 伺服器管理皮膚實現遠端訪問方法Linux伺服器
- 框架-SPI四種模式+通用裝置驅動實現框架模式
- bun 實現 gRPC 伺服器RPC伺服器
- Rama透過拓撲通用語言實現ACID事務
- learun通用許可權系統框架功能實現設計框架
- 從零到一:實現通用一鏡到底H5H5
- RecyclerView定製:通用ItemDecoration及全展開RecyclerView的實現View
- 使用者管理實現
- 如何實現專案管理專案管理
- 三招教你實現施工現場管理
- AI介面實現:簡單實現Viper配置管理AI
- nginx實現檔案伺服器Nginx伺服器
- 使用golang實現redis伺服器GolangRedis伺服器
- 伺服器如何實現批次操作伺服器
- libuv中實現tcp伺服器TCP伺服器
- 實現容器安全管理的最佳實踐
- 分散式通用爬蟲管理平臺Crawlab分散式爬蟲
- vue的狀態管理實現Vue
- 部落格內容管理實現
- go如何實現openai伺服器推送GoOpenAI伺服器