绕过 32k 子目录限制(dir_nlink?)

绕过 32k 子目录限制(dir_nlink?)

我遇到了 32k 子目录限制。一些研究表明 dir_nlink 文件系统选项似乎会消除此限制,但我找不到任何相关文档。它适用于 ext3 吗?如果必须升级到 ext4,我该怎么做?我可以在我的 ext3 fs 上运行 ext4 并获得此更改的好处吗?我需要获取更新的内核吗?我正在运行 Ubuntu 9.04 稳定服务器,内核是 2.6.18.8-linode19。谢谢。

答案1

需要安装数据库吗?

答案2

Ext4 确实声明他们有无子目录限制。他们还说从 Linux 2.6.28 开始可以安全用于生产。他们还详细说明了如何将 ext3 文件系统迁移到 ext4. 应取消现有文件的子目录限制,因为只有升级前的文件才不会被升级。

答案3

如果您需要存储大量文件,通常的做法是创建几级子目录 - 但不要过度,目录太多也是低效的。

如果您需要存储 > 32M 的文件,只需按 ID 的最后两位数字或其他数字将它们分解,那么您将获得 100 个目录,其中的文件大致均匀分布。

答案4

如果您需要立即解决此问题,您可以用符号链接替换子目录。符号链接不限于 32k。这样您就可以创建更深的目录结构(如其他人所建议的那样),但仍允许程序在一个平面空间中访问它。

相关内容