特性配置与管理 - 第280页
在《NVM Express® Base Specification, revision 2.0b》中,关于I/O Command Set specific Active Namespace ID list (CNS 07h)和I/O Command Set Independent Identify Namespace data structure (CNS 08h)的数据结构定义提供了控制器与主机之间如何交互、管理命名空间以及确保命令有效性的详细描述。以下是对这些部分的深入分析:
1. I/O Command Set specific Active Namespace ID list (CNS 07h)
I/O Command Set specific Active Namespace ID list命令用于返回一个包含活动命名空间ID(NSID)的列表,允许主机查询与特定I/O命令集相关联的命名空间。
字段定义:
- 命名空间ID列表:控制器返回一个包含1,024个命名空间ID的列表,列表中的NSID按升序排列。返回的NSID值必须大于命令中Namespace Identifier (NSID) 字段指定的值。该列表仅包含与I/O命令集(由Command Set Identifier (CSI)字段指定)关联的命名空间。
命令行为:
- 如果指定的NSID字段为
FFFFFFFEh或FFFFFFFFh,则控制器应该返回状态码Invalid Namespace or Format,并中止命令。 - 如果请求的I/O命令集未启用或不受支持,控制器将使用Invalid Field in Command状态码中止命令。
作用:
此命令提供了与指定命令集相关的活动命名空间的ID列表。它是I/O命令集管理和控制器查询的一个重要部分,允许主机根据实际命名空间管理需求来进行资源分配。
2. I/O Command Set Independent Identify Namespace Data Structure (CNS 08h)
此命令用于返回特定命名空间的I/O Command Set Independent Identify Namespace数据结构。当Namespace Identifier (NSID) 字段指定一个活动的命名空间时,控制器返回该命名空间的相关信息。如果指定的NSID为非活动状态,则控制器将返回一个全零的数据结构。
字段定义:
- Common Namespace Features (NSFEAT):
- Rotational Media (RMEDIA):
- 如果该位设置为
1,则表示命名空间存储的数据位于旋转媒体(如传统硬盘)上。如果设置为0,则表示该命名空间的数据存储在非旋转媒体(如固态硬盘)上。
- 如果该位设置为
-
UIDREUSE:
- 如果设置为
1,则表示命名空间的NGUID和EUI64值在命名空间被删除后不会被控制器重新使用。如果设置为0,则这些值可能会在删除命名空间后被用于新创建的命名空间。
- 如果设置为
-
Namespace Multi-path I/O and Namespace Sharing Capabilities (NMIC):
- Multi-path I/O and Namespace Sharing:
- 如果该位设置为
1,则表示该命名空间可以同时连接到多个控制器,支持多路径I/O和命名空间共享。设置为0时,则表示该命名空间只能连接到一个控制器,且为私有命名空间。
- 如果该位设置为
命令行为:
- 如果NSID字段指定的是非活动命名空间,则控制器返回一个零填充的数据结构。
- 如果控制器支持命名空间管理能力(Namespace Management)且NSID字段设置为
FFFFFFFFh,则控制器返回一个包含适用于该命名空间的所有通用功能的数据结构。 - 如果控制器不支持命名空间管理能力,而NSID字段设置为
FFFFFFFFh,则命令将被中止并返回Invalid Namespace or Format状态码。
作用:
这个数据结构提供了关于命名空间的基本功能和特性的信息,包括是否使用旋转媒体、是否支持命名空间共享等。它有助于管理命名空间的属性,并确保对不同I/O命令集的支持。这对于存储系统中多控制器和多路径配置的环境尤为重要,能够根据命名空间的共享能力或存储介质类型做出优化选择。
3. 有效与无效的NSID验证
- 有效和无效的NSID:
-
当请求的数据结构与非活动的命名空间ID(NSID)相关时,控制器会返回一个全零的数据结构。如果请求的命名空间ID无效(如
FFFFFFFEh或FFFFFFFFh),则控制器会中止命令并返回Invalid Namespace or Format或Invalid Field in Command状态码。 -
命名空间管理:
- 控制器若支持命名空间管理功能(Namespace Management),当请求的NSID字段为
FFFFFFFFh时,它将返回一个包含所有命名空间管理功能的通用数据结构。如果不支持该功能,则命令会被中止并返回错误。
总结
-
I/O Command Set specific Active Namespace ID list (CNS 07h):返回与指定I/O命令集相关的活动命名空间ID列表,帮助主机管理与命令集相关的命名空间资源。
-
I/O Command Set Independent Identify Namespace Data Structure (CNS 08h):提供命名空间的特性和功能信息,包括旋转媒体存储、命名空间共享、标识符重用等,有助于控制器和主机管理和优化命名空间的使用。
-
NSID验证:确保主机请求的数据结构与有效的命名空间ID相关,并对无效NSID进行验证和处理。
这些功能和验证机制对于多命名空间和多控制器配置下的存储系统管理至关重要,能够提高存储资源的有效分配和管理效率。