伺服器通用背板管理(UBM)實現

天翼雲開發者社群發表於2023-04-13

本文分享自天翼雲開發者社群《伺服器通用背板管理 (UBM)實現》,作者: 乘風

 


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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章