在Linux上安装Netapp NFS的单个目录中的最大文件数

在一个较旧的Linux机器上,有一个Netapp的NFS挂载。 一旦这个盒子上的单个目录中有100k个文件,就不能再写入文件了。 任何人都知道这可能是什么原因? 我被告知符号链接仍然可以写。

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

有两个限制,你可能已经命中。

  • inodes(不太可能)

    您已经占用了该卷的所有可用inode。 你可以用命令df -imaxfiles来确认。

  • maxdirsize (更可能)

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

    • 你可以用ls -lkd检查目录的大小。
    • 提高maxdirsize是一种单向操作。
    • 只能以小幅度增加。
    • 您不能通过删除目录的内容来减小目录的大小。
    • 我有这两个书签链接,其中包含更多的信息。
      • 现在:什么是maxdirsize?
      • 社区:maxdirsize推荐设置和性能影响

如果没有这些问题,那么我build议您检查并发布您的ONTAP日志。

系统正在达到NetApp ONTAP文件系统的固定限制目录的链接限制。 从这个知识库文章 :

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

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

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

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

 vol options vol_name maxdirsize 150000 

查看当前设置运行

 vol options vol_name 

没有办法从GUI客户端更改这些。