Ext文件系统族
l 简介
² 文件系统要考虑的几个问题:碎片、空间利用率、维护内容一致性。
Ext2文件系统
l 结构概况
² 块组(Block Group):块组是Ext2的核心要素。
² 文件系统是由大量块组在硬盘上相继排布。如图。
一个块组
硬盘如下
² 启动扇区是硬盘上的一个区域(一般是第一个扇区),加电后BIOS自动加载并执行其中的内容。
² inode间接索引数据块:灵活应对大小文件。
² ext2试图将同一个文件的块维持在同一个块组中。
² ext2在分配块的时候采用预分配的方式。
² 创建文件系统:用户空间工具mke2fs,将分区的空间划分为管理信息和有用数据两部分,创建简单的目录结构(用来存放坏块的lost+found目录)。
l VFS与文件系统实现有3个结构(包含一些函数指针的结构体)建立:
² file_operations:操作文件的内容
² inode_operations:元数据的操作
² address_space_operations:一般地址空间的操作
l 文件系统的操作
² 装载和卸载
² 读取并产生数据块和间接块:找到数据块、请求新块、块分配、
² 创建和删除inode
Ext3文件系统
l 增加了日志功能:事务日志带来了开销。
l ext3有三种日志方式(用来tradeoff):回写模式、顺序模式、日志模式。
l 事务是什么样的:
² 日志记录:最小单位,表示某个块的更新
² 句柄:例如write请求涉及到6个块,则这6个日志记录属于同一个句柄。
² 事务:几个句柄的集合。
² 三者关系如图: