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

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

  •  1
     
  •   gridsah · 296 天前 · 2196 次点击
    这是一个创建于 296 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 灵活得多的快照。

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

    17 条回复    2023-09-30 13:54:04 +08:00
    totoro625
        1
    totoro625  
       296 天前
    首先声明我是小白,计划国庆组一套 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
       296 天前
    @totoro625

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

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

    xfs ,下次一定,下次一定

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

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

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

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

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

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

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

    tb 有卖 ASM1182E 芯片的 PCIEx1 转双 nvme 的转接板。我用的就是这个,也确定不是它的问题。因为转接卡上放的是 SLOG , 而这 bug 是读数据时候触发的。
    mantouboji
        12
    mantouboji  
       295 天前 via iPad
    @gridsah 你要说 1998 年那会儿没啥特别办法,这都二十几年了,mdadm 这种前端工具都给做好 systemd 的 timer 了,定期后台遍历整个阵列做校验,你只需要 systemctl enable 即可。
    gridsah
        13
    gridsah  
    OP
       295 天前
    @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  
       295 天前 via Android
    强烈推荐还是 ext4 最安全,家里断电你就知道难受了
    benjaminliangcom
        15
    benjaminliangcom  
       295 天前 via iPhone
    直接用 TrueNAS scale
    gridsah
        16
    gridsah  
    OP
       294 天前
    @MeteorCat 不存在什么突然断电,所有机器都接了 ups
    bugprogrammer
        17
    bugprogrammer  
       294 天前
    说一下我的 homelab 方案吧。PVE+ZFS 做宿主机+NAS(PVE 直接做 nas ,不直通),然后安装各种虚拟机。win ,debian(挂载 nas 用 docker 实现功能需求。nfs 挂载 nas 媒体目录,iscsi 挂载 docker 配置文件目录,否则有些数据库文件会 lock),homeassistant 等(老方案,现在 ha 在另一台 j4125 机器上)。虚拟机磁盘直接指向 zfs 的 zvol ,每个虚拟机一个 zvol ,定期做快照,还原虚拟机就还原快照即可,不需要用 pve 的备份还原。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2427 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:50 · PVG 20:50 · LAX 05:50 · JFK 08:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.