【福利】三大运营商大流量套餐卡免费领取, 不限速,超低价,快递包邮🛍️ | 🎉专享福利!网购 §淘宝【内部羊毛】§ 大牌捡漏!每日更新🎉 |
【资源】🎉每日更新!【精品资源】+安卓、电视TV优质VIP优化版软件,免费下载!🎉 | |
这是少数派与国民好物 aigo 联合推出的信息储存设备的科普系列文章。作为国内早期的存储设备制造商及佼佼者,感谢 aigo 对本文提供的一系列支持,包括但不限于技术知识指导、市场难寻的老物件以及作者用于拆解介绍的最新产品等。
我们希望通过最简洁通俗的描述,带领大家了解信息储存设备的基本原理,知道那些复杂的参数,如何挑选购买适合自己的存储设备,又是如何更好地使用,更安全稳定地保存我们的数据,以及未来我们能够用上什么技术。 另本系列虽然与 aigo 联合发起,但所有内容不涉及任何品牌指导或要求的商业营销。
上一章我们了解到了储存设备发展的历史,认识到了人类是如何努力提升数据存储的量级与速度,我们在本篇介绍的机械硬盘的诞生,也离不开以前储存设备打下的基础。
说起储存设备,大部分人脑海中第一个闪现的估计都是机械硬盘,大部分人估计都没有想到,直到今年(2021)机械硬盘已经被人们使用大半个世纪(65 年,IBM 1956.09),即使现在固态硬盘已经普及多年,机械硬盘仍然是我们储存数据的主力。
最初的机械硬盘
本章节就为大家来讲解我们以前很常使用,现在依然有很多人在使用的机械硬盘(HDD),了解它是如何诞生的,如何为我们工作,如何快速安全地保存大容量数据,常见的那些参数又是什么意思。为接下来的机械硬盘选购和使用指南奠定一个基础。
■ 机械硬盘的历史
机械硬盘正式被使用,应该是 1956 年 IBM 的 305 RAMAC:
IBM 305 RAMAC,就是上面那张图的完整体,图片来源:ed-thelen.org
它的体积十分庞大,基本就跟现在的双开门冰箱差不多,一吨+ 的重量容量只有 5MB 左右(据 IBM 自己的介绍,数据容量并不是不能加大,只是当时这个数据已经算是巨量,再大的话也没人买)。
IBM 还制作了它的宣传片
有了这个基础,接下来几个关键的技术都是由 IBM 或者它的员工自己创业(比如希捷 Seagate 就是 IBM 前员工创立的公司)后推出的,比如我们下面会提到的各种 MR 技术和各种尺寸的硬盘。
其实从原理上讲,我们现在日常使用的机械硬盘原理和 RAMAC 差不多,结构更是直接与 IBM 后来推出的 3340 一样,只不过利用新技术将盘片密度和磁头灵敏度做到了极致从而把体积缩小。
IBM 3340 就是现代机械硬盘的结构
IBM 3340 革新的点在于,它创新性地利用磁盘旋转产生的空气浮力,让磁头悬浮于盘片之上,从而避免了磁头对盘片的摩擦损耗,盘片也能实现更高速度的旋转从而提升读写速度。
IBM3340 有两个 30MB 的储存单元,不知道为啥跟另一个毫不相关的领域 —— .30-30 温切斯特步枪弹(美国人叫 Thirty-Thirty,前一个是口径后,一个是发射药重量,单位是格令 Krag)关联上了,然后大家都叫他温切斯特硬盘(搞不懂搞不懂~)。
温切斯特步枪弹,大概是第 2 个,图片来源:winchester.com
我们现在使用的所有机械硬盘其实跟 IBM 3340 没有任何本质上的区别,只是新技术带来的容量和速度提升而已,于是大家又把现代机械硬盘统称为做温切斯特(Winchester)硬盘。
随着磁盘容量和盘片数量以及新技术的发展,从技术上讲,机械硬盘甚至比固态硬盘还要来的精密复杂,加上固态硬盘的来袭,机械硬盘技术发展缓慢,我们现在上电商网站能买到的硬盘大部分用的还是 5,6 年前的技术。所以经过各种整合收购后,整个世界也只有 3 家机械硬盘制造商,西部数据(Western Digital)、希捷(Seagate)、东芝(Toshiba,接下来我拆的硬盘就是这个)。在之后的选购部分,我会来详细介绍一下这几家公司。
三家公司的 Logo
相关文献:
[1]. IBM 305 RAMAC 的介绍和使用说明书。
[2]. IBM 历史上重要的磁盘型号和参数列表。
[3]. IBM 为 305 RAMAC 制作的宣传片 「ibm 305 ramac」
■ 机械硬盘的结构原理
作为最广泛使用的储存设备,加上原理和结构相对比较简单,机械硬盘(温切斯特硬盘)的物理结构和工作原理是非常容易查到的。但最直观的还是直接拆开看实物,我们找到一个坏的机械硬盘,然后把它拆开(千万别对自己的硬盘下手,拆开就坏了)。
机械硬盘正反面
● 物理结构
观察机械硬盘,我们可以看到前面有一个金属固定板,固定板上面的螺丝自然是用来固定整个结构的,相当于一个盖子。通常关于机械硬盘的参数,都会用一张贴纸贴在固定板上,我们下面介绍的参数在实际选购的时候一般就是看这张纸。
机械硬盘的参数贴纸
这些硬盘外部另外一个需要注意的点就是通气孔,通常旁边会有不要遮盖通气孔的标注。
就是这个小小的孔
这个孔是用来干什么的呢?学完下面机械硬盘的原理,大家就会知道机械硬盘对灰尘非常敏感,所以机械硬盘内部通常是要密封并做无尘处理,但是机械硬盘在工作时会产生热量,使内部的空气膨胀,如果整个机械硬盘完全密封,那么里面的气压就会变大,把磁头压向盘片,容易造成硬盘损坏。所以厂商会故意在机械硬盘上开一个小孔来保证内外气压平衡,但如果我们用放大镜或者显微镜观察这个孔,发现它并不是单纯的洞,也是有做防尘处理的(其实就是我们空气净化器里面的 HEPA 滤网),防止灰尘从这个孔进去。
显微镜下的通气孔
另外通气孔也可以用来分辨这个盘是空气盘还是氦气盘,因为氦气盘生产的时候需要充入氦气,然后用激光焊接等把硬盘完全密封起来,不能留通气孔,不然氦气就跑光了,这也是为什么大家常说氦气盘很难做数据恢复,因为一旦开盘基本报废,至于为什么用氦气我们留着下面再说。
而在机械硬盘的顶部,我们就可以看到这个硬盘的接口,这里以 SATA 接口为例,通常可以分为三个部分,一个供电接口给硬盘提供建立一个数据接口来传输数据,还有一个跳线接口。
其中供电和数据接口的用途就跟它们名字一样,跳线接口的用途就比较古老,一是因为以前没办法直接在 BIOS 里面确定硬盘启动顺序,所以需要通过插不同的跳线针脚来确定硬盘的启动顺序,二是有些设备需要通过跳线接口把 SATA2 切换成 SATA1 模式,也就是降速来使用,不然老设备识别不出来。还有些厂商会用作调试、固件更新、数据恢复接口等。现在基本没人用这么老的设备了,这个接口根本就不用插,跳线接口当没有就可以。
从左到右分别是跳线、数据、供电接口
外部剩下的就是控制电路板,基本上就是控制硬盘的各种芯片,RAM(用来做缓存),存储 ROM(用来放硬盘固件),电机驱动和主控芯片(微处理器)等,实现磁头驱动、定位、读写、接口控制等功能。
● 控制电路板与上面的芯片
介绍完外部结构,我们终于来到了机械硬盘的内部。其实机械硬盘的内部结构相对简单,只有两个大结构,硬盘硬盘,中间最显眼的那块就是它的盘,因为是硬的,所以大家叫他硬盘(冷笑话~)。
机械硬盘内部结构
另外一个大结构就是磁头组件,由磁头、传动手臂、传动轴三个部分组成。硬盘底下还有电机等等用来驱动整个磁头组件,通过磁头驱动电路精确控制电机带动传动轴传动手臂,使最尖端的磁头到达指定的位置。磁头组件是硬盘发生故障的主要位置,90% 的硬盘故障都是磁头组件的问题。
磁头组件的结构
接下来就是最重要的盘片了,我们的数据都是存在它上面。物理上来讲,它就是一个铝合金或者玻璃盘子,上面涂一层磁性材料,然后加上保护润滑涂层等等其他东西一起加工一下,读写数据就是改变盘片上那些小磁颗粒的极性,不同物理性质材料直接影响盘片的数据密度,稳定性和鲁棒性。
另外盘片中间主轴还有一个马达让盘片高速旋转,通过前置控制电路控制速度等等。剩下的就是起落架,空气过滤片等等其他部件了。
整体来讲,机械硬盘的内部结构还算是蛮简单的,不过现在机械硬盘内部通常会叠多个盘片提升数据容量,对应地就会有很多个磁头。盘片的正反面都可以读写,所以正反面会各有一个磁头。
多个盘片与多个磁头
● 工作原理(物理)
看完上一章软盘部分的同学,其实基本上就能够很好的理解机械硬盘的工作原理了。硬盘不通电时,磁头是放到起落架的,通电之后,首先盘片会高速旋转,接着控制器控制磁头组件将磁头放在盘片上,盘片高速旋转的空气浮力会将磁头稍微悬浮于盘片上一点点(0.10.3μm,新技术可以做到 0.0050.01μm,微米,1米的 100 万分之 1),横截面看大概是这么一点点:
盘片和磁头横截面,和灰尘头发的对比
针尖大小的磁头上包含两个小磁头,一个是读磁头一个是写磁头。想要读写数据的时候,控制器会控制电机将磁头放到对应位置,等盘片旋转到对应数据点的时候:
想要写入数据就通过给电流给写磁头产生一个强大的磁场,改变底下盘片上经过的磁颗粒的极性,从而实现写入数据。
想要读取数据就直接检测底下磁颗粒经过让读磁头产生的电流,从而确定对应位置磁颗粒的极性,达到读取数据的目的。
动画展示,来源:Youtube@TED-Ed
现实世界中,硬盘是这样子读写数据的(慢放)
整个读写过程原理就是我们常说的电磁现象,所以盘片又叫做磁盘。而且看到磁头和磁盘的距离和速度,大家应该能理解为什么机械硬盘这么怕灰尘之类的小颗粒了吧。
一旦有灰尘,磁头就能在盘片上「画画」,图片来源:Alchemist-hp (talk) www.pse-mendelejew.de
厂商和科学家们一直在努力提高机械硬盘容量的方向,就是尽量提高盘片上磁性材料的密度,以及在不影响读取写入的同时尽量减小读写磁头的大小。
而机械硬盘提高容量密度里面有一个很重要的技术,那就是 IBM 1991 年(没错,还是 IBM,实在太强了)发明的 MR 磁阻技术,利用磁阻效应,将磁头灵敏度大大提升,从而使盘片的储存密度直接提升几十倍,让现在 GB,TB 级硬盘的出现成为可能。
磁阻效应是个很简单的物理原理,就是某些金属或半导体的电阻值会随着外部磁场的变化变化,因为磁场会改变电子的轨迹,洛伦磁力就会在宏观上改变材料的电阻值。
IBM 把对应的材料做成了 MR 磁头,后来又进一步做成了 GMR 巨磁阻效应磁头,现在的机械硬盘,包括我们上面介绍工作原理时候的磁头都是使用磁阻效应材料的磁头。
另外我们平时看到机械硬盘介绍的时候,可能还会看到 PMR、SMR 之类和 MR 有关的参数,这个是 MR 技术诞生后,使磁盘容量提升的另一个方法。因为 MR 技术之前磁头的灵敏度不够,所以盘片上的磁颗粒极性一般都是横向在盘片上的,称为水平磁记录 LMR,就像下面这样:
LMR 水平磁记录
随着 MR 技术越来越成熟,灵敏度越来越高磁颗粒不仅能够做得越来越小,工程师们还能把磁颗粒竖起来放也能保证数据的正确读取写入,这样相同面积盘片就能塞进更多的磁颗粒,单盘片也能做到 1TB 的容量。
这就是现在这些硬盘都在用的 PMR 垂直磁记录,所以我们通常叫 PMR 硬盘,知道了这项技术的原理,我们就能在下面很好的给大家解释清楚,为什么 SMR 叠瓦式硬盘会出现?为什么尽量不要买它。
PMR 垂直磁记录
至于盘片在那么高转速情况下,读写磁头是怎么样实现快速精准改变底下磁颗粒的磁性等问题就不展开讲了,感兴趣的朋友可以找找相关文章,或者等我在这个系列最后一章拓展部分简单讲讲。
● 工作原理(逻辑)
知道了硬盘的物理工作原理,但我们还有很多问题没有解决,比如为什么硬盘要分区?为什么要有扇区和磁道,为什么分区表炸了硬盘就读取不了数据等等,这就涉及到硬盘的逻辑工作原理了。
为了提高数据的写入读取速度,最大化减少磁头走过的路径,提升工作效率,统一标准等,我们需要在逻辑上给硬盘分区,和软盘一样,机械硬盘首次使用时也需要格式化,这一步会给硬盘重新划分逻辑分区。
看过上一张软盘部分的朋友,应该比较好理解,机械硬盘的逻辑分区和软盘差不多:
一般机械硬盘的逻辑分区
一个机械硬盘可以有好几个盘片,每个旁边有正反两个面,叫做磁盘面,每个面都像上面一样,分好磁道还有扇区。可以把它想象成有很多个跑道的操场,然后每个跑道再按照每 100 米分成一块一块去百米赛跑。,每一个盘片上面同一条磁道合起来组成的叫做柱面(图中所有白色的磁道合起来,就像一根竖起来的空心水泥管)。
盘片在高速旋转而磁头位置固定的情况下,磁头在盘面上画出的轨迹是一个圆,我们就把它规定为磁道;而一定时间内磁头在盘面上走过的轨迹是一个圆弧,我们就把它规定为扇区。
所以机械硬盘的逻辑分区从大到小是:磁盘面 -> 柱面 -> 磁道 -> 扇区,扇区就是机械硬盘逻辑分区的最小单位,一般大小为 512B,也就是 0.5KB,也就是说即使你只想读写几十 B 的数据,磁头也会把对应扇区 512B 的数据都读写。
每个扇区的容量(Byte,字节)* 一个磁道有多少个柱面 * 整个硬盘一共有多少个磁盘面 = 机械硬盘的总容量。
大家看到这里有没有发现扇区的划分有一个问题,磁盘面最外圈的周长比最内圈的周长要多几倍,如果每个磁道都划分同样的扇区数,那么最外圈磁道的扇区只放 512B 数据显然有点浪费。于是硬盘厂商开发出了 ZDR 等类似技术,把整个盘面的磁道由外到内分成几大块,根据每块的位置,越靠近外侧就分配越多的扇区,这样极大地提高了空间利用率。
ZDR 技术带来的另一个结果是,同样时间磁头在外侧能扫过更多扇区,带来更高的读写速度。所以我们给装 Windows 的时候,系统分区 C 盘一般都会放到靠近外面的磁道(当然现在不推荐把系统装在机械硬盘上了)。
● 快速格式化和低级格式化
平时我们格式化硬盘或者其它储存设备的时候,经常会看到有一个快速格式化的选项,同时还有低级格式化等其它的方式。
Windows 的格式化选项
这些格式化方式的区别是有没有对储存设备重新分区,比如快速格式化一般就只是清除掉储存设备上的分区表,这样系统认为所有扇区可以重新写入数据;普通格式化往往是填零操作,也就是把所有扇区数据都变成 0,还伴随着检测标注坏道等操作,所以速度会慢上不少;低级格式化现在很少见,却是最彻底的,它会将整个盘面都归空,然后重新划分磁道和扇区分区表等等,经常低级格式化的话对硬盘寿命有一点影响,这几种格式化的恢复数据难度会在后面的章节讲到。
• 磁盘面从 0 开始编号• ,因为每个盘面都会有一个磁头,所以这个也是磁头的编号。现在硬盘一般会有几片到十几二十片不等的盘片,也就意味着会有几十个磁盘面。
• 磁道从磁盘面的最外侧到最内侧从 0 开始编号• ,大容量的机械硬盘,每个磁盘面都会有几千个磁道。
• 柱面• ,看到上面机械硬盘物理结构的朋友应该清楚,所有磁头都是绑定在一起移动的,所以才会有柱面这个结构。机械硬盘读写数据都是按照柱面来进行的。
• 扇区从 1 开始编号,每个扇区的数据是进行读取写入最小单位• 。比如一个磁道有 64 个扇区,编号就是 1 到 64。
磁盘的编码和定位
一些硬盘上有一个比较重要的磁道——最外圈的 0 磁道。这个磁道不会储存用户数据,我们开机常见的 MBR 引导,就是把引导数据(告诉电脑系统如何启动的数据)和 DPT 硬盘分区数据放到了 0 磁道 0 柱面 1 扇区(UEFI 引导则是把引导文件放在了 FAT 分区里),文件系统的 FAT 文件分配表有时候也是放到 0 柱面上。0 磁道损坏也是机械硬盘最常见的损坏原因。
放到 0 磁道上面的数据
这样子给柱面、磁头、扇区编号,再按照以下的公式给每个扇区编号:
逻辑扇区号 = (柱面号*总磁头数+磁头编号) * 每个磁道有多少个扇区 + 扇区编号 - 1
这样子就相当于每个扇区有自己独特的地址,跟我们给酒店房间编号一样,这个地址就是扇区的逻辑区块地址 LBA。有了编号,磁盘读写数据更方便。
至于机械硬盘在逻辑上的读取写入原理,我们会放到下面参数这一节再讲,这样大家理解比较容易。
机械硬盘能用相对便宜的价格获得大容量一直是它的优势,在各种技术的加持下,现在机械硬盘单盘片能够做到 2TB,单个机械硬盘的容量能够去到 24TB(希捷 Seagate,2021)。但受限于物理读写机制,一些硬盘的读写速度可以说不太尽如人意,一般不超过 300MB/s,家用机械硬盘一般不会超过 150MB/s,这个速度在现在看来是非常慢的,所以机械硬盘现在的使用用途一般都是存储大量不经常使用的数据,像是电影或者照片等,非常不建议把经常需要读写小文件的应用程序,游戏,操作系统安装到机械硬盘。
相关文献:
[1]. 原始机械硬盘的详细结构可以参考这份专利。
[2]. 机械硬盘,详细的结构和高清的微距图片,可以查看 HDDScan 的文章「 HDD from Inside Hard Drive Main Parts」。
[3]. 部分动图来源于 Youtube@TED-Ed,一个很好的机械硬盘原理讲解视频,原视频「硬盘是如何工作的?- Kanawat Senanan」。
[4]. 希捷对于自家新技术还有超大容量硬盘的介绍。
[5]. 查看更加专业的机械硬盘结构,可以参考这份移动机械硬盘的专利。
● 文件系统
逻辑分区解释完,再往上一层就是我们熟知的文件和目录结构了。用来管理目录和文件的系统叫做文件系统,它规定了文件和目录数据如何储存到储存设备上,Windows 用的文件系统是 NTFS。
因为我们很少有只占用一个扇区以下的文件,所以文件系统会将磁盘面上相邻的若干个扇区合并为一个簇(又叫分配单元,Unix 类系统叫块,反正都是一个意思)。文件系统进行读写操作的基本单位就是簇。
每个系统规定的簇大小都不一样,簇越大读写速度就越好,但是空间浪费越严重。比如 64K 簇大小的文件系统,存放 1KB 的文件也要在磁盘上占用 64KB 的扇区,Windows NTFS 文件系统的簇大小是 4KB。
以我们常见的 Windows 文件属性为例:
相信很多人都很奇怪,为什么会有大小和占用空间两个不同的数据
可以看到大小和占用空间两个属性,后面跟着的容量是不同的。「大小」就是文件的实际大小,「占用空间」就是这个文件在磁盘上占用的簇大小 ,因为 10.2 KB > 8KB,而 NTFS 文件系统的簇大小是 4KB,所以他必须要占三个簇,也就是 12KB。比较大的文件看着大小和占用空间可能一样,但仔细观察后面的字节数,也会发现相差了簇以内的字节。
文件系统会将每个文件在磁盘上占用哪些扇区汇总成一个文件分配表,这就是我们上面说的 FAT。同时文件系统也会把目录里面包含哪些文件和每个文件的属性都汇总成一个目录表,和文件分配表放到一块。
FAT 文件表和目录表的内容
● 储存数据操作的层级
到这里我们会发现,一个简单的文件操作,从操作系统到文件系统,到逻辑分区,再到物理操作上分成了很多层:
• 操作系统根据用户的操作控制文件系统读写相应的文件 ->
• 文件系统根据文件表和目录表找到对应的文件在储存设备上的扇区 ->
• 给机械硬盘提供扇区数据和操作命令 ->
• 机械硬盘驱动磁头到对应位置读写数据并返回状态给文件系统 ->
• 文件系统更新文件表和目录表然后通知操作系统 ->
• 操作系统将结果核心的文件列表展示给用户
简单一个删除文件操作,背后的过程都很复杂
各层分离的机制既在保证最大性能的同时,也把兼容性拉满,不同的物理设备文件系统和操作系统都能够互相组合来运行。
Linux 和 Mac OS 等其他操作系统里面的文件系统机制稍有不同,感兴趣的同学可以查找相关书籍,或者等我在系列最后一章简单解释一下。
这就是文章的上半部分了,想看下半部分的朋友可以直接去少数派原文地址,或者等我过几天发下半部分的动态,发出去后链接我会放到评论区置顶。