《存储技术概述》(六):接口与协议

B站影视 2025-01-22 21:19 2

摘要:科技、人类传承都离不开信息存储。《存储技术概述》从存储技术的发展历程进行展开介绍,接着谈到存储发展的趋势,包括存储分布式化、存储介质闪存化、存储云化、存储智能化和存储多样化等,然后深入浅出地介绍存储介质、存储系统结构、网络化存储、接口与协议、存储器层次结构等知

《存储技术概述》导读:

科技、人类传承都离不开信息存储。《存储技术概述》从存储技术的发展历程进行展开介绍,接着谈到存储发展的趋势,包括存储分布式化、存储介质闪存化、存储云化、存储智能化和存储多样化等,然后深入浅出地介绍存储介质、存储系统结构、网络化存储、接口与协议、存储器层次结构等知识。——文/存储印象。



(六)接口与协议
(七)存储器层次结构(六)接口与协议

主机与存储器之间存在着接口,接口在物理表现上其实就是两者之间的适配电路,主要规定硬件接口和电平标准等。与接口紧密相关的是协议,协议规定接口、总线和传输规则,俗称“对暗号”,只有满足协议规定的各项必要条件,才能在主机和存储器之间实现信号(或数据)的传输。总线在前面提到过,总线实质上为传输通道,例如在数据传输经常会提到SATA通道和PCI-E通道,将数据从一个部件传输到另一个部件就要通过总线。

本节主要介绍计算机系统中常用的存储器接口与协议。

6.1 IDE

IDE(Integrated Drive Electronics)代表的是电子集成驱动器,从物理构成上来看,它是指把硬盘控制单元、磁头、磁盘片、马达等与盘体组合在一起的硬盘驱动器。将硬盘控制单元和盘体集成起来可以减少硬盘接口的电缆长度和数目,增强数据传输的可靠性,并且使硬盘易于制造,其安装使用也方便。IDE接口具有较好的性能,价格低廉,兼容性强,随着硬盘接口技术的发展,IDE接口在消费级市场上基本退出了历史舞台。

IDE使用ATA(Advanced Technology Attachment,高级技术附加装置)协议,因此平常所说的IDE接口也被称为ATA接口,主要面向于消费级,属于并行总线接口。ATA接口一共推出了多个不同的版本,分别为ATA-1(IDE)、ATA-2、ATA-3(FastATA-2)、ATA-4(ATA33)、ATA-5(ATA66)、ATA-6(ATA100)、ATA-7(ATA 133)。在ATA接口发展到ATA-6(ATA100)时遇到了极大的技术瓶颈,要想这种并行接口在电缆属性、连接器和信号协议上继续有大突破非常难,后来也只有迈拓公司推出采用ATA-7(ATA 133)标准(支持133MB/s数据传输速度)的IDE硬盘,而其他IDE硬盘厂商则转向开发更具性能优势的SATA(Serial ATA)标准接口的硬盘。

6.2 SCSI

SCSI(Small Computer System Interface,小型计算机系统接口)是一种用于计算机和它的周边设备之间进行系统级连接的接口标准协议,它定义了命令、通信协议和实体的电气特性,属于并行总线接口,承载SCSI协议。它最早是专为小型计算机系统而研制的一种存储单元接口模式,后来随着计算机技术的发展,成为了一个通用接口,可以完全应用到普通计算机上。在SCSI接口相应的母线上可以连接主机适配器和若干个SCSI外设控制器(可同时串接多个外围设备),支持外设包括硬盘、磁带、光驱、打印机、扫描仪和通信设备等。SCSI接口支持多任务使用,处理策略是设有母线仲裁功能,当同时有多个外围设备申请SCSI总线使用时,可按优先级进行仲裁。通过SCSI接口连接外置设置设备时,连接电缆可以长达6米或25米,其中不平衡型电气规格的SCSI接口允许最大线缆长6米,平衡型电气规格的SCSI接口允许最大线缆长25米。使用SCSI接口,可以实现同步传输数据,同步传输速率可达10MB/s以上,也可以实现异步传输数据,其异步传输速率可达1.5MB/s以上。

SCSI的类型主要有SCSI-1、SCSI-2和SCSI-3。

SCSI-1:SCSI-1是第一代SCSI标准版本,它的同步传输速率可达5MB/s,异步传输速率可达3MB/s,最大支持7个外部设备。如今,SCSI-1基本被淘汰。SCSI-2:SCSI-2出现两种传输规格,一种是Fast SCSI,其传输频率(时钟频率)比SCSI-1提高一倍,达到10MHz(对应的传输速率达10MB/s),支持8位并行数据传输,最大支持连接7个外部设备使用。第二种是Wide SCSI,使用50针接口,其传输频率(时钟频率)比SCSI-1提高一倍的同时,还增大了数据通路的宽度,支持16位并行数据传输,使得其同步传输速率最大可达20MB/s,时钟频率为10MHz,最大支持15个外部设备连接。SCSI-2主要用于老式的硬盘、扫描仪、CD-ROM驱动器中。SCSI-3:第三代SCSI标准版本又称UltraSCSI。SCSI-3与SCSI-2相比,SCSI-3能支持更多的计算机硬件,其数据传输速率也更快。基于8位传输的Fast-2模式,其数据传输率可提高至20MB/s;基于16位传输的Wide模式,其数据传输速率可以提升至40MB/s;此外,SCSI-3还有很多规格型号。SCSI-3的规格型号,具体如下表1所示。

表1 SCSI-3的规格型号

SCSI卡自身配置有可处理一切SCSI设备事务的CPU,在工作时主机CPU只要向SCSI卡发送工作指令,SCSI便会自行工作,之后将工作结果返回给主机CPU。SCSI自己可以对CPU指令进行智能排队,以提升工作效率。由于SCSI平时工作时占用主机CPU资源极低,还允许在向一个设备传输数据时而另一个设备对其进行数据查找,因此在多任务操作系统中便具有较为明显的优势。

SCSI接口有8种不同的总线阶段(Bus Phase),如表2所示,分别为总线空挡阶段(Bus Free Phase)、仲裁阶段(Arbitration Phase)、选择阶段(Select Phase)、命令阶段(Command Phase)、数据传送阶段(Data Phase)、状态阶段(Status Phase)、信息发送阶段(Message Phase)、再选择阶段(Reselect Phase),在同一个时间段内,总是只有一个总线阶段在执行相应的操作。

表2 SCSI接口8种不同的总线阶段

与IDE相比,SCSI的扩展性更好,性能更卓越且更稳定、耐用,可靠性也更有保障一些,但是SCSI接口以及使用该接口的外部设备价格昂贵(即SCSI设备价格昂贵),使得其实际使用范围受到了限制。

SCSI硬盘是指采用SCSI接口的硬盘,它采用50针接口,性能较高,缓存容量大,数据吞吐量大,CPU占用率低,稳定性好,支持热插拔,在服务器上得到广泛应用。一些服务器支持硬盘热插拔的安装方式,可以在不关停服务器的情况下拔出或插入一块硬盘,服务器操作系统会自动识别硬盘的变动情况,针对于24小时不间断运行的服务器来说至关重要。SCSI硬盘必须通过SCSI接口才能正常使用,有些服务器在主板上集成SCSI接口,有些使用专门的SCSI卡(即SCSI接口卡)。但是其价格昂贵,导致在普通计算机上很少碰见其踪迹。

6.3 SATA

SATA(Serial ATA,Serial Advanced Technology Attachment,串行高级技术附件)是一种基于行业标准的串行硬件驱动器接口,它是由Intel、IBM、Dell、Maxtor、Seagate、APT公司参与制定的硬盘接口规范。SATA的工作原理是采用连续串行的方式实现数据传输以获得较高的传输速率。使用SATA接口的硬盘又被称为串口硬盘,其串行ATA总线使用嵌入式时钟信号,具有更强的纠错能力,提高了数据传输的可靠性,同时该串行接口还具有结构简单、支持热插拔的优点。SATA在设计上与光纤通道如出一辙,可以用不同的传输通道来保证传输速度,对网络存储和服务器应用具有重要的意义。

SATA采用连续串行的方式进行数据传送,一次只传送1位数据,这种方式使得SATA接口的针脚数目大为减少,降低了系统能耗和复杂性。SATA支持传统的点对点连接,也支持“星形”连接,便于匹配RAID应用。此外,每个SATA硬盘都独占一个单独的传输通道,并且其兼容性良好,保留多种向后兼容方式。

SATA经历了3大规格版本,分别为SATA 1.0、SATA 2.0、SATA 3.0,SATA 1.0接口的带宽速率为1.5Gbps,SATA 1.0接口的带宽速率为3Gbps,SATA3.0接口的带宽速率为6Gbps,如图6-1所示。理论上,SATA 3.0接口的带宽速率为SATA 3.0接口的两倍,SATA 2.0接口的带宽速率为SATA 1.0接口的两倍。从SATA 2.0开始,增加了NCQ(Native Command Queuing,原生命令队列)、端口选择器(Port Selector)、端口倍增器(Port Multiplier)等功能,并增强了服务器特性,强化接口和连线性能等。在SATA 3.0中,除了提供高达6Gbps的链路速度(受制于各部件的影响,实际速度会低于600MB/s),还采用了新的原生指令排序(NCQ)串行指令,优化了NCQ管理功能,改进了电源管理功能,并采用适合紧凑型存储设备的小型低插力(LIF)接头等,SATA 3.0完全向下兼容SATA 2.0、SATA 1.0。

图6-1 SATA规格版本

SATA主机和SATA设备间互连是基于SATA接口规范进行通信的。如果按照SATA的功能特点来划分SATA接口规范的层次结构,则可以将SATA接口规范分为物理层、链路层、传输层和命令层,如图6-2所示。在主机和设备之间,物理层通过SATA接口建立实际的物理连接关系,其他各层则通过消息虚拟连接(图中用虚线表示)。其中,物理层的主要作用是负责码流的收发,将高速串行差分信号转换成并行数据,以及将并行数据转换成高速串行差分信号,它是主机和设备之间的通信基础;链路层的主要作用是负责消息的无差错传输,包括8B10B、扰码、编解码、CRC校验等;传输层的主要用作是生成与解析帧信息结构(Frame Information Structures,FIS);而命令层主要负责生成和解析访问SATA设备(如SATA硬盘)的操作命令。

图6-2 SATA接口规范的层次结构

SATA 3.0成为目前最为常见和廉价的机械硬盘和固态硬盘接口。SATA硬盘存储节点的结构示意图如图6-3所示。SATA硬盘(包括机械硬盘和固态硬盘)跑的是AHCI(Advanced Host Controller Interface)协议,所述AHCI协议支持NCQ功能和热插拔技术,NCQ最大深度为32,意味着主机至多可以发送32条命令给硬盘执行,故SATA硬盘比起以前只能逐条命令执行的硬盘,在性能上得到了大幅提升。

图6-3 SATA硬盘存储节点的结构示意图

为了适应笔记本电脑,尤其是超极本,出现了小型化的mSATA接口。

6.4 M.2接口、NVMe协议、PCIe总线

1. M.2接口

M.2接口是一种新的主机接口,它最早是为超极本量身定做的,准备用来取代先前的mSATA接口。相比mSATA接口,M.2可以具有更小巧的规格尺寸,以及更高的传输性能,该接口还可以兼容多种通信协议或总线标准,如USB、SATA、NVMe PCIe、HSIC、URAT、SMBus等。

目前,在M.2接口上承载的最重要协议无意是NVMe协议,使用的是PCIe(即PCI Express)通道。

2. NVMe协议

NVMe(Non-Volatile Memory Express,NVM Express)是一种逻辑设备接口规范,尤其指非易失性内存主机控制器接口规范,是运行在PCIe通道上的协议标准。在机械硬盘和早期的固态硬盘,使用SATA接口和AHCI协议便能满足系统性能的需求,那时系统的性能瓶颈主要在低速、高延时的硬盘端,随着固态硬盘技术的迅猛发展,固态硬盘的性能得到了大幅提升,可以用“飙升”一词来形容,底层闪存的带宽愈来愈宽,介质访问延时也愈来愈低,固态硬盘不再成为影响系统性能的瓶颈,而是转移到协议和接口端。在这种环境下,一种更高效的NVMe协议便顺理成章地诞生了,在设计之初,NVMe就充分利用了PCIe通道的高速性能,结合固态硬盘得到大幅提升的底层闪存带宽优势和相关的并行性,让PCIe固态硬盘的的低时延和传输速度极快的特性发挥得淋漓尽致。虽然说NVMe是为固态硬盘而生的,但是它不局限于以闪存为媒介的固态硬盘,而是同样适用于低时延和高性能的3D Xpoint等新型半导体存储介质上。

相比AHCI,NVMe具有高性能、低时延、低功耗的优势,即“一高两低”。

高性能

提到性能测试,自然离不开IOPS(Input/Output Operations Per Second)这个参数,在后面介绍闪存应用产品的内容中还会经常提到IOPS。所述的IOPS主要用于对计算机存储设备(如机械硬盘HDD、固态硬盘SSD、存储区域网格SAN)进行性能测试,测试的内容是每秒的读/写次数,作用是衡量随机访问的性能。但是要注意,IOPS会随系统配置的不同而产生不同的测量值,另外测试者在测试时的控制变因、系统设置、存储设备驱动程序、操作系统后台作业等,都会影响IOPS的结果测量值,控制变因主要包括读取及写入的比例、线程数量、其中顺序访问及随机读取的比例及配置方式、访问队列深度、数据区块的大小等。

从理论关系上看,IOPS与队列深度、IO延迟具有如下关系,但IOPS与队列深度并不成正比,队列深度、IO延迟会有不同的取值变化,一般情况下,队列深度增加,IO延迟也会提高。

IOPS=队列深度/IO延迟

对于SATA接口SSD,其队列深度可达32,是AHCI所能达到的极限(AHCI只支持一个队列)。而在NVMe协议下,最大的队列深度可达64K。

另外,PCIe通道在带宽性能上对SATA呈现碾压态势,加之NVMe具有比AHCI更深、更宽的命令队列,从而成就了NVMe SSD在性能上大幅超越SATA SSD,更不用说秒杀SATA机械硬盘HDD了。

低时延

存储设备的时延状况主要受到控制器、存储介质、软件接口标准等因素影响。PCIe SSD的原生主控与CPU(这里的CPU确切的说法是指Root Complex更合适)采用直接相连的方式,类似于高铁直达,而不像SATA SSD的主控需要通过南桥控制器中转再与CPU连接,因而PCIe SSD的时延更低。在软件接口方面,NVMe协议减少对寄存器的访问次数,缩短CPU到SSD的指令路径,减少各个CPU核之间的锁同步操作,使用MSI-X中断管理等。此外,闪存本身比传统机械硬盘在传输速度上就具有先天优势。故,NVMe PCIe SSD具有较优秀的低时延。

低功耗

在消费级NVMe中,通常会加入类似于自动电源状态转换和动态电源管理机制等功能,对于用于笔记本电脑上的NVMe固态硬盘,低功耗设计更显得实用,有助于增加笔记本电脑的续航时间。

总得来说,NVMe是一种主机与固态硬盘(或其他闪存应用存储器)之间通信的协议,其在协议栈中处于命令层或应用层,属于“高层”,地位相当于军事、指挥官级别,与其搭配的PCIe相当于它的手下大将,如图6-4所示。NVMe命令集包含Admin命令集和I/O命令集,其中Admin命令集用于主机管理和控制SSD,I/O命令集用于主机和SSD之间数据的传输。

图6-4 NVMe与PCIe的形象比喻

如今,NVMe经历好几个版本,以目前应用普遍的NVMe 1.4版本为例,列举几个比较实用的新增功能或优化功能。

1) 针对以往首次使用NVMe SSD前需要进行4K对齐操作的情况,NVMe 1.4对此进行了优化,使得使用NVMe 1.4的SSD与主机系统进行通信时,可以进行4K自动对齐以获得最好的读写性能,存取相关数据文件的效率更高。

2) NVMe 1.4加入了诸如Vertfy和Get LBA Status的命令,提升SSD对数据纠错的性能优化,增加数据备份功能等。

3) 对于配备大容量缓存的SSD,NVMe增加了系统缓存区的响应功能,当计算机遭受突然断电时,便可以触发该功能,此时凭借着NVMe SSD极快的写入性能尽可能存储用户正在访问的数据(位于RAM内存中的所有数据),提升数据安全系数。

3. PCIe总线

PCIe(PCI-Express)是一种高速串行计算机扩展总线标准,它的主要优势是数据传输速率高,发展潜力大,可以适合不同速率要求的硬件使用,例如显卡、声卡、SSD等。PCIe在同一标准版本下有多种规格,包括PCI Express x1、PCI Express x2、PCI Express x4、PCI Express x8、PCI Express x16,分别对应不同的速率。

PCIe是一项不断发展、完善的总线标准技术,历经的标准版本主要有PCIe 1.0、PCIe 2.0、PCIe 3.0、PCIe 4.0、PCIe 5.0等。

6.5 SAS

SAS(Serial Attached SCSI,串行连接SCSI)是一种以串行方式连接小型计算机系统接口,也是继并行SCSI接口之后成功研发出来的一种全新接口,它设计的目的是改善存储系统的效能、可用性和扩展性,并能与SATA硬盘保持兼容性。

SAS接口在物理层上完全与SATA接口兼容,更进一步来说,SAS接口技术可以向下兼容SATA,从接口标准的范围来看,SATA是SAS的一个子标准,因此SAS控制器可以控制SATA硬盘,而SATA控制器却不能控制SAS硬盘。在一个存储系统中,可以同时存在着SAS驱动器和SATA驱动器。

SAS在协议层融合了3种常用的协议,如图6-5所示,这样便可以实现根据不同的连接设备使用不同的协议来传输数据。得益于这3种协议,SAS可以和SATA以及部分SCSI设备建立无缝使用的关系。

图6-5 SAS协议层

相比传统并行的SCSI接口,SAS在接口速度上提升显著,例如主流的Ultra 320 SCSI具有320MB/s的速度,而SAS一起步就是300MB/s的速度,更不用说高两倍以上的速度了;SAS采用串行线缆,可以实现更长的连接距离,同时抗干扰能力还得到了提升,另外,合理的电缆设计让机箱内部的散热也得到了显著改善。更为难得的是,SAS除了支持SAS硬盘,还能支持SATA硬盘,具有高性能、高可靠和高扩展性,可以满足不同性价比的存储需求。

然而,SAS在目前也同样存在一些不足,具体如下表3所示。

表3 SAS的不足之处

随着SAS技术的不断发展,SAS相关产品的价格逐渐滑落,SAS已经成为服务器硬盘的主流接口之一。

6.6 其他接口与协议

其他接口主要有FC、U.2等。

FC是Fibre Channel(光纤通道)的简称,它与iSCSI、IDE大不相同,最早是为网络而专门设计的,后来因为存储器对带宽的高需求而应用到存储系统,进而发展成一种高速的网络存储交换技术,主要用于连接计算机存储设备,可以实现远距离传输和高带宽,能够在服务器、存储器和客户机节点间实现大型数据文件的传输,目前能实现高达10Gbps的传输速率。光纤通道广泛用于通信接口,有效融合了传统I/O接口和网络技术的优势,不仅用于超级计算机,还用于企业级存储SAN中,例如通常用于连接各种类型的RAID磁盘阵列以满足服务器或高端工作对数据的高传输率要求。

光纤通道协议(Fibre Channel Protocol,FCP)是一种类似于TCP的传输协议,能在光纤通道上传输SCSI命令。

光纤通道可以满足存储网络对传输技术的这些需求:高带宽、长距离的串行传输,适用于不同模块间的大规模应用数据(如音频、视频数据流)交换;高可靠性和实用性,主要体现在较低的传输误码率和较低的数据传输延迟上,并支持非应答方式与传感器数据传输,可以满足快速交付的性能等级要求;统一性与可扩展性,传输协议可以在主机总线适配卡上以硬件方式实现,减少对服务器CPU的占用;遵循统一的国际标准,不同生产厂商的产品能够实现开放式互连。

然而,光纤通道在硬件上对价格昂贵的FC交换器比较依赖,部署一套FC SAN设备需要花费不菲的金额,而且需要使用者必须具备FC协议相关知识才能驾驭得了FC SAN设备,因此,FC SAN的普及便受到了相当的限制。FC SAN是好存储,但是现实上能享用FC SAN好存储带来好处的企业比较有限。

参考文献:

[1]固态存储:原理、架构与数据安全 / 夏鲁宁,贾世杰,陈波著.—北京:机械工业出版社,2017.8。
[2]存储技术基础 / 刘凯,刘博编著.—西安电子科技大学出版社,2011.1(2013.7重印)。
[3]深入浅出SSD:固态存储核心技术、原理与实战 / SSDFans 著.—北京:机械工业出版社,2018.6。

来源:时尚潮流女

相关推荐