QY球友会

Morphoneme

图解SCSI、IDE、FC及SATA存储协议

发表时间:2016-05-25 10:50
SCSI、IDE、FC及SATA……,这些令人眼花缭乱的存储协议和接口之间都有怎样“剪不断理还乱”的关系呢?今天,QY球友会就听瓜哥细细道来吧。
一.顶层协议描述了什么
在存储系统中,上层协议可以泛指“指令”,也就是比如“读出从某某开始的多少长度的扇区”,指令包含三大关键信息:
1. 操作码:Operation Code,或者称为OP code。比如Write,Read,Control(Inquery,Standby等等)。
2.起始地址:从哪开始读。如果是文件的话,精确到字节。如果是硬盘的话,精确到LBA(扇区)。
3.长度:从起始地址往后多长的一段字节或者扇区。
二.下层协议及接口又有什么用

那么,指令如何传递给对端的设备?你可以自己将上述指令的二进制码再编码一下,用手电筒的亮灭传递给对方,对方收到之后闪一下手电筒表示已经收到。此时,手电筒编码、收到后怎么表示收到,这也是一种协议,属于传输层协议。而手电筒就是物理层的接口,最终通过物理层,也就是光在真空中传播来将信息发送到对方。


同理,SCSI指令/协议NVMe指令/协议,是存储系统面向机械盘固态介质分别开发的两种上层协议。它们可以被over到传输层协议+网络层/链路层/物理层接口上传输到对方,比如SCSI over FC,SCSI over SAS、[(SCSI over TCP)over IP] over ethernet(iSCSI), SCSI over RDMA over IB(SRP), SCSI over TCP over IP over IB。以及NVMe over PCIE over 标准插槽、NVMe over PCIE over M.2接口、NVMe over PCIE over SFF8639接口等等。NVMe最好是直接over到PCIE上,因为目前来讲,PCIE的物理层+链路层+网络层+传输层还是非常高效的,算是开放式IT设备外部IO总线里速率较高使用最广泛的。当然,如果为了扩展性考虑,也可以把NVMe over TCP/IP over 以太网,或者NVMe over RDMA over 以太网/IB,或者NVMe Over FC等等。

底层接口,同样是手电筒,有人用灯丝灯泡的,有人用led的,有人用袖珍的,有人用手提的,有人用头戴的。这就是接口不同,但是它们传递的信息编码、物理层,都是一样的。比如,PCIE可以用标准插槽,也可以用自定义的插槽,但是里面的信号针脚数量都是一样的。
三.各类存储系统使用的协议及接口一览
存储系统中的硬件物理接口,包括:

1.SCSI协议及接口:最原始的上层协议及底层接口标准。有人可能蒙掉了,SCSI不是上层协议的名字么,为何底层物理接口也叫SCSI?因为SCSI这个标准最早的时候把上层协议一直到底层传输协议、网络层、物理层全给定义了。下图就是SCSI体系设备侧的接口物理形态。目前已被淘汰。其定义了:表示层到物理层。

2.IDE协议及接口:承载ATA协议。面向消费级,与SCSI接口处于同一个时代。同属并行总线接口,最大接2个设备。物理层速率比同时代SCSI接口低。目前已被淘汰。其定义了:传输层到物理层。

3.FC协议及接口:用于存储系统时则承载SCSI协议,理论上可以承载任何上层协议。分为FCAL和FC Fabric两种网络层拓扑。磁盘接入的是FCAL拓扑。物理层接口如下图所示。为了满足企业级对可用性的要求,FC盘被作为双数据接口,接入两个成环器再各自上联到FC控制器上。图中所示的接口中包含两套数据针脚。其定义了:传输层到物理层。

4.SATA协议及接口,仅用于承载ATA协议。其用于取代IDE接口。属于串行总线,每个通道只能接入一个设备,采用特殊的Mux可以复用多个设备。下图中左侧为数据口,右侧为供电口。数据口有三根地线和两对差分线。供电口有不同电流的多路冗余供电。其定义了:传输层到物理层。


5.SAS协议及接口:在存储系统中用来取代FCAL接口。目前速率达到12Gb/s,支持交换式组网,电路交换,不能成环。其定义了:传输层到物理层。SAS和SATA的连接器看上去差不多,仔细观察会发现SATA连接器中间的缺口在SAS上是被补平的,其反面其实还有7根数据线,这就是企业级冗余所要求的双端口,这第二个数据口接入到第二个SAS控制器或者Expander上。

6.PCIE协议及接口,承载PCIE传输协议。其可承载各种上层协议。用于存储系统时,一般直接承载NVMe协议,也可以承载SCSI协议,但是后者没有普及。其定义了:传输层到物理层。目前PCIE设备侧连接器形态主要是标准插槽或者SFF8639(U.2)。

7.emmc协议及接口,没有连接器,直接从flash颗粒管脚以贴片的方式与emmc控制器的管脚相连。承载emmc上层协议(与ATA/SCSI/NVMe处于同一个阶层)。底层物理层采用并行总线。emmc与早期SCSI的做法类似,从顶层协议到底层物理层全都定义了一套自己的标准。其定义了:表示层到物理层。

8.ufs协议及接口,没有连接器,直接从flash颗粒管脚以贴片的方式与ufs控制器的管脚相连。底层物理层采用串行总线。上层协议采用ufs协议(与ATA/SCSI/NVMe/emmc处于同一个阶层)。ufs与早期SCSI的做法类似,从顶层协议到底层物理层全都定义了一套自己的标准。其定义了:表示层到物理层。

连接器

上述的SCSI、FC、SAS等各种协议都相应定义了自己的物理层连接器形态。但这并不意味着某种连接器只能承载当初定义它的那个协议。比如,SATA连接器可以承载以太网物理层信号,RJ45连接器可以承载串行通信协议物理层信号。SAS协议定义的HD miniSAS连接器可以承载PCIE物理层信号,等等。有个原则就是,为高速率传输协议定义的连接器,可以承载低速率传输协议,反之则不行。

1.上述各种协议原生定义的连接器,不再多描述。


2.SAS方面,由于引入了Expander,外置端口形态在早期比较多,但是到12Gb速率时代之后,逐渐统一成HD miniSAS类型的连接器,如下图所示,分内口和外置口两个版本。miniSAS逐渐不再用。

3.U.2连接器(SFF-8639连接器),其中包含SAS、SATA和PCIE x4三套接口,充分利用空间,将三套金手指信号做到接口上,各干各的。意味着可以插入一块SAS或SATA或PCIE盘。样子乍一看和SAS差不多,但是别搞混了,还是有差别的。U.2实质上是一种combo组合接口。其定义了:连接器。
4.M.2连接器广泛用于平板电脑里的固态存储介质。其底层可承载PCIE传输协议,然后可以SCSI over PCIE,NVMe over PCIE。其也可以直接跑SATA信号。


QY球友会 QY球友会 QY球友会 QY球友会 QY千亿国际 QY千亿国际 QY千亿国际 QY千亿国际