RAID (informatique)
Le RAID est un ensemble de techniques de virtualisation du stockage permettant de répartir des données sur plusieurs disques durs afin d'améliorer soit les performances, soit la sécurité ou la tolérance aux pannes de l'ensemble du ou des systèmes.
L'acronyme RAID a été défini en 1987 par l'Université de Berkeley (Californie), dans un article nommé A Case for Redundant Arrays of Inexpensive Disks (RAID)[1], soit « regroupement redondant de disques peu onéreux ». Aujourd'hui, le mot est devenu l'acronyme de Redundant Array of Independent Disks, ce qui signifie « regroupement redondant de disques indépendants ». Le coût au mégaoctet des disques durs ayant diminué d'un facteur de 1 300 000 en 29 ans, aujourd'hui le RAID est choisi pour d'autres raisons que le coût de l'espace de stockage[2].
Historique[modifier | modifier le code]
En 1978, un employé d'IBM, Norman Ken Ouchi, déposa un brevet[3] concernant un « Système de récupération de données stockées dans une unité de stockage défectueuse », et dont la description était ce que deviendrait plus tard le RAID 5. Ce brevet fait également mention du mirroring (en) de disque (qui sera appelé plus tard RAID 1), ainsi que de la protection avec une parité dédiée (correspondant à ce qui sera appelé plus tard RAID 3 ou RAID 4).
La technologie RAID a été élaborée par un groupe de chercheurs de l'université de Californie à Berkeley en 1987. Ces derniers étudièrent la possibilité de faire reconnaître deux disques durs ou plus comme une seule entité par le système. Ils obtinrent pour résultat un système de stockage aux performances bien meilleures que celles des systèmes à disque dur unique, mais doté d'une très mauvaise fiabilité. Les chercheurs s'orientèrent alors vers des architectures redondantes, afin d'améliorer la tolérance aux pannes du système de stockage.
En 1988, les différents RAID, de type 1 à 5, furent formellement définis par David Patterson, Garth Gibson et Randy Katz dans la publication intitulée « A Case for Redundant Arrays of Inexpensive Disks (RAID)[4] ». Cet article introduisit le terme « RAID », dont l'industrie du disque s'est immédiatement emparée, proposant cinq niveaux ou modes différents, chacun d'eux ayant ses avantages et ses inconvénients, en les comparant au modèle « SLED » (Single Large Expensive Disk : voir ci-dessous).
Description et concepts[modifier | modifier le code]
Comparaison RAID/SLED[modifier | modifier le code]
Depuis sa création, la particularité principale de l'architecture RAID est sa capacité à combiner plusieurs périphériques de stockage bon marché et de technologie courante dans une matrice unique, de sorte que ce groupement offre une fiabilité et/ou des performances accrues, ce pour un coût largement inférieur à un périphérique de stockage unique de capacité équivalente exploitant des techniques de pointe. L'architecture RAID s'oppose donc à l'architecture SLED (Single Large Expensive Disk), qui est fondée sur l'utilisation d'un seul et même disque dur de grande capacité et de haute performance, donc de prix élevé, car celui-ci doit non seulement pouvoir stocker beaucoup d'informations, mais il doit de plus être d'excellente qualité pour garantir au mieux la pérennité et l'accessibilité de son contenu non redondant.
En effet, dans une architecture de type SLED, la bonne conservation des données est dépendante de la moindre défaillance du disque dur. Lorsqu'une panne survient, non seulement le système est inexploitable le temps du remplacement du matériel défectueux, mais la seule manière de récupérer les données est de procéder à une restauration de la dernière sauvegarde, ce qui peut prendre plusieurs heures durant lesquelles le système est inutilisable.
Si un tel temps d'inactivité est acceptable pour l'ordinateur d'un particulier, il est en revanche rédhibitoire pour le système informatique d'une entreprise, pour laquelle une telle panne peut avoir des conséquences non négligeables. L'utilisation d'une architecture RAID, du moins dans la plupart de ses niveaux fonctionnels, permet justement d'apporter une réponse à ces besoins, car non seulement la défaillance d'un des disques de la grappe n'interrompt pas le fonctionnement de l'ensemble, ce qui permet au système de continuer à fonctionner, mais de surcroît, une fois le disque en panne échangé, son contenu est reconstruit automatiquement à partir des autres disques pendant le fonctionnement normal du système. Ainsi, pendant toute la durée de l'incident, l'activité de l'entreprise peut continuer de façon ininterrompue et transparente.
Le RAID, suivant ses niveaux fonctionnels, s'il donne des temps de réponse identiques à ceux des disques s'ils étaient utilisés individuellement, offre des débits significativement supérieurs, même en utilisant des disques durs bon marché aux performances moyennes, tout en garantissant une bien meilleure fiabilité (sauf pour le RAID 0 qui la réduit d'autant que le nombre de disques – voir explications ci-dessous). Dans de telles situations, les architectures RAID se révèlent donc idéales, tant du point de vue de leurs performances que de leur fiabilité. Dans tous les cas, le RAID reste complètement transparent à l'utilisateur qui, quel que soit le nombre de disques physiques utilisés pour construire le RAID, ne verra jamais qu'un seul grand volume logique, auquel il accédera de façon tout à fait habituelle via le système d'exploitation.
Parité et redondance[modifier | modifier le code]
La mise en miroir s'avère être une solution onéreuse, puisqu'il est nécessaire d'acquérir les périphériques de stockage en plusieurs exemplaires, pour n'avoir à disposition qu'une fraction de leur capacité totale (généralement la moitié). Aussi, partant du principe que plusieurs unités de stockage ont une faible probabilité de tomber en panne simultanément, d'autres systèmes ont été conçus, dont ceux permettant de régénérer les données manquantes à partir des données restant accessibles et de données supplémentaires, dites de redondance.
Le système de redondance le plus simple et le plus largement utilisé est le calcul de parité. Ce système repose sur l'opération logique XOR (OU exclusif) et consiste à déterminer si sur bits de données considérés, le nombre de bits à l'état est pair ou impair. Si le nombre de est pair, alors le bit de parité vaut . Si le nombre de est impair, alors le bit de parité vaut . Lorsque l'un des bits de données ainsi formés devient indisponible, il est alors possible de régénérer le bit manquant en appliquant à nouveau la même méthode sur les éléments restants. Cette technique est utilisée dans les systèmes RAID 5.
Il existe des systèmes de redondance plus complexes et capables de générer plusieurs éléments de redondance afin de supporter l'absence de plusieurs éléments. Le RAID 6 utilise par exemple une technique de calcul de parité fondée sur des polynômes.
Les différents types de systèmes RAID[modifier | modifier le code]
Le système RAID est :
- soit un système de redondance qui donne au stockage des données une certaine tolérance aux pannes matérielles (ex : RAID 1).
- soit un système de répartition qui améliore ses performances (ex : RAID 0).
- soit les deux à la fois, mais avec une moins bonne efficacité (ex : RAID 5).
Le système RAID est donc capable de gérer d'une manière ou d'une autre la répartition et la cohérence de ces données. Ce système de contrôle peut être purement logiciel ou utiliser un matériel dédié.
Le RAID logiciel[modifier | modifier le code]
En RAID logiciel, le contrôle du RAID est intégralement assuré par une couche logicielle du système d'exploitation. Cette couche s'intercale entre la couche d'abstraction matérielle (pilote) et la couche du système de fichiers.
Avantages[modifier | modifier le code]
- C'est la méthode la moins onéreuse puisqu'elle ne demande aucun matériel supplémentaire.
- Cette méthode possède une grande souplesse d'administration (logiciel).
- Cette méthode présente l'avantage de la compatibilité entre toutes les machines équipées du même logiciel de RAID (c’est-à-dire du même système d'exploitation).
Inconvénients[modifier | modifier le code]
- L'inconvénient majeur réside dans le fait que cette méthode repose sur la couche d'abstraction matérielle des périphériques qui composent le volume RAID. Pour diverses raisons, cette couche peut être imparfaite et manquer de certaines fonctions importantes comme la détection et le diagnostic des défauts matériels et/ou la prise en charge du remplacement à chaud (hot-swap) des unités de stockage.
- La gestion logicielle du RAID monopolise des ressources systèmes (légèrement le processeur et surtout le bus système) qui pourraient être employées à d'autres fins. La baisse de performances due à la gestion logicielle du RAID est particulièrement sensible dans des configurations où le système doit transférer plusieurs fois les mêmes données, comme en RAID 1, et assez faible dans des configurations sans redondance, typiquement en RAID 0.
- L'utilisation du RAID logiciel sur le disque système n'est pas toujours possible.
Diverses implémentations[modifier | modifier le code]
La plupart des systèmes d'exploitation grand public permettent déjà de mettre en œuvre le RAID logiciel, qu'il s'agisse de Microsoft Windows, des diverses distributions Linux, ou de Mac OS X.
- Microsoft Windows XP (et supérieur) gère le RAID 0 et 1 logiciel, et peut gérer le RAID 5 moyennant une petite adaptation[5].
- Microsoft Windows 2003 Server gère logiciellement le RAID 0, 1, et 5.
- Mac OS X gère logiciellement le RAID 0, 1, et la concaténation.
- Le noyau Linux (>=2.6) gère logiciellement le RAID 0, 1, 4, 5, 6, et 10, ainsi que les combinaisons de ces modes.
Les RAID logiciels de Microsoft Windows et de Linux sont incompatibles entre eux[6] [réf. nécessaire].
Le RAID pseudo-matériel[modifier | modifier le code]
L'immense majorité des contrôleurs RAID bon marché intégrés à de nombreuses cartes-mères depuis 2004/2005 gèrent le RAID 0 et 1 sur des disques durs IDE ou SATA. Malgré le discours marketing à cette époque qui tendait systématiquement à induire en erreur sur ce point, il ne s'agit pas de RAID matériel à proprement parler, mais plutôt d'un contrôleur de disque doté de quelques fonctions avancées. D'un point de vue strictement matériel, cette solution hybride n'est pas différente d'un RAID logiciel. Elle diffère cependant sur l'emplacement des routines logicielles de gestion du RAID.
Avec les matériels plus récents, la différence entre RAID pseudo-matériel et RAID matériel est purement théorique. La seule différence pratique est que dans le RAID pseudo-matériel, processeur et mémoire ne sont pas dédiés. Cependant, la puissance des processeurs récents et le coût réduit de la mémoire font que cette limitation n'est plus un élément critique. Le seul avantage restant pour les RAID spécialisés est la disposition d'outils de gestion des incidents plus performants.
Avantages[modifier | modifier le code]
- L'intérêt principal de ce type de RAID est d'apporter une solution au troisième problème du RAID logiciel, à savoir qu'il ne peut pas toujours servir à héberger les fichiers du système d'exploitation puisque c'est justement ce dernier qui permet d'y accéder.
- Dans ce type de RAID, la présence d'un BIOS intégrant les routines logicielles basiques de gestion du RAID permet de charger en mémoire les fichiers essentiels du système d'exploitation (le noyau et les pilotes principaux), puis le pilote du contrôleur, lequel intègre les mêmes routines logicielles de gestion du RAID et fournit alors aux couches supérieures de l'OS non pas un accès aux périphériques, mais un accès au volume RAID qu'il émule.
Inconvénients[modifier | modifier le code]
En dehors de cet avantage important, ce type de RAID cumule les défauts des deux autres approches :
- Les limitations de performances sont les mêmes que pour le RAID logiciel, car il s'agit effectivement d'un RAID logiciel camouflé.
- Un problème important posé par ces contrôleurs hybrides est leur piètre gestion des défauts matériels et leurs fonctionnalités BIOS généralement limitées.
- L'interopérabilité est très mauvaise surtout si l'on considère qu'il s'agit généralement de matériel intégré aux cartes-mères des ordinateurs. Pire, le changement de carte-mère, si la nouvelle utilise des jeux de puces différents, voire simplement de version du BIOS, peut imposer de reconstruire le RAID entièrement. Une reconstruction est généralement possible si l'on reste dans des contrôleurs RAID de même marque et de modèles différents, mais il n'existe pas de règle définie de compatibilité.
- La fiabilité annoncée de ces dispositifs est assez controversée[citation nécessaire].
Le RAID matériel[modifier | modifier le code]
Dans le cas du RAID matériel, une carte ou un composant est affecté à la gestion des opérations. Le contrôleur RAID peut être interne à l'unité centrale (carte d'extension) ou déporté dans une baie de stockage.
Un contrôleur raid est en général doté d'un processeur spécifique, de mémoire dédiée, éventuellement d'une batterie de secours, et est capable de gérer tous les aspects du système de stockage RAID grâce au microcode embarqué (firmware).
Du point de vue du système d'exploitation, le contrôleur RAID matériel offre une virtualisation complète du système de stockage. Le système d'exploitation considère chaque volume RAID comme un volume de stockage unique et n'a pas connaissance de ses constituants physiques.
Avantages[modifier | modifier le code]
- Les contrôleurs RAID matériels permettent la détection des défauts, le remplacement à chaud des unités défectueuses et offrent la possibilité de reconstruire de manière transparente les unités défaillantes. (Mais les systèmes d'exploitation évolués permettent également cela si le matériel le permet.)
- La charge système (principalement l'occupation du bus) est allégée (ceci se ressent surtout dans le cas de configurations avec beaucoup de disques et une forte redondance).
- Les opérations de vérification de cohérence, de diagnostic de maintenance sont effectuées en arrière-plan par le contrôleur sans solliciter de ressources système.
Inconvénients[modifier | modifier le code]
- Les contrôleurs RAID matériels utilisent chacun leur propre système pour gérer les unités de stockage. En conséquence, au contraire d'un RAID logiciel, des disques transférés d'un système à un autre ne pourront pas être récupérés si le contrôleur RAID n'est pas exactement le même (firmware compris). Il est donc conseillé de posséder une deuxième carte en cas de panne de la première. Ceci n'est pourtant pas toujours vrai, au moins en raid 1, les disques, redondants en miroir, peuvent être utilisables montés sur des unités séparées et ainsi permettre leur contrôle matériel fin par exemple (ceci est à vérifier pour chaque configuration matérielle).
- Les cartes d'entrée de gamme possèdent des processeurs de puissance bien inférieure à celle des ordinateurs actuels. On peut donc avoir de bien moins bonnes performances pour un prix supérieur à celui d'un RAID logiciel.
- Le coût : l'entrée de gamme se situe aux alentours de 200 € mais les cartes plus performantes peuvent souvent dépasser les 1 000 €.
- Le contrôleur RAID est lui-même un composant matériel, qui peut tomber en panne. Son logiciel (firmware) peut contenir des erreurs, ce qui constitue un autre risque de panne potentielle (single-point-of-failure). (Néanmoins, la garantie fréquemment décennale de ce type de matériel incite les fabricants à porter une attention particulière à l'écriture du firmware, ce qui réduit ce risque en pratique.)
- Les différents fabricants de contrôleurs RAID fournissent des outils de gestion logicielle très différents les uns des autres (et de qualité parfois inégale). À l'opposé, les outils de gestion du RAID logiciel fournis avec un système d'exploitation sont généralement bien intégrés dans ce système.
- La durée du support d'un contrôleur RAID par son constructeur (correction de bugs dans le firmware, par exemple), parfois liée à l'arrivée de nouveaux produits rendant les anciens obsolètes, peut-être moins longue ou plus volatile que le support du RAID logiciel par le fournisseur du système d'exploitation. Le constructeur peut même disparaître (ce qui est plus rare parmi les fabricants de systèmes d'exploitation).
- Une moindre souplesse par rapport au RAID logiciel, qui dispose d'une couche d'abstraction permettant de gérer du RAID au-dessus de tous types de périphériques blocs supportés par le système d'exploitation, locaux ou distants (ATA, SCSI, ATA over Ethernet, iSCSI… et toutes les combinaisons possibles entre eux). Les contrôleurs RAID sont spécialisés pour un seul type de périphérique bloc.
Les différents niveaux de RAID[modifier | modifier le code]
Les niveaux standards[modifier | modifier le code]
Les différents types d'architecture RAID sont numérotés à partir de 0 et peuvent se combiner entre eux (on parlera alors de RAID 0+1, 1+0, etc.).
RAID 0 : volume agrégé par bandes[modifier | modifier le code]
Le RAID 0, également connu sous le nom d'« entrelacement de disques » ou de « volume agrégé par bandes » (striping en anglais), est une configuration RAID permettant d'augmenter significativement les performances de la grappe en faisant travailler disques durs en parallèle (avec ).
- Capacité
- La capacité totale est égale à celle du plus petit élément de la grappe multiplié par le nombre d'éléments présents dans la grappe, car le système d'agrégation par bandes se retrouvera bloqué une fois que le plus petit disque sera rempli (voir schéma). L'espace excédentaire des autres éléments de la grappe restera inutilisé. Il est donc conseillé d'utiliser des disques de même capacité.
- Fiabilité
- Le défaut de cette solution est que la perte d'une seule unité de stockage entraîne la perte de toutes les données du volume RAID.
- Coût
- Dans un RAID 0, qui n'apporte aucune redondance, tout l'espace disque disponible est utilisé (à conditions que les supports soient de même capacité).
Dans cette configuration, les données sont réparties par bandes (stripes en anglais) d'une taille fixe. Cette taille est appelée granularité (voir plus loin la section Granularité).
- Exemple
- Avec un RAID 0 ayant une taille de bande de 64 kio et composé de deux disques (disque Disk 0 et disque Disk 1), si l'on veut écrire un fichier A de 500 kio, le fichier sera découpé en 8 bandes (car ). Appelons-les 1, 2, 3, 4, 5, 6, 7 et 8. Elles seront réparties sur l'ensemble des disques de la façon suivante :
- Disk 0 : 1, 3, 5, 7
- Disk 1 : 2, 4, 6, 8
- Ainsi, l'écriture du fichier pourra être effectuée simultanément sur chacun des disques en un temps équivalent à l'écriture de 256 kio, ce qui revient à doubler le débit en écriture.
Ainsi, sur un RAID 0 de disques (avec ), chaque disque ne doit lire et écrire que des données, ce qui a pour effet de diminuer les temps d'accès (lecture et écriture) aux données. Les disques se partageant le travail, les traitements se trouvent accélérés.
- Utilisations
Ce type de RAID était parfait pour des applications requérant un traitement rapide d'une grande quantité de données avec des disques durs. Mais cette architecture n'assure en rien la sécurité des données. En effet, si l'un des disques tombe en panne, la totalité des données du volume RAID est perdue.
Le RAID 0 était utilisé dans les ordinateurs, dans le cadre d'applications nécessitant de gros transferts de données (montage vidéo...), plutôt que dans des NAS.
Il peut être utilisé afin d'augmenter la bande passante d'un serveur nécéssitant des supports de stockage capables de supporter de très grande quantité d'écritures .
Nota[7] : en RAID matériel, la migration d'un RAID 0 avec plusieurs disques vers un RAID 1 est rarement possible, alors que l'inverse l'est. Il est donc plus souple de démarrer en RAID 1.
RAID 1 : Disques en miroir[modifier | modifier le code]
Le RAID 1 consiste en l'utilisation de disques redondants (avec ), chaque disque de la grappe contenant à tout moment exactement les mêmes données, d'où l'utilisation du mot « miroir » (mirroring en anglais).
- Capacité
- La capacité totale est égale à celle du plus petit élément de la grappe, l'espace excédentaire des autres éléments de la grappe restant inutilisé. Il est donc conseillé d'utiliser des éléments de capacité identique.
- Fiabilité
- Cette solution offre un excellent niveau de protection des données. Elle fonctionne tant qu'il reste au moins un disque fonctionnel.
- Coût
- Les coûts de stockage sont élevés et directement proportionnels au nombre de miroirs utilisés, alors que la capacité utile reste inchangée. Plus le nombre de miroirs est élevé, et plus la sécurité augmente, mais plus son coût devient rédhibitoire.
Les accès en lecture du système d'exploitation se font sur le disque le plus facilement accessible à ce moment-là.[réf. nécessaire] Les écritures sur la grappe se font de manière simultanée sur tous les disques pour que n'importe quel disque soit interchangeable à tout moment.
Lors de la défaillance de l'un des disques, le contrôleur RAID désactive (de manière transparente pour l'accès aux données) le disque incriminé. Une fois le disque défectueux remplacé, le contrôleur RAID reconstitue, soit automatiquement, soit sur intervention manuelle, le miroir. Une fois la synchronisation effectuée, le RAID retrouve son niveau initial de redondance.
Nota[7] : la migration du RAID 1 vers RAID 0, RAID 5, RAID 6 est presque toujours envisageable, ce qui fait du RAID 1 une bonne solution de départ si on n'a pas un besoin important en performance .
RAID 5 : volume agrégé par bandes à parité répartie[modifier | modifier le code]
Le RAID 5 combine la méthode du volume agrégé par bandes (striping) à une parité répartie. Il s'agit là d'un ensemble à redondance . La parité, qui est incluse avec chaque écriture, se retrouve répartie circulairement sur les différents disques. Chaque bande est donc constituée de blocs de données et d'un bloc de parité. Ainsi, en cas de défaillance de l'un des disques de la grappe, pour chaque bande il manquera soit un bloc de données soit le bloc de parité. Si c'est le bloc de parité, ce n'est pas grave, car aucune donnée ne manque. Si c'est un bloc de données, on peut calculer son contenu à partir des autres blocs de données et du bloc de parité. L'intégrité des données de chaque bande est préservée. Donc non seulement la grappe est toujours en état de fonctionner, mais il est de plus possible de reconstruire le disque une fois échangé à partir des données et des informations de parité contenues sur les autres disques.
On voit donc que le RAID 5 ne supporte la perte que d'un seul disque à la fois, ce qui devient un problème depuis que les disques qui composent une grappe sont de plus en plus gros (1 To et plus), car le temps de reconstruction de la parité en cas de disque défaillant est allongé (ce qui augmente la probabilité de survenue d'une nouvelle défaillance car les autres disques durs sont sollicités de façon intensive durant la reconstruction). Ainsi, le temps de reconstruction est généralement d'environ 2 h pour des disques de 300 Go contre une dizaine d'heures pour 1 To.[Information douteuse] Pour limiter le risque il est courant d'ajouter un disque de rechange (spare), dédié au remplacement immédiat d'un éventuel disque défaillant : en régime normal celui-ci est inutilisé ; en cas de panne d'un disque, il prendra automatiquement la place du disque défaillant. Cela nécessite une phase communément appelée recalcul de parité, consistant à recréer sur le nouveau disque le bloc manquant (données ou parité) pour chaque bande. Pendant le processus de recalcul de parité, le volume RAID reste disponible normalement, l'ordinateur se trouve juste un peu ralenti.
- Exemple pratique : Considérons quatre disques durs A, B, C et D, de taille identique. Le système va répartir les premiers blocs sur les disques A, B et C comme en mode RAID 0 (striping) et, sur le disque D, le résultat de l'opération OU exclusif entre les autres disques (ici A xor B xor C). Il va répartir les blocs suivants sur les disques D, A et B, puis la parité (soit D xor A xor B) sur le disque C, et ainsi de suite en permutant circulairement les disques, à chaque bloc. La parité se trouve alors répartie sur l'ensemble des disques.
- En cas de défaillance d'un disque, les données qui s'y trouvaient pourront être reconstituées par l'opération xor. En effet, l'opération XOR () a la propriété suivante : si on considère blocs de taille identique et si alors , et de façon générale, .
- C'est-à-dire que n'importe quel bloc de données perdu à cause d'un disque défaillant sur un RAID 5 de disques peut être récupéré grâce au bloc de données de contrôle.
- On voit donc que si on veut écrire dans un bloc, il faut :
- lire le bloc à modifier ;
- lire le bloc de parité de la bande ;
- écrire le bloc de données et le bloc de parité.
- L'opération xor permet heureusement de calculer la nouvelle parité sans avoir besoin de lire les blocs de données de la bande. Augmenter le nombre de disques d'une grappe RAID 5 n'allonge donc pas le temps de lecture ou d'écriture. Cependant si plusieurs processus veulent écrire simultanément dans un ou plusieurs blocs de données d'une même bande la mise à jour du bloc de parité devient un point de blocage. Les processus concurrents sont suspendus à la libération du bloc de parité et de fait cela limite le débit d'écriture. Plus le nombre de disques d'une grappe RAID 5 augmente plus le temps de reconstruction d'un disque défaillant augmente, puisque pour reconstituer le bloc manquant d'une bande il faut lire tous les autres blocs de la bande et donc tous les autres disques.
Ce système nécessite impérativement un minimum de trois disques durs. Ceux-ci doivent généralement être de même taille, mais un grand nombre de cartes RAID modernes autorisent des disques de tailles différentes, bien que cela ne soit pas optimal. La capacité de stockage utile réelle, pour un système de disques de capacité identiques est de . En cas d'utilisation de disques de capacités différentes, le système utilisera dans la formule précédente la capacité minimale. Ainsi par exemple, trois disques de 100 Go en RAID 5 offrent 200 Go utiles ; dix disques, 900 Go utiles.
Ce système allie sécurité (grâce à la parité) et bonne disponibilité (grâce à la répartition de la parité), même en cas de défaillance d'un des périphériques de stockage.
Il existe une variante : le « RAID 5 varientable » où chaque disque a son propre contrôle. Toutes les autres fonctionnalités sont identiques.
On a souvent tendance à croire qu'un système RAID 5 est totalement fiable. Il est en effet généralement admis que la probabilité de défaillance simultanée de plusieurs disques est extrêmement faible — on parle évidemment d'une défaillance entraînant la perte d'accès complète et définitive aux données de plusieurs disques et non d'une simple indisponibilité de plusieurs disques. Cela est vrai pour une défaillance générale d'une unité de disque. Cependant, cela est faux si l'on considère comme défaillance un seul secteur devenu illisible.
En effet, dans la pratique, il est très rare que toutes les données d'un volume soient lues régulièrement. Et quand bien même ce serait le cas, la cohérence de la parité n'est que très rarement vérifiée pour des raisons de performances. Il est donc probable que des défauts tels que des secteurs de parité illisibles ne soient pas détectés pendant une très longue période. Lorsque l'un des disques devient réellement défectueux, la reconstruction nécessite de parcourir l'intégralité des disques restants. On peut alors découvrir des défauts qui étaient restés invisibles jusque-là.
Tout ceci pourrait ne pas être bien grave et occasionner la perte d'une quantité de données minime (un secteur de disque dans cet exemple soit généralement 512 octets), cependant, l'immense majorité des contrôleurs RAID sont incapables de gérer les défaillances partielles considèrent généralement comme « défaillant » un disque contenant un seul secteur illisible. Donc, si un disque dur tombe en panne, tandis qu'un secteur illisible est rencontré au moment de la reconstruction, deux disques sont considérés défaillants simultanément et le volume RAID 5 devient inutilisable. Il devient alors difficile et coûteux de récupérer les données non sauvegardées.
Un système RAID 5 doit donc être vérifié et sauvegardé périodiquement pour s'assurer que l'on ne risque pas de tomber sur ce genre de cas.
- Avantages :
- Performances en lecture aussi élevées qu'en RAID 0,
- Tolère la perte d'un disque.
- Inconvénients :
- Ralentissement en écriture du fait du calcul de la parité,
- Capacité utile de disques sur un total de n disques.
- Temps de reconstruction long pour les disques durs de grande capacité.
Les niveaux de RAID peu courants[modifier | modifier le code]
Concaténation de disques[modifier | modifier le code]
NRAID : Near/Non Redundant Array of Inexpensive/Independent Disk[réf. nécessaire]
La concaténation de disques consiste à additionner les capacités de plusieurs disques durs en un volume logique d'une taille équivalente à la somme des tailles des disques durs. Cette méthode utilise une méthode d'écriture séquentielle : les données ne sont écrites sur le disque dur suivant que lorsqu'il ne reste plus de place sur le précédent.[Information douteuse]
Le NRAID n'est pas à proprement parler un RAID, et il ne permet d'ailleurs aucune redondance de données. La panne d'un disque peut avoir des conséquences désastreuses sur le reste des données si des métadonnées critiques sont impactées.
Il est parfois confondu à tort avec le JBOD, qui désigne une baie de stockage regroupant des unités accessibles individuellement, sans configuration spéciale.
Le NRAID est aussi désigné comme « Volume Simple » sous Windows (à partir de Windows 2000)[8].
RAID 2 : volume agrégé par bandes à parité[modifier | modifier le code]
Le RAID 2 est aujourd'hui désuet. Il combine la méthode du RAID 0 (volume agrégé par bande) à l'écriture d'un code de contrôle d'erreur par code de Hamming (code ECC) sur un disque dur distinct. Or, l'écriture de ce code de contrôle est désormais directement intégrée dans les contrôleurs de disques durs. Cette technologie offre un bon niveau de sécurité, mais de mauvaises performances.
RAID 3 et RAID 4[modifier | modifier le code]
Le RAID 3 et le RAID 4 sont semblables à ceci près que le premier opère par octets et le second par blocs. Le RAID 4 ne nécessite pas autant de synchronisme entre les disques. Le RAID 3 tend donc à disparaître au profit du RAID 4 qui offre des performances nettement supérieures.
Ces niveaux de RAID nécessitent une matrice de disques (avec ). Les premiers disques contiennent les données tandis que le dernier disque stocke la parité (voir section parité).
- Si le disque de parité tombe en panne, il est possible de reconstruire l'information de parité avec le contenu des autres disques de données.
- Si l'un des disques de données tombe en panne, il est possible de reconstruire l'information avec le contenu des disques de données restants et celui du disque de parité.
Il est important que le disque de parité soit de bonne qualité, car il est à tout instant sollicité en écriture. Ce dernier point est une des limitations du RAID 3.
De même, si plus d'un disque vient à défaillir, il est impossible de remédier à la perte de données.
RAID 6[modifier | modifier le code]
Le RAID 6 est une évolution du RAID 5 qui accroît la sécurité en utilisant informations redondantes au lieu d'une. Il peut donc résister à la défaillance de disques. Les fondements mathématiques utilisés pour les informations de redondance du RAID 6 sont beaucoup plus complexes que pour le RAID 5 ; de ce fait les implémentations de l'algorithme se limitent souvent à (soit la perte de 2 disques).
Si la sécurité est plus grande, le coût en matériel est plus élevé et la vitesse est moindre. La puissance CPU nécessaire pour calculer les redondances et surtout pour reconstruire un volume défectueux est également nettement plus importante.
Les défauts majeurs sont :
- Les temps d'écriture sont allongés à cause des calculs de redondance complexes.
- Le temps de reconstruction en cas de défaillance simultanée de 2 disques est nettement allongé.
Le RAID 6 était peu utilisé du fait de son surcoût. Toutefois l'envolée des capacités des disques durs ces dernières années ainsi que la vulgarisation de solutions professionnelles à base de disques SATA a suscité un intérêt nouveau dans l'utilisation du RAID 6, que ce soit par le biais de contrôleurs RAID matériels ou via du RAID logiciel (le noyau Linux 2.6 intègre le RAID 6).
La capacité utile totale (), pour un système avec disques dont réservés pour la redondance est de ( = capacité du plus petit des disques dur).
Des explications intéressantes, mais un peu ardues sont disponibles dans la version anglaise de cet article[9] ainsi que dans Les mathématiques du RAID 6[10].
RAIDn[modifier | modifier le code]
Un système de stockage grevé de brevets[11] appelé RAIDn[12] prétend permettre de dépasser largement les capacités du RAID 6.[précision nécessaire]
RAID DP[modifier | modifier le code]
RAID DP (Dual Parity) ressemble au RAID6 à ceci près qu'en RAID DP les disques de parité sont fixes. Ce type de RAID est adopté en général sur les serveurs de stockage NAS. La société NetApp utilise cette technologie.
Les niveaux de RAID combinés[modifier | modifier le code]
Fondamentalement, un niveau de RAID combiné est l'utilisation d'un concept de RAID classique sur des éléments constitutifs qui sont eux-mêmes le résultat d'un concept RAID classique. Le concept utilisé peut être le même ou différent.
La syntaxe est encore un peu floue, mais on peut généralement considérer que le premier chiffre indique le niveau de raid des « grappes » et que le second indique le niveau de RAID global. Dans l'absolu, rien n'empêche d'imaginer des RAID combinés à 3 étages ou plus, mais cela reste pour l'instant plus du domaine de la théorie et de l'expérimentation.
Le nombre important (et croissant) de permutations possibles fait qu'il existe une multitude de RAID combinés et nous n'en ferons pas l'inventaire exhaustif. Nous pouvons cependant présenter les avantages et les faiblesses des plus courants.
Pour les calculs suivants, on utilise les variables suivantes :
- : nombre de grappes ;
- : nombre de disques par grappe ;
- : capacité d'un disque (tous les disques sont supposés identiques) ;
- : vitesse d'un disque.
Les seuils de mise en défaut indiqués ci-dessous indiquent le nombre minimal de disques en panne pouvant entraîner une mise en défaut de l'ensemble du RAID (c'est-à-dire qu'en dessous de ce nombre de disques en panne le volume RAID ne peut en principe pas être en défaut). En pratique il est possible qu'un volume RAID ayant plus que ce nombre de disques en panne fonctionne toujours, mais il est recommandé de changer les disques défectueux le plus rapidement possible.
RAID 01 (ou RAID 0+1)[modifier | modifier le code]
Il permet d'obtenir du mirroring rapide puisqu'il est basé sur des grappes en striping (RAID 0) combinées en miroir (RAID 1). Chaque grappe contenant au minimum deux éléments, et un minimum de deux grappes étant nécessaire, il faut au minimum quatre unités de stockage pour créer un volume RAID 0+1.
La fiabilité est moyenne, car un disque défectueux entraîne le défaut de toute la grappe qui le contient. Par ailleurs, cela allonge nettement le temps de reconstruction et dégrade les performances pendant la reconstruction, puisque tous les disques sont sollicités. L'intérêt principal est que dans le cas d'un miroir à trois grappes ou plus, le retrait volontaire d'une grappe entière permet d'avoir une sauvegarde instantanée sans perdre la redondance.
- Capacité totale :
- Vitesse maximale :
- Seuil de mise en défaut : disques
RAID 10 (ou RAID 1+0)[modifier | modifier le code]
Il permet d'obtenir un volume agrégé par bande avec un bon niveau de fiabilité (puisque basé sur des grappes répliquées). Chaque grappe contenant au minimum deux éléments et un minimum de deux grappes étant nécessaire, il faut au minimum quatre unités de stockage pour créer un volume RAID 1+0.
Sa fiabilité est assez grande puisqu'il faut que tous les éléments d'une grappe soient défectueux pour entraîner un défaut global. La reconstruction est assez performante puisqu'elle ne mobilise que les disques d'une seule grappe et non la totalité.
- Capacité totale :
- Vitesse maximale :
- Seuil de mise en défaut : disques
RAID 10 contre RAID 6[modifier | modifier le code]
Pour les serveurs domestiques qui sont souvent limités à quatre disques, le choix entre RAID 6 et RAID 10 (ou 1+0) semble problématique : on a en effet dans les deux cas la moitié de l'espace disque total consacrée à la redondance. Le RAID 6 prend l'avantage au-delà, car il n'utilise plus la moitié de l'espace. Le RAID 6 est de plus tolérant à deux pannes dans le même laps de temps (défaillance d'un disque pendant la reconstruction d'un autre, par exemple). Si le RAID 10 reste cependant souvent favori, c'est qu'il est plus réactif (beaucoup moins de calculs à la volée sont nécessaires) et permet des reconstructions bien plus rapides.
RAID 05 (ou RAID 0+5)[modifier | modifier le code]
Même principe que pour le raid 0+1 mais en employant du RAID 5 pour la partie globale. Chaque grappe contenant au minimum deux disques, et un minimum de trois grappes étant nécessaire, il faut au minimum six unités de stockage pour créer un volume RAID 0+5. Ce mode ne présente pas d'intérêt majeur par rapport à un RAID 5 classique à disques, et est donc très peu utilisé.
- Capacité totale :
- Vitesse maximale : (cette formule néglige les temps de calcul de parité)
- Seuil de mise en défaut : disques
RAID 15 (ou RAID 1+5)[modifier | modifier le code]
Il permet d'obtenir un volume agrégé par bandes avec redondance répartie très fiable (puisque basé sur des grappes répliquées en miroir). Chaque grappe contenant au minimum deux disques, et un minimum de trois grappes étant nécessaire, il faut au minimum six unités de stockage pour créer un volume RAID 15. Ce mode est très fiable puisqu'il faut que tous les disques de deux grappes différentes cessent de fonctionner pour le mettre en défaut. Ce mode est cependant coûteux par rapport à la capacité obtenue.
RAID 50 (ou RAID 5+0)[modifier | modifier le code]
Il permet d'obtenir un volume agrégé par bandes basé sur du RAID 5. Chaque grappe contenant au minimum trois disques, et un minimum de deux grappes étant nécessaire, il faut au minimum six unités de stockage pour créer un volume RAID 5+0. Un des meilleurs compromis lorsque l'on cherche la rapidité sans pour autant vouloir trop dégrader la fiabilité. En effet, l'agrégat par bande (fragile) repose sur des grappes redondantes. Il suffit cependant que deux disques d'une même grappe tombent en panne pour le mettre en défaut.
- Capacité totale : (dans ce cas N est le nombre total des disques et non pas par grappe)
- Vitesse maximale : (cette formule néglige les temps de calcul de parité)
- Seuil de mise en défaut : disques
RAID 51 (ou RAID 5+1)[modifier | modifier le code]
Il permet d'obtenir un volume répliqué basé sur des grappes en RAID 5. Chaque grappe contenant au minimum trois disques, et un minimum de deux grappes étant nécessaire, il faut au minimum six unités de stockage pour créer un volume RAID 5+1. C'est un mode coûteux (faible capacité au regard du nombre de disques).
- Capacité totale :
- Vitesse maximale en écriture : (cette formule néglige les temps de calcul de parité)
- Vitesse maximale en lecture : (cette formule théorique suppose une optimisation maximale qui n'est jamais atteinte)
- Seuil de mise en défaut : disques
Les niveaux de RAID spéciaux[modifier | modifier le code]
RAID 5E[modifier | modifier le code]
Le RAID 5E (E pour Enhanced, soit « amélioré ») est une variante du RAID 5 dans laquelle des bandes de rechange sont réservées. Ces bandes sont réparties sur les disques de manière circulaire, comme pour la parité.
RAID 5EE[modifier | modifier le code]
Le RAID 5EE est une variante du RAID 5E qui offre de meilleurs temps de reconstruction. Contrairement au RAID 5E, l'espace de rechange réservé au sein de la grappe est distribué à travers tous les disques physiques.
RAID 5DP[modifier | modifier le code]
RAID 5DP (Dual Parity) ressemble au RAID 6 à ceci près qu'en RAID DP les deux disques de parité sont fixes. Ce type de RAID est adopté en général sur les serveurs de stockage NAS.
RAID TP[modifier | modifier le code]
Le RAID TP pour Triple Parity RAID technology a la même organisation que le RAID 6 mais utilise trois codes de redondance. Ceci permet de continuer à fonctionner après la panne simultanée de trois disques.
Double parité[modifier | modifier le code]
Le RAID double parité vise à améliorer la protection des données stockées sur un groupe de disques contre la défaillance simultanée de deux volumes, là où les niveaux RAID 3, 4, et 5 ne protègent que contre la perte d'un volume. Pour ceux-ci, les données à stocker sont fragmentées en blocs qui sont écrits sur plusieurs disques tandis qu'une parité de ces blocs est calculée. En cas de perte de l'un des disques, cette parité est le résultat d'une opération mathématique telle que les blocs stockés sur les autres disques et la parité permettent de reconstituer les données[pas clair]. Cette parité est soit inscrite sur un disque à part (RAID 3 et 4), soit distribuée sur les disques du groupe (RAID 5). Mais si deux disques tombent en panne, l'ensemble des données stockées est perdu. Pour se prémunir contre cette éventualité, sont apparus plusieurs modèles de RAID double parité : RAID 6, RAID-DP, RAID-ADG, RAIDn... Tous reposent sur le même principe : deux parités sont calculées et stockées, soit sur deux disques dédiés, soit de façon distribuée sur les disques de la grappe. De cette façon, la grappe est protégée contre la perte simultanée de deux disques.
RAID 1.5[modifier | modifier le code]
Le RAID 1.5 est une évolution du RAID 1. Les accès en lecture ne se font non plus depuis un seul disque, mais en parallèle depuis tous les disques à la manière d'un RAID 0 (mais uniquement en lecture) ce qui apporte un gain sensible en performances, sans rien changer à la fiabilité.
RAID 7, RAID ADG[modifier | modifier le code]
L'évolution du RAID 3 permettant de faire fonctionner le tout de manière asynchrone[précision nécessaire]. Il a été annoncé comme plus performant de 1,5x à 6x que n'importe quel autre RAID[réf. nécessaire]. Tout comme le RAID 3, un seul disque contient les parités de tous. Chaque disque a un contrôleur SCSI / SATA / Fibre Channel… et le système est régi par une carte calculant la parité, gérant le cache et contrôlant les disques[pas clair].
Cette configuration, développée par Storage Computer Corporation, est propriétaire, et s'avère très coûteuse à mettre en place.
IBM ServeRAID 1E[modifier | modifier le code]
Le Raid 1E est un système de mirroring par bandes permettant d'utiliser un nombre de disques supérieur à deux, pair ou impair. Les données sont découpées par bandes qui sont dupliquées (mirrored) sur un des autres disques de la grappe. La capacité totale du volume logique est égale à la moitié de celle du volume physique.
Matrix RAID[modifier | modifier le code]
L'Intel Matrix Storage Technology est disponible depuis les chipsets (jeux de circuits) ICH6R et ICH6RW (année 2005). Il s'agit d'une solution RAID basée sur 4 ports Serial-ATA qui va permettre de regrouper des disques durs en RAID de façon moins contraignante que les solutions actuelles. En effet, avec deux disques identiques, les contrôleurs RAID actuels ne permettent de faire que du RAID 0 ou du RAID 1. Le Matrix RAID permet de combiner, sur deux disques seulement, à la fois du RAID 0 et du RAID 1. L’intérêt n'est pas immédiatement évident mais par exemple, avec deux disques durs de 250 Go, il est possible de créer un RAID 0 (striping) de 100 Go (les 50 premiers Go de chaque disque) d'accès rapide, dédié au système, et un RAID 1 (mirroring) de 200 Go sécurisé avec les 400 Go restants, pour le stockage des données utilisateur. Avec les systèmes RAID traditionnels, l'intégration d'un RAID 0 et d'un RAID 1 dans une même configuration nécessite l'usage de quatre disques au minimum. Même si c'est évident, ajoutons que l'ICH6R ne permet pas de faire du RAID 01 ou 10 avec seulement deux disques durs.
Jusqu'à l'ICH8R/DO il est possible de faire un RAID 5 au maximum avec quatre disques. Depuis l'ICH9R/DO il est possible de faire un RAID 5 de six disques, ce qui augmente considérablement la capacité disponible. De plus avec l'ICH9/10 DO il est possible de rajouter un disque à une grappe existante.
RAID S[modifier | modifier le code]
Cette méthode de remplacement propriétaire des solutions EMC Symmetrix permet de mettre en œuvre une batterie RAID à parité agrégée en bandes. Elle n'est plus utilisée sur des équipements actuels. Si le RAID S semble similaire au RAID 5, il présente certaines performances améliorées, notamment celles que procure la présence d'un cache de disque à haut débit sur la batterie[13].
Sun RAID-Z[modifier | modifier le code]
Le système ZFS de Sun intègre un schéma de redondance similaire au RAID 5 qui se nomme le RAID-Z. Le RAID-Z évite le « trou d'écriture » (write hole) du RAID 5 par une règle de copie-sur-écriture : plutôt que d'écrire par-dessus d'anciennes données avec de nouvelles, il écrit les nouvelles données dans un nouvel emplacement puis réécrit le pointeur vers les nouvelles données. Cela évite les opérations de lire-modifier-écrire pour des petits enregistrements en ne faisant que des écritures full-strip. Des petits blocs sont écrits en miroir au lieu d'être protégés en parité, ce qui est possible, car le système de fichiers est conscient de la sous-structure de stockage et peut allouer de l'espace supplémentaire si nécessaire[réf. nécessaire]. Il existe également un RAID-Z2 et un RAID-Z3 qui utilisent des parités double et triple. Ils permettent de perdre respectivement jusqu’à deux et trois disques sans perdre de données.
Ce système résout également les problèmes de corruption silencieuse du RAID 5 grâce aux opérations de scrub qui analysent toutes les données de la grappe afin de détecter des incohérences.
Le système RAID-Z est moins performant que le RAID 5 : chaque accès en lecture ou en écriture accédant à tous les disques, il ne permet pas de profiter de la multiplication des têtes de lectures. Il permet en revanche l'utilisation de la mémoire RAM comme cache (ARC). Il est aussi possible de dédier des SSD au rôle de cache en lecture (L2ARC) ou cache en écriture (ZIL) pour améliorer les performances d'une grappe[14],[15].
Synology Hybrid Raid (SHR)[modifier | modifier le code]
Technologie propriétaire de Synology relative au système RAID, simulant le fonctionnement d'un RAID 5 en acceptant des disques de taille différentes tout en minimisant les espaces inutilisés[16].
X-RAID (NetGear)[modifier | modifier le code]
Le système X-RAID est une technique développée par Netgear sur sa suite de produits ReadyNAS. Cette technologie permet suivant le nombre de disques de choisir entre les différents types de RAID et de passer de l'un à l'autre sans perte de données ou arrêt de service. X-RAID utilise principalement les RAID 1 et 5.
Fiabilisation et réglages d'une installation RAID[modifier | modifier le code]
Choix du contrôleur[modifier | modifier le code]
La plupart des cartes-mères actuelles proposent un contrôleur RAID intégré. Il est toujours préférable de choisir un contrôleur affecté à cette tâche. En plus de l'interface retenue, la mémoire cache du contrôleur dédié est un facteur important dans les performances du système RAID.
Redondance de contrôleurs[modifier | modifier le code]
Un paramètre à ne pas oublier dans la conception d'un RAID est le nombre d'interfaces contrôlant les disques (cartes IDE, SCSI, SATA ou SAS). En effet, le contrôleur RAID est un élément indispensable au fonctionnement de l'ensemble ; s'il vient à défaillir, il entraîne l'indisponibilité de tous les éléments du RAID.
Si ce point est jugé crucial, il est possible de remédier à ce problème, en utilisant plus d'un contrôleur. Par exemple, dans le cas d'un RAID 1 logiciel simple reposant sur l'utilisation de disques IDE, il est conseillé de connecter chaque disque dur à un connecteur différent sur la carte-mère. Dans les cas plus complexes, notamment lorsqu'il est fait usage d'une baie de disques externes, il est possible de rajouter une ou plusieurs baies redondantes, permettant non seulement de pallier la déficience de l'une d'entre elles, mais également de procéder à un équilibrage de charge (load balancing), ce qui améliore notablement les performances, notamment en évitant les goulots d'étranglement au niveau de la bande passante.
Enfichage à chaud (hotplug / hotswap)[modifier | modifier le code]
On parle abusivement de disques pouvant être enfichés à chaud (hotplug / hotswap en anglais), alors qu'en réalité, c'est la baie de disques du système ainsi que le contrôleur qui doivent être conçus de manière à permettre le retrait ou l'insertion de disques durs alors que le système est sous tension.
Cette fonctionnalité n'est pas disponible avec toutes les technologies :
- Bien qu'il n'y ait généralement pas de dommages physiques, les disques IDE ne gèrent pas cette fonctionnalité.
- Cette fonctionnalité est gérée par des disques SATA (sous réserve que le contrôleur le gère également).
- Cette fonctionnalité est gérée par des disques SCSI (sous réserve que le contrôleur le gère également) bien que le bus puisse être perturbé au moment de l'échange.
Cela permet :
- d'ajouter des disques de manière dynamique, de sorte qu'il soit possible de faire évoluer le système de stockage de données ;
- de remplacer un matériel défectueux sans qu'il soit nécessaire d'interrompre le fonctionnement du système informatique.
L'utilisation de systèmes de connexion à chaud permet donc d'éviter l'indisponibilité durant une opération de maintenance.
Disques de rechange (spare / hotspare)[modifier | modifier le code]
Les disques de rechange (spare / hotspare en anglais) permettent de limiter la vulnérabilité d'une solution RAID.
Un disque complémentaire est affecté à une unité RAID mais n'est pas utilisé au quotidien. Il est appelé disque de rechange. Lorsqu'un disque de la grappe vient à défaillir, le disque de rechange prend immédiatement et automatiquement son relais. Ce disque est alors reconstruit à partir des données présentes sur les autres disques, ce qui peut durer plusieurs heures en fonction de la quantité de données. Une fois le disque reconstruit, le système revient à un niveau optimal de sécurité et de performances.
Une fois le disque de rechange mis en service, il faut procéder à l'échange physique du disque en panne par un nouveau disque qui pourra jouer le rôle de nouveau disque de rechange.
Cache[modifier | modifier le code]
Le cache est une mémoire RAM qui permet de stocker des informations à lire ou à écrire sur le RAID. Ce tampon a des performances très supérieures à celles des disques (généralement plus de 10 000 fois plus rapide), et permet au système de lire ou d'écrire une rafale d'informations puis de passer à une autre tâche pendant que le contrôleur RAID se charge de « dépiler » les opérations à effectuer. Le cache a donc une influence positive très importante sur les performances globales du système.
Le cache de lecture ou « antémémoire de lecture » est une mémoire où sont pré-chargées les données dont le système va avoir besoin. Son fonctionnement est complexe dans la mesure où le contrôleur n'a aucune certitude sur les lectures qui vont lui être demandées, il n'apporte un gain de performance que dans le cas où la prédiction se révèle exacte. Les lectures de données entrent le plus souvent dans deux catégories : des lectures séquentielles de données, et des accès répétés à de mêmes données. La majorité des caches de lecture reposent donc d'une part sur la conservation en mémoire RAM des données récemment écrites ou lues, et d'autre part sur une lecture des données suivantes dans le cas où l'on vient d'effectuer une lecture séquentielle importante. La taille du cache de lecture et la pertinence du système de prédicat[Quoi ?] ont un très grand impact sur les performances en lecture.
Le cache d'écriture est un tampon dans lequel sont placées les données à écrire sur les disques avant d'être transférées sur ceux-ci. Lorsqu'il n'est pas saturé, c’est-à-dire lorsque la quantité de données à écrire ne dépasse pas la taille du cache, le système peut envoyer les données à écrire très rapidement et effectuer d'autres tâches pendant que le contrôleur se charge d'écrire physiquement sur les disques. Le cache d'écriture accroît donc les performances en écriture du système. Cependant, dans le cas d'écritures dont le volume dépasse largement la capacité du cache, le système devra bien attendre que le cache d'écriture se vide avant de pouvoir envoyer davantage de données. L'effet accélérateur du cache devient alors presque nul, voire négatif sur certains contrôleurs.
Le cache d'écriture pose un problème de sécurité important. En effet, la mémoire cache étant volatile, les données écrites par le système dans cette mémoire, mais n'ayant pas encore été transférées sur les supports de stockage, sont perdues en cas de rupture d'alimentation ou autre défaillance. Il peut s'ensuivre de très lourdes pertes ou corruptions de données. Dans certains cas graves, l'intégrité du système de fichier peut être affectée et tout le volume peut alors devenir illisible. Pour pallier ce problème, on recommande de n'activer le cache d'écriture que si la machine est alimentée par l'intermédiaire d'un onduleur et que si le contrôleur RAID possède une batterie de secours (cette batterie permet de conserver le contenu du cache pendant 30 minutes à 6 heures selon les modèles de contrôleurs et la taille de la batterie).
Remarque : Seuls les véritables contrôleurs « RAID matériel » sont munis d'une mémoire cache. Pour les autres, des équivalents logiciels peuvent tenir lieu de cache.
Granularité[modifier | modifier le code]
La granularité ne s'applique qu'aux types de RAID employant des bandes de données. Il s'agit fondamentalement des niveaux RAID 0 et RAID 5 ainsi que leurs combinaisons avec d'autres niveaux, par exemple le raid 10 ou le raid 15.
Il s'agit en fait de la taille des bandes de données. Cette taille configurable est généralement un multiple de 512 octets (taille d'un secteur). En pratique, elle varie le plus souvent de 16 Kio à 1 Mio. Sur la majorité des contrôleurs RAID, la valeur par défaut est de 64 Kio. Cette granularité par défaut est généralement le compromis qui permet d'obtenir les meilleures performances dans la majorité des cas. Cependant, dans des cas d'utilisation très précis, on peut être amené à la modifier.
Remarque : juger de la pertinence de ces modifications et de l'impact sur les performances nécessite une connaissance approfondie du fonctionnement interne des disques, du contrôleur RAID et du système de fichiers. Dans la mesure du possible, il est conseillé d'utiliser la valeur par défaut du contrôleur RAID.
Les possibilités et les limites du RAID[modifier | modifier le code]
Le RAID ne dispense pas d'effectuer des sauvegardes régulières. En effet, des défaillances à plusieurs disques sont plus fréquentes que l'on ne le croit (voir section RAID 5 plus haut). De plus, des erreurs humaines (effacement / corruption de fichiers) finissent toujours par se produire. Un exemple classique de défaillance simultanée de plusieurs disques est le suivant : un premier disque est victime d'un atterrissage de tête, provoquant la dislocation d'une partie de la surface des plateaux ; mais le disque continuant de tourner se met à chauffer et atteint une température gênante pour ses voisins… On comprendra que l'un des disques se trouvant à côté peut à son tour connaître une défaillance du fait de la température locale excessive.
De plus, la taille des disques ne cessant de croître, un RAID dépassant les 12 To utiles (RAID 5 à quatre disques de 4 To par exemple) sera probablement impossible à reconstruire, car atteignant la limite de fiabilité des contrôleurs SATA (sauf pour des contrôleurs haut de gamme pour serveur) : il sera presque sûr statistiquement qu'une erreur de lecture / écriture se produira pendant la reconstruction[17]. Cela serait aussi valable pour les RAID-Z[18].
Ce que peut faire le RAID[modifier | modifier le code]
- réduire les risques de pertes de données en cas de défaillance d'une unité de stockage ;
- réduire les pertes de productivité lors de la défaillance d'un disque ;
- améliorer les performances.
Ce que ne peut pas faire le RAID[modifier | modifier le code]
- protéger totalement des défaillances matérielles (éventualité de pannes successives de plusieurs unités de stockage ou du système RAID lui-même) ;
- protéger les données des erreurs humaines (suppression accidentelle de fichiers) ;
- protéger l'utilisateur des risques extérieurs au système (surcharge électrique qui grillerait l'ensemble des disques, incendie, vol, inondation, vandalisme) ;
- protéger les données des virus qui pourraient corrompre les données.
- protéger par chiffrement nativement : le raid est un volume logique, et ne peut être chiffré (sauf si un contrôleur dédié à une carte RAID le propose, mais qui impliquerait davantage de ressource). Il faut alors, par exemple, créer un disque virtuel placé sur le volume RAID, qui lui, pourra être chiffré nativement.
Comment le RAID peut poser problème[modifier | modifier le code]
Le RAID a tendance à rendre les utilisateurs trop confiants. Cet excès de confiance en une technologie, bien que très robuste et très fiable dans son principe, peut entraîner des désastres. Multiplier le nombre de disques multiplie les risques de panne. De plus, les disques utilisés par une grappe RAID sont souvent de même type et de même âge, et auront donc une durée de vie similaire. C'est pourquoi il peut être judicieux d'utiliser des disques qui soient du même modèle, mais pas de la même série (au cas où une série particulière s'avérerait défectueuse). La complexité du système RAID ajoute des risques technologiques : de rares mais possibles dysfonctionnements du contrôleur RAID, ou du logiciel, sont à craindre. Un disque défectueux peut aussi perturber le fonctionnement du contrôleur, logiquement ou électriquement, ce qui peut causer la perte de plusieurs unités ; dans le cas d'un dysfonctionnement répété, la perte totale d'une grappe voire de toute l'unité de stockage est possible.[réf. nécessaire]
Il faut aussi garder à l'esprit que l'utilisation d'une unité de stockage RAID n'apporte aucune protection contre :
- Les défaillances du système d'exploitation (intrinsèques ou dues à un problème de configuration ou encore un conflit de composants) ;
- Une destruction de données par dysfonctionnement d'un logiciel, virus ou malveillance ;
- Les risques physiques classiques (feu, inondation, vol, foudre et surtensions externes, surtensions internes à la machine, etc.), excepté pour les très onéreux miroirs distants (remote mirroring).
Il n'est donc pas raisonnable de faire totalement confiance à un système de stockage de données, quel qu'il soit. Il convient alors d'effectuer des sauvegardes régulières, la façon la plus sûre de préserver une banque de données des avaries étant d'en stocker une sauvegarde sur un support inerte dans un endroit sécurisé distant, régulièrement mis à jour et vérifié pour ce qui est de la validité et de l'exploitabilité des fichiers.
L'augmentation progressive de la capacité des supports de stockage est un facteur qui augmente exponentiellement la fragilité des systèmes RAID, comme l'a montré une étude sur les RAID 5 et 6 [19].
Évolutions du RAID[modifier | modifier le code]
Une nouveauté dans la façon d'aborder la redondance des blocs disques est apparue au California Institute of Technology, consistant à répliquer les blocs non pas à l'intérieur d'un seul serveur, mais entre plusieurs serveurs à travers le réseau[20], ce qui s'apparente à un RAID réparti. Cette technique est appelée RAIN (en), pour « Redundant Array of Independent Nodes »[21] (ou « Reliable Array of Inexpensive Nodes »)[22], que l'on peut traduire par « réseau redondant de nœuds indépendants »[23]. Les principaux intérêts de cette architecture de stockage sont son niveau de performance et sa capacité d'évolution[24].
Références[modifier | modifier le code]
- (en) Jakob Østergaard, Emilio Bueso et al., The Software-RAID HOWTO, , 1.1.1 éd., 46 p. (lire en ligne [archive]).
- (en) Définition de RAID sur le site de Seagate [archive]
- (en) Brevet U.S. 4,092,732 [archive] déposé par Norman Ken Ouchi
- (en) [PDF] L'article ayant donné naissance à la technologie RAID [archive]
- Patrick Schmid, Achim Roos, « Monter un système RAID 5 avec Windows XP » [archive], sur Ère numérique [archive],
- Linux offre néanmoins la possibilité, avec certaines restrictions, d'accéder aux volumes RAID créés sous Windows, grâce au paquet dmraid. Voir le lien « Utiliser du RAID semi-matériel » [archive]
- http://support.dell.com/support/topics/global.aspx/support/kcs/document?docid=577802&DoNotRedirect=y&doclang=FR [archive]
- « Créer un volume simple » [archive], sur technet.microsoft.com.
- (en) Standard RAID levels
- (en) [PDF] Les mathématiques du RAID 6 [archive], par Peter Anvin
- (en) InoStor, « nStor Adopts InoStor's Patented RAIDn Technology » [archive], sur www.businesswire.com/ [archive],
- (en) Axel Boehme, « The RAIDn Algorithm - How Does it Compare? » [archive], sur StorageSearch.com/ [archive],
- « Que signifie RAID (Redundant Array of Independent Disks)? - Definition IT de Whatis.fr » [archive], sur LeMagIT (consulté le 23 août 2019)
- « Explanation of ARC and L2ARC » ZFS Build » [archive], sur www.zfsbuild.com (consulté le 10 octobre 2015)
- (en) « The Blog of Ben Rockwood » [archive]
- https://www.synology.com/fr-fr/knowledgebase/DSM/tutorial/Storage/What_is_Synology_Hybrid_RAID_SHR [archive]
- (en) « Why RAID 5 stops working in 2009 » [archive], sur zdnet
- (en) « Freenas hardware recommendations » [archive]
- (en) « Triple-Parity RAID and Beyond » [archive], sur acm.org
- (en) http://www.paradise.caltech.edu/papers/etr029.pdf [archive] [PDF]
- « What is Redundant Array of Independent Nodes (RAIN)? - Definition from Techopedia » [archive], sur Techopedia.com (consulté le 16 août 2020).
- (en) Margaret Rouse, « RAIN (redundant/reliable array of inexpensive/independent nodes) » [archive], sur techtarget.com, (consulté le 16 août 2020).
- « Dell étoffe son offre stockage avec une solution objets, le DX6000 - Le Monde Informatique » [archive], sur Le Monde informatique (consulté le 16 août 2020).
- http://www.networkworld.com/news/tech/2004/0209techupdate.html [archive]