管理命令集 - 📌 Namespace List 解析 (第152页)
我们继续深入分析 《NVM Express® Base Specification, revision 2.0b》第141页,本部分主要讨论了 Namespace List、NVMe 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 特性:
- 编码格式:采用 UTF-8 编码(参考 RFC 3629)。
- 字符集:使用了以下字符:
- Dash (
-= U+002d) - Dot (
.= U+002e) - Colon (
:= U+003a) - 最大长度:NQN 的最大长度为 223 字节。
- 字符串结束符:以 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 主要用于身份认证和标识,在存储系统中确保每个设备和命名空间的唯一性。 |
🎯 继续学习与实践建议
- 实践 NQN 格式:理解 NQN 在身份验证中的应用,帮助你为存储系统中的每个设备和命名空间分配唯一标识符。
- Namespace List 管理:理解如何管理和存储命名空间标识符,确保在多命名空间系统中的正确配置。
- 编码规范:了解 NQN 的编码规则(特别是 UTF-8 和字符串格式),帮助你在开发中避免编码问题。
如果你需要更详细的示例或代码实现,或对 命名空间管理 和 NQN 格式 有进一步问题,欢迎随时提问!