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.
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 :
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.