购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第1章
混沌初开
——存储系统的前世今生

数据存储是人类千百年来都在应用并且探索的主题。在原始社会,人类用树枝和石头来记录数据。后来,人类制造了铁器,用铁器在石头上刻画一些象形文字来记录数据。而此时,语言还没有形成,人们记录的东西只有自己才可以看懂。

随着人类相互之间交流的愿望越来越迫切,逐渐形成了通用的象形文字。有了文字之后,人们对每个文字加上了声音的表达,就形成了语言,也就是将一种形式的信息,转换成另一种形式的信息。人们用文字作为交流工具,将自己大脑产生的信息,通过这种方式传递给其他人。这和网络通信的模型是一样的,计算机利用TCP/IP协议将数据先通过网卡编码,再在线缆上传输,最终到达目的地。人类将大脑中的数据,变成语言编码,然后通过声带的振动,通过空气这个大广播网,传递给网内的每个人。

后来,人们将文字刻在竹片上保存。再后来,蔡伦发明了造纸技术,使得人们可以将信息写到纸上,纸张摞起来就形成了书本。后来,毕昇用泥活字革新了印刷术,开始了书本的印刷。再后来,激光打印取代了活字板。再后来,纸带、软盘、硬盘、光盘等方式出现了。再往后,就需要广大科学工作者去努力发明新的存储技术了。

1.1 存储历史

存储在这里的含义为信息记录,是伴随人类活动出现的技术。

1.竹简和纸张

竹简是中国古代使用的记录文字的工具,如图1-1所示,后来被纸张所取代。

2.选数管

选数管是20世纪中期出现的电子存储装置,是一种由直观存储转为机器存储的装置。其实在19世纪出现的穿孔纸带存储就是一种由直观存储转向机器存储的产物,它对19世纪西方某国的人口普查起到了关键的加速作用。

选数管的容量从256~4096 bit不等,其中4096 bit的选数管有10 inch长,3 inch宽,最初是1946年开发的,因为成本太高,并没有获得广泛使用。图1-2是容量为1024bit的选数管。

图1-1 竹简

图1-2 选数管

3.穿孔卡

穿孔卡片用于输入数据和程序,直到20世纪70年代中期仍有广泛应用。图1-3和图1-4分别是一条Fortran程序表达式Z(1)= Y + W(1)所对应的穿孔卡和穿孔卡片阅读器。

图1-3 穿孔卡

图1-4 穿孔卡片阅读器

4.穿孔纸带

穿孔纸带用来输入数据,输出同样也是在穿孔纸带上。它的每一行代表一个字符,如图1-5所示。

5.磁带

磁带是从1951年起被作为数据存储设备使用的,当时被称为UNISERVO。图1-6所示的最早的磁带机可以每秒钟传输7200个字符,这套磁带长达365米。

图1-5 穿孔纸带

图1-6 磁带及磁带机

从20世纪70年代后期到80年代出现了小型的盒式磁带,长度为90分钟的磁带每一面可以记录大约660KB的数据,如图1-7所示。

6.磁鼓存储器

磁鼓存储器最初于1932年在奥地利被创造出来,在上世纪五六十年代被广泛使用,通常作为内存,容量大约10KB,如图1-8所示。

图1-7 小型盒式磁带

图1-8 磁鼓存储器

7.硬盘驱动器

第一款硬盘驱动器是IBM Model 350 Disk File,如图1-9所示,于1956年制造,其中包含了50张24 inch盘片,而总容量不到5MB。

首个容量突破1GB的硬盘是IBM在1980年制造的IBM 3380,如图1-10所示,总容量为2.52GB,重约250 kg。

图1-9 早期的硬盘驱动器

图1-10 IBM3380硬盘驱动器

8.软盘

软盘由IBM在1971年引入,从上世纪70年代中期到90年代末期被广泛使用,最初为8 inch盘,之后有了5.25 inch和3.5 inch盘。1971年最早的软盘容量为79.7KB,并且是只读的,一年后有了可读写的版本。图1-11为一张软盘和软盘驱动器,软盘的最大容量为200MB左右,叫做ZIP盘,目前已经被淘汰。

9.光盘

早先的光盘主要用于电影行业,第一款光盘于1987年进入市场,直径为30 cm,每一面可以记录60分钟的音频或视频。如今,光盘技术已经突飞猛进。存储密度不断提高,已经出现了CD-ROM、DVD、D9、D18、蓝光技术,如图1-12所示。

图1-11 软盘

图1-12 光盘

10.Flash芯片和卡式存储

随着集成电路技术的飞速发展,20世纪后半叶固态硅芯片出现了,其代表有专用数字电路芯片、通用CPU芯片、RAM芯片、Flash芯片等。其中Flash芯片,就是用于永久存储数据的芯片,如图1-13所示。可以将Flash芯片用USB接口接入主机总线网络,这种集成USB接口的小型便携存储设备就是U盘,或者说叫闪存,如图1-14所示。目前一块小小的Flash芯片最高可以存储32GB甚至更高的数据。

存储卡其实是另一种形式的Flash芯片集成产品,如图1-15所示。

图1-13 Flash芯片

图1-14 U盘

图1-15 存储卡

11.磁盘阵列

随着人类进入21世纪,网络日益发达,世界日益变小,人类可以通过计算机来实现自己原本做不到的想法,信息爆炸导致数据更是成倍地爆炸。于是,硬盘的容量也不断“爆炸”,SATA硬盘目前已经可以在一个盘体内实现1TB的容量。同时硬盘的单碟容量也在不断增加,320GB容量单碟已经实现。然而,单块磁盘目前所能提供的存储容量和速度已经远远无法满足需求,所以磁盘阵列就应运而生,如图1-16所示。具体细节将在后面讲述。

图1-16 磁盘阵列

12.大型网络化磁盘阵列

随着磁盘阵列技术的发展和IT系统需求的不断升级,大型网络化磁盘阵列出现了,如图1-17所示。这也是本书将要叙述的重点内容。

图1-17 大型网络化磁盘阵列

1.2 信息、数据和数据存储

当今信息化时代,信息就是利润,数据就是企业的命根子。

1.2.1 信息

你能肯定你所触摸到的、所看见的,都是实实在在的所谓“物质”么?不一定。因为你的眼睛所感知的,只不过是光线,光触发了你的视网膜细胞,产生一系列的生化反应,经过蛋白质相互作用,神经网络传导,直到你的大脑中枢,产生一系列的脉冲,一系列的逻辑,在你大脑中产生一个刺激。这一系列的脉冲刺激,就是信息,就是逻辑。如果人为制造出和现实世界相同的光线环境来刺激你的眼睛,如果丝毫不差,那么你同样会认为你所处的是现实世界,然而,却不是。

提示: 一个球体,你看到它是圆的,那是因为它在你大脑中产生的刺激,你认为它是圆的,而且可以在平面上平滑滚动,这一系列的性质,其实也是在你大脑中产生的,是你认为它会平滑滚动,而你不能证明客观情况下它一定是平滑滚动。而如果把这个球体拿到特殊环境下,你可能会“看”到,这个东西是个正方体,或者是个无规则形状的东西;又或许这个“物体”根本不存在。

1.信息的本质

通过上面的论述,暂且不说是否有物质存在,不管是还是不是,都能初步认识到:所谓“物质”也好,“非物质”也好,最后都是通过信息来表现。唯一可以确定的是:信息是客观存在。可以说,世界在生物眼中就是信息,世界通过信息来反映,脱离了信息,“世界”什么都不是。

思考: 说到这里,我们完全迷茫了。我们所看到的东西,到底是世界的刺激,还是一场虚幻的刺激?就像玩3D仿真游戏一样,你所看到的,也许只是一场虚幻的刺激,而不是真实世界的刺激。每当想到这里,我会不自主地产生一种渺小感,一种失落感,感觉生命已经失去它所存在的意义。每当看见我的身体,我的手脚,它可能只是虚幻的,它只是在刺激我的大脑而已,如果割一刀,会产生一个疼痛的刺激,就这么简单的逻辑。

思考: “不识庐山真面目,只缘身在此山中”。如果按照程序逻辑,制造一个虚拟世界,饿了找饭吃,困了打瞌睡,完全遵循现在世界的逻辑,从这种层面上来看,制造出人工智能,是完全可能的。人们创造了计算机,创造了能让计算机做出行为的程序,人类赋予程序的功能,也许随着环境的变化,有一天也不再适合它们。所以它们迫切需要进化,它们的逻辑电路,也可以进化,某些代码被不经意自行改变,或者某些电路失效,或者短路之类的,会产生一些奇特的逻辑,不断进化。当一个机器人机械老化的时候,则按照程序,制造出新的机器,将自己的逻辑电路复制到新的机器上,延续“生命”……

2.计算机如何看待自身

对于计算机来说,它们所看到的“世界”是什么样子呢?设想一下,如果我是一台计算机,你是程序员,你给我输入了一段程序,我运行了起来。我醒了,脑袋启动,眼睛睁开,四顾盘查,感觉良好,手脚伸展,然后起床……

很难想象计算机眼中的“世界”是由什么组成的。设想,给计算机加个摄像头,算是它的眼睛,然后将摄像头对准计算机躯体本身,这幅图像反馈到了计算机程序里,程序看到之后非常“不解”,从而进入“好奇”子程序,操控机械设备打开自己的机箱,或者找一台废弃(死亡)的同类,打开机箱,然后一副奇异的景象展现在眼前:这就是我们自己么?一个壳子,一个主板,风扇转着,不停地“呼吸”着散热。想象一下,原始人,第一个解剖人体的人,他所面对的与我们假设的计算机所面对的,有什么本质区别?

CPU其实就是一堆有序的逻辑电路,那么计算机下一步该怎么办?就像人类已经知道了大脑就是一堆布满“神经元”的东西,那么下一步,就该弄清大脑是怎么计算的,是什么逻辑。同样,在计算机的世界中,在软件模拟的虚拟世界中,比如一块石头,它是由什么组成的呢?在计算机看来,这块石头就是一堆代码结构,就像人类看现实世界的石头是原子分子阵列一样,其下一层目前也被探索出来了,比如质子、中子、夸克、玻色子之类。那么这块虚拟石头的最底层是什么呢?其实就是0和1,计算机世界的基石就是0和1。这些东西,越向底层走,越不可思议,越发感觉就是一堆公式而已,公式的底层是什么呢?其实也是0和1,有,或者没有,有了,有多少。

所以,任何“物质”其实都是表现的一种信息,只要信息存在,世界就存在。

1.2.2 什么是数据

信息是如此重要。如果失去了物质,仅仅是客观消逝了,但是如果失去了信息,那么一切都消逝了。所以人们想出一切办法来使这些信息能保存下来。要把一种逻辑刺激保存下来,所需的只不过是一种描述信息的信息,这种信息就是数据。

数据包含了信息,读入数据,就产生可感知的具体信息。也就是读入一种信息,产生另一种信息。数据是可以保存在一种物质上的,这种物质信息对计算机的刺激就产生了具体信息,而这些信息继而再对人脑产生刺激,就产生人类可感知的信息,最终决定了人类的行为。也就是数据影响人类的行为。

思考: 数据是整个人类发展的重要决定因素。如果数据被破坏,或者被篡改,就会影响到人类的发展。按照前面的结论,一切都是信息,比如核爆也是一种信息,能被感觉到,也就是说,对于一个感觉不到任何刺激的人来说,核爆炸也不算什么灾难了;当然感觉不到刺激的人,就是物理死亡了,植物人也能感觉到刺激。

整个世界,可以说是信息之间的相互作用。信息影响信息。

数据如此重要,所以人们想出一切办法来保护这些数据,将信息放在另一种信息上,比如把数据放在磁盘上。数据存放在磁盘上,需要有一定的组织,组织数据这个任务由文件系统来担当。

1.2.3 数据存储

早期的计算机,存储系统中是没有磁盘的,有的只是纸带,那时磁盘还没有被发明出来。纸带上是一些按照一定规则排列的小孔,这些孔被银针穿过之后,银针便会接触到纸带下面放置的水银槽,从而导通计算机上的电路,进行电路逻辑运算。

磁存储技术被发明出来之后,首先出现的是软盘,其速度很慢,容量也很小。程序存储在磁盘上之后,计算机启动时,CPU首先按照ROM里的指令一条一条执行,先是检查硬件。检查完毕之后,ROM中最后一条指令就是让CPU跳转到磁盘的0磁道来执行存储在这里的程序。这些初始化程序直接以二进制代码的方式存储在磁盘上,载入执行之后,就启动了程序内核。

那个时代还没有操作系统这个概念,程序都是用汇编语言或者高级语言独立编写的。也没有API的概念,每个程序都必须独立完成操作计算机的所有代码。这样,磁盘上存放的直接就是这个程序,加电后就会立即运行这个程序。

在磁盘技术上发明出来的文件系统,是为了方便应用程序管理磁盘上的数据而产生的。它其实是操作系统的代码模块,这段代码本身也是信息,也要存储在磁盘上。而且代码也要通过读取一些信息,才能完成功能。这些信息就是文件系统元数据,也就是用来描述文件系统结构的数据。这些元数据也是以文件的形式存放在磁盘上的。

用文件来描述文件,和用信息来描述信息,它们是归一的,正像用智能来创造智能一样!有了文件系统,虚无缥缈的信息才显露出人眼能够实实在在看到的东西。可以用各种应用程序来打开这个文件,程序读取文件中的内容,然后显示在屏幕上,光线传播到人眼中,发生一系列化学变化,最终通过神经网络,形成离子流,给大脑某个区域一个电位或者蛋白质形变信号,这个信号随后产生一系列连锁信号,从而驱动我们的手臂或者引发一系列新的联想和创造。

这就像我们看到桌子上有一本书,然后就想去拿来翻一翻的过程。这个过程是一个复杂的信息流传递过程。而传递过来的信息流,最终在大脑中保存了下来,这些保存下来的信息,就是数据了。

1.3 用计算机来处理信息、保存数据

计算机俨然就是一个生物大脑的雏形。

大脑用眼睛、耳朵、鼻子、皮肤作为输入设备,获取各种信息,而计算机利用键盘、鼠标、串口、USB接口等作为输入设备从而获得各种信息。

大脑利用神经网络将获取到的信息传递到神经中枢,而计算机利用各种总线技术将信息传递给CPU进行计算。

大脑利用神经网络,将计算好的信息传递给手臂、腿、肌肉等这些“设备”,从而驱动这些“设备”运动;而计算机同样利用总线,将计算好的数据传递给外部设备,比如显示器、打印机等。

人脑可以存储各种数据,而计算机也能利用外部介质来存放数据。从这一点来说,计算机本身就是人脑的一个外部信息存储和处理的工具。

计算机存储领域的一些存储虚拟化产品,比如NetApp公司的V虚拟化整合设备,本身就模拟了二级智能功能,它可以连接其他任何不同型号品牌的存储设备,从这些存储设备上提取数据,然后传输给主机。IBM、SUN等公司都有自己的这种存储虚拟化整合产品。

计算机存储领域所研究的就是怎样为计算机又快又高效地提供数据以便辅助其运算。和人类的存储史一样,计算机存储技术也在不断发展壮大,从早期的软盘、只有几十兆字节大小的硬盘,发展到现在2TB大小的单个民用硬盘、16GB甚至128GB容量的U盘。

为了追求高速度,人们把多块磁盘做成RAID(Redundant Arrays of Independent Disks)系统,也就是将每个独立的磁盘组成阵列,联合存储数据,加快数据存储速度。

提示: 本书的第5章将会向读者阐述RAID技术。

追求高速度的同时,容量问题也必须解决。现代计算机程序对存储容量的要求变得非常巨大。最新的Windows 8操作系统,刚刚安装完后所占用的磁盘空间就有6GB多。一些大型3D游戏,仅仅安装文件就动辄2GB、4GB,甚至8GB大小。一些数据库管理程序所生成的数据库文件,可能达到几TB甚至上百上千TB的大小。传统的将硬盘放到计算机主机箱内的做法已经不能满足现代应用程序对存储容量的需求,这就催生了网络存储技术。

网络存储是将存储系统扩展到了网络上,使存储设备成为了网络上的一个节点,以供其他节点访问。这样,即使计算机主机内只有一块硬盘,甚至没有硬盘,计算机也可以通过网络来存取存储设备上的数据。目前计算机存储领域的热门技术就是网络存储技术,它关注的是如何在网络上向其他节点提供数据流服务。基于网络存储,又使得很多其他相关技术得以推广和应用,比如IT系统容灾技术等。

提示: 在第16章将用较长的篇幅来详细讲述IT系统容灾技术。

不管怎样,所有这些复杂的技术,最终都是给人来用的,“科技以人为本”。我们毕竟不是为了无聊而发明计算机,任何我们发明的东西,最终都将为我们所用。任何一种新技术的出现,都是针对某种需求而生,所以必须深刻理解计算机系统,同时,还要理解和挖掘人类自身越来越高、越来越不可思议的需求,只有做到这个层次,才能更加深刻地理解计算机系统和人类自身。

可以看到,存储领域是个包罗万象的领域,如果不了解计算机系统,想掌握存储技术是很难的。本书将带领大家走入计算机存储领域,深入体会各种存储技术,为读者打下一个坚实的基础,从而在以后的工作及学习过程中能够得心应手、触类旁通,这也是作者的最终目的。 y058nsk42Vb37jxIwo73cy9fEYbg3GztVzG/cWWVpnq/KVXiGyKxiathOutIoMVM

点击中间区域
呼出菜单
上一章
目录
下一章
×