ZFS 풀을 생성한 후 복원

ZFS 풀을 생성한 후 복원

Ubuntu 14.04 시스템을 다시 설치하고 기존 zfs 드라이브를 마운트하려고 했습니다. 모든 데이터가 들어 있는 단일 드라이브입니다. OS는 다른 드라이브에 있고 zfs 드라이브에는 데이터만 보관됩니다.

풀 이름은 입니다 crystal.

급하게 (그렇습니다.) 그랬어요zpool create crystal /dev/disk-by-id/...etc...

이제 수영장은 비어 있습니다.

원래 풀을 복원하거나 데이터를 검색할 수 있는 방법이 있습니까?

답변1

안타깝게도:아니 정말.

zfs destroy다소 직관적이지 않지만 ZFS에는 주로 두 가지 파괴 작업이 있습니다 zpool create. 구체적으로, 명령은zpool destroy ~이다~ 아니다파괴적이며 실제로 실수를 빨리 깨닫는다면 매우 쉽게 되돌릴 수 있습니다.그것은 단순히 플래그를 설정하는데, 이 경우에는 zpool import -D당신의 친구입니다.

이러한 명령은 비슷하지만 약간 다른 이유로 파괴적입니다.

  • zfs destroy파괴되는 데이터세트에 대한 참조를 제거하므로 표준 도구를 사용하여 디스크에서 찾을 수 있는 방법이 없기 때문에 파괴적입니다. (그러나 또한 참조이 질문.)
  • zpool create이는 풀의 모든 überblock을 덮어쓰기 때문에 파괴적입니다. 이는 ZFS 코드가 디스크상의 Merkle 트리 데이터 구조의 시작을 찾을 수 있는 방법이 없음을 의미합니다. 트리의 루트를 찾을 수 없으면 나머지 데이터에 액세스할 수 없게 됩니다.

이 두 가지 모두 ZFS의 복잡한 온디스크 형식으로 인해 악화되어 복구 시도가 더욱 복잡해집니다. 대부분의 다른 파일 시스템에서는 파일이일반적으로연속적이거나 소수의 서로 다른 위치에 있어야 합니다. ZFS를 사용하면 위의 명령 중 어느 부분이 어디에 속하는지 나타내기 위해 아무것도 남지 않고 문자 그대로 디스크 전체에 데이터를 분산시키는 것이 완벽하게 가능합니다. 설상가상으로 압축된 데이터 블록을 찾고 있으며 중복 제거된 데이터도 찾고 있을 가능성이 높습니다. (중복 제거는 귀하의 시나리오에서는 불가능하지만 일반적인 경우에는 확실히 가능합니다.)

그것~할 것 같다데이터 복구를 위해 일부 ZFS 전문가의 도움을 받을 수도 있지만 일반 데이터 복구 서비스는 현 시점에서 도움을 줄 수 없으며 일반적으로 사용 가능한 파일 시스템 복구 소프트웨어는 ZFS도 이해하지 못합니다. 당신과 함께 일할 의향이 있는 사람들을 찾을 수 있다고 가정하면, 그것은 또한매우값비싼; 가격에 대한 언급을 봤습니다시작유사한 시나리오의 경우 5자리 달러 범위입니다.

이 시점에서 가장 좋은 선택은 아마도 최근 데이터 백업을 복원하고 계속해서 생활하는 것입니다.

귀하의 질문에 명시된 것과 유사한 명령으로 풀을 덮어쓸 수 있었던 이유가 솔직히 조금 의아합니다. 내 시스템에서는 비슷한 시나리오를 구성한 ZFS On Linux 0.6.4를 사용하여 zpool백업 create장치가 is part of exported pool '...'. 작업을 강제하기 위해 명시적으로 zpool에 전달하지 않는 한 비슷한 오류가 발생했을 것입니다. -f이 경우 ZFS에 예, 실제로는 정말 그렇습니다.원하다이것을하기 위해. 어느특히ZFS의 경우 일반적으로~ 아니다당신은 무엇을하길 원합니까.

관련 정보