손상된 zfs 스냅샷을 복구하는 데 도움이 됩니다.

손상된 zfs 스냅샷을 복구하는 데 도움이 됩니다.

Docker는 나를 속였습니다. sas 백플레인 문제 이후 zfs 시스템이 설치되지 않은 상태에서 서버가 시작되었습니다. 이로 인해 docker가 /data/servers/fs 아래에 깨끗한 디렉터리 구조를 생성하게 되었습니다(내 docker 구성이 데이터 위치를 저장한 위치입니다). .

백플레인 문제를 해결하고 나면 시스템이 부팅되고 모든 것이 괜찮아 보였습니다. 도커 컨테이너가 없다는 점을 제외하면. 디렉터리를 조사한 결과 "새" docker 실행의 파일만 있었기 때문에 docker가 아무 이유 없이 모든 것을 지웠다고 잘못 생각했습니다.

데이터 세트가 설치되지 않았다는 것을 알지 못했습니다! 그래서 이전 스냅샷에서 복원하고 싶습니다.

재귀적인 스냅샷을 만들었습니다. (이것이 나를 구해주기를 바랍니다!)

docker-fs 세트의 이전 스냅샷을 복원하려고 하면 스냅샷이 더 최신이므로 거부됩니다.

docker-fs 세트에 대해서만 새 스냅샷을 파기했습니다.

예전 스냅샷을 복원했습니다.

아직도 파일이 없습니다..

이 시점에서 나는 내가 망쳤다는 것을 알았습니다. zfs는 비어 있지 않은 디렉토리에 데이터 세트를 마운트하는 것을 정중하게 거부했습니다.

마운트 지점에서 자동 생성된 파일을 지웠고 너무 오래된 스냅샷이 제대로 마운트되었습니다.

다른 작업을 수행한 적이 없으므로 새 스냅샷으로 되돌릴 수 있는 기회가 있기를 바랍니다...

이것은 역사와 관련된 부분입니다. 제가 이상하기 때문에 제 탱크를 나뭇가지라고 부릅니다.

zpool 기록:

2022-11-26.15:46:50 zfs snapshot -r twig@full-2022-11-26-nodockerfs [user 0 (root) on delta:linux]
2022-11-26.15:47:54 [txg:39471260] destroy twig/servers/fs@full-2022-11-26-nodockerfs (671)  [on delta]
2022-11-26.15:47:56 ioctl destroy_snaps
    input:
        snaps:
            twig/servers/fs@full-2022-11-26-nodockerfs
 [user 0 (root) on delta:linux]
2022-11-26.15:47:56 zfs destroy twig/servers/fs@full-2022-11-26-nodockerfs [user 0 (root) on delta:linux]
2022-11-26.15:47:56 [txg:39471261] clone swap twig/servers/fs/%rollback (704) parent=fs [on delta]
2022-11-26.15:47:56 [txg:39471261] destroy twig/servers/fs/%rollback (704)  [on delta]
2022-11-26.15:48:03 ioctl rollback
    output:
        target: 'twig/servers/fs@2020-10-11-all'
 [user 0 (root) on delta:linux]
2022-11-26.15:48:03 zfs rollback twig/servers/fs@2020-10-11-all [user 0 (root) on delta:linux]

도커를 중지하고 데이터 세트를 제거했습니다. 아직 완전히 망하지는 않았습니다 ^_^

관련 정보