管理命令集 - 📌 Namespace Globally Unique Identifier (NGUID) 解析 (第151页)
NVME2.0协议解读 1 min read

管理命令集 - 📌 Namespace Globally Unique Identifier (NGUID) 解析 (第151页)

Blog Author

我们继续深入分析 《NVM Express® Base Specification, revision 2.0b》第140页,本部分主要讲解了 Namespace Globally Unique Identifier (NGUID)Universally Unique Identifier (UUID),以及 Controller List 等数据结构的定义和格式。


📌 Namespace Globally Unique Identifier (NGUID) 解析

NGUID 结构

NGUID(命名空间全球唯一标识符) 是一个由 IEEE OUI扩展标识符(Extension Identifier)厂商特定扩展标识符(Vendor Specific Extension Identifier) 组成的 128 位(16 字节)标识符。它被定义为大端格式(Big Endian)。NGUID 用于唯一标识每个命名空间。

字段结构

字节范围 字段名 说明
104-111 Vendor Specific Extension Identifier 厂商指定的扩展标识符,确保命名空间的唯一性。
112-119 OUI 组织唯一标识符,采用小端格式。
120-127 Extension Identifier 扩展标识符,用于提供更多命名空间的区分信息。

NGUID 示例

字节范围 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
FE DC BA 98 76 54 32 10 AB CD EF 01 23 45 67 89

OUI Identifier = ABCDEFh
扩展标识符 = 0123456789h
厂商特定扩展标识符 = FEDCBA9876543210h

NGUID 与 WWN 格式的相似性

NGUID 格式与 WWN 格式 类似,WWN 是用于全球唯一标识存储设备的标识符。两者都包含 OUI厂商特定标识符,并采用类似的结构。通过这种相似性,可以方便地将存储设备的命名空间与全球标识符系统进行匹配。


📌 Universally Unique Identifier (UUID) 解析

UUID 格式

UUID(全球唯一标识符) 是一种128位(16字节)的标识符,定义在 RFC 4122 中,通常用于标识应用程序、对象或其他资源。UUID 具有跨平台唯一性的特点,广泛应用于分布式系统、数据库、网络协议等领域。

UUID 字节序列

UUID 使用大端格式(Big Endian)进行存储,每个字节的顺序和内容遵循 RFC 4122 的规范。


📌 Controller List 数据结构

Controller List 定义

Controller List 是一种有序列表,包含了多个控制器的唯一标识符(Controller ID)。这个列表可以包含最多 2,047 个控制器标识符。每个控制器标识符由 Identify Controller 数据结构 中的 字节 79:78 定义。

字段结构

字节范围 字段名 说明
01-00 Number of Identifiers 该字段包含列表中的控制器数量。最大可以包含 2047 个标识符。0h 表示列表中没有控制器。
03-02 Identifier 0 该字段包含列表中第一个控制器的唯一标识符。如果控制器存在,则该字段将包含 NVM 子系统唯一的控制器标识符。

📌 总结与教学要点

项目 说明
NGUID OUI扩展标识符厂商特定扩展标识符 组成,确保命名空间的全球唯一性。它类似于 WWN 格式,在全球存储管理系统中广泛使用。
UUID 全球唯一标识符,符合 RFC 4122 规范,广泛应用于分布式系统和资源标识。
Controller List 有序列表,包含多个控制器的唯一标识符,最多可包含 2047 个控制器,帮助管理和识别多个控制器。
EUI64 和 NGUID 的对比 EUI64WWN 格式相似,适用于网络设备和存储系统的唯一标识,而 NGUID 专注于命名空间的唯一标识。

🎯 实用建议与进一步学习方向

  1. 全球唯一标识符的应用:理解 NGUIDUUID 在分布式系统中的应用,帮助你设计更加灵活和高效的系统架构。
  2. 控制器管理:对于大规模的存储系统,了解 Controller List 数据结构,有助于管理多个控制器的标识符,确保系统的可扩展性和互操作性。
  3. 标识符结构理解:深入理解 OUI扩展标识符厂商特定扩展标识符 的定义和作用,有助于确保设备的全球唯一性,避免冲突。

如果你希望我继续深入探讨 UUID 的具体应用NGUID 和 EUI64 的设计决策与最佳实践,请告诉我!