关于 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 操作来加载文件。
如果您要进行定制,您需要阅读,否则您最终会得到一个完全不适合您想要的文件系统。