Linux 文件系统

点击访问 Linux 命令大全 >>

本章节将简单的介绍 Linux 文件系统,为接下来的章节学习磁盘管理打基础。

操作系统必须用一种特定的方式对磁盘进行操作。例如怎样存储一个文件?怎样表示一个目录?怎样知道某个特定的文件存储在硬盘的哪个位置?这些问题都可以通过文件系统来解决。简单来说,文件系统是一种对物理空间的组织方式,通常在格式化硬盘时创建。在 Windows 下,有 FAT、FAT32 和 NTFS 文件系统。同样地,Linux 也有自己的文件系统并一直在快速演变,下面简要介绍其中最常用的几种。

Linux 常用文件系统

MINIX 文件系统

MINIX 是 Linux 最早期使用的文件系统,且是一个迷你版本的类 Unix 操作系统,由塔能鲍姆教授为了教学之用而创作,采用微核心设计,它启发了 Linux 核心的创作。

ext2fs 文件系统

EXT2 第二代扩展文件系统(英语:second extended filesystem,缩写为 ext2),是 Linux 内核所用的文件系统,在很长一段时间内 ext2fs 是 Linux 上主流的文件系统。它开始由 Rémy Card 设计,用以代替 ext,于1993年1月加入 Linux 核心支持之中。ext2 的经典实现为 Linux 内核中的 ext2fs 文件系统驱动,最大可支持 2TB 的文件系统,至 Linux 核心 2.6 版时,扩展到可支持 32TB。其他的实现包括 GNU Hurd,Mac OS X,Darwin,BSD。ext2 为数个 Linux 发行版的默认文件系统,如:Debian、Red Hat Linux 等。

ext3fs 文件系统

Ext3 文件系统是直接从 Ext2 文件系统发展而来,目前 ext3 文件系统已经非常稳定可靠。它完全兼容 ext2 文件系统。用户可以平滑地过渡到一个日志功能健全的文件系统中来。这实际上了也是 ext3 日志文件系统初始设计的初衷。

Ext3日志文件系统的特点:

  • 高可用性:系统使用了ext3 文件系统后,即使在非正常关机后,系统也不需要检查文件系统。宕机发生后,恢复 ext3 文件系统的时间只要数十秒钟。

  • 数据的完整性:ext3 文件系统能够极大地提高文件系统的完整性,避免了意外宕机对文件系统的破坏。在保证数据完整性方面,ext3 文件系统有2种模式可供选择。其中之一就是“同时保持文件系统及数据的一致性”模式。采用这种方式,你永远不再会看到由于非正常关机而存储在磁盘上的垃圾文件。

  • 文件系统的速度:尽管使用 ext3 文件系统时,有时在存储数据时可能要多次写数据,但是,从总体上看来,ext3 比 ext2 的性能还要好一些。这是因为 ext3 的日志功能对磁盘的驱动器读写头进行了优化。所以,文件系统的读写性能较之 Ext2 文件系统并来说,性能并没有降低。

  • 数据转换:由 ext2 文件系统转换成 ext3 文件系统非常容易,只要简单地键入两条命令即可完成整个转换过程,用户不用花时间备份、恢复、格式化分区等。用一个 ext3 文件系统提供的小工具 tune2fs,它可以将ext2 文件系统轻松转换为 ext3 日志文件系统。另外,ext3 文件系统可以不经任何更改,而直接加载成为ext2文件系统。

  • 多种日志模式:Ext3有多种日志模式,一种工作模式是对所有的文件数据及 metadata(定义文件系统中数据的数据,即数据的数据)进行日志记录(data=journal 模式);另一种工作模式则是只对 metadata记录日志,而不对数据进行日志记录,也即所谓 data=ordered 或者 data=writeback 模式。系统管理人员可以根据系统的实际工作要求,在系统的工作速度与文件数据的一致性之间作出选择。

ReiserFS 文件系统

ReiserFS 是另一种在 Linux 广泛使用的文件系统,作者是 Hans Reiser 及其团队 Namesys,1997年7月23日他将 ReiserFS 文件系统在互联网上公布。Linux 内核从 2.4.1 版本开始支持 ReiserFS。

ReiserFS 的命名是源自作者 Hans Reiser 的姓氏,这个日志型文件系统发展比 ext2/3 晚近许多。在技术上使用的是 B*-tree 为基础的文件系统,其特色为能很有效率地处理大型文件到众多小文件都可以用很高的效率处理;实际上 ReiserFS 在处理文件小于 1k 小文件时,甚至效率可以比 ext3 快约 10 倍。

XFS文件系统

XfS 文件系统是 SGI 开发的高级日志文件系统,XFS 极具伸缩性,非常健壮。所幸的是 SGI 将其移植到了 Linux 系统中。在 Linux 环境下,目前版本可用的最新 XFS 文件系统的为 1.2 版本,可以很好地工作在 2.4 核心下。

XFS 是 Silicon Graphics,Inc. 于 90 年代初开发的。它至今仍作为 SGI 基于 IRIX 的产品(从工作站到超级计算机)的底层文件系统来使用。现在,XFS 也可以用于 Linux。XFS 的 Linux 版的到来是激动人心的,首先因为它为 Linux 社区提供了一种健壮的、优秀的以及功能丰富的文件系统,并且这种文件系统所具有的可伸缩性能够满足最苛刻的存储需求。

主要特性包括以下几点:

  • 数据完全性:采用 XFS 文件系统,当意想不到的宕机发生后,首先,由于文件系统开启了日志功能,所以你磁盘上的文件不再会意外宕机而遭到破坏了。不论目前文件系统上存储的文件与数据有多少,文件系统都可以根据所记录的日志在很短的时间内迅速恢复磁盘文件内容。

  • 传输特性:XFS 文件系统采用优化算法,日志记录对整体文件操作影响非常小。XFS 查询与分配存储空间非常快。XFS 文件系统能连续提供快速的反应时间。

  • 可扩展性:XFS 是一个全 64-bit 的文件系统,它可以支持上百万T字节的存储空间。对特大文件及小尺寸文件的支持都表现出众,支持特大数量的目录。最大可支持的文件大小为 263 = 9 x 1018 = 9 exabytes,最大文件系统尺寸为 18 exabytes。

    XFS 使用高的表结构 (B+树),保证了文件系统可以快速搜索与快速空间分配。XFS 能够持续提供高速操作,文件系统的性能不受目录中目录及文件数量的限制。

  • 传输带宽:XFS 能以接近裸设备 I/O 的性能存储数据。在单个文件系统的测试中,其吞吐量最高可达 7GB 每秒,对单个文件的读写操作,其吞吐量可达 4GB 每秒。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号