![btrfs 使用快照压缩现有数据](https://linux22.com/image/757781/btrfs%20%E4%BD%BF%E7%94%A8%E5%BF%AB%E7%85%A7%E5%8E%8B%E7%BC%A9%E7%8E%B0%E6%9C%89%E6%95%B0%E6%8D%AE.png)
我在 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 进行碎片整理和离线重复数据删除怎么样?它会重新创建快照结构吗?