命名空间管理 - 🔄 队列级重置(Queue Level Reset) (第131页)
NVME2.0协议解读 1 min read

命名空间管理 - 🔄 队列级重置(Queue Level Reset) (第131页)

Blog Author

以下是对 《NVM Express® Base Specification, revision 2.0b》第120页 中关于 队列级重置(Queue Level Reset)NVM 容量模型(NVM Capacity Model) 的详细中文解析与学习讲解。


🔄 队列级重置(Queue Level Reset)

队列重置操作概述

队列级重置是指主机通过删除并重建 I/O 提交队列(I/O Submission Queue)I/O 完成队列(I/O Completion Queue) 来重置队列。此过程用于确保队列的重新配置或恢复。

操作步骤(基于 Memory-based Transport)

  1. 删除 I/O 完成队列(I/O Completion Queue)
  2. 在进行 I/O 完成队列重置之前,首先应删除所有与该完成队列相关联的 I/O 提交队列
  3. 删除提交队列后,I/O 完成队列可以被重置并重新创建。

  4. 删除与重建队列

  5. 使用 Delete I/O Submission QueueDelete I/O Completion Queue 命令删除目标队列。
  6. 在删除命令完成后,主机可以通过 Create I/O Submission QueueCreate I/O Completion Queue 命令重建队列。

  7. 队列删除的影响

  8. 提交队列删除后,任何挂起的命令将被控制器中止,可能会导致命令条目未能出现在完成队列中。

操作步骤(基于 Message-based Transport)

  1. 使用 Disconnect 命令断开要删除的队列。
  2. 断开后,使用 Connect 命令重新建立队列,并为其指定一个非 00hQID
  3. Connect 命令中,主机可以修改队列的属性。

🌍 NVM 容量模型(NVM Capacity Model)

NVM 子系统容量报告

NVM 子系统通过一套层级结构报告不同实体的容量信息,包括子系统、域(Domain)、耐久组(Endurance Group)、NVM 集(NVM Set)、命名空间(Namespace)和介质单元(Media Unit)。这些实体之间的关系如下图所示:

实体与容量分配关系

  • NVM 集(NVM Set)
    一个 NVM 集的容量可以分配给一个或多个命名空间(Namespace),并且每个命名空间完全存在于某个 NVM 集中。并非所有 NVM 集的容量都必须分配给命名空间。

  • 耐久组(Endurance Group)
    一个耐久组的容量可以分配给一个或多个 NVM 集,且每个 NVM 集完全存在于某个耐久组中。并非所有耐久组的容量都必须分配给 NVM 集。

  • 域(Domain)
    在支持耐久组的控制器中,域的容量可以分配给一个或多个耐久组。

  • 介质单元(Media Unit)
    每个介质单元分配给一个耐久组,并且在支持 NVM 集的控制器中,介质单元也可以分配给一个 NVM 集。数据通过 Channels 在介质单元与主机之间进行传输。

容量分配流程

  • 主机使用 Capacity Management 来分配:
  • 域容量给耐久组;
  • 耐久组容量给 NVM 集;
  • 介质单元给耐久组;
  • 介质单元给 NVM 集。

  • 主机使用 Namespace Management 中的创建操作来为命名空间分配容量。


🧠 理解 NVM 容量模型的关键点

容量层次与分配

NVM 子系统的容量管理使用层次化结构,允许更精细的资源分配:

  1. NVM 集:作为容量的主要分配单位,可以为命名空间提供存储空间。
  2. 耐久组:提供耐用性保障,可将存储空间分配给多个 NVM 集。
  3. :作为更广泛的容器,控制器可以在域级别分配资源,确保管理的灵活性和可扩展性。

数据流动与资源连接

每个 介质单元 连接到一个或多个 Channels,通过这些通道进行数据传输。每个 介质单元 可以被分配给一个 耐久组NVM 集,而 Channel 负责在介质单元和主机之间传输数据。


📘 总结与教学重点

内容 重点
队列级重置 通过删除并重建 I/O 提交队列I/O 完成队列,确保队列的重新配置。主机需要处理挂起命令,并根据需要修改队列属性。
NVM 容量模型 NVM 子系统的容量可以按层级进行分配,从 NVM 集耐久组 再到 ,实现精细化管理。每个 介质单元Channel 紧密相连,负责数据的传输。
容量分配流程 主机使用 Capacity ManagementNamespace Management 操作来分配资源,确保各个层级的容量能够根据需求进行合理分配。

如果你希望继续了解 NVM 子系统容量报告的结构如何通过 Capacity Management 分配资源,或者有其他更具体的部分需要分析,随时告诉我!