V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要把任何和邀请码有关的内容发到 NAS 节点。

邀请码相关的内容请使用 /go/in 节点。

如果没有发送到 /go/in,那么会被移动到 /go/pointless 同时账号会被降权。如果持续触发这样的移动,会导致账号被禁用。
INCerry
V2EX  ›  NAS

mergerfs 有什么踩坑经验嘛?

  •  
  •   INCerry · 27 天前 · 1368 次点击

    我 nas 的 pt 影音盘因为也没什么重要数据,上了 mergerfs ,不过最近发现性能好像不怎么样(最大读写慢很多,CPU 占用也挺高的),刚用不久,不知道大佬们有没有什么调优或者踩坑的经验?

    我目前的配置

    mergerfs
    -o allow_other,use_ino,category.create=ff,minfreespace=50G,category.search=ff,category.action=epall,moveonenospc=true,cache.files=auto-full,dropcacheonclose=false,fsname=mergerfs,readahead=1024,fuse_msg_size=256,threads=-2,cache.readdir=true
    

    因为第一个盘是 ssd ,期望优先 pt 下载到 ssd 上面,后台有一个脚本,等 ssd 快满了根据 atime 挪动文件到其它盘。

    14 条回复    2025-08-21 16:13:52 +08:00
    YsHaNg
        1
    YsHaNg  
       27 天前
    unraid 这些都实现了 而且对我而言 mergerfs/snapraid 非实时同步
    INCerry
        2
    INCerry  
    OP
       27 天前
    @YsHaNg 买的是成品的 nas ,所以还没刷 unraid 之类的
    shihira
        3
    shihira  
       27 天前
    我以前用 mergerfs 也发现性能不好,现在我直接写了个 fuse 把所有东西全用软链组织到一起,用起来跟 merger 也差不多
    INCerry
        4
    INCerry  
    OP
       27 天前
    @shihira 大佬有脚本分享嘛?
    shihira
        5
    shihira  
       27 天前
    fuse 自己写写很方便的,只实现 getattr, access, readdir 和 readlink 就好了,不想写让 AI 来做
    YsHaNg
        6
    YsHaNg  
       27 天前
    @INCerry 推荐一下 unraid 的 cache mover 插件 能检测 jellyfin/plex 读取从 hdd array 搬运整个文件夹到 ssd 实时切换 stream 然后 hdd 按设置进入休眠 非常适合刷一整季剧的场景 现在基本上一个月都不会听到 hdd 运转
    INCerry
        7
    INCerry  
    OP
       27 天前
    @YsHaNg 这听起来可太棒了,老实说做 pt 也会有这样的好处
    thetbw
        8
    thetbw  
       27 天前
    多看看官网文档,基本都有写到。
    这是我的参数:cache.files=partial,func.getattr=newest,noforget,inodecalc=path-hash,dropcacheonclose=true,posix_acl=true,link-exdev=abs-pool-symlink,flush-on-close=always,rename-exdev=abs-symlink

    我遇到的主要就两个问题,第一个和 NFS 配合有问题,官网也有说,加了些 NFS hack 的参数,不行,放弃换了 SMB;
    然后就是 `mv` 这种涉及到重命名的,好像是在文件系统底层就是重新链接,也遇到了些问题。

    感觉每个参数都是曾经遇到的一个坑,好歹数据没事
    INCerry
        9
    INCerry  
    OP
       27 天前
    @thetbw 其中有几个参数并不是很了解,noforget 和 posix_acl 这样配置是之前踩过什么坑嘛?
    thetbw
        10
    thetbw  
       26 天前
    @INCerry nfs 的遗留的,然后啥权限问题,不知道影不影响,就没删
    he1293024908
        11
    he1293024908  
       25 天前
    unraid 能实现你这些要求,但 unraid 自家文件系统毛病也是性能低+io 瓶颈问题严重
    INCerry
        12
    INCerry  
    OP
       24 天前
    @he1293024908 嘶,这就麻烦了,像 mergerfs 的性能,大约只有直接连接存储 30%,而且 cpu 占用率巨高
    he1293024908
        13
    he1293024908  
       23 天前
    @INCerry 这些问题在 unraid 也有,而且 unraid 卡 io 就 cpu 飙 100%
    INCerry
        14
    INCerry  
    OP
       10 天前
    更新一下这个 topic ,找到了一个 mergerfs 的参数,passthrough=rw ,这样对于文件的读写不会经过 mergerfs 中转,经过测试,基本不存在什么性能问题了,速度和直连差不多。

    唯一比较麻烦的就是这个功能必须使用 linux 6.9 以上内核,然后用 mergerfs 分支自己编译一份。


    https://trapexit.github.io/mergerfs/preview/config/passthrough/
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5948 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 06:17 · PVG 14:17 · LAX 23:17 · JFK 02:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.