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层可以选择更多的通信。(其他步骤略)

    附图:

  • 相关阅读:
    linux添加超级用户
    MongDB配置方法
    【bzoj5174】[Jsoi2013]哈利波特与死亡圣器 二分+树形dp
    【bzoj3560】DZY Loves Math V 欧拉函数
    【bzoj5157】[Tjoi2014]上升子序列 树状数组
    【uoj#317】[NOI2017]游戏 2-SAT
    【bzoj5146】有趣的概率 微积分
    【bzoj4695】最假女选手 线段树区间最值操作
    【bzoj4355】Play with sequence 线段树区间最值操作
    【loj2319】[NOIP2017]列队 Splay(卡过)
  • 原文地址:https://www.cnblogs.com/JamesLi/p/13444178.html
Copyright © 2011-2022 走看看