Administrator
发布于 2026-03-23 / 6 阅读
0

UNRAID 与 Ubuntu 之间 NFS 共享配置完全指南

UNRAID 做存储、Ubuntu 做计算,是我家的标准配置。片子存在 UNRAID 上,剪辑在 Ubuntu 的 DaVinci Resolve 里做。一开始用的 Samba,小文件还行,大素材 4K 原片走起来直接拉胯——千兆网只跑到 30-40MB/s 左右,还经常断流。

换了 NFS 之后稳在 110MB/s 满速。配置不复杂,但有几个点是 UNRAID 特有的坑,不搞清楚的话很容易配完了也能用、但用着别扭。记一下全过程。

UNRAID 端:开 NFS 服务

进 Settings → NFS,三个关键参数:

参数为什么
Enable NFSYes
Tunable (fuse_remember)330FUSE 层的属性缓存时间。UNRAID 的 NFS 不是直接导出 ext4,是经过 FUSE 聚合层再出去的,这个缓存值直接影响响应速度。330 秒在稳定不常改动的场景下比较平衡
Number of threads8等于或略大于 CPU 核数,别太小。我 N100 只有 4 核所以设 8 有点溢出,但实测没什么副作用

然后到 Shares → 你的共享文件夹 → NFS Security Settings:

  • Export 选 Private
  • Rule 填:192.168.x.0/24(rw,secure,async,no_subtree_check)
  • 几句说明:async 是性能关键——代价是断电可能丢数据,有 UPS 的话放心开。no_subtree_check 避免重命名文件时报 ESTALE 错误,这个 UNRAID 的 FUSE 层特别容易触发。no_root_squash 看需求,我是做视频剪辑需要 root 写权限就加了。

    点 Apply,UNRAID 自动重写 /etc/exports 并重启 NFS 服务。

    Ubuntu 端:挂载

    先装工具:

    
    sudo apt install nfs-common -y
    sudo mkdir -p /mnt/unraid_nfs
    

    验证服务端导出了什么:

    
    showmount -e 192.168.8.244
    # 输出:/mnt/user/video  192.168.x.0/24
    

    注意这里导出的路径是 /mnt/user/,不是 /mnt/diskX/。UNRAID 的 user share 是跨多盘的聚合视图,NFS 走的就是这一层。

    手动挂载测试:

    
    sudo mount -t nfs \
      -o nfsvers=4,hard,timeo=600,retrans=3 \
      -o rsize=1048576,wsize=1048576 \
      -o noatime,nodiratime \
      192.168.8.244:/mnt/user/video \
      /mnt/unraid_nfs
    

    参数选择理由:rsize/wsize=1MB 是千兆网上限——一般教程写 65536,那是百兆时代的遗产。hard 挂载保证数据完整性,配合 timeo=600(60 秒超时)在断网时不会立刻报错退出。noatime 对大文件场景是必须的——每次读文件写一次 atime 元数据,对 HDD 阵列是灾难。

    验证:

    
    mount | grep unraid_nfs
    # 看 rsize=1048576 是否生效
    

    持久化:/etc/fstab

    编辑 /etc/fstab,加一行:

    
    192.168.8.244:/mnt/user/video  /mnt/unraid_nfs  nfs  nfsvers=4,hard,timeo=600,retrans=3,rsize=1048576,wsize=1048576,noatime,nodiratime,_netdev,x-systemd.automount,x-systemd.requires=network-online.target  0  0
    

    _netdevx-systemd.automount 是关键——网络不可用时不会卡住启动。x-systemd.requires=network-online.target 确保网卡 ready 后再挂。

    重载验证:

    
    sudo systemctl daemon-reload
    sudo mount -a
    df -h | grep unraid_nfs
    

    一个坑:UNRAID NFS 和 SMB 混用

    UNRAID 允许同一个 share 同时开 SMB 和 NFS。但不要同时从两个协议写同一个文件——锁机制不互通,会损坏文件。我做法是:大文件编辑用 NFS 的 Ubuntu 端,手机/平板看片用 SMB,错开读写场景就行。

    总结

    NFS 在 UNRAID 上的配置本身不复杂,坑在几个默认值上:rsize/wsize 的默认值太小、fuse_remember 默认保守、FUSE 层的 ESTALE 问题容易被忽略。把这些点踩过了,局域网内千兆满速不是什么难事。