UPS

De wikilivois
Sauter à la navigation Sauter à la recherche


A quoi sert un onduleur ?

http://linux.developpez.com/cours/upsusb/

UPS signifie Uninterruptable Power System. Comme son nom l'indique, son rôle principal consiste à fournir une alimentation électrique continue quoiqu'il arrive. Plus précisément un UPS a 2 rôles :

  • batterie de secours en cas de panne de courant : attention les batteries ne permettent que quelques dizaines de minutes d'autonomie (dépend de la charge à fournir). Un UPS a donc pour principal but de pouvoir éteindre proprement les machines qui lui sont connectées dès qu'une panne de courant survient, et d'éviter ainsi toute perte de données dûe à un crash disque provoqué par une interruption brutale d'alimentation.
  • régulateur de tension : un bon UPS fournit un signal parfaitement sinusoïdal (stabilité de l'alimentation) et protège contre tous types de parasites, variations de tension et surcharges dûes à la foudre, par exemple.

Outre son rôle purement électrique, l'UPS doit aussi communiquer avec l'ordinateur pour lui signaler son état et lui dire qu'il doit s'arrêter. Cette communication passe par un câble série RS-232, USB (de plus en plus fréquent), ou même par SNMP pour le haut de gamme.

Surveiller son onduleur avec nut

Package Gentoo: nut

* Please note that NUT now runs under the 'nut' user.
* NUT is in the tty group for access to RS-232 UPS.
* However if you use a USB UPS you may need to look at the udev or
* hotplug rules that are installed.

http://www.networkupstools.org/

http://opensource.mgeups.com/howto.htm

Schema de la configuration

Upsschema.png

Tester le port serie

Package Gentoo: setserial

#setserial /dev/ttyS0 -v autoconfig
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4

Configurer nut - serveur -

  /etc/nut/ups.conf
[mgeups]
        driver = mge-shut
        port = /dev/ttyS0
        desc = "Computer Room"


  /etc/nut/upsd.conf
# Access Control Lists (ACLs)
ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32
ACL lan 192.168.10.0/24
ACCEPT localhost lan
REJECT all


  /etc/nut/upsd.users
[admin]
        password = mgepass
        allowfrom = localhost
        actions = SET
        instcmds = ALL

[monuser]
        password  = mgepass
        allowfrom = localhost
        upsmon master


  /etc/nut/upsmon.conf
MONITOR mgeups@localhost 1 monuser mgepass master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
NOTIFYCMD /sbin/upssched
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
NOTIFYFLAG ONLINE SYSLOG+EXEC
NOTIFYFLAG ONBATT SYSLOG+EXEC
NOTIFYFLAG COMMOK IGNORE
NOTIFYFLAG COMMBAD IGNORE

RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5


  /etc/nut/upssched.conf
CMDSCRIPT /usr/sbin/upssched-cmd
PIPEFN /var/run/nut/upssched.pipe
LOCKFN /var/run/nut/upssched.lock
AT ONBATT * EXECUTE ups-on-battery
AT ONLINE * EXECUTE ups-back-on-line


Lancement de upsd

Ajouter nut au group "serial"

# /etc/init.d/upsd start
 * Starting UPS drivers ...
Network UPS Tools - UPS driver controller 2.0.5
Network UPS Tools - MGE UPS SYSTEMS/SHUT driver 0.66 (2.0.5)

Unable to open /dev/ttyS0: Permission denied

  Current user id: nut (84)
Serial port owner: root (0)
Serial port group: uucp (14)
     Mode of port: 0660


  /etc/group
uucp:x:14:uucp,nut


Lancer upsd & upsdrv

# /etc/init.d/upsdrv start
 * Starting UPS drivers ...
Network UPS Tools - UPS driver controller 2.4.3
Network UPS Tools - Eaton / SHUT driver 0.69 (2.4.3)
Detected Ellipse 600 [AP8G3608A] on /dev/ttyS0 


# /etc/init.d/upsd start
 * Starting upsd ...
Network UPS Tools upsd 2.4.3
listening on 127.0.0.1 port 3493
Connected to UPS [mgeups]: mge-shut-mgeups  


Lancer upsd & upsdrv à chaque démarrage du serveur :

#rc-update add upsdrv default
#rc-update add upsd   default

Commandes nu

upsc

#upsc mgeups@localhost
battery.charge: 100
battery.charge.low: 20
battery.runtime: 537
driver.name: mge-shut
driver.parameter.port: /dev/ttyS0
driver.version: 2.0.5
driver.version.internal: 0.66
outlet.0.desc: Main Outlet
outlet.0.id: 1
outlet.0.switchable: 0
outlet.1.desc: PowerShare Outlet 1
outlet.1.id: 2
outlet.1.switchable: 0
output.voltage: 230
ups.delay.shutdown: -1
ups.delay.start: -1
ups.load: 27
ups.mfr: MGE UPS SYSTEMS
ups.model: Ellipse 600
ups.power.nominal: 600
ups.serial: AP8G3608A
ups.status: OL CHRG

upscmd

#upscmd -l mgeups@localhost
Instant commands supported on UPS [mgeups@localhost]:

load.off - Turn off the load immediately
load.on - Turn on the load immediately
shutdown.return - Turn off the load and return when power is back
shutdown.stayoff - Turn off the load and remain off
test.battery.start - Start a battery test
test.battery.stop - Stop the battery test

Configurer nut - client

Exemple avec debian:

  /etc/default/nut
# start upsd
START_UPSD=no
# start upsmon
START_UPSMON=yes


  /etc/nut/upsmon.conf
MONITOR mgeups@localhost 1 monuser mgepass slave
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
NOTIFYCMD /sbin/upssched
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
NOTIFYFLAG ONLINE SYSLOG+EXEC
NOTIFYFLAG ONBATT SYSLOG+EXEC
NOTIFYFLAG COMMOK IGNORE
NOTIFYFLAG COMMBAD IGNORE

RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5


Ouvrir le firewall du serveur nut

Si nécessaire - les communications se font sur le port tcp 3493

upsc

#upsc mgeups@192.168.10.1
battery.charge: 100
battery.charge.low: 20
battery.runtime: 537
driver.name: mge-shut
driver.parameter.port: /dev/ttyS0
driver.version: 2.0.5
driver.version.internal: 0.66
outlet.0.desc: Main Outlet
outlet.0.id: 1
outlet.0.switchable: 0
outlet.1.desc: PowerShare Outlet 1
outlet.1.id: 2
outlet.1.switchable: 0
output.voltage: 230
ups.delay.shutdown: -1
ups.delay.start: -1
ups.load: 27
ups.mfr: MGE UPS SYSTEMS
ups.model: Ellipse 600
ups.power.nominal: 600
ups.serial: AP8G3608A
ups.status: OL CHRG

Tester l'onduleur

Sur le master nut:

#upsmon -c fsd

Cela doit déclencher l'arrêt des machines master et slave...

Outils de supervision UPS

http://eu1.networkupstools.org/client-projects/

SNMP

http://www.networkupstools.org/protocols/snmp/

Bigsister

#man ./man/man1/uxmon_nutups.1
       runtimewarn [percentage]
              Battery Runtime Warn level - Big Sister warns (yellow) if UPS runtime goes below this level
              (default: 600)

       status [string]
              Normal Status - Big Sister will warn (yellow) if status of the UPS does not equal this status
              (default: OL)

A noter que les paramètres par défaut peuvent être changés dans etc/testdef/nut.cfg


  adm/uxmon-net
localhost       runtimewarn=500 status="OL CHRG" nutups


Personal solution Pac pour ASR ellipse

http://www.mgeups.com/download/soft/explore/fra/ptp/ptp_sol.htm

http://www.mgeups.com/download/soft/install/linux/psp/psplinux_user_guide_fr.pdf

http://opensource.mgeups.com/projects/mgeups-psp/mgeups-psp-3.0.2.tar.gz

Autres scripts

hibernate-script

http://www.suspend2.net/

You should run the following command to invalidate
* suspend images on a clean boot.
*
*   # rc-update add hibernate-cleanup boot
*
* See /usr/share/doc/hibernate-script-1.94-r5/README.gz for further details.
*
* Please note that you will need to manually emerge any utilities
* (radeontool, vbetool, ...) enabled in the configuration files,
* should you wish to use them.
*
* Starting with hibernate-script-1.90 the configuration files have
* been reordered and split into method specific files. Make sure you
* update your /etc/hibernate/ configuration files accordingly.

Copyright

© 2007-2010 Christophe de Livois

Tête de GNU Vous avez l'autorisation de copier, distribuer et/ou modifier ce document suivant les termes de la GNU Free Documentation License, Version 1.2 ou n'importe quelle version ultérieure publiée par la Free Software Foundation; sans section invariante, sans page de garde, sans entête et sans page finale. Pour plus d'informations consulter le site de l'APRIL.