Restaurar o pool do ZFS depois de criar sobre ele

2

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

O nome do pool é crystal .

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

A piscina está vazia agora.

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

    
por remmelt 12.10.2015 / 00:33

1 resposta

1

Infelizmente: Não, não realmente.

Existem, de maneira pouco intuitiva, basicamente duas operações destrutivas no ZFS: zfs destroy e zpool create . Especificamente, o comando zpool destroy não é não destrutivo e, de fato, é facilmente reversível se você apenas perceber seu erro rapidamente; ele simplesmente define um sinalizador, caso em que zpool import -D é seu amigo.

Estes comandos são destrutivos por razões 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 qualquer ferramenta padrão. (Mas veja também esta questão .)
  • zpool create é destrutivo porque substitui todos os überblocks do conjunto, o que significa que não há como o código do ZFS encontrar o início das estruturas de dados da árvore Merkle no disco. Depois que a raiz da árvore não puder ser encontrada, o resto dos dados ficará inacessível.

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

É possível inscrever alguns especialistas do ZFS na recuperação de seus dados, mas é improvável que os serviços comuns de recuperação de dados possam ajudá-lo nesse ponto e o software de recuperação de sistemas de arquivos comumente disponível não é Até mesmo entender o ZFS. Supondo que você possa encontrar pessoas dispostas a trabalhar com você, isso também será muito caro; Vi menções de preços começando no intervalo de cinco dígitos para cenários semelhantes.

Sua melhor escolha neste momento é provavelmente restaurar um backup recente de seus dados e continuar com a vida.

Estou sinceramente um pouco confuso porque você foi capaz de substituir o pool com um comando semelhante ao indicado na sua pergunta. No meu sistema, com o ZFS No Linux 0.6.4, tendo construído um cenário semelhante, zpool recusa a operação create com um erro "especificação vdev inválida" informando que o dispositivo de backup is part of exported pool '...' . Você deve ter recebido um erro semelhante, a menos que tenha passado explicitamente -f para zpool para forçar a operação. Nesse caso, você está dizendo ao ZFS que sim, na verdade você realmente quer que isso seja feito. O que especialmente no caso do ZFS geralmente não é o que você quer fazer.

    
por 19.10.2015 / 15:42

Tags