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

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

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

unraid 的目录设计的很混乱,大家觉得呢

  •  
  •   xinmans · 2023-11-30 11:22:08 +08:00 via iPhone · 2432 次点击
    这是一个创建于 378 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如/mnt/user /mnt/disks 和/mnt/cache 等的关系,然后如果想挂载额外的共享目录,必须挂载到/mnt/user 下面的目录里,如果 unraid 重启,又有几率发生目录错乱的场景,就是/mnt/user 和/mnt/cache 的内容不一样了

    大家怎么解决这些问题?
    19 条回复    2023-12-02 22:02:58 +08:00
    bankroft
        1
    bankroft  
       2023-11-30 12:07:54 +08:00
    mark ,刚用 unraid

    顺便问一句大家是怎么备份文件到云中的,我试了几个,除了 duplicacy 比较满意(可惜收费),就剩下一个 rclone 写脚本了
    whileFalse
        2
    whileFalse  
       2023-11-30 12:08:32 +08:00 via Android
    人类的本质是乌合之众
    Licsber
        3
    Licsber  
       2023-11-30 12:21:38 +08:00   ❤️ 1
    重启之后自动 start 关掉 自己设置好再重新提供服务就好了
    我觉得设计上还是挺不错的 提供 disks 等可以直接操作数据存在哪块盘上的接口
    也提供 user 和 user0 前者指代阵列本身 后者如果配置的 share 目录有 cache (第二存储空间)会忽略掉
    打算有空出一个文章详细讲一下吧 感觉不少小白并不清楚 unraid 的 mnt 下所有的文件结构 加上现在有了 zfs 之后更混乱了
    fuis
        4
    fuis  
       2023-11-30 13:19:41 +08:00
    > 顺便问一句大家是怎么备份文件到云中的,我试了几个,除了 duplicacy 比较满意(可惜收费),就剩下一个 rclone 写脚本了

    @bankroft 可以用 kopia
    bankroft
        5
    bankroft  
       2023-11-30 13:52:25 +08:00
    @fuis #4 kopia 卡在了 create repo 上点了没反应,还没细用。有空研究一下
    libook
        6
    libook  
       2023-11-30 14:10:43 +08:00
    /mnt/user 是 array+缓存池的聚合目录,/mnt/cache 是纯缓存池的目录,/mnt/user0 是纯 array 的目录。

    unraid 有个 mover 机制,就是定时移动文件,从 array 移动到缓存池或者从缓存池移动到 array 可以自己在共享设置里面调,比如从缓存池移动到 array ,就是 mover 执行完之后/mnt/cache 里没有被占用的文件都会被移动到/mnt/user0 里。

    不清楚你具体说的错乱指的是啥问题。
    teasick
        7
    teasick  
       2023-11-30 14:30:02 +08:00
    大家都是草台班子,不过有的草台糊得好看一些
    Licsber
        8
    Licsber  
       2023-11-30 14:37:46 +08:00
    @libook #6 我来帮楼主回复一下 他说的“有几率发生目录错乱的场景”
    估计是重启 又打开了自动启动阵列 然后文件共享还正常的启动了
    但是他重启前手动的 mount 了一个子文件夹 (如果不 mount 到 user 下 在容器的网页管理 volume 里看不到)
    如外置的 USB 盘 或者啥 U 盘设备 或者 NFS 设备 命令可能是 mount /dev/sda /mnt/user/download/usb_disk
    重启后 容器仍然正常运行了 并且配置的 volume 仍然是 比如 /mnt/user/download/usb_disk
    但是此时没有 mount 导致容器直接写了文件到阵列里 如果这个时候楼主没有发现这个问题
    又直接 mount 了外置存储 就会导致阵列里已有的文件被掩盖 后面又需要挪来挪去

    如果只是对 mover 有问题 感觉不至于发生楼主说的目录错乱

    顺带一提 备份方案我是用的是 rsync 远端全量同步 到云是用的是 restic 设置 128M 的备份文件大小 全量上传至云
    libook
        9
    libook  
       2023-11-30 15:14:45 +08:00
    我是使用 Unassigned Devices 这个插件来管理 array 和 pool 之外的存储设备的,支持自动挂载,挂载之后会在/mnt/disks 下有一个挂载入口,通常是以硬盘名称命名(自己可以改)。

    如果容器、虚拟机、脚本啥的要访问这个存储设备,直接让它访问/mnt/disks/下的这个挂载入口就行。

    如果想在 WebUI 上查看和操作文件,可以在主界面的 Disk Devices 板块里直接点击这个硬盘 Identification 一列的挂载点名称就可以。或者使用 Dynamix File Manager 插件直接访问 disks/挂载点。再或者用 docker 部署 File Browser 并将/mnt/user 和/mnt/disks/设备名全挂载到容器里。

    如果想将这个硬盘通过 smb 或 nfs 共享到网络上,可以在 设置->未分配的设备( Unassigned Devices ) 中开启 smb 或 nfs ,再在主界面的 Disk Devices 板块里的 设置 一列点选这个硬盘,在里面开启 共享。

    有个这个教程详细讲述了 unraid 的/mnt 下面各个目录的作用 https://www.jackiewu.top/article/unraid-storage-mount-point-explanation
    如果自己 hack 的话,也最好根据 unraid 的使用范式来使用或规避,避免冲突。
    xinmans
        10
    xinmans  
    OP
       2023-11-30 21:17:34 +08:00 via iPhone
    @Licsber 你说的对,我没有用默认的阵列,而是用 zfs ,结果这货必须要在/mnt/user 下面的目录才能实现备份到 zfs
    xinmans
        11
    xinmans  
    OP
       2023-11-30 21:19:12 +08:00 via iPhone
    @libook 可能是因为我没有用 arry 的缘故,今天早上 4 点多 unraid 突然重启,然后/mnt/user 下面的内容都不见了,我把所有的 docker 和 vm 的目录都相应的改到 cache 目录下才恢复
    xinmans
        12
    xinmans  
    OP
       2023-11-30 21:20:14 +08:00 via iPhone
    @Licsber 我有一些脚本在 unraid start 的时候自动执行,特别是 zfs 的 mounti point 自动设置
    xinmans
        13
    xinmans  
    OP
       2023-11-30 21:21:28 +08:00 via iPhone
    @libook 我看看,个人觉得 unraid 还是作为基础系统吧,其他的都通过 VM 直通来解决,我目前有点混用。unraid 上有 zfs ,VM 里建 truenas 也有 zfs ,然后 unraid 上有跑容器,VM 里也有跑容器。
    libook
        14
    libook  
       2023-11-30 22:45:04 +08:00 via Android
    @xinmans unraid 整个都是以它的 array 为核心来设计的,unraid 引入的 zfs 也是被当做 array 的缓存池来设计的,只不过你可以不将数据 move 到 array 里,来当成普通 zfs 阵列用,只是按照我上面介绍的目录用途,你要按照 unraid 的设计来使用 mnt 下的目录。
    zfs 池被 unraid 定位为缓存池,所以你仍然只能在 array 启动的情况下使用 unraid 的 zfs 池,配置共享目录的第一存储为 zfs 池,然后数据就都是在/mnt/cache 里了。
    如果你在 vm 里直通硬盘组 zfs 阵列,那么你就不应该把 zfs 阵列挂载到 unraid 的任何挂载点里,以免造成两个系统之间的冲突,比如你可以在 mnt 下单独创建个目录用来放虚拟机创建的 zfs 阵列的挂载点。
    xinmans
        15
    xinmans  
    OP
       2023-11-30 23:22:36 +08:00 via iPhone
    @libook 我的 cache 已经被两块 nvme 组的硬 raid 占用了,zfs 是 unraid 上的硬盘(没有组 array ,性能太拉,且容灾不行)组的 raidz2
    hanbagui0021
        16
    hanbagui0021  
       2023-12-02 08:00:23 +08:00
    @bankroft Duplicati 也还不错的,走 alist 的挂载。kopia 不知道为啥我添加 alist 挂载的云盘就是不行
    bankroft
        17
    bankroft  
       2023-12-02 17:34:15 +08:00
    @hanbagui0021 duplicati 很多人说会有恢复失败的几率不敢用,kopia 似乎是因为 rclone 对 alist 的 webdav 支持问题
    xinmans
        18
    xinmans  
    OP
       2023-12-02 19:32:54 +08:00 via iPhone
    备份用 unraid 默认的 VM backup ,还可以
    hanbagui0021
        19
    hanbagui0021  
       2023-12-02 22:02:58 +08:00
    @bankroft 感谢告知,目前还没使用过恢复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2709 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:23 · PVG 22:23 · LAX 06:23 · JFK 09:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.