Tags:
create new tag
,
view all tags
---+ 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.<br /><br /> ---++ Nodes gerenciadores Para cada nobreak será instalado o programa para seu gerenciamento em um node alimentado por este nobreak.<br /> Os procedimentos para esta instalação estão muito bem descritos <a target="_self" href="/twiki/bin/view/Main/NobreakDaemon">neste</a> documento.<br /> <br /><br /><br /> ---+++ Script de desligamento <br /> Depois de instalado o ==apcupsd,== precisamos modificar os script de desligamento, para desligar todos os nodes alimentados pelo nobreak.<br /> 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/'* . <br /> O gancho que queremos é *doshutdown*, em apccontrol. É ele que temos de modifica para desligar os outros nodes.<br /> 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.<br />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. <br />Eis aqui o a linha original: <br /><br /> <pre>${SHUTDOWN} -h now "apcupsd UPS ${2} initiated shutdown" </pre> <br /><br />e a nova "linha"<br /><br /> <pre>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 </pre> <br /><br />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. <br />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. <br />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. <br />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". <br />
E
dit
|
A
ttach
|
P
rint version
|
H
istory
: r1
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r1 - 2008-04-08
-
EduardoBach
Home
Site map
Main web
Sandbox web
TWiki web
Main Web
Users
Groups
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
P
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback