命名空间管理 - 🌟 Keep Alive Command Based Keep Alive (第137页)
NVME2.0协议解读 1 min read

命名空间管理 - 🌟 Keep Alive Command Based Keep Alive (第137页)

Blog Author

以下是对 《NVM Express® Base Specification, revision 2.0b》第126页Keep Alive Command Based Keep AliveTraffic Based Keep Alive 机制的详细中文解析与学习讲解,以及 Privileged Actions 相关内容。


🌟 Keep Alive Command Based Keep Alive

工作原理:

Keep Alive Command Based Keep Alive 模式限制了 Keep Alive Timer 的重启只能通过处理 Keep Alive 命令 来实现。这种模式的启用方式为将 TBKAS bit 设置为 0。这种方式强调主机和控制器通过定期处理 Keep Alive 命令 来重启定时器,从而确保连接持续有效。

  • 定时器超时条件
  • 如果控制器 Keep Alive Timer 超时,并且在 Keep Alive Timeout Interval 内没有处理任何 Keep Alive 命令,则认为发生了 Keep Alive Timeout
  • 如果主机的 Keep Alive Timer 超时,并且在 Keep Alive Timeout Interval 内没有收到 Keep Alive 命令 的完成,则主机认为发生了 Keep Alive Timeout

  • 超时间隔的考虑
    主机应该在 Keep Alive Timeout 的一半时间内发送 Keep Alive 命令,以考虑传输的往返时间、传输延迟、命令执行时间和定时器粒度。

命令限制

  • Keep Alive 命令 用于重置超时计时器,因此只有在处理 Keep Alive 命令 后,定时器才会重新计时。

🚦 Traffic Based Keep Alive

工作原理:

Traffic Based Keep Alive (TBKAS) 模式允许主机和控制器在处理 Admin 命令I/O 命令 时,重新启动 Traffic Based Keep Alive Timer。此模式依赖于命令的处理来重启定时器,而不仅仅是依赖于定期的 Keep Alive 命令

  • 定时器超时条件
  • 如果在 Keep Alive Timeout Interval 内没有处理任何 Admin 命令I/O 命令,则认为发生了 Keep Alive Timeout
  • 如果在 Keep Alive Timeout Interval 内处理了 Admin 命令I/O 命令,则定时器会在命令处理后重启。

超时重启机制

  • 控制器行为
  • 如果在超时区间内没有收到 Admin 命令I/O 命令,控制器认为发生了 Keep Alive Timeout
  • 如果在超时区间内接收到命令,控制器会在命令完成后重新启动 Keep Alive Timer

  • 主机行为

  • 主机会检查命令完成队列,确保在 Keep Alive Timeout 的一半时间内收到命令完成通知。如果没有收到完成,主机应发送 Keep Alive 命令

  • 避免超时
    为了避免超时,主机应确保在 Keep Alive Timeout Interval 的一半时间内发送 Keep Alive 命令,特别是在没有 Admin 命令I/O 命令 时。

配置和发送频率

主机应以较快的频率发送 Keep Alive 命令,考虑到命令的执行时间、传输延迟和 Keep Alive Timeout 的粒度。


🔑 Privileged Actions(特权操作)

特权操作的定义

特权操作 是指那些可能影响控制器状态或所有附加命名空间状态的操作。通常,这些操作具有较高的权限级别,并且一旦执行,可能会影响整个系统的状态或资源配置。

特权操作的示例

  1. Admin 命令
  2. 命名空间管理(Namespace Management)
  3. 命名空间附加(Namespace Attachment)
  4. 虚拟化管理(Virtualization Management)
  5. 格式化 NVM(Format NVM)
  6. Set Features 命令,特征标识符为 17h(Sanitize 配置)
  7. Sanitize 操作
  8. 容量管理(Capacity Management)

  9. 属性写操作

  10. NVM 子系统重置(NVM Subsystem Reset)

这些操作的重要性

  • 影响范围:这些操作可能会影响整个 NVM 子系统,或者直接影响所有相关的命名空间、耐久组和控制器。因此,它们必须经过严格的权限验证和处理,以避免对系统造成不可逆转的影响。

  • 权限要求:执行这些操作时,通常需要更高的权限等级,并且只有在满足特定条件时才能执行。


🧠 总结与关键点

内容 说明
Keep Alive Command Based Keep Alive 仅当处理 Keep Alive 命令 时才会重启定时器,确保连接持续有效。
Traffic Based Keep Alive 基于处理 Admin 命令I/O 命令 来重启定时器,避免超时发生。
Keep Alive 超时 控制器和主机都会根据命令处理情况来判断是否发生 Keep Alive Timeout,并采取相应措施。
特权操作 特权操作对系统有重大影响,可能涉及 命名空间管理格式化操作子系统重置 等,必须经过权限验证。

如果你想继续深入了解 特权操作 如何在实际应用中执行,或者对 Keep Alive Timeout 在特定系统中的实现和配置有更多问题,欢迎继续提问!