Desligamento dos nodes pelos nobreaks

Introdução

Os nobreaks podem ser gerenciados por um computador, conectado-se ao nobreake pela porta serial do computador. O programa utilizado para monitorar os nobreaks pode executar tarefas em situações específicas, como por exemplo, quando faltar energia por um certo tempo. A tarefa que nos interessa é o desligamento da máquina que está conectada ao nobreak quando restar uma certa quantidade limite de energia nas baterias do nobreak. Mais ainda, o desligamento dos nodes alimentados por este nobreake.

Nodes gerenciadores

Para cada nobreak será instalado o programa para seu gerenciamento em um node alimentado por este nobreak.
Os procedimentos para esta instalação estão muito bem descritos neste documento.



Script de desligamento


Depois de instalado o apcupsd, precisamos modificar os script de desligamento, para desligar todos os nodes alimentados pelo nobreak.
Quando restar 3 minutos de alimentação nos nobreaks, o apcupsd irá rodar o doshutdown dentro do apccontrol, que contem as tarefas para cada situação. O tempo restante, assim como outros parâmetros podem ser modificados editando o arquivo apcupsd.conf. Ambos, apccontrol e apcupsd.conf encontran-se em " /etc/apcupsd/' .
O gancho que queremos é doshutdown, em apccontrol. É ele que temos de modifica para desligar os outros nodes.
Existem alguns métodos que poderiam ser utilizados para desligar os nodes pelo nó de monitoramento, e eu escolhi o via ssh. Basicamente, o que o node de gerenciamento faz é logar nos outros nodes que estão conectados no mesmo nobreake que ele, e executa poweroff.
Para saber quais são os nodes que devem serdesligados, o script modificado faz uma busca no arquivo " /raid0/apcupsdSPRACEconf/hosts" e procura pelo nobreak em que está conectado, procurando pelo seu nome e extraindo terceira coluna, coma identificação do nobreake. O NXX indica o nobreak em que o node de gerenciamento está conectado. Depois, com este mesmo arquivo, o script de desligamento modificado gera uma lista dos nodes que devem ser desligado. Note que qualquer node pode gerenciar o nobreak, não sendo necessária qualquer ordem.
Eis aqui o a linha original:

${SHUTDOWN} -h now "apcupsd UPS ${2} initiated shutdown"


e a nova "linha"

for NODE in `cat /raid0/apcupsdSPRACEconf/hosts |grep $(cat /raid0/apcupsdSPRACEconf/hosts |grep $(hostname) | cut -d " " -f3) | cut -d " " -f2`; do if [ " $(echo "$NODE" | cut -d " " -f2)" != " $(cat /raid0/apcupsdSPRACEconf/hosts |grep $(hostname) | cut -d " " -f2)" ]; then echo "Desligando o $NODE"| ${WALL}; ssh -i /root/.ssh/apcupsd_dsa $NODE poweroff; fi;done
 echo "Desligando o $(hostname)"
 poweroff


Então, para cada nó alimentado pelo mesmo nobreak, o novo script loga via ssh no nó e executa poweroff. Depois de todos os outros nodes desligados, o novo script desliga o node de monitoramento.
Note, pelo novo script, que não é necessário criar um script específico para cada nobreak relacionando os nodes alimentados por ele. O script independe do node em que está sendo executado. Isso é muito útil visto que o arquivo apccontrol pode ser copiado para todos os nodes de monitoramento.
O arquivo "/raid0/apcupsdSPRACEconf/hosts" é o mesmo arquivo utilizado pelo script wakeupfarm, que se encontra na osg-ce, utilizado para iniciar a farm quando a energia estiver restabelecida.
Note mais uma vez que para desligar ou ligar, apenas um arquivo deve receber atenção periódica, que é o arquivo hosts. Ele fica em "/etc/WakeFarm/" na osg-ce, e deve ser copiado manualmente para "/raid0/apcupsdSPRACEconf/", que é a pasta que vai ser exportada para todos os nodes. Ele precisa ser copiado pois não conseguir pensar numa maneira de "linká-lo".
Topic revision: r1 - 2008-04-08 - EduardoBach
 

This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback

antalya escort bursa escort eskisehir escort istanbul escort izmir escort