Como posso usar a chave Linux SysRq para solucionar problemas em uma instância de servidor virtual que não responde a partir do console serial?
Sua instância do servidor virtual Linux não está respondendo e você não consegue acessá-la via SSH nem por acesso direto.
Uma instância de servidor virtual do Linux pode deixar de responder por diversos motivos, como falhas no sistema, situações de impasse ou problemas relacionados ao kernel. Quando o servidor virtual não responde, os métodos padrão de solução de problemas, como o SSH ou o acesso direto, podem não funcionar. Nesses casos, o console serial permanece acessível, o que permite que os administradores interajam com o servidor por meio da chave “ Linux System Request” ( SysRq ).
Falhas no sistema, erros graves no kernel ou processos que não respondem podem fazer com que um servidor Linux fique indisponível por meio dos processos normais. Esses problemas podem ser causados por erros de software, falhas de hardware ou parâmetros do sistema mal configurados. A tecla “ SysRq ” fornece acesso de baixo nível ao kernel “ Linux ” e contorna processos de nível superior que estejam travados ou não respondam. Esse mecanismo está integrado ao kernel Linux como um recurso de segurança para ajudar os usuários a realizar ações críticas no sistema, como reiniciar o servidor ou gerar um relatório de diagnóstico, mesmo quando outros métodos de entrada não estiverem disponíveis.
Para diagnosticar e resolver o problema usando a chave SysRq no console serial, siga estas etapas:
-
Acesse a instância do servidor virtual conectando-se a um console serial. Para obter mais informações, consulte Acessando instâncias de servidor virtual usando consoles VNC ou seriais.
-
Ativar os comandos “ SysRq ”. Se os comandos “ SysRq ” já estiverem ativados, você pode pular esta etapa. Para habilitar os comandos
SysRq, defina o parâmetrokernel.sysrq.echo 1 > /proc/sys/kernel/sysrq -
Envie o comando “ SysRq ” pelo console serial. O exemplo a seguir inicia um dump de falha do kernel (kdump).
Para gerar um relatório de falha, certifique-se de que o serviço de gerenciamento de falhas (
crashkernel) esteja configurado na instância do servidor virtual Linux. Para obter instruções, consulte o mecanismo de gerenciamento de relatórios de falha do kernel.-
Pressione a tecla Enter.
-
Pressione a tecla “
~” (tilde).Para teclados AZERTY: Pressione a tecla Alt Gr + a tecla 2 para digitar a tecla “
~”. -
Pressione
B(tecla B maiúscula). -
Pressione
c(c minúsculo), o que inicia um despejo de memória do kernel (kdump).
Observe o seguinte ao utilizar os comandos d SysRq:
- Pressione e solte cada tecla separadamente. Não mantenha nenhuma tecla pressionada.
- Conclua toda a sequência em cinco segundos; caso contrário, os comandos SysRq não serão detectados no console serial.
- Quando você digita essa sequência, os caracteres não aparecem no console serial. O sistema os trata como caracteres de sequência de quebra. A digitação normal no console é retomada após a conclusão da sequência, ou caso a sequência atinja o tempo limite ou encontre um caractere inválido.
- Se a sequência exceder o tempo limite (demorar mais de cinco segundos) ou se for digitado um caractere inválido da sequência de interrupção, reinicie o processo a partir da etapa 1.
Exemplo:
ENTER + ~ + B + c -
-
Analise os resultados do diagnóstico. O dump de falha do kernel anterior, SysRq, gera dados de diagnóstico que você pode analisar. Ao enviar comandos relevantes do SysRq, é possível coletar dados de diagnóstico valiosos para solucionar problemas e recuperar o controle do sistema.
Para obter uma lista das teclas de comando do SysRq, pressione Enter e, em seguida, digite ~Bh (tilde, B maiúsculo, h minúsculo). Para mais detalhes, consulte Linux Dicas sobre as teclas de atalho do Magic System – O que são as teclas de “comando”?