该文内容主要来自《鸟叔的Linux私房菜》
1、磁盘组成
磁盘由许多的圆形碟片、机械手臂、磁头与主轴马达组成。
1)圆形的碟片(主要记录数据的部分)
2)机械手臂,与在机械手臂上的磁头(可擦写碟片上的数据);
3)主轴马达,可以转动碟片,让机械手臂的磁头在碟片上读写数据;
实际运行时,主轴马达让碟片转动,然后机械手臂可伸展让磁头在碟片上进行读写操作。另外,由于单一碟片容量有限,因此有的硬盘内部会有两个以上的碟片。
2、碟片上的数据
数据都是写入碟片上,碟片转动让机械手臂读写,因此数据写入事以圆圈转圈的方式读写。在类型碟片同心圆上面切出一个一个的小区块,这些小区块整合成一个圆形,让机器手臂的磁头去读写。这个小区块就是磁盘的最小物理存储单位,称之为扇区,同一个同心圆的扇区组合成的圆就是所谓的磁道。由于磁盘里面可能会有多个碟片,因此在所有碟片上面的同一个磁道可以组合成所谓的柱面。同心圆外圈的圆比较大,占用的面积比内圈多,所以为了合理的利用这些空间,外围的圆会具有更多的扇区。此外,外圈的扇区数量比较多,因此如果数据写入在外圈,转一圈能够读写的数据量当然比内圈还要多。因此通常数据的读写会由外圈开始往内写,这是默认方式。另外,原本的磁盘的扇区为512B,但由于硬盘容量越来越大,为了减少数据量的拆解,所以绝大部分开始使用4KB大小的扇区设计。也因为扇区的设计不同,在磁盘分区方面,MBR以及GPT另种方式,早期的分区主要以柱面为最小分区单位,现在分区通常使用扇区为最小分区单位(每个扇区都有号码)
3、传输接口
为了提升磁盘的传输速度,磁盘与主板的连接接口也经过多次改良,因此有许多不同的接口。传统的磁盘接口包括有SATA、SAS、IDE与SCSI等,若考虑外接式磁盘,那还包括USB,eSATA等。目前IDE已经被SATA替代,而SCSI则被SAS替代。
1)SATA接口
SATA连接线比较窄小,所以原本的IDE粗排线接口已被SATA所取代,SATA一条连接线只接一块硬盘。主板上面的SATA插槽数量并不是固定的,且每个插槽都有编号,在连接SATA硬盘与主板的时候,需要注意。另外SATA版本已经到了第三代,其传输速度为:SATA1.0(带宽:1.5Gbit/s 速度:150MB/s),SATA2.0(带宽:3Gbit/s 速度:300MB/s),SATA3.0(带宽:6Gbit/s 速度:600MB/s),当传输10位的编码是,8位为数据,2位为校验,所有带宽的计算上,为1B=10bits。另外,虽然SATA3.0理论上可以达到600MB/s的传输速度,但是由于传统硬盘其物理组成的限制,一般极限速度在150~200MB/s之间。
2)SAS接口
早期的工作站或大型电脑上面,为了读写速度和稳定性,大多使用的SCSI接口,但是SCSI接口的速度后来被SATA打败,但其还具有值得开发的功能,所以后来就有串行式SCSI(SAS)接口的发展,它比SATA快,而且连接的SAS硬盘的碟片转速与传输的速度都比SATA硬盘好。只是比较贵,又因为一般个人电脑的主板上面通常没有内置的SAS接口,得通过外接转接卡,所以一般个人电脑还是以SATA接口为主。
3)USB接口
传统的USB2.0又大约60MB/s的理论传输率,但通常在主板上面的连接口,仅有30~40MB/s的传输速度,USB2.0读写速度大约在4~10MB/s。而USB3.0读写速度大约在100MB/s.
4、固态硬盘(Solid State Disk,SSD)
传统硬盘有个致命问题,当使用驱动马达去转动碟片,会造成很严重的磁盘读取延迟,因为首先需要知道数据在哪个扇区中,然后再让马达开始转,之后再让磁头去读取正确的数据。另外,如果数据位置比较离散,读写速度就会延迟更明显。所以开始有厂商拿闪存去制作高容量设备,这些设备的连接接口也使用的SATA或SAS,外型和传统磁盘一样。为了区分机械硬盘(HDD),就称之为固态硬盘。
SSD好处在于,没有马达不需要转动,通过闪存直接读写的特性,所以不仅没数据延迟且快速外,还很省电。早期的SSD由于闪存写入次数的限制,大概能用两年,现在大概能用五、六年。
5、其他
1)缓冲存储器(缓存)
硬盘上面含有一个缓冲存储器,这个内存主要是讲硬盘内尝试用的数据缓存起来,加速系统读写性能。通常缓存越大越好,因为相比从碟片中找数据要快得多。目前主流的产品可大64MB左右的大小
2)转速
硬盘主要通过主轴马达转动碟片来读写数据,因此转速的快慢会影响性能。主流的桌面电脑硬盘为每分钟7200转,笔记本电脑则为每分钟5400转。