Como evitar a reconstrução de soft-RAID na inicialização

0

Eu tenho aqui um problema sério no meu servidor doméstico: Eu tenho um LVM em um array RAID5. Como a memória ficou curta, decidi ampliar o array RAID (e depois o PV + VG + LVs). Até aí tudo bem.

Parei o sistema e instalei o disco rígido adicional fisicamente. Foi detectado e eu fechei a caixa do servidor e fui embora (eu não moro no lugar onde o servidor está localizado; é cerca de 200 km de distância). Agora eu loguei (de longe) via SSH no servidor e fiz o seguinte: Eu criei o rótulo da partição e uma partição correspondente no novo dispositivo e adicionei a partição com mdadm /dev/md1 --add /dev/sde1 à matriz md1 como um hot spare. Em um segundo passo eu queria ampliar o array com mdadm --grow /dev/md1 -n 4 (de 3 para 4 dispositivos). A matriz começou a ser reconstruída.

Após um curto período de tempo, recebi o problema: A matriz caiu. Na verdade, vejo na saída de dmesg algumas linhas mencionando que o processo de sincronização foi interrompido e que o dispositivo ( /dev/md1 ) não estava respondendo e bloqueado por > 120 segundos. Desde então, todo acesso ao array (via LVs montados) apenas bloqueia. Após algumas pesquisas na rede, descobri que isso pode acontecer devido a um stripe_cache_size muito pequeno na reconstrução (o valor real é 256).

O principal problema agora é que o PV contém um LV que é o meu sistema de arquivos raiz! Assim, não posso fazer nada assim que o RAID bloqueia. Eu ainda não consigo abrir nenhum editor ou usar cat /proc/mdstat , pois esses comandos precisam acessar o sistema de arquivos raiz onde os programas residem. Agora procuro uma possibilidade de reparar o sistema. Eu vejo apenas duas soluções:

  • Eu vou lá pessoalmente de novo e reinicio a partir de um CD de início, garanto um cache grande e deixo o processo de reconstrução rodar até terminar. Então eu reinicio o sistema original que deve iniciar normalmente. A desvantagem é que eu tenho que ficar ao lado da máquina até que a reconstrução seja feita completamente.
  • Eu reinicio o sistema diretamente e evito o processo de ressincronização para iniciar (1). Então eu mudo o tamanho do cache e deixo o sistema fazer a reconstrução, na verdade. Isso pode ser possível sem que eu tenha que dirigir 400 km para uma simples reinicialização, já que posso dizer a alguém que está lá o que fazer.

Agora a pergunta (1) é: Posso de alguma forma evitar / impedir a reconstrução automática da matriz?

Eu pensei em desabilitar o dispositivo recém-adicionado ( sde1 ), mas isso (eu acho) não evitaria a reformulação de 3 para 4 discos com um disco ausente.

Talvez você tenha uma alternativa melhor. Neste caso, por favor me avise.

Muito obrigado!

    
por Christian Wolf 15.07.2014 / 13:49

1 resposta

0

Para quem corre com problemas semelhantes:

Acabei de inicializar um sistema de recuperação e reconstruir o array "offline" (no sistema de recuperação).

    
por 21.07.2014 / 14:16