16340106
[SDCS] http://sdcs.sysu.edu.cn/
目录
简介
最近在进行文件系统的学习,想写一些有帮助的记录,辅助学习。考虑到文件系统是基于磁盘的,因此顺带把磁盘原理的知识也做个总结。
硬盘发展史
1956年9月13日,IBM的IBM 350 RAMAC(Random Access Method of Accounting and Control)是现代硬盘的雏形,整个硬盘需要50个直径为24英寸表面涂有磁浆的盘片,它相当于两个冰箱的体积,不过其存储容量只有5MB。
1971年,IBM开始采用一种名叫Merlin的技术生产硬盘,这种技术据称能使硬盘头更好地在盘片上索引。
1973年,IBM 3340问世,主流采用采用红色。这个大家伙每平方英寸存储1.7MB的数据,在当时已经创了一个纪录。许多公司共享这些系统,需要时按照时间和存储空间租用它。租赁价值为7.81美元每兆,这个价格比当时汽油的价格还贵38%。它拥有“温彻斯特”这个绰号,也就是我们现在所熟知的“温氏架构”。来源于它两个30MB的存储单元,恰好是当时出名的“温彻斯特来福枪”的口径和填弹量。至此,硬盘的基本架构被确立。
1979年,IBM发明了Thin Film磁头,使硬盘的数据定位更加准确,因此使得硬盘的密度大幅提升。
1980年,两位前IBM员工创立的公司开发出5.25英寸规格的5MB硬盘,这是首款面向台式机的产品,而该公司正是希捷公司(Seagate)公司。
1982年,日立发布了全球首款容量超过1GB的硬盘。这就是容量为1.2GB的H-8598硬盘。这块硬盘拥有10片14英寸盘片,两个读写磁头。
1980年代末,IBM推出MR(Magneto Resistive磁阻)技术令磁头灵敏度大大提升,使盘片的存储密度较之前的20Mbpsi(bit/每平方英寸)提高了数十倍,该技术为硬盘容量的巨大提升奠定了基础。1991年,IBM应用该技术推出了首款3.5英寸的1GB硬盘。
1970年到1991年,硬盘碟片的存储密度以每年25%~30%的速度增长;从1991年开始增长到60%~80%;至今,速度提升到100%甚至是200%。从1997年开始的惊人速度提升得益于IBM的GMR(Giant Magneto Resistive,巨磁阻)技术,它使磁头灵敏度进一步提升,进而提高了存储密度。
1993年,康诺(Conner Peripherals)推出了CP30344硬盘容量是340MB。
1995年,为了配合Intel的LX芯片组,昆腾与Intel携手发布UDMA 33接口—EIDE标准将原来接口数据传输率从16.6MB/s提升到了33MB/s。同年,希捷开发出液态轴承(FDB,Fluid Dynamic Bearing)马达。所谓的FDB就是指将陀螺仪上的技术引进到硬盘生产中,用厚度相当于头发直径十分之一的油膜取代金属轴承,减轻了硬盘噪音与发热量。
1996年,希捷收购康诺(Conner Peripherals)
1998年2月,UDMA 66规格面世。
2000年10月,迈拓(Maxtor)收购昆腾。
2003年1月,日立宣布完成20.5亿美元的收购IBM硬盘事业部计划,并成立日立环球存储科技公司(Hitachi Global StorageTechnologies, Hitachi GST)。
2005年日立环储和希捷都宣布了将开始大量采用磁盘垂直写入技术(perpendicular recording),该原理是将平行于盘片的磁场方向改变为垂直(90度),更充分地利用的存储空间。
2005年12月21日,希捷宣布收购迈拓(Maxtor)。
2007年1月,日立环球存储科技宣布将会发售全球首只1Terabyte的硬盘,比原先的预定时间迟了一年多。硬盘的售价为399美元,平均每美分可以购得27.5MB硬盘空间。
2011年3月,西部数据以43亿美元的价格,收购日立环球存储科技。
2011年4月,希捷宣布与三星强化策略伙伴关系。
硬盘结构
现在市面上常见的硬盘主要分为HDD和SSD两种。其中SSD是近几年发展起来的一种高速硬盘,其内部原理和传统的HDD区别很大,我们将分开讲解。
HDD(Hard Disk Drive)硬盘
HDD硬盘,即为我们所熟悉的机械硬盘。
硬盘主要由盘体、控制电路板和接口部件组成。盘体就是一个密封,封装了多个盘片的腔体;控制电路包含硬盘BIOS,主控芯片和硬盘缓存等单元;接口部件包含电源、数据接口主从跳线等。
硬盘的盘片一般采用合金材料,多数为铝合金(IBM曾经开发过玻璃材质的盘片,好像现在有些厂家也生产玻璃材质的盘片,但不多见),盘面上涂着磁性材料,厚度一般在0.5mm左右。有些硬盘只装一张盘片,有些则有多张。硬盘盘片安装在主轴电机的转轴上,在主轴电机的带动下作高速旋转。每张盘片的容量称为单碟容量,而一块硬盘的总容量就是所有盘片容量的总和。早期硬盘由于单碟容量低,所以盘片较多。现代的硬盘盘片一般只有少数几片。 盘片上的记录密度很大,而且盘片工作时会高速旋转,为保证其工作的稳定,数据保存的长久,所以硬片都是密封在硬盘内部。不可自行拆卸硬盘,在普通环境下空气中的灰尘、指纹、头发丝等细小杂质都会对硬盘造成永久损害。
接下来对机械硬盘的一些名词解释。
盘面
硬盘一般会有一个或多个盘片,每个盘片可以有两个面(Side),即第1个盘片的正面称为0面,反面称为1面;第2个盘片的正面称为2面,反面称为3面…依次类推。每个盘面对应一个磁头(head)用于读写数据。第一个盘面的正面的磁头称为0磁头,背面称为1磁头;第二个盘片正面的磁头称为2磁头,背面称为3磁头,以此类推。盘面数和磁头数是相等的。
一张单面的盘片需要一个磁头,双面的盘片则需要两个磁头。硬盘采用高精度、轻型磁头驱动和定位系统。这种系统能使磁头在盘面上快速移动,读写硬盘时,磁头依靠磁盘的高速旋转引起的空气动力效应悬浮在盘面上,与盘面的距离不到1微米(约为头发直径的百分之一),可以在极短的时间内精确定位到计算机指令指定的磁道上。
早期由于定位系统限制,磁头传动臂只能在盘片的内外磁道之间移动。因此,不管开机还是关机,磁头总在盘片上。所不同的是,关机时磁头停留在盘片启停区,开机时磁头“飞行”在磁盘片上方。
磁道
每个盘片的每个盘面被划分成多个狭窄的同心圆环,数据就是存储在这样的同心圆环上,我们将这样的圆环称为磁道(Track),每个盘面可以划分多个磁道。关机时磁头停留在硬盘的着陆区(Landing Zone),这个着陆区以前是位于离盘心最近的区域,不存放任何数据。在后期的硬盘工艺中有些硬盘生产厂商将这个区域被移动到了盘片的外面,如下所示:
在每个盘面的最外圈,离盘心最远的地方是“0”磁道,向盘心方向依次增长为1磁道,2磁道,等等。硬盘数据的存放就是从最外圈开始。
扇区
根据硬盘规格的不同,磁道数可以从几百到成千上万不等。每个磁道上可以存储数KB的数据,但计算机并不需要一次读写这么多数据。在这一这基础上,又把每个磁道划分成若干弧段,每段称为一个扇区(Sector)。扇区是硬盘上存储的物理单位,每个扇区可存储128×2N次方(N=0,1,2,3)字节的数据。从DOS时代起,每扇区是128×22=512字节,现在已经成了业界不成文的规定,也没有哪个硬盘厂商试图去改变这种约定。也就是说即使计算机只需要硬盘上存储的某个字节,也须一次把这个字节所在的扇区中的全部512字节读入内存,再选择所需的那个字节。扇区的编号是从1开始,而不是0,这一点需要注意。另外,硬盘在划分扇区时,和软盘是有一定区别的。软盘的一个磁道中,扇区号一般依次编排,如1号,2号,3号…以此类推。但在硬盘磁道中,扇区号是按照某个间隔跳跃着编排。比如,2号扇区并不是1号扇区后的按顺序的第一个而是第八个,3号扇区又是2号扇区后的按顺序的第八个,依此类推,这个“八”称为交叉因子。
这个交叉因子的来历有必要详述一下,我们知道,数据读取经常需要按顺序读取一系列相邻的扇区(逻辑数据相邻)。如对磁道扇区按物理顺序进行编号,很有可能出现当磁头读取完第一个扇区后,由于盘片转速过快来不及读取下一个扇区,(要知道物理相邻扇区位置距离是极小的),必须等待转完一圈,这极大浪费了时间。所以就用交叉来解决这个问题。增加了交叉因子后的扇区编号一般是下面这个样子:
柱面
柱面其实是我们抽象出来的一个逻辑概念,前面说过,离盘心最远的磁道为0磁道,依此往里为1磁道,2磁道,3磁道….,不同面上相同磁道编号则组成了一个圆柱面,即所称的柱面(Cylinder)。这里要注意,硬盘数据的读写是按柱面进行,即磁头读写数据时首先在同一柱面内从0磁头开始进行操作,依次向下在同一柱面的不同盘面(即磁头上)进行操作,只有在同一柱面所有的磁头全部读写完毕后磁头才转移到下一柱面,因为选取磁头只需通过电子切换即可,而选取柱面则必须通过机械切换。电子切换比从在机械上磁头向邻近磁道移动快得多。因此,数据的读写按柱面进行,而不按盘面进行。 读写数据都是按照这种方式进行,尽可能提高了硬盘读写效率。
簇
将物理相邻的若干个扇区称为了一个簇。操作系统读写磁盘的基本单位是扇区,而文件系统的基本单位是簇(Cluster)。在Windows下,随便找个几字节的文件,在其上面点击鼠标右键选择属性,看看实际大小与占用空间两项内容,如大小:15 字节 (15 字节), 占用空间:4.00 KB (4,096 字节)。这里的占用空间就是你机器分区的簇大小,因为再小的文件都会占用空间,逻辑基本单位是4K,所以都会占用4K。 簇一般有这几类大小 4K,8K,16K,32K,64K等。簇越大存储性能越好,但空间浪费严重。簇越小性能相对越低,但空间利用率高。NTFS格式的文件系统簇的大小为4K。
SSD(Solid State Disk) 固态硬盘
讲到固态硬盘,不得不提的是我们日常所熟悉的一种迷你的存储设备——u盘。
U盘的存储原理大家都很清楚,它使用的是一种叫做flash闪存的技术,其优点便是读取速度和写入速度都较快,并且远远超过传统的外存设备。
固态硬盘其实使用的就是这种技术来提升速度,因此我们可以把它当成是许许多多u盘组成的RAID。
(看到了吧,就是这么一块小东西价格却比HDD不知道高到哪里去了。)
文件系统(File System)
文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
我们所熟悉的文件系统主要有FAT16,FAT32,NTFS,EXT,exFAT,UFS等。
其中,我的学习方向目前是FAT32。
(其实我什么都不懂)
e=m×c2
到此结束了,谢谢阅读。
- 百度百科是由互联网公司百度创新推出的应用 ↩