文件以数据块的形式存储到磁盘中,不足一块,按一块存储。
文件系统的数据块管理主要有三种方式:连续分配、链接表法和索引链表法。
- 1、连续分配
寻找磁盘上的一段连续的物理空间,在其上连续划分出足够的物理块,与数据块号作映射。 - 优点
通过将数据块首地址进行计算,支持随机访问; - 缺点
需要确定数据块的大小,需要查找连续的物理空间,会生成空间碎片。 - 2、链接表法
采用类似链表的方法,在数据块中保存下一数据块的物理地址。 - 优点
不用提前确定文件的大小,减少了磁盘碎片的生成,有效利用了磁盘空间。 - 缺点
不支持随机访问,需要遍历查找;
添加下一数据块地址产生的额外的存储空间开销。 - 3、索引链表法
借鉴数据库索引的思想,将索引(下一数据块地址)和数据块分开存放,直接将索引表存储在内存中 - 优点
内存中存储索引表,避免了查找数据块引起的频繁的磁盘IO,提高了数据块查找的开销 - 缺点
依旧存在着额外的存储开销
补充
Linux中,将所有的文件、目录抽象为i-node(index node)节点。其中存放了文件的元数据和数据节点的索引。对于超大文件,还可以使用多级索引的方式进行存储。
参考文献
Linux文件系统存储方式