Recuperar matriz RAID5 do software Linux após a atualização do servidor

2

Atualizei recentemente um servidor do Fedora 6 para o Fedora 14. Além do disco rígido principal em que o sistema operacional está instalado, tenho 3 discos rígidos de 1 TB configurados para RAID5 (via software). Após a atualização, notei que um dos discos rígidos havia sido removido da matriz de ataques. Tentei adicioná-lo novamente com o mdadm --add, mas ele apenas o substituiu. Imaginei que voltaria mais tarde.

Então, ao executar uma reinicialização, o sistema não conseguiu montar a matriz de ataques. Eu o removi do fstab para poder inicializar o sistema e agora estou tentando recuperar o array raid.

Eu executei o seguinte:

mdadm --create /dev/md0 --assume-clean --level=5 --chunk=64 --raid-devices=3 missing /dev/sdc1 /dev/sdd1

Eu sei que meu tamanho de bloco é 64k e "ausente" é para a unidade que foi expulsa da matriz (/ dev / sdb1).

Isso pareceu funcionar, e o mdadm relata que a matriz está executando "limpa, degradada" com a unidade ausente.

No entanto, não consigo montar a matriz de ataque. Quando tento:

mount -t ext3 /dev/md0 /mnt/foo

Eu recebo:

mount: wrong fs type, bad option, bad superblock on /dev/md0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

e / var / log / messages mostra:

EXT3-fs (md0): error: can't find ext3 filesystem on dev md0.

Alguém tem alguma idéia do que tentar em seguida?

jstevej
fonte
Você já tentou montar duas das três unidades? Não tenho certeza se o RAID-5 funcionará com apenas uma das três unidades.
Diego Sevilla
Sim, foi o que fiz com o comando mdadm --create. Você notará no final que especifiquei as três unidades como "ausentes", "/ dev / sdc1" e "/ dev / sdd1". Além disso, mdadm --query --details / dev / md0 relata a matriz como "limpa, degradada", o que seria de esperar de uma matriz RAID5 sem uma unidade.
Jstevej

Respostas:

0

Você pode estar missingna posição errada. Somente a posição correta das unidades e missingfuncionará. Apenas corra:

mdadm --examine  /dev/sdb1

Isso produzirá (entre outras coisas) as informações de qual número no RAID está realmente ausente. Procure a thislinha:

      Number   Major   Minor   RaidDevice State
this     0     253       13        0      active sync   /dev/dm-13

Nesse caso, é o número 0 (= primeiro dispositivo) e, activecomo meu RAID está online agora. Agora você sabe qual unidade deve ser especificada como missing.

Mas você ainda tem duas opções: A ordem das unidades de trabalho também pode precisar ser trocada. No entanto, essas informações são perdidas porque foram substituídas pela sua tentativa de remontagem.

Turbo J
fonte
Eu tentei sua sugestão; Na verdade, eu tentei todas as 6 combinações possíveis de ordem de unidade (falta sdc1 sdd1, falta sdd1 sdc1, sdc1 falta sdd1, sdd1 falta sdc1, sdc1 sdd1 falta, sdd1 sdc1 falta), mas todas elas me deram o mesmo erro de montagem.
Jstevej
0

uma das coisas que descobri é que mdadm --create /dev/md0 --assume-cleansó funcionará corretamente se você usar a mesma (ou fechar) versão do mdadm que foi usada para criar a matriz original. Isso porque eles usam deslocamentos diferentes para dados e metadados, mesmo que a mesma versão do superbloco (como 1.2)

O problema é que a saída mdadm sempre diz que a matriz foi recriada, mas os dados contidos em / dev / md0 estarão errados.

por exemplo, o uso recente do mdadm 3.3.2 ou mesmo do 3.2.5 anterior não funcionou para mim, mas voltar ao mdadm 3.1.4 (que criou a matriz) funcionou bem.

Observe que também tomei o cuidado de especificar as unidades na ordem correta (conforme detalhado em mdadm --examine /dev/sd?) ao recriar a matriz e usar arquivos de sobreposição para todos os testes (para não aumentar o dano), usando as instruções em https: //raid.wiki.kernel .org / index.php / Recovering_a_failed_software_RAID

No meu caso, o problema era o RAID5 de 6 discos, que estava sendo aumentado para 7 discos, mas não progrediu, de modo que foi interrompido e não foi mais montado mdadm: Failed to restore critical section for reshape, sorry., --forcee --invalid-backuptambém não estava ajudando, então tive que usar--create --assume-clean

Matija Nalis
fonte