V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
garywill
V2EX  ›  Linux

通过 fuse 在 ext4 实现透明压缩

  •  
  •   garywill ·
    garywill · 6 天前 · 1007 次点击

    最近正在考虑把自己的电脑从 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  
       6 天前
    直接备份数据(以防万一)后把文件系统 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  
       6 天前 via Android
    不如直接 zfs, fuse 的这种 读写都费劲
    artiga033
        3
    artiga033  
       6 天前 via Android
    首先 ntfs 也是有透明压缩的,不过 linux 上支不支持就不好说了
    其次感觉 fuse 性能会不太好,有没有 benchmark 看看?
    aloxaf
        4
    aloxaf  
       6 天前
    这看起来是把文件整个压缩,感觉随机读取效率会非常低啊
    strobber16
        5
    strobber16  
       6 天前 via Android
    但凡支持透明压缩的文件系统都是支持为文件夹级分别配置的
    fuis
        6
    fuis  
       6 天前
    构建依赖本身不太好压,可以先在外面试试压缩比
    garywill
        7
    garywill  
    OP
       6 天前
    @strobber16 有吗?所说 btrfs 不能预先设置某个目录或文件的压缩开关,只有你先写入完了文件后,才可以去改它们的压缩开关
    AoEiuV020JP
        8
    AoEiuV020JP  
       6 天前
    没试过,直觉上看会认为文件随机访问性能将会大大降低?
    slowman
        9
    slowman  
       6 天前
    所以你压缩后节省了多少个%的空间?
    另外,packfile 本身就是压缩的
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   952 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:14 · PVG 05:14 · LAX 14:14 · JFK 17:14
    ♥ Do have faith in what you're doing.