ZFS 文件系统下总是会出现 Permanent errors

2022-09-22 01:41:38 +08:00
 dangyuluo

有一台主机,安装了 Proxmox 来跑几个虚拟机,文件系统选择的是 ZFS ,仅有一块 NVMe 硬盘。一周之前发生了一次无法启动的问题,具体错误显示为 rpool (也就是根目录的 pool )有太多的文件错误无法挂载。我一开始怀疑是硬盘的问题,就换上了另外一块硬盘,但是 12 小时以后又出现了文件错误,主要是发生在 log 文件内。可以理解因为 log 文件变动更加频繁。请问还有别可能原因么?

root@pve:~# zpool status -v
  pool: rpool
 state: DEGRADED
status: One or more devices has experienced an error resulting in data
	corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
	entire pool from backup.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
  scan: scrub repaired 0B in 00:00:23 with 94 errors on Wed Sep 21 10:36:12 2022
config:

	NAME                               STATE     READ WRITE CKSUM
	rpool                              DEGRADED     0     0     0
	  nvme-eui.002538b6115042e7-part3  DEGRADED     0     0   321  too many errors
1554 次点击
所在节点    ZFS
9 条回复
ryd994
2022-09-22 04:03:48 +08:00
比较可能是内存有问题
所以 zfs 特别推荐 ecc 内存。否则每次 resilver 都会损坏数据
eason1874
2022-09-22 04:23:16 +08:00
我也觉得可能是内存问题,PVE 官网建议使用至少 8GB 的高质量 ECC 内存

我经常手动清理内存,所以我不敢用 ZFS
ruidoBlanco
2022-09-22 06:12:42 +08:00
单盘又没有 ECC 内存就别为了「体验一下」而使用 zfs 。单盘性能不好不说,还容易各种出错。

zfs 是好,但是单盘绝对不是适合使用它的时候。
dangyuluo
2022-09-22 07:30:00 +08:00
@ryd994
@eason1874
用的是 32G 的非 ECC 内存


@ruidoBlanco 不是为了体验,而是要对 Proxmox 系统做比较大的改动,万一搞坏了用 ZFS 的快照功能很方便。如果再加一块硬盘组 RAIDZ1 会不会消除非 ECC 内存的影响?
dangyuluo
2022-09-22 07:36:30 +08:00
@ruidoBlanco 我猜还是会发生类似的错误
dangyuluo
2022-09-22 08:25:53 +08:00
奇怪了,发现我的 pfSense 路由器也是 zfs ,好好运行了十几个月了也没有一个 checksum error ,同样也不是 ECC 内存
ruidoBlanco
2022-09-22 09:09:59 +08:00
@dangyuluo 猜的就是猜的。为什么我说 zfs 单盘+非 ECC 容易出错?为什么我不喜欢用 xfs 、reiserfs 、jfs 之类?这些都是我以前踩过的坑。

zfs 单盘运行十几个月没问题,是的,还没有,突然断电一次,以后麻烦就不断。

LVM thin + ext4 稳如狗,性能也强过单盘 zfs ,快照也没问题。
ryd994
2022-09-22 17:21:55 +08:00
@dangyuluo 既然有可能是内存问题,就 memtest 跑一晚上看看。或者只留最低限度的内存试试。

如果 memtest 没问题,那再考虑 pcie 槽的问题。

memtest 查不出来的内存问题也有可能。那就替换法一个个查,和另一台机器交换硬件。
dangyuluo
2022-09-23 00:59:56 +08:00
@ryd994 用 Proxmox 自带的内存暴力测试跑了一个小时,全部通过。我昨天也意识到了 M.2 插槽确实有可能是原因,之前的 NVMe 硬盘插到了 M2P 插槽上,直接接到南桥上的,同时南桥也负责其他周边设备,比如一条 PCIe 3.0 Bus ,我把这条 PCIe BUS 直通给一台虚拟机了,不知道会不会是造成了干扰。今天把 NVMe 换到 M2A 接口上,12 小时后暂未发现错误。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

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

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX