作家
登录

Linux的EXT4 文件系统的历史、特性以及最佳实践

作者: 来源: 2017-07-12 14:52:26 阅读 我要评论

Linux的EXT4 文件体系的汗青、特点以及最佳实践

每个 EXT2 分区中的空间被分为柱面组(cylinder group),它许可更精细地治理数据空间。 根据我的经验,每一组大年夜小平日约为 8MB。 下面的图 1 显示了一个柱面组的根本构造。 柱面中的数据分派单位是块,平日大年夜小为 4K。

让我们大年夜概地大年夜 EXT4 的汗青、特点以及最佳实践这几个方面来进修它和之前的几代 EXT 文件体系有何不合。

在之前关于 Linux 文件体系的文┞仿里,我写过一篇 Linux 文件体系介绍 和一些更高等的概念例如 一切都是文件。如今我想要更深刻地懂得 EXT 文件体系的特点的具体内容,然则起首让我们来答复一个问题,“什么样才算是一个文件体系 ?” 一个文件体系应当涵盖以下所有特点:

  1. 数据存储: 对于任何一个文件体系来说,一个最重要的功能就是可以或许被算作一个构造化的容器来存储和获取数据。
  2. 定名空间: 定名空间是一个供给了用于定名与组织数据的定名规矩和数据构造的办法学。
  3. 安然模型: 一个用于定义拜访权限的策略。
  4. API: 操作这个体系的对象的体系功能调用,这些对象诸如目次和文件。
  5. 实现: 可以或许实现以上几点的软件。

本文内容的评论辩论重要集中于上述几点中的第一项,并摸索为一个 EXT 文件体系的数据存储供给逻辑框架的元数据构造。

EXT 文件体系汗青

固然 EXT 文件体系是为 Linux 编写的,但颇┞锋正来源竽暌冠 Minix 操作体系和 Minix 文件体系,而 Minix 最早宣布于 1987,早于 Linux 5 年。如不雅我们大年夜 EXT 文件体系大年夜家族的 Minix 来源来不雅察其汗青与技巧成长那么懂得 EXT4 文件体系就会简单得多。

Minix

当 Linux Torvalds 在写最初的 Linux 内核的时刻,他须要一个文件体系然则他又不想本身写一个。于是他简单地把 Minix 文件体系 加了进去,这个 Minix 文件体系是由 Andrew S. Tanenbaum 写的,同时它也是 Tanenbaum 的 Minix 操作体系的一部分。Minix 是一个类 Unix 风格的操作体系,最初编写它的原因是用于教导用处。Minix 的代码是自由可用的并有恰当典范可协定,所以 Torvalds 可以把它用 Linux 的最第一版本里。

Minix 有以下这些构造,个中的大年夜部分位于生成文件体系的分区中:

  • 引导扇区 是硬盘安装后的第一个扇区。这个引导块包含了一个异常小的引导记录和一个分区表。
  • 每一个分区的第一个块都是一个包含了元数据的超等块(superblock) ,这些元数据定义了其他的文件体系构造并将其定位于物理硬盘的具体分区上。
  • 一个 inode 位图块 决定了哪些 inode 是在应用中的,哪一些是未应用的。
  • inode 在硬盘上有它们本身的空间。每一个 inode 都包含了一个文件的信息,包含其所处的数据块的地位,也就是该文件所处的区域。
  • 一个 区位图 用于保持追踪数据区域的应用和未应用情况。
  • 一个 数据区, 这里是数据存储的处所。

我所碰见的关于 EXT2 文件体系最大年夜的问题是 fsck (文件体系检查) 法度榜样这一环节占用了很长一段时光来定位和校准文件体系中的所有的不一致性,大年夜而导致在体系崩溃(crash)后其会花费了数个小时来修复。有一次我的个一一台电脑在崩溃后从新启动时共花费了 28 个小时恢复磁盘,并且并且是在磁盘被检测量只有几百兆字节大年夜小的情况下。

对上述了两种位图类型来说,一个位(bit)表示一个指定的数据区或者一个指定的 inode。 如不雅这个位是 0 则表示这个数据区或者这个 inode 是未应用的,如不雅是 1 则表示正在应用中。

较旧的 EXT 文件体系(如 EXT2 和 EXT3)可以作为 EXT4 进行 mount ,以使其机能获得较小的晋升。但不幸的是,这须要封闭 EXT4 的一些重要的新功能,所以我建议不要如许做。

那么,inode 又是什么呢 ? 就是 index-node(索引节点)的简写。 inode 是位于磁盘上的一个 256 字节的块,用于存储和该 inode 对应的文件的相干数据。这些数据包含了文件的大年夜小、文件的所有者和所属组的用户 ID、文件模式(即拜访权限)以及三个时光戳用于指定:该文件最后的拜访时光、该文件的最后修改时光和该 inode 中的数据的最后修改时光。

同时,这个 inode 还包含了地位数据,指向了其所对应的文件数据在硬盘中的地位。在 Minix 和 EXT 1-3 文件体系中,这是一个数据区和块的列表。Minix 文件体系的 inode 支撑 9 个数据块,包含 7 个直接数据块和 2 个借居数据块。如不雅你想要更深刻的懂得,这里有一个优良的 PDF 具体地描述了 Minix 文件体系构造 。同时你也可以在维诽谤科上对 inode 指针构造 做一个快速懂得。

原生的 EXT 文件体系 (意即扩大的(extended)) 是由 Rémy Card 编写痊愈 1992 年与 Linux 一同发行。主如果为了克服 Minix 文件体系中的一些文件大年夜小限制的问题。个中,最重要的构造变更就是文件体系中的元数据。它基于 Unix 文件体系 (UFS),其也被称为伯渴攀利快速文件体系(FFS)。我发明只有很少一部分关于 EXT 文件体系的发行信息是可以被确证的,显然这是因为其存在着严重的问题,并且它很快地被 EXT2 文件体系代替了。

EXT2 文件体系 就相本地成功,它在 Linux 发行版中存活了多年。它是我在 1997 年开端应用 Red Hat Linux 5.0 时接触的第一个文件体系。实际上,EXT2 文件体系有着和 EXT 文件体系基本相同的元数据构造。然而 EXT2 更高瞻远瞩,因为其元数据构造之间留有很多供将来应用的磁盘空间。

和 Minix 类似,EXT2 也有一个引导扇区 ,它是硬盘安装后的第一个扇区。它包含了异常小的引导记录和一个分区表。接着引导扇区之后是一些保存的空间,它填充了引导记录和硬盘驱动器上的第一个分区(平日位于下一?柱面)之间的空间。GRUB2 - 也可能是 GRUB1 - 将此空间用于其部导引导代码。

 1/6    1 2 3 4 5 6 下一页 尾页

  推荐阅读

  游戏版Linux :Ubuntu GamePack

很多 Linux 爱好者爱好用他们的 Linux 体系玩游戏,看起来似乎并不须要一个可以玩游戏的操作体系。UALinux 是一家推广应用 GNU/Linux 的乌渴攀兰公司。UALinux 开辟了一个 Ubuntu 版本弥>>>详细阅读


本文标题:Linux的EXT4 文件系统的历史、特性以及最佳实践

地址:http://www.17bianji.com/lsqh/36170.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)