Installer et configurer un UPS APC avec Ubuntu

La mise en place d'un UPS (Uninterruptible Power Supply) ne se limite pas uniquement à connecter l'alimentation des serveurs sur ce dernier. Il faut également suivre l'état de l'UPS (pour effectuer des tests, connaître l'état de la batterie,…). Si l'état est insatisfaisant (batterie presque vide, plus de courant secteur,…), il faut prendre des mesures.

Ces mesures peuvent être de différentes sortes suivant la criticité des serveurs connectés sur cet UPS et suivant les ressources humaines et matérielles disponibles pour assurer la continuité du service.

Quelques exemples :

  • Lorsque le courant secteur est coupé brutalement, l'UPS prend le relais en ce qui concerne l'alimentation électrique. Mais la durée de la batterie joue… Si vous avez un groupe diesel, la machine qui surveille l'UPS doit provoquer la mise en route de ce groupe électrogène.
  • Lorsque le courant secteur est coupé brutalement, on peut également imaginer qu'un opérateur soit dépêché sur place (email, SMS,…) pour diagnostiquer le problème et prendre les mesures qui s'imposent.
  • Lorsque la batterie est presque vide, on peut imposer un arrêt propre du serveur.

Ce document passera en revue les points suivants pour le pilotage d'un UPS APC (American Power Conversion) :

  • Installation de l'UPS et connexion avec le serveur.
  • Installation du pilote de l'UPS.
  • Configuration du pilote.

Les opérations décrites dans cet article ont été testées sur un UPS APC Smart UPS 2200 en rack connecté en USB avec un serveur HP Proliant DL380.

Les opérations suivantes ont été effectuées sur le serveur :

  • Installation d'Ubuntu en mode server.
  • Mise à jour complète des paquets (apt-get update, apt-get upgrade).

Je suppose que l'UPS est dans le rack et est fonctionnel.

Connexion de l'UPS au serveur

La connexion avec le serveur s'établit à l'aide d'un câble USB - RJ45 fourni avec l'UPS.

  • Allumez l'UPS.
  • Connectez d'abord le côté RJ45 dans l'UPS (à l'arrière) dans la fiche notée USB.
  • Connectez ensuite le côté USB dans un port libre USB de votre serveur.

Dans une console, introduisez la commande suivante :

 sudo lsusb

Vous devriez obtenir une ligne similaire à celle-ci :

 Bus 001 Device 002: ID 051d:0002 American Power Conversion Back-UPS Pro 500/1000/1500

Si vous avez bien cette ligne (ou une ligne similaire dépendant de votre matériel), l'UPS est bien connecté à votre serveur. Dans le cas contraire, vérifiez les câbles et référez vous au manuel de l'utilisateur de l'UPS.

Installation du pilote de l'UPS

Installez le paquet apcupsd. Le pilote de l'UPS est maintenant installé. Il ne reste plus qu'à le configurer.

Dans une configuration standard (c'est-à-dire un UPS pour un serveur), il vous suffit de vérifier (et corriger au besoin) trois paramètres du fichier de configuration. Le fichier de configuration se trouve dans /etc/apcupsd/apcupsd.conf. Vous pouvez l'éditer de la manière suivante :

  sudo vi /etc/apcupsd/apcupsd.conf

Les trois paramètres clés qui nous intéressent sont :

  • UPSTYPE : le type de l'UPS (SmartUPS, BackUPS,…)
  • UPSCABLE : le type de câble connectant l'UPS au serveur (USB, RS232,…)
  • DEVICE : le nom du device utilisé pour se connecté à l'UPS.

Dans notre cas (un APC Smart UPS 2200 connecté en USB), le fichier de configuration doit posséder les informations suivantes :

UPSTYPE usb
UPSCABLE usb
DEVICE 

Remarque : Dans notre cas, notez que lorsqu'on utilise une connexion USB, il faut laisser le mot clé DEVICE à blanc (rien comme paramètre).

D'autres modes de configuration sont décrits dans le fichier de configuration.

Avant de continuer, vous devez signaler au démon que la configuration est effectuée. Pour cela, éditer avec vi le fichier /etc/default/apcupsd :

 sudo vi /etc/default/apcupsd

Et changer la valeur du paramètre ISCONFIGURED de la manière suivante :

ISCONFIGURED=yes

Une fois la configuration basique effectuée, vous pouvez tester si le démon apcupsd fonctionne.

 sudo /etc/init.d/apcupsd start

Vous devriez avoir une ligne ressemblant à ceci :

 Starting APC UPS power management: apcupsd.

Vérifiez ensuite dans les log du système pour voir si le démon est bien lancé :

 tail /var/log/syslog

Vous devriez trouver une ligne comme celle-ci :

 Jan 26 10:59:32 nodearch2 apcupsd[15003]: apcupsd 3.10.17 (18 March 2005) debian startup succeeded
 Jan 26 10:59:34 nodearch2 apcupsd[15003]: NIS server startup succeeded

On peut maintenant passer à la phase d'utilisation.

Pour obtenir le status complet de l'UPS, il nous suffit d'introduire la commande suivante :

apcaccess status 
# Anciennement : /etc/init.d/apcupsd status 

Et vous obtiendrez toutes les informations concernant l'UPS (voici ce que mon matériel retourne comme informations) :

APC      : 001,038,0930
DATE     : Thu Jan 26 11:04:36 CET 2006
HOSTNAME : nodearch2
RELEASE  : 3.10.17
VERSION  : 3.10.17 (18 March 2005) debian
UPSNAME  : nodearch2
CABLE    : USB Cable
MODEL    : Smart-UPS 2200 RM
UPSMODE  : Stand Alone
STARTTIME: Thu Jan 26 10:59:31 CET 2006
STATUS   : ONLINE
LINEV    : 224.6 Volts
LOADPCT  :  13.0 Percent Load Capacity
BCHARGE  : 100.0 Percent
TIMELEFT :  74.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
OUTPUTV  : 224.6 Volts
DWAKE    : -01 Seconds
DSHUTD   : 090 Seconds
LOTRANS  : 208.0 Volts
HITRANS  : 253.0 Volts
ITEMP    : 27.0 C Internal
ALARMDEL : Always
BATTV    : 55.4 Volts
LINEFREQ : 50.0 Hz
NUMXFERS : 0
TONBATT  : 0 seconds
CUMONBATT: 0 seconds
XOFFBATT : N/A
SELFTEST : NO
STATFLAG : 0x02000008 Status Flag
SERIALNO : JS0543013779
BATTDATE : 2005-10-19 
NOMBATTV :  48.0
FIRMWARE : 65.6.I USB FW:2.4
APCMODEL : Smart-UPS 2200 RM
END APC  : Thu Jan 26 11:04:37 CET 2006

Voici les informations d'état les plus intéressantes :

  • STATUS : ONLINE indique l'état de la ligne secteur. ONLINE signifie que l'on fonctionne sur le secteur. ONBATT signifie que l'on fonctionne sur batterie et CHARGING indique que la batterie se recharge.
  • LOADPCT : 13.0 Percent Load Capacity indique le pourcentage de charge de l'UPS. Dans ce cas, l'UPS nous indique qu'il est à 13% de sa charge. Lorsqu'on ajoute des serveurs, cette charge augmente (et, fatalement, l'autonomie des batteries diminuera).
  • BCHARGE : 100.0 Percent indique l'état de charge de la batterie.
  • TIMELEFT : 74.0 Minutes indique une estimation du temps restant en considérant la charge de l'UPS et l'état de la batterie.
  • BATTDATE : 2005-10-19 indique la date de mise en place de la batterie (en général, on conseille de remplacer les batteries tous les 3 ans).
  • ITEMP : 27.0 C Internal indique la température interne de l'UPS. (N'oubliez pas que la température a une grande influence sur les capacités de la batterie)

Voici les éléments à connaître (et à modifier suivant vos besoins) :

  • MBATTCHG : 5 Percent : si la batterie descend sous ce seuil, le démon apcupsd demande l'arrêt du système.
  • MINTIMEL : 3 Minutes : si l'estimation de temps restant descend sous ce seuil, le démon apcupsd demande l'arrêt du système.
  • MAXTIME : 0 Seconds : si le système passe cette durée sur la batterie, le démon apcupsd demande l'arrêt du système. Une valeur de 0 désactive la fonctionnalité. Remarque : Cette fonctionnalité est intéressante si vous n'avez pas de groupe électrogène. Les serveurs le moins critiques peuvent être éteint après 5 minutes sur batterie pour conserver de l'énergie afin que les serveurs critiques tiennent le plus longtemps possible sans courant secteur.
  • DWAKE : -01 Seconds : lorsque l'UPS est sans courant (secteur ou batterie) et que le courant secteur revient, l'UPS attendra cette valeur avant de provoquer l'allumage des serveurs.
  • DSHUTD : 090 Seconds : délais de "grâce" entre le moment où le démon apcupsd demande l'arrêt et l'arrêt effectif.

Pour modifier ces éléments, vous devez modifier le fichier de configuration /etc/apcupsd/apcupsd.conf et ensuite lancer sudo /sbin/apctest –configure après avoir tué le démon apcupsd via la commande sudo /etc/init.d/apcupsd stop. (merci à ReWinD pour l'info). Ne pas oublier de relancer le démon par la commande sudo /etc/init.d/apcupsd start .

  • Lors d'une mise à jour de Ubuntu, le loopback local se commente. Donc le ré-ajouter dans le cas d'une connection usb au UPS. Donc, "sudo nano /etc/network/interfaces" et ajouter "auto lo" et "iface lo inet loopback"

Contributeur : ostaquet

  • ups_apc.txt
  • Dernière modification: Le 05/10/2019, 19:24
  • (modification externe)