inode的大小是固定的吗?

inode的大小是固定的吗?

我们将文件分成固定大小的块并存储。

我想知道文件的索引节点的大小是否与块的大小相同,还是不同且具有固定大小?

答案1

块包含文件的实际数据,因此通常我们希望块尽可能大,同时仍然具有良好的性能。事实证明,对于一个块来说,一个相当好的大小大约是一个页面的大小。引用ext4 维基

块大小在 mkfs 时指定,通常为 4KiB。如果块大小大于页面大小(即 i386 上只有 4KiB 内存页面的 64KiB 块),您可能会遇到安装问题。

“mkfs时间”是指创建文件系统的时间。因此,一旦我们创建了文件系统,块大小就固定了,很可能是 4KiB。

索引节点只需要包含指向数据块的指针(以及有关文件的一些元信息 - 最后一次访问的时间、属于哪个用户等)。在一个不同部分维基百科,他们指出

默认情况下,ext4 inode 记录为 256 字节,并且(截至 2013 年 10 月)inode 结构为 156 字节 [...]。 inode 结构末尾和 inode 记录末尾之间的额外空间可用于存储扩展属性。每个索引节点记录可以与文件系统块大小一样大,尽管这不是非常有效。

所以我们可以确实使索引节点与块一样大,但在实际系统中情况可能并非如此。如果您想知道,inode结构仅讨论指向数据块的指针。因此,我们有 156 字节的指针指向实际文件内容,但整个 inode 占用 256 字节 - 基本上,我们有 100 字节可以在闲暇时用于我们想要的任何元数据。

简而言之,ext4 是非常可配置的。但很有可能您的块大小为 4KiB,而您的 inode 记录为 256 字节。

相关内容