磁盘与固态硬盘:外部存储设备工作原理

前面已经知道,主存解决的是程序运行时的工作空间问题,但它通常掉电易失,容量成本也不适合无限做大。于是计算机还必须依赖另一类更慢、但更大且可持久保存数据的存储设备。

这就引出了外部存储,也就是平时最常接触的机械硬盘和固态硬盘。

如果要继续往下问,一个很自然的问题就是:

它们都叫“存储设备”,但为什么性能表现差别这么大?底层工作方式到底有什么不同?

这正是这一篇要解决的问题。

一、为什么外部存储是必须存在的

主存虽然速度比外存快很多,但它并不适合作为长期数据归宿:

  • 通常掉电后内容丢失;
  • 容量扩展成本较高;
  • 系统关机后程序和数据不能只靠主存保存。

所以计算机必须有一种:

  • 容量更大;
  • 成本更低;
  • 掉电不丢;
  • 能长期保存文件与程序镜像;

的存储层。这就是外部存储设备存在的根本原因。

二、外部存储为什么通常比主存慢很多

因为它们面向的目标不同。

主存更重视:

  • 随机访问速度;
  • 与 CPU 的高频协作;
  • 运行时读写效率。

而外部存储更重视:

  • 大容量;
  • 成本;
  • 持久性;
  • 长期保存。

所以外存不是“慢一点的内存”,而是服务于完全不同设计目标的一层。它在速度上做出了妥协,换来容量和持久性优势。

三、机械硬盘的基本工作思路是什么

机械硬盘 HDD 的核心是磁记录。

可以先这样理解:

  • 里面有高速旋转的盘片;
  • 盘片表面存储磁信号;
  • 磁头负责在盘片上方读写信息;
  • 访问某个数据时,需要把磁头移动到对应磁道,并等待盘片旋转到目标位置。

这就意味着一次磁盘访问通常不是立刻完成的,而会包含多个时间开销。

四、为什么机械硬盘随机访问比较慢

因为它存在明显的机械动作成本,主要包括:

  • 寻道时间:磁头移动到目标磁道;
  • 旋转延迟:等待盘片转到目标扇区;
  • 传输时间:真正把数据读出来或写进去。

其中前两项都属于“找到目标”的时间,而不是“传数据本身”的时间。

所以对于小块随机访问来说,真正的数据量可能不大,但等待位置对齐的成本却很高。

这也是为什么机械硬盘非常偏爱顺序访问:

一旦位置找到了,连续读写就能大幅摊薄机械寻位成本。

五、固态硬盘为什么看起来快很多

固态硬盘 SSD 的核心是闪存存储,不依赖机械旋转和磁头移动。

这意味着:

  • 没有机械寻道;
  • 没有旋转等待;
  • 随机访问延迟显著低于 HDD;
  • 并发访问和内部调度空间更大。

所以 SSD 相比 HDD 最大的变化,不只是“带宽更高”,更重要的是:

随机访问成本被大幅降低。

这对操作系统、数据库、缓存系统和现代应用性能都有非常直接的影响。

六、SSD 是不是就完全没有复杂性

也不是。

虽然 SSD 没有机械结构,但闪存也有自己的物理特性和限制,例如:

  • 写入和擦除粒度不完全一致;
  • 某些写入前需要先擦除;
  • 单元寿命有限;
  • 需要做磨损均衡和垃圾回收。

所以 SSD 的快,并不是“存储介质变简单了”,而是:

  • 机械延迟被消除了;
  • 复杂性转移到了控制器和管理策略中。

这也是为什么现代 SSD 控制器本身就很像一个小型复杂系统。

七、为什么块设备和文件系统会特别关心访问模式

因为外部存储设备通常不是按一个字节一个字节最优工作的,而更适合按块传输。

这意味着:

  • 顺序访问更容易高效;
  • 批量读写通常比分散小请求更友好;
  • 数据布局会直接影响实际吞吐;
  • 文件系统和数据库页管理策略会受到底层设备特性影响。

所以硬盘和 SSD 的底层差异,会一路传导到文件系统、数据库、日志系统和缓存设计中。

八、为什么“顺序 I/O”和“随机 I/O”差别这么大

这是理解外存性能的关键。

对于 HDD:

  • 顺序 I/O 可以连续读写,机械动作少;
  • 随机 I/O 不断跳位置,寻道和旋转延迟会反复出现。

对于 SSD:

  • 随机 I/O 代价比 HDD 小很多;
  • 但顺序 I/O 通常仍然更容易获得更高带宽和更好内部调度效率。

所以“访问模式”不是软件层面的细枝末节,而会直接决定底层设备能否被高效利用。

九、从工程和后端视角,这部分为什么重要

理解 HDD 和 SSD 的差异,会帮助你更自然地理解很多系统实践:

  • 为什么数据库特别重视顺序日志写入;
  • 为什么随机小 I/O 对机械盘伤害很大;
  • 为什么 SSD 改善了大量随机读场景的体验;
  • 为什么文件系统、对象存储和缓存层会根据介质特性做不同设计;
  • 为什么存储系统性能分析总会关注 IOPS、吞吐和延迟分布。

所以这部分内容和现实系统设计是直接相连的。

十、为什么外存仍然是性能瓶颈的重要来源

即使 SSD 已经很快,它和主存、Cache 相比仍然慢很多个量级。

这意味着:

  • 一旦程序频繁落到外存;
  • 或者发生大量缺页、磁盘读写、随机小 I/O;
  • 系统整体延迟就可能被迅速拉高。

所以现代系统中大量优化的目标,其实都是:

  • 尽量减少真正落盘次数;
  • 尽量把热点数据留在更高层存储;
  • 尽量让 I/O 变得更顺序、更批量、更可预测。

十一、学习这一部分最容易踩的坑

1. 把 HDD 和 SSD 只看成“一个慢一个快”

更关键的是它们的物理机制完全不同。

2. 忽略随机访问和顺序访问的差异

这会让很多真实性能现象无法解释。

3. 以为 SSD 没有管理复杂性

它只是把复杂性从机械动作转移到了闪存控制和调度逻辑中。

总结

磁盘和固态硬盘是计算机持久化存储体系中的核心设备。真正值得先抓住的,是这些认识:

  • 外部存储存在的根本原因是容量大、成本低且可持久保存;
  • HDD 依赖机械运动,因此随机访问代价高;
  • SSD 去掉了机械延迟,随机访问性能显著提升;
  • 访问模式会深刻影响外部存储设备的实际表现;
  • 文件系统、数据库和高性能服务的很多设计,都在响应这些底层介质特性。

把这一篇理解透之后,下一步再看并行与多核时,就会更容易意识到:计算平台的整体性能,从来不只是 CPU 一颗芯片的事,而是计算、内存和存储整条链路协同出来的结果。

参考资源