"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]
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 :
- Un bouton d'arr�t g�n�ral (shutdown) du serveur
- Un �chien-de-garde' pour sa surveillance
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]
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 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).
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 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