V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gridsah
V2EX  ›  程序员

Linux 作为 NAS,数据在独立的 ZFS 文件系统上,系统盘需要做成 Root on ZFS 吗

  •  1
     
  •   gridsah · 2023-09-28 14:27:09 +08:00 · 2461 次点击
    这是一个创建于 430 天前的主题,其中的信息可能已经有所发展或是发生改变。

    FreeBSD 作为 NAS 遇到了硬件兼容性问题,所以准备转到 Linux + OpenZFS 的方案,详见这篇帖子

    https://www.v2ex.com/t/977732

    系统盘是 SATA3 Intel S3710 200G ,企业级固态,质量很好。

    lvm + ext4 是一开始的方案,但是我读 OpenZFS 文档的安装教程的时候看到了 Root on ZFS 这样的操作。

    很纠结到底是 lvm + ext4 的方案,还是 Root on ZFS 。

    我考虑 Root on ZFS 的出发点是,防止 bit rotate 以及比 lvm 灵活得多的快照。

    各位推荐什么方案?又或者有其他方案?

    18 条回复    2024-08-10 19:16:54 +08:00
    totoro625
        1
    totoro625  
       2023-09-28 15:18:00 +08:00
    首先声明我是小白,计划国庆组一套 PVE
    在我学习 ZFS 相关知识的时候,就看到很多起系统盘使用 ZFS 导致 PVE 启动失败的例子,例如 /t/944268
    甚至在 LVM vs ZFS 的帖子里,大部分人包括 OP 都不支持 Root on ZFS , /t/819674
    我在咨询 ZFS 相关问题的帖子内,也有热心网友建议不要在根目录使用 ZFS , /t/972903

    我的想法是,用一块较小容量的 SSD 运行 PVE ,不在该硬盘上放置任何 swap 、vm ,也不用于备份,仅仅用于 PVE 系统启动
    ZFS(Mirror)用作 VM 的系统盘,ZFS(RAID-Z2)用作 VM 的数据盘,单独一块 NVME SSD 做 L2ARC 和 SWAP
    gridsah
        2
    gridsah  
    OP
       2023-09-28 15:39:06 +08:00
    @totoro625

    /t/819674 的 12 楼我看到了我自己的回复,也是不推荐使用 Root on ZFS hhhhhhh
    cnbatch
        3
    cnbatch  
       2023-09-28 16:24:28 +08:00
    还有其它选择,比如 XFS 和 BTRFS
    不过 BTRFS 没 ZFS 那么稳定就是了,也许只剩 XFS 可选
    gridsah
        4
    gridsah  
    OP
       2023-09-28 16:53:48 +08:00
    @totoro625 我看了看你咨询 PVE+ZFS 的帖子,也分享了一下我的使用经验。

    @cnbatch btrfs 肯定是不考虑了,如果没啥意外 lvm + ext4 就是我的最终方案。

    xfs ,下次一定,下次一定

    当然我依旧希望能修好我的 FreeBSD.
    sky96111
        5
    sky96111  
       2023-09-28 17:24:11 +08:00
    当前的方案是 Linux+KVM LUN 直通给 NAS 虚拟机,单盘使用 XFS 。
    近期买了 4 块 6T SAS 盘,准备改成 LUN 直通给 TrueNAS Scale ,使用 OpenZFS 。优点初始化快,缺点内存需求高
    可选替代方案 LUN 直通给 OMV ,使用 RAID5+XFS 。优点轻量省资源,缺点第一次初始化时间极长
    mantouboji
        6
    mantouboji  
       2023-09-28 19:09:31 +08:00 via iPad
    你选什么狗屁 FreeBSD 和 ZFS 本来就是自寻烦恼. Linux 核心的软 RAID5 我从 1998 年用到现在了,好得很。Btrfs 和 XFS 我都在用,反正装 Fedora 的时候缺省的,没你担心的那么多乱七八糟。

    再说了,你总该知道不管是 FreeBSD 还是 Linux ,各个目录挂不同类型的文件系统是常规操作。ZFS 那种垃圾别弄到/上给自己加戏,给个/home 足够了。
    gridsah
        7
    gridsah  
    OP
       2023-09-28 21:48:22 +08:00
    @mantouboji 嚯,98 年,那会还是流行 redhat 的时候,老哥你的使用经验很丰富啊。

    你们是怎么处理机械硬盘上的静默错误的?就是 bit rotate ?

    mdadm 这种软 raid 没有办法处理的吧。xfs 也没有针对静默错误的方案。

    btrfs 倒是带校验,但是我不相信你高强度用了 /滑稽
    gridsah
        8
    gridsah  
    OP
       2023-09-28 21:49:23 +08:00
    @sky96111 KVM 怎么管理的? libvirt ?手搓参数一两次还好,搓多了太累了.....
    sky96111
        9
    sky96111  
       2023-09-28 22:04:29 +08:00 via Android
    @gridsah cockpit-libvirt 和 virt-manager ssh 远程连接
    cnbatch
        10
    cnbatch  
       2023-09-28 22:33:58 +08:00
    FreeBSD 的驱动问题应该能修好的,就看 FreeBSD 开发组什么时候能够拿到硬件实物做测试

    我自己的 NAS 同样是基于 FreeBSD 的(衍生版,附带 WebUI ,为了方便出门在外时用手机远程检查状态),机箱内所有硬盘都是 ZFS ,系统盘也不例外

    同样为了防止 bit rotate ,不但有 ECC 内存(这才是关键),并且不使用 SLOG 和 L2ARC 。慢就慢吧,不管再怎么慢,顺序读取都有三四百 MB/s 。
    只要机械硬盘是 raidz 组的一部份,那就基本不用怕翻转错误,raidz 可以纠错的。独立单硬盘的出错才麻烦。专门给二级缓存再加 SSD raid1 有点奢侈,我小机箱放不下那么多╮(╯-╰)╭
    gridsah
        11
    gridsah  
    OP
       2023-09-28 23:32:17 +08:00
    @cnbatch 这 bug 修了我也很难从 Linux 转回去了。这种基础组件定下了几乎就只升级,不更改了 hhhhh

    tb 有卖 ASM1182E 芯片的 PCIEx1 转双 nvme 的转接板。我用的就是这个,也确定不是它的问题。因为转接卡上放的是 SLOG , 而这 bug 是读数据时候触发的。
    mantouboji
        12
    mantouboji  
       2023-09-29 02:38:01 +08:00 via iPad
    @gridsah 你要说 1998 年那会儿没啥特别办法,这都二十几年了,mdadm 这种前端工具都给做好 systemd 的 timer 了,定期后台遍历整个阵列做校验,你只需要 systemctl enable 即可。
    gridsah
        13
    gridsah  
    OP
       2023-09-29 09:24:30 +08:00
    @mantouboji 我查了 RHEL 7-9 的文档,都没说 mdadm 可以防止静默错误。我问了华为存储设备的售后,他们只是说,他们的盘阵有定期巡检来修复静默错误,但不是 mdadm 。

    倒是这篇文章提 mdadm 和静默错误了,但它只是加了个检测静默错误的中间层,无法自动修复。检测到静默错误整个文件系统直接 read only 了。
    https://www.redhat.com/en/blog/what-bit-rot-and-how-can-i-detect-it-rhel

    mdadm 那个校验阵列的 timer 叫啥?我去看看它配置文件咋写的
    MeteorCat
        14
    MeteorCat  
       2023-09-29 10:12:05 +08:00 via Android
    强烈推荐还是 ext4 最安全,家里断电你就知道难受了
    benjaminliangcom
        15
    benjaminliangcom  
       2023-09-29 11:47:48 +08:00 via iPhone
    直接用 TrueNAS scale
    gridsah
        16
    gridsah  
    OP
       2023-09-30 07:47:34 +08:00
    @MeteorCat 不存在什么突然断电,所有机器都接了 ups
    bugprogrammer
        17
    bugprogrammer  
       2023-09-30 13:54:04 +08:00
    说一下我的 homelab 方案吧。PVE+ZFS 做宿主机+NAS(PVE 直接做 nas ,不直通),然后安装各种虚拟机。win ,debian(挂载 nas 用 docker 实现功能需求。nfs 挂载 nas 媒体目录,iscsi 挂载 docker 配置文件目录,否则有些数据库文件会 lock),homeassistant 等(老方案,现在 ha 在另一台 j4125 机器上)。虚拟机磁盘直接指向 zfs 的 zvol ,每个虚拟机一个 zvol ,定期做快照,还原虚拟机就还原快照即可,不需要用 pve 的备份还原。
    dilidilid
        18
    dilidilid  
       113 天前
    MDADM 没有能力处理 bit rot ,他在瞎说。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2889 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 12:14 · PVG 20:14 · LAX 04:14 · JFK 07:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.