raid logiciel debian raid5

21
RAID Logiciel sous GNU Linux Debian Document sous licence FDL  © 20-12-2007 copyleft Michel Luc     Permission vous est accordée de distribuer des copies exactes ou modifiées de ces articles tant que ces lignes de permission et le      copyright apparaissent dans vos copies et tant que ces copies restent sous licence FDL ou GPL .    Ce document n'est en aucun cas une doc technique ou un manuel sur le Raid logiciel, c'est juste un exemple d'installation d'un raid-5 pour ceux qui ont besoin d'une méthode (exemple pratique) pour se lancer dans ce genre de configuration.  Sommaire : INTRODUCTION Avant propos Convention d'écriture Les Différents Niveaux de Raid Le RAID 5  Description II Installation 1_Pré-requis 2_Préparation du matériel 3_Installation du système 4_Configuration du Raid 5 5_Création et Activation du Raid 6_Autres commandes mdadm III Exemples 1. Raid-5 de 4 HD + 1 IDE Non-Raid (système) un bon exemple d'utilisation de plusieurs disques/partitions de taille différentes 2. Raid partiel 2 HD en Raid-1 pour ceux qui ont besoin d'augmenter la capacité de stockage 3. Installation d'une Debian 3.1 en Raid-1 + boot avec Grub une bonne explication pour installer debian sur un volume Raid 4. Installation d'une Debian 3.0 en Raid-1 installation sur un volume raid 'façon Geek' CopyLeft 20-12_2007  Michel Luc [email protected]

Upload: jeremy-rodemacq

Post on 02-Jul-2015

71 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: RAID Logiciel Debian Raid5

RAID Logiciel sous GNU Linux Debian

Document sous licence FDL  © 20­12­2007 copyleft Michel Luc     Permission vous est accordée de distribuer des copies exactes ou modifiées de ces articles tant que ces lignes de permission et le     copyright apparaissent dans vos copies et tant que ces copies restent sous licence FDL ou GPL .

   Ce document n'est en aucun cas une doc technique ou un manuel sur le Raid logiciel, c'est juste un exemple d'installation d'un raid­5 pour ceux qui ont besoin d'une méthode (exemple pratique) pour se lancer dans ce genre de configuration.

 Sommaire :

INTRODUCTION 

Avant propos

Convention d'écriture

Les Différents Niveaux de Raid 

Le RAID 5I  Description

II Installation1_Pré­requis2_Préparation du matériel3_Installation du système4_Configuration du Raid 55_Création et Activation du Raid 6_Autres commandes mdadm 

III Exemples1. Raid­5 de 4 HD + 1 IDE Non­Raid (système)

un bon exemple d'utilisation de plusieurs disques/partitions de taille différentes2. Raid partiel 2 HD en Raid­1

pour ceux qui ont besoin d'augmenter la capacité de stockage3. Installation d'une Debian 3.1 en Raid­1 + boot avec Grub

une bonne explication pour installer debian sur un volume Raid 4. Installation d'une Debian 3.0 en Raid­1

installation sur un volume raid 'façon Geek'

CopyLeft 20­12_2007  Michel Luc [email protected]

Page 2: RAID Logiciel Debian Raid5

 INTRODUCTION

Avant propos :

   Le type de RAID décrit ici est le Raid­5 (Logiciel) utilisant des disques SATA (ou SCSI).  D'autres types d'installations et configuration pour le Raid­1 sont décrites dans les exemples à la fin de ce document.

     L'ancien installeur Debian ne permettait pas encore (contrairement à RedHat) de faire facilement une installation du système sur un volume Raid, ce qui compliquait un peu la mise en place de ce type d'installation (voir exemple 4)...    Actuellement l'installation directe d'une Debian 4.0 (etch) en RAID est possible avec le nouvel installeur, vous trouverez (exemple 3) une description, pour une Debian 3.1, à la fin de ce document. L'installation du RAID­5, décrite ici, aura le système installé sur un disque IDE non inclus dans le volume Raid qui utilisera au moins 3 disques  identiques de préférence.   Le système RAID  n'est en AUCUN CAS un système de BACKUP pour les données et encore moins pour le système (si votre 'Linux' n'est pas en Raid).

  Si vous utilisez, en production, des disques IDE pour les volumes Raid la disponibilité va en prendre un coup, étant donné qu'il sera nécessaire d'arrêter le raid (et même la machine) pour changer un disque en défaut. Ce type de disque IDE n'est absolument pas conçu pour ça et c'est prendre des risques que de faire un remplacement 'à chaud'.          Mais si vous désirez juste vous ''amuser'' avec le Raid ou faire un 'NAS­Home', alors pourquoi pas :­)

Note: Pour réaliser ce type d'installation vous devez connaître les bases d'un système GNU/Linux, sans pour autant être un expert, et savoir utiliser les commandes dans une console (terminal)... Vous devez être root pour effectuer cette installation! :­(

Convention d'écriture :

 Dans ce qui suit je parle de disques/partitions, en fait ce sont bien les partitions qui seront montées dans le volume raid, je n'ai jamais essayé de monter un disque dans un volume... Je doute que cela soit possible?!

 Ce qui est écrit en 'bleu gras' sont les commandes à taper. Ce qui est écrit en 'gris' est le contenu d'un fichier.

Les termes plus ou moins techniques, mais sans aucun doute 'barbare' si vous découvrez le Raid, utilisés dans ce document sont:

 Un volume raid (/dev/md0, /dev/md1...) est l'ensemble des partitions des disques que vous lui affectez pour un point de montage sur votre système, un volume raid peut aussi être appelé lecteur logique. On parle également de grappe pour désigner l'ensemble de disques/partitions qui forment le volume raid. Vous lirez aussi 'niveau du raid' cela désigne simplement le type de Raid, le raid­5 est un Raid de Niveau 5. La 'matrice raid' désigne l'ensemble des partitions inclus dans le volume raid actif, lorsque l'on active un volume raid on (mdadm) construit la matrice raid, et par exemple un disque/partition de secours n'en fait pas partie tant qu'il n'est pas ajouté au volume raid pour remplacer un disque en 'défaut'. Un disque/partitions est mis en 'défaut' lorsqu'il est défectueux (erreur de lecture/écriture ou crash disk).

  'raiddevice' est le volume raid, 'component­device' sont les partitions qui le compose.

 J'utilise souvent HD pour disque dur et Ctrl pour contrôleur.

 

Page 3: RAID Logiciel Debian Raid5

Les différents Niveaux de RAID :

Niveau 0 :  appelé stripingLe niveau RAID­0, consiste à stocker les données en les répartissant sur l'ensemble des disques de la grappe. De cette façon, il n'y a pas de redondance, on ne peut donc pas parler de tolérance aux pannes. En effet en cas de défaillance de l'un des disques, l'intégralité des données réparties sur les disques sera perdue. Toutefois, étant donné que chaque disque de la grappe a son propre contrôleur, cela constitue une solution offrant une vitesse de transfert élevée. Le RAID 0 consiste ainsi en la juxtaposition logique (agrégation) de plusieurs disques durs physiques. En mode RAID­0 les données sont écrites par "bandes" (en anglais stripes) :

Deux disques de 20 Go donneront un disque logique de 40 Go.Un disque de 10 Go utilisé conjointement avec un disque de 27 Go permettra d'obtenir un disque logique de 20 Go (17 Go du second disque seront alors inutilisés). Il est recommandé d'utiliser des disques de même taille pour faire du RAID­0 car dans le cas contraire le disque de plus grande capacité ne sera pas pleinement exploité.

Niveau 1 :  appelé mirroring, shadowing ou duplexingLe niveau 1 a pour but de dupliquer l'information à stocker sur plusieurs disques, on parle donc de mirroring, ou shadowing pour désigner ce procédé.On obtient ainsi une plus grande sécurité des données, car si l'un des disques tombe en panne, les données sont sauvegardées sur l'autre. D'autre part, la lecture peut être beaucoup plus rapide lorsque les deux disques sont en fonctionnement. Enfin, étant donné que chaque disque possède son propre contrôleur, le serveur peut continuer à fonctionner même lorsque l'un des disques tombe en panne, au même titre qu'un camion pourra continuer à rouler si un de ses pneus crève, car il en a plusieurs sur chaque essieu... 

En contrepartie la technologie RAID1 est très onéreuse étant donné que seule la moitié de la capacité de stockage n'est effectivement utilisée. 

Niveau 2 : appelé striping with parity (obsolète)Le niveau RAID­2 est désormais obsolète, car il propose un contrôle d'erreur par code de Hamming (codes ECC ­ Error Correction Code), or ce dernier est désormais directement intégré dans les contrôleurs de disques durs. Cette technologie consiste à stocker les données selon le même principe qu'avec le RAID­0 mais en écrivant sur une unité distincte les bits de contrôle ECC (généralement 3 disques ECC sont utilisés pour 4 disques de données). La technologie RAID 2 offre de piètres performances mais un niveau de sécurité élevé. 

Niveau 3 : appelé disk array with bit­interleaved data Le niveau 3 propose de stocker les données sous forme d'octets sur chaque disque et de dédier un des disques au stockage d'un bit de parité.De cette manière, si l'un des disques venait à défaillir, il serait possible de reconstituer l'information à partir des autres disques. Après "reconstitution" le contenu du disque défaillant est de nouveau intègre. Par contre, si deux disques venaient à tomber en panne simultanément, il serait alors impossible de remédier à la perte de données. 

Niveau 4 : appelé disk array with block­interleaved dataLe niveau 4 est très proche du niveau 3. La différence se trouve au niveau de la parité, qui est faite sur un secteur (appelé bloc) et non au niveau du bit, et qui est stockée sur un disque dédié. C'est­à­dire plus précisément que la valeur du facteur d'entrelacement est différente par rapport au RAID 3.Ainsi, pour lire un nombre de blocs réduits, le système n'a pas à accéder à de multiples lecteurs physiques, mais uniquement à ceux sur lesquels les données sont effectivement stockées. En contrepartie le disque hébergeant les données de contrôle doit avoir un temps d'accès égal à la somme des temps d'accès des autres disques pour ne pas limiter les performances de l'ensemble.

Niveau 5 : appelé disk array with block­interleaved distributed parity Le niveau 5 est similaire au niveau 4, c'est­à­dire que la parité est calculée au niveau d'un secteur, mais répartie sur l'ensemble des disques de la grappe.De cette façon, RAID 5 améliore grandement l'accès aux données (aussi bien en lecture qu'en écriture) car l'accès aux bits de parité est réparti sur les différents disques de la grappe. 

Le mode RAID­5 permet d'obtenir des performances très proches de celles obtenues en RAID­0, tout en assurant une tolérance aux pannes élevée, c'est la raison pour laquelle c'est un des modes RAID les plus intéressants en terme de performance et de fiabilité.

L'espace disque utile sur une grappe de n disques étant égal à n­1 disques, il est intéressant d'avoir un grand nombre de disques pour "rentabiliser" le RAID­5.

Niveau 6 :  appelé disk array with block­interleaved distributed parityLe niveau 6 a été ajouté aux niveaux définis par Berkeley. Il définit l'utilisation de 2 fonctions de parité, et donc leur stockage sur deux disques dédiés. Ce niveau permet ainsi d'assurer la redondance en cas d'avarie simultanée de deux disques. Cela signifie qu'il faut au moins 4 disques pour mettre en oeuvre un système RAID­6.

Page 4: RAID Logiciel Debian Raid5

Le RAID Niveau 5 (logiciel)

I Description

ATTENTION! Le contrôle de mémoire de masse (capacité disque) du raid­5 a une limite, mais aucun problème avec des SATA 250 Go.Les disques durs sur un contrôleur IDE NE PEUVENT en aucun cas ÊTRE REMPLACÉS à CHAUD !

Note: Le Raid 5 a de très bonne performances I/O (lecture/écriture disques) pour une utilisation assez faible des ressources CPU,  il permet une meilleur disponibilité des données en diminuant le temps d'accès et aussi de conserver les données, aucune perte en cas de crash  d'un HD donnant ainsi le temps d'effectuer le remplacement du disque sans interrompre les services. Mais il utilise l'équivalent d'un disque/partition pour le stockage des informations. Sans ce lancer dans de savants calculs on peut dire que pour 3 HD seulement les deux tiers (moins de 70%) sera utilisable pour le stockage des données, cela augmente avec le nombre disques en raid et peut atteindre 80 à 90%. Comparé au Raid­1 qui ne dépassera jamais 50% le Raid­5 reste le niveau de raid le plus intéressant pour de gros volumes de stockage. Le RAID­5 et RAID­1 offrent tous les deux un niveau de sécurité élevé, toutefois la méthode de reconstruction des disques varie entre ces deux niveaux. En cas de panne du système, le RAID­5 reconstruit le disque manquant à partir des informations stockées sur les autres disques, tandis que RAID­1 opère une copie disque à disque.Le RAID­1 offre de meilleures performances que RAID­5 en lecture, mais le RAID­5 offre de bien meilleures performances lors d'importantes opérations d'écriture.La solution RAID­5 offre un volume utile représentant 80 à 90% du volume alloué (le reste servant au contrôle d'erreur). La solution RAID­1 n'offre par contre qu'un volume disponible représentant 50 % du volume total (étant donné que les informations sont dupliquées).

Ce qui va caractériser notre Raid­5Dans l'exemple utilisé pour décrire l'installation du Raid :Il faut au minimum 3 disques durs (SATA ou SCSI), identiques si possible, pour le Raid­5.Il faut au moins 1 disque (IDE) pour installer le système (Debian) et faire 'booter' la machine.Dans l'exemple utilisé le partitionnement ressemble à :

hda1 =>  6 Gb    /hda2 =>  1 Gb    swaphda3 => 10 Gb   /varhda5 => 42 Gb   /homesda1, sdb1, sdc1 =>  75 Gb   /data       volume raid md0sda2, sdb2, sdc2 =>  75 Gb   /backup   volume raid md1

et éventuellement ­> sda3, sdb3, sdc3 =>  1 Gb   swap*Bien évidemment vous adaptez à vos besoin :­)

 Avec l'outil de partitionnement (fdisk, cfdisk, partman...), il faut partitionner les 3 disques de  façon identique, à savoir :  Soit 3 HD SATA (ou SCSI), sda, sdb, sdc, partitionnez le premier sda en mettant le drapeau (ID) à fd pour les partitions inclus dans le volume Raid, puis (après enregistrement de la table) faire une copie de ce partitionnement sur les autres disques :

sfdisk ­d /dev/sda | sfdisk /dev/sdbsfdisk ­d /dev/sda | sfdisk /dev/sdc

et vérifiez avec fdisk ­l  Tout ceci est expliqué en détail dans le chapitre suivant, Installation.

 Les disques/partitions ne serviront pas de miroir (mirroring), mais les données seront réparties sur la totalité du volume Raid et l'équivalent d'un disque/partition sera réservé aux informations du Raid.Pour le RAID­5 le coût est directement lié à la capacité de stockage (nombre de disques/partitions) devant être mise en oeuvre pour avoir une certaine capacité effective.

Capacité utile  = n(disques/partitions) ­1(disque/partition)Dans notre cas (3 HD) n= 3­1 reste 2 HD  ou 6 partitions sur 2 volumes Raid (md0 et md1) soit 3 partitions de 75Gb sur chaque volume =>  n=3*75  soit (n­1)  225 – 75 = 150Gb pour chaque volume raid (md0 et md1)exp:_Si on configure 3HD, sda5, sdb5, sdc5, avec une partition raid de 20 Gb sur chacun d'eux (par exemple pour en faire un volume raid /dev/md0 destiné à accueillir le répertoire "/home"), la taille de ce répertoire sera alors de 2*20Gb= 40Gb, pour 4HD dans le volume Raid elle serait donc de 60GB... etc. Il est possible d'utiliser des disques de taille différente et aussi de monter dans un même volume raid  plusieurs partitions d'un même disque: A la fin du document vous avez un exemple avec 4 HD et 10 partitions pour un seul volume raid md0.   Après installation du raid, de cet exemple, si vous tapez la commande df ­h vous trouverez deux lignes comme :

 /dev/md/0           150G   183M    135G   1%   /data/dev/md/1            150G   183M    135G   1%   /backup

 150Gb correspond bien à n­1  (75*3)­75

nb: Au cas ou votre système est inclus dans le Volume Raid il ne faut pas oublier la recommandation qui vous dit de ne pas ''flaguer'' les partitions boot (et swap :­) sur les deux autres disques; C'est à dire de ne pas activer 'amorçable' sur la partition de boot du second et troisième disque.

Page 5: RAID Logiciel Debian Raid5

nb: Au cas où :­) Il se peut que vous ayez un système déjà fonctionnel sur un disque et que vous désirez simplement ajouter un volume raid parce que votre partition (/data par exemple) contient beaucoup de données importantes et partagées et qui de plus est presque pleine: Dans ce cas voici comment procéder (une façon de faire :­) après l'installation du raid décrite plus bas.

Un exemple : On désire ajouter un volume raid pour le monter sur une partition (/data dans cet exemple) qui contient déjà beaucoup de données (fichiers). A ce moment le raid doit être activé (synchronisation terminée), le volume formaté mais pas monté :­)

_Créer un point de montage du volume raid (/dev/md0):mkdir /mnt/raid

_Monter le volume raid:mount ­t ext3 /dev/md0 /mnt/raid

_Copier les données sur le volume raid:rsync ­a /data/ /mnt/raid/umount /mnt/raid    #  on démonte le volume raid

Si /data est déjà un point de montage on le démonte ( umount /data ), sinon..._La prudence étant de mise, on conserve les données en renommant le répertoire /data:

cd /telinit 1   # on change le runlevel en single­user mode (pas indispensable) . . .         # on patiente...mv data data_old     # on renomme /data en /data_oldmkdir  ­m775 data   # et on créé le  nouveau point de montagetelinit 2   # on restaure le runlevel (* idem *)

_Modifier le fichier /etc/fstab pour cette partition:/dev/hdxn    /data_old   ext3     defaults   0   2  # au cas ou /data était déjà un point de montage/dev/md0    /data          ext3    defaults   0   2

Au reboot cela devrait fonctionner :­))

Page 6: RAID Logiciel Debian Raid5

II INSTALLATION

  Ici nous traiterons de l'installation du Raid­5 avec le système (debian) sur un disque (partitions) exclus du niveau du raid.Mais rien ne vous empêche par la suite d'ajouter un volume Raid­1 pour votre système (hda et hdb par exemple) avec vos données en Raid­5 (sda, sdb, sdc...).

1_Pré-requis :

 _ 3 HD identiques (si possible) pour le RAID  _ 1 HD pour le système si celui­ci n'est pas inclus dans le raid. _ 1 CD d'installation (Net Install) avec un noyau supportant le RAID. _ Une bonne connaissance de l'installation d'une Debian (c'est mieux :­)

2_Préparation du matériel :

Le premier Ctrl IDE (hda/hdb) réservé au système (non­Raid)Le second Ctrl IDE (hdc/hdd) pour les périphériques CD/DVDLes Ctrl SATA (ou SCSI) pour les données en RAID 5 (sda, sdb et sdc)

 Une explication avant de ce lancer :­)

  Supposons, le système (debian) étant installé sur /dev/hda, que l'on veut monter 2 volumes raid sous /data et /backup; 

Le partitionnement serait :

 sur le premier disque IDE (60Gb)/dev/hda1 (6Gb /) 83 Linux /dev/hda2 (1Gb) 82 Linux swap / Solaris/dev/hda3 (10Gb /var) 83 Linux/dev/hda5 (42Gb /home) 83 Linux

 sur les 2 disques (euh pardon, 3 HD pour le raid 5 :­) en RAIDil s'agit de 3 disques SATA de 160Gb/dev/sda1 (75Gb /data) fd Linux raid autodetect/dev/sda2 (75Gb /backup) fd Linux raid autodetectfaire le même partitionnement pour sdb et sdc, ou utiliser les commandes sfdisk -d /dev/sda | sfdisk /dev/sdb

sfdisk -d /dev/sda | sfdisk /dev/sdcsans oublier de mettre le type de système (ID) à fdet garder une trace du partitionnement peut être utile :

sfdisk -d /dev/sda > part_raid5.txtou fdisk -l > part_raid5.txt

Le fichier /etc/fstab ressemblera à ceci :

/dev/hda1 / ext3 errors=remount-ro 0 1 proc /proc proc defaults 0 0/dev/hda2 none swap sw 0 0/dev/hda3 /var ext3 defaults 0 2/dev/hda5 /home ext3 defaults 0 2/dev/md0 /data ext3 defaults 0 2/dev/md1 /backup ext3 defaults 0 2/dev/fd0 /media/floppy0 auto user,noauto 0 0/dev/hdc /media/cdrom0 iso9660 user,noauto 0 0

A propos du swap en raid« Pour éviter le redémarrage du système en cas de crash disk, le swap sera mis en raid »  Vous avez peut être déjà lu ça ? Mais ce n'est vraiment pas indispensable, voir c'est même une aberration d'utiliser le raid sur une partition de swap.  Le noyau linux, depuis longtemps, sait très bien utiliser les partitions de swap (comme pour le raid 0).  Il suffit de donner à chaque partition le même niveau de priorité, dans /etc/fstab :/dev/hda2 none swap sw 0 0/dev/sda3 swap swap defaults,pri=1 0 0/dev/sdb3 swap swap defaults,pri=1 0 0/dev/sdc3 swap swap defaults,pri=1 0 0

Page 7: RAID Logiciel Debian Raid5

Si vous êtes parano ou simplement prévoyant, vous pouvez créer des partitions de swap sur vos disques en raid, mais inutile de les inclure dans le niveau de raid. De plus si vous avez déjà 1 ou 2 disques système (hda et hdb), il n'est certainement pas indispensable d'utiliser une partition de swap sur les disques du Raid!

3_Installation du Système :

 Allez on y va !

 Installer le système de base (minimum) sans serveur X  ni aucun serveur* (http, ftp, mail, samba...), donc un ancien disque IDE de 40 Gb sera très largement suffisant. * Si les volumes raid (partitions) doivent contenir les données du serveur, web, ftp ou samba, vous installerez ces services après le  montage du volume raid.

 Après installation du système et redémarrage, vérifier que le noyau supporte le RAID (modules): grep CONFIG_MD /boot/config-2.6.16-12-k7 (adaptez en fonction de votre noyau :-)devrait indiquer quelque chose comme :CONFIG_MD=yCONFIG_MD_LINEAR=mCONFIG_MD_RAID0=mCONFIG_MD_RAID1=mCONFIG_MD_RAID10=mCONFIG_MD_RAID456=mCONFIG_MD_RAID5_RESHAPE=yCONFIG_MD_MULTIPATH=mCONFIG_MD_FAULTY=mCONFIG_MDA_CONSOLE=m

Sinon il vous faut, le patcher, le recompiler ou installer une version plus récente.ftp://ftp.kernel.org/pub/linux/kernel

 Installer les outils RAID:apt-get install raidtools2 mdadm

Note: Le paquet raidtools2 (mkraid) n'est plus dans Debian Stable (etch),  dans beaucoup de distributions raidtools2 a été remplacé par mdadm. Si vous configurez votre Raid (fichiers raidtab et mdadm.conf, voir chapitre suivant) avant d'installer le paquet mdadm la création et assemblage du raid ce fera presque automatiquement (je n'ai pas testé !) à l'installation de ce paquet. 

et pour utiliser le raid il faut charger les modules dans le noyau: modprobe linear modprobe raid0 modprobe raid1 modprobe raid5

Vous pouvez ajouter ces modules dans /etc/moduleslinearraid0raid1raid5

4_Configuration du Raid 5 :

 Créer/Modifier le fichier /etc/raidtab

# /data RAID-5raiddev /dev/md0 # Nom du device du volume RAID raid-level 5 # Le niveau de RAID désiré nr-raid-disks 3 # Le nombre de disques/partitions composant le volume nr-spare-disks 0 # Le nombre de disques de secours persistent-superblock 1 # Informations de contrôle RAID stockées sur le disque, 0=Non parity-algorithm left-symmetric chunk-size 32 #  taille élémentaire pour la plupart des utilisations device /dev/sda1 # Nom du premier disque insérer dans le volume

raid-disk 0 # Position du disque dans le volume device /dev/sdb1 raid-disk 1 device /dev/sdc1 raid-disk 2

Page 8: RAID Logiciel Debian Raid5

# /backup RAID-5raiddev /dev/md1 raid-level 5 nr-raid-disks 3 nr-spare-disks 0 persistent-superblock 1 parity-algorithm left-symmetric chunk-size 32 device /dev/sda2 raid-disk 0 device /dev/sdb2 raid-disk 1 device /dev/sdc2 raid-disk 2 Pendant la création des volumes du Raid les disques durs vont marquer une forte activité et cela peut prendre plusieurs dizaines de minutes. Si vous avez 3 partitions de 10Gb dans un volume cela va aller très vite mais si vous avez plusieurs volumes de 3 partitions de plus 80Gb ça va être beaucoup plus long, donc...  Note: Il est recommandé de ne pas inclure le 3ème disque dans le Raid pour éviter que mkraid (création du Raid)  ne construise un volume de trois disques et ne commence a synchroniser le troisième disque avec les données des deux premiers.  Pour la simple raison que pour l'instant ces disques ne sont pas formatés, cette façon de procéder ce nomme le mode dégradé.  Après la création du Raid, une fois le volume raid correctement partitionné et formaté, vous insérerez le 3ème disque, et la synchronisation se fera. Donc il suffit de remplacer "raid­disk 2" par "failed­disk 2" et inversement ensuite :... device /dev/sda1 raid-disk 0 device /dev/sdb1 raid-disk 1 device /dev/sdc1 failed-disk 2... etc

A propos des disques de secours du raid-(1, 4 et 5) Vous avez la possibilité d'utiliser un (ou plusieurs) disque/partition de secours qui remplacera un des disques/partitions en défaut (défectueux) et peut être remplacé à chaud (sans arrêter le raid).Les disques de secours ne prennent pas part à la matrice RAID jusqu'à ce qu'un des disques de celle­ci tombe en panne. Quand un disque 'lâche', il est marqué défectueux et la reconstruction est entamée sur le premier disque de secours disponible. Les disques de secours renforcent donc davantage la sécurité des systèmes RAID­5.  Le système pourra fonctionner pendant un certain temps avec un disque défectueux avant que le disque de secours assure la redondance.

Ce type de disque/partition sera disponible pour le volume raid par la ligne 'device /dev/sdd[0­9]  spare­disk [0­9]'Par exemple si vous avez un 4ème disque identique aux 3 autres et que vous le partitionnez à l'identique des autres disques du raid, votre fichier raidtab ressemblera à ceci :raiddev /dev/md0 raid-level 5 nr-raid-disks 3 nr-spare-disks 1 persistent-superblock 1 parity-algorithm left-symmetric chunk-size 32 device /dev/sda1 raid-disk 0 device /dev/sdb1 aid-disk 1 device /dev/sdc1 raid-disk 2 device /dev/sdd1 spare-disk 0raiddev /dev/md1 raid-level 5 nr-raid-disks 3 nr-spare-disks 1 persistent-superblock 1 parity-algorithm left-symmetric chunk-size 32 device /dev/sda2 raid-disk 0 device /dev/sdb2 aid-disk 1 device /dev/sdc2 raid-disk 2 device /dev/sdd2 spare-disk 0

 Par défaut la taille de bloc RAID est de 32 ko, 32 ko de données consécutives résideront sur un même disque. Si on souhaite construire un système de fichiers ext2 avec une taille de blocs de 4 ko, il y aura 8 blocs de données consécutifs dans un bloc du tableau. On fournit l'information à mke2fs de la manière suivante :  mke2fs -b 4096 -R stride=8 /dev/md0

Page 9: RAID Logiciel Debian Raid5

5_Création et Activation du Raid

Il faut maintenant créer le Raid, formater le volume raid et le monter,soit _En utilisant "mkraid" (raidtools) :   mkraid /dev/md0   mkfs.ext3 /dev/md0   mount /dev/md0 /data

soit _En utilisant "mdadm", la création et activation peut se faire avec les commandes : mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1 mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sda2 /dev/sdb2 /dev/sdc2              La syntaxe de mdadm peut aussi avoir cette forme :

 mdadm ­C /dev/md0 ­l5 ­n3 /dev/sda1 ... voir les pages de manuel ou mdadm ­­create –help  mdadm --stop /dev/md0 && mdadm --stop /dev/md1 mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 mdadm --assemble /dev/md1 /dev/sda2 /dev/sdb2 /dev/sdc2puis comme pour mkraid, on formate et on monte le volume raid :

cat /proc/mdstat pour  vérifier si la synchronisation est terminé avant de formater le volumemkfs.ext3 /dev/md0   ou     mkfs.ext3 -v -m1 /dev/md0mount /dev/md0 /data   ou  mount -t ext3 /dev/md0 /data

Faire la même chose pour md1 monté sous /backup.

Vérifiez l'état des volumes Raid avec les commandes :cat /proc/mdstat si cat ne convient pas, utilisez less ou more     more /proc/mdstatmdadm --detail /dev/md[0-1] permet de voir l'état (en détail :­) du volume raid

Lors de la construction du raid, la commande cat /proc/mdstat va afficher quelque chose comme :  md1 : active raid5 sdc2[3] sdb2[1] sda2[0]

17574912 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_][========>....................] recovery = 40.2% (51091332/126953536) finish=23.0min speed=54745k/sec

cela indique que le volume est en train de se construire. Le plus important ce sont les 'U' entre crochets à la fin de la seconde ligne, ici il n'y en a que 2.Lorsque la construction est terminée vous obtenez un message du genre :

md: md1: sync done.RAID5 conf printout:­­­ rd:3 wd:3 fd:0disk 0, o:1, dev:sda2disk 1, o:1, dev:sdb2disk 2, o:1, dev:sdc2

Si vous tapez à nouveau la commande cat /proc/mdstat :Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md1 : active raid5 sdc2[3] sdb2[1] sda2[0]17574912 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

et là on a 3 'U' entre crochets, 3 sur 3.[UUU] si vous avez 3 partitions dans le volume, [UUUU] si vous en avez 4... etc.  Si vous n'obtenez pas le nombre de 'U' correspondant à votre configuration raid, c'est que quelque chose manque : Refaites plusieurs fois la vérification et au pire recommencez la construction de votre raid en vérifiant les fichiers de configuration.

 Sauvegarder votre configuration Raid :cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf-OLDmdadm --detail --scan >> /etc/mdadm/mdadm.conf

Ce fichier mdadm.conf peut ressembler à ceci :DEVICE < partitions >CREATE owner=root group=disk mode=0660 auto=yesARRAY /dev/md0 level=raid5 devices=/dev/sda1,/dev/sdb1,/dev/sdc1ARRAY /dev/md1 level=raid5 devices=/dev/sda2,/dev/sdb2,/dev/sdc2si vous utilisez une version récente de mdadm c'est l'uid du volume qui sera utilisé à la place du nom des device avec une syntaxe comme celle­ci :DEVICE /dev/sda1 /dev/sdb1 /dev/sdc1ARRAY /dev/md0 level=raid5 num-devices=3 UUID=xxxxxxxx:xxxxxxxx:xxxxxxxx:......Dans le cas ou l'on a 'persistent­superblock 1' dans raidtab et que la commande mdadm ­­detail /dev/mdx indique 'Persistence : Superblock is persistent' je ne suis vraiment pas sûr de la nécessité de ces lignes dans le fichier mdadm.conf ?

nb: Après la création du Raid ne pas oublier de modifier, /etc/fstab en fonction des points de montage de md0 et md1 et des éventuelles partitions de swap sur les disques raid, et de remplacer failed­disk par raid­disk dans votre /etc/raidtab.

A ce stade, après vérification des volumes raid, si vous êtes satisfait il ne vous reste plus qu'à 'rebooter' le système pour être certain que les volumes raid seront activés en cas de redémarrage.

Page 10: RAID Logiciel Debian Raid5

6_Les Autres Commandes

Arrêter le volume raid  raidstop /dev/md[0­1] 

mdadm ­­stop /dev/md[0­1]

Pour activer le volume raid  mdadm /dev/md0 ­­assemble /dev/sda1 /dev/sdb1  ou    mdadm ­­assemble /dev/md0

Ajouter ou enlever une partition du volume raidraidhotadd /dev/md0 /dev/sdc1raidhotremove /dev/md0 /dev/sdc1mdadm /dev/md0 ­­manage ­­add /dev/sdc1mdadm /dev/md0 –manage ­­remove /dev/sdc1

Mettre en faute un disque du raidraidsetfaulty /dev/md0 /dev/sdc1mdadm /dev/md0 –manage ­­set­faulty /dev/sdc1

Réparer (ci c'est possible :­) un disque en défautmdadm ­­manage /dev/md0 ­­fail  /dev/sdc1

mdadm sait faire beaucoup de choses, entre autre surveiller un volume et envoyer un mail si un disque est en défaut, avec :mdadm ­­monitor ­­mail=admin­[email protected] ­­delay=120 ­­daemonise /dev/md0

je vous conseille de lire la doc et les pages de manuel, voir aussi (Ubuntu): http://doc.ubuntu­fr.org/securite/raid_logiciel

III Exemples

Les exemples qui suivent sont des documents disponibles sur internet, voici quelques liens :      Mise en place d'un volume Raid­5, sur debian­fr:

http://www.debian­fr.org/article.php?page=viewarticle&article=103HowTo, sur ibiblio:http://www.ibiblio.org/pub/Linux/docs/HOWTO/translations/fr/html­1page/Software­RAID­HOWTO.htmlInstallation/Configuration, sur Lea:

 http://lea­linux.org/cached/index/Admin­admin_fs­raid.htmlHowTo, sur Ze­Linux:

 http://www.ze­linux.org/howto.html?id_docs=26Mini­HowTo, sur traduc.org:

http://www.traduc.org/docs/HOWTO/vf/Boot+Root+Raid+LILO.htmlLe RAID sous GNU Linux:

 http://lehmann.free.fr/raidDoc.htmlInstallation Raid­1 sous Debian:

http://www.midimedia.org/pages/linux/raid1_debian.htmlInstaller Ubuntu sur un Raid­0:

http://doc.ubuntu­fr.org/tutoriel/comment_installer_ubuntu_sur_raid0_logicielInstaller Ubuntu sur un Raid­1:

http://doc.ubuntu­fr.org/installation/raid1_software

Page 11: RAID Logiciel Debian Raid5

1) Raid 5 de 4 HD + 1 IDE System Non-Raid

Auteur:  inconnu, pas retrouvé l'article sur le net :­(nb: Si l'auteur reconnaît son travail, merci de me contacter (voir email)

Ici est traité l'installation d'un Raid 5 avec 4 HD et 10 partitions.

Le system (Debian GNU/Linux) bootant sur un disque non­Raid.L'idéal étant d'avoir une machine supportant les disques Serial ATA (SATA),mais ici sera considéré l'installation sur un ordinateur avec uniquementdes controleur IDE (ATA), le SCSI étant à capacité égale trop couteux.

ATTENTION! Le Raid5 a une limite de mémoire de masse (capacité disque)mais avec des SATA 250 Go ça passe :­)

[ ... ]

Configuration matériel:

Le premier ctrl IDE (hda/hdb) réservé au système (non­Raid)Le second ctrl (hdc/hdd) pour les DVD/CDAjout, pour la plupart des machines, une carte controleur avec:hde/hdf et hdg/hdh pour le RAID.

Préparation du matériel:Ne disposant pas de 4 disques identiques mais seulement 2 fois 2...    Disk /dev/hde: 160 GB    Disk /dev/hdf: 80 GB    Disk /dev/hdg: 160 GB    Disk /dev/hdh: 80 GB

Le partitionnement est le suivant:4 partitions de swap de 1 Go sur la première partition6 partitions de données de 74 Go/dev/hde1 : SWAP   :  fd  Linux raid autodetect/dev/hde2 : DATA   :  fd  Linux raid autodetect/dev/hde3 : DATA   :  fd  Linux raid autodetect/dev/hdf1 : SWAP   :  fd  Linux raid autodetect/dev/hdf2 : DATA   :  fd  Linux raid autodetect/dev/hdg1 : SWAP   :  fd  Linux raid autodetect/dev/hdg2 : DATA   :  fd  Linux raid autodetect/dev/hdg3 : DATA   :  fd  Linux raid autodetect/dev/hdh1 : SPARE  :  fd  Linux raid autodetect/dev/hdh2 : SPARE  :  fd  Linux raid autodetect

Préparation System:Installation de raidtools:# pat­get install raidtools2 mdadm 

Ajouter les modules dans /etc/moduleslinearraid0raid1raid5

pour le raid utilisé, et charger les modules dans le noyau:# modprobe linear# modprobe raid0# modprobe raid1# modprobe raid5

Vérifier avec# cat /proc/mdstat

Page 12: RAID Logiciel Debian Raid5

Configuration :Modifier/créer le fichier /etc/raidtabraiddev /dev/md0 raid­level 5 nr­raid­disks 5 nr­spare­disks 1 persistent­superblock 1 parity­algorithm left­symmetric chunk­size 32 device /dev/hde1        raid­disk 0 device /dev/hde2        raid­disk 1 device /dev/hdf1  raid­disk 2 device /dev/hdg1  raid­disk 3 device /dev/hdg2  raid­disk 4 device /dev/hdh1  spare­disk 0

[ note: Ici je suppose que l'auteur a commis une erreur dans la description de son fichier raidtab, car il dit explicitement    ne pas inclure les swap  dans le raid mais il met hde1 et hde2 hdf1... etc.   Je pense qu'il faut lire hde2 hde3 hdf2 hdg2 hdg3 hdh2  et idem pour la suite.]

## 5 partitions + 1 spare pour le raid 5Pour des disque SCSI, remplacer /dev/hdx par /dev/sdxJe ne vous conseille pas d'utiliser l'émulation ide­scsi ou scsi (2.4.x) pour les HD cela posera en plus des pblors du passage en 2.6.x

PAS de SWAP en RAID ;)Le système (minimum: serveur de fichiers) étant installésur des disques de faible capicité (2Go), le swap occupant la moitié du disque, les swap he1,hf1 et hg1 ne sont làque pour palier à une défection en cas de crash d'un disque! Ce system (Debian) étant lui en mirroring (raid 1) :­)) Voir les liens en fin de page pour l'installation de ce typede multi raid avec boot sur hd en raid (installation un peu plus délicate).

Création Formattage et Activation du raid # mkraid /dev/md0# mke2fs ­b 4096 ­R stride=8 /dev/md0# mount /dev/md0 /data

Les commandes:Stoper le raid# raidstop /dev/md[0­15] Inserrer ou enlever un disque/partition du raid# raidhotadd /dev/md0 /dev/sdf1# raidhotremove /dev/md0 /dev/sdf1mettre en faute un disque du raid# raidsetfaulty /dev/md0 /dev/sdf1 

En utilisant "mdadm", la création peut se faire avec la commande:# mdadm ­­create /dev/md0 ­­level=5 ­­raid­devices=5 /dev/hde1 /dev/hde2 \/dev/hdf1 /dev/hdg1 /dev/hdg2 ­­spare­devices=1 /dev/hdh1 

Vérification:# mdadm ­­detail /dev/md0 

Activation du Raid:# mdadm ­­stop /dev/md0# mdadm ­­assemble /dev/md0 /dev/hde1 /dev/hde2 /dev/hdf1 /dev/hdg1 /dev/hdg2 /dev/hdh1# mdadm ­­detail ­­scan >> /etc/mdadm/mdadm.conf

Page 13: RAID Logiciel Debian Raid5

TYPE DE RAID :

Mode LinéaireCette solution est pertinente lorsque l'on souhaite étendre la capacité de stockage disponible en ligne sans introduire une notion de tolérance aux pannes. Cette solution combine les capacités de stockage d'un ensemble de disques existants (les données sont d'abord écrites sur le premier disque, puis lorsqu'il est plein sur le second, etc...) et permet d'utiliser 100% de l'espace disque utile.

    * Avantages :      ­ Permet de disposer de 100% de l'espace disque dans une partition ;      ­ Moins de temps CPU mobilisé par le RAID dans le noyau.    * Inconvénients :      ­ Pas de haute disponibilité : la perte d'un disque entraine la perte des données ;      ­ Quasiment pas d'amélioration des performances (on peut cependant obtenir une amélioration si des I/O se produisent de manières concurrentes sur des disques différents). 

RAID 0 [ STRIPPING ]Trés proche du mode linéaire.Ce mode est souvent utilisé lorsque la haute disponibilité des données n'est pas nécessaireet permet d'améliorer l'algorithme en dispatchant les données sur l'ensemble des disques; Les données sont découpées puis dispersées sur les disques sans redondance. Il faut disposer d'au moins 2 disques.

    * Avantages :      ­ Permet de disposer de 100% de l'espace disque dans une partition ;      ­ Amélioration des performances I/O en lecture et écriture.    * Inconvénients :      ­ Pas de haute disponibilité : la perte d'un disque entraine la perte des données. 

RAID 1 [ MIRRORING ]Ce mode est une exacte duplication des données sur tous les disques présents dans le miroir (on doit disposer d'au moins 2 disques). L'information étant enregistrée N fois sur les disques (permet de gagner du temps en lecture même si on en perds lors de l'écriture), si on perds N­1 disques on ne perds pas les données. Il est à noter que l'on perds tout de même 50% de l'espace disque utile. Il faut disposer d'au moins 2 disques.

    * Avantages :      ­ Haute disponibilité des données : survit à la perte de N­1 disques      ­ Amélioration des performances en lecture.    * Inconvénients :      ­ Mauvaises performances en écriture      ­ Mobilise un peu plus de temps CPU dans le noyau      ­ Perte de 50% de l'espace disque. 

RAID 0+1 Cette solution combine le RAID 0 et le RAID 1. 

    * Avantages :      ­ Haute disponibilité des données : survit à la perte d'un coté du miroir ;      ­ Amélioration des performances I/O en lecture et écriture.    * Inconvénients :      ­ Mobilise un peu plus de temps CPU dans le noyau ;      ­ Perte de 50% de l'espace disque. 

RAID 4 [ STRIPING ]L'algorithme utilisé ici permet de dispatcher les I/O sur l'ensemble des disques. Il va réserver un disque pour sauvegarder une donnée supplémentaire de parité. De ce fait, si il perd un disque, il peut reconstituer l'information manquante. Toute fois cette utilisation d'un disque de parité ajoute un goulot d'étranglement au système, obligatoirement l' écriture va déclancher un accés au disque de parité. Le Raid 5 est préférable pour éviter cela. Il faut disposer d'au moins 3 disques.

    * Avantages :      ­ Haute disponibilité des données : survit à la perte d'un disque ;      ­ Amélioration des performances en lecture.    * Inconvénients :      ­ On perds l'équivalent d'un disque pour le stockage des données ;

Page 14: RAID Logiciel Debian Raid5

      ­ On risque de plafonner le débit en écriture rapidement. 

RAID 5  [ STRIPING ]Très proche du RAID 4 il améliore le procédé en stripant l'information de parité sur l'ensemble des disques. Il faut disposer d'au moins 3 disques.

    * Avantages :      ­ Haute disponibilité des données : survit à la perte d'un disque ;      ­ Amélioration des performances en lecture et écriture.    * Inconvénients :      ­ On perds l'équivalent d'un disque pour le stockage des données. 

Disques de spare :

Les RAIDS 1, 4 et 5 peuvent utiliser la notion de disques de spare. Un disque qui va venir remplacer automatiquement un disque en faute. Linux autorise l'ajout à chaud (sans arrêt) de disques de spare.

LIENS :

Mise en place plusieurs type de RAID logiciel sur une plateforme Linux: http://lehmann.free.fr/raidDoc.html

HowTo, sur Ze­Linux: http://www.ze­linux.org/howto.html?id_docs=26

Installation/Configuration, sur Lea: http://lea­linux.org/cached/index/Admin­admin_fs­raid.html

Installation du Raid sur une Genoo: http://www.gentoo.org/doc/fr/gentoo­x86­tipsntricks.xml

Configuration pour RedHat: http://www.linux­kheops.com/doc/redhat73/rhl­cg­fr­7.3/ch­software­raid.htmlRaide Matériel et Raid Logiciel:http://www.tu­chemnitz.de/docs/lindocs/RH9/RH­DOCS/rhl­cg­fr­9/s1­raid­approaches.html

2) Raid partiel ( 2 disques/partitions en Raid)

Auteur: http://webpmenier.dynalias.net/yacs/articles/view.php/21/install­raid­logiciel­partielContact:Date:Revision: #

Le system (Debian GNU/Linux) bootant sur un disque non­Raid.L'idéal étant d'avoir une machine supportant les disques Serial ATA (SATA). J'ai donc monté en raid logiciel les partitions /web /et /opt qui contiennent respectivement les fichiers du serveur web et ceux de mysql.

Pour les autres partitions un bon vieux rsync dans un cron lancé la nuit fera l'affaire. # sauvegarde de /  mount /dev/sdb1 /mnt/backups  rsync ­avzx ­­delete / /mnt/backups  sync;sync  umount /dev/sdb1

Page 15: RAID Logiciel Debian Raid5

[*]Installation d'un deuxième disque sur le port SATA2[*]Formattage à l'identique du premier par : sfdisk ­d /dev/sda | sfdisk /dev/sdb[*]Modification des types de partition de sdb en passant à FD sdb6 (/web) et sdb8 (/opt)[*]Reboot[*]Création du raid :mdadm ­Cv /dev/md0 ­l1 ­n2 missing /dev/sdb6mdadm ­Cv /dev/md1 ­l1 ­n2 missing /dev/sdb8[*]Formatage des partitions raid :mkfs ­t ext3 /dev/md0 && mkfs ­t ext3 /dev/md1[*]Sauvegarde de la configuration raid : mdadm ­­detail ­­scan > /etc/mdadm/mdadm.conf[*]Montage des partitions raid et recopie des données du premier disque : mount /dev/md0 /mnt && cd /web && cp ­a * /mntmount /dev/md1 /mnt2 && cd /opt && cp ­a * /mnt2[*]Modif de /etc/fstab en remplacant sda6 et sda8 par md0 et md1[*]Modification des types de partition de sda en passant à FD sda6 (/web) et sda8 (/opt)[*]Reboot[*]Ajout des partitions du premier disque dans la grappe raid :mdadm ­­add /dev/sda6 /dev/md0mdadm ­­add /dev/sda8 /dev/md1[*]Important !!!Sauvegarde de la nouvelle config raid :mdadm ­­detail ­­scan > /etc/mdadm/mdadm.conf

  3) Installer Debian en Raid 1 + boot GRUB

 Auteur: Administrator http://guitou.serveftp.org/geek//index.php?option=com_content&task=view&id=14 Contact: Guitou Date: 27­08­2006 Revision: #

J'écris ce tutorial car malgré tous les tutoriaux que j'ai pu trouver sur la création de partitions Raid1 ou raid5 logicielles sur un système Debian, aucun n'a pu répondre correctement à mes questions. En effet, tous ces tutoriaux expliquaient comment créer une partition Raid depuis une installation debian (qui elle, n'était pas installée sur du raid).Dans cette configuration, si le disque sur lequel est installé Debian lâche, on est bon pour une réinstallation du système et bien évidemment une reconstruction du raid. Cette étape peut prendre plus ou moins de temps en fonction du nombre de services qu'offre le serveur.

Mon objectif était d'avoir un système qui puisse booter même en cas de défaillance de l'un des deux disques.

Sommaire1. Pré requis

2. Lancement de l'installation

3. Partitionnement des disques

4. Création des volumes Raid

5. Grub et le secteur d'amorçage

6. Diagnostic de la défaillance d'un disque et remplacement

7. Reconstruction des partitions Raid

 _1. Pré requis• 2 Disques durs (si possible identique)• Un CD d'installation de Debian 3.1 (Sarge). Pour ce tutorial j'ai utilisé le mini CD d'installation par Internet.• Bien sur un PC (un P2 fait largement l'affaire).• Savoir installer une Debian

 _2. Lancement de l'installationAu boot du CD précisez que vous souhaitez installer le noyau 2.6.

Page 16: RAID Logiciel Debian Raid5

Tapez: linux26... Suivez la procédure jusqu'a arriver à l'étape de création des partitions....Nous allons choisir un découpage relativement standard des partitions. Les disques utilisés font ici 40Go chacun.

 _3. Partitionnement des disques• 1ère partition / (racine du système) => 15Go• 2ème Partition /home => 24Go• 3ème partition swap => 1Go

Pour assurer un fonctionnement correct du serveur lors d'une déffaillance disque, toutes les partitions seront en RAID1Créez sur chacun des disques les 3 partitions:

• hda1 et hdc1 => 15Go• hda2 et hdc2 => 24Go• hda3 et hdc3 => 1024Mo

A chaque fois précisez que le système de fichier de cette partition doit être de type Raid.

 _4. Création des volumes RaidRevenez sur l'écran principal de l'outil de partitionnement Puis aller dans le menu créer les volumes raid en haut de la liste.

• Sélectionner Raid1 puis les 2 partitions de 15Go• Sélectionner Raid1 puis les 2 partitions de 24Go• Sélectionner Raid1 puis les 2 partitions de 1024Mo

Revenez sur l'écran principal de l'outil de partitionnement, les 3 nouvelles partitions Raid sont apparues en dessous des existantes.• Sélectionnez la 1ere (15 Go)

Syst. de fichier : ext3point de montage: /

• Sélectionnez la 2eme (24 Go)Syst. de fichier: ext3point de montage: /home

• Sélectionnez la 3eme (1Go)Syst. de fichier: swap

Puis passez à l'étape suivante.­ Installation du système Debian de base ­­­Laissez le système poursuivre son installation.

 _5. Grub et le secteur d'amorçage.C'est de très loin cette partie qui m'a posé le plus de problèmes. En effet, il est impossible de rendre une partition Raid amorçable (en tout cas à partir de l'installateur Debian).Plusieurs choix s'offraient à moi: ­ créer une partition amorçable (non RAID) sur l'un des deux disques mais s'il lache le système ne pourra plus booter. ­ Booter sur autre média (Disquette, CDROM, Clé USB etc..)Je choisi ici le floppy disk pour démarrer (à graver par la suite sur CDROM car le floppy ....): Vous arrivez donc à présent sur l'écran d'installation de Grub, il vous demande si vous souhaitez l'installer sur le secteur d'amorçage , répondez non.Ensuite il vous demande où vous souhaitez l'installer.répondez (après avoir inséré une disquette dans le lecteur): /dev/fd0fd0 pour Floppy Disk 0 ...Finissez l'installation de votre système debian puis redémarrez...Maintenant vous pouvez contrôler que tout fonctionne correctementEn tant que root:# more /proc/mdstatPersonalities: [raid0] [raid1]

md1 : active raid1 hda2[0] hdc2[1]14651200 blocks [2/2] [UU]

md2: active raid1 hda4[0] hdc4[1]19093184 blocks [2/2] [UU]

md0: active raid1 hda1[0] hdc1[1]4883648 blocks [2/2] [UU] 

Le [UU] vous indique d'un coup d'oeil que tous les disques sont Up.Votre système sera maintenant bootable même après défaillance d'un disque.PS: Vous pouvez créer une autre disquette de boot en tapant dans un shell: grub­install /dev/fd0 PS2: Si vous n'avez pas confiance en la disquette (et vous avez bien raison), gravez vous tout ça sur un CDROM de boot, on est jamais trop prudent.

 _6. Diagnostic de la défaillance d'un disque et remplacement.

Page 17: RAID Logiciel Debian Raid5

Maintenant passons à la partie la plus intéressante: la défaillance d'un disque.Un jour vous découvrez donc avec horreur le message suivant:# more /proc/mdstatPersonalities : [raid0] [raid1]md1 : active raid1 hda0[2]14651200 blocks [2/1] [U_]

md2 : active raid1 hda4[0]19093184 blocks [2/1] [U_]

md0 : active raid1 hda1[0]4883648 blocks [2/1] [U_] 

Là on voit clairement que quelque chose cloche le [UU] devient [U_] et le [2/2] devient [2/1]Le diagnostic est sans appel: un disque est mort (le hdc).Pas de panique !!Il faut:

• éteindre la machine• retirer le disque défectueux• insérer le nouveau disque dont la capacité doit être au moins égale au précédent• recréer les mêmes partitions sur le nouveau disque.

Ce sera la seule periode durant laquelle votre serveur sera innaccessible.Puis vous pouvez enfin redémarrer la machine. Tout devrais démarrer sans difficultés sur le seul disque restant. _7. Reconstruction des partitions RaidPour reconstruire les partitions nous allons utiliser l'outil mdadmTapez:mdadm /dev/md1 ­­manage ­­add /dev/hdc2pour ajouter votre nouvelle partition hdc2 à la partition Raid md1 (qui contient déjà hda2)On contrôle que tout se déroule correctement:# more /proc/mdstatPersonalities: [raid0] [raid1]md1: active raid1 hdc2[2] hda2[0]14651200 blocks [2/1] [U_][=================>...] recovery = 89.9% (13174016/14651200) finish=0.7min speed=32980K/sec

md2: active raid1 hda4[0]19093184 blocks [2/1] [U_]

md0: active raid1 hda1[0]4883648 blocks [2/1] [U_]

Répétez l'opération pour chacune des partitions Raid1Au final vous obtenez:# more /proc/mdstatPersonalities: [raid0] [raid1]md1: active raid1 hdc2[1] hda2[0]14651200 blocks [2/2] [UU]

md2: active raid1 hdc4[1] hda4[0]19093184 blocks [2/2] [UU]

md0: active raid1 hdc1[1] hda1[0]4883648 blocks [2/2] [UU] 

OUF !! il y a des [UU] partout :)

4) Installation d'une Debian 3.0 en Root RAID miroir

Auteur: Benoit PicaudContact: [email protected] Date: 2003/11/16 19:23:17 Revision: 1.2 

Page 18: RAID Logiciel Debian Raid5

Introduction: objet de cet article Nous voulons faire héberger dans un datacenter une machine de type 1U, garantissant une bonne fiabilité, disposant d'une simplicité d'administration et capable d'offrir une réaction rapide aux problèmes de sécurité et surtout pas chère.Pour cela, une machine de type PC x86 en rack 1U a été achetée, avec deux disques durs IDE identiques.Le système d'exploitation Linux est stable, puissant et doté de beaucoup de fonctionnalités facilitant l'administration et la gestion correcte d'une machine. Parmi celles-ci, figure le RAID logiciel permettant d'allier fiabilité des données et petit prix de revient.La distribution Linux Debian a été choisie pour la puissance d'administration et sa grande stabilité.Cependant, Linux Debian ne permet pas une installation directe sur du RAID logiciel (à la différence, par exemple, de Linux RedHat qui dispose de cette fonctionnalité depuis au moins la version 7.3).Cet article explique comment installer une Debian en root RAID directement, à l'aide d'une astuce. Je ne sais pas s'il existe une méthode plus propre pour faire une telle installation (peut-être l'internet dispose-t'il d'une image ISO faisant automagiquement le boulot, en ce cas, me contacter).Début de l'installation du systèmeDéterminer une logique d'installationIl faut commencer par établir la liste du matériel présent: carte réseau, éventuellement carte SCSI si une telle carte est présente dans la machine, carte vidéo et autres spécificités réjouissantes. Si, comme moi, vous souhaitez faire du RAID soft IDE logiciel, il est important que les deux disques IDE choisis soient chacun sur un controleur IDE distinct: deux disques sur un même contrôleur grèvent lamentablement les performances. Par exemple, mettez le premier disque en /dev/hda et le second en /dev/hdc.Ceci fait, il faut à présent définir le partitionnement souhaité pour la machine, par exemple sur la machine en question: /boot 100Mo / 4Go /var 4Go /tmp 1Go swap 512Mo /home [reste soit env. 65 Go] On lance donc l'installation Debian classique et on partitionne les deux disques IDE. /dev/hda1 1 13 104391 fd Linux raid autodetect /dev/hda2 14 536 4200997+ fd Linux raid autodetect /dev/hda3 537 1059 4200997+ fd Linux raid autodetect /dev/hda4 1060 9964 71529412+ 5 Extended /dev/hda5 1060 1125 530113+ fd Linux raid autodetect /dev/hda6 1126 1158 265041 82 swap /dev/hda7 1159 9964 70734163+ fd Linux raid autodetect L'attribut «Système» Linux raid autodetect s'obtient, sous fdisk, à l'aide du code fd.Comme on le voit, j'ai décidé de faire deux partitions de swap de 256 Mo plutôt qu'une partition unique de 512 Mo, l'une sur /dev/hda, l'autre sur /dev/hdc. On verra par la suite que cela va être utile.Faire une mini-installationA partir de ce moment là, les choses commencent à très mal se passer; en effet, le programme d'installation de la Debian ne considère par les partitions fd comme valides pour une installation et il m'est apparu impossible de construire le RAID à ce moment précis.J'ai donc choisi de modifier la seconde partition de swap (/dev/hdc6) et de la transformer en partition ext2 traditionnel et de faire une installation minimale de la Debian.L'installation sur un système de fichier ext2 se déroule sans accroc.Configurer la mini-installation pour construire le RAIDUne fois l'installation standard terminée, on se retrouve avec deux énormes disques et un minuscule système de fichiers actif. Cela ne sera que temporaire.Il faut alors installer le paquet raidtools2 et installer un noyau avec support du RAID logiciel.On commence par compiler un nouveau noyau. Je vous recommande d'en prendre un bien frais sur ftp.kernel.org (ou un miroir officiel, comme le lip6). Choisissez avec grand soin les modules nécessaires pour votre machine (en particulier le type de processeur, de contrôleurs IDE et de type de carte afin d'obtenir un support DMA correct sur cette machine). Examinez, avec la commande hdparm /dev/hda que le DMA et l'irq masquing sont bien activés pour votre disque; sinon, tapez /sbin/hdparm -u 1 -d 1 /dev/hda, puis pour /dev/hdc. Voyez la page de manuel de hdparm pour de plus amples renseignements.Pour les besoins du RAID logiciel, choisissez: CONFIG_MD=y CONFIG_BLK_DEV_MD=y (...) CONFIG_MD_RAID1=y CONFIG_MD_RAID5=y Une fois votre choix fait, je vous suggère d'utiliser les outils Debian pour compiler, pakager et installer le nouveau noyau à l'aide du paquet kernel-package.Une fois le nouveau noyau compilé et installé, redémarrez la machine. Vérifiez à l'aide de la commande uname -r que vous êtes bien sur le bon noyau.On commence ensuite à construire le RAID, pour ce faire, après avoir lu la documentation idoine (je parle du Software-RAID HOWTO, Cf. la fin de ce document) on va constituer le fichier /etc/raidtab.Mon fichier pour ma part à cette tête-là: # /boot RAID 1 raiddev /dev/md0 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 chunk-size 32 persistent-superblock 1 device /dev/hda1 raid-disk 0 device /dev/hdc1 raid-disk 1

# / RAID 1

Page 19: RAID Logiciel Debian Raid5

raiddev /dev/md1 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 chunk-size 32 persistent-superblock 1 device /dev/hda2 raid-disk 0 device /dev/hdc2 raid-disk 1

# /var RAID 1raiddev /dev/md2 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 chunk-size 32 persistent-superblock 1 device /dev/hda3 raid-disk 0 device /dev/hdc3 raid-disk 1

# /tmp RAID 1raiddev /dev/md3 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 chunk-size 32 persistent-superblock 1 device /dev/hda5 raid-disk 0 device /dev/hdc5 raid-disk 1

# /home RAID 1raiddev /dev/md4 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 chunk-size 32 persistent-superblock 1 device /dev/hda7 raid-disk 0 device /dev/hdc7 raid-disk 1 Bien évidemment, il faut adapter ce fichier d'exemple à votre configuration. Une fois cela fait, on peut alors créer le RAID à l'aide de la commande: mkraid /dev/md0.La commande rend la main étrangement vite, on en profite pour créer les autres partitions RAID avec mkraid /dev/md1, etc.Le RAID va être construit progressivement par le système. On s'aperçoit de la bonne marche des opérations à l'aide de quelques cat /proc/mdstat : on aperçoit le RAID en pleine construction.Sur ma machine, le RAID s'est construit à une vitesse d'environ 30Mo/sec. Si la vitesse de création est nettement inférieure à cela, (par exemple, moins d'1Mo/sec) c'est sans doute l'indice que votre système est mal configuré, par exemple du fait de l'absence de gestion du DMA, ou autre. Une fois la création terminée, un cat /proc/mdstat devrait avoir une apparence telle que:Personalities : [raid1] read_ahead 1024 sectorsmd0 : active raid1 hdc1[1] hda1[0] 104320 blocks [2/2] [UU] md1 : active raid1 hdc2[1] hda2[0] 4200896 blocks [2/2] [UU] md2 : active raid1 hdc3[1] hda3[0] 4200896 blocks [2/2] [UU] md3 : active raid1 hdc5[1] hda5[0]

Page 20: RAID Logiciel Debian Raid5

530048 blocks [2/2] [UU] md4 : active raid1 hdc7[1] hda7[0] 70734080 blocks [2/2] [UU] unused devices: <none> Ces partitions se gèrent ensuite comme tout autre partition: on peut donc facilement les ... formater ! C'est ce que nous faisons à l'aide de la commande /sbin/mkfs.ext3 /dev/md0 et ainsi de suite.Le basculement du système vers les partitions RAIDVérification du bon fonctionnement des partition RAIDA cette étape, nous avons toujours une partition système très étroite (256Mo dans mon cas); on va avant toute chose vérifier que les nouvelles partitions sont correctes.Dans /mnt/ on crée les répertoires slash, var, home, boot, tmp (adaptez en fonction du partitionnement choisi). Montez les partitions /dev/md? sur le point de montage idoine, par exemple:mount /dev/md0 /mnt/bootmount /dev/md1 /mnt/slashmount /dev/md2 /mnt/varmount /dev/md3 /mnt/tmpmount /dev/md4 /mnt/home Si vous êtes aussi suspicieux que moi, n'hésitez pas à créer de gros fichiers sur ces espaces disques, /dev/urandom est fait pour cela :-).Basculement du systèmeUne fois toutes ces partitions bien vérifiées et bien nettoyées, on va doucement commencer la migration du système.La commande tar va être la commande magique pour ce faire. On va commencer par exemple par migrer /home/ vers la parition en RAID.tar -C /home -clf - .|tar -C /mnt/home -xvf - t, on vérifie que le résultat est correct, que les permissions sont bien préservées, etc.On poursuit ensuite avec les autres points de montage, comme /boot/ puis /var/... Lorsqu'on voudra migrer la partition racine (/) on prendra bien soin d'exclure les points de montage déjà migrés (par exemple /tmp/ ou /var/) à l'aide des options -X ou --exclude de tar; au besoin, en cas d'erreur, les détruire.Sur /mnt/slash, il faut par contre créer les répertoires qui seront par la suite montés par le système, donc /home/ /tmp/ /var/ etc.Vérifiez soigneusement l'aspect correct de votre migration, assurez-vous de n'avoir pas fait d'erreur lors du passage. Reconfiguration du système pour le prochain bootIl faut à présent indiquer au système de lancer le noyau avec les nouvelles partitions et rendre le système amorçable.Pour cela, on modifie /etc/fstab par exemple en ceci:/dev/md1 / ext3 errors=remount-ro 0 1/dev/md0 /boot ext3 defaults 0 2/dev/md2 /var ext3 defaults 0 2/dev/md3 /tmp ext3 defaults 0 2/dev/md4 /home ext3 defaults 0 2/dev/hda6 none swap sw 0 0/dev/hdc6 none swap sw 0 0proc /proc proc defaults 0 0/dev/fd0 /floppy auto user,noauto 0 0 Grâce à cela, le système qui redémarrera saura trouver les nouvelles partitions (d'où l'intérêt de bien mettre dans le noyau le support du RAID !).Il s'agit ensuite de rendre le système amorçable: en effet, l'amorçe présente sur le disque dur est faite pour lancer le système avec le root filesystem sur /dev/hda. On édite donc le fichier /etc/lilo.conf et on y ajoute les éléments suivants (au besoin en remplaçant les clefs-valeurs actuelles)boot=/dev/md0 (...)root=/dev/md1 Exécutez ensuite le programme install-mbr. Attention ... n'oubliez pas que vous avez actuellement DEUX lilo.conf, /etc/lilo.conf et /mnt/etc/lilo.conf; aussi, toutes les modifications apportées après la migration avec tar doivent-elles être reportées dans le répertoire /mnt/ ...Et on se lance !Une fois prêt, on se lance ! Cependant, attention en cas de problème, on conserve encore l'ancienne root partition sur /dev/hdc6 en attendant de valider l'installation correcte de la machine en full root raid (par

Page 21: RAID Logiciel Debian Raid5

exemple à l'aide d'une disquette de boot faite avec mkboot avant la migration ... pensez-y).Ceci fait, testez. Pour moi, cela a marché (presque) du premier coup, j'avais simplement mal positionné les droits du répertoire /tmp/ en raid: on s'aperçoit en effet que ce répertoire à un sticky bit de positionné... $ ls -ld /tmp/drwxrwxrwt 3 root root 4096 Sep 30 23:23 /tmp/ On rétablit les choses avec l'option t de chmod (Cf. la page de manuel).On profite de ce petit incident pour faire le tour du propriétaire et vérifier les droits des répertoires.Conclusion Cette petite installation est assez pénible au début mais elle procure un délicieux sentiment d'euphorie lorsque tout fonctionne à merveille à la fin. L'installation à duré, lecture de manuel, tests et vérification, un peu moins d'une journée au total alors que je ne connaissais rien au RAID logiciel auparavant.Je vérifie régulièrement l'état des disques à l'aide de la commande cat /proc/mdstat, les deux «U» signifient que les deux disques sont opérationnels.En cas de catastrophe, je crois que les outils compris dans les raidtools2 sont assez incomplets. Je vous indique donc un autre logiciel, appelé mdadm qui permet de synchroniser élégamment un disque vierge avec un périphérique RAID soft en mode dégradé (donc avec plus qu'un seul disque). La commande pour s'en sortir est mdadm /dev/md0 -a /dev/hdc par exemple, mais lisez soigneusement la documentation de mdadm avant toute intervention.Pour finir, n'oubliez pas: le RAID ne sert qu'à se protéger d'un disque qui grille, il n'offre aucune garantie contre un rm -rf mal placé, aussi, du RAID ne dispense pas de faire des sauvegardes régulières. On le répète encore une fois: le RAID ne remplace pas les sauvergardes.Références

• http://www.tldp.org/HOWTO/Software-RAID-HOWTO.html • http://karaolides.com/computing/HOWTO/lvmraid/ • http://www.bxlug.be/articles/111 • http://www.cse.unsw.edu.au/~neilb/source/mdadm/ • http://linux.oreillynet.com/pub/a/linux/2002/12/05/RAID.html