mdadm O Ubuntu 12.04 falha ao montar o RAID6 durante a inicialização

3

Vou tentar resumir isso.

Eu tenho um mdadm RAID 6 com 11 drives. Isso tem há anos "apenas funcionou" através de reinstalações e tal, sem quaisquer problemas. Eu nem sequer tive a necessidade de configurar o mdadm.conf.

Após a versão 12.04, não consigo mais inicializar a máquina sem que o mdadm falhe ao montar a matriz e, em seguida, lançar-me no shell initramfs. Sob o boot, o mdadm pega 7 das unidades e as inicia em / dev / md127, é claro que irá falhar.

Quando inicializado, paro-o, remonto todas as unidades como md0 e está tudo bem novamente.

A pergunta é: como faço com que isso se comporte mesmo durante a inicialização?

Após alguns testes, meu mdadm.conf atual é o seguinte: link

mdadm-status durante a inicialização: link

Observe que abaixo da pasta acima, é o comando usado para remontagem que funciona bem.

Ajuda? :)

    
por Ueland 28.07.2012 / 23:35

3 respostas

2

O problema é que o / usr / share / initramfs-tools / scripts / mdadm-functions é chamado antes de todas as unidades terem sido inicializadas.

Eu tenho 6 unidades na matriz RAID. 2 deles estão a bordo do SATA e 4 estão no cartão mpt2sas (SAS2008).

Aparentemente, o mdadm tenta inicializar o array antes que todas as 6 unidades tenham sido anexadas ao sistema

Se eu editar mdadm-functions para isso tudo funciona (correção feia):

degraded_arrays()
   {
       sleep 15
   mdadm --misc --scan --detail --test >/dev/null 2>&1
   return $((! $?))
  }

Para mim, esse bug foi introduzido para quando eu atualizei do 10.04 LTS para o 12.04.1 LTS Today!

    
por 30.08.2012 / 00:10
1

Então eu descobri depois de algumas dicas que o problema é que algumas unidades não são detectadas com rapidez suficiente pelo mdadm, então simplesmente pára.

Alguém sugeriu adicionar rootdelay = 30 como parâmetro do kernel, mas o Ubuntu simplesmente ignorou isso. Em vez disso, adicionei um script de premissa initramfs.

echo "sleep 60" > /etc/initramfs-tools/scripts/init-premount;
chmod +x /etc/initramfs-tools/scripts/init-premount;
update-grub; 
update-initramfs -u;

E reiniciado, a inicialização demora um minuto a mais, mas sei que o mdadm detectou todas as unidades.

    
por 30.07.2012 / 22:52
1

Modificação de respostas encontradas em outros lugares que funcionaram para mim.

Sintomas que eu vi:

Um RAID que funcionou bem sob o Lucid / 10.04 parou de agrupar automaticamente quando fiz o upgrade para Precise / 12.04. O RAID foi montado como / dev / md127 no Precise. No shell initramfs, o seguinte corrigiu o problema e permitiu que a máquina inicializasse.

mdadm --stop / dev / md127    mdadm --assemble / dev / md0

Solução que funcionou:

Certifique-se de que o mdadm.conf tenha a linha ARRAY correta. (O fato de eu poder montar o / dev / md0 corretamente sugeriu que o mdadm.conf estava correto.)

Crie um script em / usr / share / initramfs-tools / scripts / local-top (chamei-o de mdfix)

#!/bin/sh
sleep 6
mdadm --stop /dev/md127
sleep 6
mdadm --assemble /dev/md0

Então

chmod +x mdfix
update-grub
update-initramfs -u

update-initramfs pode gerar um "não tal dispositivo" sobre / dev / md127. Coloque sua toalha sobre sua cabeça e não entre em pânico. :)

Reinicialize e você deve montar / dev / md0 corretamente, se for um pouco mais devagar do que antes. (O sono pode não ser necessário, mas é melhor prevenir do que remediar.)

    
por 09.08.2012 / 21:08