命名空间管理 - 🌟 NVM Sets、耐久组、命名空间的容量管理 (第135页)
NVME2.0协议解读 1 min read

命名空间管理 - 🌟 NVM Sets、耐久组、命名空间的容量管理 (第135页)

Blog Author

下面是对 《NVM Express® Base Specification, revision 2.0b》第124页 中关于 NVM Set、耐久组(Endurance Groups)、命名空间(Namespaces)管理Keep Alive 的详细中文分析与学习讲解。


🌟 NVM Sets、耐久组、命名空间的容量管理

NVM Sets、耐久组和命名空间的管理关系:

在 NVM 子系统中,NVM Sets耐久组(Endurance Groups)命名空间(Namespaces) 是三个重要的管理实体,它们在容量配置和分配中起着重要作用。根据这些实体的支持情况,主机使用不同的容量信息来进行管理操作。

主机如何访问容量信息

  • 如果控制器支持 NVM Sets,主机可以通过 Identify 命令访问 NVM Set List 数据结构(参见 §5.17.2.4)来获取可访问的 NVM Sets 及每个 NVM Set 的容量信息。

容量信息的使用:

Figure 107 描述了 NVM 子系统、耐久组、NVM 集、命名空间等不同实体的创建和删除过程中,主机如何使用容量信息来管理这些实体的容量分配。

🧩 不同实体的容量信息使用:

实体 NVM Sets 支持 Endurance Groups 支持 Domains 支持 使用的容量信息
耐久组 不适用 支持 NVM 子系统容量、耐久组容量
NVM 子系统 Identify Controller 返回的容量(TNVMCAP、UNVMCAP、MEGCAP)
域属性容量(Total Domain Capacity、Unallocated Domain Capacity)
NVM 集 NVM 集容量(Total NVM Set Capacity、Unallocated NVM Set Capacity)
命名空间 命名空间容量信息

说明

  1. 上表中的容量信息用于主机进行实体创建时判断是否有足够的可用容量,并在实体创建或删除时被控制器调整。
  2. NVM Set 支持要求控制器同时支持 Endurance Groups(参见 §3.2.2)。
  3. 创建和删除实体时,涉及的容量信息会更新(例如,创建时分配的容量减少,删除时释放的容量增加)。

🧭 Keep Alive 机制

Keep Alive 的定义与作用

Keep Alive 是一种看门狗定时器,用于检测连接、控制器或主机是否发生故障。在 NVM 子系统中,Keep Alive 定时器被用于确保主机与控制器之间的连接是活跃的,如果在规定时间内没有活动,系统会认为连接存在问题。

Keep Alive 定时器的启动:

  • 在控制器上启动
  • 控制器上的 Keep Alive Timeout Interval 会在 Set Features 命令的 KATO(Keep Alive Timeout)字段被设置为非零时启动。具体操作是,执行 Set Features 命令,带有 Feature Identifier 0Fh 和一个非零的 KATO 字段。

  • 在主机上启动

  • 主机上的 Keep Alive Timeout Interval 会在 Set Features 命令或 Keep Alive 命令被提交到 Admin Submission Queue 时启动,且 KATO 字段为非零。

定时器的作用

  • 检测连接失效:在设定的超时时间内,如果没有活动,系统会认为连接发生故障。
  • 确保系统稳定性:主机和控制器通过定期发送 Keep Alive 信号,确保系统运行的连贯性与稳定性。

🧠 总结与关键点

项目 说明
NVM Sets、耐久组和命名空间管理 容量信息用于管理实体的创建、删除和容量分配,主机使用 Identify 命令和 Capacity Management 来配置实体的容量。
NVM 子系统容量管理 Identify Controller 返回的 TNVMCAPUNVMCAPMEGCAP 字段提供了整个 NVM 子系统的容量信息。
Keep Alive 定时器 用于确保主机与控制器之间的连接正常,如果连接中断,则会触发故障警报。
Keep Alive 启动条件 控制器和主机都能通过设置非零的 KATO 字段启动定时器,确保连接的持续性。

如果你想继续深入学习 NVM Sets 的配置,或者对 Keep Alive 机制的工作原理和实践中的应用有更多的疑问,欢迎随时提问!