NVMe-MI接口的带外管理是什么?怎么实现呢?

网友投稿 326 2022-11-03

NVMe-MI接口的带外管理是什么?怎么实现呢?

关于NVMe-MI接口的带外管理,这段故事源于 PCIe 产品的两个引脚 SMClk 和 SMDat,实现规范是 SMbus。

依据另一份规范《NVM Express Management Interface 1_0a》(NVMe MI),利用 SMbus 可以来处理基础的管理命令(主要的一项就是对于 Subsystem Management Data Structure 的监控),还可以处理基于 MCTP 的相关请求。

可以看出两套协议都对 MCTP 有所涉及,那基于 MCTP到底能做什么呢?

按照 NVMe MI,它可以提供如下指令集合:

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 来实现的。

整个过程有发数据和接收数据两个阶段,两者都可以根据协议解析出来。下面就是命令返回数据的解析:

上图可以看到返回数据又包含 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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:自动化运维工具之ansible
下一篇:ZooKeeper入门教程三分布式锁实现及完整运行源码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~