ZFS mostra o estado do conjunto FAULTED, mas todos os dispositivos estão ONLINE; Como posso recuperar meus dados?

5

Nosso NAS de 100 TB baseado no FreeNAS 8 foi desligado inesperadamente devido a uma falha de energia. Depois de ativá-lo de volta, "projetos" zpool de 100 TB foram desmontados com o estado "FAULTED".

Eu tentei zpool import -fFX , estava funcionando por cerca de 20 horas, mas nada aconteceu. Eu reiniciei o servidor com o botão reset porque os comandos kill -9 e reboot não funcionavam.

Algumas saídas:

[root@Projects_new] ~# zpool import
   pool: projects
     id: 8560768094429092391
  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: http://www.sun.com/msg/ZFS-8000-72
 config:

    projects                                      FAULTED  corrupted data
      gptid/49d49544-5a47-11e2-b516-00259095142c  ONLINE    ok
      gptid/49f3c886-5a47-11e2-b516-00259095142c  ONLINE    ok
      gptid/4a1052aa-5a47-11e2-b516-00259095142c  ONLINE    ok
      gptid/4a32bf15-5a47-11e2-b516-00259095142c  ONLINE    ok
      gptid/4a9b51d3-5a47-11e2-b516-00259095142c  ONLINE    ok
      gptid/4b2ee18b-5a47-11e2-b516-00259095142c  ONLINE    ok

Também encontrei a opção não documentada: zpool import -V projects , depois que o zpool foi importado, mas ainda inacessível:

[root@Projects_new] ~/zpool_restore# zpool status
  pool: projects
 state: FAULTED
status: The pool metadata is corrupted and the pool cannot be opened.
action: Destroy and re-create the pool from
    a backup source.
   see: http://www.sun.com/msg/ZFS-8000-72
  scan: none requested
config:

    NAME                                          STATE     READ WRITE CKSUM
    projects                                      FAULTED      0     0     1
      gptid/49d49544-5a47-11e2-b516-00259095142c  ONLINE       0     0     0
      gptid/49f3c886-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
      gptid/4a1052aa-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
      gptid/4a32bf15-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
      gptid/4a9b51d3-5a47-11e2-b516-00259095142c  ONLINE       0     0     0
      gptid/4b2ee18b-5a47-11e2-b516-00259095142c  ONLINE       0     0     0

Nesse estado, zpool clear -f projects envia "erro de E / S".

/ dev / gptid / 4 * são dispositivos RAID0: 4 em 4 controladores Adaptec e 2 em 1 controlador LSI.

Existe alguma maneira de importar e corrigir zpool e salvar dados?

    
por Sergey Andrianov 05.03.2015 / 15:05

1 resposta

2

NAME                                          STATE     READ WRITE CKSUM
projects                                      FAULTED      0     0     1
  gptid/49d49544-5a47-11e2-b516-00259095142c  ONLINE       0     0     0
  gptid/49f3c886-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
  gptid/4a1052aa-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
  gptid/4a32bf15-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
  gptid/4a9b51d3-5a47-11e2-b516-00259095142c  ONLINE       0     0     0
  gptid/4b2ee18b-5a47-11e2-b516-00259095142c  ONLINE       0     0     0

/dev/gptid/4* are RAID0 devices: 4 on 4 Adaptec controllers and 2 on 1 LSI controller.

Então deixe-me começar por algo direto. Você tem um pool do ZFS que consiste em seis dispositivos (conforme visto pelo ZFS), distribuídos sem redundância. Cada um deles consiste em algum número desconhecido de dispositivos de armazenamento físico, eles mesmos distribuídos sem redundância. Uma estimativa conservadora diz que você tem algo na ordem de 20 a 25 spinners, possivelmente mais, todos os quais têm que funcionar perfeitamente para que sua configuração seja estável. Lembre-se que falhas de disco físico são na melhor das hipóteses não correlacionadas, e na prática tendem a acontecer em lotes em ambientes compartilhados (se um disco falhar, é provável que um ou mais outros sejam marginais e podem até falhar simplesmente sob o estresse de resilvering). Isso cria o melhor cenário possível, com 25 discos, a probabilidade de falha é 25x a de um único disco, porque você tem 25 deles com a mesma probabilidade de falha que teria se estivesse sozinho.

Agora, algumas dessas unidades (ou possivelmente os controladores) aparentemente desenvolveram algum tipo de problema, que está sendo transmitido e reportado pelo ZFS.

Nesse ponto, minha pergunta é mais ou menos "o que você espera que o ZFS faça?". E, infelizmente, acho que a resposta tanto a essa como à sua pergunta é que não, realmente não há muito a ser feito neste momento.

O ZFS não é mágico. É altamente resiliente a muitos tipos diferentes de falhas, mas, uma vez quebrado, tem a tendência de fazê-lo de maneiras espetaculares. Você pode reduzir o risco de quebra usando seus recursos de redundância, que por qualquer motivo você optou por não fazer. Seu formato complexo em disco também torna a recuperação muito mais complicada do que, por exemplo, UFS, NTFS ou ext3 / 4.

Se zpool import -fFX não recuperar seu pool para um estado utilizável, sua melhor aposta será recriar o pool de maneira sã e restaurar o backup mais recente. Isso inclui adicionar alguma redundância, de modo que, mesmo que um controlador ou fonte de alimentação inteira falhe, o conjunto inteiro não falhará. Além disso, configure seus controladores para expor os discos brutos de maneira JBOD ao ZFS e use o suporte de redundância do ZFS para adicionar redundância ao seu armazenamento; Isso permite que o ZFS tome decisões sobre onde colocar dados e como organizar a redundância para tentar reduzir o risco de falha. (Por exemplo, os metadados podem ser armazenados de forma redundante, copiando-os para vários vdevs independentes.)

    
por 13.03.2015 / 10:59