"Chien-de-garde" mat�riel et bouton d'arr�t

ArticleCategory: [Choose a category, do not translate this]

Hardware

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in en Guido Socher

en to fr Paul Delannoy

AboutTheAuthor:[A small biography about the author]

Guido aime Linux parce que la mani�re dont fonctionne r�ellement un ordinateur le passionne. La modularit� et l'ouverture des syst�mes Linux en font un compagnon id�al pour de telles exp�rimentations.

Abstract:[Here you write a little summary]

L'article un panneau de contr�le LCD expliquait comment construire un affichage LCD � microcontr�leur offrant de tr�s nombreuses possibilit�s. Vous n'avez g�n�ralement besoin que de peu d'entre elles. Le mat�riel que je vais d�crire dans cet article est moins cher (l'afficheur �tait d�j� une affaire) et utilise seulement deux des fonctions principales de l'afficheur LCD : Les pi�ces n�cessaires sont disponibles pratiquement partout. Vous n'aurez pas de difficult� � les trouver. Elles vous co�teront au total environ 5 Euros.

ArticleIllustration:[This is the title picture for your article]

[Illustration]

ArticleBody:[The article body]

Qu'est ce qu'un 'chien-de-garde'?

En jargon informatique ce terme d�signe un syst�me mat�riel tr�s fiable qui contr�le le fonctionnement continu d'un ordinateur. De tels mat�riels se trouvent � bord de la mission Mars Pathfinder (qui voudrait envoyer quelqu'un sur Mars simplement pour appuyer sur �Reset' ?) et dans certains ordinateurs tr�s chers.

L'id�e de base est extr�mement simple : l'ordinateur va "parler", � intervalles r�guliers, au chien-de-garde mat�riel pour lui montrer qu'il est toujours en fonctionnement. S'il �choue dans cette mission, le chien-de-garde red�marrera l'ordinateur.

Notez qu'un syst�me Linux est normalement capable de fonctionner en permanence pendant des mois, en moyenne probablement 1 � 2 ans, sans aucun "plantage". Si votre machine "plante" chaque semaine, quelque chose ne va pas et le chien-de-garde n'est pas la solution. Cherchez une RAM d�fectueuse (voir memtest86.com), un processeur en surchauffe, des c�bles IDE trop longs,...

Mais puisque Linux est si fiable, �tant capable de fonctionner un an sans probl�me, pourquoi lui adjoindre un chien-de-garde ? La r�ponse est simple : pour le rendre encore plus fiable. Une question humaine se cache derri�re ce raisonnement. Un serveur qui ne pose aucun probl�me pendant un an est potentiellement inconnu des personnels de service. S'il se "plante" et que personne ne sait o� il se trouve ? Il peut m�me d�cider de s'arr�ter la veille de No�l, quand tout le monde est chez soi. Dans ces situations un chien-de-garde devient tr�s utile.

Pourtant un chien-de-garde ne r�sout pas tous les probl�mes. Il ne prot�ge pas de la panne d'un composant mat�riel. Inclure un chien-de-garde dans un serveur suppose que celui-ci a �t� correctement pr�par� (mises � jour du BIOS et du chipset, ventilation correcte).

Comment utiliser le chien-de-garde ?

Le syst�me pr�sent� ici v�rifie uniquement le fonctionnement des programmes des utilisateurs. Pour augmenter encore la fiabilit� d'une machine vous devez surveiller vos applications (serveurs web, bases de donn�es) et vos ressources syst�me (espace disque, peut-�tre la temp�rature CPU). D'autres applications (comme cron) vous y aideront. Tout ceci est d�j� d�crit dans l'article un panneau de contr�le LCD aussi je n'y reviens pas en d�tail ici.

Exemples? Voici un petit script pour surveiller le r�seau, l'usage de la partition d'�change et du disque.


#!/bin/sh
PATH=/bin:/usr/bin:/usr/local/bin
export PATH
#
# Monitor the disk
# ----------------
# check if any of the partitions are more than 80% full.
# (crontab will automatically send an e-mail if this script
# produces some output)
df | egrep ' (8.%|9.%|100%) '
#
# Monitor the swap
# A server should normally be dimensioned such that it
# does not swap. Swap space should therefore be constant
# and limited.
# ----------------
# check if more than 6 Mb of swap are used
swpfree=`free | awk '/Swap:/{ print $3 }'`
if expr $swpfree \> 6000 > /dev/null ; then
    echo "$0 warning! swap usage is now $swpfree"
    echo " "
    free
    echo " "
    ps auxw
fi
#
# Monitor the network
# -------------------
# your _own_ IP addr or hostname:
hostn="linuxbox.your.supercomputer"
#
if ping -w 5 -qn -c 1 $hostn > /dev/null ; then
    # ok host is up
    echo "0" > /etc/pingfail
else
    # no answer count up the ping failures
    if [ -r /etc/pingfail ]; then
        pingfail=`cat /etc/pingfail`
    else
        # we do not handle the case where the
        # pingfail file is missing
        exit 0
    fi
    pingfail=`expr "$pingfail" "+" 1`
    echo "$pingfail ping failures"
    echo "$pingfail" > /etc/pingfail
    if [ $pingfail -gt 10 ]; then
        echo "more than 10 ping failures. System reboot..."
        /sbin/shutdown -t2 -r now
    fi
fi
# --- end of monitor script ---

Ce script peut �tre lanc� toutes les 15 minutes en ajoutant l'entr�e suivante dans le fichier crontab :

1,15,30,45 * * * * /chemin/du/script

Le mat�riel pour le chien-de-garde

Il n'existe pas de relais normalis�, chaque fabricant propose sa propre conception. L'important pour nous est la valeur de la r�sistance interne du bobinage. Aussi je vous propose deux sch�mas, l'un pour un relais 5V, 500 Ohm, l'autre pour un relais 5V, 120 Ohm. Demandez l'imp�dance du relais ou mesurez-la avec un Ohmm�tre avant de l'acheter. Vous pouvez agrandir le sch�ma en cliquant dessus.
Relais 120 Ohm :
[relais 120 Ohm]
Relais 500 Ohm :
[relais 500 Ohm]

Le bouton d'arr�t met en contact les lignes RTS et CD lorsqu'il est press�. Il a un aspect un peu �trange sur le sch�ma parce que Eagle ne propose pas de meilleur symbole.
Je ne donne pas de liste de composants dans cet article. Le n�cessaire est visible sur le sch�ma ci-dessus (N'oubliez pas le connecteur DB9 pour la ligne s�rie). Vous pouvez aussi utiliser tout type de diode, 1N4148 par exemple. Personnellement, je crois que le relais 500 Ohm est plus adapt� puisque vous n'avez besoin ni de R4, ni de condensateur 2000uF (ou 2200uF). Un condensateur plus petit (1000uF) est suffisant pour C1.
Note : Vous utiliserez une LED rouge dans le circuit 120 Ohm et une LED verte pour le relais 500 Ohm. Ce n'est pas une plaisanterie ! Le voltage support� par une LED verte est plus �lev� que celui support� par une LED rouge.
Le plan de la carte, les fichiers Eagle et postscript pour sa gravure sont inclus dans le logiciel propos� en t�l�chargement � la fin de cet article. Le logiciel de CAD (Computer Aided Design) Eagle version Linux est disponible sur cadsoftusa.com.

Comment �a marche ?

Le coeur du circuit du chien-de-garde est une puce timer NE555. Cette puce contient 2 comparateurs, une bascule Flipflop et 3 r�sistances de 5KOhm chacune, qui servent de r�f�rence aux comparateurs. Chaque fois que la broche nomm�e seuil (6) descend sous les 2/3 de la valeur de l'alimentation, la bascule est activ�e (�tat on).
[ne555]
Regardons maintenant le sch�ma du circuit : le signal RTS de la ligne s�rie est utilis� comme tension d'alimentation. Selon la norme RS232 cette tension est de +/- 10V, c'est pourquoi une diode est n�cessaire avant le condensateur C1. Ce condensateur C1 se charge tr�s rapidement et sert � stocker l'�nergie n�cessaire � l'activation temporaire du relais . Le condensateur C2 se charge tr�s lentement au travers de la r�sistance de 4.7MOhms. Le transistor T1 d�charge le condensateur C2 lorsqu'il re�oit une courte impulsion par la broche DTR de la prise RS232. Si cette impulsion ne lui parvient pas (parce que l'ordinateur s'est arr�t�) le condensateur C2 peut-�tre charg� (il faut environ 40 secondes) au-del� des 2/3 de la tension d'alimentation et le FlipFlop est mis en position "on".

Le condensateur C1, la r�sistance R2, la LED et le relais doivent avoir des valeurs telles que l'�nergie fournie par C1 soit suffisante pour activer le relais mais insuffisante pour le garder activ� en permanence. Le but est que l'on presse le bouton "reset" seulement une ou deux secondes.

La LED restera allum�e jusqu'� ce que le serveur ait termin� son red�marrage.

Comme vous le voyez sur le sch�ma, il exite �galement un bouton d'arr�t connect� � la broche CD. Si vous le maintenez enfonc� un court moment (15 sec.) le pilote logiciel lancera la commande "shutdown -h now" pour arr�ter le serveur. Ceci concerne la maintenance normale et n'a aucun lien avec le fonctionnement du chien-de-garde.

Le pilote logiciel

C'est un court programme en langage C qui peut �tre lanc� par les scripts du r�pertoire /etc/init.d/. Il active en permanence le signal RTS de la prise RS232 puis envoie une impulsion sur DTR toutes les 12 secondes (la valeur "timeout" de ce chien-de-garde est de 40 secondes). Lors d'un arr�t normal de votre ordinateur le programme va couper le signal RTS et envoyer une derni�re impulsion sur DTR. Ainsi le condensateur d'alimentation (C1) sera d�charg� avant que l'on d�passe le d�lai du "timeout". Le chien-de-garde ne r�agit donc pas lors d'op�rations normales. Pour installer ce pilote t�l�chargez le fichier linuxwd-0.3.tar.gz depuis la page de t�l�chargement. Puis d�compressez-le et tapez :
make
pour le compiler. Copiez l'ex�cutable linuxwd obtenu dans /usr/sbin/linuxwd. Editez le script linuxwd_rc (pour redhat/mandrake, ou linuxwd_rc_anydist pour une autre distribution) pour indiquer le port RS232 sur lequel est connect� le circuit (ttyS1=COM2 ou ttyS0=COM1). Copiez alors le script dans
/etc/rc3.d/S21linuxwd
et dans
/etc/rc5.d/S21linuxwd
C'est tout.

Tests

Lorsque vous avez fini de souder tous les composants, vous devez tester votre circuit avant de le connecter � l'ordinateur. Connectez la broche pr�vue pour �tre reli�e ult�rieurement � la ligne RTS du port s�rie, � une source continue de 9-10V et attendez 40-50 secondes. Vous devriez entendre le clic du relais qui s'enclenche et voir la LED s'allumer. Le relais ne doit pas rester coll�. La LED ne s'�teindra que lorsque vous brancherez la ligne qui va vers DTR � +10V.
Lorsque cette v�rification est termin�e vous pouvez brancher le circuit sur votre ordinateur. Le programme linuxwd propose un mode de test dans lequel il effectue des sorties sur imprimante et un certain nombre d'arr�ts pour simuler des arr�ts syst�me. La commande

linuxwd -t /dev/ttyS0

lance le pilote dans ce mode (avec /dev/ttyS1 si le circuit est branch� sur COM2).

Installation mat�rielle

Le brochage de l'interface RS232 est le suivant :
9 PIN D-SUB MALE

9 broches D-SUB MALE sur l'ordinateur.

connecteur 9 broches connecteur 25 broches Name Dir Description
1 8 CD input Carrier Detect
2 3 RXD input Receive Data
3 2 TXD output Transmit Data
4 20 DTR output Data Terminal Ready
5 7 GND -- System Ground
6 6 DSR input Data Set Ready
7 4 RTS output Request to Send
8 5 CTS input Clear to Send
9 22 RI input Ring Indicator

Connecter le circuit � la prise RS232 doit �tre tr�s simple. Pour connecter la ligne 'reset' du CPU au relais, vous devez rep�rer les fils qui vont au bouton 'reset' de votre ordinateur. Connectez le relais du circuit en parall�le au bouton 'reset'.

Conclusion

Un tel chien-de-garde n'apporte pas une fiabilit� � 100% mais il donne un niveau suppl�mentaire de s�curit�. Un probl�me peut survenir si la v�rification du syst�me de fichiers ne se termine pas apr�s un �reset' mat�riel . Les nouveaux syst�mes de fichiers journalis�s peuvent am�liorer les choses, mais je ne les ai pas encore essay�s. Le chien-de-garde pr�sent� ici n'est pas cher, n'est pas trop complexe � construire et pratiquement aussi efficace que beaucoup de produits du commerce.

R�f�rences