如果我创建一个小型文件系统,并在需要时扩展它,那么 inode 的数量会按比例增加吗?
我想将 Docker 与覆盖存储驱动程序一起使用。这可能会非常消耗 inode因为它使用硬链接来合并较低层。 (原始的aufs驱动程序有效地堆叠了联合挂载,这不需要额外的inode,但会在运行时引起额外的目录查找)。编辑:硬链接本身不使用额外的索引节点,我只能认为问题是额外的目录必须创建哪些。
(封闭式问题这里。我相信答案是不正确的。然而它说问题已经结束,我需要创建一个新问题)。
答案1
是的。看man mkfs.ext4
:
-i bytes-per-inode
指定字节/索引节点比率。 mke2fs 为磁盘上的每个 inode 字节空间创建一个 inode。每个 inode 的字节数比率越大,创建的 inode 就越少。该值通常不应小于文件系统的块大小,因为在这种情况下,将创建比可以使用的更多的 inode。请注意,文件系统创建后无法更改该比率,因此请谨慎确定该参数的正确值。请注意,调整文件系统大小会更改 inode 数量以维持此比率。
我通过实验验证了这一点,将大小从 1G 调整到 10G 并查看tune2fs /dev/X | grep Inode
. inode 数量从 64K 增加到大约 640K。
我相信这是使用“块组”的 Unix 文件系统的自然结果。分区被分为块组,每个块组都有自己的索引节点表。当您扩展文件系统时,您将添加新的块组。