NVM子系统架构 - Discovery 控制器初始化 (第52页)
NVME2.0协议解读 1 min read

NVM子系统架构 - Discovery 控制器初始化 (第52页)

Blog Author

在《NVM Express® Base Specification, revision 2.0b》第3.1.2.3.1节中,Discovery 控制器的初始化过程被详细描述。以下是对这一过程的深入分析:


Discovery 控制器初始化

Discovery 控制器的初始化过程主要包括以下几个步骤,用于确保主机能够正确地发现和连接到适当的NVM子系统,并确保多个控制器或端口的可访问性。

控制器 ID 及动态/静态模型

  1. Controller ID:在Discovery Log Page中,每个条目返回的Controller ID(控制器标识符)用于指示该NVM子系统支持的控制器模型类型。
  2. 动态控制器模型:如果Discovery Log Page条目中的Controller ID为FFFFh,则表示该NVM子系统支持动态控制器模型。在这种情况下,主机可以连接到任何可用的控制器。
  3. 静态控制器模型:如果Discovery Log Page条目中的Controller ID小于FFFFh,则表示该NVM子系统支持静态控制器模型。在这种情况下,主机将根据特定的Controller ID来连接控制器。

  4. 多个Controller ID条目

  5. 动态控制器:如果NVM子系统实现动态控制器模型,Discovery Log Page可能会返回多个条目,其中Controller ID为FFFFh。这些条目指示主机可以连接到多个控制器或端口。
  6. 静态控制器:如果NVM子系统实现静态控制器模型,Discovery Log Page也可能返回多个条目,但这些条目将使用不同的Controller ID值。主机在每次连接时可以使用这些不同的Controller ID来选择不同的控制器。

连接和重用Controller ID

  • 在动态控制器模型中,由于Controller ID为FFFFh,主机可以灵活地选择任何可用的控制器。
  • 在静态控制器模型中,主机通常会记住第一次通过Fabrics Connect命令返回的Controller ID,并在以后的关联中重用这个已分配的Controller ID,确保连接的一致性。

Discovery控制器的功能

Discovery 控制器的主要功能是提供和管理与NVM子系统的连接。它通过Discovery Log Page向主机提供有关NVM子系统的信息,并支持在多个控制器或端口之间进行选择。

  1. 多路径支持:通过返回多个Discovery Log Page条目,Discovery 控制器可以提供多路径信息,允许主机根据需求选择不同的连接路径。
  2. 持久连接和事件通知:如果Discovery控制器支持持久连接,则主机可以指定Keep Alive计时器值来请求持续的连接。若未支持持久连接,则Discovery控制器可能会使用固定的超时机制。

初始化过程

Discovery 控制器初始化的过程确保主机能够通过Discovery控制器获得NVM子系统的相关信息,并建立连接。主机首先使用Connect命令连接到Discovery服务,通过Discovery Log Page获取关于NVM子系统的条目,并确定如何连接到这些子系统。


总结

Discovery 控制器在NVM Express架构中起到了至关重要的作用,它使得主机能够发现并访问多个NVM子系统和控制器。通过控制器ID的动态或静态管理,Discovery控制器提供了灵活的路径选择和控制器分配方式,帮助系统管理员在复杂存储环境中实现高效的资源利用与管理。