Como usar o Systemd para recuperação automatizada do sistema
Resumo: Com a inclusão do suporte para hardware watchdog, o systemd agora pode executar a função de um daemon watchdog do Linux em sistemas Dell PowerEdge.
Instruções
Com a inclusão
de suporte para hardware watchdog
, systemd
agora pode executar a função de um daemon watchdog Linux. Em sistemas Dell PowerEdge, esse hardware pode ser o temporizador de vigilância do chipset integrado ao chipset da plataforma (como o Intel ICH9) ou o temporizador de vigilância BMC compatível com IPMI do Dell iDRAC.
O Dell iDRAC fornece recuperação automatizada do sistema que, além da recuperação de travamentos do sistema operacional, pode capturar uma captura de tela para análise posterior. Foi necessário no sistema operacional para ativar isso. Com distribuições mais recentes suportando systemd, este recurso funciona com software disponível nativamente em uma distribuição, eliminando a necessidade de software complementar.
No entanto, era possível usar o daemon watchdogd no Linux, mas havia uma probabilidade de que o próprio daemon pudesse travar enquanto o resto do sistema estivesse operacional. O systemd atua como o watchdog do software para todos os serviços do sistema e o watchdog timer do BMC atua como o watchdog do hardware do próprio systemd. Portanto, se o systemd não estiver operacional, há uma boa chance de que o sistema seja inutilizável em geral. Assim, agora temos um método mais confiável para todos os serviços do sistema, o gerenciador dos serviços (systemd) para ser "observado" pelo temporizador watchdog do BMC.
A cola entre o systemd e o watchdog BMC do Dell iDRAC é o módulo de kernel ipmi_watchdog, que fornece acesso à API
do watchdog do Linux ao watchdog do BMC usando /dev/watchdog. O Systemd usa essa interface para acionar o watchdog periodicamente.
Configurando o systemd com ipmi_watchdog
O Systemd pode ser configurado para usar o watchdog iDRAC BMC com estas etapas (no Fedora 19):
- Como o sistema possui dois temporizadores watchdog (chipset e BMC), podemos usar qualquer um deles. Neste exemplo, desabilitamos o watchdog do chipset. O watchdog do chipset pode ser desativado definindo a opção "Operating system Watchdog Timer" no BIOS do sistema como "Disabled" (padrão).
- Chegue a um valor de tempo limite para o watchdog, por exemplo, 180 segundos.
- Habilite o módulo kernel do ipmi_watchdog para carregar na inicialização do sistema com o tempo de espera excedido acima:
- Método 1: Crie /etc/modules-load.d/ipmi_watchdog com o seguinte conteúdo
- Opções ipmi_watchdog tempo de espera excedido=180
- Negar lista iTCO_wdt # Opcional. Se o watchdog do chipset não estiver desativado na configuração do BIOS.
- Método 2:
- Instalar o OpenIPMI rpm
- $ sudo yum instalar OpenIPMI
- Defina IPMI_WATCHDOG=yes e IPMI_WATCHDOG_OPTIONS com o tempo de espera excedido em /etc/sysconfig/ipmi.
- Habilitar o serviço ipmi para inicializar automaticamente
- $ sudo systemctl ativar ipmi
- Instalar o OpenIPMI rpm
- Ative o watchdog do systemd:
- Remova o comentário e defina RuntimeWatchdogSec=180 in /etc/systemd/system.conf
- Reinicie o systemd
- # systemctl daemon-reexec
Teste se isso funciona:
- Verifique se o watchdog está ativo
- $ sudo journalctl |grep -i 'hardware watchdog' # deve mostrar que systemd está configurado para usar o watchdog IPMI.
- $ sudo ipmitool mc watchdog obter # verificar se o "watchdog timer é: Começou/Executando."
- Teste simulando uma pane do kernel (não faça isso em um sistema de produção). Certifique-se de que o kdump esteja desabilitado.
- $ sudo echo c > /proc/sysrq-trigger
- Após a reinicialização do sistema, verifique se uma imagem da tela de falha está disponível no iDRAC
- Faça login na IU da Web do iDRAC
- Visão geral -> Servidor -> Solução de problemas -> Última tela de falha.