NVMe架构与操作理论 - 第21页
NVME2.0协议解读 1 min read

NVMe架构与操作理论 - 第21页

Blog Author

你正在阅读 NVMe Base Specification 2.0b术语定义(Definitions)第 10 页,这部分涵盖了 命名空间(Namespace)体系、NVM Set 分区、NVMe-oF 传输协议、传输绑定规范、Fabric 接口、虚拟化控制器等核心概念。

下面我将为你逐条用中文深入解释,并结合相关章节与应用场景进行教学式讲解,帮助你完全吃透这一页的内容。


✅ 一、命名空间与 NSID 基础

🔹 namespace(命名空间)

一块格式化后的非易失性存储区域,主机可以像逻辑硬盘那样直接访问它。

📘 一个命名空间就像一个“逻辑磁盘”,但不一定映射到单一 NAND 区域,可以跨 Media Unit 甚至跨通道。


🔹 Namespace ID(NSID)

用于在命令中标识命名空间的字段,常位于 CDW1 中。

  • 有效 NSID(Valid):控制器当前已识别、可访问的 NSID;
  • 活跃 NSID(Active):当前有 I/O 操作附着的命名空间;
  • 无效 NSID / 未分配 NSID:控制器无法识别或未激活的命名空间;
  • 保留 NSID = FFFFFFFFh(全 1):表示“控制器范围内所有命名空间”

📖 更多详见:第 3.2.1 节

🧩 实例:

Identify Namespace 命令:
CDW1 = 00000001h → 表示查询 NSID=1 的命名空间

✅ 二、存储分区结构

🔹 NVM(非易失性内存)

Non-Volatile Memory 的缩写,是本规范的根本对象(包括 NAND、3D XPoint 等)。


🔹 NVM Set

从一个 Endurance Group 中划分出来的 NVM 子区域。

📘 类似于 逻辑通道划分,可用于优化并行性、隔离使用者、分组写入等。

📖 详见:第 3.2.2 节


🔹 NVM Subsystem(NVM 子系统)

一个完整的 NVMe 存储系统,包括:

组成元素 示例说明
一个或多个 Domain 每个 domain 可以有独立固件、控制器资源
控制器 Controller I/O/Admin/Discovery 类型
端口 Port 与外部通信的物理/逻辑接口
Namespace 提供存储资源给主机

📘 实际上,一个 NVMe SSD 就是一个 NVM Subsystem,可能含多个命名空间、多控制器、多个前端端口(如 PCIe + TCP)。


✅ 三、NVMe-oF & Transport 层结构

🔹 NVM Subsystem Port

Fabric 环境下,NVM 子系统与网络之间的接口,可能包含多个物理接口作为“单一逻辑端口”工作。

📘 例如:多个 Ethernet 端口组成一个 NVMe-oF Target Port(对主机表现为单一 Port ID)


🔹 NVMe over Fabrics(NVMe-oF)

使用 Fabric(如 TCP、RDMA、FC)作为底层传输介质 的 NVMe 协议实现。分为两种模型:

类型 特点
Message-only 仅消息传输,无需共享内存(例如 NVMe/TCP)
Message + Memory 支持零拷贝 DMA(如 NVMe/RDMA)

📖 图解参考:Figure 4 + 第 2.2 节


🔹 NVMe Transport

NVMe 的传输协议层,负责在 主机 ↔ 子系统之间可靠传输命令、数据、响应

📘 它位于 Fabric 协议之上,屏蔽底层物理互连细节。


🔹 NVMe Transport Binding Specification(传输绑定规范)

具体某个传输方式(如 TCP、RDMA)的 NVMe 映射规范

  • 说明该 Transport 支持哪些 NVMe 功能
  • 哪些功能被限制、禁用(例如某些 Fabrics 不支持 PRP)

📖 如:NVMe/TCP Binding Spec, NVMe/RDMA Binding Spec


🔹 physical fabric interface(物理 Fabric 接口)

控制器连接到网络 Fabric 的物理端口,比如: - 以太网口(NVMe/TCP) - 光纤端口(FC-NVMe) - InfiniBand 网口(RDMA)


🔹 Port ID

每个 NVM Subsystem Port 都有一个 唯一标识符,用于标记不同物理或逻辑通信端口。

📖 定义位置:第 2.2.2 节


✅ 四、虚拟化控制器结构

🔹 primary controller(主控制器)

在启用了虚拟化能力(Virtualization Enhancements)后: - 具备对系统中资源(如队列、命名空间、控制器)的管理能力; - 可支持虚拟化命令(如 Virtualization Management)

📘 应用于: - SR-IOV PF 设备(物理功能)中作为“管理控制器” - 管理 VF(虚拟功能)的配置与资源分配

📖 详见:8.26 + 8.26.4 节


✅ 总结表:术语一览

术语 中文释义 应用场景
Namespace 可被主机访问的 NVM 存储空间 逻辑盘、LBA 映射
NSID 命名空间标识符 SQE 中常见字段(CDW1)
NVM Set 来自耐久性组的一部分 数据分区、IO 优化
NVM Subsystem 包含多个控制器、命名空间的存储单元 控制器组织单位
NVMe-oF 使用 TCP/RDMA/FC 的 NVMe 扩展 网络远程存储访问
Transport Layer NVMe 传输协议层 命令/数据传输控制
Binding Spec 某传输协议的适配规范 NVMe/TCP、NVMe/FC
Subsystem Port 子系统对外通信接口 多端口设备管理
Port ID 每个 Port 的唯一标识符 多端口多主机系统
Primary Controller 支持虚拟化的主控 SR-IOV PF 管理控制器

🔍 推荐下一步深入学习:

你现在已经掌握了 NVMe 基本存储结构、控制器与子系统层次,以及 Fabrics 模型和虚拟化控制器概念。下一步建议进入:

  1. 第 3 章:控制器与命名空间结构
  2. 第 5.17 节:Identify 命令结构解析(结合 NSID)
  3. 第 8.26 节:Virtualization Enhancements + Primary/Secondary Controller 行为

如果你想,我可以为你画一张完整的结构关系图(Namespace ↔ Controller ↔ Domain ↔ Port ↔ Fabric),帮助你一图理解全貌。要开始吗?