在一个较旧的Linux机器上,有一个Netapp的NFS挂载。 一旦这个盒子上的单个目录中有100k个文件,就不能再写入文件了。 任何人都知道这可能是什么原因? 我被告知符号链接仍然可以写。
当我查阅时,我会添加更具体的信息。 请跳过“使用更好的文件/文件夹结构和/或数据库”,我知道…
有两个限制,你可能已经命中。
inodes(不太可能)
您已经占用了该卷的所有可用inode。 你可以用命令df -i和maxfiles来确认。
maxdirsize (更可能)
ONTAP强制限制目录的大小。 大小是元数据/硬链接的产物,而不是文件内容。 这个限制默认(假设> 6.5)到系统RAM的1%。 这样做是为了确保大型目录不会影响系统性能。 由于线性目录扫描要求将目录数据结构加载到内存中。 快速浏览:
ls -lkd检查目录的大小。 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客户端更改这些。