Raid

Qu'est ce qu'un Raid ?

Le RAID est un acronyme de "Redundant Array of Independent (ou Inexpensive) Disks". C'est une combinaison de plusieurs disques durs indépendants afin de constituer un seul support de stockage. Les disques sont appelés membres du Raid et peuvent être combinés de différentes manières (ou différents niveaux). L'objectif de cette combinaison est d'offrir à l'utilisateur une ou plusieurs caractéristiques suivantes, par rapport à un disque unique :
  •  Augmentation de capacité : volume d'espace utile de stockage.
  •  Augmentation de sécurité : tolérance à la panne.
  •  Augmentation de performance : vitesse de lecture et d'écriture.
L'exemple sur l'image à droite montre un Raid 1+0 (ou Raid 10). Le volume unique (Raid 10) est constitué de deux membres complexe en Raid 0 (Striping). Chaque membre du Raid 0 est constitué de deux disques simples montés en Raid 1. Les caractéristiques du nouveau volume unique sont :
  • La capacité du nouveau volume est le double de chaque disque de base.
  • Deux disques (de branches différentes) peuvent être en panne en même temps.
  • La vitesse de lecture est x4 et d'écriture est x2.
Raid 0+1

Critiques du système Raid 

Malgré tous les avantages du système Raid, le système Raid présente quelque handicaps structurels. En voici quelques uns :
  •  Le verrouillage du niveau du Raid : il est quasiment impossible de changer le niveau du raid pendant son fonctionnement. Pour ce faire, il faut sauvegarder les données sur un autre support de stockage, reconfigurer le Raid pour un autre niveau et ensuite y transférer les données. Ce processus est long et demande l'intervention d'un expert. 
  • Le manque d'extensibilité : lorsque la grappe Raid est configurée, la grappe ne peut pas être extensible, à moins d'avoir beaucoup de temps et d'expérience. Pour avoir un espace de stockage supplémentaire, la seul solution serait de créer une nouvelle grappe de Raid et de gérer plusieurs Raids simultanément.
  • Le risque suite à une panne de disque : dans une grappe de Raid, lorsqu'un disque tombe en panne, le Raid entre en état critique où la perte définitive de données devient imminent si une autre panne de disque se produit avant une intervention humaine pour changer le disque défectueux. De plus, la performance du Raid peut baisser pendant cet état de panique.   

Raid matériel

Le Raid matériel est géré par des ressources matérielles indépendantes des ressources de la machine qui l'exploite. Comme par exemple, une carte Raid ou bien un boîtier complètement indépendants de l'ordinateur. Ce type de contrôleur peut être équipé par leur propre processeur, ROM, batterie et mémoire vive. Ce type de Raid supporte généralement le changement de disque à chaud (pendant le fonctionnement du Raid). Ce Raid a les avantages de ne pas utiliser les ressources de l'ordinateur hôte. Il permet la création de partition de démarrage, traite mieux les erreurs et peut supporter le changement à chaud de disque HS. Cette particularité s'avère très importante lorsque les données doivent être accessibles sans interruption.

Raid logiciel

Le Raid logiciel est la solution Raid la moins coûteuse. Actuellement, tous les systèmes d'exploitations possèdent une capacité intégrée pour la création d'un Raid. Le Raid ainsi créé est complètement lié au système d'exploitation hôte. Ce Raid utilise les ressources matérielles de l'ordinateur hôte (processeur et mémoire vive), dont la performance peut se dégrader rapidement lors du calcul de la parité pour un Raid 5 par exemple. 

Le Raid logiciel est très limité pour la création de partition de démarrage du système où seul le Raid 1 le permet. La grande majorité des Raids logiciels ne permet pas un changement de disque à chaud et ne peut pas répondre à l'exigence d'une accessibilité continue. 

Raid hybride

Le Raid hybride combine des fonctions logicielles et matérielles du système de fichiers et du contrôleur Raid afin de mieux utiliser les capacités du matériel. Ce système hybride prend en considération les différences entre les disques durs constituants le Raid. Cette amélioration a été obtenue grâce à la mise en place d'algorithmes complexes pour le stockage de données. On y trouve ainsi des systèmes de fichiers spécifiques au matériel, comme BTRFS et ZFS dans les NAS NETGEAR. Lorsque le contrôleur Raid n'est pas intégré au système de fichiers, il peut surveiller la structure du système de fichiers et ajuster le comportement du Raid afin de fournir une meilleure vitesse et sécurité de données. Cette approche est utilisée dans le Drobo avec le "ByondRAID" 

Paramètres du Raid

Block size (stripe size, chunk size)

Ce sont des différents termes pour signifier exactement le même terme "La taille du bloc". Cette notion est utilisée notamment dans les Raids distribués (tous les Raids sauf le Raid 1). Les données sont écrites et distribuées sur les différents disques durs par quantités appelés "blocs". Ce bloc a une certaine taille pouvant aller de 1 secteur physique (512 octets) à 8192 secteur  (4096 KO).
Cette une information est très importante et nécessaire à la reconstruction du Raid en cas de panne. Ce paramètre influe sur le temps d'accès moyen aux données et par conséquent sur la performance du Raid plus généralement.

Parité "P"

Certaines configurations (niveau) de Raid utilisent la "Parité". C'est une information calculée et déduite des données utiles afin de les protéger contre les erreurs. Souvent la fonction "XOR" est utilisée pour calculer cette information.
Le bit résultant de C= A XOR B est 1 si A et B sont différents, et il est 0 s'ils sont identiques. Il est aisé de déduire un bit quelconque en connaissant les autres bits, car :  A=B XOR C et B=A XOR C.

Rotation

La notion de la rotation concerne le positionnement du bloc de la parité. Il y a deux types de rotations : gauche et droite.  
Dans la rotation à gauche, le bloc de parité se déplace de droite vers la gauche et vise-versa

Décalage de la parité

Certains contrôleurs (comme HP) Raid utilisent un schéma non conventionnel pour la distribution de données (striping) entres les disques membres du Raid, nommé "Parité décalée ou retardée". Au lieu de distribuer la parité par bloc unique, elle sera distribuée par plusieurs bloc en même temps. Voir l'image ci-dessous pour un Raid 5 asynchrone avec parité décalée d'une valeur de 3.

Premier décalage de la parité

Dans certains cas, la taille du premier bloc décalé de la parité est différente de celle des blocs décalés réguliers. La notion du "premier décalage" est alors introduite. Ce premier décalage peut inclure des métadonnées concernant le contrôleur Raid comme dans l'image ci -dessous. Dans cet exemple, la première parité est de 4 y compris les métadonnées du contrôleur Raid.

Synchronisation

La synchronisation concerne la distribution des blocs de données. Il y a deux types de distributions : synchrone et asynchrone. 
Dans le Raid asynchrone, l'ordre des blocs de données suit la règle : l'écriture d'un nouveau bloc de données est effectué sur le disque disponible selon la rotation définie. Alors que dans le Raid synchrone, le premier bloc de données (d'un cycle d'écriture)  doit être écrit directement après le bloc de parité.

Récupération de données de Raid, paramètres du Raid

La récupération de données du Raid implique la connaissance avec certitude tous les paramètres du Raid. Pour une récupération réussie de serveur Raid, il faut pouvoir identifier les 7 paramètres du Raid complexe conventionnel (sans parler du "Beyond Raid", comme le Drobo). Ces paramètres sont :
  1. Le premier décalage concernant les métadonnées du contrôleur (dans l'exemple ci-dessus, il est égale à 2).
  2. Le premier décalage concernant la parité. Le nombre de blocs de parité du premier groupe décalé (2 dans l'image ci-dessus).
  3. La taille de base du bloc de données (block size, stripe size ou chunk size). S'agissant de parité décalé, on ne peut pas considérer que la taille du bloc est "décalage x taille de bloc". Elle doit être exprimée toujours par la taille du bloc de base.
  4. Lé décalage régulier des blocs de parité, étant le nombre de blocs dans un groupe décalé de blocs de parité.
  5. Position de la parité dans le premier bloc.
  6. La rotation des blocs : à droite ou à gauche.
  7. Type de positionnement des blocs de données (Raid synchrone ou Raid asynchrone)
La déduction de ces paramètres est un gage de la réussite pour récupérer un serveur Raid, quelque soit sa complexité, pourvu que le nombre minimal des disques nécessaire est assuré. Il existe des techniques et des outils très puissants afin de déterminer ces paramètres avant de se lancer dans une aventure hasardeuse pour récupérer un Raid.  

Notre laboratoire est spécialisé en récupération de données Raid à Paris.
Share by: