存储技术------存储接口和协议总结

2024-01-15 02:50

本文主要是介绍存储技术------存储接口和协议总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

存储技术------存储接口和协议总结

  • 存储技术------存储接口和协议总结
    • 一、网络存储接口
      • ATA: 在并行中没落
      • SATA: 在低端徘徊
      • SCSI: 中端存储的主流之选
        • iSCSI :TCP\IP的SCSI
      • SAS: 接口协议的明日帝国
      • FC: 高端应用的基石
      • MSATA
      • M.2: 为SSD存储而生
      • M.2接口(NVMe协议)
      • PCI-E接口:
        • M.2接口和NVME区别在哪里
    • 二、常见存储协议
      • SATA存储协议
      • SCSI存储协议
      • ISCSI存储协议
      • SAS存储协议
      • FC存储协议
        • FCoE
      • PCIe协议
        • PCIe协议结构
      • NVMe存储协议
      • 存储中的IB
        • IB的定义
        • IB分层结构
      • NFS/CIFS
        • NFS
        • CIFS
      • FTP/HTTP
        • FTP
        • HTTP
    • 三、FC向无损网络的进化
      • 发展方向
      • 相关技术
        • NVMe
          • 什么是NVMe
        • 网络存储接口NVMeoF
        • RDMA
          • RDMA可用网络类型

存储技术------存储接口和协议总结

存储接口和协议总结

一、网络存储接口

ATA: 在并行中没落

也称为IDE,老式接口标准。并行的内部硬盘总线,已经被淘汰。

ATA (AT Attachment)接口标准是IDE(Integrated Drive Electronics)硬盘的特定接口标准。自问世以来,一直以其价廉、稳定性好、标准化程度高等特点,深得广大中低端用户的青睐,甚至在某些高端应用领域,如服务器应用中也有一定的市场。ATA规格包括了 ATA/ATAPI-6 其中Ultra ATA 100兼容以前的ATA版本,在40-pin的连接器中使用标准的16位并行数据总线和16个控制信号。
ATA 总线在传输数据时采用的是并行方式,总线位宽为 16bits ,所以 ATA 也叫做 PATA(Parallel ATA) , 终极速率最终止步在 133MB/s 。各厂商不得不放弃 PATA ,去开发新的技术如SATA。

SATA: 在低端徘徊

ATA的升级,采用串行总线,数据传输速度高,多用于中低端服务器。

为了解决PATA面临的问题, 在PATA的基础上提出了SATA, SATA采用8/10编码和串行差分传输的方式, 极大的提高了传输效率, SATA-1和SATA-2两种标准,对应的传输速度分别是150MB/s和300MB/s;SATA3可以达到600MB/s, 具有接口更加简单,只采用了四针结构,支持热插拔等特点, SATA也是目前最通用的硬盘传输协议。

不足:SATA在硬盘损坏的时候,不能像SCSI/SAS和FC硬盘一样,显示具体损坏的硬盘,这样热插拔功能实际上形同虚设。同时,尽管SATA在诸多性能上远远优越于PATA,甚至在某些单线程任务的测试中,表现出了不输于SCSI的性能,然而它的机械底盘仍然为低端应用设计的,在面对大数据吞吐量或者多线程的传输任务时,相比SCSI硬盘,仍然显得力不从心。除了速度之外,在多线程数据读取时,硬盘磁头频繁地来回摆动,使硬盘过热是SATA需要克服的缺陷。正是因为这些技术上致命的缺陷,导致目前为止,SATA还只能在低端的存储应用中徘徊。

SCSI: 中端存储的主流之选

SCSI主要用于服务器,硬盘转速快,缓存容量大,扩展性远优于IDE硬盘,并且支持热插拔。

SCSI(Small Computer System Interface)是一种专门为小型计算机系统设计的存储单元接口模式,通常用于服务器承担关键业务的较大的存储负载,价格也较贵。SCSI计算机可以发送命令到一个SCSI设备,磁盘可以移动驱动臂定位磁头,在磁盘介质和缓存中传递数据,整个过程在后台执行。这样可以同时发送多个命令同时操作,适合大负载的I/O应用。在磁盘阵列上的整体性能也大大高于基于ATA硬盘的阵列。

技术优势:
1、SCSI相对于ATA硬盘的接口支持数量更多(扩展能力)
一般而言,ATA硬盘采用IDE插槽与系统连接,而每IDE插槽即占用一个IRQ(中断号),而每两个IDE设备就要占用一个IDE能道,虽然附加IDE控制卡等方式可以增加所支持的IDE设备数量,但总共可连接的IDE设备数最多不能超过15个。而SCSI的所有设备只占用一个中断号(IRQ),因此它支持的磁盘扩容量要比ATA更为巨大。

2、SCSI的带宽很宽

3、SCSI硬盘CPU占用率低、并行处理能力强。
在ATA和SATA硬盘虽然也能实现多用户同时存取,但当并行处理人数超过一定数量后,ATA/SATA硬盘就会暴露出很大的I/O缺陷,传输速率有大幅下降。同时,硬盘磁头的来回摆动,也造成硬盘发热不稳定的现象。
对于SCSI而言,它有独立的芯片负责数据处理,当CPU将指令传输给SCSI后,随即去处理后续指令,其它的相关工作就交给SCSI控制芯片来处理;当SCSI“处理器”处理完毕后,再次发送控制信息给CPU,CPU再接着进行后续工作,因此不难想像SCSI系统对CPU的占用率很低,而且SCSI硬盘允许一个用户对其进行数据传输的同时,另一位用户同时对其进行数据查找,这就是SCSI硬盘并行处理能力的体现。

不足:
SCSI硬盘较贵,但是品质性能更高,其独特的技术优势保障SCSI一直在中端存储市场占据中流砥柱的地位。普通的ATA硬盘转速是5400或者7200 RPM;SCSI 硬盘是10000或者15000 RPM,SCSI硬盘的质保期可以达到5年,平均无故障时间达到1,200,000小时。然而对于企业来说,尽管SCSI在传输速率和容错性上有极好的表现,但是它昂贵的价格使得用户望而却步。而下一代SCSI技术SAS的诞生,则更好的兼容了性能和价格双重优势。

iSCSI :TCP\IP的SCSI

iSCSI是由Cisco和 IBM两家发起的,2003年2月由IETF(互联网工程任务组)认证通过,是一项比较成熟的技术。它将SCSI命令封装在TCP/IP包里,并使用一个iSCSI帧头。它基于IP协议栈,假设以不可靠的网络为基础,依靠TCP恢复丢失的数据包。iSCSI继承了两大最传统技术:SCSI和TCP/IP协议。这为iSCSI的发展奠定了坚实的基础。基于iSCSI的存储系统只需要不多的投资便可实现SAN存储功能,甚至直接利用现有的TCP/IP网络。相对于以往的网络存储技术,它解决了开放性、容量、传输速度、兼容性、安全性等问题,其优越的性能使其备受始关注与青睐。
在这里插入图片描述
如上图所示,iSCSI (Internet SCSI)把SCSI命令和块状数据封装在TCP中在IP网络中传输。iSCSI作为SCSI的传输层协议,基本出发点是利用成熟的IP网络技术来实现和延伸SAN。 iSCSI协议是SCSI远程过程调用模型到TCP/IP协议的映射。SCSI协议层负责生成CDB,并将其送到iSCSI协议层,然后由 iSCSI协议层进一步封装成PDU,经IP网络进行传送。

SAS: 接口协议的明日帝国

SAS 是Serial Attached SCSI的缩写,即串行连接SCSI,改善了存储系统效能,可用性和扩展性,支持热插拔,与SATA兼容,适用于高端服务器存储系统。

SAS是新一代的SCSI技术,同SATA之于PATA的革命意义一样,SAS 也是对SCSI技术的一项变革性发展。它既利用了已经在实践中验证的SCSI 功能与特性,又以此为基础引入了SAS扩展器。SAS可以连接更多的设备,同时由于它的连接器较小,SAS 可以在3.5 英寸或更小的 2.5 英寸硬盘驱动器上实现全双端口,这种功能以前只在较大的 3.5 英寸光纤通道硬盘驱动器上能够实现。这项功能对于高密度服务器如刀片服务器等需要冗余驱动器的应用非常重要。

为保护用户投资,SAS的接口技术可以向下兼容SATA。SAS系统的背板(Backplane)既可以连接具有双端口、高性能的SAS驱动器,也可以连接高容量、低成本的SATA驱动器。过去由于SCSI、ATA分别占领不同的市场段,且设备间共享带宽,在接口、驱动、线缆等方面都互不兼容,造成用户资源的分散和孤立,增加了总体拥有成本。而现在,用户即使使用不同类型的硬盘,也不需要再重新投资,对于企业用户投资保护来说,实在意义非常。但需要注意的是,SATA系统并不兼容SAS,所以SAS驱动器不能连接到SATA背板上。

SAS 使用的扩展器可以让一个或多个 SAS 主控制器连接较多的驱动器。每个扩展器可以最多连接 128 个物理连接,其中包括其它主控连接,其它 SAS 扩展器或硬盘驱动器。这种高度可扩展的连接机制实现了企业级的海量存储空间需求,同时可以方便地支持多点集群,用于自动故障恢复功能或负载平衡。目前,SAS接口速率为3Gbps,其SAS扩展器多为12端口。不久,将会有6Gbps甚至12Gbps的高速接口出现,并且会有28或36端口的SAS扩展器出现以适应不同的应用需求。其实际使用性能足于光纤媲美。

FC: 高端应用的基石

FC接口是光纤对接的接口标准,读写与传输速度快,支持热插拔。

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

MSATA

全称迷你版SATA接口(mini-SATA)是早期为了更适应于超极本这类超薄设备的使用环境,针对便携设备开发的mSATA接口的mini版,而在物理接口上是跟mini PCI-E接口是一样的。

mSATA接口是SSD小型化的一个重要过程,不过mSATA依然没有摆脱SATA接口的一些缺陷,比如依然是SATA通道,速度也还是6Gbps,后续被更具升级潜力的M.2 SSD所取代。

M.2: 为SSD存储而生

一种新的接口方案,可以兼容多种通信协议。为超极笔记本制定的新一代接口标准,以取代原来的SATA接口。规格尺寸小,传输性能高。

M.2接口的固态硬盘宽度22mm,单面厚度2.75mm,双面闪存布局也不过3.85mm厚,但M.2具有丰富的可扩展性,最长可以做到110mm,可以提高SSD容量。M.2 SSD与mSATA类似,也是不带金属外壳的,常见的规格有主要有2242、2260、2280三种,宽度都为22mm,长度则各不相同。

看似都是M.2接口,但其支持的协议不同,对其速度的影响可以说是千差万别,M.2接口目前支持两种通道总线,一个是SATA总线,一个是PCI-E总线。当然,SATA通道由于理论带宽的限制(6Gb/s),极限传输速度也只能到600MB/s,但PCI-E通道就不一样了,带宽可以达到10Gb/s,所以看似都为M.2接口,但走的“道儿”不一样,速度自然也就有了差别。
在这里插入图片描述

M.2接口(NVMe协议)

NVM Express(NVMe),或称非易失性内存主机控制器接口规范(Non-Volatile Memory express),是一个逻辑设备接口规范。他是与AHCI类似的、基于设备逻辑接口的总线传输协议规范(相当于通讯协议中的应用层),用于访问通过PCI-Express(PCIe)总线附加的非易失性内存介质,虽然理论上不一定要求 PCIe 总线协议。

此规范目的在于充分利用PCI-E通道的低延时以及并行性,还有当代处理器、平台与应用的并行性,在可控制的存储成本下,极大的提升固态硬盘的读写性能,降低由于AHCI接口带来的高延时,彻底解放SATA时代固态硬盘的极致性能。

m2接口有两种,一种走sata的,另外一种走pcie(就是nvme)的。走sata的速度跟传统sata接口的没区别,就是接口变成了m2的了。走pcie的,就是我们说的nvme接口是m2的,性能也强了

NVMe具体优势包括

①性能有数倍的提升;

②可大幅降低延迟;

③NVMe可以把最大队列深度从32提升到64000,SSD的IOPS能力也会得到大幅提升;

④自动功耗状态切换和动态能耗管理功能大大降低功耗;

⑤NVMe标准的出现解决了不同PCIe SSD之间的驱动适用性问题。

PCI-E接口:

在传统SATA硬盘中,当我们进行数据操作时,数据会先从硬盘读取到内存,再将数据提取至CPU内部进行计算,计算后写入内存,存储至硬盘中;而PCI-E就不一样了,数据直接通过总线与CPU直连,省去了内存调用硬盘的过程,传输效率与速度都成倍提升。简单的说,我们可以把两种通道理解成两辆相同的汽车,PCI-E通道的汽车就像是在高速上行驶,而SATA通道的汽车就像是在崎岖山路上行驶。很显然,PCI-E SSD传输速度远远大于SATA SSD。

目前PCI-E接口通道有PCI-E 2.0 x2及PCI-E 3.0 x4两种,最大速度达到32Gbps,可以满足未来一段时间的使用,而且早期PCI-E硬盘不能做启动盘的问题早解决,现在旗舰级SSD大多会选择PCI-E接口。

虽然PCI-E SSD有诸多好处,但也不是每个人都适合。PCI-E SSD由于闪存颗粒和主控品质问题,总体成本较高,相比传统SATA固态硬盘价格贵一些。另外,由于PCI-E会占用总线通道,入门以及中端平台CPU通道数较少,都不太适合添加PCI-E SSD,只有Z170,或者是X79、X99这样顶级平台,才可以完全发挥PCI-E SSD的性能。

M.2接口和NVME区别在哪里

1、作用不同
m.2接口是为超极本量身定做的新一代接口标准,以此取代原来的mSATA接口,而nvme是从头开始设计,可为当前和将来的NVM技术提供高带宽和低延迟的存储访问;更快的规范,更快的标准。
在这里插入图片描述

2、特点不同
m.2接口无论是更小巧的规格尺寸还是更高的传输性能,m.2都远超于mSATA。

nvme接口下,性能有着数倍的提升,nvme可以把最大队列深度从32提升到64000,ssd的iops能力也可以得到大幅度的提升,能够帮助我们大幅度降低延迟,自动功耗状态切换和动态能耗管理功能大大降低功耗。

3、应用不同
m.2接口它可以兼容多种通讯协议比如:【sata】.【pcle】.【usb】.【hsic】.【uart】.【smbus】。

nvme用于PCI Express附加存储的寄存器接口和命令集,以及适用于多种操作系统的行业标准软件。NVMe被广泛认为是PCIeSSD的事实上的行业标准。NVMe管理界面–用于NVM Express存储的带外管理的命令集和体系结构。

二、常见存储协议

存储网络协议提供了一组标准规则,这些规则定义了如何在设备之间传输数据。诸如网络连接存储(NAS)和存储区域网络(SAN)之类的系统依靠存储协议来促进数据通信。云存储平台还使用协议来提供对其数据存储库的访问。

SATA存储协议

使用SATA(Serial ATA)口的硬盘又叫串口硬盘,是未来PC机硬盘的趋势。Serial ATA采用串行连接方式,串行ATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查, 如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。串行接口还具有结构简单、支持热插拔的优点。

目前,由于在存储设备中采用多块SATA硬盘的协同RAID工作模式,使得数据存储的传输瓶颈仍然存在于存储到主机端。此外,由于存储厂商推出SATA-SCSI、SATA-FC、SATA-IP的存储设备,兼之SATA硬盘的大容量、价格低廉以及本身的性能而受到市场的广泛认可。

SCSI存储协议

SCSI的英文全称为“Small Computer System Interface”(小型计算机系统接 口),是同IDE(ATA)完全不同的接口,IDE接口是普通PC的标准接口,而SCSI并不是专门为硬盘设计的接口,是一种广泛应用于小型机上的高速数 据传输技术。

SCSI接口具有应用范围广、多任务、带宽大、CPU占用率低,以及热插拔等优点,但较高的价格使得它很难如IDE硬盘般普及,因此SCSI 硬盘主要应用于中、高端服务器和高档工作站中。

SCSI接口从诞生到现在已经历了多年的发展,对于并行SCSI来说,先后衍生出了SCSI-1、 Fast SCSI、FAST-WIDE-SCSI-2、Ultra SCSI、Ultra2 SCSI、Ultra160 SCSI、 Ultra320 SCSI等,现在市场中占据主流的是Ultra160 SCSI、Ultra320 SCSI接口产品。

ISCSI存储协议

简单的说ISCSI就是将SCSI协议封装于IP协议中进行数据传输。ISCSI区别于FC-SAN的一点就是传输的介质和协议的不同。而两端的存储设备和主机端基本一样。

由于IP网络现阶段各个企业建设相对完善,因此ISCSI部署成本较低,而且部署方便。

但是,在现阶段以千兆网络为主流的网络环境中,ISCSI还只是适合于普通的非关键应用,而且对数据量的存储吞吐不会大于70MB/S。相对关键应用来说,目前还是大多数采用FC。

SAS存储协议

SAS(Serial Attached SCSI)即串行SCSI技术,是一种新型的磁盘连接技术。它综合了现有并行SCSI和串行连接技术(光纤通道、SSA、IEEE1394等)的优势,以串行通讯为协议基础架构,采用SCSI-3扩展指令集并兼容SATA设备,是多层次的存储设备连接协议栈。而SAS磁 盘就是采用该接口技术的磁盘。

SAS的优势主要体现在:

灵活性,可以兼容SATA,为用 户节省投资;

扩展性,一个SAS域最多可以直连16384个设备;

性能卓越,点对点的架构使性能随端口数量增加而提高;

更合理的电缆设计,在高密度环境中 提供更有效的散热。

FC存储协议

光纤信道标准(FCS)定义了一种用于连接工作站、大型机、巨型机、存储设备以及显示设备等的高速数据传输机制。FCS 满足了大量信息的快速传输需求,并减轻了支持当前多通道和网络环境的系统提供商的负担,这是因为 FCS 为网络、存储以及数据传输提供了一个单一标准。光纤信道协议是一种在光纤信道上的 SCSI 接口协议。

光纤信道(FC)主要特征如下:

性能:传输速率范围从 266Mb/s 到2Gb/s、 4Gb/s、8Gb/s;

支持光介质和电介质,工作速率范围从 133Mb/S 到 1062Mb/S,传输 距离为 10km;

小连接器;

高带宽利用率,与距离无关;

支持从小型机到巨型机的多种性价比级别;

可以传送多种接口命令集,包括 IP、SCSI、以及音频 / 视频等。

SAN(存域网)是指独立于异构计算网络系统之外的几乎拥有无限存储容量的高速网络。其通常采用高速的光纤通道作为传输媒介,以FCP+SCSI协议作为存储访问协议,将存储子系统网络化、开放化、虚拟化、智能化,实现真正的高速、安全、共享存储。

FC网络存储以其高速稳定的数据传输、良好的可扩展性被大多数具有核心应用的大中型企业所采纳。经过实际应用, FC网络存储已经发展成为目前最成熟的高速存储区域网络。

FCoE

FCoE(Fibre Channel over Ethernet)可以提供标准的光纤通道原有服务,如发现、全局名称命名、分区等,而且这些服务都可以照标准原有的运作,保有FC原有的低延迟性、高性能。

从FC协议的角度来看,FCoE就是把FC承载在一种新型的链路上,即以太网二层链路。需要注意的是,这个以太网必须是增强型无损以太网,才能满足FC协议对链路层的传输要求。

FCoE的特点

协议标准组织:2008年提交美国国家标准委员会(ANSI)T11 委员会进行审批,需要与IEEE密切配合。
协议目标:FCoE希望利用以太网的拓展性,同时保留光纤通道在高可靠性和高效率方面的优势。
其他挑战:FC与以太网相结合,需要克服防止丢包、路径冗余和故障切换、帧分段与重组、无阻塞传输等方面的问题。
FC固有的兼容性差、不支持远距离传输两大问题,FCoE同样无法解决
备注:VoIP = Voice over IP。一种在以太网上传输音频和视频数字技术的方法

PCIe协议

·1991 年,Intel 公司首先提出了PCI 的概念,随着现代化处理器技术的发展,在互连领域,使用高速差分总线替代并行总线是大势所趋。与单端并行信号相比,高速差分信号用于更高的时钟频率,PCIe总线应运而生。

· PCI Express(又称PCIe)是一种高性能、高带宽串行通讯互连标准,最早由英特尔提出,后由外设组件互连特别兴趣组(PCI-SIG)制定,以取代基于总线的通信架构,如:PCI、PCI Extended (PCI-X) 以及加速图形端口(AGP)

PCIe的优点
双通道,高带宽,传输速率快:实现类似全双工传输模式(RX和TX分开);传输速率高,第一代PCIe X1的带宽是2.5千兆位/秒(Gbps),第二代则达到5.0Gbps,而最近发布的PCIe3.0标准则能支持8.0Gbps的速率;对更大的带宽,则可以通过扩展链路数目来实现,而带宽则是其N条通路的N陪。

兼容性:在软件层保持与PCI兼容,版本升级,向下兼容PCI软件。

易用性:支持热插拔,PCIe总线接口插槽中包括“热插拔检测信号”,可以像USB进行热拔插和热交换。

具有错误处理和先进的错误报告功能:得益于PCI Express总线是分层结构,其软件层具有错误处理和提供错误报告能力。

每个物理连接还有多个虚拟通道:在每个物理通道中支持多个虚拟通道(理论上允许8个虚拟通道进行独立的通讯控制),从而支持每个虚拟通道的Qos,达到非常高的流量质量控制。

节省IO,减少板级空间,降低串扰:例如,典型的PCI总线数据线至少达到50根IO,而PCIe Xl仅需要4根IO。而IO减少,节省了板级空间,各个IO直接的距离可以更宽,从而减少串扰。

PCIe协议结构

在这里插入图片描述
物理层:PCI Express总线架构中的物理层主要决定总线的物理特征。在未来的发展中,可以通过速度提升或更改编解码方式来进一步提升PCI Express总线性能,而这些变更都只会作用于物理层,不会影响其它结构,为升级带来了便利。

数据链路层:数据链路层的重要作用就是要保证PCI Express总线传输的数据包的正确性和可靠性。它会检查数据包封装是否完整正确,并将序列号和冗余校验代码(CRC)添加到数据中进行检测和纠错,并采用ack/nack握手协议进行检测纠错。

事务层:处理层的主要作用有两个,一是接受来自软件层送来的读、写请求,或者本身创建一个请求封装包传到数据链路层,这种数据包称为“处理层数据包”(TransactionLayerPacket,TLP另一个作用是接受从链路层传来的响应数据包(DataLink Layer Packet,DLLP),并将其与相关的软件请求相关联,传送至软件层处理

NVMe存储协议

NVMe本质是上建立了多个计算机与存储设备的通路,这样搬运数据的速度自然就提高了。在NVMe协议中,多个通路其实就是多个队列,具体如图7所示。在SATA中计算机与存储设备只能有一个队列,即使是多CPU情况下,所有请求只能经过这样一个狭窄的道路。而NVMe协议可以最多有64K个队列,每个CPU或者核心都可以有一个队列,这样并发程度大大提升,性能也自然更高了。
在这里插入图片描述

存储中的IB

在这里插入图片描述
IB前端网络用于与客户交流进行数据交互的网络,基于IPoIB协议传输数据;

IB后端网络用于存储设备内部各节点间数据交互的网络, RPC模块利用RDMA完成节点间数据同步;

IB的定义

IB(InfiniBand)
标准定义了一套用于系统通信的多种设备,包括信道适配器、交换机和路由器信道适配器用于同其它设备的连接,包括主机信道适配器(HCA)和目标信道适配器(TCA).

IB技术不是用于一般网络连接的,其主要设计是针对服务器端的链接问题,因此被用于服务器与服务器(比如复制、分布式等)、服务器和存储设备(比如SAN和直接存储附件)以及服务器和网络之间(比如LAN\WANs)的通信。

IB的主要特点:
· 基于标准的协议:成立于1999年的InfiniBand贸易协会由225家公司组成,它们共同设计了该开放标准。主要掌控该协会的成员包括:Agilent, Dell, HP, IBM, InfiniSwitch, Intel,Mellanox, Network Appliance和Sun Microsystems公司。其他的100多家成员则协助开发和推广宣传该标准。

· 速度:Infiniband每秒10gigabytes的性能明显超过现有的Fibre Channel的每秒4 gigabits,也超过以太网的每秒1 gigabit的性能。

· 内存:支持Infiniband的服务器使用主机通道适配器,把协议转换到服务器内部的PCI-X或者PCI-Xpress总线。HCA具有RDMA功能,有时也称之为内核旁路(Kernel Bypass)。RDMA对于集群来说很适合,因为它可以通过一个虚拟的寻址方案,让服务器知道和使用其他服务器的部分内存,无需涉及操作系统的内核。

· 传输卸载(Transport Offload):RDMA 能够帮助传输卸载,后者把数据包路由从OS转到芯片级,节省了处理器的处理负担。要是在OS中处理10 Gbps的传输速度的数据,就需要 80 GHz处理器。

IB分层结构

在这里插入图片描述
· 物理层:定义了三种速率的连接,分别为1X、4X和12X,其信号单倍传输速率分别为2.5、10和30Gb/ s。也就是说,IBA允许多路连接直到获得30Gbps的连接速度。由于采用了全双工串行通信方式,单速的双向连接只需要4根电缆,在采用12速方式时,也只需48根电缆线,这是非常具有吸引力的。

· 链路层:链路层提供了局部子系统中的信息包设计、点到点连接操作以及包交换等功能。在包通信一级,指定了两种特殊的包类型,既数据传输和网络管理包。网络管理包提供了设备枚举的操作控制、子网指示、容错等功能;数据传输包则用来传送实际的数据信息。每个包的最大长度为4KB,在每个特定的设备子网内,每个数据包的方向和交换通过本地的16位标识地址的子网管理器完成。

· 网络层:提供了信息包从一个子结构到另外一个子结构的路由机制。源和目的节点的每个路由包有一个全局路由头(GRH)和一个128位Ipv6地址。网络层也嵌入了一个标准的全局64位标识,这个标识在所有的子网中都是惟一的。通过这些标识值之间错综复杂的交换,允许数据跨越多个子网传输。

· 传输层:传输层主要负责信息包的按序分发、分割、通道多路技术以及传输服务等。传输层也负责处理数据包分段的发送、接收和重组。

NFS/CIFS

NFS

NFS(Network File System)是当前主流异构平台共享协议之一,主要应用在Linux、UNIX环境中。NFS可用于不同类型计算机、操作系统、网络架构和传输协议的环境,提供网络文件远程访问和共享服务。
NFS SERVER采用集群部署形式。
NFS SERVER部署在各个存储服务器上,是分布式、全对称集群架构。
在Linux/UNIX/AIX/HP-UX/Mac OS X等类UNIX系统中提供网络文件系统存储服务。允许用户像问本地文件一样访问其他系统上的文件。提供对无盘工作站的支持以降低网络开销。
简化应用程序对远程文件的访问使得不需要因访问这些文件而调用特殊的过程。

NFS业务特点:
· 兼容多种操作系统,可以实现异构网络环境下的文件资源共享。
· NFS共享的单位是目录,所共享的目录可被多个客户端访问。
· 以集群方式对外提供共享服务,节点间可相互监控服务状态。
· 可根据业务和节点状态实现负载均衡,数据访问在集群内均匀分布。
在这里插入图片描述
在这里插入图片描述

CIFS

1996年,微软提出将SMB改称为CIFS(Common Internet File System),并加入了许多新的功能。现在CIFS指SMB的统称,具体各个版本分别为SMB1,SMB2,SMB3.0。SMB是一种客户端/服务器,请求/响应模式。
SMB(Server Message Block)最初是IBM的贝瑞·费根鲍姆(Barry Feigenbaum)研制的,其目的是将DOS操作系统中的本地文件接口“中断13”改造为网络文件系统。SMB协议主要用于在计算机间共享文件、打印机、串口等。
SMB从1988年至今不断完善,历经多个版本,从SMB发展到SMB2(2007)SMB3(2012)。
CIFS(Common Internet File System)是由微软开发用于连接Windows客户机和服务器的文件共享协议。
CIFS是微软开发和使用的SMB(Server Message Block)公开后形成的标准。SMB主要用于网络上的计算机共享文件、打印机和串行端口等资源。
经过UNIX服务器厂商重新开发后,SMB可以用于连接UNIX服务器和Windows客户端,执行打印和文件共享等任务。

CIFS业务特点:

· 兼容多种操作系统,可以实现异构网络环境下的文件资源共享。
· CIFS共享的单位是目录,所共享的目录可被多个客户端访问。
· 以集群方式对外提供共享服务,节点间可相互监控服务状态。
· 可根据业务和节点状态实现负载均衡,数据访问在集群内均匀分布。
在这里插入图片描述
在这里插入图片描述

FTP/HTTP

FTP

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
FTP有两种文件传输模式:
二进制模式,用于传输程序文件(比如后缀名为.app、.bin和.btm的文件)。
ASCII码模式,用于传输文本格式的文件(比如后缀名为.txt、.bat和.cfg的文件)。
在这里插入图片描述

HTTP

HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端的协议。

HTTP采用短连接方式进行报文传输,每次传输结束后连接就中断。

区别于CIFS及NFS协议,通过WebDav扩展协议及挂载ostorvfs文件系统,能够实现HTTP共享创建,资源文件的上传、下载、修改、锁定等功能。

HTTPS是HTTP协议的安全版本,基于SSL/TLS安全加密。SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密
在这里插入图片描述

三、FC向无损网络的进化

发展方向

全闪存时代背景下,传统的FC(Fibre Channel,网状通道)存储网络已经无法满足全闪存数据中心的要求,NVMe(Non-Volatile Memory express,非易失性内存主机控制器接口规范)存储协议的出现极大提升了存储系统内部的存储吞吐性能、降低了传输时延,NoF(NVMe over Fabric)存储网络应运而生。在多种Fabric技术中,NVMe over RoCE(RDMA over Converged Ethernet)被广大存储厂商所接受,成为业界NoF的主流。华为推出的NoF+存储网络解决方案,相较于标准NoF方案,在性能、可靠性、易用性上均实现了颠覆性改进,是全闪存时代的最佳选择。

相关技术

NVMe

跟网络接口相比,存储的接口标准化程度相对较高。NVMe是本地高性能存储主流的接口标准,同时基于NVMe扩展的NVMeoF是高性能网络存储主要的接口及整体解决方案标准。

什么是NVMe

NVMe(Non-Volatile Memory Express)是经过优化的、高性能的、可扩展的主机控制器接口,专为非易失性存储器(NVM)技术而设计。NVMe解决了如下一些性能问题:
带宽:通过支持PCIe和诸如RDMA和光纤之类的通道,NVMe可以支持比SATA或SAS高很多的带宽。
IOPS:例如,串行ATA可能的最大IOPS为20万,而NVMe设备已被证明超过100万IOPS。
延迟:NVM以及未来的存储技术具有一微秒以内的访问延迟,需要一种更简洁的软件协议,能够实现包括软件堆栈在内的不超过10毫秒的端到端延迟。

NVMe协议支持多个深度队列,这是对传统SAS和SATA协议的改进。典型的SAS设备在单个队列中最多支持256个命令,而SATA设备最多支持32个命令。这些队列深度对于传统的硬盘驱动器技术已经足够,但不能充分利用NVM技术的性能。

NVMe多队列,每个队列支持64K命令,最多支持64K队列。这些队列的设计使得IO命令和对命令的处理不仅可以在同一处理器内核上运行,也可以充分利用多核处理器的并行处理能力。每个应用程序或线程可以有自己的独立队列,因此不需要IO锁定。NVMe还支持MSI-X和中断控制,避免了CPU中断处理的瓶颈,实现了系统扩展的可伸缩性。NVMe采用简化的命令集,相比SAS或SATA,NVMe命令集使用的处理IO请求的指令数量减少了一半,从而在单位CPU指令周期内可以提供更高的IOPS,并且降低主机中IO软件堆栈的处理延迟。

网络存储接口NVMeoF

NVMeoF(NVMe over Fabrics)定义了一种通用架构,该架构支持一系列基于NVMe块存储协议的存储网络系统。包括从前端存储接口到后端扩展的大量NVMe设备或NVMe子系统,也包括访问远程NVMe设备和NVMe子系统所需的网络传输系统。

如下图,NVMeoF支持以太网、光纤和InfiniBand等不同的网络传输介质。基于RDMA的NVMeoF,使用的是InfiniBand、RoCEv1/v2或iWARP。NVMeoF的主要目标是提供与NVMe设备的低延迟远程连接,与服务器本地NVMe设备相比,增加的延迟不超过10µs。
在这里插入图片描述

RDMA

RDMA(远程直接数据存储)就是为了解决网络传输中服务器端数据处理的延迟而产生的,无需使用CPU,就可以从一个主机或服务器的内存直接访问另一主机或服务器的内存。它释放了CPU去执行其应做的工作,比如运行应用程序和处理大量数据。这既提高了带宽又降低了延迟、抖动和 CPU 消耗。
在这里插入图片描述
RDMA与TCP/IP模式示意图。对比传统的网络传输机制,RDMA无需操作系统和TCP/IP协议栈的介入。RDMA的内核旁路机制,允许应用与网卡之间的直接数据读写,将服务器内的数据传输时延降低到1us以下。同时,RDMA的内存零拷贝机制,允许接收端直接从发送端的内存读取数据,极大的减少了CPU的负担,提升CPU的效率。

RDMA可用网络类型

目前有三类RDMA网络,分别是Infiniband、RoCE、iWARP,其中,Infiniband是一种专为RDMA设计的网络,从硬件级别保证可靠传输 ,而RoCE 和 iWARP都是基于以太网的RDMA技术,支持相应的verbs接口。
在这里插入图片描述
InfiniBand
InfiniBand(直译为“无限带宽”技术,缩写为IB)是一个用于高性能计算的计算机网络通信标准,它具有极高的吞吐量和极低的延迟,用于计算机与计算机之间的数据互连。InfiniBand也用作服务器与存储系统之间的直接或交换互连,以及存储系统之间的互连。
该方案重新设计了物理链路层、网络层、传输层,是RDMA最初的部署方案,所以要使用专用的InfiniBand交换机做物理隔离的专网,成本较大,但性能表现最优。

iWARP
该方案的目的是让主流的以太网支持RDMA,将InfiniBand移植到TCP/IP协议栈,使用TCP协议保证无丢包,但缺点在于TCP开销较大,相比RoCE,在大型组网的情况下,iWARP的大量TCP连接会占用大量的额内存资源,对系统规格要求更高。另外,RoCE支持组播,而iWARP还没有相关的标准定义。

RoCE
RoCE(RDMA over Converged Ethernet ),是在InfiniBand Trade Association(IBTA)标准中定义的网络协议,允许通过以太网络使用RDMA。
该方案的目的也是让主流的以太网支持RDMA。网络侧使用PFC保证拥塞时不丢包,网卡侧又使用DCQCN的拥塞控制算法进一步减缓拥塞(该拥塞算法需要网络侧支持ECN标记),传统的以太网经过PFC和ECN的加持进化成为无损以太网,在无损以太网上运行RDMA性能大大增强。简而言之,它可以看作是RDMA技术在超融合数据中心、云、存储和虚拟化环境中的应用。

RoCEv2
RoCEv2版本已经是现在的主流版本,RoCEv1版本已很少提及了。
最初由IBTA实施和标准化,RoCE被设想为2层协议。实际上,IBTA第1层和第2层字段被相应的以太网字段替换。具体而言,在2层LRH由以太网MAC报头和帧检查序列替换。EtherType字段表示有效负载封装了RoCE协议,该协议在2层之上实现IBTA协议。此外,IBTA网络管理(子网管理器)由标准以太网2层管理协议取代。

优点:是易于实现、严格分层,并保留位于通道接口之上的应用层API;
缺点:
1)是2层以太网部署的可扩展性限制,这是由广播域和跨子网的IP分配约束的复杂性造成的。
2)与普通IP数据包相比,某些交换机可能在较慢的异常路径上转发RoCE数据包。

如下图所示,支持3层的RoCE协议只是继续向上堆栈,并用标准IP网络头替换可选的L3全局路由头(GRH),并添加UDP头作为第4层有效负载的无状态封装。这是RoCE的一个非常自然的扩展,因为3层头已经基于IP地址,因此这种替换非常简单。此外,UDP封装是L4数据包的标准类型,是当前主流的数据层面的封装,路由器可以高效地转发。
在这里插入图片描述

在这里插入图片描述

RoCE优势
1、低CPU占用率:访问远程交换机或服务器的内存,无需消耗远程服务器上的CPU周期,从而可以充分利用可用带宽和更高的可伸缩性。
2、零复制:向远程缓冲区发送数据和接收数据。
3、高效:由于RoCE改善了延迟和吞吐量,网络性能得到了很大提高。
4、节省成本:借助RoCE,无需购买新设备或更换以太网基础设施即可处理大量数据,从而大大节省了公司的资本支出。

更多RoCE内容参考

https://blog.csdn.net/qq_33681684/article/details/120843760

这篇关于存储技术------存储接口和协议总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

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

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储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

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter

整数Hash散列总结

方法:    step1  :线性探测  step2 散列   当 h(k)位置已经存储有元素的时候,依次探查(h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中,S为 数组长度。 HDU 1496   a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 。 x在 [-100,100] 解的个数  const int MaxN = 3000

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

【Linux】应用层http协议

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

go基础知识归纳总结

无缓冲的 channel 和有缓冲的 channel 的区别? 在 Go 语言中,channel 是用来在 goroutines 之间传递数据的主要机制。它们有两种类型:无缓冲的 channel 和有缓冲的 channel。 无缓冲的 channel 行为:无缓冲的 channel 是一种同步的通信方式,发送和接收必须同时发生。如果一个 goroutine 试图通过无缓冲 channel