Software-RAID HOWTO: Motivation du RAID
2. Motivation du RAID
Il existe différentes bonnes raisons pour se servir du RAID parmis
lesquelles figurent la possibilité de fusionner plusieurs disques
physiques en un périphérique virtuel plus important, l'amélioration
des performances et la redondance.
2.1 Aspects techniques
Le RAID Linux est adapté à la majeure partie des périphériques de type
bloc. Peu importe que vous utilisiez de l'IDE, du SCSI ou un mélange des
deux. Certains ont également obtenu quelques succès en s'en servant
avec des périphériques de type bloc en réseau (Network Block Device ou
NBD).
Vérifiez que les bus d'accès aux périphériques sont assez rapides.
Il n'est pas conseillé d'installer 14 disques Ultra Wide sur une même
chaine si chacun d'entre eux peut débiter 10 Mo/s car le bus, lui, ne
dépassera pas les 40 Mo/s.
Vous avez également intérêt à ne pas mettre plus d'un disque par
interface IDE sans quoi les performances ne vont pas être fameuses.
L'IDE n'est pas adapté pour l'accès simultané à plusieurs disques sur
une même interface. Toutes les cartes mères récentes incluent deux
ports et vous pourrez donc configurer deux disques en RAID sans acheter
de contrôleur supplémentaire.
La couche RAID est indépendante du système de fichier. Vous pourrez donc
y superposer celui de votre choix.
2.2 Vocabulaire
RAID sera employé pour "RAID logiciel Linux". Le document ne traite
pas du RAID matériel.
Dans la description des configurations, on utilise fréquemment le nombre
de disques et leur taille. N désignera le nombre de disques
dans une matrice RAID, les disques de secours étant exclus, S
sera la taille du plus petit disque et P le débit d'un disque
en Mo/s. Quand on se servira de P, on supposera que les disques ont tous
les mêmes performances (à vérifier).
Périphérique et disque seront synonymes. En général, les matrices RAID
sont davantage construites avec des partitions qu'avec des disques
complets. La combinaison de plusieurs partitions appartenant à un même
disque ne présente guère d'intérêt et on entendra donc par périphérique
et disque "des partitions sur différents disques".
2.3 Niveaux RAID
Voici une brève description des niveaux de RAID gérés par Linux.
Certaines de ces infos sont basiques mais j'ai fait mention d'éléments
spécifiques à la mise en oeuvre au sein de Linux. Sautez cette section
si vous savez ce qui se cache derrière le RAID. Vous y reviendrez quand
vous aurez des problèmes :o)
Les patches RAID pour Linux offrent les possibilités suivantes :
- mode linéaire
- Deux disques et plus sont combinés par concaténation. L'écriture
sur le disque RAID se fera donc d'abord sur le premier puis sur le
second quand il sera plein et ainsi de suite. Il n'est pas nécessaire
que les disques soient de la même taille et, pour tout dire, la taille
n'est ici d'aucune importance.
- Il n'y a aucune redondance à ce niveau. Si un disque tombe en
panne, vous perdrez surement toutes vos données. Vous aurez peut être
la chance d'en récupérer une partie si, du point de vue du système de
fichiers, il ne manque qu'un gros bloc consécutif de données.
- Les performances en lecture/écriture ne vont pas s'améliorer
automatiquement mais si plusieurs utilisateurs se servent
simultanément du périphérique, il se peut qu'ils accèdent à des disques
différents et que les performances en soient augmentées.
- RAID-0
- Ou "stripe". Semblable au mode linéaire à ceci près que les
lectures et les écritures ont lieu en parallèle sur les disques. Les
disques doivent avoir sensiblement la même taille. Les périphériques se
remplissent progressivement de la même façon. Si l'un des deux est plus
grand que l'autre, l'espace supplémentaire est toujours employé pour la
matrice RAID mais vous n'utiliserez qu'un des deux disques vers la fin.
Les performances en patiront.
- Comme en linéaire, il n'y a pas de redondance des données mais
en plus vous ne serez pas capable de récupérer vos données si un
disque tombe en panne. Au lieu de ce qu'il vous manque un gros bloc de
données, votre système de fichiers comprendra de nombreux petits trous.
e2fsck ne sera vraisemblablement pas en mesure de reconstituer quoi que
ce soit.
- Les performances en lecture/écriture augmenteront puisque les
lectures et les écritures auront lieu sur les deux disque en même
temps. C'est souvent ce qui motive l'emploi du RAID-0. Si les bus sont
assez rapides, vous pourrez flirter avec N*P Mo/s.
- RAID-1
- Il s'agit du premier mode redondant. Le RAID-1 s'employe à partir
de deux disques auxquels viennent éventuellement se greffer des disques
de secours. Ce mode duplique les informations d'un disque sur
l(es)'autre(s). Bien sûr, les disques doivent être de même taille. Si
un disque est plus grand que les autres, la matrice sera de la taille
du plus petit.
- Jusqu'à N-1 disques otés (ou défectueux), les données restent
intactes et si le contrôleur (SCSI, IDE, etc...) survit, la
reconstruction sera immédiatement entamée sur un des disques de secours
après détection de l'anomalie.
- Les performances en écriture sont légèrement inférieures à celles
d'un disque unique vu que les données doivent être écrites sur chaque
disque de la matrice. Les performances en lecture sont en
général bien plus mauvaises en raison de la mise en oeuvre au sein
du code d'une stratégie d'équilibrage simpliste. Cependant, cette partie
des sources a été revue pour le noyau 2.4.
- RAID-4
- Ce niveau RAID n'est pas utilisé très souvent. Il s'employe à
partir de trois disques et plus. Au lieu d'effectuer une copie des
informations, on conserve la parité sur un disque et on écrit les
données sur les autres comme on le ferait avec une matrice RAID-0.
Un disque étant dédié à la parité, la taille de la matrice sera
(N-1)*S ou S est la taille du plus petit disque. Comme en RAID-1, les
disques doivent avoir la même taille sans quoi le S précédent
correspondra à celui du plus petit disque.
- Si un disque lache, l'information de parité permet de reconstruire
toutes les données. Si deux disques lachent, toutes les données sont
perdues.
- On n'utilise pas beaucoup ce niveau en raison du stockage de la
parité sur un disque unique. L'information doit être mise à jour à
chaque fois qu'on écrit sur un des disques, ce qui constitue
un goulot d'étranglement si le disque de parité n'est pas nettement
plus rapide que les autres. Cependant, si vous avez beaucoup de petits
disques lents et un disque très rapide, le RAID-4 peut s'avérer très
utile.
- RAID-5
- Il s'agit surement du mode le plus approprié quand on souhaite
combiner un grand nombre de disques tout en conservant de la
redondance. Le RAID-5 s'employe à partir de trois disques avec
éventuellement des disques de secours. La matrice sera de taille
(N-1)*S, comme en RAID-4. A la différence du RAID-4, l'information de
parité est répartie équitablement entre les différents disques,
évitant ainsi le goulot d'étranglement du RAID-4.
- Si un des disques tombe en panne les données restent intactes.
La reconstruction peut commencer immédiatement si des disques de
secours sont disponibles. Si deux disques rendent simultanément l'âme,
toutes les données sont perdues. Le RAID-5 ne survit pas à la
défaillance de plus d'un disque.
- Les performances en lecture/écriture s'améliorent mais il est
difficile de prévoir de combien.
Disques de secours
Les disques de secours ne prenent pas part à la matrice RAID jusqu'à
ce qu'un des disques de celle-ci tombe en panne. Quand un disque
lache, il est marqué défectueux et la reconstruction est entamée sur
le premier disque de secours disponible.
Les disques de secours renforcent donc la sécurité de systèmes RAID-5
qui peuvent être difficilement accessibles. Le système peut
fonctionner pendant un certain temps aec un disque défectueux tant que
le disque de secours assure la redondance.
Vous ne pouvez être sûr de la survie de votre système en cas de
défaillance d'un disque. La couche RAID peut faire son travail mais
les gestionnaires SCSI peuvent receller des erreurs, les composants
IDE peuvent se bloquer et d'autres phénomènes peuvent se produire.
2.4 RAID et swap
Il n'y a aucune raison d'employer le RAID au dessus du swap pour en
améliorer les performances. Le noyau se charge lui-même d'équilibrer
le swap sur plusieurs périphériques si toutes les partitions ont la
même priorité dans la fstab.
Un fichier fstab correct ressemble à ce qui suit :
Cette configuration permet à la machine de swaper en parallèle avec
sept périphériques SCSI. Aucun besoin du RAID pour ça vu qu'il s'agit
d'une fonctionnalité présente dans le noyau de longue date.
Le RAID s'emploie pour le swap à des fins de haute disponibilité.
Si vous configurez un système pour démarrer sur un périphérique
RAID-1, le système doit être capable de survivre à une défaillance
de disque. Seulement si le système était en train de swaper sur le
périphérique défectueux, vous allez surement avoir des problèmes.
Swaper sur une matrice RAID-1 aide dans ce genre de situations.
Il y a eu beaucoup de discussions concernant la stabilité du swap
sous une couche RAID logicielle. Le débat continue car il dépend
fortement d'autres aspects du noyau. A la date de rédaction de ce
document, il semble que swaper via le RAID soit parfaitement stable
à l'exception des phases de reconstruction (i.e. lorsqu'un
nouveau disque est inséré dans une matrice dégradée).
La question ne se posera plus lorsque le noyau 2.4 sortira mais
jusque là, à vous de pousser le système dans ses retranchements afin
de savoir si la stabilité vous satisfait ou bien si vous ne vous
servirez pas du RAID pour le swap.
Vous pouvez utiliser un fichier de swap sur un système de fichiers
au dessus d'une couche RAID, activer le RAID pour le fichier lui
même ou déclarer un périphérique RAID en tant que swap. A vous de
voir. Comme d'habitude, le disque RAID apparaitra comme un
périphérique de type bloc.
[22 février 2002, JDNet]
|