btrfs 使用快照压缩现有数据

btrfs 使用快照压缩现有数据

我在 5 个 8 TB 磁盘上运行 btrfs raid1,urbackup 主要将备份存储到其中。Urbackup 广泛使用快照。compsize产生以下输出:

Processed 106161732 files, 57335496 regular extents (190449694 refs), 63766108 inline.
Type       Perc     Disk Usage   Uncompressed Referenced
TOTAL       78%       13T          16T          58T
none       100%       11T          11T          47T
zlib        29%      1.4T         5.0T          10T

有一段时间,我运行了带压缩功能的 btrfs,然后禁用了它。正如compsize现在所示,压缩可以大大减少磁盘使用量(参见 zlib 行)。所以我想知道如何在不破坏现有数据的快照结构的情况下压缩现有数据。出于性能原因,我还希望使用 zstd 压缩而不是 zlib。如果这很重要,系统是 Debian 5.7.10 x86_64 和 btrfs-progs 4.20.1。我分析的选项:

  • btrfs fi defrag -czstd会破坏快照结构。
  • force-compress=zstd使用和挂载btrfs fi balance不会压缩重新平衡的范围,它只会按原样复制它们。

我可以做些什么来压缩现有数据而不破坏快照结构?

思路:

  • 我能否以某种方式将数据复制到另一个压缩的 btrfs 分区并保持快照结构完整?
  • 那么使用 dduper 进行碎片整理和离线重复数据删除怎么样?它会重新创建快照结构吗?

相关内容