下一代文件系统:磁盘空间使用情况日志?

当服务器硬盘(Linux)快速填满很多小文件时,我偶尔遇到问题。 当发生这种情况时,我必须弄清楚有多less空间正在被占用,以及这些空间占用的文件在哪里。 这可能是令人惊讶的令人沮丧的任务,因为:

  1. 只是做一些简单的事情,比如在一个包含大量文件的目录中运行ls可能需要很长时间。
  2. df速度快,但不准确,不准确
  3. 杜是准确的,可以告诉你所有的空间在哪里,但永远跑

我想快速准确地知道,我的空间都放在硬盘上,数百万个小文件可能会占用太字节的空间。

传统的文件系统似乎是不可能的(如果没有的话,我想知道)

我的问题是Linux上是否有任何新的文件系统(btrfs,zfs,reiserfs等)具有可以帮助解决这个问题的超级聪明function。 例如,我可以想象某种日志 – 在每次写入时都会不断更新 – 包含文件系统中每个分支占用的空间量的logging。 然后问我的问题只是阅读日志的问题。

这只是这种function的一个例子,但是我要求提供任何可能有助于回答这个问题的function的例子: 快速准确地告诉我,我的硬盘上的空间在哪里磁盘

谢谢,汤姆

我只在你提到的列表中有ZFS的经验。 有了ZFS,您可以制作分层卷,例如可以制作;

  • jar/类别
  • jar/分类/产品
  • jar/分类/产品/ A
  • jar/类别/产品/ B

等等

使用“zfs list”命令,您可以在几秒钟内获得每个卷的已用,可用和参考空间。 但是,只有当你的应用程序能够让你的应用程序以正确的方式拆分时,这才是有效的。

我仍然在我的ZFS文件系统上使用ncdu 。 现在它更加重要,因为它是稀疏文件感知的,有助于理解压缩的ZFS文件系统。

请参阅: 我怎样才能确定什么是占用这么多的空间?