首页 > 编程笔记

Linux文件系统有哪些?

Linux 系统支持多种类型的文件系统管理文件和目录,而每种文件系统都在存储设备上实现了虚拟目录结构。本节将学习在 Linux 环境中常用的文件系统。

Linux ext 2文件系统

ext 2 文件系统是 Linux 使用的最传统的磁盘文件系统。ext 2 文件系统是以 inode 为基础的文件系统。它被划分为多个块组,每个块组拥有独立的 inode/block,一个文件系统只有一个 super block。

ext 2 文件系统格式化如图 1 所示。

ext 2 文件系统格式化
图 1 ext 2 文件系统格式化

1) data block(数据块)用来放置文件内容。在 ext 2 文件系统中所支持的 block 大小有 1KB、2KB 及 4KB 三种,block 的大小由文件系统总容量决定,如表 2 所示。

表 2 block大小限制
block大小 1KB 2KB 4KB
最大单一文件限制 17GB 257GB 2TB
最大文件系统容量 2TB 8TB 17TB

需要注意的是:
2) inode table(inode表格):存放文件属性和权限等。inode 存放的文件数据至少有文件的访问权限(rwx);文件的所有者与组(owner/group);文件的大小;文件创建和状态改变时间;最近一次读的时间;最近修改的时间;文件类型标识;文件指向的 block 号。

3) super block(超级块)。super block 存放文件系统的基本信息。一个文件系统只有一个 super block,存放的信息有:block 与 inode 的总量;未使用与已使用的 inode/block 数量;block 与 inode 的大小;文件系统的挂载时间、最近一次写入数据的时间、最近一次检验磁盘的时间等文件系统的相关信息;一个 validbit 数值,若此文件系统已被挂载,则 validbit 为 0,若未被挂载,则 validbit 为 1。

4) File System Description(文件系统描述说明):这个区段可以描述每个 block group 的开始与结束的 block 号码,以及说明每个区段分别介于哪一个 block 号码之间。

5) block bitmap(块对照表):标识 block 是否使用,便于系统快速找到空间来处置文件。

6) inode bitmap(inode 对照表):与 block bitmap 功能类似,只是 block bitmap 记录的是使用与未使用的 block 号码,inode bitmap 记录使用与未使用的 inode 号码。

Linux ext 3文件系统

ext 3 是第三代扩展文件系统(Third extended filesystem,ext 3),同时也是一个日志文件系统,常用于 Linux 操作系统。

ext 3 是大多数 Linux 发行版本的默认文件系统。它采用和 ext 2 文件系统相同的索引节点表结构,另外给每个存储设备增加了一个日志文件,以将准备写入存储设备的数据先记入日志。

默认情况下,ext 3 文件系统用有序模式的日志功能,只将索引节点信息写人日志文件,直到数据块都被成功写入存储设备才删除。通常可以在创建文件系统时使用一个简单命令行选项将 ext 3 文件系统的日志方法改成数据模式。

在 ext 3 格式的文件系统上,当要向硬盘中写入数据时,操作过程如下:
  1. 系统同样需要先将这些数据写到数据缓冲区中(内存)。
  2. 当数据缓冲区写满时,在数据被写入硬盘之前系统需要先通知日志现在要开始向硬盘中写入数据(即向日志中写入一些信息)。
  3. 接着才会将数据写入硬盘中。
  4. 当数据写入硬盘之后,系统会再次通知日志数据已经写入硬盘。

注意,在 ext 3 文件系统中,由于有日志机制,在开机时系统会检查日志中的信息。利用日志中的信息,系统就会知道有哪些数据还没有写入硬盘中。由于系统在硬盘上搜寻的范围很小,所以系统检查的时间就会节省很多时间。

ext 3 文件系统为 Linux 文件系统新增加了基本的日志功能,但它依然是不完善的。例如 ext 3 文件系统无法恢复误删的文件,ext 3 文件系统也不支持加密文件等。

Linux ext 4文件系统

ext 4 是第四代扩展文件系统(Fourth extended filesystem,ext 4)是 Linux 系统下的日志文件系统,也是 ext 3 文件系统扩展的结果。

ext 4 文件系统的特点如下:
ext 4 文件系统支持称作区段的特性。区段在存储设备上按块分配空间,但在索引节点表中只保存起始块的位置。不需要显示出所有用来存储文件中数据的数据块,因此可以在索引节点表中节省空间。

ext 4 加入了块预分配技术。ext 4 文件系统可以为文件分配所有需要用到的块,不仅仅是已经用到的块。ext 4 文件系统用 0 填满预留的数据块,不会将它们分配给其他文件。

Linux ReiserFS文件系统

ReiserFS 文件系统是最早用于 Linux 的日志文件系统之一。ReiserFS 文件系统只支持回写日志模式即只把索引节点表数据写到日志文件。

ReiserFS 文件系统的特点如下:

Linux XFS文件系统

XFS 是一种高性能的日志文件系统。XFS 文件系统采用回写模式日志,提高了系统本身的性能,但实际数据并没有存进日志文件中,因此带来了一定的风险。

XFS 文件系统的特点如下:

Linux Btrfs文件系统

Btrfs 属于 COW(写时复制)文件系统,同时也被称为 B 树文件系统,由 Oracle 公司研发。Btrfs 主要是在 Reiser 文件系统的基础性上进行了改进。其特点如下:

优秀文章