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


15

关于inode

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

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

注释

  • 创建EXT4分区后,您将无法更改可用索引节点的数量


@Rinzwind这是一个不同的问题,因为它仅询问如何查找大量的小文件...它没有解释如何格式化具有大量inode的新EXT4分区。我将重新提问。
bzero

我如何禁用顶部横幅说这个问题可能已经被回答了?这是一个不同的问题。
bzero 2015年

Answers:


12

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


5
配置4,000,000,000个iNode时是否存在任何已知的性能缺陷?
bzero

1
实际上不是:mkfs.ext4:太多的inode(4294967296),指定<2 ^ 32 inode
dalore

@dalore偏离一个错误:2 ^ 32-1 ...感谢您的反馈,已
改正

请注意,我也尝试过这样做,但是又出现了另一个错误,该错误对于所接受的数字不是十分有用。
dalore

你尝试过2 ^ 31吗???
Fabby

3

请参见手册页中的mkfs.ext4。

man mkfs.ext4

Option -N允许您设置在文件系统中创建的索引节点的数量,Option -I允许您增加其大小(以便它们可以处理文件的更多扩展属性)。创建文件系统时进行调整以适合您的情况。


谢谢,所以在创建时使用了-N,而在创建分区之后可以使用-l来调整inode的数量?我现在将仔细查看手册页...
bzero 2015年

-I改变每个inode的字节在创建时的大小。它不允许您增加现有文件系统上的可用数量。
TwoD

"allows you to increase their size (so they can handle more files)"增大inode的大小并不意味着您可以处理更多的文件,每inode的字节数比例越大,将创建的inode越少,这意味着可以处理的文件越少。
ZN13

1

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

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.