User Tools

Site Tools


doc:appunti:linux:sa:ups_genpowerd

Gruppo di continuità PowerWare 3115

Sequenza di power fail

  1. Manca la corrente.
  2. Il demone genpowerd scrive FAIL in /etc/powerstatus e manda un segnale SIGPWR a init.
  3. Il programma init (in base alla configurazione /etc/inittab e al contenuto di /etc/powerstatus) esegue /etc/init.d/powerfail start.
  4. /etc/init.d/powerfail lancia uno shutdown -h $failtime.
  5. Quando scade il $failtime, si segnala a init di passare a runlevel 0. L'ultima azione eseguita a runlevel 0 è /etc/init.d/ups-monitor poweroff.
  6. In realtà /etc/init.d/ups-monitor è un link a genpower, che al poweroff reagisce spengendo l'inverter dell'UPS.

Questa procedura ha un punto debole: se al momento finale la corrente è tornata, l'UPS ignora il segnale di inverter kill e quindi il PC completa il poweroff e non si riaccende più.

  1. Torna la corrente prima dello shutdown.
  2. Il demone genpowerd scrive OK in /etc/powerstatus e invia un SIGPWR a init.
  3. Il programma init (in base alla configurazione /etc/inittab e al contenuto di /etc/powerstatus) esegue /etc/init.d/powerfail stop.
  • Runlevel 6 is reboot.

Configurazione di genpowerd

Configurato il programma in /etc/genpowerd.conf aggiungendo anche la definizione del nostro UPS (PowerWare 3115):

ENABLED=true
UPSPORT=/dev/ttyS1
UPSSTAT=/var/run/upsstat
UPSTYPE=powerware
# PowerWare
powerware  ---    /ST   5  /CTS    ---    CAR
No cable power required
/ST To kill power set TRANSMIT DATA to off (negative voltage)
5 Mantain kill signal for 5 seconds
/CTS Monitor the power with CTS line (normally low)
Ignore battery low
CAR When cable is connected to th UPS, DCD is high

Il gruppo di continuità PowerWare 3115 fornisce questi segnali tramite la seriale:

OK FAIL LowBatt
CAR High High Low
CTS Low High High

Mandando un segnale 0 sulla linea Transmit Data per qualche secondo (portando il segnale a zero) e se si è in situazione di power fail, l'UPS toglie alimentazione all'host, quando la tensione in ingresso viene ripristinata l'UPS alimenta nuovamente l'host.

In caso di POWER FAIL viene avviata la procedura di halt, tuttavia esiste una race condition in /etc/init.d/halt .Se la seguente istruzione

/etc/init.d/ups-monitor poweroff

viene eseguita proprio nel momento in cui la corrente è ritornata, l'UPS ignora il segnale di poweroff. In questo caso lo script prosegue e spenge la macchina definitivamente.

Se i volumi RAID software sono avviati dal raid autodetect del kernel è impossibile fermarli in modo pulito prima di spengere l'UPS. Infatti per lanciare genpowerd -k bisogna che il disco sia montato, e appena lo si lancia la corrente se ne va.

doc/appunti/linux/sa/ups_genpowerd.txt · Last modified: 2006/07/01 19:53 by 127.0.0.1