O que aconteceria se um disco rígido falhasse durante a execução do kernel do Linux?

7

Sempre tive curiosidade sobre o que aconteceria se um disco rígido falhasse enquanto o kernel do Linux estava sendo executado. Como a própria imagem do kernel está completamente carregada na RAM, não imagino que haveria falhas no kernel. Obviamente, qualquer software que tentasse acessar o disco falharia.

Existe alguma chance de o sistema continuar funcionando indefinidamente? Se não, o que causaria pânico (ou pelo menos tornar-se inoperável)?

Por favor, considere cada um dos seguintes cenários:

  • O kernel pode ou não ter o swapfile ativado.
  • Nenhuma tentativa de carregar módulos do kernel é feita após a falha.
  • Faz diferença se certas partes do sistema de arquivos estiverem em discos diferentes?
por Nathan Osman 13.04.2011 / 06:05

3 respostas

13

Falhas de hardware sempre correm algum risco de travar o kernel, já que esses caminhos de código geralmente tiveram muito menos testes, mas normalmente, um disco rígido com falha não deve travar o kernel. O que exatamente acontece depende da natureza da falha. Talvez apenas alguns setores estejam ilegíveis, tornando partes da partição / home ilegíveis, o sistema ainda será executado para um administrador de sistema analisar o problema. Se o sistema de arquivos raiz ficar inutilizável, o sistema estará praticamente inoperante, independentemente de uma falha no Kernel, pois mesmo um shell simples não estará disponível. Se uma partição swap se tornar indisponível, os programas que estiverem usando swap irão segmentar a falha quando chegar a hora de ler os dados trocados. Se o disco rígido que caiu é simplesmente armazenamento extra, pode ter pouco efeito além de alguns sistemas de arquivos se tornarem ilegíveis.

Também pode depender do tipo de erros que o disco rígido está causando. Eu vi uma unidade efetivamente desaparecer e além do desaparecimento dos sistemas de arquivos, tudo correu bem. Eu também vi um disco rígido continuamente interrompendo o sistema e jogando erros após um longo tempo de espera, fazendo com que todo o desempenho do sistema se degradasse. Se estiver usando uma camada como o MD executando RAID1 / 4/5, um erro grave normalmente fará com que o Kernel marque o disco como defeituoso, e ele irá ignorá-lo confiando nas unidades restantes para manter o sistema em execução.

    
por 13.04.2011 / 09:43
3

No meu PowerEdge 2500, quando o obtive pela primeira vez, o firmware do controlador PERC (hardware RAID) não estava na revisão mais recente. O efeito disso é que o disco raiz desapareceria de repente e não estaria mais acessível (muito parecido com o que era uma unidade removível e foi subitamente desconectado).

Não consegui carregar nenhum programa novo, os programas que foram carregados continuaram sendo executados, mas com erros se eles tentassem gravar no disco. Ainda tinha o prompt bash no qual eu estava conectado, a rede continuava funcionando. Foi surpreendentemente não tão catastrófico como eu esperava.

Eu acho que esta é uma falha "limpa", porque qualquer que fosse o driver responsável pela leitura / escrita para o PERC parecia estar rejeitando tudo imediatamente com um erro (esqueça o exato, mas foi um erro SCSI). Seria muito pior se a unidade não estivesse respondendo, respondendo devagar, ou as gravações parecessem estar funcionando bem, mas na verdade não estavam.

    
por 10.05.2011 / 20:39
0

Na verdade, eu tive uma falha na unidade em um sistema em execução, não X embora. Nenhum logins foi possível porque o getty não estava disponível. Eu tentei sair de um aplicativo em execução, mas nenhum shell estava disponível e o aplicativo estava inutilizável. Foi então que a mensagem Aiieeee chamou minha atenção e contou a história.

    
por 14.04.2011 / 02:54