如何创建具有大量 inode 的 EXT4 分区?

如何创建具有大量 inode 的 EXT4 分区?

关于 inode

在 Ubuntu 中,每个文件和目录都是所谓的inode。您可以使用它df -i来检查所有已挂载文件系统正在使用和可用的 inode 数量。

问题

如果您创建一个新的 EXT4 分区,它将使用默认的 inode 数量,这在正常情况下应该足够了。但是,如果您运行的系统会产生数百万个小文件,那么您需要如何创建具有大量 inode 的新 EXT4 分区?最大值是多少?

评论

  • 在创建 EXT4 分区后,您无法更改可用的 inode 数量

答案1

使用32 位mkfs -t ext4 -N iNumberOfINodes /dev/XdY数字iNumberOfINodes,因此任何 ext2/3/4 文件系统上的最大可能 inode 数量为 2^32-1,或 4,294,967,295(约 40 亿)。

答案2

请参阅 mkfs.ext4 的手册页。

man mkfs.ext4

选项-N允许您设置在文件系统中创建的 inode 数量,选项-I允许您增加它们的大小(以便它们可以处理文件的更多扩展属性)。创建文件系统时请根据您的情况进行调整。

答案3

总是需要在 inode 和块大小之间进行权衡。32 位是最大值,但实际最大值取决于磁盘/文件系统大小除以块大小。每个文件至少为一个块。您还可以指定组大小,以确定每个 inode 有多少个块。(即字节/inode)

所有这些将决定您可以为特定磁盘大小和块大小分配的 inode 数量。

这也是性能与文件容量之间的权衡。较小的块大小意味着大文件将被碎片化,并且需要更多的 I/O 操作来加载文件。

如果您要进行定制,您需要阅读,否则您最终会得到一个完全不适合您想要的文件系统。

相关内容