数据结构与日志格式 - 第239页
深入分析 NVM Express® Base Specification, revision 2.0b - NVMe-MI 命令的支持和影响及命令和功能锁定
本节继续分析与 NVMe-MI 命令相关的日志页面,重点关注 NVMe-MI Commands Supported and Effects Data Structure 和 Command and Feature Lockdown 的定义,帮助理解这些命令如何影响 NVM subsystem 和不同功能的支持与执行控制。
NVMe-MI 命令支持与影响数据结构 (图 258)
该数据结构描述了通过 NVMe-MI Send 命令所支持的 管理接口命令 的执行范围,以及这些命令对 NVM subsystem 状态的影响。每个命令根据其操作类型,可能影响多个层级的功能范围,从控制器到 namespace,甚至包括 endurance group 和 NVM set。
字段分析:
- Command Scope (CSP)
- 功能:该字段定义了与管理命令相关的作用范围。只有一个位被设置为
1,具体指示此命令影响的范围。 -
影响:可以影响的范围包括:
- NVM Subsystem Scope:命令可能影响整个 NVM subsystem。
- Domain Scope:命令可能影响某个 domain。
- Endurance Group Scope:命令可能影响 endurance group。
- NVM Set Scope:命令可能影响 NVM sets。
- Controller Scope:命令可能影响控制器。
- Namespace Scope:命令可能影响 namespace。
-
Controller Capability Change (CCC)
- 功能:如果设置为
1,表示该命令可能会改变控制器的功能,例如通过固件更新来修改 CAP 属性。 -
影响:此标志位开启时,命令执行可能会导致控制器能力发生变化。
-
Namespace Inventory Change (NIC)
- 功能:如果设置为
1,表示该命令可能会更改多个 namespace 的数量或功能(例如添加或删除 namespace)。 -
影响:此标志位表示 namespace 列表可能发生变化。
-
Namespace Capability Change (NCC)
- 功能:如果设置为
1,表示该命令可能会改变某个 namespace 的能力(例如逻辑格式变化)。 -
影响:此标志位表示 namespace 的能力可能会被修改。
-
User Data Content Change (UDCC)
- 功能:如果设置为
1,表示该命令可能会修改一个或多个 namespace 中的用户数据内容(例如写操作)。 -
影响:此标志位表示数据内容会被修改。
-
Command Supported (CSUPP)
- 功能:如果设置为
1,表示该命令受控制器支持;如果设置为0,则该命令不受支持,其他字段应清除为0h。 - 影响:这是判断命令是否被控制器支持的关键字段。
命令和功能锁定 (Log Identifier 14h)
该日志页面用于描述哪些命令和功能标识符 (Set Features Feature Identifiers) 被禁止执行。该功能是通过 Command and Feature Lockdown 能力实现的,允许控制器在收到某些命令时进行禁用,保证系统在某些情境下的稳定性或安全性。
字段分析:
- Command and Feature Identifier List
- 功能:此字段列出了被禁止执行的命令和功能标识符。这些命令可能来自 Admin Submission Queue 或通过外部管理端点接收。
-
影响:可以根据 UUID Index 字段指定作用范围和返回的锁定信息内容。
-
UUID Index
- 功能:该字段用于在执行 Get Log Page 命令时,指定返回的锁定信息的范围,支持通过该字段过滤特定供应商的功能锁定信息。
- 影响:通过指定 UUID,可以控制返回的命令和功能锁定的详细信息。
总结
- NVMe-MI 命令支持和影响数据结构 定义了 NVMe-MI 命令的作用范围,以及它们对 NVM subsystem 可能产生的影响。特别是 CSP 字段帮助定义了命令的作用范围,可以影响从控制器到 namespace 等不同层次。
- 命令和功能锁定 功能通过 Command and Feature Lockdown 能力对特定命令和功能标识符进行禁用,确保在特定场景下的安全性和稳定性。通过使用 UUID Index 和 Log Specific Field,可以精确地控制返回的锁定信息的范围。
这些功能和命令对于 NVM subsystem 的精确管理和调控至关重要,尤其是在需要对存储系统进行细粒度控制和限制时。