Sécurisation du stockage de données : Raid
Publication : 1 décembre, 2011
Fonctionnement
La technologie RAID regroupe plusieurs techniques de stockage des données, toutes basées sur la répartition des données sur plusieurs disques durs. Ces différentes techniques sont appelées niveaux RAID. Les niveaux RAID standards sont les suivants :
- RAID 0 : entrelacement de disques ou volume agrégé par bandes (block-level striping)
- RAID 1 : disques en miroir (mirroring/shadowing/duplexing)
- RAID 2 : volume agrégé par bits avec parité (bit-level striping with dedicated parity), devenu obsolète
- RAID 3 : volume agrégé par octets avec parité (byte-level striping with dedicated parity)
- RAID 4 : volume agrégé par blocs avec parité (block-level striping with dedicated parity)
- RAID 5 : volume agrégé par blocs avec parité répartie (block-level striping with distributed parity)
- RAID 6 : évolution du RAID 5
On entend par parité la présence d'un système de contrôle d'erreurs utilisant le calcul de parité. Ce système consiste à ajouter des bits de parité aux bits de données et permet de retrouver des données perdues à partir d'une méthode de calcul simple effectuée entre les bits de données restants et les bits de parité. Si les bits de parité sont perdus, ils peuvent également être recalculés à partir des bits de données.
RAID 0
La configuration RAID 0 consiste à répartir alternativement les données sur plusieurs disques durs formant une grappe. La lecture et l'écriture des données sont ainsi plus rapides, car tous les disques de la grappe travaillent en parallèle.
Les données sont réparties par bandes de taille fixe. Cette agrégation par bande s'arrête lorsque le disque dur de plus faible capacité est plein. Il est donc préférable d'utiliser des disques durs de même capacité afin de ne pas gaspiller de l'espace disque sur les disques de plus grande capacité. On en conclut aussi que la capacité totale de données pouvant être stockées dans cette configuration correspond à la capacité du plus petit disque dur de la grappe multipliée par le nombre de disques durs composant la grappe.

La configuration RAID 0 améliore la vitesse de transfert mais n'offre aucune redondance des données. Si l'un des disques de la grappe devient défectueux, la totalité des données du RAID est perdue.
RAID 1
Sur une configuration RAID 1, l'écriture des données se fait simultanément sur tous les disques de la grappe qui possèdent donc exactement les mêmes données, d'où l'expression 'disques en miroir'. Ainsi, en cas de défaillance d'un des disques durs, les données restent accessibles. Une fois le disque défaillant remplacé, le miroir peut être reconstitué à partir des disques encore fonctionnels. La lecture des données se fait sur le disque le plus accessible. Là encore, il est préférable d'utiliser des disques durs de même capacité.
L'inconvénient de cette configuration est que le coût de stockage augmente proportionnellement au nombre de disques miroirs utilisés alors que la capacité de données stockées ne change pas et correspond à la capacité du plus petit disque dur de la grappe. Elle privilégie donc la sécurité au volume total de données pouvant être stocké.

RAID 2 (obsolète)
Cette configuration fonctionne selon le même principe que le RAID 0, mais utilise un disque dur supplémentaire pour écrire un code de contrôle d'erreur (code de Hamming). Elle est devenue obsolète car ce code est maintenant intégré dans les contrôleurs des disques durs. Elle offre un bon niveau de sécurité mais des performances limitées.

RAID 3
La configuration RAID 3 consiste à distribuer les données sur les disques durs sous forme d'octets et dédie un disque dur au stockage des bits de parité. Cette configuration permet de reconstituer les données perdues en cas de panne d'un des disques. Par contre, si plus d'un disque tombe en panne, l'ensemble des données de la grappe est perdue. Le disque de parité doit en outre disposer d'un temps d'accès réduit car il est souvent sollicité.

RAID 4
La configuration RAID 4 est très similaire au RAID 3, mais les données sont distribuées par blocs (paquets de 512 octets le plus souvent). Pour cette raison, le RAID 4 nécessite moins de synchronisme entre les disques durs et offre de meilleures performances. Cependant, le temps d'accès au disque de parité doit être encore plus réduit que pour le RAID 3 (au moins égal à la somme des temps d'accès aux autres disques durs).

RAID 5
La configuration RAID 5 diffère du RAID 4 par l'utilisation d'une parité répartie. Au lieu de dédier un seul disque dur au stockage des bits de parité, chaque disque dur de la grappe contient des blocs de données et un bloc de parité créé à l'écriture des données associées. Cela permet de reconstituer plus rapidement des données perdues et de maintenir la grappe en état de fonctionnement.
Les performances en lecture sont similaires à celles d'un RAID 0 avec une sécurité accrue. Par ailleurs, le volume total de données pouvant être stocké est égale à la capacité du plus petit disque dur de la grappe multipliée par le nombre de disques durs composant la grappe moins un disque, ce qui est correct compte tenu du gain en sécurité. Par contre, il faut considérer la perte de performances en écriture dûe au calcul systématique de la parité.

RAID 6
Le RAID 6 est similaire au RAID 5 mais utilise des blocs de parité redondants pour augmenter la sécurité. La redondance de la parité implique l'utilisation d'un plus grand nombre de disques durs, ce qui entraîne un surcoût matériel par rapport au RAID 5. De plus, les calculs effectués pour reconstituer des données perdues sont plus complexes du fait de la redondance, et nécessitent la mise en place d'un contrôleur RAID plus puissant. Pour cette même raison, les performances en écriture sont diminuées. L'avantage majeur de cette configuration est qu'elle tolère une défaillance de plusieurs disques, dont le nombre est proportionnel au niveau de redondance des blocs de parité.

Disques durs supplémentaires
Sur une configuration RAID, un ou plusieurs disques de rechange (spare/hotspare disks) peuvent être utilisés pour prendre automatiquement le relais en cas de défaillance d'un disque. Le contenu du disque défaillant est reconstruit sur le disque de rechange à partir des données des autres disques, grâce au calcul de la parité. Cela permet de limiter le temps pendant lequel les données sont indisponibles.
Autre configuration : le NRAID (ou JBOD)
Le NRAID (Near/Non Redundant Array of Inexpensive/Independent Disks), aussi appelé JBOD (Just a Bunch of Disks), est une méthode de stockage utilisant la concaténation de disques. Elle consiste à regrouper plusieurs disques sous forme de grappe pour former un seul volume logique d'une capacité égale à la somme des capacités des disques durs composant la grappe. Les données sont écrites sur chaque disque de manière séquentielle, et se poursuit sur le disque dur suivant quand le disque actuellement utilisé est plein. Le seul gain apporté par cette configuration est d'améliorer la capacité de stockage.
Combinaison de plusieurs niveaux RAID
Un système de stockage RAID peut combiner plusieurs niveaux RAID. En pratique pas plus de deux niveaux RAID sont utilisés. On parle alors de RAID 0+1, ou RAID 50 (RAID 5+0). Le premier chiffre indique le niveau RAID utilisé sur chaque grappe de disques durs et le deuxième celui utilisé pour la totalité des grappes. Les RAID 10 et 50 sont détaillés ici.
Le RAID 10 pallie le défaut du RAID 0 en ajoutant une redondance des données. En effet, chaque disque dur du RAID 0 est remplacé par une grappe de disques en RAID 1, constitué du disque de départ et d'autres disques contenant exactement les mêmes données (disques en miroir). Ce système est fiable car il faut que tous les disques d'une grappe deviennent défectueux pour que les données soient compromises. La fiabilité d'un RAID 10 augmente avec le nombre de disques miroirs utilisés.

Le RAID 50 est utilisé lorsque l'on désire obtenir un bon équilibre entre sécurité et performances. Une configuration RAID 5 est mise en place pour chaque grappe de disques durs, qui forment ensemble une grappe en RAID 0. Ce système permet d'améliorer les performances du RAID 5, qui dispose d'une meilleure sécurité que le RAID 0 mais de moins bonnes performances en écriture. Les performances sont ainsi améliorées sans déprécier la sécurité.

Chez Iguane Solutions
Iguane Solutions utilise une configuration RAID 1 pour stocker les données nécessitant un peu de sécurité, comme les données système. Pour le stockage de masse et les sauvegardes, un haut niveau de sécurité est nécessaire : un RAID 5 ou un RAID 50 est utilisé. Pour les données non persistantes et nécessitant des performances élevées, comme le cache proxy, un RAID 0 est utilisé. Enfin, un RAID 10 est mis en place pour les données nécessitant des entrées/sorties et de la sécurité, comme c'est le cas pour les bases de données.