管理命令集 - 📌 Namespace List 解析 (第152页)
NVME2.0协议解读 1 min read

管理命令集 - 📌 Namespace List 解析 (第152页)

Blog Author

我们继续深入分析 《NVM Express® Base Specification, revision 2.0b》第141页,本部分主要讨论了 Namespace ListNVMe Qualified Names (NQN) 的格式和使用方法。


📌 Namespace List 解析

Namespace List 数据结构

Namespace List 是一个有序的命名空间标识符(Namespace ID)列表。这个列表可以包含多个命名空间标识符,未使用的条目会被填充为零。它允许控制器列出所管理的命名空间。

字段结构

字节范围 字段名 说明
03:00 Identifier 0 包含列表中最小的命名空间 ID,如果列表为空则为 0h
07:04 Identifier 1 包含列表中的第二个命名空间 ID,如果列表中少于两个条目,则为 0h
... ... 继续列出每个命名空间 ID,未使用的条目为零填充。

示例

字节范围 00 01 02 03 04 05 06 07
01 00 00 00 02 00 00 00
  • Identifier 0 = 0x01
  • Identifier 1 = 0x02

📌 NVMe Qualified Names (NQN) 解析

NQN 格式

NVMe Qualified Name (NQN) 用于唯一标识主机或 NVM 子系统,尤其在身份验证和认证过程中起到关键作用。每个 NVM 子系统 都有一个 NQN,该名称在 Identify Controller 数据结构 中进行定义。

NQN 特性

  1. 编码格式:采用 UTF-8 编码(参考 RFC 3629)。
  2. 字符集:使用了以下字符:
  3. Dash (- = U+002d)
  4. Dot (. = U+002e)
  5. Colon (: = U+003a)
  6. 最大长度:NQN 的最大长度为 223 字节
  7. 字符串结束符:以 null 结束。

NQN 格式

NQN 可以有两种格式,其中一种格式适用于拥有域名的组织。格式为: 1. 字符串 nqn 2. 字符串 .(即 ASCII 句点字符) 3. 日期代码,采用 yyyy-mm 格式,表示域名所有者拥有该域名的时间段。 4. 字符串 .(即 ASCII 句点字符) 5. 倒序域名:命名权限所有者创建 NQN 时使用的倒序域名。 6. 冒号前缀字符串:域名所有者指定的字符串,长度不超过最大限制。

示例

对于 "Example NVMe, Inc." 组织生成的 NQN: - nqn.2022-03.example.nvme.inc:device1

NQN 示例解析

字节范围 00 01 02 03 04 05 06 07
6e 71 6e 2e 32 30 32 2d
说明 nqn.2022-03 example.nvme.inc :device1
  • OUI(组织唯一标识符) 被用来生成 NQN,确保每个组织的 NQN 都是全球唯一的。

🧠 教学总结

项目 说明
Namespace List 该列表存储了多个命名空间的 ID,可以帮助控制器管理和识别其所管理的命名空间。
NQN(NVMe Qualified Name) 用于唯一标识主机或 NVM 子系统。NQN 格式遵循特定规则,包括日期代码、倒序域名等,确保全球唯一性。
NQN 格式和长度 NQN 是一个 UTF-8 编码的字符串,最大长度为 223 字节,采用特定的字符集和格式。
应用场景 NQN 主要用于身份认证和标识,在存储系统中确保每个设备和命名空间的唯一性。

🎯 继续学习与实践建议

  1. 实践 NQN 格式:理解 NQN 在身份验证中的应用,帮助你为存储系统中的每个设备和命名空间分配唯一标识符。
  2. Namespace List 管理:理解如何管理和存储命名空间标识符,确保在多命名空间系统中的正确配置。
  3. 编码规范:了解 NQN 的编码规则(特别是 UTF-8 和字符串格式),帮助你在开发中避免编码问题。

如果你需要更详细的示例或代码实现,或对 命名空间管理NQN 格式 有进一步问题,欢迎随时提问!