zoukankan      html  css  js  c++  java
  • 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层可以选择更多的通信。(其他步骤略)

    附图:

  • 相关阅读:
    zjnu1725 COCI (类似二维树状数组模拟)
    zjnu1730 PIRAMIDA(字符串,模拟)
    hdu5365Shortest Path (floyd)
    表达式的转换 (模拟题)
    zjnu1709 UZASTOPNI (bitset,树形dp)
    zjnu1707 TOPOVI (map+模拟)
    zjnu1716 NEKAMELEONI (线段树)
    zjnuSAVEZ (字符串hash)
    codeforces 55D. Beautiful numbers (数位dp)
    TP5将入口文件放在Public中,能得到那些安全保障?
  • 原文地址:https://www.cnblogs.com/JamesLi/p/13444178.html
Copyright © 2011-2022 走看看