从具有两个故障 SLOG 设备的 ZFS 池中恢复而不重新创建池并进行恢复?

从具有两个故障 SLOG 设备的 ZFS 池中恢复而不重新创建池并进行恢复?

我不小心将镜子的两侧分配给同一个物理设备。该驱动器出现故障,我已经从几个丢失的文件中恢复了。

这是游泳池:

# uname -a
FreeBSD nas.d20int.d20hobbies.com 13.1-RELEASE-p3 FreeBSD 13.1-RELEASE-p3 GENERIC amd64
# zpool version
zfs-2.1.4-FreeBSD_g52bad4f23
zfs-kmod-2.1.4-FreeBSD_g52bad4f23
# zpool status tank
  pool: tank
 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 1 days 12:42:12 with 0 errors on Mon Dec  5 01:40:59 2022
remove: Removal of vdev 3 copied 92K in 0h0m, completed on Sun Nov  7 17:33:13 2021
    96 memory used for removed device mappings
config:

    NAME                      STATE     READ WRITE CKSUM
    tank                      DEGRADED     0     0     0
...
    logs
      mirror-4                UNAVAIL      0     0     0  insufficient replicas
        17044230459986981390  UNAVAIL      0     0     0  was /dev/nvd1p1
        6464196606234086602   UNAVAIL      0     0     0  was /dev/nvd1p2

这些命令会产生以下错误:

# zpool detach tank 17044230459986981390
cannot detach 17044230459986981390: no valid replicas
# zpool remove tank 17044230459986981390
cannot remove 17044230459986981390: operation not supported on this type of pool
# zpool remove tank mirror-4
cannot remove mirror-4: Mount encrypted datasets to replay logs.

池未加密。错误就是错误。此选项不会产生不同的sysctl vfs.zfs.zil.replay_disable=1. kstat.zfs.misc.dbgmsg 内核消息缓冲区中没有显示相关错误。重新启动没有问题(它恢复正常),但不能解决问题。

我开了一个openzfs 上的票证,但没有人回应。

有没有办法进一步解决这个问题?或者以其他方式删除 SLOG 而不恢复?

相关内容