大话存储阅读笔记之存储的前世今生

大话存储这本书我觉得非常不错,对于从事存储行业的人来说,算是一本百科全书吧。书里介绍了存储发展的前世今生。

单主机时代

早起的存储,是作为计算机的一个外存来使用的。当时还是机械硬盘的时候。

首先介绍几个计算机基础的设施。

北桥:负责CPU与内存间的通信。

系统总线:CPU与北桥连接的总线叫做系统总线,也成为前端总线。总线频率相当于CPU向外部存取数据时的数据传输速率,与CPU自身的频率是两个不同的概念,CPU自身的频率则是表示CPU运算时电路产生的频率。

内存总线:内存与北桥连接的总线。

南桥:负责I/O接口等一些外设接口的控制、IDE设备的控制及附加功能等。由于北桥速度太快,而IO总线速度相对北桥显得太慢,所以北桥和IO总线之间,要增加一个网桥,而这就是南桥,在南桥上一般集成了众多外设的控制器,比如磁盘控制器、USB控制器等。

现行的协议规范如下图所示:

大话存储阅读笔记之存储的前世今生

如上图,主流的主机与外设通信的协议规范,主要是ATA与SCSI。全称分别是Advanced Technology Attachment,即高级技术附加。而SCSI全称是Small Computer System Interface,即小型计算机系统接口,是一种较为特殊的接口总线,具备与多种类型的外设进行通信的能力,比如硬盘、CD-ROM、磁带机和扫描仪等。

ATA

ATA分为PATA和SATA,分别表示Parallel ATA,即并行传输ATA,而SATA,表示Serial ATA,即串行传输ATA。从名称上可以很明显的看出两者的区别就在于传输的方式。

那接下来,我们看下并行传输和串行传输的区别。

并行传输:当与对方连接的线数超过1时,同时向几条连接线发送数据的方式,就称为并行传输。并行传输要求双方之间的距离足够短。因为距离很长时,数据会因为导线电阻不平衡以及其他各种原因的影响,最终到达对方的速度就会显示出差距,从而造成接收方必须等并行的几条线的所有数据都到达之后,才能发起下一轮传送。还有一个缺点,是传输频率不能太高。由于在电路高速震荡的时候,数据线之间会产生很大的干扰,造成数据出错,所以必须增加屏蔽线,但即使增加了屏蔽线,因为不能保证屏蔽掉更高的频率干扰。

串行传输:即只在一条连接线上发送数据。因此对比并行传输,串行传输的效率是低很多的。但是并行传输有上面说过的传输频率不能太高的重大缺陷。因此并行传输虽然效率高,但是速度慢。而串行传输刚好相反,效率是最低的,每次只传输一位,但是它的速度非常高。现在已经可以达到10Gb/s的传输速率。这样算来,串行传输的总体速率更快。串行传输不仅仅用于远距离通信,现在就连PCI接口都转向了串行传输方式。PCIE接口就是典型的串行传输方式,其单条线路传输速率高达2.5Gb/s。

IDE接口,也被称为PATA接口。同上介绍,支持的最高传输率有限。在IDE接口传输率提高的同时,也就是工作频率提高的同时,IDE接口交叉干扰、地线增多、信号混乱等缺陷也给其发展带来了很大的制约,被新一代的SATA接口取代也就在所难免了。

SATA接口,是用串行线路传输数据,但是指令集不变,仍然是ATA指令集。

可以看到,早起的单主机时代,最大的制约其实是线缆。主机接口有限、空间有限、

SCSI

SCSI接口具有应用规范广、多任务、带宽大、CPU占用率低以及热插拔等优点。

SCSI必须要有专门的SCSI控制器,也就是一块SCSI控制卡,才能支持SCSI设备。这个与IDE硬盘不同。在SCSI卡上,有一个相当于CPU的芯片,它对SCSI设备进行控制,能处理大部分的工作,减少了CPU的负担。因此,SCSI接口具有了CPU占用率低的优势。缺点是价格过于昂贵,主要是SCSI卡贵。

外置时代

如同前面提到的,在单主机时代,受限于主机的接口有限,因此能够连接的硬盘数量有限,因此容量有限。那么有什么方式能够解决这个问题呢?因此就迎来了存储外置的时代。

JBOD

Just a Bound Of Disk,顾名思义,就是一串磁盘。也就是把一串磁盘,放在一个箱子里,箱子有独立电源和散热系统,保障磁盘的稳定运行。接口方面,如下图所示

大话存储阅读笔记之存储的前世今生

这种叫磁盘柜。上面的配图说明不对。

但是这种方式对RAID的支持不是特别友好,如果要调整RAID,还得重启主机。因此大家就在思考,是否可以把RAID功能做到磁盘箱(即JBOD)中。这样的话,只要在磁盘箱中做完RAID之后连接到主机,这样不用重启主机,就能识别到新逻辑盘了。这种自带RAID控制器的磁盘箱叫做“磁盘阵列”,JBOD就叫做磁盘柜,而自带RAID控制器的盘柜叫做磁盘阵列或者盘阵。盘柜和盘阵,前者只是一串外置的磁盘,而后者自带RAID控制器。

 盘阵是在盘柜的基础上,将内部的磁盘经过自带的RAID控制器的分分合合,虚拟化成逻辑磁盘,然后经过外部SCSI接口连接到主机上端的SCSI接口。此时,整个盘阵对于主机来说,就是主机SCSI总线上的一个或多个设备,具有一个或多个SCSI ID。所有逻辑磁盘都以LUN的形式呈现给主机。

盘阵的出现,彻底摆脱了主机的束缚,成为与主机对峙的一个独立的外部设备。从此以后,存储技术才真正的成为一个独立的庞大学科,并不断发展壮大。

前端和后端

对于盘阵来说,面向主机对外提供服务的就叫前端,面向自己管理的磁盘用于内部管理而外部不需要了解的部分就叫做后端。

对于盘阵来说,还有一个内部接口和外部接口的概念。内部接口是指盘阵RAID控制器连接内部磁盘时用的接口,比如可以连接IDE磁盘、SCSI磁盘、SATA磁盘和FC磁盘(貌似前文未做介绍)。外部接口是指盘阵控制器对于主机端,也就是前端,提供的是什么接口,比如SCSI接口、FC接口等。

盘阵类型

按照前端和后端接口来分,有SCSI-FC盘阵,FC-FC盘阵、SATA-FC盘阵、SCSI-SCSI盘阵等类型。SCSI-FC类型表示后端接口为SCSI接口,前端用于连接主机的为FC接口,也就是后端为SCSI磁盘,前端为FC接口的盘阵。

SAN

将磁盘放到主机外部,存储设备和主机之间,就形成了又一个独立的网络:存储区域网络(Storage Area Network,SAN)

数据就是在这种网络中来回传输,格式不断被转换和还原

网络时代

----待续---

上一篇:1、objc4-818.2编译踩坑总结篇


下一篇:Linux SCSI 子系统剖析