JFS2 文件系统布局

文件系统是一系列文件、目录和其他结构。

文件系统维护信息并标识文件或目录的数据位于磁盘上的位置。 除了文件和目录,JFS2 文件系统还包含超块、分配图以及一个或多个分配组。 每个文件系统占一个逻辑卷。

JFS2 超块

超块为 4096 字节大小,从磁盘上的字节偏移量 32768 开始。 超块保留有关整个文件系统的信息并包含下列字段:

  • 文件系统大小
  • 文件系统中数据块的数目
  • 指示文件系统状态的标记
  • 分配组大小
  • 文件系统块大小

JFS2 分配图

文件系统包含下列分配图:

  • 索引节点分配图记录文件系统中所有索引节点的位置和分配。
  • 块分配图记录每个文件系统块的分配状态。

JFS2 磁盘索引节点

逻辑块包含文件系统块单元中文件或目录的数据。 每个逻辑块都分配有文件系统块,用于存储其数据。 每个文件和目录都具有索引节点,包含访问信息(例如文件类型、访问许可权、所有者标识和至该文件的链接数目)。 这些索引节点还包含 B+ 树,用于查找在其中存储逻辑块数据的磁盘上的位置。

JFS2 分配组

分配组将文件系统空间分成了若干大块。 分配组只用于问题解决技术,其中在程序的连续阶段选择最合适的解决方案(通过尝试各种方法找到),以用于程序的下一个步骤。 分配组允许 JFS2 资源分配策略使用著名的方法以达到最佳的 I/O 性能。 首先,分配策略尝试群集相关数据的磁盘块和磁盘索引节点,以达到磁盘的较好位置。 经常连续读写文件,并且经常一起访问目录内的文件。 其次,分配策略尝试通过文件系统分发不相关的数据,以便调节磁盘位置。

文件系统内的分配组由基于零的分配组索引(分配组号)标识。

必须选择分配组大小来产生足够大来提供超时邻近资源分配的分配组。 分配组最大数目限制为 128 个组。 最小分配组大小为 8192 个文件系统块。

部分分配组

其大小不是分配组大小整数倍的文件系统将包含一个部分分配组;文件系统的最后一个分配组不会被磁盘块完全覆盖。 此部分分配组将被作为整个分配组处理,除了不存在的磁盘块将被标记为分配在块分配图中。