Bonjour à tous,
Dans ce nouveau tutoriel consacré à MDADM nous allons voir comment superviser un RAID céer avec MDADM.
Nous allons voir les choses suivantes:
- Comment configurer notre serveur pour envoyer des E-mails.
- Comment configurer MDADM pour envoyer des E-mails en cas de défaillance d’un disque
- Comment simuler une panne de disque
- Comment remetre un disque en panne dans le RAID
Si vous avez bien suivis mon tuto précédent, vous devriez avoir un Debian 7 installé sur un RAID 1 logiciel.
Pour rappel, vous pouvez voir l’état de fonctionnement de votre RAID avec la commande suivante:
cat /proc/mdstat
Ou d’une partition spécifique avec la commande:
mdadm -D /dev/mdX
Ou x est le numéro de partition.
Donc cela est bien beau d’avoir un RAID mais si un des deux disque devient défaillant? comment le savoir?
Pour cela MDADM inclus un système de monitoring en temps réel du RAID, mais pour que celui-ci fonctionne il faut un minimun de configuration.
Configurer notre serveur pour envoyer des E-mails
En cas de défaillance d’un des deux disques de votre RAID vous pouvez recevoir un E-mail pour vous notifier que le RAID n’est plus optimal.
Pour ce faire il faut d’abord que votre machine est la capacité d’envoyer des E-mails. Si vous n’avez pas de serveur SMTP de disponible ou que vous ne savez pas comment configurer votre serveur pour envoyer des emails, voici un tutoriel très simple pour utiliser le SMTP de Gmail pour envoyer des E-mails depuis votre serveur.
INFO : Vous devez disposer d’un compte Gmail.
Nous allons commencer par installer Postfix et les dépendances nécessaires:
apt-get install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules
Pendant l’installation de Postfix choisissiez « Internet Site » et comme FQDN mettez ce que vous voulez.
Pour ma part j’ai mis « mail.tutoraid.tuto »
Une fois l’installation terminée nous allons configurer Postfix
Editez le fichier « /etc/postfix/main.cf »
Et rajoutez ces lignes à la fin:
relayhost = [smtp.gmail.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_CAfile = /etc/postfix/cacert.pem smtp_use_tls = yes
Maintenant nous allons configurer Postfix pour envoyer des E-mails à partir de notre compte Gmail.
Créer le fichier « /etc/postfix/sasl_passwd » et ajoutez cette ligne:
[smtp.gmail.com]:587 votreadresse@gmail.com:mot_de_passe
Ou:
– votreadresse@gmail.com = votre addresse Gmail
– mot_de_passe = votre mot de passe Gmail
Enregistez le fichier et donnez les bonnes permissions à ce fichier:
chmod 400 /etc/postfix/sasl_passwd postmap /etc/postfix/sasl_passwd cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem | tee -a /etc/postfix/cacert.pem
Enfin on redémarre Postix
/etc/init.d/postfix reload
On peut maintenant vérifier si les E-mails fonctionnent avec la commande suivante:
echo "Test E-mail depuis postfix" | mail -s "Test Postfix" votre_adresse@email
Vérifier votre boite mails et vous devriez avoir reçu un mail avec comme Objet « Test Postfix »
Si tout est OK nous pouvons maintenant configurer MDADM pour envoyer des E-mails :)
Configurer MDADM pour envoyer des E-mails en cas de défaillance d’un disque
Tout d’abord, il faut vérifier si le démon de supervison de mdadm est bien lancé au démarrage.
Ouvrez le fichier « /etc/default/mdadm » et vérifiez que ces lignes sont bien présentes:
# START_DAEMON: # should mdadm start the MD monitoring daemon during boot? START_DAEMON=true
Si tout est OK editez le fichier « /etc/mdadm/mdadm.conf » et ajoutez votre email devant la ligne MAILADDR:
# instruct the monitoring daemon where to send mail alerts MAILADDR votre_adresse@email
Enregistrez le fichier et relancez mdadm avec la commande suivante:
/etc/init.d/mdadm restart
Et voila l’envoi des mails en cas de défaillance d’un disque est opérationnel :)
Comment le tester?
C’est simple, nous allons simuler la défaillance d’un des deux disques du RAID.
Simuler une panne de disque
Commencez par faire un « cat /proc/mdstat » pour voir les noms des partitions disponibles.
Voila ce que j’ai en sortie:
root@Tutoraid:~# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sdb2[2] sda2[0] 2670528 blocks super 1.2 [2/2] [UU] md0 : active raid1 sdb1[2] sda1[0] 7806912 blocks super 1.2 [2/2] [UU] unused devices: root@Tutoraid:~#
J’ai donc deux partitions raid md0(sda1 et sdb1) et md1(sda2 et sdb2). Nous allons donc simuler la defaillance du disque sdb en mettant en « fail » les partitions sdb1 et sdb2 avec les commandes suivantes:
mdadm --manage /dev/md0 --fail /dev/sdb1 mdadm --manage /dev/md1 --fail /dev/sdb2
Faites la commande « cat /proc/mdstat » et vous devriez avoir la sortie suivante:
root@Tutoraid:~# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sdb2[2](F) sda2[0] 2670528 blocks super 1.2 [2/1] [U_] md0 : active raid1 sdb1[2](F) sda1[0] 7806912 blocks super 1.2 [2/1] [U_] unused devices: root@Tutoraid:~#
Cela nous montres bien que les partitions sdb1 et sdb2 sont montrés comme « F » (Faulty)
Si vous voulez plus de details vous pouvez taper la commande » mdadm -D /dev/md0″.
root@Tutoraid:~# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Sat Dec 21 08:52:30 2013 Raid Level : raid1 Array Size : 7806912 (7.45 GiB 7.99 GB) Used Dev Size : 7806912 (7.45 GiB 7.99 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Sat Dec 21 10:18:12 2013 State : clean, degraded Active Devices : 1 Working Devices : 1 Failed Devices : 1 Spare Devices : 0 Name : Tutoraid:0 (local to host Tutoraid) UUID : 6bccecf3:0957e59f:b5b7d8cd:123deedb Events : 147 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 0 0 1 removed 2 8 17 - faulty spare /dev/sdb1
Maintenant vérifiez vos emails, vous avez du recevoir au moins deux emails de ce type:
Votre RAID étant toujours dégradé, nous allons voir comment le remettre bien pour ne plus recevoir de mails.
Remetre un disque en panne dans le RAID
Pour ce faire il faut maintenant retirer complêtement sdb1 et sdb2 du RAID et les rajouter.
On retire les disques Fail du RAID.
mdadm --manage /dev/md0 --remove /dev/sdb1 mdadm --manage /dev/md1 --remove /dev/sdb2
Si vous faites un « mdadm -D /dev/md0 », vous voyez que le RAID est toujours degradé mais actif sur un seul disque.
Maintenant nous allons rajouter les deux partitions de sdb dans le RAID avec les commandes suivantes:
mdadm --manage /dev/md0 --add /dev/sdb1 mdadm --manage /dev/md1 --add /dev/sdb2
SI vous faites encore un « cat /proc/mdstat » vous voyez que le RAID est en train de se reconstruire:
root@Tutoraid:~# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sdb2[2] sda2[0] 2670528 blocks super 1.2 [2/1] [U_] resync=DELAYED md0 : active raid1 sdb1[2] sda1[0] 7806912 blocks super 1.2 [2/1] [U_] [=>...................] recovery = 7.3% (572224/7806912) finish=2.1min speed=57222K/sec unused devices:
Vous pouvez faire un « watch cat /proc/mdstat » pour voir en temps reel la reconstruction du RAID.
Et voila ce qui met fin au tutoriel « Comment superviser un RAID MDADM »
J’ espère que vous aurez trouvé celui-ci intéressant.
A bientôt pour le prochain tuto !
8 Commentaires
Passer au formulaire de commentaire
Lire — comme deux tirets simples et accolés
Bonjour,
Ce n’est pas utile de simuler une panne et d’avoir à reconstruire le miroir juste pour tester l’envoi de l’e-mail ;
La commande suivante exécutée en root suffit ;
# mdadm –monitor –scan –test –oneshot
Si votre START_DAEMON, votre MAILADDR et votre messagerie est bien configurée vous recevrez un mail « TestMessage event on » qui contiendra le contenu de la commande utilisateur $ cat /proc/mdstat
Bien à vous
Salut,
Les mails postfix partent bien sur google, mais une petite erreur dans mdadm
mdadm: excess address on MAIL line: nom.prenom@gmail.com – ignored
Est-ce que cela te dit quelque chose ?
bonjour,
Quel extension doit avoir le fichier sasl_passwd créé??? .cf? .txt? .conf?
Cordialement
ça y est!! j’ai trouvé.
aucune extension au fait!!!
je recevais le message d’erreur suivant:
Au passage, je tiens à dire que se tutoriel est et bien expliqué, parfait et très utilise pour les débutant!!
Comme dit « Merci pour ce partage de connaissance! » et continué sur cette voix!!
Merci pour ce partage de connaissance! très bien expliqué d’ailleurs
Super tuto !!
marche nickel…
Super tuto !!
merci beaucoup !!