zfs 풀 메타데이터 손상

zfs 풀 메타데이터 손상

나는 바보입니다. 나는 이미 내 목록에 오프사이트 백업을 설정해 놓았는데.. 짐작하셨겠지만, 이 일이 발생하기 전에는 그 일을 하지 못했습니다. 실제로 로컬 백업이 올바르게 설정되어 있다고 생각했는데, 알고 보니 그렇지 않았습니다. 그래도:

저는 ZFS를 처음 사용합니다. Proxmox를 실행 중이고 HDA 카드의 9개 드라이브에서 풀의 TrueNAS VM에 대한 패스스루를 활성화했습니다. NVMe 드라이브가 두 개 있는데 그 중 하나만 캐싱용으로 설정하고 다른 하나는 Proxmox의 SSD용으로 설정한 것 같습니다. 이해할 수 없는 이유로 어제 zpool이 손상되었습니다. 내 Proxmox 호스트는 풀에 대해 알고 있는 것 같은데, TrueNAS 게스트에서 풀을 생성한 이후로 나에게는 이상합니다.

나는 및 플래그를 zpool import사용하여 실행을 시도했습니다 . 호스트에서 이 명령을 실행해야 할지, 게스트에서 실행해야 할지 잘 모르겠습니다. 나는 또한 사용을 시도했고 (호스트에서) 설정을 시도했지만 게스트에서 zpool을 가져 오기 전에는 시도하지 않았지만 솔직히 호스트 게스트가 할 수 있는 것 같아서 조금 무서워서 수영장을 이용하려고 하는데 이로 인해 문제가 발생할 수 있는지 잘 모르겠습니다.-f -F -FX-fFX--readonly=onecho 0 > /sys/module/zfs/parameters/spa_load_verify_metadata

제가 받는 오류는 메타데이터가 손상되었다는 것입니다. 이것이 관련이 있는지 모르겠습니다, 그러나 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 -luberblocks 목록을 덤프하고 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

관련 정보