FC连接过程(较简略)

1. 初始化和连接发现(initialization and device discovery)

常见的FC连接拓扑有三类:网络连接,点对点连接,环形连接。这里跟踪网络连接和点对点连接。

1.1 有FC交换机情况

 步骤1至3必选,其他步骤可以按以下描述执行,也可以其他方式执行。(注:前5步是与FC交换机打交道,第6步的PLOGI已开始涉及initiator端和target端打交道)

(1)执行Fabric Login(FLOGI);

(2)Login with Name Server;

(3)向Name Server注册信息:

  • FC-4 TYPE
  • FC-4 Features

(4)注册SCN(State Change Notification)(参考FC-LS-4);

(5)下发一个GID_FF(参考FC-GS-8)查询,参数Domain_ID范围和Area_ID范围字段都设置为0,FC-4 Feature字段设置为0x04,Type字段设置为0x28(0x28是FC-NVMe指定的,如果FCP的SCSI相关则填写0x08)。此查询获得支持对应协议(NVME或SCSI)的一个Port ID的列表,和一个Discovery Service(NVMe over Fabrics情况);

(6)使用Type 0x28和FC-4 Feature Bits 0x04发起的GID_FF查询,交换机给的CT_IU中,返回的所有每一个Port ID:

  • i)NVMe层初始一个会话
    • 1)初始化NVMe_Port确保与FC target端NVMe_Port有一个login。
      • i)发送PLOGI
      • ii)使用type为0x28发送PRLI
    • 2)FC-NVMe层创建一个association和发起一个Admin Queue connection:
      • i)发送Create Association NVMe_LS到Discovery Service subsystem。
    • 3)NVMe层下发一个NVMe over Fabrics的Connection命令(这是新创建传输层的Admin Queue connection)。此Connection命令用于创建Admin Queue。
    • 4)NVMe层可以通过传输层Admin Queue连接,请求更多的NVMe over Fabrics命令。
    • 5)对于NVMe Discovery Service,无I/O队列。
    • 6)NVMe层下发Get Log Page命令,Log ID设置为0x70,从Discovery Service读取Discovery Log Entries。
    • 7)NVMe层可以继续与Discovery Service交互也可以终止。
      • i)发送NVMe_Disconnect LS到Discovery Service将终止association关联关系。
      • ii)target端收到此LS回应此LS response。
      • iii)传输层相关所有连接终止。
      • iv)如果initiator NVMe_Port与target NVMe_Port无其他association关联了,则login可以终止(发送 LOGO到target)。

(7)向Name Server下发GID_FF查询,Domain_ID Scope和Area_ID Scope字段都设置为0,FC-4 Feature Bits字段设置为0x01,Type字段设置为0x28。此查询获得一个支持NVMeoFC协议的Port ID列表,以及所支持的NVMe over Fabrics Target Port Function。

(8)运行期间,如果NVMe选择与某NVMe subsystem通信,NVMe层使用FC-NVMe层建立与NVM subsystem的会话:

  • i)。。。vii) 此处连接与前边过程类似,只是比连接Discovery Service多了创建I/O队列的connect(略)。

(9)Initiator端可以中止association。

1.2 点对点连接(无交换机的情况)

(1)N_Port_Name大者发起PLOGI;

(2)initiator端发起PRLI(如果NVMe_Port则设置Type为0x28);

(3)如果target端不支持(PRLI未成功)则通信停止。

(4)如果target端支持,并返回标识所支持特性的Feature位。

(5)运行期间,NVMe层可以选择更多的通信。(其他步骤略)

附图:

原文地址:https://www.cnblogs.com/JamesLi/p/13444178.html