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

Tom*_*ace 5 linux filesystems disk-space-utilization du df

当服务器硬盘 (Linux) 被大量小文件迅速填满时,我有时会遇到问题。发生这种情况时,我必须尝试弄清楚占用了多少空间以及占用空间的文件在哪里。这可能是一项令人惊讶的令人沮丧的任务,因为:

  1. 只是做一些简单的事情,比如在包含大量文件的目录中运行 ls 可能需要很长时间。
  2. df 很快,但不准确和不精确
  3. du 是准确的,可以告诉您所有空间的去向,但需要永远运行

我想快速而准确地知道我的所有空间都在硬盘上的哪里,那里可能有数以百万计的小文件占用数 TB 的空间。

传统文件系统似乎不可能做到这一点(如果没有,我想听听)

我的问题是 Linux 上可用的任何新文件系统(btrfs、zfs、reiserfs 等)是否具有任何可能有助于解决此问题的超级智能功能。例如,我可以想象某种日志——每次写入时都会不断更新——它包含文件系统中每个分支占用的空间量的记录。然后问我的问题只是阅读日志的问题。

这只是可能有帮助的功能类型的一个示例,但我要求提供任何可能有助于回答问题的任何类型功能的示例:快速准确地告诉我,我的硬盘上正在使用空间的确切位置磁盘

谢谢,汤姆

Jer*_*oen 2

我只对你提到的列表中的 ZFS 有经验。使用 ZFS,您可以创建分层卷,例如您可以创建;

  • 罐/类别
  • 储罐/类别/产品
  • 罐/类别/产品/a
  • 罐/类别/产品/b

ETC

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