![哪些网络文件系统可以处理大量子目录?](https://linux22.com/image/629254/%E5%93%AA%E4%BA%9B%E7%BD%91%E7%BB%9C%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%8F%AF%E4%BB%A5%E5%A4%84%E7%90%86%E5%A4%A7%E9%87%8F%E5%AD%90%E7%9B%AE%E5%BD%95%EF%BC%9F.png)
我需要一个可以同时从多台机器访问的网络文件系统,并且它仍然能够保留单个目录的 100,000 个子目录。
如果有人想知道为什么有这些要求:服务器 (JIRA) 将每个问题的附件存储在带有问题编号的子目录中。如果您的项目有 100,000 个或更多问题,您很容易就不得不处理这么多目录。
为了解决这个问题,前段时间我们从 NetApp 文件系统切换到 XFS,因为 XFS 支持这么多的文件/目录。
不过,我们还有另一个问题:XFS 不允许来自不同机器的并发访问,甚至不允许读取操作,而我们确实想要一个更像 NFS 的解决方案,能够让多台机器访问这些文件。
磁盘操作量相当低,大部分是读取,文件几乎从不更新。
我们能用什么来做到这一点?
答案1
如果 XFS 适合您,您可以通过 NFS 共享它。
如果您更喜欢使用 NetApp,则应使用支持 Ontap 8.1 的系统。在此版本中,一个目录的 ~100k 个子目录的 WAFL 限制已被解除(有关详细信息,请参阅 KB ID:3012261)。
如果 8.1 不是一个选项,您可能需要检查是否可以操作 MaxDirSize,如NetApp 论坛
如果您的目标是 SAN 访问,则需要使用某种 Cluster-FS,如 OCFS2、ACFS、GFS 或类似的,但这会带来新的麻烦。