Memoire de masse : LA NORME RAID

Le “mirroring”, le “duplexing”, le “shadowing” ou encore le “disk-striping” sont autant de techniques destinées à améliorer les performances entrée/sortie et à renforcer la sécurité des unités de stockage de masse.

Ces dernières années, les performances des processeurs et des mémoires de travail ont doublé en moyenne tous les ans. Dans le même temps, la capacité des périphériques de stockage a également doublé mais au rythme d’une fois tous les trois ans seulement. Il a même fallu attendre sept années pour voir le temps de positionnement des têtes de lecture se réduire de moitié.

Pour combler ces décalages, on est amené à mettre en oeuvre des techniques capables, malgré la lenteur des disques, d’exploiter au mieux la cadence élevée des processeurs tout en satisfaisant les besoins croissants en capacité de stockage des systèmes informatiques actuels.

Aujourd’hui déjà, l’utilisation de plusieurs disques durs par ordinateur est courante. Et dans quelques années, on pourra sans doute connecter un grand nombre de lecteurs à un seul système.

Le temps MTBF (MTBF = Mean Time Between Failure), c’est à dire le temps moyen entre deux défaillances de disques durs, s’élève aujourd’hui à plus de 500000 heures. Pour 100 disques durs connectés à un ordinateur, une défaillance par semestre est à escompter. Même si l’on peut compter sur l’amélioration de la fiabilité des disques durs, cette situation n’est, en l’état, pas acceptable.

Le fait que les petits disques durs sont en général bien meilleur marché que les gros encouragent les utilisateurs à utiliser plusieurs petites unités au détriment des disques durs de grande capacité.

Un système disque de type RAID ( R edundant A rray of I nexpensive D isks) a pour objectif de répondre aux principaux critères de performance et de protection des données nécessaires aux mémoires de masse des serveurs et des stations de travail.

Le principe de RAID consiste à combiner plusieurs petites unités de disques afin de construire des unités plus grandes et plus fiables. Une panne sur l’un des disques du système ne doit ni altérer l’exploitation, ni entraîner une perte de données. Dans le cas où une défaillance RAID utilise les techniques du mirroring (recopie complète d’un ou de plusieurs disques à partir d’un contrôleur), du duplexing (principe très proche mais via deux contrôleurs distincts et synchronisés) et du striping (combinaison de plusieurs unités physiques en une seule unité logique et distribution des blocs de données sur l’ensemble de ces unités physiques). Plusieurs niveaux RAID font l’objet de discussions dans la littérature spécialisée et certaines implémentations existent déjà (mais elles ne se conforment pas toujours aux normes définies). D’autant que la notion de niveau dans le concept RAID peut prêter à confusion. Le niveau RAID 3 par exemple ne se base absolument pas sur le niveau RAID 2. Il serait plus approprié ici de parler de types RAID.

Avant d’entrer dans le détail de ces différents “niveaux”, il est important d’apporter quelques précisions d’ordre général concernant les accès au support physique.

Si l’on exclut provisoirement du champ de notre analyse l’utilisation des mémoires cache du type “read-ahead” et autres techniques de mise au point des accès aux disques durs, les accès en lecture ou écriture atteignent, sur un disque dur isolé, les mêmes débits et performances. Concernant l’accès à un périphérique RAID, le constat est différent. Il l’est aussi lorsque l’on considère deux systèmes RAID de niveaux différents.

Les performances varient également avec la longueur (taille) des requêtes et, par conséquent, en fonction de l’application. Une application du type base de données, transactionnelle, ou encore multi-utilisateurs, travaillera plutôt avec des petites requêtes (transfert de quelques blocs, en règle générale), alors qu’un logiciel graphique ou de calcul effectuera des requêtes plus longues (plusieurs centaines de blocs).

Les niveaux RAID ci-après se comportent chacun de manière différente face à l’un ou l’autre type de requête. On ne peut pas affirmer que les systemes RAID apporte une solution sur mesure à tous les problèmes de flux de données. Une solution RAID n’est pas forcément toujours plus rapide que des lecteurs utilisés de manière conventionnelle. Dans tous les cas, une répartition optimale des données d’un système RAID est souhaitable. Il s’agira de distinguer les données auxquelles il est très fréquemment fait appel de celles dont l’utilisation n’est que sporadique. Pour le premier type de données, il est souvent très rentable de mettre en place un disque virtuel (en mémoire RAM) tandis que les données moins sollicitées peuvent avantageusement être enregistrées sur une mémoire de masse de grande capacité et d’accès moyennement rapide (RAID par exemple). Finalement, il peut être fait appel à un système d’archivage (lecteur de disques optiques avec “Juke-Box”, par exemple) pour les données rarement utilisées.

RAID niveau 0

Le niveau RAID 0 définit la technique de l’entrelacement (striping) : cette méthode consiste à assembler plusieurs petites unités de disques pour composer une grande unité logique. Aussi, l’information ne sera pas écrite en continu sur une seule unité physique, mais sera décomposée et stockée sur plusieurs unités. Le facteur d’entrelacement indique la taille du fragment stocké sur une unité physique. Plus ce facteur est petit (le plus souvent un octet), plus le débit de transfert moyen s’en trouvera amélioré (transfert en parallèle sur toutes les différentes unités).

Cette technique présente néanmoins quelques aspects négatifs : dans le cas de requêtes d’écriture par petits blocs (pour des blocs de 512 octets et en utilisant 4 disques durs, adoption d’une longueur de requête de 128 octets, par exemple), la capacité totale du disque se trouvera diminuée par les entêtes associées à chaque bloc. En laissant la longueur des blocs physiques à la longueur standard, la capacité du disque n’est pas diminuée mais il faut alors, pour écrire un seul bloc, lire au préalable tous les blocs physiques (répartis sur les différents disques durs) contenant des segments du bloc que l’on se propose d’écrire. Les informations partielles sont alors remplacées. Après quoi, l’écriture des différents blocs peut effectivement avoir lieu.

Avec un petit facteur d’entrelacement, RAID-0 offre d’excellentes performances à la lecture ou l’écriture de grands blocs, mais laisse apparaître de grosses lacunes pour des transferts de petits blocs.

Les inconvénients de RAID-0 apparaissent encore plus clairement lorsque l’on compare un système RAID-0, non avec un disque dur traditionnel (de capacité totale comparable) mais avec plusieurs petits disques durs pouvant traiter simultanément de petites requêtes.

Avec un facteur d’entrelacement important (équivalent à plusieurs blocs physiques du disque), il est possible d’atteindre des performances comparables à celles d’un disque dur classique et même de traiter plusieurs requêtes courtes de manière simultanée sur différents disques durs.

Un problème majeur subsiste cependant pour les deux versions : dans le cas d’une unique défaillance d’un seul des disques de l’ensemble, l’accès à la totalité des données est impossible. Pour cette raison, on dit souvent que RAID-0 n’est pas un véritable système RAID. La technique de l’entrelacement gérée par la CPU de l’hôte est disponible sous différents systèmes d’exploitation soit sous forme logicielle, soit directement installée au niveau du contrôleur de disques. Les disques durs ne communiquant généralement avec le contrôleur que par l’intermédiaire d’un unique canal de transfert de données et les requêtes ne pouvant donc être traitées que de manière séquentielle (et non parallèle), les gains de performances que l’on pourrait attendre d’une solution “contrôleur” se révèlent dans la pratique être assez maigres.

RAID niveau 1

Ce niveau RAID définit la technique du disque-miroir (mirroring). Le principe consiste à dupliquer toutes les données d’un disque (ou d’un périphérique RAID souvent appelé RAID-10 ou RAID 0+1) sur un second disque. En cas de défaillance du disque principal, les données restent accessibles. Les performances en écriture restent comparables à celles d’un disque classique ou d’un système RAID-0.

Dans certains cas, il est même possible d’améliorer les vitesses en lecture par la répartition des requêtes de lecture sur les deux disques, qui récupéreront alors les données de façon synchrone et indépendante.

On pourrait reprocher au mirroring de ne mettre que la moitié de l’espace de stockage à disposition des données originales, l’autre moitié étant réservée aux sauvegardes. Pour conclure : RAID-1 est une technique relativement simple et facile à mettre en œuvre. Elle est disponible sous forme logicielle ou matérielle (contrôleur de disques).

RAID niveau 2

L’algorythme de détection et de correction d’erreurs utilisé pour RAID-2 est la technique ECC (Error Correction Code). Les données sont stockées selon le même principe que pour RAID-0 (répartition des bits sur plusieurs unités physiques), à la différence qu’on y rajoute des bits de contrôle ECC écrits sur une unité physique supplémentaire. Les exemples d’application classiques recommandent l’utilisation de 4 disques ECC pour 10 disques de données. Une solution alternative serait la combinaison de 4 disques de données avec 3 disques ECC (voir graphique).

Cette solution plus économique présente l’avantage de pouvoir pallier à la défaillance simultanée de deux disques quelconques. Les performances en lecture et en écriture pour des blocs importants sont identiques à celles de RAID-0. Pour des transferts d’écriture réduits, le système relira l’ensemble des blocs physiques concernés afin de pouvoir recalculer la valeur de contrôle ECC, ce qui aura pour effet de ralentir considérablement l’opération.

RAID niveau 3

Par rapport à RAID-2, le niveau 3 remplace les unités ECC par un seul disque destiné au contrôle de parité. Le facteur d’entrelacement défini à un octet offre d’excellentes performances pour les transferts en lecture de grands blocs, mais il est très désavantageux pour l’écriture de petits blocs.

Tout transfert en écriture est précédé par de nombreux accès en lecture, afin de localiser les blocs physiques. Tout transfert en écriture est précédé par de nombreux accès en lecture, afin de localiser les blocs physiques. Après écriture des nouvelles données, il y a relecture de ces mêmes blocs et recalcul de la nouvelle valeur de la parité. En écriture, RAID-3 offre ainsi des performances très moyennes.

En revanche, les performances relevées pour la lecture de gros blocs de données sont excellentes. Les autres accès en lecture sont satisfaisants et comparables aux accès d’un disque dur simple.


RAID niveau 4

Le niveau RAID-4 est équivalent à RAID-3, mis à part la valeur du facteur d’entrelacement qui a la valeur de la taille du bloc physique de l’unité de données. Cette technique présente un avantage considérable : la lecture d’un nombre de blocs réduit n’impose pas un accès physique à l’ensemble des unités du système, mais se limite aux unités sur lesquelles sont stockées les données. Par conséquent, le système est capable de traiter simultanément plusieurs de ces requêtes. L’accès en écriture est lui aussi simplifié. Il suffit de lire le disque de données à réécrire et le disque de parité. Un calcul simple permet de calculer la nouvelle parité par addition de l’ancienne valeur aux nouvelles données. Aussi, les performances de RAID-4 pour les transferts réduits sont-elles améliorées par rapport à RAID-3.

RAID niveau 5

Le point faible de RAID-4 est incontestablement le disque dur de parité car c’est le disque sur lequel les accès sont les plus nombreux. Selon RAID-5, les données tout comme les indicateurs de parité, sont répartis indifféremment sur l’ensemble des disques physiques. Il en résulte une amélioration des accès en lecture et en écriture, puisque les requêtes et accès physiques sont répartis sur plusieurs unités.

Par contre, pour de petites requêtes et en se basant sur les accès par unité de temps et par mégaoctet, un ensemble RAID-5 est largement moins performant qu’un disque dur unique.

La capacité utile pour RAID niveau 3, 4 et 5 se situe entre 80 et 90%, alors que RAID-2 consomme environ 30% de la capacité totale pour la sécurité des données. En queue de peloton on retrouve RAID-1 qui ne laisse à la disposition de l’utilisateur que 50% de la capacité initiale.

Autres niveaux RAID

En complément des niveaux RAID exposés ci-dessus (définis par l’Université de Berkeley), il existe de nombreuses versions élaborées par les constructeurs de matériels.

Où et comment les spécifications sont-elles réalisées ? Les ingénieurs ont donné deux réponses à cette question : l’application de RAID est confiée soit au contrôleur de disques durs, soit au mécanisme implanté au niveau du calculateur hôte. La gestion de RAID par un contrôleur de disque préserve le calculateur d’une charge supplémentaire. Par contre la gestion par le processeur évite le passage de toutes les données par le point d’engorgement que constitue le contrôleur RAID et permet ainsi des débits plus importants découlant de la répartition des accès sur plusieurs unités physiques.

Un certain nombre de constructeurs de lecteurs de disques et de contrôleurs proposent des ensembles RAID. Ces systèmes diffèrent les uns des autres au niveau des caractéristiques techniques suivantes :

Une implémentation simple de RAID consiste à rattacher plusieurs disques durs à un bus SCSI et à les gérer par une logique du type RAID. D’autres versions proposent des solutions où chaque unité physique dispose de son propre contrôleur, ce qui a pour effet de sécuriser l’ensemble.

Les disques durs peuvent être montés de façon fixe, mais un montage permettant un échange sous tension est préférable, bien que plus onéreux.

Les ensembles RAID les plus performants savent reconstruire les données (après un échange de disque) sans interrompre l’exploitation normale de l’ensemble.

La sécurité d’un ensemble RAID dépend aussi d’autres éléments. C’est ainsi que l’alimentation joue un rôle primordiale : une alimentation redondante (une alimentation par disque, par exemple) est préférable à la solution d’une alimentation secteur unique. En extrapolant ce raisonnement, il parait logique de dupliquer d’autres composants de l’ensemble RAID tels que le câble, le contrôleur et les autres connecteurs.

Une dernière mise en garde cependant : l’ensemble de la réflexion ci-dessus est basée sur la logique de l’indépendance de la panne d’un composant par rapport aux autres. En pratique, force est de constater que les choses se passent différemment : c’est le plus souvent un événement externe (pic de tension, foudre, …) qui est à l’origine d’une augmentation ponctuelle du risque de défaillance sur plusieurs composants. Cela remet en cause la notion même de la MTBF pour un système RAID.

Il est par conséquent impératif de ne jamais négliger la méthode de la copie de sauvegarde qui protège de toute manipulation intempestive (effacement de fichier, erreur de logiciel ou plus grave : attaque de virus).

Conclusion

Lorsque les transferts sont courts, les systèmes RAID 0 à 5 ne sont pas en mesure de concurrencer les disques durs individuels. Ainsi, un ensemble RAID ne parvient pas à résoudre les problèmes de performances fréquemment rencontrés sur les sites. Parfois même, leur mise en œuvre détériore encore la situation. La mise en œuvre d’un ensemble RAID des niveaux 0 à 5 se justifie pour le stockage de grandes quantités de données, lorsque le nombre d’accès est assez réduit ou lorsque les données sont sujettes à des requêtes de transfert importantes. Pour des données à accès régulier, il est plus efficace d’utiliser des disques durs isolés et sécurisés par l’emploi de la technique du mirroring. Pour l’accès très fréquent aux données, c’est à un disque virtuel (en mémoire RAM) qu’il convient de faire appel. Lorsque le nombre d’accès en écriture n’est pas trop élevé, ces disques virtuels peuvent être sécurisés par l’utilisation d’un disque-miroir standard.

Dans tous les cas, le branchement d’une armoire RAID à un onduleur (pour plus de détail à ce sujet : cf. le chapitre onduleur ) est très conseillée afin d’assurer la disponibilité des données en permanence.

Telecharger PDF