garywill
V2EX  ›  Linux

通过 fuse 在 ext4 实现透明压缩

By garywill at 2025 年 10 月 16 日 · 2117 次点击

最近正在考虑把自己的电脑从 ext4/ntfs 迁移到 btrfs/zfs 的事,加入透明压缩的队伍

主要因为有些东西 git clone 下来,加上 submodule ,再装上构建依赖,硬盘十几二十个 G 就没了。就这样满得很快

这两天看到一个项目: https://github.com/Big-Dig-Data/fuse-zstd

实际储存的文件是这样的(压缩过)

file.txt.zst
directory/
directory/file.txt.zst

在 mountpoint 上看起来是这样的(直接访问像未压缩的文件):

file.txt
directory/
directory/file.txt

我觉得这种 idea 挺好的

一来不需要把 ext4/ntfs 重新格式化了

二来可以灵活决定哪些放进压缩总目录里,哪些不要压缩

不过这是个比较新的项目,readme 中都没提性能、数据安全的事。作者估计也没去宣传,是个值得尝试和观望的项目吧现在

9 条回复    2025-10-16 12:59:08 +08:00
anytk
   1
anytk  
   2025 年 10 月 16 日
直接备份数据(以防万一)后把文件系统 convert ( https://wiki.archlinux.org/title/Btrfs#Ext3/4_to_Btrfs_conversion )过来就行,再启用 zstd 压缩就好了,一般能压缩的 zstd 压缩结果在 38% 左右,的确很节省空间并延长 SSD 寿命。

我使用的压缩 zstd=3 默认水平,压缩效果分 / 和 /home:

sudo compsize -x /
Processed 514750 files, 311074 regular extents (323117 refs), 295598 inline.
Type Perc Disk Usage Uncompressed Referenced
TOTAL 58% 14G 24G 25G
none 100% 8.0G 8.0G 7.8G
zstd 35% 5.3G 15G 16G
prealloc 100% 818M 818M 1016M


sudo compsize -x /home
Processed 4067717 files, 3248206 regular extents (3374612 refs), 2410852 inline.
Type Perc Disk Usage Uncompressed Referenced
TOTAL 76% 458G 601G 623G
none 100% 386G 386G 396G
zstd 33% 71G 214G 226G
prealloc 100% 37M 37M 144M
mayli
   2
mayli  
   2025 年 10 月 16 日 via Android
不如直接 zfs, fuse 的这种 读写都费劲
artiga033
   3
artiga033  
   2025 年 10 月 16 日 via Android
首先 ntfs 也是有透明压缩的,不过 linux 上支不支持就不好说了
其次感觉 fuse 性能会不太好,有没有 benchmark 看看?
aloxaf
   4
aloxaf  
   2025 年 10 月 16 日
这看起来是把文件整个压缩,感觉随机读取效率会非常低啊
strobber16
   5
strobber16  
   2025 年 10 月 16 日 via Android
但凡支持透明压缩的文件系统都是支持为文件夹级分别配置的
fuis
   6
fuis  
   2025 年 10 月 16 日
构建依赖本身不太好压,可以先在外面试试压缩比
garywill
   7
garywill  
OP
   2025 年 10 月 16 日
@strobber16 有吗?所说 btrfs 不能预先设置某个目录或文件的压缩开关,只有你先写入完了文件后,才可以去改它们的压缩开关
AoEiuV020JP
   8
AoEiuV020JP  
   2025 年 10 月 16 日
没试过,直觉上看会认为文件随机访问性能将会大大降低?
slowman
   9
slowman  
   2025 年 10 月 16 日
所以你压缩后节省了多少个%的空间?
另外,packfile 本身就是压缩的
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
© 2026 V2EX · 26ms · 3.9.8.5