一个文件系统最多可以包含多少个文件?


34

考虑到Ubuntu上ext4文件系统上目录条目的当前结构,文件系统最多可包含多少个文件?

计算文件系统可以包含的最大文件数的一般方法是什么?

Answers:


37

Ext4的理论限制为40亿个文件,这受其用于标识每个文件的inode编号大小的限制(ext4使用32位inode编号)。但是,正如John所说,ext4静态分配inode表,因此在创建文件系统时设置实际限制。

df命令显示文件系统上空闲索引节点的数量:

$ df -i

Filesystem        iused     ifree  %iused  Mounted on
/dev/disk0s3   55253386  66810480    45%   /
/dev/disk1s3   55258045  66805821    45%   /Volumes/Clone

Ext4还支持每个目录无限数量的子目录,尽管它可能默认限制为64,000。这是可配置的-请参阅内核新手中ext4文章

有关更多信息,请参见2007 Linux Symposium中的新ext4文件系统:当前状态和未来计划


9

本质上没有一个。这取决于。创建ext4文件系统时,请确定inode表的大小,该又控制文件系统一次可以容纳的目录或文件的总数。


8
您可以运行tune2fs -l /path/to/device并查找Inode计数值以查找给定文件系统的限制

1
我们可以增加Inode数量吗?据我所知,索引节点是作为链表存储的,因此就像将更多节点添加到链表一样。我想这个问题归结为一个链表的最大长度是多少?

4
在ext4中,创建文件系统时会静态分配inode表。增加它的唯一方法是重新创建文件系统。-N或-i选项用于设置创建的inode的数量。

1
还值得注意的是,目录是文件,因此必须算作文件。
dmckee,2010年

1
和符号链接一样。我不确定设备,FIFO和套接字是否计数。
短暂

1

在包含300万个文件的目录上运行时,不是Ubuntu,而是Redhat Linux上的基本命令(如find)会失败,并显示“ Too many arguments error”。如果不包含任何参数,ls将成功运行,但是一旦添加过滤器参数,ls就会失败并显示相同的错误。

假设这种基本命令的可靠性是强制性要求,我建议300万个文件太多。


3
那不是文件系统的限制。
user9517支持GoFundMonica13 2013年

1
好点子!FS可能会支持它,但是工具将越来越难以处理它。
卡萨巴·托斯
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.