XFS / ZFS - 无法挂载文件系统 - I/O 错误

XFS / ZFS - 无法挂载文件系统 - I/O 错误

我们有一台装有 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 长度 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 写入失败:输入/输出错误”。

我简直没有主意了。唯一的好处是它只是备份的第二个副本,我可以从头开始,但重新复制所有数据需要数周时间。此外,如果它发生过一次,它可能会再次发生,我不想在我们需要备份的那一天再次发生这种情况。

答案1

今天,我偶然在 Reddit 上找到了解决方案,就在我在这里提问的第二天;Reddit 上有人遇到了同样的情况Reddit 帖子

原因:

问题似乎是存储已满,虽然我不知道怎么回事,因为它应该只有半满,但这是另一天的问题。

解决方案:

一种方法显然是尽可能添加更多驱动器。由于这在我的处境下是不可能的,所以我不得不采取另一种方法。幸运的是,解决方案也在 Reddit 帖子中。我将值增加到/sys/module/zfs/parameters/spa_slop_shift15。这使我能够将配额再增加zpool01/veeam1TB(sudo zfs set quota=61T zpool01/veeam)。有了新的可用存储,我能够再次正常挂载我的 XFS,并且能够删除一些文件并暂时降低保留时间。

答案2

您正在 ZFS zvol 上运行 XFS 文件系统。堆叠文件系统。XFS 可能会中断,而底层 ZFS 则报告正常。

您能提供有关硬件、控制器、操作系统和 ZFS 版本的详细信息吗?

根据池故障驱动器的性质,可能需要在 ZFS 端进行修复(因为它不知道您的 XFS 文件系统的内容)。

  • 真正的 zpool scrub 是一个好的开始。
  • 输出中可能会有有价值的输出dmesg。你能发布一下吗?

如果其他方法都失败了,可以寻求专业人士的帮助或使用 UFS Explorer 进行恢复:

另请参阅:如何恢复出现“超级块读取失败”的 XFS 文件系统

相关内容