RAID logiciel

Dernière mise à jour : 29/10/2009

    Linux vous permet de façon très simple de mettre en place un RAID logiciel en utilisant plusieurs partitions réparties sur deux disques durs (minimum) ou plus. Notez que l'on parle ici de RAID logiciel qui est donc entièrement géré par votre OS favori, contrairement au RAID matériel géré par une carte RAID (3ware, adaptec, etc ...). Contrairement aux idées reçues, Promise ou Sil font du RAID pseudo-logiciel bien que ce soient des controleurs à part entière. Cet article va donc vous présenter de façon rapide comment préparer des partitions pour en faire du RAID logiciel et les créer et gérer avec mdadm dont le projet officiel se trouve ici.

    Il est important de faire un petit rappel sur les RAID "de base" qui sont les suivants : 0, 1, 5. Il existe d'autres types de RAID (0+1, 6, 10) mais je ne les traiterais pas ici. Les différents RAID traités ici se décomposent ainsi :

    Sous Linux, il faut commencer par partionner vos disques dur en sélectionnant fd comme type d'id de partition. Dans l'exemple ci-dessous (venant de mon système), nous avons deux partitions identiques de 98GO et 3 partitions identiques de 20GO. Si vous vous demandez pourquoi mes partitions sont vues en tant que sda au lieu de hda, cela est dû au controleur Serial ATA (Sil 3112). Voici ce que me donne fdisk :

    Une fois vos partitions prêtes, installez mdadm puis créez donc le type de raid dont vous avez besoin, voici les commandes pour les trois types de RAID. La première prends donc deux partitions pour faire un RAID de type 0, la seconde un type RAID 1, la différence est que dans le premier exemple, votre espace total sera de 98GO x 2 = 196GO alors que dans le cadre du RAID 1, vous aurez seulement 98GO vu que le contenu est dupliqué. Dans le cadre du RAID 5, l'espace disponible sera de 2 fois la taille de la plus petite des partitions, le reste servant à la répartition des sommes de contrôle.

    Une fois le raid logiciel créé et synchronisé, vous devriez obtenir quelque chose ressemblant à la sortie ci-dessous. Les informations du raid se trouvent dans /proc/mdstat. Un petit cat sur ce fichier vous donnera les informations actuelles de vos partitions. Notez le nom des périphériques (md0,1,2 etc ...) qui correspond au nombre de RAID logiciels présents sur votre système.

    Une fois vos partitions prêtes à l'emploi, il ne vous reste plus qu'à les déclarer dans /etc/mdadm.conf en tapant la commande suivante : mdadm --detail --scan >> /etc/mdadm.conf. Cela renseignera votre système à l'avenir sur les RAID logiciels présents. Du côté du noyau, n'oubliez pas de bien déclarer les bonnes options comme ceci. Il vous incombe de sélectionner les types de RAID dont vous avez besoin mais sélectionnez au moins les 5 premiers. Notez que le device mapper n'est nécessaire que pour ceux utilisant LVM2 (pratique en serveur). Enfin, si vous mettez ces options en modules plutôt qu'en statique, utilisez initrd pour charger les modules au démarrage.


    Il ne vous reste qu'à formater votre RAID avec le système de fichier que vous voulez. Par exemple, vous pouvez utiliser mkfs.ext3 /dev/md0. Montez alors votre partition comme vous le désirez.

    Dans la liste rapide des dépannages on notera les commandes suivantes. Imaginez que vous ayez à dépanner un système à partir d'un liveCD (sous noyau 2.6 avec support RAID), vous pouvez utiliser ce qui suit :

    Si vous avez un problème de RAID, vous pouvez taper cette commande :
    Cette page devrait donc vous permettre de paramétrer de façon simple du RAID logiciel sur une machine. J'utilise cette méthode sur de nombreuses machines depuis plusieurs années (auparavant raidtools) et je n'ai jamais rencontré de problème majeur. Amusez-vous bien.