存储基础知识学习(12月)

目录

一、IO总线

二、SCSI

三、FC和iSCSI

四、FCIP、FCoE

五、DMA、RDMA、IB

六、ATA、SATA、SAS

七、PCI、PCIe

八、NVMe

九、NVEe over Fabric

十、NDMP

十一、NDM


一、IO总线

在计算机的世界中,各个部件(控制器、运算器、输入设备、输出设备、存储)都是通过总线的模式进行通信的,总线在功能上分为数据总线、地址总线、控制总线。词如其名,数据总线传数据,地址总线传地址,控制总线传控制信号。一般并行传输,所有位都用一根线来传,所有我们常常看到打开主机后会发现一排线,如下图:

除了这种比较直接的排线,也有不太“明显”的,也就是印刷在电路板的总线(印制导线)。

总线是总线上所有部件传输信息的桥梁,当然除了部件间,在一个部件里面,比如一颗CPU内部也是有总线这种技术的。

在计算机中不同设备的功能、速度差异巨大,总线也要相应的进行适应和分类。比如,CPU和内存进行的数据交互速度极快(时钟频率高、距离短),那么把打印驱动和他俩放一起显然会造成“三个人的悲剧”。在计算机中CPU和内存使用的总线叫系统总线,而控制器和外设使用的叫IO总线。两大类总线的时钟频率显然不同,一般采用芯片组技术来处理(北桥南桥)。

了解了总线后,接下来就可以进入正题了。

二、SCSI

(1)概述

SCSISmall Computer System Interface,小型计算机系统接口)是一种为小型计算机研制的接口技术,用于主机与外部设备之间的连接。也就是说它是一种IO总线协议。

我们先从它的发展历史开始了解他:

1979年,美国的Shugart公司(Seagate希捷公司的前身)发布了SCSI协议标准,在1986年ANSI(美国国家标准协会)将这个协议定位标准,自此称为SCSI-1,他的内容包括硬盘、磁带和其它存储设备的物理接口、传输协议和标准指令集。

1992年ANSI发布了SCSI-2,提高了速度和总线带宽,支持多线程指令,增加了更多存储设备类型指令集。

1995年ANSI发布了SCSI-3,速度类型更丰富,也包括物理接口、传输协议和SCSI指令集分层。

几乎之后所有的存储相关协议都与SCSI有关,都会用到他的指令集,那么scsi是怎么规定IO总线通信的呢?

最开始SCSI的物理传输层介质是并行的由8根数据线和一些控制线组成,在每个发送时钟内传输8位数据。但是并行传输数据会自然的产生一个问题,也就是时间窗口问题。就像我们让8个人同时出发,各自走自己的路前往某个地方一样,尽管我们给8个人配了同样的车(传输线),但最后他们还是会前前后后到达,不会同时到达。在计算机的眼中,只有这8个人都到达了,才能算作传输完成,这个时间就叫做时间窗口。同时,由于电气方面的限制,早期的SCSI总线只能做到15-25米左右。现在SCSI已经发展到16和32位了。

SCSI总线可以是一根电缆,也可以是印制导线。

(2)SCSI控制器

目前一个SCSI总线可以连接16个设备,其中包含SCSI控制器。

SCSI控制器做的事就是在计算机和总线上的所有其他设备之间协调,他也叫做主机适配器(HBA),他可以是一张插卡,也可是一块芯片。

在SCSI总线中每个设备都得有编号才能进行通信,比如说16个设备,编码0-15。

内部通过带状电缆(也有印刷电路板),外部通过电缆连接(菊花链的形式,一般外部连接设备会有两个连接器,分别连接前后两个设备)。

SCSI由许多版本的标准,他们支持的连接器也不同:50、68、80针等。

(3)外部线缆

分为三层:

1)内层:保护性最好的层,传实际的数据

2)介质层:传控制命令的线路

3)外层:传奇偶校验信息,保证可靠性

(4)终结器

由于电气特性,如果SCSI总线保持开放状态,那么这些在总线上的电信号会反射,会干扰到其他设备的通信使用。所以SCSI总线会配有终结器,即,使用电阻电路闭合每一个端。终结器也分两类:

1)被动的、无源的:一般在标准的时钟速度下运行,且设备到控制器的距离一般小于一米

2)主动的、有源的:用于Fast SCSI系统,或设备到SCSI控制器的距离大于1米的系统

(5)SCSI的工作到底是什么

在SNIA的规定中,SCSI的作用就是接受上层的请求,将任务交付给下层的控制器,然后等控制器完成工作后再将信息反馈给上层,它起的作用是中间层。

SCSI的协议模型分为三层:应用层、传输层、互连层

应用层:SCSI定义了工作的主客方,发起的是initiate,接受的是target

传输层:定义一系列命令实现数据的传送

互连层:定义了在总线上各个设备的通信的协议

(6)SCSI寻址方式

OS用三元方式定义设备进行寻址:总线、ID、LUN(逻辑单元号)

总线代表设备位于哪一条总线上;ID代表SCSI设备的编号,一般有8或16个;由于诸如RAID控制器下有多块盘一样的情况,OS再加了一位地址叫LUN,也就是逻辑单元号。

注意同一总线上的不同ID具有不同优先级。

在同一条总线上多个SCSI设备组成SCSI域,同一时刻只允许一对设备进行通信。

SCSI部分参考如下文章,尚不清作者:

https://wenku.baidu.com/view/f493d785102de2bd97058815.html

三、FC和iSCSI

SCSI是目前所有存储协议的基础。

SCSI协议所能连接的设备数量有限,对传输距离

也有限制,网络科学家们想到了借助以太网和FC交换网络的优势来传输SCSI指令,这样也变远了。

SCSI网络是面向连接的,凡是面向连接的协议都会给系统造成开销。而尽最大努力交付的协议往往因为没有固定链路反而具有更好、更实用的可靠性,这类无连接网络包括FC和TCP/IP。

请注意区别此连接和我们计网课堂上学的TCP是一个面向连接的协议区别开来。TCP是运行在两端的协议,而不是交换网络上。

一开始,在存储和服务器界,大家都用FC交换网络,FC有着天生的优势。

(一)FC

Fibre Channel,是指网状通道,绝对不是指光纤通道,很多资料都把fibre(网状)和fiber(光纤)混淆了。

FC是一种串行传输协议,是一种高速的网络传输技术,速度一直在提升,目前笔者了解到的速度已经达到了32Gb。为了保证远距离传输,一般才会采用光纤介质,这也是人们常常弄错FC是指使用光纤线的协议的原因。

FC的链路层将数据封装成帧,同样也有拥塞控制的策略,这里就不详细赘述了。

(1)网络拓扑

FC有两种典型的拓扑:FC-AL和Fabric

FC-AL的所有设备首尾相接构成了一个环路,一个环路可以支持128个地址,实际有127个可用的节点地址。数据帧在环路中,是一跳一跳传输的,并且只能按照一个方向。在环路中,若某个设备坏了,可以通过旁路机制将自己pass掉,不影响其他设备工作。

Fabric的意思是网状构造,其实是一个网状交换矩阵,他的效率自然比环路高,矩阵中的所有点都可以同时进行点对点通信。带宽是所有端口带宽的和,而AL的总带宽是恒定的。每个FC设备都接入矩阵的一个点,这个矩阵一般被做成芯片集成到交换机上。

(2)寻址

类似于以太网鸭,FC网络中的每个设备也有一个物理地址WWNN(world wide node name),每个设备上的每个端口都有一个WWPN(world wide port name),字如其名,在世界范围上都是唯一的。WWNN被写入设备的ROM中,一般不可以改变。

WWPN地址长度64位,需要8B的空间,太浪费了。所以FC在WWPN上加一个映射层,这样每个接口就又有了一个Fabric ID,它有24位,高8位被定义为Domain区分符(用来区分许多FC交换机组成的庞大的网络中每个交换机本身),中8位是Area区分符(用来区分同一台交换机上的不同端口组),低8位是PORT区分符(用来区分同一个组中不同的ID)。

(二)iSCSI

以太网技术是使用最广泛,最成功的网络技术。既然SCSI寻址少、距离短,而FC的成本高,为何不用现成的以太网来解决?

答案当然是可以的,这也就是现在运用最广泛的IP SAN。他是一种在TCP/IP上进行块传输的协议。

注:此部分内容参考图书为《大话存储终极版》,作者张冬。

四、FCIP、FCoE

在早期,FC速度和稳定性比IP强太多了,但是成本高,扩展性比不上IP,所以以前一直是高端市场用FC,中低端用IP。技术一直在发展,两种技术也在融合。

一般协议融合有三种思路:调用(一种协议完全利用另外一种协议)、封装(一种协议将另外一种协议完整数据包打包封装成自己的包)、映射(一种协议对另外一种协议映射翻译)。

(1)FCIP

FCIP用的是隧道技术,即将FC协议封装在IP包里,这样就可以通过IP“走到更远的地方”。他和IPFC是一对双胞胎。

(2)FCoE

FC用了IP后效果并没有一开始预计的好,科学家们干脆直接O到以太网(Ethernet)上。

注:此部分内容参考图书为《大话存储终极版》,作者张冬。

五、DMA、RDMA、IB

(1)DMA

直接内存访问。就是一台主机或者一块主板上的设备直接对内存进行数据交换,不经过CPU,这样可以减少CPU的中断次数,提升性能。主机CPU不参加活动,不代表就没人管了,计算机中一般采用专用硬件来做这件事,例如啥啥控制器、啥啥网卡这类东西。

(2)RDMA

R代表remote,意思是远程,结合一下DMA,RDMA就是远程直接数据存取。它的范围更大了,跨了主机,一台主机的内存直接去访问另外一台主机的内存。

在这里插入图片描述

传统的不同主机间进行数据交互,例如IP SAN采用TCP/IP协议,这种标标准准的协议在传数据时要经过应用软件、OS等层,层层封装和拆封,会占有比较大的服务器资源。

那么RDMA到底该如何实现呢,我们解放了服务器的CPU,那就得再找个“管家”来做这件事才行,所以一般会用专用硬件,比如智能网卡,特别得交换机等。在技术界,我们看一家厂商得研发实力,有一个比较直接的点就是是否有专用硬件的设计能力。

(3)RDMA实现方式

既然RDMA采用专用硬件来实现,那么有哪些呢。

目前支持RDMA标准或者功能的协议有:IB、RoCE、iWARP。

1)InfiniBand

IB一开始就支持RDMA,需要有专用网卡和交换机设备

2)RDMA over Ethernet

可以说所有技术都逃不开以太网,RoCE可利用以太网来实现RDMA,需要专用网卡,也就是NIC要支持RoCE协议。

3)iWARP

RDMA over TCP,也是一种基于以太网来实现RDMA的技术。

此部分内容参考:

https://blog.csdn.net/qq_21125183/article/details/86522475

https://weibo.com/p/1001603936363903889917

可以发现这两篇文章的引图出自同一处,如果有大大有RDMA的原版资料,求分享。

六、ATA、IDE、SATA、SAS

前文讲到了SCSI协议,那么落实到硬盘接口,也有了相应的技术。

硬盘接口指令集分为SCSI和ATA两大类。

(1)IDE:并行ATA

(2)SATA:串行ATA

(3)SAS:串行SCSI

七、PCI、PCIe

在第一部分我们就提到了总线,图中与外围设备进行数据交换采用PCI总线。PCI是并行的、总线型的,为了顺应时代,提高速度,出现了PCIe,串行的、点对点的。

除了架构的区别外,他们长得也不一样。

参考文章:

https://zhuanlan.zhihu.com/p/26172972

https://baijiahao.baidu.com/s?id=1627723059692285447&wfr=spider&for=pc

八、NVMe

(1)

Non-VolatileMemoryExpress,非易失性存储器的传输规范。也就是说他是一个传输的协议,而ATA、SCSI等是接口协议,所以他们互相组合可以有多种不同的产品形态。

(2)

要理解这个技术有什么用,我们可以从他的诞生背景出发。

SSD的出现为存储介质性能带来了翻天覆地的变化,在这一块领域,技术的瓶颈不再是硬盘了,逐渐变成了计算机和接口之间的通信标准。

传统的SATA SSD和 SAS SSD都是单队列处理的,而NVMe可以在计算机和存储之间建立多个通路,目前已经达到了最多支持64K个队列,每个队列可达到64K条指令。

参考:

https://baijiahao.baidu.com/s?id=1637421199219751340&wfr=spider&for=pc

九、NVMe over Fabric

NVMe解决的是主机与接口之间的通信协议,那么更远的两台主机之间也想使用更高效的通信协议,于是便有了NVMe over Fabric。

这个F指的是网络结构,通常有FC、RDMA(IB、iWARP、RoCE)

十、NDMP

网络数据管理协议,这个协议是用来让网络附加存储设备(NAS)和备份设备之间传输数据的。这个协议省掉了在备份服务器上传输数据的过程,减轻了他的负担。

十一、NDM

无中断数据迁移,简单的来说,在存储层,把LUN1的数据迁移到LUN2中,上层业务无感知。

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值