O Linux tem uma interface genérica de monitoramento. Você pode usá-lo habilitando o watchdog NMI para o seu hardware iTCO_wdt ou instalando e configurando um watchdog de software que não depende do hardware.
Eu alugo um servidor dedicado (com CPU Intel Haswell e hardware personalizado) em um serviço de hospedagem de baixo custo e use-o com o CentOS 6.4 / 64 bit Linux (com kernel padrão: 2.6.32-358.14.1.el6.x86_64).
Em intervalos de algumas semanas, os outros clientes parecem ter problemas semelhantes.
Na saída dmesg
que vejo (aqui está o resultado completo do dmesg ):
CPU0: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz stepping 03
....
NMI watchdog enabled, takes one hw-pmu counter.
....
iTCO_wdt: Intel TCO WatchDog Timer Driver v1.07rh
iTCO_wdt: Found a Lynx Point TCO device (Version=2, TCOBASE=0x1860)
iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
e na lista de processos eu vejo:
# ps uawwwx|grep [w]atchdog
root 6 0.0 0.0 0 0 ? S Aug22 0:00 [watchdog/0]
root 10 0.0 0.0 0 0 ? S Aug22 0:00 [watchdog/1]
root 14 0.0 0.0 0 0 ? S Aug22 0:00 [watchdog/2]
root 18 0.0 0.0 0 0 ? S Aug22 0:00 [watchdog/3]
root 22 0.0 0.0 0 0 ? S Aug22 0:00 [watchdog/4]
root 26 0.0 0.0 0 0 ? S Aug22 0:00 [watchdog/5]
root 30 0.0 0.0 0 0 ? S Aug22 0:00 [watchdog/6]
root 34 0.0 0.0 0 0 ? S Aug22 0:00 [watchdog/7]
Isso significa que um watchdog de hardware já está ativo no meu servidor e reinicializará minha máquina em menos de 30 segundos após o congelamento?
(No /etc/sysctl.conf eu coloquei kernel.panic=10
, para que ele não fique preso no console kdb).
Ou eu tenho que instalar e iniciar o pacote do CentOS watchdog
?
O Linux tem uma interface genérica de monitoramento. Você pode usá-lo habilitando o watchdog NMI para o seu hardware iTCO_wdt ou instalando e configurando um watchdog de software que não depende do hardware.
Bem, existem alguns problemas para resolver aqui ...
O que acontece quando o servidor trava? O que há na tela? O que há nos logs? Você tem que se envolver com o provedor de hospedagem para reiniciar? Você pode realizar a redefinição por conta própria?
O seu servidor não deve estar suspenso, interrompendo ou falhando !! Tendo trabalhado em ambientes onde hardware low-end, DIY ou personalizado é usado, eu entendo que o objetivo do provedor de serviços é cortar custos. No entanto, se houver um problema de estabilidade, o ônus está no provedor para remediar esses problemas. Não é difícil construir uma plataforma de servidor Linux estável . No entanto, isso acontece com mais frequência do que deveria. Se a combinação de hardware / software / SO / firmware for tóxica, isso é um mau sinal. O provedor deve estar operando em uma escala na qual eles devem entender os problemas antes que eles afetem vários clientes.
Seu hardware tem um dispositivo IPMI? VOCÊ tem acesso IPMI? Normalmente, os cães de guarda fazem parte do seu dispositivo gerenciamento fora de banda . Por exemplo, os servidores HP ProLiant têm sua Recuperação automática de servidor (ASR)
O dispositivo detectado pelo seu sistema faz parte do chipset Intel em uso. Portanto, tecnicamente há um dispositivo watchdog e há suporte genérico para o kernel (parece que ele está no kernel CentOSPlus, não no kernel que você tem). No entanto, o pacote watchdog pode ajudar como um cão de guarda em nível de software, fora do ganchos de hardware que você possa ter.
Mas, novamente, você está tratando o sintoma aqui. É importante chegar à causa raiz. Se outros clientes estiverem enfrentando esses problemas, todos precisam resolver isso com o provedor de serviços.
CentOS
yum install watchdog
No Ubuntu
apt-get install watchdog
#optional
#apt-get install das-watchdog
Então ...
sudo vi /etc/watchdog.conf
É claro que você deve saber que no VIM os dois pontos (:) botão abre o menu (ou melhor, linha de comando) e w diz para escrever suas alterações, ou w! força-o a parar e q sai. (Além disso, você pode usar as teclas antigas do cursor do ZX Spectrum - hjkl para se mover, a letra d para excluir ei para inserir, escape para interromper a inserção.)
Uncomment:
watchdog-device = /dev/watchdog
Veja
man watchdog.conf
Para mais ... quando estiver pronto ...
service watchdog restart
Sim, esses processos estão relacionados ao watchdog, mas, a menos que estejam configurados corretamente, eles estão apenas sentados, sem fazer nada.
Isso deve ajudá-lo a lidar com fontes de alimentação não confiáveis, transformando trancas aleatórias em reinicializações aleatórias.
Você pode testá-lo com
echo *todo* placeholder while I test how to test it, in case I reboot...
Se ainda assim não funcionar, talvez seja necessário suar um pouco mais e descobrir qual driver sua plataforma suporta.
Pessoalmente, tentaria carregar e testar cada módulo temporizador de watchdog individualmente, com algo como isto, executado como root no shell:
echo "Testing default... " | tee -a /var/log/watchdog-test.log; sync
service watchdog stop
echo Didn't work, we're still here... | tee -a /var/log/watchdog-test.log; sync
# If the default watchdog does work, I bet stopping the service disabled the default watchdog then... *todo* test and update this
echo Modules still loaded...
DOGS='lsmod|grep -e wdt -e dog|cut -d\ -f1'
echo $DOGS
for dog in $DOGS; do
echo Unloading $dog
rmmod $dog || { echo "Oops.. didn't work, $dog won't unload"; sleep 70; };
done;
echo Did they all unload...? If not, I think the rest of this is a waste of time... reboot and skip that one next time
sleep 63
DOGS='find /lib/modules|grep watchdog|awk -F'\watchdog/' '{print $2}'|sed [email protected]@@g|sort|uniq'
for dog in $DOGS; do
echo "Testing $dog... " | tee -a /var/log/watchdog-test.log; sync
modprobe -v $dog && if [ -e /dev/watchdog ]; then
dmesg|tail -5
echo $dog Loaded. Ready for a reboot? | tee -a /var/log/watchdog-test.log; sync
echo *todo* force a quicker timeout? *todo* read kernel source
cat /dev/watchdog & test=$!
sleep 0.5
[ -e /proc/$test ] && { sleep 63; kill $test; };
fi
rmmod $dog
echo $dog Didn't work, we're still here... | tee -a /var/log/watchdog-test.log; sync
done
Se apenas passar, sem atrasos ... então nenhum dos módulos pareceu funcionar. Se o seu PC reiniciar, quando ele for inicializado:
tail -1 /var/log/watchdog-test.log
Mostrará um provável candidato ... Agora, verifique se o seu servidor o carrega ...
O Ubuntu parece usar o módulo que você anota aqui:
sudo vi /etc/default/watchdog
Eu não testei isso. Se você fizer isso, venha e atualize esta resposta. todo Aqui está uma sugestão para o SuSe: link e para o Ubuntu: < href="https://github.com/miniwark/miniwark-howtos/wiki/Hardware-Watchdog-Timer-setup-on-Ubuntu-12.04"> link link