mdadm não responsivo

3

Eu tenho uma raid 5 mdadm raid array configurada com 6 drives e um hot spare em um servidor Ubuntu 11. Há algumas compartilhamentos de samba no disco e até hoje eles estavam funcionando bem.

Há algumas horas, os usuários começaram a perceber que seus compartilhamentos estavam rastreando ou não estavam se conectando, levando muitos minutos para listar os arquivos presentes. Tentar copiar arquivos congelaria a conexão na maior parte do tempo e, eventualmente, os desconectaria. Eu era capaz de navegar pelos compartilhamentos no diretório montado através do ssh, mas o samba definitivamente estava tendo problemas. Tentei reiniciar o samba sem efeito.

Eu rodei o mdadm --detail / dev / md2 e ... nada. Ele não emitiu nada nem retornou meu prompt, e eu tive que controlá-lo para obter meu prompt de volta. / proc / mdstat também estava vazio. Mas, por algum motivo, eu ainda podia navegar pelo array de ataque montado e tudo parecia bem. Olhando para trás eu deveria ter tentado adicionar e remover arquivos através do terminal ...

Verificando o monitor de processo mostrava um monte de processos smbd para cada usuário pendurado no estado D, e eu não conseguia pará-los com um comando kill. Eu não tinha visto algo assim, e com o mdadm não dando nada de útil, tentei reiniciar o servidor. Isso também ficou pendurado. Eu cruzei meus dedos e disse ao cara do datacenter para acertar o hard reset.

No final, o ataque está sendo reconstruído e todas as unidades estão funcionando. Mas ainda não sei ao certo o que faria o mdadm congelar assim, desconectar todas as conexões do samba e não responder.

Sou muito novo em tudo isso, então esperava obter alguma ajuda para depurar o problema daqueles que já viram problemas semelhantes antes. Onde você olharia primeiro?

EDIT :: Seguindo o conselho da ACase, aqui estão mais algumas informações de diagnóstico:

O sistema de arquivos em / dev / md2 (a unidade RAID em questão) é ext3

Aqui está a minha informação do kernel

2.6.35-22-server #33-Ubuntu SMP Sun Sep 19 20:48:58 UTC 2010 x86_64 GNU/Linux

Examinar / var / log / messages revela que antes do reinício eu estava tendo um monte desses erros (talvez 15 a cada 3 segundos) durante o período em que as unidades estavam inacessíveis através do samba:

kernel: [17343195.826943] mptbase: ioc0: LogInfo(0x31123000): Originator={PL}, Code={Abort}, SubCode(0x3000)

que, por meio de algum googling, aparece como se estivesse relacionado a resultados SMART executados com unidades SATA por meio de um controlador SAS . O servidor é um dell t610 com SAS 6 / iR Integrated, portanto, isso pode muito bem ser o que está causando meu problema - o MDADM tenta executar o Smart nas unidades e, em seguida, congela o IO com todos os erros. Isso soa certo? Quais testes você executaria para confirmar? Eu prefiro não levar toda a matriz para baixo novamente, se possível, uma vez que está sendo usado (prematuramente, obviamente). Essa mensagem de log pára de aparecer após a reinicialização e, em seguida, o samba funciona novamente, então tenho certeza de que eles estão relacionados. Nenhuma mensagem aparece entre essas - existe uma maneira de ativar o registro de kernel mais detalhado em / var / log / messages que pode provar que eles estão relacionados ao SMART?

Obrigado novamente.

    
por Andy Miller 07.11.2011 / 23:38

1 resposta

2

Procure por erros em /var/log/messages ou /var/log/kernel . Parece que o kernel parou de poder gravar e / ou ler em disco. Isso explicaria por que não iria reiniciar bem.

  • Qual formato de disco você está usando (ext2, ext3, ext4, xfs etc.)? Registrado?
  • Qual kernel você está usando? Verifique se há algum bug no kernel para isso.
  • Quando isso ocorrer, verifique quais partições (md [0-9]) são legíveis / graváveis
  • Use o utilitário hdparm para verificar as velocidades de E / S do disco e as configurações estão definidas adequadamente

Eu geralmente sugiro que você execute um fsck no seu sistema de arquivos após esse tipo de ocorrência.

Além disso, o Linux possui algumas opções de reboot que permitem ignorar certos problemas de disco e forçar a reinicialização do sistema sem precisar chamar seu DC para redefini-lo (pelo menos para a maior gravidade):

   -f     Force halt or reboot, don’t call shutdown(8).

   -n     Don’t sync before reboot or halt. Note that the kernel and stor-
          age drivers may still sync.

Estas são opções mais seguras do que uma reinicialização a frio.

[Editar # 1]:

Verifique a saída de smartctl -a /dev/sd[a-z] para ver se algum disco está com problemas.

[Editar # 2]:

Eu sugeriria programar algum tempo de inatividade e atualizar o firmware. Isso tende a consertar muitos bugs. Especificamente o controlador SAS e o BIOS. Talvez outros, se eles sugerirem.

Além disso, como este é um t610, ele possui uma interface DRAC? Muitas vezes, você pode ver logs relacionados a hardware se houver uma falha de hardware.

    
por 08.11.2011 / 04:08