存储协议——FC协议讲解

news2024/11/24 2:58:07

目录

FC基础概念

FC协议结构

FC通信

FC交换网络工作流程:(以封装SCSI协议为例)

FC拓扑结构

FC协议的端口类型

FC适配器(FC HBA卡)


FC基础概念

FC最开始为一种传输协议,由于其性能较高,逐渐发展到前端作为主机接口,并逐渐发展为点对点、交换机等组网

FC协议结构

 

FC-4:高层协议映射

将SCSI、IP、ATM等协议封装到FC网络中进行传输----封装IP、ATM的功能已经不使用了

FC-3:通用服务(压缩解压缩、加密解密等功能)

本层包括条带(通过多条通道传输数据), 多点传送(将一个信息发送到多个目标)和查寻组(为一个节点映射多个端口)等先进功能。

FC-2:数据分发

本层定义了在网络内发送数据的基本规则

1) 如何将数据切分为小帧;

2) 一次可以发送多少数据(流控制);

3) 帧应当发送到什么地方。它同时包括根据应用定义服务等级。

FC-1:字节编码

进行编码或解码信号

本层记录8b/10b传输编码用于平衡传输位流

编码还可以作为数据传输和接受错误检测机制(2bit是校验码)

8G FC使用 8/10bit字节编码,16G FC使用64/66bit 字节编码

FC-0:物理界面

连接物理介质的界面,定义编码和解码标准等

常用连接线为铜缆和光缆

FC通信

FC通信主要依靠WWN和FCID号来实现,具体如下:

当有一个WWN登录到交换机的某一个端口时,交换机会为其分配一个FCID地址

同时交换机也将会创建FCID和登录WWN地址之间的关联并维护他们之间的关系

WWN号:类似于以太网中的MAC地址的作用(64bit)

硬件的全球唯一标示(由WWNN和WWPN组成)

WWNN-----节点号    FC网络中每个设备自身都有一个WWNN

WWPN----- 端口号    FC网络中每个设备的端口都有一个WWP

 

FCID:类似于以太网中的IP地址(24bit)

由于WWN号用来寻址太长,会影响到路由的性能,索引采用另外一种方式(FCID)来进行寻址(当时这个FCID需要与WWN关联--通过Flogin表关联且本地有效)

FCID是由FC交换机分配给终端的

  1. Domain ID:用来表示交换机本身的地址(最大256个地址,除去被保留的地址,只有239个地址可用)。所以一个SAN网络最多连接239个交换机
  2. Area ID:     用于表示不同端口组
  3. Port ID:      用于表示同一端口组中不同的端口(或者是仲裁环的物理地址)

FC交换网络工作流程:(以封装SCSI协议为例)

1、光纤网络搭建完成后,分配各自FC交换机的Domain ID:

由于Domain ID最多只有239个地址,所以网络中最多只可以有239台FC交换机

(如果FC交换机划分了VSAN----可以将一台交换机看作多台交换机,那这个VSAN也占用一个Domain ID)

NPV模式——扩展FC SAN的规模

NPV交换机可以扩展FC SAN的规模,且不需要占用Doamin ID的资源(一般部署在网络边缘处,位于N节点---服务器 和交换机之间)

可以解决在中大型网络中Domain ID不够用,影响网络的部署性和扩展性的问题

2、生成FSPF路由表使整个FC网络光纤交换机之间可以查询路由并通信

FC交换机拥有Domain ID后,会维护一张FSPF(光纤最短路径优先)路由表

路由表维护Domian ID、Domain ID的Cost、出接口三种信息

FSPF--类似于路由表,只有在进行数据转发需要用到

Cost计算方法:2Gbps  500,4Gbps 1000  以此类推

3、终端使用HBA卡接入光纤交换机获取FCID

服务器或者存储通过HBA卡接入光纤交换机,通过自己的WWN向光纤交换机申请FCID

此时光纤交换机会将自己的Domain ID加上Area ID和Port ID分配给服务器或者存储

并在光纤交换机上产生一张本地有效的Flogin表,此表记录每个端口接入终端的信息(VSAN、FCID、WWN之间的映射关系)

Flogin表:关联自身分配的FCID和WWN  本地有效

Flogin协议的FCID为0xFFFFFE(预留地址)

4.服务器与磁盘阵列之间通信,执行三次Plogin(动态口令)操作建立联系

  • 第一次

让终端在各个光纤交换机上注册,这时每个光纤交换机都是一个FCNS服务器(FC名称服务器),并产生一个 FCNS数据表,并同步给整个FC网络的光纤交换机

FCNS数据表里包含端口所属VSAN,FCID是什么,端口是什么类型 ,PWWN,什么网络类型,功能类型,应用哪种QoS等信息

PLogin协议的FCID为0xFFFFFC(预留地址)。

FCNS数据表中功能类型一般分为两类:

一类是发起者(Initiator),一般为服务器、一类是目标(target),一般为磁盘阵列

FCNS数据表(统计目标器和启动器),全局同步

 

  • 第二次

再次发送Plogin给光纤交换机,请求查看一下FC网络中有那些类型为target的可用磁盘阵列

 

  • 第三次

发送Plogin给target建立链接(以下是服务器和存储建立连接,存储和服务器建立连接的过程类似)

5.服务器与磁盘阵列建立连接成功,执行PRLI操作,建立SCSI进行交互连接

传输过程同上,三次操作;只是报文类型由Plogin变为PRLI

6.开始传输SCSI数据块

传输过程同上,只是类型变为SCSI块数据

FC拓扑结构

 

FC协议的端口类型

 

设备(节点)端口:

N_Port:Fabric网络架构中,FC终端设备通过此接口直连连接FC交换机

L_Port:仲裁环上(私有环)的FC终端交换机的端口类型(Loop),连接FCAL集线器

NL_Port:仲裁环上(开放环)的FC终端交换机的端口类型,连接FCAL集线器

交换机端口:

E_Port:扩展端口(用于连接交换机到交换机的端口),需要在此端口承载控制信息(路由协议等)

F_Port:Fabric网络架构中,FC交换机通过此接口连接N端口的FC终端设备

FL_Port:Fabric Loop端口,连接FCAL集线器设备

G_Port:普通(Generic)端口,可以转换为E或F端口。

U_Port:通用(Universal)端口,用于描述自动端口检测的术语。

FC适配器(FC HBA卡)

是插在主机侧的

FC总线适配器,支持连接FC网络的应用,实现高带宽高性能存储组网方案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/719559.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我的小流量“转正”心得 --- 下载下方深度语义重排的实践

目录 一、背景 二、通过数据分析找到的问题 三、迭代流程 迭代一: 迭代二: 迭代三: 迭代成功的原因: 知识扩展 四、hnswlib调优过程 五、附录 5.1 hnsw 超参选择 一、背景 在分发中下载带来的收入占比排列仅次于搜索。…

重磅|2024年浙大MPA提前批面试政策公布:申请三步走

说曹操曹操到!昨天还在说浙大MPA提面吃迟迟未公布的事情,晚些时候就来了!等待许久的MPA考生们可以开始着手筹划自己的提面备考了!提前批面试真题周期较长,但是需要做准备的内容确实也不少,本期专注浙大的杭…

如何区分bin log 、redo log 跟 undo log?

概要 MySQL 日志包含了错误日志、查询日志、慢查询日志、事务日志、二进制日志等,如果存储引擎使用的是 InnoDB ,二进制日志(binlog)和事务日志(包括redo log和undo log) 是肯定绕不过去的,本篇接下来详细为大家介绍这三种日志。 redo log 为…

Android OpenGL ES实现简单绿幕抠图

目录 正文 OES FilterBlendShader Filter最后的效果缺陷 正文 实现绿幕抠图,其实想法很简单。 这里简单粗暴的使用着色器替换。 OES Filter 直接实现在相机预览上的Shader ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #extension GL_OE…

Spring Boot 中的 Sleuth 是什么, 如何使用

Spring Boot 是一个非常流行的 Java Web 开发框架,它提供了许多方便的功能,其中之一就是 Sleuth。Sleuth 是一个分布式跟踪系统,用于跟踪应用程序中的请求和操作。在本文中,我们将探讨 Spring Boot 中的 Sleuth 是什么&#xff0c…

git 新建分支,切换分支,上传到远程分支

git 在使用的过程中,有的时候我们需要更换一个分支才存贮数据,作为版本的一个迭代或者是阶段性成果的一个里程碑。 如何来做操作呢? 在git中,可利用checkout命令转换分支,该命令的作用就是切换分支或恢复工作树文件&a…

Linux串口应用编程——STM32MP157

文章目录 替换设备树文件串口API设置行规程struct termios 结构体行规程函数 串口应用——回环 替换设备树文件 挂载boot分区: mount /dev/mmcblk2 /boot拷贝新的设备树文件到boot分区 cp /mnt/stm32mp157c-100ask-512d-lcd-v1.dtb /bootreboot重启,查…

C++ set和map使用

搜索平衡二叉树的封装 1. 关联容器2. 键值对3. 树形结构的关联式容器3.1 set3.1.1 set介绍3.1.2 set 的使用1. set模板参数列表2. set的构造3. set 的迭代器4. set的容量5. set修改5. set的使用 3.2 multiset3.2.1 multiset的介绍3.2.1 multiset的使用 3.3 map3.3.1 map的介绍3…

Could not load the Qt platform plugin “xcb“

qt.core.plugin.loader: QLibraryPrivate::loadPlugin failed on “/home/ly/Qt/6.5.1/gcc_64/plugins/platforms/libqxcb.so” : “Cannot load library /home/ly/Qt/6.5.1/gcc_64/plugins/platforms/libqxcb.so: (libxcb-cursor.so.0: cannot open shared object file: No su…

VTK8.2手动卸载

利用源代码方式安装的VTK, 进行手动卸载[参考] 1、进入.. /VTK-8.2.0/build目录 make2、记录sudo make install的log log在uninstall.sh文件中 touch uninstall.sh && chmod 775 uninstall.sh && echo #!/bin/bash -v > uninstall.sh && sudo m…

【unity实战】制作俯视角射击游戏多种射击效果(一)

文章目录 本期目标前言欣赏开始1. 角色移动和场景搭建2. 绑定枪械2.1 首先将各种枪械的素材添加给人物作为子物体2.2 给枪械也分别添加两个子物体用作标记枪口和弹仓位置 3. 枪械动画4. 切换枪械5. 发射功能5.1 手枪(1) 枪械随着鼠标旋转(2) 射击时间间隔(3) 创建好子弹、弹壳和…

手把手教你如何做手机PCB电磁兼容性设计

电磁兼容性是指电子设备在各种电磁环境中仍能够协调、有效地进行工作的能力。电磁兼容性设计的目的是使电子设备既能抑制各种外来的干扰,使电子设备在特定的电磁环境中能够正常工作,同时又能减少电子设备本身对其它电子设备的电磁干扰。 1、选择合理的导…

【霹雳吧啦Wz】Transformer中Self-Attention以及Multi-Head Attention详解

文章目录 来源Transformer起源Self-Attention1. 求q、k、v2. 计算 a ^ ( s o f t m a x 那块 ) \hat{a} (softmax那块) a^(softmax那块)3. 乘V,计算结果 Multi-Head Attention位置编码 来源 b站视频 前天啥也不懂的时候点开来一看,各种模型和公式&#…

FreeRTOS 低功耗模式设计 STM32平台

1. STM32F105RBT6 的三种低功耗模式 1.1 sleep睡眠模式、stop停机模式、standby 待机模式 1.2 STM32中文参考手册有介绍STM32 低功耗模式的介绍 2. FreeRTOS 采用的是时间片轮转的抢占式任务调度机制,其低功耗设计思路一般是: ① 当运行空闲任务&#…

启动网站调试提示 HTTP 错误 403.14 – Forbidden Web 服务器被配置为不列出此目录的内容。

启动网站调试提示 HTTP 错误 403.14 – Forbidden Web 服务器被配置为不列出此目录的内容。 解决方案第一种.在网站的配置文件里添加第二种.ISS管理界面修改 解决方案 第一种.在网站的配置文件里添加 <system.webServer><directoryBrowse enabled"true" /&…

【RH850/U2A】:休眠唤醒

休眠唤醒 唤醒差异休眠差异休眠是解决整个系统待机时尽可能的减少功耗,相应的唤醒则是低功耗模式下整个系统可以被已知的条件唤醒系统,进而进入全功能模式。 RH850/U2A的配置和RH850/F1KM大同小异,本文只讲述差异部分,其他部分详见 【Davinci开发】:IO唤醒系统 唤醒差异 …

API验证器,帮助ReSharper开启VS插件新时代!

实质上&#xff0c;ReSharper特征可用于C#&#xff0c;VB.net&#xff0c;XML&#xff0c;Asp.net&#xff0c;XAML&#xff0c;和构建脚本。 使用ReSharper&#xff0c;你可以进行深度代码分析&#xff0c;智能代码协助&#xff0c;实时错误代码高亮显示&#xff0c;解决方案范…

WideNet:让网络更宽而不是更深

这是新加坡国立大学在2022 aaai发布的一篇论文。WideNet是一种参数有效的框架&#xff0c;它的方向是更宽而不是更深。通过混合专家(MoE)代替前馈网络(FFN)&#xff0c;使模型沿宽度缩放。使用单独LN用于转换各种语义表示&#xff0c;而不是共享权重。 混合专家(MoEs) 条件计…

STM32 串口代码配置

一、首先开发板上关于串口1的引脚配置已经配置好了&#xff0c;位置在SYSTEM的 usart.c 文件中&#xff08;注意&#xff1a;只配置了串口1的&#xff0c;其他使用时需要自己配置&#xff09; 重要的是明白配置的参数都是什么意思&#xff0c;针对实现不同的串口功能有什么影响…

入门Python笔记(基础)

入门Python笔记 入门Python笔记(基础)1. Python的特点2. Python安装3. Python中的数据类型3.1 数字类型3.1.1 整数类型3.1.2 浮点类型3.1.3 复数类型3.1.4 布尔类型 3.2 数字类型的相互转换 4. 运算符4.1 算术运算符4.2 比较运算符4.3 逻辑运算符4.4 位运算符4.5 赋值运算符4.6…