Technologie RAID

Posted Posted by Patrice Guay in Web hosting     Comments 4 comments
avril
2

disque durRAID (acronyme de l’expression anglaise Redundant Array of Independent Disks) est une technologie qui permet d’obtenir une grande fiabilité de stockage et une haute performance à partir d’un ensemble de disques durs organisés en grappe. Un RAID est une configuration qui comprend plusieurs disques physiques organisés en une seule unité de stockage logique selon une architecture suivant l’une des normes (RAID 0, RAID 1, RAID 5, etc). Bien que l’unité de stockage RAID répartisse les données sur plusieurs disques, celle-ci est considérée comme un seul disque par le système d’exploitation du serveur.

Les différentes architectures RAID sont conçues pour répondre à au moins un de ces deux objectifs :

  • améliorer la fiabilité des données
  • augmenter la performance en entrée/sortie (I/O)

Théorie

Concepts

Un ensemble RAID est composé de deux disques durs physiques ou plus, combinés en une seule unité de stockage logique. Un RAID apporte des fonctionnalités supplémentaires par rapport à une configuration JBOD (Just a Bunch Of Disks). On retrouve trois grands concepts :

  • Mise en miroir (mirroring)
  • Volumes agrégés par bandes (striping)
  • Correction d’erreurs

La mise en miroir consiste en l’écriture de données identiques sur plus d’un disque. L’exemple de base de mise en miroir est une matrice RAID 1 formée de deux disques. Les deux disques ont le même contenu en tout temps. Si le premier disque tombe en panne, les opérations de lecture et d’écriture peuvent être effectuées directement sur le second disque. Les opérations de lecture sur les matrices en miroir sont plus rapides que sur un seul disque, car le système peut récupérer les données sur plusieurs disques en même temps. Toutefois, les opérations d’écriture sont plus lentes car les données doivent être écrites sur tous les disques au lieu d’un seul. La reconstruction d’un miroir défectueux est assez simple: les données doivent être copiées à partir du disque sain sur le nouveau. Pendant la reconstruction, le gain de performance en lecture est réduit puisque seul le disque sain est utilisable.

Les volumes agrégés par bandes répartissent les données sur plusieurs disques. Par exemple, le RAID 0 constitué de deux disques sépare les données sur les deux disques. Cette technique ne fournit aucune tolérance en cas de panne, seulement un gain de performance. Les opérations de lecture et d’écriture sont plus rapides car les deux opérations sont réparties entre tous les disques disponibles.

La correction d’erreurs nécessite l’enregistrement des données de parité afin de permettre la détection et éventuellement la correction des problèmes. Le RAID 5 est un bon exemple du mécanisme de correction d’erreurs. Par exemple, une matrice RAID 5 composée de trois disques distribue les données sur les deux premiers disques et enregistre la parité sur le troisième pour assurer la tolérance aux pannes. Le mécanisme de correction d’erreurs ralentit les performances, en particulier au niveau des opérations d’écriture puisque tant les données que les informations de parité doivent être enregistrées. En outre, la reconstruction d’une matrice défectueuse à partir de l’information de parité implique une dégradation accrue des performances parce que les données doivent être récupérées à partir de tous les disques de l’unité RAID afin de reconstruire l’information sur le nouveau disque.

La conception de tout système RAID est un compromis entre la protection des données et la performance. La compréhension de vos besoins en matière de stockage est primordiale afin de sélectionner la configuration RAID appropriée.

RAID matériel vs logiciel

Il existe deux types de gestionnaires de RAID :

  • matériel
  • logiciel

Les solutions matérielles sont des composants spécialisés connectés à la carte mère du serveur. La plupart du temps, ces composants fournissent une interface de configuration post-BIOS qui peut être exécutée avant le démarrage de votre système d’exploitation. Chaque RAID configuré se présentera au système d’exploitation comme une simple unité de stockage. Le RAID peut être partitionné en plusieurs volumes au niveau du système d’exploitation.

D’autre part, les solutions logicielles sont disponibles au niveau du système d’exploitation et créent directement des volumes RAID a partir de partitions ou de disques physiques entiers. Chaque volume RAID est considéré comme un espace de stockage standard par les applications en cours d’exécution dans le système d’exploitation. Les deux méthodes ont leurs avantages et leurs inconvénients.

Selon le fabricant, un contrôleur RAID matériel supportant jusqu’à 8 disques est généralement vendu entre 400$ et 1200$, tandis qu’une solution logicielle RAID est habituellement incorporée gratuitement avec le système d’exploitation de votre serveur. Sous Linux, le sous-système RAID md est capable de supporter la plupart des configurations RAID. Sous Microsoft Windows, le RAID logiciel est fourni grâce à l’utilisation de disques dynamiques dans la console de gestion des disques.

La puissance de traitement nécessaire pour les RAID 0, RAID 1 et RAID 10 est relativement faible. Les RAID basés sur la parité comme RAID 5, RAID 6, RAID 50 et RAID 60 nécessitent un traitement des données plus complexe durant les opérations d’écriture ou de contrôle d’intégrité. Toutefois, ce délai de traitement est minimal sur les processeurs modernes puisque l’augmentation de leur vitesse a été constamment supérieure à l’augmentation de la vitesse de débit des disques durs. Ainsi, le pourcentage de temps nécessaire au processeur pour saturer le débit d’une unité RAID a diminué et continuera probablement à le faire à l’avenir.

Un point important à considérer avec le RAID logiciel est la manière dont le système d’exploitation traite le processus de démarrage. Comme l’information du RAID est conservée au niveau du système d’exploitation, le démarrage d’un RAID défectueux est problématique. Au démarrage, le système d’exploitation n’est pas disponible pour coordonner le basculement vers un autre lecteur si le disque de démarrage habituel échoue. Ces systèmes peuvent nécessiter une intervention manuelle pour leur permettre de redémarrer après un échec. Un contrôleur RAID matériel est initialisé avant que le processus de démarrage ne commence à chercher ses données sur les disques durs. Par conséquent, le contrôleur RAID matériel améliorera la fiabilité de votre serveur par rapport au RAID logiciel.

Un contrôleur RAID matériel peut également permettre le remplacement à chaud (hot swap) des disques durs. Avec une telle fonctionnalité, les disques durs peuvent être changés dans un serveur sans avoir à l’éteindre l’appareil ni à ouvrir son boitier. Retirer un disque dur défectueux et le remplacer par un nouveau est une tâche simple avec un contrôleur RAID matériel qui supporte les disques remplaçables à chaud. Sans cette fonctionnalité, le serveur doit être mis hors tension avant de remplacer le disque défectueux. Cela occasionnera un temps d’arrêt, à moins que votre solution web soit correctement configurée en cluster.

Enfin, seul les contrôleurs RAID matériels peuvent contenir une pile de sauvegarde (BBU – Battery Backup Unit) pour préserver la mémoire cache du contrôleur si le serveur est arrêté brusquement. Sans une telle protection, la fonction de mémoire cache pour les opérations d’écriture différées (cache write-back) doit être désactivée sur le contrôleur RAID afin de prévenir la corruption des données. La désactivation de cette cache occasionne une baisse de performance au niveau des opérations d’écriture sur l’unité de stockage RAID. L’utilisation d’une batterie de secours sur votre contrôleur RAID est une solution de sécurité permettant également l’activation de la mémoire cache pour améliorer les performances en écriture.

Le RAID n’est pas une solution de sauvegarde

La plupart des normes RAID assurent une protection en cas de défaillance d’un disque. Bien qu’une telle protection est importante afin de vous protéger contre la perte de données suite à une défaillance matérielle, elle ne fournit pas un historique des données. Un RAID ne permet pas de récupérer un fichier effacé ou endommagé en raison d’un bogue dans votre application. Une solution de sauvegarde vous permettra de remonter dans le temps pour récupérer des fichiers effacés ou endommagés.

Mise en place

Note: les images ont été adaptées de celles disponibles sur Wikipédia.

RAID 0

Configuration RAID 0RAID 0 est l’implémentation pure et simple de volumes agrégés par bandes (stripping). Un minimum de deux disques est nécessaire. Aucune information de parité n’est stockée pour la redondance. Il est important de noter que RAID 0 n’est pas un des niveaux de RAID originaux et ne fournit aucune redondance des données. RAID 0 est normalement utilisé pour augmenter les performances et n’est utile que pour les configurations où la redondance n’est pas pertinente.

Une unité de stockage RAID 0 peut être créée avec des disques de tailles différentes, mais l’espace de stockage total disponible sera limité à la taille du plus petit des disque. Par exemple, si un disque de 450 Go est jumelé avec un disque de 300 Go, la taille utilisable sera 2 x min(450 Go, 300 Go) = 600Go.

Pour les opérations de lecture et d’écriture portant sur des blocs de données de petite taille tels que les accès aux bases de données, les données seront récupérées indépendamment sur chaque disque. Si les secteurs des données accédées sont répartis uniformément entre les deux disques, le temps d’accès (seek time) sera la moitié de celui d’un seul disque. La vitesse de transfert du RAID sera la vitesse de transfert de tous les disques additionnées, limitée uniquement par la vitesse du contrôleur RAID. Pour les opérations de lecture et d’écriture portant sur des blocs de données importantes telles que la copie de fichiers ou la lecture d’un vidéo, les données seront très probablement accédées depuis un seul disque, réduisant par conséquent le gain de performance d’un RAID 0.

RAID 1

Configuration RAID 1RAID 1 est l’application pure et simple de la mise en miroir (mirroring). Un minimum de deux disques est nécessaire pour le RAID 1. Ceci est utile lorsque les performances de lecture ou la fiabilité sont plus importantes que la capacité de stockage de données. Une paire classique en miroir RAID 1 contient deux disques (voir schéma), ce qui augmente la fiabilité comparativement à un seul disque. Étant donné que chaque membre contient une copie complète des données et peut être traité indépendamment, la fiabilité est élevée.

Une unité de stockage RAID 1 peut être créée avec des disques de tailles différentes, mais l’espace de stockage total disponible sera égal à la taille du plus petit des disques. Par exemple, si un disque de 450 Go est jumelé avec un disque de 300 Go, la taille utilisable du RAID sera min(450 Go, 300 Go) = 300Go.

Les performances en lecture d’un RAID 1 peuvent être évaluées comme un multiple du nombre de copies. Autrement dit, avec un RAID 1 de deux disques on peut interroger deux endroits différents en même temps. Les performances de lecture devraient donc être deux fois plus élevées que le rendement d’un seul disque. RAID 1 est un bon point de départ pour des applications comme le courriel et les serveurs web ainsi que pour toute autre utilisation nécessitant des performances en lecture I/O supérieures à la moyenne et une protection face aux défaillances matérielles.

RAID 5

Configuration RAID 5RAID 5 utilise la méthode du volume agrégé par bandes avec la distribution de blocs de parité sur tous les disques membres. Le disque utilisé pour le bloc de parité est décalée d’une bande à l’autre, d’où le terme blocs de parité distribuée. Un minimum de trois disques est nécessaire pour le RAID 5. Cette configuration RAID est principalement utilisée pour optimiser l’espace disque tout en offrant la protection de vos données en cas de défaillance d’un disque.

Étant donné le schéma du RAID 5, où chaque colonne est un disque, nous supposons que A1 = 00000101 et A2 = 00000011. Le bloc de parité Ap est généré par l’application de l’opérateur XOR sur A1 et A2: Ap = A1 XOR A2 = 00000110

Si le premier disque tombe en panne, A1 ne sera plus accessible, mais peut être reconstruit:
A1 = A2 XOR Ap = 00000101

Une unité de stockage RAID 5 peut être créée avec des disques de tailles différentes, mais l’espace de stockage total disponible sera limité par la taille du plus petit disque. Les données de parité nécessitent un disque complet, laissant N-1 disques d’espace de stockage utilisable dans une grappe composé de N disques. Par exemple, sur un ensemble formé de trois disques de 450 Go et d’un disque de 300 Go, la taille utilisable de la matrice sera (4-1) x min(450 Go, 300 Go) = 900 Go.

Le RAID 5 occasionne une pénalité en écriture dû aux nombre d’opérations sur les disques et au trafic plus élevé entre les disques et le contrôleur RAID. En effet, en plus des données, les informations de parité doivent également être inscrites sur les disques. Afin d’éviter une diminution des performances, les blocs de parité ne sont pas vérifiés lors de la lecture de données . Cependant, les blocs de parité sont vérifiés quand un secteur défectueux est détecté dans les blocs de données nécessaires. De même, si un disque vient à défaillir, les blocs de parité et les blocs de données provenant des disques restants sont combinés mathématiquement de façon à reconstruire en temps réel les données du disque défectueux. Cette situation conduit à une grave dégradation des performances en lecture et en écriture.

RAID 6

Configuration RAID 6RAID 6 est l’extension du RAID 5 auquel on ajoute un bloc de parité supplémentaire. Aux blocs des volumes agrégés par bandes on associe deux blocs de parité distribués sur l’ensemble des disques membres. Un minimum de quatre disques est requis pour les disques RAID 6. Cette configuration RAID est principalement utilisé pour optimiser l’espace disque tout en offrant une protection pouvant aller jusqu’à deux défaillances de disque.

Les deux blocs de parité Ap et Aq sont générés à partir des blocs de données A1, A2 et A3. Ap est généré par l’application de l’opérateur XOR sur A1, A2 et A3. Aq est généré en utilisant une variante plus complexe de la formule de Ap. Si le premier disque tombe en panne, A1 ne sera plus accessible, mais il peut être reconstruit à partir de A2 et A3 ainsi que le bloc de parité Ap. Si le premier et le deuxième disque échouent, A1 et A2 ne seront plus accessibles, mais peuvent être reconstruits en utilisant à la fois A3 plus les blocs de parité Ap et Aq. Le calcul de Aq est coûteux en temps CPU, contrairement à la simplicité de Ap. Ainsi, la mise en œuvre d’un RAID 6 logiciel peut avoir un effet significatif sur les performances système, en particulier lors de la reconstruction d’un disque défectueux.

Une unité de stockage RAID 6 peut être créée avec des disques de tailles différentes, mais l’espace de stockage total disponible sera limité par la taille du plus petit des disques. Les données de parité nécessitent deux disques complets, laissant N-2 disques d’espace de stockage utilisable dans une grappe composée de N disques. Par exemple, sur un ensemble formé de quatre disques de 450 Go et d’un disque de 300 Go, la taille utilisable sera (5-2) x min(450 Go, 300 Go) = 900 Go.

En terme d’utilisation du disque et de trafic entre les disques et le contrôleur RAID, l’écriture de données sous la norme RAID 6 est plus intensive encore que sous la norme RAID 5 puisque deux blocs de parité doivent être calculés et écrits pour chaque bloc de données. Afin d’éviter une diminution des performances, les blocs de parité ne sont pas vérifiés lors de la lecture des données. Cependant, les blocs de parité seront lus quand un secteur de disque défectueux est présent dans les blocs de données utilisés. De même, si un disque vient à défaillir, les blocs de parité et les blocs de données des disques qui ont survécu seront combinés mathématiquement afin de reconstruire les données du disque défectueux en temps réel. Cette situation conduit également à une grave dégradation des performances en lecture et en écriture.

RAID 10

Configuration RAID 10RAID 10 est une combinaison du RAID 1 (mise en miroir) et du RAID 0 (volumes agrégés par bandes) où 4N disques en miroir sont agrégés par bandes. Un minimum de quatre disques est nécessaire pour le RAID 10. Un disque dans chaque miroir RAID 1 peut échouer sans endommager les données contenues dans l’ensemble de la grappe.

Une unité de stockage RAID 10 peut être créée avec des disques de tailles différentes, mais l’espace de stockage total disponible est limité par la taille du plus petit des disques. La mise en miroir consomme la moitié de l’espace disque, laissant 2N disques d’espace de stockage utilisable dans une grappe composée de 4N disques. Par exemple, sur un RAID formé de sept disques 450 Go et un disque de 300 Go, la taille utilisable sera (7+1) / 2 x min(450 Go, 300 Go) = 1200GB.

Le RAID 10 fournit de meilleures performances que tous les autres niveaux de RAID redondants. C’est le niveau de RAID recommandé pour les applications intensives en I/O telles que les serveurs de bases de données ainsi que pour toute autre utilisation nécessitant une grande performance au niveau des disques.

RAID 50

Configuration RAID 50Le RAID 50 est une combinaison de RAID 5 (volumes agrégés par bandes et correction d’erreur) et de RAID 0 (volumes agrégés par bandes) où les sous-ensembles RAID 5 sont agrégés par bandes. Un minimum de six disques est nécessaire pour le RAID 50. Un disque de chaque sous-ensemble RAID 5 peut échouer sans endommager les données contenues dans l’ensemble de la grappe.

Une unité de stockage RAID 50 peut être créée avec des disques de tailles différentes, mais l’espace de stockage total disponible est limité par la taille du plus petit des disques. Les données de parité nécessitent un disque complet dans chaque sous-ensemble RAID 5, laissant N-2 disques d’espace de stockage utilisable dans un ensemble composé de N disques. Par exemple, pour une grappe formée de sept disques de 450 Go et d’un disque de 300 Go, la taille utilisable de la matrice sera (8-2) x min(450 Go, 300 Go) = 1800GB.

RAID 50 fournit de meilleures performances que RAID 5 mais requiert plus de disques. Le gain de performance est particulièrement observé pour les opérations d’écriture. Ce niveau est recommandé pour les applications qui nécessitent une haute tolérance aux pannes ainsi qu’une grande capacité.

Disques de rechange « à chaud »

Les RAID matériels et logiciels redondants peuvent prendre en charge l’utilisation de disques de rechange à chaud. Ces disques sont installées physiquement dans la grappe et sont inactifs jusqu’à ce qu’un disque actif tombe en panne. Le contrôleur RAID remplace automatiquement le disque qui a échoué avec le disque de rechange et commence le processus de reconstruction. Cela réduit la vulnérabilité de l’ensemble en fournissant un disque sain dès qu’un disque problématique est identifié.

Par exemple, un RAID 5 avec un seul disque de rechange à chaud utilise le même nombre de disques qu’un RAID 6, tout en assurant un niveau de protection similaire. L’utilisation de disques de rechange à chaud est particulièrement important pour un RAID formé de plusieurs disques. Par exemple, un RAID 10 formé de 12 disques présente un taux plus élevé de risque de défaillance qu’un RAID 10 formé de 4 disques. Prévoir un ou deux disques de rechange à chaud pour votre RAID de haute capacité apporte une protection supplémentaire en cas de panne de disque.

Conclusion

L’utilisation de la technologie RAID permet un plus haut niveau de fiabilité et de performance pour votre système de stockage de données. Alors que la norme RAID 1 est un bon point de départ pour des applications comme le courriel et les serveurs web, la norme RAID 10 est recommandée pour les applications de base de données. Les normes RAID 5 ou RAID 50 peuvent être utilisées pour les appareils de sauvegarde où la tolérance aux pannes doit être élevée tout en maintenant une grande capacité de stockage.

Références

4 Comments to “Technologie RAID”

  • This post was mentioned on Twitter by Patrice Guay. Patrice Guay said: A review of RAID technology: http://www.patriceguay.com/webhosting/raid

  • […] This article was written by Patrice Guay. It was originately published on his blog at the address: http://www.patriceguay.com/webhosting/raid and reprinted with permission. Patrice is a sales engineer at iWeb Technologies. […]

  • RAID an acronym for Redundant Array of Independent Disks formerly Redundant Array of Inexpensive Disks is a technology that provides increased storage functions and reliability through combining multiple disk drives components into a logical unit where all drives in the array are interdependent. Marketers representing industry RAID manufacturers later attempted to reinvent the term to describe a redundant array of independent disks as a means of dissociating a low-cost expectation from RAID technology.

  • Votre article est très bien fait. J’ai gagné pas mal de temps grâce à vous.

    Merci

Post comment

Advertisements