zfs 池元数据损坏

zfs 池元数据损坏

我是一个白痴。我已经在我的清单上设置了异地备份,并且..你猜对了,在这件事发生之前我没有抽出时间来做这件事。我实际上以为我已经正确设置了本地备份,但事实证明,我没有。反正:

我是 ZFS 的新手。我正在运行 Proxmox,并在 HDA 卡上的 9 个驱动器上启用了到池的 TrueNAS VM 的直通。我有两个 NVMe 驱动器,但我认为我只设置了其中一个用于缓存,另一个用于 Proxmox 的 SSD。由于我不清楚的原因,我的 zpool 昨天损坏了。我的 Proxmox 主机似乎知道该池,这对我来说很奇怪,因为我在 TrueNAS 来宾中创建了该池。

我尝试过zpool import使用-f -F -FX-fFX标志运行。我不确定是否应该在主机或来宾上运行这些命令。我还尝试过使用--readonly=onand (在主机上)我尝试过设置echo 0 > /sys/module/zfs/parameters/spa_load_verify_metadata,尽管在尝试在来宾上导入 zpool 之前我没有尝试这样做,因为坦率地说,我有点害怕主机客人似乎可以使用游泳池,但我不确定这是否会导致问题。

我收到的错误是元数据已损坏。 我不知道这是否相关,但这发生在我尝试安装 GPU 并在 Proxmox 中为该设备启用 PCIe/GPU 直通的时候。

普罗克斯莫克斯:

root@proxmox:~# zpool import
   pool: Seabreeze
     id: 821564149027342835
  state: FAULTED
status: The pool metadata is corrupted.
 action: The pool cannot be imported due to damaged devices or data.
        The pool may be active on another system, but can be imported using
        the '-f' flag.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-72
 config:

        Seabreeze   FAULTED  corrupted data
          raidz2-0  FAULTED  corrupted data
            sdf2    ONLINE
            sdh2    ONLINE
            sdc2    ONLINE
            sde2    ONLINE
            sdj2    ONLINE
            sdb2    ONLINE
            sdg2    ONLINE
            sdd2    ONLINE
            sdi2    ONLINE
root@proxmox:~#

TrueNAS:

truenas% sudo zpool import
   pool: Seabreeze
     id: 821564149027342835
  state: FAULTED
status: The pool was last accessed by another system.
 action: The pool cannot be imported due to damaged devices or data.
        The pool may be active on another system, but can be imported using
        the '-f' flag.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
 config:

        Seabreeze                                       FAULTED  corrupted data
          raidz2-0                                      FAULTED  corrupted data
            gptid/bb911e9d-c067-11ec-b393-734570047b00  ONLINE
            gptid/bbb5c9f6-c067-11ec-b393-734570047b00  ONLINE
            gptid/bba92ac5-c067-11ec-b393-734570047b00  ONLINE
            gptid/bbbf0f87-c067-11ec-b393-734570047b00  ONLINE
            gptid/bbda0fa2-c067-11ec-b393-734570047b00  ONLINE
            gptid/bc03effa-c067-11ec-b393-734570047b00  ONLINE
            gptid/bc114e59-c067-11ec-b393-734570047b00  ONLINE
            gptid/bbd0f901-c067-11ec-b393-734570047b00  ONLINE
            gptid/bc18eaf4-c067-11ec-b393-734570047b00  ONLINE
truenas%

我的数据可以恢复吗?

答案1

我曾经zdb -u -l转储 uberblocks 列表,将vfs.zfs.spa.load_verify_metadata和设置为 0,并使用、、、和与旧 uberblock 的 txg 的vfs.zfs.spa.load_verify_data组合,以至少以只读形式到达数据存在的位置。从那里我可以看到哪些文件已损坏,然后解密池,并将文件级数据复制到外部硬盘。-n-N-R /some/Mountpoint-o readonly=on-Tzpool status -v

相关内容