In [1]:
from mosaic import *
OS2023(29)
29. 持久数据的可靠性¶
Changelog & 反馈
- 一次额外的答疑:今天 (周二) 晚 19:00-21:00,计算机楼 809
- 期末考试题型:全部为简答题
- 基本概念
- 进程、线程与地址空间
- 编译、链接和加载
- 并发编程
- 文件系统
- 毕业班:提交成绩前完成 M1-M4 和 L0-L2 即可
背景回顾:我们用 “磁盘上的数据结构” 来理解文件系统,并看到了 FAT 和 UNIX 文件系统的数据结构设计。对于磁盘上的数据结构,我们有另一个假设:持久数据是不能接受丢失的——但世界上没有绝对可靠的设备。此外,因为缓存的广泛存在,数据结构的更新未必能够及时反应到磁盘上。那么,是否可以为应用程序构建可靠的持久存储?
本讲内容:
- 持久数据的可靠性
- 构建可靠的磁盘
- fsck 和 journaling
In [2]:
slideshow('29.1')
In [3]:
model('m/fs-crash.py', check=True)
In [4]:
slideshow('29.2')
In [5]:
slideshow('29.3')
Take-away Messages¶
存储系统支撑了当今的互联网工业——每个 SSD 都是 “套娃” 的计算机系统;它们又和 RDMA 组成了大规模存储网络,构成了我们今天的数字世界。实现低成本、高性能、高可靠的存储并不是一个十分简单的问题,这也是计算机产业让我们感到激动的原因。
课后习题/编程作业¶
1. 阅读材料¶
教科书 Operating Systems: Three Easy Pieces:
- 第 38 章 - Redundant Disk Arrays (RAID)
- 第 42 章 - FSCK and Journaling
- 第 43 章 - Log-structured File System (LFS)