Linux 上 Netapp NFS 挂载的单个目录中的最大文件数

Linux 上 Netapp NFS 挂载的单个目录中的最大文件数

在我拥有的一台较旧的 Linux 机器上,有一个 Netapp 的 NFS 挂载。一旦此机器上的单个目录中有 10 万个文件,就无法再写入文件。有人知道是什么原因造成的吗?我被告知符号链接仍然可以写入。

我会在查找时添加更多具体信息。请跳过“使用更好的文件/文件夹结构和/或数据库”,我知道……

答案1

您可能遇到了两个限制。

  • inode(不太可能)

    您已使用完该卷的所有可用 inode。您可以使用命令df -i和 来确认这一点maxfiles

  • maxdirsize(更倾向于)

    ONTAP 对目录大小施加了限制。大小是元数据/硬链接的产物,而不是文件内容。此限制默认(假设 >6.5)为系统 RAM 的 1%。这样做是为了确保大型目录不会影响系统性能。因为线性目录扫描需要将目录数据结构加载到内存中。快速概览:

如果不是这两个问题,那么我建议检查并发布您的 ONTAP 日志。

答案2

系统正在达到目录的链接限制,这是 NetApp ONTAP 文件系统的固定限制。 来自此知识库文章

从 Data ONTAP 6.5 开始,单个目录可以拥有的最大子目录数为 99998 (100K)。Data ONTAP 6.4 及更早版本限制为 65534 (64K) 个子目录。此数字不可更改。要了解此限制的原因,请参阅下面有关硬链接和子目录实现的部分。

答案3

http://www.unixunderground.com/blog/?cat=11

有点过时,但可能会有帮助。我相信文件数量取决于磁盘/节点的数量。

答案4

在较新版本的 NetApp(8.1+)中,您可以使用以下命令覆盖每个卷的默认限制:

vol options vol_name maxdirsize 150000

要查看当前设置,请运行

vol options vol_name

无法从 GUI 客户端更改这些。

相关内容