mdadm & raid6: “recriar (com tamanho diferente do pedaço) + resync” destrói o orig. dados?

1

Eu gostaria de resgatar dados no meu software raid-6 array. Eu fiz algumas ações estúpidas (descritas abaixo) com essa matriz original.

Pergunta principal:

Eu preciso saber se os dados originais armazenados no array raid-6 estão definitivamente perdidos (ou não) após as seguintes ações terem sido preparadas neste array (executado na ordem listada abaixo):

  1. zerando super-blocos de todos os discos / partições ativos registrados na matriz

  2. executando o "mdadm --create ..." comando usando diferentes opções (veja abaixo lista) do que foram usado quando a matriz foi criada originalmente: - > tamanho diferente do pedaço - > layout diferente - > ordem de discos diferentes

  3. ressincronizando a matriz

Nota: Valores específicos dos parâmetros do mdadm não devem ser relevantes aqui, pois trata-se do princípio de como o mdadm funciona ...

Eu acho que os pontos 1) & 2) não deve nem tocar nos dados originais, pois eles supostamente manipulam apenas superblocos

Eu vejo o ponto 3 como mais crítico do ponto de vista de dados perdidos: Não tenho certeza do que exatamente está acontecendo com o array durante a ressincronização, mas com base na atividade pesada de todos os discos rígidos envolvidos (por ~ 7 horas) suponha que a área de armazenamento de dados seja completamente reprocessada ...

Sub-perguntas:

  1. A ordenação de discos rígidos / partições (como são ordenados na linha de comando do mdadm) desempenha um papel para a criação do & raid6 & resync inicial?

  2. O que é necessário para fazer backup após a criação da matriz para poder recriar a matriz com segurança em situação semelhante à minha (por exemplo, informações de superblocos de backup e informações da tabela de partição para cada disco envolvido na matriz. .)?

Comentário:

O artigo do wiki do mdadm ( link ) deve ser revisado e o autor deve ser chutado um pouco, ou mais que só um pouquinho ...
O artigo menciona os superblocos de zeragem & recriação de matriz subseqüente como solução para se livrar do problema "mdadm: não é possível abrir ...: dispositivo ou recurso ocupado". Autor de alguma forma esqueceu de mencionar etapa importante - para fazer backup dos parâmetros da matriz original (superblocos) como o primeiro passo ... e também a minha investigação parece apontar que a ordenação dos discos envolvidos / partições desempenha papel também ...

Obrigado por respostas,
Peter

    
por schanhorst 19.10.2010 / 04:15

3 respostas

1

Eu olhei para o artigo da wikipedia, e o pouco sobre a exclusão do superbloco, etc., está certo, mas deve ser usado para resolver um problema diferente do que você aparentemente estava tentando resolver. A intenção do artigo é "limpar" uma unidade que tenha configurações RAID antigas para que você possa usá-la em uma nova matriz.

Você nunca deve limpar o superbloco em uma unidade que contém dados que você deseja preservar. O superbloco contém informações críticas sobre como os dados nessa unidade são organizados, portanto, apagar ou alterar o superbloco é inútil, a menos que você pretenda jogar fora os dados com ele.

    
por 19.10.2010 / 07:45
0

A parte confusa é:

crie e depois ressincronize por 7 horas.

Quando uma matriz é criada, o sistema de arquivos é geralmente criado na parte superior e não há ressincronização. Zerar os superblocos torna difícil para o conjunto de raid descobrir em qual ordem os drives estavam quando o raidset tenta se montar automaticamente. O que você fez com a criação? criá-lo com 2 drives, faltando 2, então crescer e adicionar os outros? ou você o criou como um conjunto raid-6 e adicionou todas as unidades ao mesmo tempo.

Se este último, não deveria ter ressincronizado. Se você não cresceu a matriz e as unidades ressincronizadas, soa quase como se detectasse uma parte da matriz. Após a ressincronização, você precisou criar um sistema de arquivos ou já existia um sistema de arquivos?

Se o tamanho do bloco mudou, isso não é bom. Se o alinhamento das partições mudou, novamente, não é bom. Ordem dos drives mudou, novamente, não é bom. Você tem várias coisas que provavelmente tornaram extremamente difícil recuperar os dados.

A única coisa que acho muito curiosa é a ressincronização. Raid-6 pode levar duas falhas de unidade e ainda ter a capacidade de recuperar. Mas, algumas das coisas que você fez quase me fazem pensar que você está em uma situação que será quase irrecuperável, exceto por especialistas.

    
por 19.10.2010 / 05:40
0

Você provavelmente está certo em afetar apenas os superblocos até que as unidades voltem a ser sincronizadas, mas neste momento isso não é um detalhe significativo. Por enquanto, seus dados estão em um estado desconhecido, mesmo que estejam lá.

Eu não acho que você será ajudado mais por conselhos que você lê na Internet, mesmo a partir deste site. Simplesmente experimentar coisas que você lê on-line é apenas um curso de ação válido se a falha não for um problema.

Se os dados forem muito importantes para você, recomendo transferir as unidades para um laboratório de recuperação de dados e permitir que elas trabalhem nele. Se seus dados ainda estiverem intactos de alguma forma, eles terão a experiência de saber como corrigir o problema sem causar mais danos.

Editar
Felizmente, como a reconstrução dos dados de paridade afetam APENAS os dados de paridade, teoricamente, você ainda pode ter informações suficientes para reconstruir seu conteúdo original, supondo que tenha começado com uma matriz limpa e saudável antes que essa confusão acontecesse.

No entanto, a reconstrução não seria trivial e exigiria muito trabalho criando um perfil do array à mão, especialmente se você alterasse algumas das dimensões de seu array quando sobrescrevesse os superblocos.

No entanto, quase definitivamente não sobreviveria a fazer esse tipo de coisa duas vezes.

    
por 19.10.2010 / 04:47