存储接口协议——SCSI、FC、SAS、PCIE等协议基本讲解

2023-10-21 03:40

本文主要是介绍存储接口协议——SCSI、FC、SAS、PCIE等协议基本讲解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

存储接口类型

SCSI接口协议

基本概念

SCSI总线逻辑架构图(并行)

具体的工作原理

 SCSI寻址

FC协议讲解

FC基础概念

FC协议结构

FC通信

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

FC拓扑结构

FC协议的端口类型

FC适配器(FC HBA卡)

SAS接口协议(串行SCSI)

基本概念

SAS协议层次结构

SCSI、SAS、SATA之间的关系

PCIE接口协议

基本概念

PCIE协议


存储接口类型

SCSI接口、FC接口、SAS接口

这三个都是用于承载SCSI上层协议的

对于SCSI接口来说,有人可能蒙掉了,SCSI不是上层协议的名字么,为何底层物理接口也叫SCSI?

因为SCSI这个标准最早的时候把上层协议一直到底层传输协议、物理层、网络层全给定义了

SATA接口

仅用于承载ATA协议

其前身IDE接口,也承载ATA协议

为低端应用而设计的机械底盘,不适用于大数据吞吐量和多线程传输

PCIE标准接口

承载PCIE传输协议,NVMe over PCIE;也有SCSI over PCIE但是没有普及

U.2接口

其中包含SAS、SATA和PCIE x4三套接口,充分利用空间,将三套金手指信号做到接口上,各干各的;意味着通过此接口可以插入一块SAS或SATA或PCIE盘

U.2实质上是一种combo组合接口。

m.2

接口广泛用于平板电脑里的固态存储介质

其底层可承载PCIE传输协议,然后可以实现SCSI over PCIE,NVMe over PCIE

其也可以直接跑SATA信号,相当于新型的SATA接口。

emmc接口

没有连接器,直接从flash颗粒管脚以贴片的方式与emmc控制器的管脚相连

承载onfi/toogle协议;属于并行总线

ufs接口

没有连接器,直接从flash颗粒管脚以贴片的方式与ufs控制器的管脚相连,属于串行总线

接口类型主要优势主要劣势应用领域
SCSI性能较高价格较高企业级存储
FC高性能;高可靠性价格较高高端存储
SATA价格低,容量高性能、可靠性较低中低端存储
SAS高性能,高可靠性价格较高中高端存储

其中SCSI、FC、PCIE不仅可以作为接口协议,还可以作为存储的传输协议

SCSI接口协议

基本概念

SCSI小型计算机系统接口,通过此接口所搭建的链路中跑的报文信息都叫做SCSI协议

  1. SCSI协议是主机与存储磁盘通信的基本协议
  2. DAS就是使用SCSI协议实现主机服务器与存储设备的互联
  3. SCSI线缆一般只有10m到20m左右,不利于长距离传输

SCSI总线逻辑架构图(并行)

SCSI阵列、LUN:

我们知道SCSI总线上可挂载的设备数量是有限的,一般为8个或者16个,可以用target ID(SCSI ID)来描述这些设备;设备只要加入系统,就会有一个代号,我们在区分设备的时候,只需要说其代号即可

而实际上我们需要用来表示的对象,是远远超过该数字的,于是我们引入了LUN的概念,也就是说LUN的作用就是扩充了Target ID;每个Target下都可以有多个LUN Device,我们通常简称为LUN.

每个Target上最多有32个LUN,一个LUN对应一个逻辑设备(一个逻辑设备可能是一个分区,也有可能是一个独立的磁盘.)

主机适配器:

类似一个管理员,管理总线上的数据传输

终结器:

终结报文的传输(限制广播报文的传输)

具体的工作原理

工作流程

发起方Intialor(发起数据访问的设备---服务器)发起SCSI请求

通过SDS(软件定义存储—即帮助发起方找到目标方)发送给目标方Target

目标方Target(等待数据访问的设备--存储)回复SCSI请求并通过LUN提供业务

注意事项:LUN是对目标器的扩展,启动器没有LUN来扩展

完整的SCSI请求

一个完整的SCSI请求由CDB、数据、命令属性信息构成

其中CDB描述了该SCSI命令的具体细节(包括操作类型、数据处理方式等)

 SCSI寻址


FC协议讲解

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拓扑结构

点对点

两台设备直接连接到对方(最简单的一种拓扑)

仲裁环

所有设备连接到一个类似于令牌环的环路上(在这个换路上添加/移除一个设备会导致环路上所有活动中断;通过光纤通道集线器的方法能将众多设备连接到一起,形成一个逻辑上的环路,这种环路可以避免环路节点上的故障不会影响整个换路上的通信-多用于小型SAN环境中,现在已不再使用)

交换网络

构建现代FC SAN的方式;使用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网络的应用,实现高带宽高性能存储组网方案


SAS接口协议(串行SCSI)

基本概念

SAS的基本概念

SAS是Serial Attached SCSI的缩写,即串行连接SCSI(SAS是SCSI总线协议的串行标准)

SAS的特点

1、SAS串行通信方式允许将多个数据通路全速与各个设备通信

2、SAS通过串行技术获得了更高的传输速率和更好的扩充性(SAS的背板可以兼容SATA和SAS两种硬盘)

3、SAS支持将多个窄端口捆绑形成宽端口(1根窄端口的速率是12GB,一般是4个窄通道连接在一起)

4、SAS结构采用扩展器(Expander)进行接口扩展,并兼容SATA硬盘

  • 一个核心Expander连接外接分支的Expander(最多支持128个Expander)
  • 1个外接分支Expander可以连接128个磁盘设备
  • 所以1个SAS域理论上最多可以连接16384个磁盘设备
  • 但是由于传输带宽的限制,目前最佳的实践是168块盘(7个分支扩展器分别连接24个硬盘,也就是7个24位硬盘槽)

5、SAS采用全双工模式

SAS协议层次结构

物理层:对于线缆、接头、收发器等硬件进行了定义;

PHY层: 包括了最低级的协议,比如编码方案和供电/复位序列等等;

链路层:描述的是如何控制phy层连接管理,以及CRC校验和速率匹配处理等;

端口层:描述的是链路层和传输层的接口,包括如何请求、中断、如何选择建立连接;

传输层:定义了如何将所传输的命令、状态、数据封装在SAS帧中,以及如何分解SAS帧;

应用层:描述了如何在不同类型的应用下使用SAS的细节。

SCSI、SAS、SATA之间的关系

在物理层:

  1. SAS接口和SATA接口完全兼容,SATA硬盘可以直接使用在SAS的环境中
  2. 从接口标准上而言,SATA是SAS的一个子标准,因此SAS控制器可以直接操控SATA硬盘,但是SAS却不能直接使用在SATA的环境中,因为SATA控制器并不能对SAS硬盘进行控制

在协议层,SAS由3种类型协议组成,根据连接的不同设备使用相应的协议进行数据传输。

  1. 串行SCSI协议(SSP)用于传输SCSI命令;
  2. SATA通道协议(STP)用于SAS和SATA之间数据的传输。
  3. SCSI管理协议(SMP)用于对连接设备的维护和管理;

因此在这3种协议的配合下,SAS可以和SATA以及部分SCSI设备无缝结合


PCIE接口协议

基本概念

PCIE一种高速串行计算机扩展总线标准,有两种存在形式(一个是PCIE接口,一个是PCIE通道)

PCIE接口:(4种尺寸)

PCIE通道:传输从存储接口过来的数据

除了PCIE接口可以通过通过PCIE通道传输,M.2接口、USB4.0、雷电3/4接口也是通过PCIE通道传输的

不同PCIE版本和不同PCIE接口尺寸对应的带宽

PCIE版本\PCIE尺寸x1x2x4x8x16
PCIE1.0250MB/s500MB/s1GB/s2GB/s4GB/s
PCIE2.0500MB/s1GB/s2GB/s4GB/s8GB/s
PCIE3.01GB/s2GB/s4GB/s8GB/s16GB/s
PCIE4.02GB/s4GB/s8GB/s16GB/s32GB/s

特点

PCIE可以提高系统吞吐量、可扩展性和灵活性

支持热插拔(PCIE总线接口插槽包括“热插拔检测信号”)

节省IO,减少板级空间,降低干扰

PCIE协议

  • 数据链路层(Data Link Layer

数据链路层的重要作用就是要保证PCI Express总线传输的数据包的正确性和可靠性。

  • 事务层(Transaction Layer主要作用有两个:

    一是接受来自软件层送来的读、写请求,或者本身创建一个请求封装包传到数据链路层,这种数据包称为“处理层数据包”(TransactionLayer PacketTLP

     另一个作用是接受从链路层传来的响应数据包(DataLink Layer Packet,DLL P),并将其与相关的软件请求相关联,传送至软件层(应用层)处理

这篇关于存储接口协议——SCSI、FC、SAS、PCIE等协议基本讲解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/251695

相关文章

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写

使用JavaScript操作本地存储

《使用JavaScript操作本地存储》这篇文章主要为大家详细介绍了JavaScript中操作本地存储的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录本地存储:localStorage 和 sessionStorage基本使用方法1. localStorage

Java如何接收并解析HL7协议数据

《Java如何接收并解析HL7协议数据》文章主要介绍了HL7协议及其在医疗行业中的应用,详细描述了如何配置环境、接收和解析数据,以及与前端进行交互的实现方法,文章还分享了使用7Edit工具进行调试的经... 目录一、前言二、正文1、环境配置2、数据接收:HL7Monitor3、数据解析:HL7Busines

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。