hallnakulaos

导航

linux随笔系列6----文件系统

文件系统

q1: 文件系统类型有那么多,那么linux如何管理和认知它们的呢?

整个 Linux 认识的 filesystem 其实都是 VFS 在进行管理,我们使用 者并不需要知道每个 partition 上头的 filesystem 是什么~ VFS 会主动的帮我们做好读取的动作。如下图所示

 

EXT2

Ext2 文件系统中所支持的 block 大小有 1K, 2K 及 4K

Block 大小1KB2KB4KB
最大单一文件限制 16GB 256GB 2TB
最大文件系统总容量 2TB 8TB 16TB

block还有什么限制?

原则上,block 的大小与数量在格式化完就不能够再改变了(除非重新格式化);

每个 block 内最多只能够放置一个文件的数据;

如果文件大于 block 的大小,则一个文件会占用多个 block 数量;

若文件小于 block ,则该 block 的剩余容量就不能够再被使用了(磁盘空间会浪费)。

 

  • superblock

    记录filesystem相关信息

    • block 与 inode 的总量;

    • 未使用与已使用的 inode / block 数量;

    • block 与 inode 的大小 (block 为 1, 2, 4K,inode 为 128bytes 或 256bytes);

    • filesystem 的挂载时间、最近一次写入数据的时间、最近一次检验磁盘 (fsck) 的时间等文件系统的相关信息;

    • 一个 valid bit 数值,若此文件系统已被挂载,则 valid bit 为 0 ,若未被挂载,则 valid bit 为 1

  • Filesystem Description

    文件系统描述说明

  • block bitmap (区块对照表)

    block bitmap 记录的是使用与未使用的 block 号码

  • inode bitmap (inode 对照表)

    inode bitmap 记录使用与未使用的 inode 号码

  • Inode table

    • 该文件的存取模式(read/write/excute);

    • 该文件的拥有者与群组(owner/group);

    • 该文件的容量;

    • 该文件建立或状态改变的时间(ctime);

    • 最近一次的读取时间(atime);

    • 最近修改的时间(mtime);

    • 定义文件特性的旗标(flag),如 SetUID...;

    • 该文件真正内容的指向 (pointer);

 

q1:文件如果很大,inode 哪有这么多可记录的信息?

我们的系统很聪明的将 inode 记录 block 号码的区域定义为 12 个直接,一个间接, 一个双间接与一个三间接记录区

 

xfs

xfs 文件系统在资料的分布上,主要规划为三个部份,一个资料区 (data section)、一个文件系统活动登录区 (log section)以及一个实时运作区 (realtime section)

 

 

q1:磁盘分区和文件系统有啥关系?

分区是分区,对磁盘区域进行管理。文件系统是文件系统,是对文件进行管理

posted on 2023-08-04 17:32  想写文章的路人甲  阅读(67)  评论(0编辑  收藏  举报