Um watchdog de hardware já está ativo no meu servidor CentOS?

4

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 ?

    
por Alexander Farber 26.08.2013 / 14:06

3 respostas

5

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.

    
por 07.09.2013 / 18:35
9

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.

    
por 07.09.2013 / 12:19
1

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

    
por 23.06.2016 / 01:05