我有一个包含几亿个文件(几 PB)的文件系统,我想获取 stat 将返回的几乎所有内容并将其存储在某种数据库中。现在,我们有一个 MPI 程序,它从中央队列和工作节点提供目录名称,这些工作节点通过 stat 调用来猛击 NFS(它可以在不费力的情况下处理这个问题)。然后工作节点点击 postgres 来存储结果。
虽然这有效,但速度很慢。在现代 30 节点集群上,单次运行将需要 24 小时以上。
有没有人对拆分目录结构而不是集中队列有任何想法(我的印象是,为此的确切算法是 NP 难的)?另外,我一直在考虑用 MongoDB 的自动分片和多个路由器替换 postgres(因为 postgres 目前是一个巨大的瓶颈)。
我几乎只是在寻找有关如何改进此设置的一般想法。
不幸的是,使用诸如 2.6 内核审计子系统之类的东西可能是不可能的,因为在每台命中该文件系统的机器上运行它(以政治方式)将是极其困难的。
如果重要的话,每台使用这个文件系统的机器(几千台)都在运行 linux 2.6.x。
这样做的实际主要目的是查找早于某个日期的文件,以便我们能够删除它们。我们还希望收集有关文件系统使用方式的一般数据。