Table of Contents
Le pilote Multi-disque (MD) du noyau Linux et le plug-in MD d'EVMS fournissent une implémentation logicielle du RAID (Redudant Array of Inexpensive Disks : batterie redondante de disques bon marché). L'idée de base de la technologie RAID est de regrouper plusieurs disques durs en une batterie de disques pour augmenter les capacités, les performances et la fiabilité.
Le standard RAID défint une grande variété de méthodes pour combiner les disques en une batterie RAID. Sous linux, MD implémente un sous-ensemble du standard RAID complet, comprenant RAID-0, RAID-1, RAID-4 et RAID-5. De plus, MD supporte également d'autres types de regroupements nommés Linear-RAID et Multipath.
En complément de cette annexe, on trouvera des informations supplémentaires sur RAID et le pilote MD de Linux à l'adresse : www.tldp.org/HOWTO/Software-RAID-HOWTO.html
Tous les niveaux RAID sont utilisés pour combiner plusieurs périphériques en une seule batterie multi-disques [MD]. Le plug-in MD est un gestionnaire de régions, donc EVMS utilise le terme "régions" pour parler des batteries MD. MD peut créer ces régions en utilisant des disques, des segments, ou d'autres régions. Cela signifie qu'il est possible de créer des régions RAID en utilisant d'autres régions RAID, et ainsi de regrouper plusieurs niveaux RAID en une unique pile de volumes.
Les sous-sections suivantes décrivent les caractéristiques de chaque niveau RAID Linux. Avec EVMS, ces niveaux peuvent être considérés comme des sous-modules du plug-in MD.
Les régions Linear-RAID regroupent les objets en les joignant les uns aux autres. La lecture (ou l'écriture) linéaire des régions MD commence par une opération d'écriture sur le premier objet fils. Lorsque l'objet est plein, l'écriture continue sur le second objet fils, et ainsi de suite jusqu'à ce que le dernier objet fils soit plein. Il n'est pas nécessaire que les objets fils d'une région Linear-RAID aient la même taille.
Avantage :
avec Linear-RAID, nous avons une méthode simple pour la construction de très grandes régions en utilisant de nombreux petits objets.
Inconvénients :
le Linear-RAID n'est pas un "vrai" RAID, dans le sens où il n'y a pas de redondance de données. Si l'un des disques plante, la région RAID sera indisponible, ce qui se traduira par une perte partielle ou totale des données de la région.
avec le Linear-RAID, les performances n'augmentent pratiquement pas. Les objets sont reliés simplement d'une manière linéaire qui ne permet pas beaucoup d'entrées/sorties en parallèle (voire aucune) vers de multiples objets fils. Les performances d'un Linear-RAID sont généralement équivalentes aux performances d'un disque unique.
En général, avec RAID-0 on dit que l'on fait de la"segmentation par entrelacement" [striping] . Ceci signifie que les données dans une région RAID-0 sont réparties de façon égale et entrelacées sur tous les objets fils. Par exemple, lorsque l'on écrit 16Ko de données sur une région RAID-0 avec 3 objets fils et une taille de bloc de 4Ko, les données seront écrites comme suit :
4Ko sur l'objet 0
4Ko sur l'objet 1
4Ko sur l'objet 2
4Ko sur l'objet 0
Avantages :
comme avec le Linear-RAID, avec le RAID-0 nous avons une méthode simple pour la construction de très grandes régions en utilisant de nombreux petits objets.
généralement, le RAID-0 apporte des améliorations de performances, car il peut morceler les grosses requêtes d'entrée/sortie et les soumettre en parallèle sur différents disques.
Inconvénient :
Là aussi, comme le Linear-RAID, le RAID-0 n'est pas un "vrai" RAID, dans le sens où il n'y a pas de redondance des données (d'où ll'appellation RAID « zéro »). Si l'un des disques plante, la région RAID sera indisponible, et il en résultera probablement une perte de toutes les données sur cette région.
En général, avec RAID-1, on dit que l'on fait du "mirroring". Chaque objet fils d'une région RAID-1 contient une copie identique des données de la région. Une opération d'écriture sur une région RAID-1 provoque l'écriture simultanée des données sur tous les objets fils. Une opération de lecture d'une région RAID-1 peut se faire en lisant les données se trouvant sur l'un quelconque des objets fils. Il n'est pas nécessaire que les objets fils d'une région RAID-1 aient la même taille, mais la taille de la région sera égale à la taille du plus petit objet fils.
Avantages :
le RAID-1 offre une totale redondance des données. Dans une région RAID-1 faite à partir de N objets fils, il peut y avoir jusqu'à N-1 de ces objets qui plantent et la région sera toujours opérationnelle, et pourra récupérer les données depuis les objets qui restent.
le RAID-1 peut apporter des améliorations de performances sur les Entrées/Sorties en lecture. Du fait que tous les objets fils contiennent une copie intégrale des données, la charge résultant de plusieurs requêtes simultanées peut se répartir sur tous les objets.
Inconvénient :
le RAID-1 peut entraîner des baisses de performances sur les Entrées/Sorties en écriture. Comme chaque objet fils doit avoir une copie complète des données, chaque écriture sur la région doit être dupliquée et envoyée vers chaque objet. Une requête d'écriture ne peut se terminer tant que la duplication de toutes les écritures vers les objets fils n'est pas terminée.
une région RAID-1 avec N disques coûte N fois plus cher qu'un disque unique, mais n'offre les capacités de stockage que d'un disque unique.
En général, avec RAID-4/5 on dit que l'on fait de la "segmentation par entrelacement avec parité". Comme le RAID-0, les données dans une région RAID-4/5 sont réparties de façon égale ou entrelacées sur tous les objets fils. Cependant, dans un RAID-4/5, les informations de parités sont également enregistrées pour chaque bande de données afin de fournir une redondance au cas ou l'un des objets est perdu. Si un disque plante, les données de ce disque peuvent être récupérées grâce aux données des disques restants et à l'information de parité.
Dans les régions RAID-4, un objet unique est utilisé pour stocker les informations de parité pour chaque bande de données. Cependant, cela peut causer un bouchon en entrée/sortie sur cet objet, car l'information de parité doit être mise à jour à chaque écriture en entrée/sortie sur la région.
Dans les régions RAID-5, la parité est répartie de façon égale sur tous les objets fils de la région, ce qui élimine le bouchon de parité du RAID-4. Le RAID-5 possède quatre algorithmes différents pour déterminer comment l'information de parité est distribuée. En fait, RAID-4 est souvent considéré comme un cas spécial du RAID-5 avec un algorithme de parité qui utilise simplement un objet au lieu de tous les utiliser. C'est le point de vue qu'utilise Linux et EVMS. Par conséquent, quand on parle du niveau RAID-5, il s'agit en fait simplement de RAID-4/5, RAID-4 n'étant que l'un des cinq algorithmes de distribution de parité disponibles.
Avantages et inconvénients :
Comme le RAID-1, le RAID-4/5 fournit une redondance de données dans le cas d'une panne de matériel. Cependant, contrairement au RAID-1, le RAID-4/5 peut uniquement survivre à la perte d'un seul objet. Ceci est dû au fait que seule une valeur de parité est enregistrée. Si plus d'un objet est perdu, ce n'est pas suffisant pour récupérer les données perdues.
Le RAID-4/5 fournit une redondance plus rentable que le RAID-1. Une région RAID-4/5 avec N disques fournit N-1 fois la capacité de stockage d'un seul disque. Le coût de la redondance des données se limite à celui d'un seul disque dans la région.
Comme le RAID-0, le RAID-4/5 peut généralement apporter des améliorations de performances en entrée/sortie, car les grosses requêtes d'entrées/sorties peuvent être morcelées et soumises en parallèle aux multiples objets fils. Cependant, pour les entrées/sorties en écriture, les améliorations de performances seront plus faibles que celles du RAID-0, car l'information de parité doit être calculée et réécrite à chaque fois qu'une requête d'écriture est traitée. De plus, pour apporter des améliorations de performances sur les entrées/sorties en écriture, un cache de mémoire interne doit conserver les récents accès aux ensembles de données afin que l'information de parité puisse être recalculée rapidement. Si une requête d'écriture est reçue pour une bande de données qui n'est pas dans le cache, les blocs de données de cette bande doivent d'abord être lus sur le disque pour pouvoir calculer la parité. Si cela arrive trop souvent, les performances des entrées/sorties en écriture pourraient en arriver à être pires que même celles d'une région Linear-RAID.
Une région multipath est composée d'un ou plusieurs objets tout comme les autres niveaux RAID. Toutefois, en multipath, les objets fils représentent en fait plusieurs chemins physiques vers le même disque physique. On trouve ce genre de configuration dans les systèmes avec des périphériques de stockage basés sur fibre optique ou réseaux de stockage SAN.
En fait, le cheminement multiple ne fait pas partie du standard RAID, mais il a été ajouté au pilote MD de Linux car il est bien pratique comme endroit pour créer des périphériques "virtuels" se composant de multiples périphériques sous-jacents.
Les niveaux RAID précédents peuvent tous être créés en utilisant une grande variété de périphériques de stockage, y compris les disques génériques reliés en local (par exemple, IDE et SCSI). Toutefois, le cheminement multiple peut uniquement être utilisé si au niveau matériel on a bien plusieurs chemins physiques vers le système de stockage, ce que l'on trouve habituellement sur les systèmes haut de gamme avec des stockages à fibre ou en réseau. Donc quand on ne sait pas si on doit utiliser le module multivoie, c'est très certainement qu'on n'a pas besoin de s'en servir.
Comme RAID-1 et RAID-4/5, le cheminement multiple offre la redondance afin de parer aux défaillances de matériel. Toutefois, contrairement à ces autres niveaux RAID, le chemin multiple protège contre les défaillances dans le chemin vers le périphérique, et pas les défaillances dans le périphérique lui-même. Si l'un des chemins est perdu (par exemple, un adaptateur de réseau tombe en panne ou bien un câble de fibre optique est enlevé), l'E/S sera redirigée vers les chemins restants.
Comme Raid-0 et RAID-4/5, le cheminement multiple peut fournir des améliorations de performance des E/S en répartissant la charge d'E/S de façon équilibrée sur les différents chemins.