硬盘基础

来源:互联网 发布:mac上的网络游戏 编辑:程序博客网 时间:2024/04/30 03:27

本文大部分知识来源于 清华大学出版社出版,马林编著的《数据重现-文件系统原理精解与数据恢复最佳实践》


目前存储方式基本分为磁存储、电存储和光存储。U盘及各种存储卡属于电存储;VCD,DVD盘等属于光存储方式;而硬盘属于磁存储。自1968年,IBM发明Winchester技术以后,硬盘的机械存储结构基本没变过,即密封、固定并高速旋转的镀磁盘片,磁头沿盘片径向移动,磁头悬浮在高速旋转的盘片上方而不与盘片接触。

硬盘的基本组成

  • 磁道:磁盘上形成的同心圆叫做磁道。
  • 扇区:磁盘上的每个磁道被等分为若干个弧段,这些弧段便是扇区。扇区是磁盘读写的单位。
  • 柱面:硬盘通常由重叠的一组磁盘组成,在这些磁盘上由半径相同的所有磁道组成的圆柱,称为柱面。硬盘上数据的存取是沿柱面进行的,即在一个柱面内依次从低号盘片向高号盘片写入,写满一个柱面后再转到下一个柱面。
  • 磁头:硬盘由很多盘片组成,每个盘片的上下两面都有一个磁头进行存取。

当读取/写入数据时,首先移动硬盘的磁头至某个磁道,即首先定位柱面;然后旋转盘片至相应的扇区;最后选择某个磁头进行操作。

硬盘的性能指标
  • 转速(Revolutions Per Minute):指硬盘主轴电机的转动速度,一般以每分钟多少转来表示(rpm),目前的最高转速可达15000 rpm。硬盘的转速决定了移动磁头至扇区所需要的时间,一般以ms为单位,如7200RPM时约为4.167ms,5400RPM时约为5.556ms。
  • 平均寻道时间(Average Seek Time):指移动磁头至指定磁道所需的平均时间,一般是ms。除了平均寻道时间外,还有道间寻道时间(Track to Track或Cylinder Switch Time)与全程寻道时间(Full Track或Full Stroke),前者是指磁头从当前磁道上方移至相邻磁道上方所需的时间,后者是指磁头从最外(或最内)圈磁道上方移至最内(或最外)圈磁道上方所需的时间,基本上比平均寻道时间多一倍。
  • 数据传输率(DTR, Data Transfer Rate):DTR分为最大(Maximum)与持续(Sustained)两个指标,根据数据交接方的不同又分外部与内部数据传输率。内部DTR是指磁头与缓冲区之间的数据传输率,外部DTR是指缓冲区与主机(即内存)之间的数据传输率。外部DTR上限取决于硬盘的接口,目前流行的Ultra ATA-100接口即代表外部DTR最高理论值可达100MB/s,持续DTR则要看内部持续DTR的水平。内部DTR则是硬盘的真正数据传输能力,为充分发挥内部DTR,外部DTR理论值都会比内部DTR高,但内部DTR决定了外部DTR的实际表现。由于磁盘中最外圈的磁道最长,可以让磁头在单位时间内比内圈的磁道划过更多的扇区,所以磁头在最外圈时内部DTR最大,在最内圈时内部DTR最小。 DTR单位为MB/s。
  • IOPS:IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。随机读写频繁的应用,IOPS是关键衡量指标
    IOPS(每秒IO次数) = 1s/(寻道时间+旋转延迟+数据传输时间)
假设磁盘平均物理寻道时间为3ms, 磁盘转速为7200,10K,15Krpm,则磁盘IOPS理论最大值分别为:
IOPS = 1000 / (3 + 60000/7200/2)  = 140
IOPS = 1000 / (3 + 60000/10000/2) = 167
IOPS = 1000 / (3 + 60000/15000/2) = 200
  • 数据吞吐量(Throughput),指单位时间内可以成功传输的数据数量。对于大量顺序读写的应用,如VOD(Video On Demand),则更关注吞吐量指标。
硬盘接口
  • IDE接口分为UDMA/33, UDMA/66, UDMA/100, UDMA/133, Ultra DMA采用总线控制方式,在硬盘上有直接内存通道控制器,可大大降低硬盘在读写时对CPU的占用率。受限于IDE接口的局限,IDE硬盘速度的提高已趋于极限。
  • SATA接口是一种串行总线,相比IDE的并行总线,由于减少了线路间的信号干扰,使速度大为提高。SATA 1.0达到150 MB/s, 2.0/3.0更可提升至300 MB/s和600 MB/s.
  • SCSI接口有三种:分别是50针、68针和80针,硬盘上分别标有N, W和SCA。SCSI硬盘的最高转速已达15000转/分,平均寻道时间大幅缩短,数据传输率有了很大的提高。尤为关键的是SCSI盘的CPU占用率进学低,在5%左右。
  • SAS接口是SCSI接口之后开发出的全新接口,提供与SATA硬盘的兼容性,即兼容物理层和协议层协议。从接口标准上而言,SATA是SAS的一个子标准,因此SAS控制器可以直接操控SATA硬盘。SAS 1.0传输速率达3 Gbps, 2.0/3.0达到6 Gbps和12 Gbps.
  • IEEE 1394并不是硬盘专用接口,可以连接包括硬盘在内的63个不同设备,并支持即插即用和热插拔。可以提供100 MB/s, 400 MB/s, 1.2 GB/s.
硬盘分区
要想使用硬盘,首先要对其进行分区,划分成一定的逻辑区域,然后通过对分区进行格式化建立相应的文件系统。系统通过记录在分区表中的分区信息对各个分区进行识别与管理,此外,因使用环境不同,分区的管理方式也会有不同,如DOS分区体系、Apple分区体系、BSD分区体系。

(1). DOS分区体系,DOS分区是我们最常见的分区类型,也称为MBR分区,同时也是Intel IA32硬件平台的分区体系。
  • 磁盘的第一个扇区记录系统的主引导记录(MBR),其中保存着64 B的主分区表和446 B的引导代码。
  • 主分区表最多记录4个分区信息,这些分区可以是主分区,也可以是扩展分区。主分区中不能建立其它逻辑磁盘,而扩展分区中可以包含其它的分区表,其中的分区称为逻辑分区。所以扩展分区的主要作用就是突破MBR中最多只能支持4个分区的限制。
(2). GPT (GUID Partition Table)分区,是Windows Server 2003中引入的一种新型磁盘架构,是一种基于Itanium计算机中的可扩展固件接口(EFI)使用的磁盘分区架构。
  • 允许每个磁盘有多达128个分区( MBR磁盘最多只能有4个主分区,或3个主分区加一个扩展分区和无限制的逻辑驱动器 )。
  • 支持高达18EB的卷大小 (MBR磁盘支持的最大卷为2TB)。
  • 支持唯一的磁盘和分区ID.
在“磁盘管理”中的磁盘属性对话框中的“卷”选项卡上,使用GPT分区的磁盘显示为GUID分区表磁盘,而使用MBR分区的磁盘则显示为主启动记录磁盘。

MBR和2TB限制
在Windows下建立基本磁盘时,是以分区(Partition)为存储于管理单位的,但受到寻址能力的问题,MBR的上限为2TB,若实际物理磁盘容量大于2TB,必须分割为多个分区,这对目前只有1个硬盘的用户没啥影响,但阵列用户就会遇到问题了。
之后,微软在WIN2000下首次加入了动态磁盘(Dynamic disks)的概念,提供了基本磁盘没有的功能。动态磁盘是以磁盘区(Volume)为管理单位,通过系统磁盘管理器,我们可以建立跨越多个物理硬盘的磁盘区,还能建立容错能力的磁盘分区,如RAID 1和RAID 5。动态磁盘虽然能解决2TB容量限制问题,但必须透过Volume来管理,当中经过系统磁盘管理和文件系统2层处理,在易用性和性能上不是很理想。
最后,微软在Windows Server 2003系统下首次支持了GPT,GPT也是以分区(Partition)为存储于管理单位的,但寻址能力大幅提高,可以支持到18EB容量。在实际运用中,操作系统支持GPT而突破2TB限制只是其中一个必要条件,还需要看主板或者阵列卡控制器的寻址能力和支持大于64LBA的驱动程序。

以下任何一个都是影响到存储容量:
  • 不同操作系统支持的分区体系造成分区容量限制不同:MBR为2TB,GPT为18EB.
  • 不同文件系统支持的分区容量限制不同,FAT16为2GB,FAT32为2TB,NTFS为18EB.
  • 存储设备的驱动程序上,最早的IDE只支持CHS,所以上限为512M,后来支持LBA28位,所以支持到137GB,现在新的SATA、SCSI和SAS支持为LBA48位,也就是到137TB。
推荐阅读
  • 磁盘IOPS计算与测量
  • 硬盘工作原理
  • 硬盘工作时的内部运行状态
  • 百度硬盘

原创粉丝点击