命名空间管理 - 🔄 队列级重置(Queue Level Reset) (第131页)
以下是对 《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):
- 删除 I/O 完成队列(I/O Completion Queue):
- 在进行 I/O 完成队列重置之前,首先应删除所有与该完成队列相关联的 I/O 提交队列。
-
删除提交队列后,I/O 完成队列可以被重置并重新创建。
-
删除与重建队列:
- 使用 Delete I/O Submission Queue 或 Delete I/O Completion Queue 命令删除目标队列。
-
在删除命令完成后,主机可以通过 Create I/O Submission Queue 或 Create I/O Completion Queue 命令重建队列。
-
队列删除的影响:
- 提交队列删除后,任何挂起的命令将被控制器中止,可能会导致命令条目未能出现在完成队列中。
✅ 操作步骤(基于 Message-based Transport):
- 使用 Disconnect 命令断开要删除的队列。
- 断开后,使用 Connect 命令重新建立队列,并为其指定一个非
00h的 QID。 - 在 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 子系统的容量管理使用层次化结构,允许更精细的资源分配:
- NVM 集:作为容量的主要分配单位,可以为命名空间提供存储空间。
- 耐久组:提供耐用性保障,可将存储空间分配给多个 NVM 集。
- 域:作为更广泛的容器,控制器可以在域级别分配资源,确保管理的灵活性和可扩展性。
✅ 数据流动与资源连接
每个 介质单元 连接到一个或多个 Channels,通过这些通道进行数据传输。每个 介质单元 可以被分配给一个 耐久组 或 NVM 集,而 Channel 负责在介质单元和主机之间传输数据。
📘 总结与教学重点
| 内容 | 重点 |
|---|---|
| 队列级重置 | 通过删除并重建 I/O 提交队列 或 I/O 完成队列,确保队列的重新配置。主机需要处理挂起命令,并根据需要修改队列属性。 |
| NVM 容量模型 | NVM 子系统的容量可以按层级进行分配,从 NVM 集 到 耐久组 再到 域,实现精细化管理。每个 介质单元 与 Channel 紧密相连,负责数据的传输。 |
| 容量分配流程 | 主机使用 Capacity Management 和 Namespace Management 操作来分配资源,确保各个层级的容量能够根据需求进行合理分配。 |
如果你希望继续了解 NVM 子系统容量报告的结构 或 如何通过 Capacity Management 分配资源,或者有其他更具体的部分需要分析,随时告诉我!