Com a inclusão de suporte para hardware watchdog, o systemd agora pode executar a função de um daemon watchdog Linux. Em sistemas Dell PowerEdge, esse hardware pode ser o temporizador watchdog do chipset integrado ao chipset da plataforma (como Intel ICH9) ou o temporizador BMC watchdog compatível com IPMI do Dell iDRAC.
O Dell iDRAC fornece recuperação automatizada do sistema que, além de se recuperar de travamentos do sistema operacional, pode capturar uma captura de tela para análise posteriormente. Era necessário um software adicional no sistema operacional para habilitar isso. Com distribuições mais recentes com suporte a sistemas, esse recurso funciona com software disponível nativamente em uma distribuição, eliminando a necessidade de software adicional.
No entanto, era possível usar o daemon watchdogd no Linux, mas havia uma probabilidade em que o daemon em si pudesse travar enquanto o restante do sistema estava operacional. O systemd atua como o watchdog do software para todos os serviços do sistema, e o temporizador watchdog do BMC atua como o watchdog de hardware do próprio sistema. Portanto, se o sistema não for operacional, há uma boa chance de o sistema não ser utilizável em geral. Agora temos um método mais confiável para todos os serviços do sistema, o gerente dos serviços (com sistema) a ser "rastreado" pelo temporizador watchdog do BMC.
A cola entre o systemd e o watchdog BMC do Dell iDRAC é o módulo ipmi_watchdog kernel, que fornece acesso da API watchdog do Linux ao watchdog do BMC usando /dev/watchdog. O Systemd usa essa interface para inicializar o watchdog periodicamente.
Configuração do sistema com ipmi_watchdog
O systemd pode ser configurado para usar o watchdog do BMC do iDRAC com estas etapas (no Bluetootha 19):
- Como o sistema tem dois temporizadores watchdog (chipset e BMC), podemos usar qualquer um deles. Neste exemplo, desabilitaremos o watchdog do chipset. O watchdog do chipset pode ser desativado configurando a opção "operating system Watchdog Timer" no BIOS do sistema como "Disabled" (Desativado) (padrão).
- Chegar a um valor de timeout para o watchdog, digamos, 180 segundos.
- Ative o ipmi_watchdog kernel principal 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 timeout =180
- Lista deny iTCO_wdt # Opcional. Se o watchdog do chipset não estiver desativado na configuração do BIOS.
- Método 2:
- Instalar o Rpm do OpenIPMI
- $ sudo yum instalar OpenIPMI
- Defina IPMI_WATCHDOG=yes e IPMI_WATCHDOG_OPTIONS com o tempo limite em /etc/sysconfig/ipmi.
- Habilite o serviço ipmi para inicializar automaticamente
- $ sudo systemctl habilitar ipmi
- Habilite o watchdog do sistema:
- Descompacte e defina RuntimeWatchdogSec=180 em /etc/systemd/system.conf
- Reinicie o sistema
- # 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 get # verifique se o "Watchdog Timer Is: Started/Running."
- Teste simulando uma pane do kernel (não faça isso em um sistema de produção). Certifique-se de que o kdump esteja desativado.
- $ 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 log-in na IU da Web do iDRAC
- Overview -> Server -> Troubleshooting -> Last Crash Screen.
Nota: Atualmente, esse recurso não é compatível com a Dell e é compartilhado aqui com o objetivo de solicitar feedback da comunidade em Recursos
do Linux para servidores PowerEdge.