Linux : Raid 107/07/2004
Par
nyal (Home page) Cet article a pour but d'expliquer comment mettre en place le RAID 1 logiciel sous Linux. Bonne lecture. 1. Introduction 2. Installation 3. Configuration 4. Vérification de mise en place du système 5. Conclusion
Cet article a pour seul but d'expliquer comment mettre en place le RAID 1 logiciel (cela est sensiblement la même chose pour les autres RAID).
L'interêt d'un tel dispositif est de permettre de prévenir la perte de données. Le RAID 1 (mirroring) duplique les données sur les disques spécifiés. Si vous n'avez pas besoin d'avoir des données synchronisées en temps réel, vous pouvez très bien mettre en place un système de sauvegarde qui se lance tous les soirs (par exemple) via cron. Il vous faut juste choisir le bon système, selon les données. Avantages :
Inconvénients
Pour mettre en pratique ce tutoriel, il vous faudra donc deux disques durs (SCSI ou IDE), voire davantage si vous voulez rajouter des disques de rechanges (spare disque) qui permettront le remplacement d'un disque en panne.
Vous pouvez aussi très bien faire les manipulations sur un seul disque dur. Mais l'interêt est très limité. Il peut être utile, par exemple, de faire du mirroring d'une zone du disque possédant des clusteurs défectueux.
Pour utiliser le RAID software avec linux, il faut vérifier que votre kernel dispose du support RAID 1.
Si ce n'est pas le cas, recompilez le noyau en mettant le support RAID 1 directement dans le kernel (pas en module) pour éviter de mettre en place initrd lors du démarrage. Options à cocher dans le noyau :
Une fois cela fait, il faut installer les raidtools et créer le fichier /etc/raidtab. Ceux-ci vont permettre la configuration du RAID.
L'exemple de configuration est réalisé avec trois disques durs IDE : respectivement /dev/hda, /dev/hdb et /dev/hdc.
Le disque /dev/hda contient l'installation standard de linux.
On n'aura spécifié que deux partitions : /dev/hda1 pour la partition racine et /dev/hda2 pour la partition swap.
Bien entendu, vous pourrez ensuite complexifier le système avec davantage de partitions (mais vous devrez faire autant de fois la manipulation suivante).
Vous allez rajouter les lignes suivantes dans le fichier /etc/raidtab :
Explication de la ligne persistent-superblock 1 :
L'ajout de cette ligne permet d'écrire un superblock au début de chaque partition des disques RAID. Cela permet au kernel de lire la configuration du RAID sans lire le fichier /etc/raidtab (il est donc déconseillé d'utiliser fsck sur les partitions, au risque de modifier ce superblock). Il vous faut créer maintenant les partitions /dev/hdb1 et /dev/hdc1 avec fdisk ou cfdisk. Les partitions doivent avoir la même taille (très important) et être de type fd (pour le RAID) pour qu'elles soient reconnues au démarrage. (Il vous faudra rebooter votre machine si vous venez de les créer. Par contre si vous avez seulement changer le type de la partition, ce n'est pas la peine de rebooter) La commande suivante initalise le volume RAID :
Mais celle-ci va échouer car votre partition racine (/dev/hda1) est montée et occupée. Il vous faut la démonter, mais c'est impossible pour la partition racine. Il est donc nécessaire d'éditer le fichier de configuration et remplacer :
par :
Comme la partition /dev/hda1 est en failed-disk, /dev/hdc1 deviendra la partition utilisée pour le RAID (c'est précisément la fonction d'un disque spare). Vous pouvez éviter cela en commentant son entrée dans le fichier /etc/raidtab, pour le décommenter à la fin de la manipulation.
Vous pouvez maintenant lancez la commande :
Il vous faut à présent formater le volume pour permettre le montage du système RAID (pas de soucis : /dev/hda1 ne sera pas formaté car il est en failed-disk).
Tapez par exemple (un autre système de fichier peut être choisi) :
Montez la partition :
Copiez à présent les fichiers de la partiton racine vers le répertoire /mnt/tmp (utilisez la commande cp -cp pour garder les droits des fichiers).
Vous avez presque fini. Il vous reste trois choses a faire :
par
par :
Et rechargez lilo (installation dans le mbr).
Rebootez la machine. Vous avez maintenant un système RAID fonctionnel. Verifiez à l'aide de la commande df et regardez le fichier /proc/mdstat. Il ne reste plus qu'à rajouter la partition /dev/hda1 dans le système RAID 1. Editez le fichier /etc/raidtab et remplacez :
par :
Vous pouvez maintenant activer le RAID avec la commande :
Attendez que les disques durs soient synchronisés avant d'éteindre votre système.
Vous devez avoir, une fois la synchronisation finie, une sortie ressemblant à cela (spare-disk rajouté) :
Si vous voulez démarrer sur le disque /dev/hdb, installez lilo dans son mbr et rajoutez dans le fichier /etc/fstab son swap :
Pour vérifier les partitons du système RAID, tapez la commande :
Si l'un des disques durs ne fonctionne plus (fichier /proc/mdstat), rebootez sur le disque dur qui fonctionne (en rajoutant un nouveau disque dur) puis ajoutez les partitions via la commande raidhotadd (sans oublier de refaire les manipulations sur la partition).
Si les deux disques durs ne fonctionnent plus, pas de chance ;)
La manipulation est un peu complexe à mettre en oeuvre. C'est pour cela que je vous conseille de tester sur une partition avec des données non sensibles dans un premier temps. Ensuite, vous pourrez faire la manipulation sur une autre partition.
Pour des nouvelles partitions sans données, n'utilisez pas le failed-disk (cela ne sert a rien). J'espère que ce petit article vous a aidé. N'hesitez pas à me contacter en cas d'erreur. Merci à armatatuxa et stessy pour leur relecture et correction orthographique. Copyright (c) 2003-2004 Developpez.com
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. Copy of the GNU Free Documentation Licence
|