Recuperar RAID-5 que já estava em execução no modo degradado (perdeu um segundo disco)

3

isso é bobagem, isso já aconteceu antes e eu descobri como consertá-lo e tudo bem.

Estou executando 4 unidades SATA de 500 GB em um RAID-5 no servidor Ubuntu 7.10. Um dos discos falhou (na verdade, acho que é um dos conectores da gaiola hot swap) e está sendo executado em três discos enquanto eu encontro um HDD de substituição ou diagnostico ainda mais o problema.

Agora, antes de você ler mais, NÃO, eu não tenho backups e as informações não são super importantes, é bom tê-las.

De qualquer forma, uma vez antes, eu tive algum tipo de soluço de HW, talvez a energia tenha sumido ou algo assim, e eu tive problemas para recuperar a matriz. Não foi que um dos discos falhou, foi outra coisa.

Consegui simplesmente adicionar de volta no segundo disco "com falha" e, em alguns minutos, eu estava de volta à ativa. Talvez eu tenha que executar algum tipo de verificação do sistema de arquivos, não sei.

Passei horas, se não dias, tentando descobrir como fazer isso da última vez e desde então me esqueci.

O ponto crucial do problema é que, se eu executar um mdadm --examine em sdb, sdc e sdd, o sdd acha que ainda faz parte do array, mas nas informações do superblock de sdb e sdc, ele lista o sdd como removido.

sda é o disco que falhou muito antes, está listado corretamente em todos eles como defeituoso removido.

TIA. O servidor em questão não está na internet, por isso não é possível enviar a saída de vários comandos para o fórum.

Eu sei, agora muitos de vocês provavelmente acham que sou um idiota, ou pior. No entanto, lembro-me que uma vez que eu descobri a série de comandos para executar, foi um procedimento bastante simples e funcionou muito bem.

    
por Inovagent 07.10.2009 / 00:53

6 respostas

3

Desde que as unidades não tenham realmente falhado, mas estejam temporariamente indisponíveis ou, por alguma outra razão, tenham saído de sincronia, você pode tentar forçar a invasão online ignorando o registro de número / hora da alteração de cada membro.

Ao fazer isso, você corre o risco de corromper os dados, especialmente se você não souber qual unidade ficou offline por último, mas parece que você tem poucas opções.

Leia sobre as várias maneiras de usar a opção --force na página do manual do mdadm.

Se uma das unidades tiver realmente falhado e outra estiver fora de sincronia, você ainda poderá colocar o raid online fornecendo "ausente" como a ID do dispositivo para a unidade com falha, combinada com a opção --force. Isso deve iniciar o ataque como degradado.

    
por 07.10.2009 / 09:51
1

O RAID5 deve se recuperar de uma falha de dois discos ? Eu pensei que não deveria. O que você está procurando é provavelmente os comandos para hot-remove e hot-add drives para o array de raid.

mdadm --remove /dev/md0 /dev/sdX
mdadm --add /dev/md0 /dev/sdX
    
por 07.10.2009 / 01:48
1

Se o else falhar, você poderá usar o raidextract: link

    
por 16.10.2009 / 22:30
0

Você poderia fazer:

mdadm --stop /dev/md0
mdadm --assemble --force /dev/md0 /dev/sdX /dev/sdY...

lembre-se de dar as unidades na mesma ordem em que foram originalmente criadas e com os mesmos tamanhos de faixa etc. Também sugiro que você imagine as unidades primeiro.

    
por 07.10.2009 / 02:30
0

você poderia tentar mdadm --create /dev/md0 --level=5 --raid-devices=4 missing /dev/sd{b..d}

que eu adaptei de um Thread LinuxQuestions e um um tópico do Ubuntu

    
por 07.10.2009 / 02:44
0

Obrigado pela ajuda. Tentei explicitamente declarar os membros com os quais montar e receberia erros como "ausente: dispositivo não encontrado"

Então eu tentei apenas - forçar o início da matriz e funcionou como um encanto. Não há necessidade de lembrar em que ordem os dispositivos estavam ou algo assim.

    
por 17.10.2009 / 16:28