VFS和基于日志的文件系统
最后更新于:2022-04-02 04:09:33
[TOC]
## 虚拟文件系统(Virtual FIle Sytem)

### 高速缓存区
类似CPU的缓存、内存管理的快表——频繁使用的文件内容被缓存
思考:高速缓冲区为什么要统一由虚拟文件系统(VFS)提供?
思考:如果突然断电?
- 删除文件A
1. 更新A所在的目录
2. 释放A的node
3. 释放A占用的物理块(将物理块加入空闲列表/位图)
### 基于日志的文件管理
类似mysql的日志,或者分布式系统大多也使用日志形式
用户删除文件A,系统记录日志,把一个删除操作,分割成颗粒度更细的操作,方便故障恢复
比如删除到110号就突然关机了

进行故障恢复

问题:如果执行完了110号日志,但是因为关机太突然,系统没有来得及记录下来109号日志已经被执行该怎么办?
- 保险起见,开机后,从108号日志开始执行
- 要求:所有日志操作可以被重入(就是重复执行,也叫作幂等性)
- 例如删除一个指定的 inodel就是幂等性操作
- 清理几个磁盘块也是幂等性操作
';