0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

SSDFans 来源:ssdfans 作者:Memblaze-测试开发部 2020-10-29 15:42 次阅读

最新发布的 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

    文章

    8563

    浏览量

    150991
  • IT
    IT
    +关注

    关注

    2

    文章

    861

    浏览量

    63493
  • 低功耗
    +关注

    关注

    10

    文章

    2391

    浏览量

    103656

原文标题:SSD将被远程控制?NVMe-MI接口的带外管理

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Xilinx FPGA NVMe Host Controller IP,NVMe主机控制器

    实现必须以及可选的NVMe Admin Command Set和NVM Command Set,实现对PCIe SSD的复位/断电管理、IO(Page)读写、DMA读写和数据擦除功能
    发表于 02-21 10:16

    Xilinx FPGA NVMe主机控制器IP,高性能版本介绍应用

    实现必须以及可选的NVMe Admin Command Set和NVM Command Set,实现对PCIe SSD的复位/断电管理、IO(Page)读写、DMA读写和数据擦除功能
    发表于 03-09 13:56

    Xilinx FPGA高性能NVMe SSD主机控制器,NVMe Host Controller IP

    实现必须以及可选的NVMe Admin Command Set和NVM Command Set,实现对PCIe SSD的复位/断电/SMART/Error Information管理
    发表于 03-27 17:23

    高性能NVMe主机控制器,Xilinx FPGA NVMe Host Accelerator IP

    实现必须以及可选的NVMe Admin Command Set和NVM Command Set,实现对PCIe SSD的复位/断电/SMART/Error Information管理
    发表于 04-10 22:55

    高性能NVMe主机控制器,Xilinx FPGA PCIe 3

    Self-test管理、IO(Page)读写、DMA读写和数据擦除功能,提供用户一个简单高效的接口实现高性能存储解决方案。NVMe Host Controller IP DMA读写的顺序传输长度可以配置
    发表于 04-20 14:41

    GDB源代码缺少MI接口

    嗨!几年前,GDB的来源可以从ST下载(在论坛中找到,但不再可用)。我认为由于缺少MI接口,没有人在Eclipse中运行调试器。STM8仍然是一款出色的产品(并且永远都是),但不可能在STVD之外
    发表于 02-25 06:57

    WINDOWS下做NVMe磁盘阵列

    ,与其客服沟通确实挺专业的,质量应该还是可靠的。因为服务器需要做RAID,所以本章主要分享的是在WIN下对NVMe SSD做软阵列经验。开始前先普及下软阵列知识: 软RAID可以实现RAID0
    发表于 01-15 18:06

    在Xilinx ZCU102评估套件上启用NVMe SSD接口

    存储设备接口(例如NVMe SSD驱动器)的能力。本文演示了使用Design Gateway的XLinz的ZCU102评估套件在NVMe SSD(固态驱动器)接口
    发表于 09-03 16:07

    如何提高滤波器的抑制

    如何提高滤波器的抑制?怎样去设计滤波器?
    发表于 04-20 07:26

    为什么安卓使用的是UFS,而苹果则是NVME

    什么是UFS?什么是NVME?UFS与NVME这两者分别代表了什么含义?有什么样的特点?为什么安卓使用的是UFS,而苹果则是NVME
    发表于 06-18 08:27

    如何为工业应用设计NVMe SSD

    RK3399核心板有哪些应用?如何为工业应用设计NVMe SSD
    发表于 03-07 06:12

    基于 NVMe 接口 exFAT 文件系统的高速存储 FPGA IP 核演示

    和朋友开发了几个基于 FPGA 的高速存储 IP 核,考虑到工业相机等应用场合需要有文件系统以方便做数据管理,所以将 NVMe 和 exFAT 两大IP核集成一起,可以实现将数据写入SSD后,拔下
    发表于 06-03 11:35

    NVMe协议中对NVMe SSD进行管理的Admin Command Set

    环节出问题都可能导致此路不通,这套管理命令集也就成了摆设。而不管是AIC或者U.2的盘,硬件接口上都保留了SMBus管脚,这样主机和盘之间就能通过通道进行通信,因此通过
    的头像 发表于 03-28 10:48 8417次阅读
    <b class='flag-5'>NVMe</b>协议中对<b class='flag-5'>NVMe</b> SSD进行<b class='flag-5'>管理</b>的Admin Command Set

    在ZCU102评估套件上实现NVMe SSD接口的解决方案

    NVMeG3-IP 内核提供了一个在 ZCU102 评估套件上实现 NVMe SSD 接口的解决方案;同时也为不含 PCIe 集成块的 Xilinx Zynq UltraScale+ MPSoC
    的头像 发表于 11-28 15:37 2067次阅读

    DERA D7400系列NVMe SSD成为首款NVMe-MI 1.2认证产品

    NVMe-MI(NVMe Management Interface)是一种用于设备管理和监控的标准接口,旨在提高固态存储设备(SSD)的可管理
    的头像 发表于 03-09 10:15 983次阅读
    DERA D7400系列<b class='flag-5'>NVMe</b> SSD成为首款<b class='flag-5'>NVMe-MI</b> 1.2认证产品