Il s'agit d'un Question canonique sur les niveaux RAID.
Quels sont :
- les niveaux RAID généralement utilisés (y compris la famille RAID-Z) ?
- Dans quels déploiements se trouvent-ils le plus souvent ?
- les avantages et les pièges de chacun ?
Il s'agit d'un Question canonique sur les niveaux RAID.
Quels sont :
RAID signifie Redundant Array of Independent Disks (on dit parfois "Inexpensive" pour indiquer qu'il s'agit de disques "normaux" ; historiquement, il existait des disques à redondance interne qui étaient très coûteux ; comme ils ne sont plus disponibles, l'acronyme s'est adapté).
Au niveau le plus général, un RAID est un groupe de disques qui agissent sur les mêmes lectures et écritures. Les entrées-sorties SCSI sont effectuées sur un volume ("LUN"), et celles-ci sont réparties sur les disques sous-jacents de manière à introduire une augmentation des performances et/ou une augmentation de la redondance. L'augmentation des performances est fonction du striping : les données sont réparties sur plusieurs disques pour permettre aux lectures et aux écritures d'utiliser simultanément toutes les files d'attente d'E/S des disques. La redondance est une fonction de la mise en miroir. Des disques entiers peuvent être conservés comme copies, ou des bandes individuelles peuvent être écrites plusieurs fois. Dans certains types de raid, au lieu de copier les données bit par bit, la redondance est obtenue en créant des bandes spéciales contenant des informations de parité, qui peuvent être utilisées pour recréer les données perdues en cas de défaillance matérielle.
Il existe plusieurs configurations qui fournissent différents niveaux de ces avantages, qui sont couverts ici, et chacune d'entre elles a un penchant pour la performance, ou la redondance.
Un aspect important dans l'évaluation du niveau de RAID qui vous conviendra dépend de ses avantages et des exigences matérielles (par exemple : le nombre de disques).
Un autre aspect important de le plus de ces types de RAID (0,1,5) est qu'ils ne font pas no garantissent l'intégrité de vos données, car elles sont abstraites par rapport aux données réelles stockées. Le système RAID ne protège donc pas contre les fichiers corrompus. Si un fichier est corrompu par tout signifie que la corruption sera mise en miroir ou en parité et enregistrée sur le disque sans tenir compte de la corruption. Cependant, RAID-Z prétend assurer l'intégrité de vos données au niveau des fichiers. .
Le RAID peut être mis en œuvre sur un système de stockage direct à deux niveaux : matériel et logiciel. Dans les véritables solutions RAID matérielles, il y a un contrôleur matériel dédié avec un processeur dédié aux calculs et au traitement du RAID. Il est aussi généralement doté d'un module de cache alimenté par batterie afin que les données puissent être écrites sur le disque, même après une panne de courant. Cela permet d'éliminer les incohérences lorsque les systèmes ne sont pas arrêtés proprement. D'une manière générale, les bons contrôleurs matériels sont plus performants que leurs homologues logiciels, mais ils ont aussi un coût substantiel et augmentent la complexité.
Le RAID logiciel ne nécessite généralement pas de contrôleur, puisqu'il n'utilise pas de processeur RAID dédié ou de cache séparé. En général, ces opérations sont traitées directement par le CPU. Dans les systèmes modernes, ces calculs consomment un minimum de ressources, bien qu'une latence marginale soit encourue. Le RAID est géré soit par le système d'exploitation directement, soit par un faux contrôleur dans le cas de FakeRAID .
D'une manière générale, si quelqu'un choisit le RAID logiciel, il doit éviter FakeRAID et utiliser le paquetage natif du système d'exploitation pour son système, tel que Dynamic Disks sous Windows, mdadm/LVM sous Linux ou ZFS sous Solaris, FreeBSD et autres distributions apparentées. FakeRAID utilise une combinaison de matériel et de logiciel qui donne l'apparence initiale du RAID matériel, mais les performances réelles du RAID logiciel. De plus, il est généralement extrêmement difficile de déplacer la matrice vers un autre adaptateur (si l'original tombe en panne).
L'autre endroit où le RAID est courant est sur les dispositifs de stockage centralisés, généralement appelés SAN (Storage Area Network) ou NAS (Network Attached Storage). Ces dispositifs gèrent leur propre stockage et permettent aux serveurs connectés d'accéder au stockage de différentes manières. Étant donné que plusieurs charges de travail sont contenues sur les mêmes quelques disques, il est généralement souhaitable d'avoir un niveau élevé de redondance.
La principale différence entre un NAS et un SAN réside dans les exportations au niveau des blocs et des systèmes de fichiers. Un SAN exporte un "périphérique bloc" entier, tel qu'une partition ou un volume logique (y compris ceux construits au-dessus d'une matrice RAID). Les exemples de SAN incluent Fibre Channel et iSCSI. Un NAS exporte un "système de fichiers" tel qu'un fichier ou un dossier. Les exemples de NAS incluent CIFS/SMB (partage de fichiers Windows) et NFS.
Le RAID0 (alias Striping) est parfois appelé "la quantité de données qu'il vous reste lorsqu'un disque tombe en panne". Il va vraiment à l'encontre de la notion de "RAID", où le "R" signifie "redondant".
RAID0 prend votre bloc de données, le divise en autant de morceaux que vous avez de disques (2 disques 2 morceaux, 3 disques 3 morceaux) et écrit ensuite chaque morceau de données sur un disque séparé.
Cela signifie qu'une seule défaillance de disque détruit l'ensemble de la matrice (parce que vous avez la partie 1 et la partie 2, mais pas la partie 3), mais cela permet un accès très rapide au disque.
Il n'est pas souvent utilisé dans les environnements de production, mais il pourrait l'être dans une situation où vous avez des données strictement temporaires qui peuvent être perdues sans répercussion. Elle est utilisée assez couramment pour les dispositifs de mise en cache (comme un dispositif L2Arc).
L'espace disque total utilisable est la somme de tous les disques de la matrice additionnés ensemble (par exemple, 3x disques de 1 To = 3 To d'espace).
RAID 1 (alias Mirroring) prend vos données et les duplique de manière identique sur deux disques ou plus (mais généralement seulement deux disques). Si plus de deux disques sont utilisés, les mêmes informations sont stockées sur chaque disque (ils sont tous identiques). C'est le seul moyen d'assurer la redondance des données lorsque vous disposez de moins de trois disques.
Le RAID 1 améliore parfois les performances de lecture. Certaines implémentations du RAID 1 lisent sur les deux disques pour doubler la vitesse de lecture. D'autres ne liront qu'à partir d'un seul des disques, ce qui n'apporte aucun avantage supplémentaire en termes de vitesse. D'autres liront les mêmes données sur les deux disques, garantissant ainsi l'intégrité de la matrice à chaque lecture, mais la vitesse de lecture sera la même que pour un seul disque.
Il est généralement utilisé dans les petits serveurs qui ont très peu d'extension de disque, comme les serveurs 1RU qui peuvent n'avoir de l'espace que pour deux disques ou dans les stations de travail qui nécessitent une redondance. En raison des frais généraux élevés liés à l'espace "perdu", son coût peut être prohibitif avec des disques de petite capacité et à grande vitesse (et à coût élevé), car vous devez dépenser deux fois plus d'argent pour obtenir le même niveau de stockage utilisable.
L'espace disque total utilisable correspond à la taille du plus petit disque de la matrice (par exemple, 2 disques de 1 To = 1 To d'espace).
El 1E Le niveau RAID est similaire au RAID 1 en ce sens que les données sont toujours écrites sur (au moins) deux disques. Mais contrairement au RAID 1, il permet un nombre impair de disques en intercalant simplement les blocs de données sur plusieurs disques.
Les caractéristiques de performance sont similaires au RAID1, la tolérance aux pannes est similaire au RAID 10. Ce schéma peut être étendu à des nombres impairs de disques supérieurs à trois (éventuellement appelé RAID 10E, bien que rarement).
RAID 10 est une combinaison de RAID 1 et RAID 0. L'ordre des 1 et 0 est très important. Si vous avez 8 disques, le système créera 4 matrices RAID 1, puis appliquera une matrice RAID 0 par-dessus les 4 matrices RAID 1. Il faut au moins 4 disques, et les disques supplémentaires doivent être ajoutés par paires.
Cela signifie qu'un disque de chaque paire peut tomber en panne. Donc, si vous avez des ensembles A, B, C et D avec des disques A1, A2, B1, B2, C1, C2, D1, D2, vous pouvez perdre un disque de chaque ensemble (A, B, C ou D) et avoir une matrice qui fonctionne toujours.
Cependant, si vous perdez deux disques d'un même ensemble, la matrice est totalement perdue. Vous pouvez perdre jusqu'à (mais non garanti) 50% des disques.
Le RAID 10 vous garantit une vitesse et une disponibilité élevées.
Le RAID 10 est un niveau de RAID très courant, notamment avec les disques de grande capacité où la défaillance d'un seul disque rend plus probable la défaillance d'un second disque avant que la matrice RAID ne soit reconstruite. Lors de la récupération, la dégradation des performances est beaucoup plus faible que pour son homologue RAID 5, car il suffit de lire sur un seul disque pour reconstruire les données.
L'espace disque disponible est de 50% de la somme de l'espace total. (par exemple, 8x disques de 1 To = 4 To d'espace utilisable). Si vous utilisez des tailles différentes, seule la plus petite taille sera utilisée sur chaque disque.
Il est intéressant de noter que le pilote de raid logiciel du noyau Linux appelé md
permet de réaliser des configurations RAID 10 avec un nombre impair de disques. c'est-à-dire un RAID 10 à 3 ou 5 disques.
C'est l'inverse du RAID 10. Il crée deux matrices RAID 0, puis place un RAID 1 par-dessus. Cela signifie que vous pouvez perdre un disque de chaque ensemble (A1, A2, A3, A4 ou B1, B2, B3, B4). Il est très rare de voir cela dans les applications commerciales, mais il est possible de le faire avec le RAID logiciel.
Pour être tout à fait clair :
Il n'apporte pas de vitesse supplémentaire par rapport au RAID 10, mais beaucoup moins de redondance et doit être évité à tout prix.
Le RAID 5 est le niveau de RAID le plus couramment utilisé depuis des décennies. Il fournit les performances système de tous les disques de la matrice (sauf pour les petites écritures aléatoires, qui entraînent une légère surcharge). Il utilise une simple opération XOR pour calculer la parité. En cas de défaillance d'un seul disque, les informations peuvent être reconstruites à partir des disques restants en utilisant l'opération XOR sur les données connues.
Malheureusement, en cas de défaillance d'un disque, le processus de reconstruction est très gourmand en IO. Plus le nombre de disques dans le RAID est important, plus la reconstruction sera longue et plus le risque d'une deuxième défaillance du disque sera élevé. Comme les gros disques lents ont beaucoup plus de données à reconstruire et beaucoup moins de performances pour le faire, il n'est généralement pas recommandé d'utiliser le RAID 5 avec des disques de 7200 RPM ou moins.
Le problème le plus critique des matrices RAID 5, lorsqu'elles sont utilisées dans des applications grand public, est qu'elles sont presque assurées de tomber en panne lorsque la capacité totale dépasse 12 To. Cela est dû au fait que le erreur de lecture irrécupérable (URE) des lecteurs SATA grand public est d'un pour 10. 14 bits, soit ~12.5TB.
Prenons l'exemple d'une matrice RAID 5 avec sept disques de 2 To : lorsqu'un disque tombe en panne, il en reste six. Afin de reconstruire la matrice, le contrôleur doit lire six disques de 2 To chacun. En regardant la figure ci-dessus, il est presque certain qu'un autre URE se produira avant que la reconstruction ne soit terminée. Une fois que cela se produit, la matrice et toutes les données qu'elle contient sont perdues.
Cependant, le problème de l'URE/perte de données/défaillance de la matrice avec RAID 5 dans les disques grand public a été quelque peu atténué par le fait que la plupart des fabricants de disques durs ont augmenté le taux d'URE de leurs disques les plus récents à un sur 10. 15 bits. Comme toujours, vérifiez la fiche technique avant d'acheter !
Il est également impératif que le RAID 5 soit placé derrière un cache d'écriture fiable (soutenu par une batterie). Cela permet d'éviter le surcoût des petites écritures, ainsi que le comportement instable qui peut se produire en cas de panne au milieu d'une écriture.
RAID 5 est la solution la plus rentable pour ajouter du stockage redondant à une matrice, car elle ne nécessite la perte que d'un seul disque (par exemple, 12 disques de 146 Go = 1606 Go d'espace utilisable). Il nécessite un minimum de 3 disques.
Le RAID 6 est similaire au RAID 5, mais il utilise deux disques de parité au lieu d'un seul (le premier est XOR, le second est un LSFR), de sorte que vous pouvez perdre deux disques de la matrice sans perte de données. La pénalité d'écriture est plus élevée que celle du RAID 5 et vous disposez d'un disque de moins.
Il faut savoir qu'à terme, une matrice RAID 6 rencontrera les mêmes problèmes qu'une matrice RAID 5. Des disques plus grands entraînent des temps de reconstruction plus longs et davantage d'erreurs latentes, ce qui peut conduire à une défaillance de l'ensemble de la matrice et à la perte de toutes les données avant la fin de la reconstruction.
Le RAID 50 est un niveau imbriqué, tout comme le RAID 10. Il combine deux ou plusieurs matrices RAID 5 et répartit les données entre elles dans un RAID 0. Cela offre à la fois des performances et une redondance de plusieurs disques, à condition que plusieurs disques soient perdus dans le système. différents Les matrices RAID 5.
Dans un RAID 50, la capacité du disque est égale à n-x, où x est le nombre de RAID 5 qui sont répartis en bandes. Par exemple, dans un simple RAID 50 à 6 disques, le plus petit possible, si vous aviez 6 disques de 1 To dans deux RAID 5 qui étaient ensuite répartis en bandes pour devenir un RAID 50, vous auriez 4 To de stockage utilisable.
Le RAID 6 est au RAID 60 ce que le RAID 5 est au RAID 50. En fait, vous avez plus d'un RAID 6 sur lequel les données sont ensuite réparties en bandes dans un RAID 0. Cette configuration permet à un maximum de deux membres de n'importe quel RAID 6 individuel de l'ensemble de tomber en panne sans perte de données. Les temps de reconstruction pour les matrices RAID 60 peuvent être importants, il est donc conseillé de disposer d'un disque de secours à chaud pour chaque membre RAID 6 de la matrice.
Dans un RAID 60, la capacité du disque est de n-2x, où x est le nombre de RAID 6 qui sont répartis en bandes. Par exemple, avec un simple RAID 60 à 8 disques, le plus petit possible, si vous avez 8 disques de 1 To dans deux RAID 6 qui sont ensuite répartis en bandes pour devenir un RAID 60, vous disposez de 4 To de stockage utilisable. Comme vous pouvez le constater, cela donne la même quantité de stockage utilisable qu'un RAID 10 sur une matrice de 8 membres. Bien que le RAID 60 soit légèrement plus redondant, les temps de reconstruction sont beaucoup plus longs. En général, vous ne devez envisager le RAID 60 que si vous avez un grand nombre de disques.
RAID-Z est un peu compliqué à expliquer car ZFS change radicalement la façon dont le stockage et les systèmes de fichiers interagissent. ZFS englobe les rôles traditionnels de gestion de volume (le RAID est une fonction d'un gestionnaire de volume) et de système de fichiers. De ce fait, ZFS peut faire du RAID au niveau du bloc de stockage du fichier plutôt qu'au niveau de la bande du volume. C'est exactement ce que fait RAID-Z, écrire les blocs de stockage du fichier sur plusieurs disques physiques, y compris un bloc de parité pour chaque ensemble de bandes.
Un exemple peut rendre cela beaucoup plus clair. Disons que vous avez 3 disques dans un pool ZFS RAID-Z, la taille des blocs est de 4KB. Vous écrivez maintenant un fichier sur le système qui fait exactement 16KB. ZFS le divisera en quatre blocs de 4KB (comme le ferait un système d'exploitation normal) ; puis il calculera deux blocs de parité. Ces six blocs seront placés sur les lecteurs de la même manière que le RAID-5 distribuerait les données et la parité. Il s'agit d'une amélioration par rapport au RAID5, car il n'y a pas eu de lecture des bandes de données existantes pour calculer la parité.
Un autre exemple s'appuie sur le précédent. Disons que le fichier ne fait que 4KB. ZFS devra toujours construire un bloc de parité, mais la charge d'écriture est maintenant réduite à 2 blocs. Le troisième disque sera libre pour répondre à d'autres demandes simultanées. Un effet similaire sera observé chaque fois que le fichier écrit n'est pas un multiple de la taille de bloc du pool multiplié par le nombre de lecteurs moins un (c'est-à-dire [Taille du fichier] <> [Taille du bloc] * [Lecteurs - 1]).
Le fait que ZFS gère à la fois la gestion des volumes et le système de fichiers signifie également que vous n'avez pas à vous soucier de l'alignement des partitions ou de la taille des stripe-blocks. ZFS gère tout cela automatiquement avec les configurations recommandées.
La nature de ZFS contrebalance certains des avertissements classiques du RAID-5/6. Toutes les écritures dans ZFS sont effectuées en mode copie sur écriture ; tous les blocs modifiés dans une opération d'écriture sont écrits à un nouvel emplacement sur le disque, au lieu d'écraser les blocs existants. Si une écriture échoue pour une raison quelconque, ou si le système tombe en panne au milieu de l'écriture, la transaction d'écriture se produit complètement après la récupération du système (avec l'aide du journal d'intention ZFS) ou ne se produit pas du tout, évitant ainsi la corruption potentielle des données. Un autre problème avec le RAID-5/6 est la perte potentielle de données ou la corruption silencieuse de données pendant les reconstructions ; des contrôles réguliers de l'intégrité des données sont nécessaires. zpool scrub
peuvent aider à détecter la corruption des données ou les problèmes de disque avant qu'ils n'entraînent une perte de données, et l'addition de contrôle de tous les blocs de données permet de détecter toute corruption lors d'une reconstruction.
Le principal inconvénient de RAID-Z est qu'il s'agit toujours d'un raid logiciel (et qu'il souffre de la même latence mineure due au fait que l'unité centrale calcule la charge d'écriture au lieu de laisser un dispositif matériel HBA le décharger). Ce problème pourrait être résolu à l'avenir par les adaptateurs de bus hôte qui prennent en charge l'accélération matérielle de ZFS.
Comme il n'existe pas d'autorité centrale imposant une quelconque fonctionnalité standard, les différents niveaux de RAID ont évolué et ont été normalisés par un usage courant. De nombreux fournisseurs ont fabriqué des produits qui s'écartent des descriptions ci-dessus. Il n'est pas rare non plus qu'ils inventent une nouvelle terminologie marketing fantaisiste pour décrire l'un des concepts ci-dessus (cela se produit le plus souvent sur le marché SOHO). Dans la mesure du possible, essayez d'obtenir du fournisseur qu'il décrive réellement la fonctionnalité du mécanisme de redondance (la plupart d'entre eux donneront volontiers cette information, car il n'y a plus vraiment de sauce secrète).
Il est intéressant de noter qu'il existe des implémentations de type RAID 5 qui vous permettent de démarrer une matrice avec seulement deux disques. Il stocke les données sur une bande et la parité sur l'autre, comme le RAID 5 ci-dessus. Les performances sont identiques à celles d'un RAID 1, avec la surcharge du calcul de la parité. L'avantage est que vous pouvez ajouter des disques à la matrice en recalculant la parité.
Je n'ai pas actuellement le temps d'ajouter ces informations, mais en expliquant comment vous pouvez utiliser le taux d'erreur de lecture irrécupérable pour estimer le plus grand ensemble RAID 5 que vous pouvez utiliser avec des disques spécifiques serait une bonne idée.
Excellent résumé ! J'ai un ajout à faire concernant RAID5 vs. RAID6 : souvent, les personnes qui considèrent la fiabilité globale (risque de défaillance catastrophique de la matrice) des matrices peuplées d'un grand nombre de broches ou de disques de très grande capacité choisissent RAID6. Ils se basent sur la probabilité qu'une deuxième panne se produise pendant que le premier disque est en cours de reconstruction. Ma règle personnelle est RAID6 lorsque le nombre de broches est supérieur à 8 ou lorsque les disques individuels ont une capacité supérieure à 1 To. Je n'ai pas été en mesure de trouver un calculateur canonique, mais Google et le temps de reconstruction connu vous aideront à faire vos calculs.
Il peut être utile d'ajouter une note ici que le logiciel RAID10 de Linux n'est pas standard. Il permet des agencements inhabituels et potentiellement utiles. fr.wikipedia.org/wiki/Non-standard_RAID_levels#Linux_MD_RAID_10
Aussi RAID ONE MILLION !!!!
128 disques donc les lectures seraient rapides, les écritures horribles mais très fiables j'imagine, oh et vous auriez 1/128ème de l'espace disponible, donc pas génial d'un point de vue budgétaire. Ne faites pas ça avec des clés USB, j'ai essayé et j'ai mis le feu à l'atmosphère...
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.
11 votes
@erimar77 Le but du réseau StackExchange est de collecter toutes les connaissances sur un sujet donné. au sein du réseau SE . Cela signifie que les données sur Wikipédia sont inutiles à la mission. Je m'y connais assez bien en RAID, je n'ai donc pas besoin de la réponse, mais il s'agit d'une question canonique. Une question canonique est une question qui apporte une réponse définitive à un problème commun et vers laquelle nous pouvons diriger tous les doublons. "Il suffit de le googler" ou "c'est sur Wikipedia" ne sont pas des réponses acceptables. L'article sur Wikipédia est cependant très bon.
2 votes
Copié sur Super utilisateur pour que je puisse faire du VTC en double là-dessus. Veuillez copier la réponse à Super utilisateur (ou laissez-moi le copier pour le moment).