话说 zpool status -v 会误报文件损坏吗?
系统是最新的 TrueNAS Scale 稳定版 Dragonfish
zpool 扫描后报错,我把里面报告的损坏文件用 sz 下载下来,和本地 Windows 上的副本一对比,winmerge 和 totalcmd 对比功能都报告两个文件一模一样。
本地的是刚用 bt 下载的,hash 校检过的所以应该是完好的。
可能是内存问题?
1
pikashi OP 补充:报告错误的文件列表连续试了两个文件,和本地 PC 文件对比都是一模一样完好的
|
2
laminux29 46 天前
1.ZFS 是 Sun 公司开发的商业 FS ,TrueNAS 以及各种 Linux 发行版用的是其开源版本 OpenZFS ,两者不一样。
2.OpenZFS 就是有你说的这个问题,我自己按照完整的 OpenZFS 分层存储,包括 RaidZ2 的 HDD 、热备盘、Cache 盘、Write Log Zil Mirror ,都部署了,跑了半个月就是各种校验和错误。我深刻怀疑是 Bug 或者是开发者故意的。 3.建议有条件还是上分布式存储吧,毕竟 ZFS 是单机,存在单点问题,不适合生产。 |
![]() |
3
xuan_lengyue 46 天前
@laminux29 是不是 SATA/SAS 控制器报的校验错误,检查连线和 EMI
|
![]() |
5
pagxir 46 天前 via Android
基本上是硬件问题,除非是 zfs 版本比较老。zfs 对数据完整性比较严格,校验不对就报错。跟 btrfs 这种不太关注完整性的区别是,zfs 的话硬件有问题在文件系统层面就暴露出来了,而 btrfs 则到应用层才会反应出来。
|
![]() |
6
Pteromyini 46 天前
zfs 很敏感,有一点点异常都会给你反馈出来,跟上面回复不同的是,目前 zfs 在生产环境应用很广泛,错误敏感是原因之一
|
8
wwd179 46 天前
我直接用 debian+openzfs 。跑 pt 。syncthing 文件同步。稳定运行了一年了,开启每周 scrub ,目前没啥问题。
|
9
hefish 46 天前
我发现 zfs 在硬盘超过 10 多块的时候,在大量小文件读写的时候,挺容易挂起的。 两台服务器,都是 14 个盘做的 zfs , 都有这种情况。 跑的 debian + openzfs 。
以前曾在 freebsd 上跑过十来个盘的 zfs ,没碰到类似问题。 |
10
laminux29 46 天前
@xuan_lengyue 不是控制器错误,12 个盘,一半有报错。盘与线在上线前都经过了测试。
|
13
laminux29 46 天前
|
14
pikashi OP @xuan_lengyue 想试试从 EMI 角度入手,如果在 SATA 线外面贴铜箔胶布能起到抗干扰效果吗?
https://mobile.yangkeduo.com/goods.html?ps=KaXnhPxTRU |
15
bluaze 45 天前
zfs 是自愈合的,如果你的 pool 是有冗余的,那么 zfs 在探测到数据损坏的时候就会即时修复
|
![]() |
16
xuan_lengyue 44 天前
@pikashi 照理 SATA 线本身应该就有相应屏蔽之类,换根线试试?
|
17
pikashi OP @xuan_lengyue 我的是那种圆形很细的 SATA 线,有没有屏蔽还真不好说😅
|
18
woyaojizhu8 43 天前
@pagxir btrfs 不太关注完整性? btrfs 不是跟 zfs 一样可以有数据校验吗?能不能说说它不太关注完整性的具体表现?
|
19
woyaojizhu8 43 天前
@pikashi 那就换正常的 sata 线
|
![]() |
20
taoky 27 天前
@laminux29 不开玩笑,「跑了半个月就是各种校验和错误」的话,建议跑一下 memtest 。我接触过多个跑了几年的 OpenZFS 阵列从来没遇到过 checksum 报错,如果 checksum 频繁出错的话,几乎可以确定是硬件问题。
|
21
laminux29 27 天前
@taoky
上线前不仅内存跑了 memtest ,每个存储介质在上线前还做了三检:寿命检查、全盘坏道检查、性能检查。 我是在 Debian 上 apt 安装的 OpenZFS ,好几个用 debian 的朋友都遇到这种情况,有人建议在 FreeBSD 上试试,说 OpenZFS 是原生于 FressBSD 的。 |
![]() |
22
taoky 27 天前
@laminux29 Debian 的话建议从 backports 装 ZFS 。之前遇到过 Debian stable 的 ZFS 会让 kernel oops ,backports 就没问题的情况。
|
![]() |
23
Emiya1208 19 天前
@laminux29 我就是你说的有病的。
1. 首先使用 ZFS 应该搭配 ECC 并且监控 ECC 内存。 2. 应该使用 UPS 。 3. 如果有任何报错,至少应该有日志。 至少我的 10 盘 RAIDZ3 存在了 5 年没有遇到过非预期以外的故障(硬件 内存等等的损坏以外的数据故障才叫非预期的) |
25
laminux29 19 天前
@Emiya1208 我在前面说了,ZFS 存在单点问题。你应该很幸运,5 年来,主板、内存、CPU 、电源、软件等,没出现过故障。如果你是我的员工,你用单机 ZFS 做生产环境,我知道了肯定会批评你的。
|
![]() |
26
Emiya1208 18 天前
@laminux29 你可能没看仔细。我出现了很多硬件故障,我说的是没有预期以外的故障,我的内存 电源 硬盘都出现过故障。
在如今,由于固态硬盘的大量使用,比特反转的存在导致硬 RAID 并不能发现,在对硬件做好监控的情况下,ZFS 实际上比硬 RAID 可靠。 回到你说的最关键的,你说单点故障,任何系统都不能避免单点故障,备份是必须的。Ceph 在扩容和平衡方面的问题更大,更不是什么高枕无忧的东西。哪怕是商业的 netapp 这类产品,没有备份也是不行的。 |
![]() |
27
Emiya1208 18 天前
@laminux29 此外。你后面「如果,批评」这段就像是我在 2018 的领导,批评我在 ubuntu 上运行 Kubernetes 而不是在 CentOS 6 上面一样。
非常抱歉,我说的非常不客气,但是事实就是某些刻舟求剑的老人要么应该退居二线,要么应该说服的有理有据,要么应该被时代淘汰。 这也非常像尤其是第三世界国家的技术人员非常热衷的 CentOS ,祝愿他们在使用 CentOS Stream 9 的路上越走越远。 |
28
laminux29 18 天前
@Emiya1208
看来,你还没反省,还不知道你的问题。 我批评你,是因为你把 ZFS 这种单机系统,在生产环境里使用,这是大忌,并且你自己也说了,内存出现过故障,当时处理这个问题,停机了多久? CephFS 虽然有各种功能缺陷,但人家不存在单点问题。你觉得它扩容与平衡存在问题,那些都是可以通过架构与算法进行改进的,不至于导致整个系统停摆。 无论是我,还是你的领导,批评你,你觉得不对,是因为你的层次,还没到达我和你的领导的层面。 好好反省下吧。 |
29
wangdk23411 16 天前 ![]() 我有点看的云里雾里,纯探讨啊,生产环境也要分的吧,类云部署、私有化部署、分布式部署应该还都是有区别的吧
ceph 也不是万能的,开玩笑的说,ceph 对资源的需求就像是无底洞,对存储性能有要求上 ceph 就是找罪受啊 另外,ceph 也是可以 zfs volume 的😂 |