数据结构与日志格式 - 第239页
NVME2.0协议解读 1 min read

数据结构与日志格式 - 第239页

Blog Author

深入分析 NVM Express® Base Specification, revision 2.0b - NVMe-MI 命令的支持和影响及命令和功能锁定

本节继续分析与 NVMe-MI 命令相关的日志页面,重点关注 NVMe-MI Commands Supported and Effects Data StructureCommand and Feature Lockdown 的定义,帮助理解这些命令如何影响 NVM subsystem 和不同功能的支持与执行控制。


NVMe-MI 命令支持与影响数据结构 (图 258)

该数据结构描述了通过 NVMe-MI Send 命令所支持的 管理接口命令 的执行范围,以及这些命令对 NVM subsystem 状态的影响。每个命令根据其操作类型,可能影响多个层级的功能范围,从控制器到 namespace,甚至包括 endurance groupNVM set

字段分析:

  1. Command Scope (CSP)
  2. 功能:该字段定义了与管理命令相关的作用范围。只有一个位被设置为 1,具体指示此命令影响的范围。
  3. 影响:可以影响的范围包括:

    • NVM Subsystem Scope:命令可能影响整个 NVM subsystem
    • Domain Scope:命令可能影响某个 domain
    • Endurance Group Scope:命令可能影响 endurance group
    • NVM Set Scope:命令可能影响 NVM sets
    • Controller Scope:命令可能影响控制器。
    • Namespace Scope:命令可能影响 namespace
  4. Controller Capability Change (CCC)

  5. 功能:如果设置为 1,表示该命令可能会改变控制器的功能,例如通过固件更新来修改 CAP 属性。
  6. 影响:此标志位开启时,命令执行可能会导致控制器能力发生变化。

  7. Namespace Inventory Change (NIC)

  8. 功能:如果设置为 1,表示该命令可能会更改多个 namespace 的数量或功能(例如添加或删除 namespace)。
  9. 影响:此标志位表示 namespace 列表可能发生变化。

  10. Namespace Capability Change (NCC)

  11. 功能:如果设置为 1,表示该命令可能会改变某个 namespace 的能力(例如逻辑格式变化)。
  12. 影响:此标志位表示 namespace 的能力可能会被修改。

  13. User Data Content Change (UDCC)

  14. 功能:如果设置为 1,表示该命令可能会修改一个或多个 namespace 中的用户数据内容(例如写操作)。
  15. 影响:此标志位表示数据内容会被修改。

  16. Command Supported (CSUPP)

  17. 功能:如果设置为 1,表示该命令受控制器支持;如果设置为 0,则该命令不受支持,其他字段应清除为 0h
  18. 影响:这是判断命令是否被控制器支持的关键字段。

命令和功能锁定 (Log Identifier 14h)

该日志页面用于描述哪些命令和功能标识符 (Set Features Feature Identifiers) 被禁止执行。该功能是通过 Command and Feature Lockdown 能力实现的,允许控制器在收到某些命令时进行禁用,保证系统在某些情境下的稳定性或安全性。

字段分析:

  1. Command and Feature Identifier List
  2. 功能:此字段列出了被禁止执行的命令和功能标识符。这些命令可能来自 Admin Submission Queue 或通过外部管理端点接收。
  3. 影响:可以根据 UUID Index 字段指定作用范围和返回的锁定信息内容。

  4. UUID Index

  5. 功能:该字段用于在执行 Get Log Page 命令时,指定返回的锁定信息的范围,支持通过该字段过滤特定供应商的功能锁定信息。
  6. 影响:通过指定 UUID,可以控制返回的命令和功能锁定的详细信息。

总结

  • NVMe-MI 命令支持和影响数据结构 定义了 NVMe-MI 命令的作用范围,以及它们对 NVM subsystem 可能产生的影响。特别是 CSP 字段帮助定义了命令的作用范围,可以影响从控制器到 namespace 等不同层次。
  • 命令和功能锁定 功能通过 Command and Feature Lockdown 能力对特定命令和功能标识符进行禁用,确保在特定场景下的安全性和稳定性。通过使用 UUID IndexLog Specific Field,可以精确地控制返回的锁定信息的范围。

这些功能和命令对于 NVM subsystem 的精确管理和调控至关重要,尤其是在需要对存储系统进行细粒度控制和限制时。