V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
pikashi
V2EX  ›  Linux

zpool status 会误报损坏文件?

  •  
  •   pikashi · 116 天前 via Android · 1776 次点击
    这是一个创建于 116 天前的主题,其中的信息可能已经有所发展或是发生改变。

    话说 zpool status -v 会误报文件损坏吗?

    系统是最新的 TrueNAS Scale 稳定版 Dragonfish

    zpool 扫描后报错,我把里面报告的损坏文件用 sz 下载下来,和本地 Windows 上的副本一对比,winmerge 和 totalcmd 对比功能都报告两个文件一模一样。

    本地的是刚用 bt 下载的,hash 校检过的所以应该是完好的。

    可能是内存问题?

    29 条回复    2024-08-22 12:03:41 +08:00
    pikashi
        1
    pikashi  
    OP
       116 天前 via Android
    补充:报告错误的文件列表连续试了两个文件,和本地 PC 文件对比都是一模一样完好的
    laminux29
        2
    laminux29  
       116 天前
    1.ZFS 是 Sun 公司开发的商业 FS ,TrueNAS 以及各种 Linux 发行版用的是其开源版本 OpenZFS ,两者不一样。

    2.OpenZFS 就是有你说的这个问题,我自己按照完整的 OpenZFS 分层存储,包括 RaidZ2 的 HDD 、热备盘、Cache 盘、Write Log Zil Mirror ,都部署了,跑了半个月就是各种校验和错误。我深刻怀疑是 Bug 或者是开发者故意的。

    3.建议有条件还是上分布式存储吧,毕竟 ZFS 是单机,存在单点问题,不适合生产。
    xuan_lengyue
        3
    xuan_lengyue  
       116 天前
    @laminux29 是不是 SATA/SAS 控制器报的校验错误,检查连线和 EMI
    xinmans
        4
    xinmans  
       116 天前
    @laminux29 truenas 的 zfs 还比较稳定,你用的什么版本?
    pagxir
        5
    pagxir  
       116 天前 via Android
    基本上是硬件问题,除非是 zfs 版本比较老。zfs 对数据完整性比较严格,校验不对就报错。跟 btrfs 这种不太关注完整性的区别是,zfs 的话硬件有问题在文件系统层面就暴露出来了,而 btrfs 则到应用层才会反应出来。
    Pteromyini
        6
    Pteromyini  
       116 天前
    zfs 很敏感,有一点点异常都会给你反馈出来,跟上面回复不同的是,目前 zfs 在生产环境应用很广泛,错误敏感是原因之一
    xustrive
        7
    xustrive  
       116 天前
    @laminux29 #2 目前已知开源可以作为高可用的存储是 CEPH 还有没有其他推荐。 或者可以做双机热备的存储也可以。
    wwd179
        8
    wwd179  
       116 天前
    我直接用 debian+openzfs 。跑 pt 。syncthing 文件同步。稳定运行了一年了,开启每周 scrub ,目前没啥问题。
    hefish
        9
    hefish  
       116 天前
    我发现 zfs 在硬盘超过 10 多块的时候,在大量小文件读写的时候,挺容易挂起的。 两台服务器,都是 14 个盘做的 zfs , 都有这种情况。 跑的 debian + openzfs 。
    以前曾在 freebsd 上跑过十来个盘的 zfs ,没碰到类似问题。
    laminux29
        10
    laminux29  
       116 天前
    @xuan_lengyue 不是控制器错误,12 个盘,一半有报错。盘与线在上线前都经过了测试。
    laminux29
        11
    laminux29  
       116 天前
    @xinmans 没注意版本号,是 debian-12-5-0 使用 apt 安装的默认版本。
    laminux29
        12
    laminux29  
       116 天前
    @xustrive google 用英文关键字搜 分布式存储。
    laminux29
        13
    laminux29  
       116 天前
    @Pteromyini

    ZFS 是单机模式,存在单点问题,生产谁用 ZFS 是纯纯的有病。
    pikashi
        14
    pikashi  
    OP
       116 天前 via Android
    @xuan_lengyue 想试试从 EMI 角度入手,如果在 SATA 线外面贴铜箔胶布能起到抗干扰效果吗?
    https://mobile.yangkeduo.com/goods.html?ps=KaXnhPxTRU
    bluaze
        15
    bluaze  
       115 天前
    zfs 是自愈合的,如果你的 pool 是有冗余的,那么 zfs 在探测到数据损坏的时候就会即时修复
    xuan_lengyue
        16
    xuan_lengyue  
       114 天前
    @pikashi 照理 SATA 线本身应该就有相应屏蔽之类,换根线试试?
    pikashi
        17
    pikashi  
    OP
       114 天前 via Android
    @xuan_lengyue 我的是那种圆形很细的 SATA 线,有没有屏蔽还真不好说😅
    woyaojizhu8
        18
    woyaojizhu8  
       113 天前
    @pagxir btrfs 不太关注完整性? btrfs 不是跟 zfs 一样可以有数据校验吗?能不能说说它不太关注完整性的具体表现?
    woyaojizhu8
        19
    woyaojizhu8  
       113 天前
    @pikashi 那就换正常的 sata 线
    taoky
        20
    taoky  
       97 天前
    @laminux29 不开玩笑,「跑了半个月就是各种校验和错误」的话,建议跑一下 memtest 。我接触过多个跑了几年的 OpenZFS 阵列从来没遇到过 checksum 报错,如果 checksum 频繁出错的话,几乎可以确定是硬件问题。
    laminux29
        21
    laminux29  
       97 天前
    @taoky

    上线前不仅内存跑了 memtest ,每个存储介质在上线前还做了三检:寿命检查、全盘坏道检查、性能检查。

    我是在 Debian 上 apt 安装的 OpenZFS ,好几个用 debian 的朋友都遇到这种情况,有人建议在 FreeBSD 上试试,说 OpenZFS 是原生于 FressBSD 的。
    taoky
        22
    taoky  
       97 天前
    @laminux29 Debian 的话建议从 backports 装 ZFS 。之前遇到过 Debian stable 的 ZFS 会让 kernel oops ,backports 就没问题的情况。
    Emiya1208
        23
    Emiya1208  
       89 天前
    @laminux29 我就是你说的有病的。
    1. 首先使用 ZFS 应该搭配 ECC 并且监控 ECC 内存。
    2. 应该使用 UPS 。
    3. 如果有任何报错,至少应该有日志。

    至少我的 10 盘 RAIDZ3 存在了 5 年没有遇到过非预期以外的故障(硬件 内存等等的损坏以外的数据故障才叫非预期的)
    Emiya1208
        24
    Emiya1208  
       89 天前
    @pikashi 应该有日志,没有提供任何日志是无法分析的。
    laminux29
        25
    laminux29  
       89 天前
    @Emiya1208 我在前面说了,ZFS 存在单点问题。你应该很幸运,5 年来,主板、内存、CPU 、电源、软件等,没出现过故障。如果你是我的员工,你用单机 ZFS 做生产环境,我知道了肯定会批评你的。
    Emiya1208
        26
    Emiya1208  
       88 天前
    @laminux29 你可能没看仔细。我出现了很多硬件故障,我说的是没有预期以外的故障,我的内存 电源 硬盘都出现过故障。

    在如今,由于固态硬盘的大量使用,比特反转的存在导致硬 RAID 并不能发现,在对硬件做好监控的情况下,ZFS 实际上比硬 RAID 可靠。

    回到你说的最关键的,你说单点故障,任何系统都不能避免单点故障,备份是必须的。Ceph 在扩容和平衡方面的问题更大,更不是什么高枕无忧的东西。哪怕是商业的 netapp 这类产品,没有备份也是不行的。
    Emiya1208
        27
    Emiya1208  
       88 天前
    @laminux29 此外。你后面「如果,批评」这段就像是我在 2018 的领导,批评我在 ubuntu 上运行 Kubernetes 而不是在 CentOS 6 上面一样。

    非常抱歉,我说的非常不客气,但是事实就是某些刻舟求剑的老人要么应该退居二线,要么应该说服的有理有据,要么应该被时代淘汰。

    这也非常像尤其是第三世界国家的技术人员非常热衷的 CentOS ,祝愿他们在使用 CentOS Stream 9 的路上越走越远。
    laminux29
        28
    laminux29  
       88 天前
    @Emiya1208

    看来,你还没反省,还不知道你的问题。

    我批评你,是因为你把 ZFS 这种单机系统,在生产环境里使用,这是大忌,并且你自己也说了,内存出现过故障,当时处理这个问题,停机了多久?

    CephFS 虽然有各种功能缺陷,但人家不存在单点问题。你觉得它扩容与平衡存在问题,那些都是可以通过架构与算法进行改进的,不至于导致整个系统停摆。

    无论是我,还是你的领导,批评你,你觉得不对,是因为你的层次,还没到达我和你的领导的层面。

    好好反省下吧。
    wangdk23411
        29
    wangdk23411  
       86 天前   ❤️ 1
    我有点看的云里雾里,纯探讨啊,生产环境也要分的吧,类云部署、私有化部署、分布式部署应该还都是有区别的吧
    ceph 也不是万能的,开玩笑的说,ceph 对资源的需求就像是无底洞,对存储性能有要求上 ceph 就是找罪受啊
    另外,ceph 也是可以 zfs volume 的😂
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1010 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 20:13 · PVG 04:13 · LAX 12:13 · JFK 15:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.