29. 持久数据的可靠性

期末考试前会安排一次额外答疑。期末考试题型:五个简答题,覆盖基本概念、进程、线程与地址空间、编译、链接和加载、并发编程和文件系统。

背景回顾:我们用 “磁盘上的数据结构” 来理解文件系统,并看到了 FAT 和 UNIX 文件系统的数据结构设计。对于磁盘上的数据结构,我们有另一个假设:持久数据是不能接受丢失的——但世界上没有绝对可靠的设备。此外,因为缓存的广泛存在,数据结构的更新未必能够及时反应到磁盘上。那么,是否可以为应用程序构建可靠的持久存储?

本讲内容:实现可靠的虚拟存储设备 (RAID 和 EBS),以及抵抗崩溃的文件系统 (fsck 和 journaling)

29.1 实现可靠的磁盘

29.2 实现可靠的文件系统

Take-away Messages

存储系统支撑了当今的互联网工业——每个 SSD 都是 “套娃” 的计算机系统;它们又组成了大规模存储网络,构成了我们今天的数字世界。实现低成本、高性能、高可靠的存储并不是一个十分简单的问题,这也是计算机产业让我们感到激动的原因。

课后习题/编程作业

1. 阅读材料

📚阅读材料

教科书 Operating Systems: Three Easy Pieces:

  • 第 38 章 - Redundant Disk Arrays (RAID)
  • 第 42 章 - FSCK and Journaling
  • 第 43 章 - Log-structured File System (LFS)