特性配置 - 5.17.2.16 UUID List (CNS 17h) (第286页)
NVME2.0协议解读 1 min read

特性配置 - 5.17.2.16 UUID List (CNS 17h) (第286页)

Blog Author

在《NVM Express® Base Specification, revision 2.0b》中,第5.17.2.16节和第5.17.2.17节详细描述了UUID列表和域列表的结构,下面将对这些部分的协议内容进行深入分析和理解。

5.17.2.16 UUID List (CNS 17h)

  • UUID(通用唯一标识符)列表 是一个用于标识命名空间或控制器的唯一标识符列表。每个UUID条目在该列表中占用一个条目,每个UUID条目包含一个128位的UUID。

UUID条目的结构(Figure 285)

  • UUID:字段长度为128位(即16字节),符合RFC 4122规范。
  • Identifier Association:字段指示UUID是否与特定供应商相关联。通过此字段,系统可以确定UUID是否与在PCI Vendor ID或PCI Subsystem Vendor ID中报告的供应商相关。
UUID的关联性
  • 00b:没有关联。
  • 01b:与PCI Vendor ID相关联。
  • 10b:与PCI Subsystem Vendor ID相关联。
  • 11b:保留。

5.17.2.17 Domain List (CNS 18h)

  • 域列表用于描述NVM子系统中的各个域及其容量信息。每个域由一个Domain Attributes Entry条目表示,按Domain Identifier排序。最多可以返回31个条目。

Domain List的结构(Figure 286)

  • Number of Identifiers:该字段表示域列表中的域数量。如果该字段为0,则表示没有域条目。
  • 每个条目(Entry 0, Entry 1...)包含一个Domain Attributes Entry,它描述了该域的详细信息。

Domain Attributes Entry的结构(Figure 287)

  • Domain Identifier:表示该域的唯一标识符。
  • Total Domain Capacity:该域的总NVM容量,单位为字节。
  • Unallocated Domain Capacity:该域中未分配的NVM容量,单位为字节。
  • Max Endurance Group Domain Capacity:该域中单个耐久组的最大容量。如果该值为0,则表示不报告最大耐久组容量。

5.17.2.18 Endurance Group List (CNS 19h)

  • 耐久组列表包含最多2,047个耐久组标识符,每个耐久组标识符代表一个耐久组。耐久组与命名空间和NVM子系统中的其他资源有关,负责管理NVM存储设备的长期耐用性。

Endurance Group List的结构(Figure 288)

  • Number of Identifiers:该字段表示耐久组列表中耐久组标识符的数量。如果为0,则表示列表中没有耐久组标识符。

Endurance Group Identifiers

  • 列表中的每个标识符对应一个耐久组,该组用于表示和管理NVM子系统的耐久性要求。NVM子系统可能根据实际使用需求将多个耐久组组合在一起。

应用场景和意义

  1. UUID列表:用于在NVM子系统中标识不同的硬件资源(如命名空间和控制器)。它帮助主机系统管理和区分不同的命名空间和控制器,尤其在多控制器环境中非常有用。

  2. 域列表:提供对NVM子系统中不同的详细信息。每个域包含一个或多个控制器和命名空间,域的管理有助于优化资源分配,尤其在多域系统中,确保数据冗余、负载均衡等功能。

  3. 耐久组列表:描述耐久性相关的管理信息。耐久组对于长时间运行的存储设备至关重要,帮助系统通过分配不同耐久级别的资源来提高设备的寿命和可靠性。

总结

这些数据结构的设计使得NVM子系统能够灵活地管理大规模的命名空间、控制器、域和耐久组。通过UUID、域和耐久组列表等机制,NVM子系统能够有效地实现资源的标识、分配和管理。对于需要高度可靠性和高效资源管理的系统,这些特性尤为重要,尤其在虚拟化、大规模存储和多控制器配置中,能够显著提高性能和可靠性。