Restaure o pool ZFS após criá-lo

Restaure o pool ZFS após criá-lo

Reinstalei meu sistema Ubuntu 14.04 e tentei montar minha unidade zfs existente. É uma única unidade com todos os dados nela. O sistema operacional está em uma unidade diferente, a unidade zfs contém apenas dados.

O nome da piscina é crystal.

Na minha pressa (sim.) eu fizzpool create crystal /dev/disk-by-id/...etc...

A piscina agora está vazia.

Existe alguma maneira de restaurar o pool original e/ou recuperar os dados?

Responder1

Infelizmente:Não, na verdade não.

Existem, de forma um tanto não intuitiva, principalmente duas operações destrutivas no ZFS: zfs destroye zpool create. Especificamente, o comandozpool destroy énãodestrutivo e, na verdade, é facilmente reversível se você perceber seu erro rapidamente;simplesmente define uma bandeira e, nesse caso, zpool import -Dé seu amigo.

Esses comandos são destrutivos por motivos semelhantes, mas ligeiramente diferentes:

  • zfs destroyé destrutivo porque remove as referências ao conjunto de dados que está sendo destruído, portanto não há como encontrá-lo no disco usando ferramentas padrão. (Mas veja tambémessa questão.)
  • zpool createé destrutivo porque substitui todos os überblocks do pool, o que significa que não há como o código ZFS encontrar o início das estruturas de dados da árvore Merkle no disco. Quando a raiz da árvore não puder ser encontrada, o restante dos dados ficará inacessível.

Ambos são agravados pelo complexo formato em disco do ZFS, o que complica ainda mais qualquer tentativa de recuperação. Com a maioria dos outros sistemas de arquivos, os arquivos serãogeralmenteser contíguos ou em um pequeno número de locais distintos. Com o ZFS, é perfeitamente possível que os dados sejam espalhados literalmente por todo o disco, sem sobrar nada após qualquer um dos comandos acima para indicar quais partes pertencem a onde. Para piorar ainda mais a situação, você certamente está procurando blocos de dados compactados e, possivelmente, também dados desduplicados. (A desduplicação não é provável no seu cenário, mas certamente é uma possibilidade no caso geral.)

Istopoderserá possível contratar alguns especialistas em ZFS para recuperar seus dados, mas é improvável que os serviços comuns de recuperação de dados sejam capazes de ajudá-lo neste ponto, e os softwares de recuperação de sistema de arquivos comumente disponíveis nem sequer entendem o ZFS. Supondo que você encontre pessoas dispostas a trabalhar com você, também serámuitocaro; Eu vi menções de preçosiniciandona faixa de dólares de cinco dígitos para cenários semelhantes.

Sua melhor escolha neste momento é provavelmente restaurar um backup recente de seus dados e seguir em frente com sua vida.

Sinceramente, estou um pouco confuso por que você conseguiu substituir o pool com um comando semelhante ao indicado na sua pergunta. No meu sistema, com ZFS On Linux 0.6.4, tendo construído um cenário semelhante, zpoolrecusa a createoperação com um erro de "especificação vdev inválida" informando que o dispositivo de backup is part of exported pool '...'. Você deveria ter recebido um erro semelhante, a menos que tenha passado explicitamente -fpara zpool para forçar a operação; nesse caso, você está dizendo ao ZFS que sim, você realmente realmentequererpara fazer isso. Qualespecialmenteno caso do ZFS é geralmentenãoO que você quer fazer.

informação relacionada