zpool esqueceu todos os dispositivos de dados de um pool: como colocá-los online novamente?

1

Meu servidor Debian está executando o ZFS no Linux. Hoje eu tive que reiniciá-lo duas vezes devido a atualizações de software. Uma primeira reinicialização por causa da atualização do ZFS de 0.6.4-1.2-1-wheezy para 0.6.5.2-2-wheezy, que correu bem, pois depois eu acessei meu dir home na piscina. Após a última reinicialização, o zpool não importa o pool:

# zpool import
   pool: storage
     id: 4490463110120864267
  state: FAULTED
 status: The pool metadata is corrupted.
 action: The pool cannot be imported due to damaged devices or data.
   see: http://zfsonlinux.org/msg/ZFS-8000-72
 config:

        storage      FAULTED  corrupted data
        logs
          sda3       ONLINE
# zpool import storage
cannot import 'storage': I/O error
        Destroy and re-create the pool from
        a backup source.
# zpool import -F storage
cannot import 'storage': one or more devices is currently unavailable

Eu estou sentindo falta do meu conjunto completo, que deve ser lido assim:

    storage
      mirror
        scsi-SATA_WDC_WD30EFRX-68_WD-WMC1T2132687-part1
        scsi-SATA_WDC_WD30EFRX-68_WD-WMC1T2194187-part1

Como posso dizer ao zpool para usar as partições de dados? Tenho medo de tentar anexar os discos a esta piscina ou a uma nova piscina porque temo que os discos resp. seus metadados serão apagados.

Editar / atualizar:

  • talvez importante: depois de reler o history.log e o wtmp do apt, eu não tenho certeza se eu acessar o diretório home após a primeira reinicialização relacionada à atualização do ZFS. Enquanto isso, tentei voltar para a versão anterior, mas não consigo encontrar nenhum pacote do ZFS, exceto a versão mais recente.
  • Tenho dois discos rígidos para dados (sdb, sdc), particionados por GPT e as duas partições principais foram configuradas como um conjunto de reflexos no ZFS, usando / dev / disk / by-id. O dispositivo sda é um SSD com a instalação Debian, algum espaço VM e, em uma partição separada / dev / sda3, o SLOG / ZIL. Todos os discos estão diretamente conectados à placa-mãe.
  • O zfsonlinx-URL acima também sugere um "zpool clear -F storage" que responde "no pools available".
por ChristianM 23.12.2015 / 02:32

2 respostas

1

Dado o fato de que a perda de zpool ocorreu durante uma reinicialização regular, eu esperava que pelo menos a exportação zpool tivesse ocorrido. E mesmo que tenha sido fechado impuro, prefiro fazer trabalhos de resgate em cópias. Então eu adicionei um HDD grande ao meu sistema (que foi adicionado como sdb do dispositivo - obrigado udev) e o formatei com duas partições do mesmo tamanho que as partições do zfs nas unidades com falha. Como esse era um pool espelhado, copiei as duas partições antigas para as novas:

dd if=/dev/disk/by-id/scsi-SATA_WDC_WD30EFRX-68_WD-WMC1T2132687-part1 /dev/sdb1 bs=104800
dd if=/dev/disk/by-id/scsi-SATA_WDC_WD30EFRX-68_WD-WMC1T2194187-part1 /dev/sdb2 bs=104800

Agora eu tenho um sistema com dois espelhos idênticos.

# zpool import 
   pool: storage
     id: 4490463110120864267
  state: ONLINE
 status: Some supported features are not enabled on the pool.
 action: The pool can be imported using its name or numeric identifier, though
       some features will not be available without an explicit zpool upgrade'.
 config:

        storage                                             ONLINE
          mirror-0                                          ONLINE
            sdb1                                            ONLINE
            ata-WDC_WD30EFRX-68AX9N0_WD-WMC1T2194187-part1  ONLINE
        logs
          sda3                                              ONLINE
# zpool import storage
#

Hooray!

Enquanto isso, fiz backup dos dados duas vezes e restaurei para um novo zpool completo em andamento.

    
por 28.12.2015 / 13:10
0

O pool talvez não consiga encontrar seus discos desde que você especificou / dev / disk / by-id na sua criação original do pool. Note como o seu dispositivo de slog é reconhecido ...

Há um sinalizador de importação do pool, -d , que permite apontar o processo de importação em um diretório específico para consultar o dispositivo. Bons conselhos aqui .

Tente:

zpool import -F -d /dev/disk/by-id storage
    
por 24.12.2015 / 14:37