本节书摘来异步社区《信息存储与管理(第二版):数字信息的存储、管理和保护》一书中的第2章,第2.6节,作者:【新加坡】G.Somasundaram ,【美】Alok Shrivastava,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.6 磁盘驱动部件
信息存储与管理(第二版):数字信息的存储、管理和保护
磁盘的核心部件包括盘片、主轴、读写头、驱动臂装置以及控制器(如图2-5所示)。
磁盘驱动器通过在磁性盘片上快速地移动读写臂来读写数据。数据通过读写臂的读写头在磁盘控制器和磁性盘片之间传输。数据可以重复地记录在磁盘上或从磁盘中擦除。下面各节将详细介绍磁盘的各个不同的部件,磁盘组织数据和存储数据的机制,以及影响磁盘性能的因素。
2.6.1 盘片
一个典型的硬盘包含一个或多个扁的、圆形的金属盘,称作盘片(如图2-6所示)。数据就是以二进制代码(0或1)的形式记录在这些盘片上。将一组可旋转的盘片封装在一个盒子里,就形成了一个磁头磁盘组合件(Head Disk Assembly,HDA)。一个盘片是一个双面(上、下)镀上磁性物理材料的刚性、圆形金属盘。在盘片上的数据是通过在磁盘表面分布极性不同的磁性区域来编码的。数据在盘的上下两面都可以进行读写。盘片的个数以及每个盘片的存储容量决定了磁盘的总容量。
2.6.2 主轴
如图2-6所示,一根主轴固定了所有的盘片,并和一个马达相连。主轴的马达是以恒速旋转的。
磁盘盘片以几千转每分(revolution per minute,rpm)的速度旋转。按转速来划分,磁盘有5 400rpm、7 200rpm、10 000rpm和15 000rpm这几种。盘片的速度随着科技的进步仍然在提高,尽管提高的空间有限。
2.6.3 读写头
如图2-7所示,读写头在盘片上读写数据。磁盘的每个盘片上都有2个读写头,上下两面各一个。读写头在盘片上写数据的时候会改变盘片表面的磁极。当读数据时,读写头会探测盘片表面的磁极。在进行读写操作时,读写头能够感知磁极并与盘片表面保持距离(不与盘片接触)。当主轴旋转时,读写头和盘片之间有一个微小的间隙,叫做磁头飞行高度(Head Flying Height)。当主轴停止旋转后,读写头将停留在盘片上位于主轴附近的一个特定的区域,此时间隙就会消失。这个特定区域就叫着陆区(Landing Zone)。着陆区的表面有一层润滑剂,以减小磁头和盘片之间的摩擦。
磁盘上的逻辑电路保证了读写头在接触盘面之前先移动到着陆区。如果驱动装置出现了故障,读写头意外地接触到了着陆区之外的盘片表面,就会导致磁头瘫痪(Head Crash)。磁头瘫痪一旦发生,盘片表面的磁性物质就会被划破,也会损坏读写头。磁头瘫痪通常会导致数据的丢失。
2.6.4 驱动臂装置
读写头是安装在驱动臂装置上的(如图2-7所示)。它将读写头移动到盘片上需要读写数据的位置。磁盘上所有盘片的读写头都连接到同一个驱动臂装置上,并可以同时在盘片上移动位置。
2.6.5 控制器
控制器(如图2-5(b)所示)是一块印刷电路板,安装在磁盘的底部。它包含一个微处理器、内部存储、电路以及固件。固件控制着主轴马达的电源和马达的转速,还负责管理磁盘和主机之间的通信。此外,它还控制驱动装置移动驱动臂,并切换不同读写头来控制读写操作,还能够对数据访问进行优化处理。
2.6.6 物理磁盘的结构
磁盘上的数据是记录在磁道(Track)上的。磁道是盘面上以主轴为圆心的一组同心环,如图2-8所示。磁道从外向内依次被编号,最外面磁道的编号为0。盘面上每英寸磁道数(tracks per inch,TPI)或者说磁道密度(Track Densitytrack density),是衡量一个盘面上划分磁道紧密程度的度量标准。
每个磁道都被划分为更小的单元,称作扇区(Sector)。一个扇区是存储系统中可单独被寻址的最小单位。磁道和扇区的结构已经被磁盘生产商低级格式化到盘面上了。对于不同的磁盘,每个磁道包含的扇区个数也不相同。最早的个人电脑磁盘,每个磁道上只有17个扇区,但最近的磁盘上单个磁道都拥有非常多的扇区。一个盘面可以容纳几千个磁道,这取决于盘片的物理面积以及记录密度。
通常一个扇区的容量是512字节,尽管有些磁盘可以将扇区格式化为更大的容量。除了存储用户数据,扇区里还需要存储一些其他的信息,比如扇区号、磁头号或盘面号、磁道号等。这些信息能够帮助控制器在磁盘上定位数据。
所有盘面上相同位置处的磁道所组成的存储区域称为一个柱面(Cylinder)。磁头的位置是由柱面号来表示的,而不是磁道号。
磁盘标称容量与可用容量
一块磁盘的标称容量和可用容量是不同的。例如,一块宣称容量为500 GB的磁盘实际上只有465.7 GB的空间可用于存储用户数据。造成这个差别的原因是硬盘制造商以10为单位计算硬盘容量。这意味着1个千字节(kilobyte)等于1000个字节(byte),而非1024个字节;因此硬盘的可用容量总是少于标称容量。
2.6.7 分区位记录
由于盘片是由具有相同圆心的磁道组成的,外面的磁道的周长肯定比里面的磁道长,所以外面的磁道必然能存储更多的数据。在过去的磁盘中,外磁道与内磁道所包含的扇区个数相同,所以外磁道的数据密度相对较低,盘面的空间利用率也较低(如图2-9(a)所示)。
分区位记录(Zoned Bit Recording)能够高效地利用磁盘空间。如图2-9(b)所示,该机制根据磁道与磁盘中心的距离将它们划分成若干个区域。这些区域从最外面起进行编号,最外面的区号是0。每个区域上的磁道都被分配了适当数目的扇区:靠近中心的区域,磁道中所含的扇区要少一些;而外面的区域,磁道所包含的扇区数则要多一些。但是,每个指定的区域内所有磁道上的扇区个数都是相同的。
离盘片中心越近的区域,数据传输速率越低。因此对性能要求高的应用程序,应该将它们的数据存放在盘片靠外的区域中。
2.6.8 逻辑块寻址
早期的磁盘利用物理地址,包含了柱面(Cylinder)、磁头(Head)和扇区(Sector)的编号,称为CHS编号,在磁盘上进行定位,如图2-10(a)所示。主机操作系统必须知道每个正在使用的磁盘的几何结构。而逻辑块寻址(Logical Block Address,LBA)则使用线性地址访问物理块的数据,从而大大简化了寻址过程,如图2-10(b)所示。磁盘控制器将LBA地址转换为CHS地址,主机操作系统只需要知道磁盘有多少个物理块就行了。逻辑块与物理块(扇区)之间的映射是1∶1的。
在图2-10(b)中,磁盘的每个磁道上有8个扇区,共有8个磁头和4个柱面。也就是说一共有8×8×4=256个物理块,物理块的编号从0到255。每个物理块有唯一的地址。假设每个扇区(物理块)的容量是512字节,那么一块500GB的磁盘,格式化后容量为465.7GB,有超过976 000 000个物理块。