Connecter un onduleur sous Linux

Lorsqu'une machine Linux fonctionne en permanence en tant que serveur de fichiers, serveur InterNet, machine de calcul, etc. une panne de courant provoquant l'arrêt brutal de la machine peut être catastrophique. Il faut donc installer une source temporaire de courant appelé onduleur ou UPS. Le prix de ces matériels ayant grandement chuté, quiconque, de la grosse PME au particulier, peut actuellement sécuriser sa machine pour un coût raisonnable.

 

Pour matérialiser simplement le fonctionnement d'un onduleur, il suffit de le comparer à une batterie. L'onduleur est connecté entre l'arrivée du courant et le connecteur d'alimentation de la machine. En fonctionnement normal, le courant entre dans l'onduleur qui le stabilise et le redistribue aux périphériques connectés (ordinateur, disques externes, écran, etc.). Lors d'une panne d'alimentation, les accumulateurs de l'onduleur prennent le relais pour fournir le courant aux périphériques durant une période proportionnelle à la capacité des accumulateurs. Cette capacité est exprimée en VA. Une machine classique (UC comprenant un lecteur CD, un disque dur, un lecteur de disquettes, etc)... peut être alimentée en courant entre 10 à 15 minutes avec un onduleur de 500VA.

Depuis un bon bout de temps, les onduleurs sont devenus "intelligents" dans le sens où ils peuvent informer l'ordinateur de l'état de leur fonctionnement. Ainsi, la machine saura exécuter une action spécifique en cas de coupure prolongée. Pour transmettre cette information, l'onduleur communique habituellement via une connexion série.

Il n'existe cependant pas de normes établies quant aux broches utilisées à l'arrière des onduleurs. Chaque constructeur livre logiquement une notice décrivant l'utilité de chaque broche. Si un câble vous a été livré avec l'onduleur et que vous désirez ardemment l'utiliser, voici comment procéder...

IDENTIFIER LES INFORMATIONS PROVENANT DE L'ONDULEUR

Comme nous venons de le voir, l'onduleur envoie des informations sur son état via le port série. En principe, il suffit de surveiller le port où il est connecté pour connaître les broches utilisées.

  1. Placez l'onduleur en charge durant une longue période pour vous assurer de l'autonomie des accumulateurs. Ne branchez dessus aucun périphérique.
  2. Une fois la charge effectuée, connectez-le sur un port série de votre ordinateur et branchez-y un périphérique comme une imprimante, un écran ou tout autre appareil vous permettant de constater la fourniture de courant.
  3. Servez vous d'un utilitaire comme upscheck pour visualiser l'état du port où est connecté l'onduleur. Notez bien chaque information, celles-ci décrivent le fonctionnement normal de l'onduleur.
  4. Déconnectez l'arrivée du courant sur l'onduleur. Celui-ci va passer en mode autonome pour fournir l'alimentation nécessaire au fonctionnement du périphérique connecté. Encore une fois, notez l'état de chaque broche. L'onduleur doit renseigner l'ordinateur sur l'absence d'alimentation.
  5. Attendez patiemment en observant tout changement dans l'état du port. Un peu plus d'une minute avant l'extinction du périphérique, l'onduleur informe votre machine de la faible charge des accumulateurs.

A présent, vous avez toutes les informations nécessaires pour configurer votre système en fonction des informations envoyées par l'onduleur.

FABRIQUER SON PROPRE CABLE

Si vous êtes un rien agile de vos mains, une meilleure solution consiste à fabriquer soi-même un câble. Ceci vous évitera de modifier les sources de l'utilitaire informant le système sur l'état de l'onduleur. Le schéma de connexion donné en figure 1 vous permettra de faire fonctionner Linux avec tous les onduleurs du marché.

Le principe en est fort simple :

Si la broche 1 (DCD) du port série DB9 est active, cela signifie que l'onduleur ne reçoit plus de courant. Accessoirement, on peut aussi connecter la broche 8 (CTS) si l'onduleur informe de la faible charge des accumulateurs.

Pour notre exemple, nous avons utilisé un onduleur de marque Mustek pour son excellent rapport qualité/prix (quelques 700 francs pour 500VA). A l'arrière, on trouve un connecteur DB9 dont les caractéristiques sont :

Broche 2 active lors d'une défaillance d'alimentation

Broche 5 active si l'autonomie des accumulateurs est inférieure à 90 secondes

Broche 4 : masse commune aux broches précédentes.

CONFIGURATION DU SYSTEME

Le comportement que le système doit tenir en cas de panne de courant est défini par le fichier /etc/inittab (voir Lmag 4 page 42/43). Les lignes importantes dans ce fichier sont celles qui définissent les actions powerwait et powerokwait. Habituellement, ces lignes sont correctement définies par défaut dans toutes les distributions que nous avons testées.

Le déroulement du processus est le suivant :

- Un utilitaire surveille en permanence le port série où est branché l'onduleur. Il existe plusieurs utilitaires comme powerd, genpower ou upsd. Ce dernier est celui que nous avons choisi car il est simple à configurer et possède un mode "test" très utile. En cas de panne de courant upsd recevra via le port série le signal "power failure" (défaillance d'alimentation). Il attendra de recevoir le signal "battery low" puis enverra le signal SIGPWR à init.

- Init va alors consulter le fichier /etc/inittab puis exécuter la commande associée à l'action powerwait. Il s'agit habituellement d'un script lançant l'arrêt de la machine avec la commande shutdown.

- Si le courant revient, upsd enverra une seconde fois le signal SIGPWR à init. Dans le même temps, upsd va inscrire le mot "OK", dans le fichier /etc/powerstatus.

- Init va alors vérifier le contenu du fichier /etc/powerstatus. Si celui-ci est "OK", la procédure shutdown sera arrêtée.

- Si le courant ne revient pas, la procédure shutdown se poursuivra jusqu'à l'arrêt total de la machine.

TESTER LE FONCTIONNEMENT

Avant de connecter l'onduleur à la place de l'arrivée de courant de votre ordinateur, il est fortement conseillé de vérifier votre configuration comme suit :

  1. Branchez l'onduleur sur le secteur
  2. Branchez le câble entre l'onduleur et votre machine
  3. Appelez la commande upsd -t -i 1 /dev/cua1 pour lancer le test (-t) avec une temporisation de une seconde (-i 1) sur l'onduleur branché sur le second port série (/dev/cua1).
  4. Débranchez l'alimentation de l'onduleur. Upsd doit alors vous informer du passage en mode batterie
  5. Rebranchez l'alimentation. Upsd doit vous informer du passage en mode normal
  6. Débranchez à nouveau l'alimentation puis attendez. Upsd doit vous informer de l'état de faible charge des accumulateurs.

Si toute cette procédure est conforme, vous pouvez ensuite tester upsd en fonctionnement classique (démon). Répétez les étapes ci-dessus en observant les réactions du système. Si tout vous semble correct, arrêtez votre système puis branchez l'onduleur sur l'alimentation de la machine.

ATTENTION

Ne prenez pas au pied de la lettre les informations données dans cet article. Nous ne saurions garantir le bon fonctionnement de votre installation. Ce qui marche pour nous peut parfaitement vous mener à la catastrophe. Lisez méticuleusement la notice de l'onduleur ainsi que celle du logiciel que vous désirez utiliser. Procédez aux tests de manière systématique et de préférence plusieurs fois ! Pour des informations plus complètes, reportez-vous au UPS-HOWTO d'Harvey J. Stein.


© Copyright 2000 Diamond Editions/Linux magazine France. - Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1or any later version published by the Free Software Foundation; A copy of the license is included in the section entitled "GNU Free Documentation License".