Debian + RAID Software
Rédigé par Xavier - -
Suite à mon article expliquant ma défaite vis à vis de ZFS, j'ai appris à configurer et gérer un RAID1 logiciel sous debian. Voici mon retour d'expérience et un petit tutoriel.

La documentation relative à la construction d'un RAID logiciel avec dmraid sur Linux est assez indigeste, surtout vis à vis des soucis avec GRUB. Heureusement, beaucoup de distributions offrent des assistants pour créer ce RAID, comme debian, ubuntu, RedHat, Fedora, CentOS... En prime, GRUB2 peut booter sans soucis sur du RAID. Pour ma part j'ai retenu debian (pour des raisons probablement trollesques, surtout vis à vis de SELinux, que je détaillerai pas ici).
Mise en place du RAID
Pour ma part j'ai divisé mon système en 3 partitions:
- / de 4096Mo en ext4
- swap de 256Mo
- /srv avec le reste (~930Go) en ext4
Je vais résumer rapidement la procédure de création du RAID avec des captures faites sous Virtualbox (mais les disques font 30 Go et non 1To). La version de debian utilisée est Squeeze.
Après avoir établi votre plan de partitionnement, vous devez les créer sur les deux disques en sélectionnant "Utiliser comme: VOLUME PHYSIQUE RAID". Faites des partitions primaires (sauf si vous en avez plus de 4). Activez l'indicateur d'amorçage sur la partition qui servira à booter (/ ou /boot). Voici ce que vous obtenez pour le moment:
Ensuite allez dans "Configurer le RAID avec gestion logicielle". Et là vous allez pouvoir créer vos RAID à partir des partitions. Associez celles de même taille ensemble pour en faire un RAID1 (vous pouvez faire un RAID0 sur la swap si vous voulez).
Une fois vos périphériques construits, validez. Vous revenez alors à la liste de vos partitions, et vous voyez vos RAID logiciels.
Et maintenant vous allez devoir associer les points de montages et systèmes de fichiers. Voici ce que vous obtenez à la fin:
Dès à présent vous pouvez valider et continuer l'installation de Debian.
Il y a un bug qui fait que GRUB2 est installé uniquement sur le premier disque dur. Du coup, en cas de défaillance de celui-ci, l'ordinateur ne pourra pas booter sur le second. Il faut pour cela, après l'installation, entrer la commande:
grub-install /dev/sda && grub-install /dev/sdb
En remplaçant le sda et sdb par vos disques bien entendu.
Vérifications et essais
Ordinateur éteint, déconnectez un disque dur et démarrez votre machine. Si le système fonctionne, c'est gagné. Vous remarquez qu'au boot un message indique que la grappe RAID a un souci. Faites l'essai avec vos deux disques (pour voir si le boot est correct). Attention, après avoir démarré sans un disque, celui-ci est exclu de la grappe et n'y retourne pas automatiquement. Il faut l'y réinsérer (voir le point "réinsertion d'un disque").
Visualiser l'état de nos grappes
# cat /proc/mdstat
# cat /proc/mdstat Personalities : [raid0] [raid1] md2 : active raid1 sda3[0] sdb3[1] 27330488 blocks super 1.2 [2/2] [UU] md1 : active raid0 sda2[0] sdb2[1] 247808 blocks super 1.2 512k chunks md0 : active raid1 sda1[0] sdb1[1] 3997684 blocks super 1.2 [2/2] [UU] unused devices:
État individuel d'une grappe
# mdadm --detail /dev/md0
# mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Fri Dec 31 15:07:16 2010 Raid Level : raid1 Array Size : 3997684 (3.81 GiB 4.09 GB) Used Dev Size : 3997684 (3.81 GiB 4.09 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Fri Dec 31 16:00:51 2010 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Name : debian:0 (local to host debian) UUID : 59051142:4b4a39e4:b6adad6e:bf20f8d7 Events : 32 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 8 17 1 active sync /dev/sdb1
Réinsérer un disque dans la grappe
Je vais prendre un cas simple: vous avez débranché un disque dur, pour tester si l'ordinateur pouvait toujours démarrer. Mais même après l'avoir rebranché, il n'est pas réintégré dans la grappe. Commencez par vérifier vos grappes:
# mdadm --detail /dev/md0
Répétez l'opération pour md1 et md2. Voici un extrait:
Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 0 0 1 removed
Number Major Minor RaidDevice State 0 8 3 0 active sync /dev/sda3 1 0 0 1 removed
Là on voit clairement le problème. /dev/sdb1 et /dev/sdb3 ont été exclus de leur grappe. Pour les rajouter il faut taper:
# mdadm --manage /dev/md0 --ad /dev/sdb1
Là, sdb1 a été ré-ajouté dans la grappe /dev/md0. Vous pouvez visualiser la reconstruction avec la commande cat /proc/mdstat
Personalities : [raid0] [raid1] md2 : active raid1 sda3[0] 27330488 blocks super 1.2 [2/1] [U_] md1 : active raid0 sda2[0] sdb2[1] 247808 blocks super 1.2 512k chunks md0 : active raid1 sdb1[1] sda1[0] 3997684 blocks super 1.2 [2/1] [U_] [=>...................] recovery = 6.7% (268544/3997684) finish=0.9min speed=67136K/sec unused devices:
Reconstruisez également la seconde grappe défectueuse:
root@debian:~# mdadm --manage /dev/md2 --add /dev/sdb3 mdadm: re-added /dev/sdb3 root@debian:~# cat /proc/mdstat Personalities : [raid0] [raid1] md2 : active raid1 sdb3[1] sda3[0] 27330488 blocks super 1.2 [2/1] [U_] [>....................] recovery = 2.2% (603456/27330488) finish=5.1min speed=86208K/sec md1 : active raid0 sda2[0] sdb2[1] 247808 blocks super 1.2 512k chunks md0 : active raid1 sdb1[1] sda1[0] 3997684 blocks super 1.2 [2/2] [UU] unused devices:
Astuce watch
la commande watch permet de maintenir et rafraichir l'affichage du fichier /proc/mdstat. Pour cela, entrez:
# watch -n 1 'cat /proc/mdstat'
Alertes email
Utilisez la commande:
# dpkg-reconfigure mdadm
- Ensembles requis: all
- Vérification mensuelle de redondance: A vous de voir
- Démarrer le daemon: oui
- Destinataire courriel: votre email
Vérifiez ensuite que votre serveur est capable d'envoyer des emails. Par défaut il est rare que ce soit le cas. Vous devez le configurer. Reportez vous au point "serveur mail" de l'article sur la configuration d'Asterisk Lorsqu'un événement se produira, un mail sera envoyé.