ZFS Recovery Mirror-0 Dispositivo ausente UNAVAIL

ZFS Recovery Mirror-0 Dispositivo ausente UNAVAIL

Sou novo no ZFS e estraguei tudo. Eu tinha vários pools ZFS porque não sabia que você poderia ter espelhos separados no mesmo pool. Ainda estou reconstruindo o array, então um dos meus espelhos estava vazio. Eu o destruí, adicionei ao pool principal e tudo ficou bem.

Em seguida, configurei a propriedade read desse espelho como somente leitura e não consegui. Tentei então remover apenas aquele espelho, mas não consegui. Por fim, tentei exportar o pool e escrevi no segundo espelho (que não tinha dados) e tentei importar o pool principal. Meus pensamentos onde ele apareceria como aquele espelho estava faltando/degradado, mas o primeiro espelho estaria OK, não tive tanta sorte. Agora não consigo importar o zpool, embora (suspeito) que o mirror-0 esteja funcionando corretamente.

Estou me perguntando se existe uma maneira de hackear isso? Eu estava pensando em definir manualmente o UUID/PARTUUID do espelho extra apenas para importá-lo, mas é claro que tudo online é sobre ext4 e não encontrei uma maneira de manipular o UUID para ZFS.

Existe alguma maneira de forçar isso para importar ou remover a expectativa de zpools do segundo espelho para que ele monte o primeiro? Ou, finalmente, mover o mirror-0 para seu próprio zpool sem destruir dados?

Se sentindo perdido...

Aqui estão alguns dados:

nome do zpoolbigdataa

mirror-0 should have a functionion set of data

 pool: bigdataa
     id: 8521961398473378259
  state: UNAVAIL
 status: One or more devices contains corrupted data.
 action: The pool cannot be imported due to damaged devices or data.
   see: http://zfsonlinux.org/msg/ZFS-8000-5E
 config:

    bigdataa                                  UNAVAIL  insufficient replicas
      mirror-0                                ONLINE
        12d9fdf5-9912-4b47-a67c-73376cabe161  ONLINE
        0f8cbe38-fce7-ba4d-85fb-f0b624ef4c70  ONLINE
      615ac488-0519-4a31-88ea-ddc81595c9b7    ONLINE
      mirror-2                                UNAVAIL  insufficient replicas
        aef43ae1-2bff-4eac-8c91-7818b1ec37fd  FAULTED  corrupted data
        8d1e0a1e-9736-4a28-a968-555fe65e9d17  FAULTED  corrupted data

Responder1

Fiz uma extensa pesquisa e não consegui encontrar uma maneira de montar a piscina. Manterei pools separados avançando para poder manipular propriedades de espelhos individuais e montar espelhos únicos quando não houver problema (não estou impressionado com a forma como isso funcionou ...) e usar MergeFS para apresentar um pool único final.

Eu tentei o UFS Explorer RAID Recovery (tudo o que acabei precisando foi o UFS Explorer Recovery, que custava $ 70CAD, muito mais fácil de engolir e agora tenho um ótimo software em meu kit de ferramentas) e depois da noite passada, ele concluiu a varredura e parece ter encontrado todos os meus arquivos. Vou pegar o preço de $ 200CAD e atualizar com os resultados finais, mas tudo parece bem!

Atualização: no momento estou salvando todos os meus arquivos até agora tudo parece ótimo. Ironicamente, percebi que nem precisava "procurar arquivos perdidos", pois a estrutura da partição/arquivo nunca foi alterada, parece que de alguma forma este software é capaz de visualizar discos individuais em um espelho sem "importar" o pool ou ter o outros discos disponíveis. (Confirmei isso não digitalizando, mas indo direto para "visualizar arquivos" em meus outros discos espelhados)

Acho que esses caras não têm ideia do que estão falando... Eu odeio pessoas que apenas trollam com feedback negativo/inútil...

https://www.ixsystems.com/community/threads/recovery-tool-for-zfs.23008/post-138885

insira a descrição da imagem aqui

Responder2

A maneira como você construiu aqui mostra que seus dados são distribuídos (RAID-0) no espelho-0, no espelho-2 e em outro disco. Então, quando você substituiu o mirror-2, o ZFS pensou que metade dos seus dados foram perdidos e é por isso que você não conseguiu importar o pool. Seria como se você configurasse uma matriz RAID-0 de três discos e depois limpasse um dos discos - todos os dados se tornariam inacessíveis porque é assim que a distribuição funciona.

Isso explica por que você também não conseguiu definir a propriedade readonly no mirror-2. Seria como tentar marcar um disco na matriz RAID-0 como somente leitura, o que não pode ser feito, pois as gravações precisam ser distribuídas em todos os discos da matriz RAID-0. Você não pode marcar cada terceiro bloco no seu dispositivo de armazenamento como somente leitura!

Parece que você ainda não tinha dados no mirror-2, mas parece que o ZFS não sabia disso e é por isso que se recusou a importar o array depois que o disco foi sobrescrito.

Acho que talvez você esteja assumindo que todos os dispositivos/vdevs no pool são espelhos uns dos outros, mas na verdade o ZFS distribui os dados em cada vdev no pool. É por isso que você deve criar um espelho vdev especial se quiser que os dados sejam espelhados em vez de distribuídos.

informação relacionada