我们有一台运行 Ubuntu 20.04.6 LTS 的服务器。它是我们备份的辅助存储,在 RAIDZ3 中具有 12x8TB HDD,顶部有 XFS 文件系统。
几天前,一个驱动器出现故障。我想,“好吧,没问题,它是 RAIDZ3”,但甚至在我更换并重新同步损坏的驱动器之前,我注意到文件系统不再挂载。
我尝试手动安装它无济于事,运行:
sudo mount -t xfs /dev/zd0 /mnt/veeam_repo_prod
立即,它返回一个内核错误:“XFS(zd0):日志恢复写入I/O错误在daddr 0x1b1b70 len 4096错误-5”,后面是“mount:/mnt/ veeam_repo_prod:无法读取 /dev/zd0 上的超级块。”
我看不出任何问题zpool status -v
。
pool: zpool01
state: ONLINE
scan: scrub repaired 0B in 2 days 11:10:24 with 0 errors on Wed Feb 28 19:54:19 2024
config:
NAME STATE READ WRITE CKSUM
zpool01 ONLINE 0 0 0
raidz3-0 ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 0 0
sdg ONLINE 0 0 0
sdh ONLINE 0 0 0
scsi-351402ec000fe5847 ONLINE 0 0 0
scsi-351402ec000fe5848 ONLINE 0 0 0
scsi-351402ec000fe5849 ONLINE 0 0 0
scsi-351402ec000fe584a ONLINE 0 0 0
scsi-351402ec000fe584b ONLINE 0 0 0
errors: No known data errors
运行清理会返回 0B 已修复。
我尝试运行xfs_repair /dev/zd0
,然后它说日志中有有价值的元数据更改。运行xfs_repair -L /dev/zd0
再次返回 I/O 错误:“xfs_repair:libxfs_device_zero 写入失败:输入/输出错误”。
我简直没主意了。唯一的好处是,这只是备份的第二个副本,我可以从头开始,但重新复制所有数据需要几周的时间。另外,如果它发生过一次,它可能会再次发生,我不想在我们需要备份的那一天出现,但它又发生了。
我今天在 Reddit 提要中偶然找到了解决方案,就在我在这里提出问题的第二天;Reddit 上有人有同样的症状Reddit 帖子。
原因:
问题似乎是存储已满,虽然我不知道怎么办,因为它应该只半满,但这是另一天的问题。
解决方案:
一种方法显然是如果可能的话添加更多驱动器。由于这在我的情况下是不可能的,我不得不采取另一种方法。值得庆幸的是,Reddit 帖子中也给出了解决方案。我将值增加到
/sys/module/zfs/parameters/spa_slop_shift
15。这使我可以将配额再增加zpool01/veeam
1TB (sudo zfs set quota=61T zpool01/veeam
)。借助新可用的存储,我能够正常再次挂载 XFS,并且能够删除一些文件并暂时降低保留率。您正在 ZFS zvol 之上运行 XFS 文件系统。堆叠文件系统。当底层 ZFS 报告正常时,XFS 可能会崩溃。
您能否提供硬件、控制器和操作系统以及 ZFS 版本详细信息的详细信息?
根据池故障驱动器的性质,ZFS 端可能需要修复(因为它不知道 XFS 文件系统的内容)。
dmesg
。你能发布那个吗?如果所有其他方法均失败,可以寻求专业帮助或使用 UFS Explorer 进行恢复:
另请参阅:如何恢复“超级块读取失败”的 XFS 文件系统