在最新發布的 PBlaze5 520 低功耗系列 NVMe SSD中,有一個全新功能——NVMe-MI接口的帶外管理,這是從PBlaze5 520系列最新增加的功能,那么這個帶外管理指的是什么,又怎么實現呢?
關于NVMe-MI接口的帶外管理,這段故事源于 PCIe 產品的兩個引腳 SMClk 和 SMDat,實現規范是 SMbus。
圖示1來源于《Enterprise SSD Form Factor Version1_a》里面SFF8639 的引腳說明
圖中左下角標注的顏色指示這對引腳是 optional 的,可以實現也可以不實現,但是對于企業級的產品這是有必要實現的(The Enterprise PCIe SSD should support SM-Bus operation)。
依據《Enterprise SSD Form Factor Version1_a》 (SFF Spec),SMbus 提供了兩個層面的功能,一種初級功能是對盤內 vpd 的讀寫,這個功能在 3.3Vaux 或主電源存在的時都可用。對于企業倉庫管理,如果主板帶電但是主機未開機,管理人員可以遠程通過BMC檢查盤的靜態信息,如 SN、MN、電源需求等;另一種高級功能是基于 MCTP-over-SMbus 協議之上的管理功能,(此 spec 未做更多解釋),此功能在主電源存在時可用。
Server 的 BMC 系統可以通過 SMBus/I2C 與 NVMe SSD 通信
依據另一份規范《NVM Express Management Interface 1_0a》(NVMe MI),利用 SMbus 可以來處理基礎的管理命令(主要的一項就是對于 Subsystem Management Data Structure 的監控),還可以處理基于 MCTP 的相關請求。
可以看出兩套協議都對 MCTP 有所涉及,那基于 MCTP到底能做什么呢?
按照 NVMe MI,它可以提供如下指令集合:
NVM Express Admin Command Set
Management Interface Command set
PCIe Command Set (optional)
NVM Express Management Enhancements
具體到每個命令集合里面又分為了 mandatory 和 optional 部分,舉個例子,對于 NVM Express Admin Command Set,mandatory 的命令包括 Get Feature、Get Log Page、Identify,optional 的命令包括 firmware activate、firmware image download、Format NVM、Namespace Management、Namespace Attachment、Security Send、Security Receive、Set Feature 還有 Vendor Specific 部分。
利用這些 admin 命令,管理者就可以遠程獲取 NVMe 設備的信息、配置參數或者利用 Vendor Specific 部分實現特定功能的監控。比如主機開機的情況下,無需登錄主機就可以升級固件, 再配合 Activate firmware without reset 就可以支持遠程升級了。實現了這部分接口,可以做的事情還有很多,不過需要注意到很多 optional 命令有一些潛在的安全風險,實現起來可能需要配合一些措施保證數據的安全性,畢竟數據領域安全第一。
從企業 IT 系統運維的角度講,帶外管理提供了一套獨立于主機系統的管理方案,能夠配合服務器 BMC 系統,高效實現 NVMe 設備監控、管理及升級等工作。
看起來實現這些功能是有必要的,那需要怎么實現呢?
圖示2來自《NVM Express Management Interface 1_0a》
上圖中可以看出 NVMe MI 協議是可以基于 SMBus/I2C 或者 PCIe VDM 來實現的。
從左側的 SMBus/I2C 這邊路徑來說,固件要實現 DSP0237 MCTP over SMBus/I2C Binding、DSP0236 MCTP Base Specification 和前面說到的 NVMe MI 1.0a(或者最新版NVMe MI 1.1)。基于 PCIe VDM 這部分的實現略微有點復雜,不在此介紹。
結合上面兩個原理圖,我們模擬了一個 BMC 系統向一塊 Memblaze 某系列 NVMe SSD 發了一條獲取 NVMe-MI 數據結構的命令。我們節選了部分結果,首先是 BMC 和 SSD 之間傳輸的數據,如下圖。
整個過程有發數據和接收數據兩個階段,兩者都可以根據協議解析出來。下面就是命令返回數據的解析:
上圖可以看到返回數據又包含 NVMe-MI 的 Header 信息和 NVMe-MI Data Structure 信息(這部分是我們想要的返回結果)。
到這我們就從物理引腳、系統構成、技術原理及命令結果幾個角度解讀了 NVMe-MI 相關知識。那如果開發完相關功能怎么測試呢?
可以考慮三種方式:第一種是采購業內的 SSD 測試模組外包測試;第二種是跟 Server 廠商關系牢靠,Server 廠商提供 BMC 的接口或者設備聯合測試;第三種是自研相關的硬件設備并設計測試用例來驗證。總體而言測試需要考慮上面的 DSP0237、DSP0236、NVMe MI 三種規范來驗證,最后放一張 NVMe-MI 兼容性的測試大綱。
圖示3來自UNH-IOL_NVMe-MI_Conformance_Test_Suite_v12.0
(本文作者:Memblaze-測試開發部經理任玉峰)
責任編輯:PSY
原文標題:SSD將被遠程控制?NVMe-MI接口的帶外管理
文章出處:【微信公眾號:ssdfans】歡迎添加關注!文章轉載請注明出處。
-
接口
+關注
關注
33文章
8526瀏覽量
150862 -
IT
+關注
關注
2文章
856瀏覽量
63473 -
低功耗
+關注
關注
10文章
2362瀏覽量
103607
原文標題:SSD將被遠程控制?NVMe-MI接口的帶外管理
文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論