在1991年,我刚接触计算机的时候,很多计算机还没有硬盘。整个操作系统都安装在5⼨或者3.5寸的软盘里。不过,很快⼤部分计算机都开始⽤上了直接安装在主板上的机械硬盘。
到了今天,更早的软盘早已经被淘汰了。在个人电脑和服务器里,更晚出现的光盘也已经很少用了。
机械硬盘的生命力仍然非常顽强。无论是作为个人电脑的数据盘,还是在数据中心里面用作海量数据的存储,机械硬盘仍然在被大量使用。不仅如此,
随着成本的不断下降,机械硬盘还替代掉了很多传统的存储设备,比如,以前常常⽤来备份冷数据的磁带。
那这一讲里,我们就从机械硬盘的物理构造开始,从原理到应用剖析一下,看看我们可以怎么样用好机械硬盘。
一、拆解机械硬盘
1、盘面
1、定义
2、材质
3、数据存储在哪里
4、什么控制盘面旋转
5、硬盘购买指标
2、磁头
1、磁头的作用
2、一个片面上通常有几个磁头?
3、一块硬盘有多少个盘面?
3、悬臂
1、从原理方面
2、盘面像什么?
4、数据是怎么存到盘片上
我们刚才说的一个磁道,会分成一个一个扇区(Sector)
上下平行的一个一个盘面的相同扇区呢,我们叫作一个柱面(Cylinder)
1、步骤一
2、步骤二
3、平均延时
4、平均寻道时间
二、PartialStroking:根据场景提升性能
1、缩短行程
2、缩短行程
最极端的情况是不寻道
只用1/2或者1/4的磁道
3、在当时那个更划算
软件层面
硬件层面
结论
在2000-2010年这10年间,正是这些奇思妙想,让海量数据下的互联网蓬勃发展起来的。在没有SSD的硬盘的时候,聪明的工程师们从硬件到软件,
设计了各种有意思的方案解决了我们遇到的各类性能问题。而对于计算机底层知识的深入了解,也是能够找到这些解决办法的核心因素。
总结延伸
好了,相信通过这一讲,你对传统的HDD硬盘应该有了深入的了解。我们来总结一下。
机械硬盘的硬件,主要由盘面、磁头和悬臂三部分组成。我们的数据在盘面上的位置,可以通过磁道、扇区和柱面来定位。实际的一次对于硬盘的访问,
需要把盘面旋转到某一个“几何扇区”,对准悬臂的位置。然后,悬臂通过寻道,把磁头放到我们实际要读取的扇区上。
受制于机械硬盘的结构,我们对于随机数据的访问速度,就要包含旋转盘⾯的平均延时和移动悬臂的寻道时间。通过这两个时间,我们能计算出机械硬盘的IOPS。
7200转机械硬盘的IOPS,只能做到100左右。在互联网时代的早期,我们也没有SSD硬盘可以用,所以工程师们就想出了Partial Stroking这个浪费存储空间,
但是可以缩短寻道时间来提升硬盘的IOPS的解决方案。这个解决方案,也是一个典型的、在深入理解了硬件原理之后的软件优化⽅案。