Question Quels sont les différents niveaux de RAID largement utilisés et quand devrais-je les prendre en compte?


C'est un Question canonique sur les niveaux de RAID.

Quels sont:

  • les niveaux de RAID généralement utilisés (y compris la famille RAID-Z)?
  • déploiements sont-ils couramment trouvés dans?
  • avantages et pièges de chacun?

175
2017-12-08 19:40


origine


@ erimar77 Le but du réseau StackExchange est de collecter toutes les connaissances sur le sujet spécifié. au sein du réseau SE. Cela signifie que les données sur Wikipedia sont inutiles pour la mission. Je connais assez bien le RAID, alors je n'ai pas besoin de réponse, mais c'est censé être une question canonique. Une question conique est une question qui apporte une réponse définitive à un problème commun que nous sommes en mesure de signaler à tous les doublons. "Il suffit de google" ou "c'est sur Wikipedia" ne sont pas des réponses acceptables. L'article sur Wikipedia est très bon, cependant. - MDMarra
Copié dans Super utilisateur à je peux VTC comme un duplicata là-bas. Veuillez recopier la réponse à Super utilisateur (ou laissez-moi le copier pour l'instant). - Hennes


Réponses:


RAID: pourquoi et quand

RAID signifie Redundant Array of Independent Disks (on dit à certains "peu coûteux" d'indiquer qu'il s'agit de disques "normaux"; historiquement, il existait des disques redondants en interne qui étaient très coûteux; l'acronyme étant adapté, ils ne sont plus disponibles).

Au niveau le plus général, un RAID est un groupe de disques qui agissent sur les mêmes lectures et écritures. Les E / S SCSI sont effectuées sur un volume ("LUN"), qui sont distribués aux disques sous-jacents de manière à introduire une augmentation des performances et / ou une augmentation de la redondance. L'augmentation des performances est une fonction de la répartition: les données sont réparties sur plusieurs disques pour permettre aux lectures et aux écritures d'utiliser simultanément les files d'attente d'E / S de tous les disques. La redondance est une fonction de la mise en miroir. Des disques entiers peuvent être conservés sous forme de copies, ou des bandes individuelles peuvent être écrites plusieurs fois. Alternativement, dans certains types de raid, au lieu de copier bit par bit de données, la redondance est obtenue en créant des bandes spéciales contenant des informations de parité, qui peuvent être utilisées pour recréer toute donnée perdue en cas de défaillance matérielle.

Plusieurs configurations offrent différents niveaux d’avantages, qui sont décrits ici, et chacune d’elles privilégie les performances, voire la redondance.

Un aspect important dans l’évaluation du niveau de RAID qui fonctionnera pour vous dépend de ses avantages et de la configuration matérielle requise (par exemple: nombre de disques).

Un autre aspect important de plus de ces types de RAID (0,1,5) est qu'ils font ne pas assurez l'intégrité de vos données, car elles sont extraites des données stockées. Donc, RAID ne protège pas contre les fichiers corrompus. Si un fichier est corrompu par tout Cela signifie que la corruption sera reflétée ou parquée et enregistrée sur le disque, de quelque manière que ce soit. cependant, RAID-Z prétend assurer l'intégrité de vos données au niveau du fichier.


RAID directement connecté: logiciel et matériel

Il est possible d'implémenter RAID sur un stockage directement connecté à deux niveaux: matériel et logiciel. Dans les solutions RAID matérielles véritables, il existe un contrôleur matériel dédié avec un processeur dédié aux calculs et au traitement RAID. Il possède également généralement un module de cache sauvegardé par batterie afin que les données puissent être écrites sur le disque, même après une panne de courant. Cela aide à éliminer les incohérences lorsque les systèmes ne sont pas arrêtés correctement. En règle générale, les bons contrôleurs matériels sont plus performants que leurs homologues logiciels, mais ils ont également un coût substantiel et augmentent la complexité.

Le RAID logiciel ne nécessite généralement pas de contrôleur car il n'utilise pas de processeur RAID dédié ni de cache séparé. Généralement, ces opérations sont gérées directement par la CPU. Dans les systèmes modernes, ces calculs consomment un minimum de ressources, bien qu’une certaine latence marginale soit engendrée. Le RAID est géré soit par le système d'exploitation directement, soit par un faux contrôleur dans le cas d'une FakeRAID.

En règle générale, si quelqu'un choisit un logiciel RAID, il doit éviter FakeRAID et utiliser le package natif du système d'exploitation de son système, tel que Dynamic Disks sous Windows, mdadm / LVM sous Linux ou ZFS sous Solaris, FreeBSD et d'autres distributions associées. . FakeRAID utilise une combinaison de matériel et de logiciel, ce qui donne l’apparence initiale du RAID matériel, mais également les performances réelles du logiciel RAID. De plus, il est généralement extrêmement difficile de déplacer la matrice vers un autre adaptateur (en cas d'échec de l'original).


Stockage centralisé

L’autre endroit où le RAID est commun est celui des périphériques de stockage centralisés, généralement appelé SAN (Storage Area Network) ou NAS (Network Attached Storage). Ces périphériques gèrent leur propre stockage et permettent aux serveurs connectés d’y accéder de différentes manières. Étant donné que plusieurs charges de travail sont contenues sur le même nombre de disques, il est généralement souhaitable d’avoir un niveau élevé de redondance.

La principale différence entre un NAS et un SAN est l’exportation de blocs par rapport au système de fichiers. Un SAN exporte un "périphérique bloc" complet, tel qu'une partition ou un volume logique (y compris ceux construits sur 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.


RAID 0

Bon quand: Vitesse à tout prix!

Mauvais quand: vous vous souciez de vos données.

RAID0 (aka Striping) est parfois appelé "la quantité de données qu'il vous restera en cas de panne d'un lecteur". Cela va vraiment à l’encontre du "RAID", où le "R" signifie "Redondant".

RAID0 prend votre bloc de données, le scinde en autant de disques que vous avez (2 disques → 2 morceaux, 3 disques → 3 morceaux) puis écrit chaque morceau de données sur un disque séparé.

Cela signifie qu'une seule défaillance du disque détruit la totalité de la matrice (car vous avez les parties 1 et 2, mais pas la partie 3), mais fournit un accès très rapide au disque.

Il n'est pas souvent utilisé dans les environnements de production, mais il peut être utilisé dans des situations où des données strictement temporaires peuvent être perdues sans répercussion. Il est utilisé assez communément pour la mise en cache de périphériques (comme un périphérique L2Arc).

L'espace disque total utilisable est la somme de tous les disques de la matrice ajoutés (par exemple, 3 disques de 1 To = 3 To d'espace).

RAID 1


RAID 1

Bon quand: vous avez un nombre limité de disques mais vous avez besoin de redondance

Mauvais quand: vous avez besoin de beaucoup d'espace de stockage

RAID 1 (ou mise en miroir) prend vos données et les duplique à l'identique sur deux disques ou plus (bien que généralement 2 disques seulement). Si plus de deux disques sont utilisés, les mêmes informations sont stockées sur chaque disque (elles sont toutes identiques). C'est le seul moyen de garantir la redondance des données lorsque vous avez moins de trois disques.

RAID 1 améliore parfois les performances de lecture. Certaines implémentations de RAID 1 liront sur les deux disques pour doubler la vitesse de lecture. Certains ne liront que l’un des disques, ce qui ne procure aucun avantage supplémentaire en termes de vitesse. D'autres liront les mêmes données des deux disques, garantissant ainsi l'intégrité de la matrice à chaque lecture, mais la vitesse de lecture sera identique à celle d'un disque unique.

Il est généralement utilisé dans les petits serveurs ayant très peu d'extension de disque, tels que les serveurs 1RU pouvant ne disposer que de deux disques ou dans les stations de travail nécessitant une redondance. En raison de sa surcharge d'espace "perdu", son coût peut être prohibitif avec des disques de petite capacité, à grande vitesse (et à coût élevé), car vous devez dépenser deux fois plus pour obtenir le même niveau de stockage utilisable.

L'espace disque total utilisable est la taille du plus petit disque de la matrice (par exemple, 2 disques de 1 To = 1 To d'espace).

RAID 1


RAID 1E

le 1E Le niveau RAID est similaire à RAID 1 en ce que les données sont toujours écrites sur (au moins) deux disques. Mais contrairement à RAID1, il permet un nombre impair de disques en intercalant simplement les blocs de données entre plusieurs disques.

Les caractéristiques de performance sont similaires à celles de RAID1 et la tolérance de panne à celle de RAID 10. Ce schéma peut être étendu à un nombre impair de disques supérieur à trois (éventuellement appelé RAID 10E, mais rarement).

RAID 1E


RAID 10

Bon quand: vous voulez de la vitesse et de la redondance

Mauvais quand: vous ne pouvez pas vous permettre de perdre la moitié de votre espace disque

RAID 10 est une combinaison de RAID 1 et RAID 0. L'ordre des valeurs 1 et 0 est très important. Supposons que vous avez 8 disques, cela va créer 4 matrices RAID 1, puis appliquer une matrice RAID 0 au-dessus des 4 matrices RAID 1. Il nécessite au moins 4 disques et des disques supplémentaires doivent être ajoutés par paires.

Cela signifie qu'un disque de chaque paire peut échouer. Donc, si vous avez les jeux A, B, C et D avec les disques A1, A2, B1, B2, C1, C2, D1, D2, vous pouvez perdre un disque de chaque jeu (A, B, C ou D) et avoir un tableau qui fonctionne.

Cependant, si vous perdez deux disques du même ensemble, la matrice est totalement perdue. Tu peux perdre Jusqu'à (mais pas garanti) 50% des disques.

Vous êtes garantis une vitesse élevée et une haute disponibilité dans RAID 10.

RAID 10 est un niveau RAID très courant, en particulier avec les lecteurs de grande capacité, où une défaillance d'un disque rend plus probable une deuxième défaillance de disque avant la reconstruction de la matrice RAID. Au cours de la récupération, la dégradation des performances est bien inférieure à celle de son homologue RAID 5 car il n’est nécessaire que de lire à partir d’un lecteur pour reconstruire les données.

L'espace disque disponible correspond à 50% de la somme de l'espace total. (par exemple, 8 disques de 1 To = 4 To d'espace utilisable). Si vous utilisez différentes tailles, seule la plus petite taille sera utilisée pour chaque disque.

Il convient de noter que le pilote RAID logiciel du noyau Linux appelé md permet de configurer des raid10 avec un nombre impair de lecteurs, c’est-à-dire un raid10 à 3 ou 5 disques:

https://en.wikipedia.org/wiki/Non-standard_RAID_levels#Linux_MD_RAID_10

RAID 10


RAID 01

Bon quand: jamais

Mauvais quand: toujours

C'est l'inverse du RAID 10. Il crée deux matrices RAID 0, puis place un RAID 1 au-dessus. Cela signifie que vous pouvez perdre un disque de chaque jeu (A1, A2, A3, A4 ou B1, B2, B3, B4). C'est très rare dans les applications commerciales, mais il est possible de le faire avec un logiciel RAID.

Pour être absolument clair:

  • Si vous avez une matrice RAID10 avec 8 disques et qu'un meurt (nous l'appellerons A1), vous aurez alors 6 disques redondants et un sans redondance. Si un autre disque meurt, il y a un 85% chance que votre tableau fonctionne toujours.
  • Si vous avez une matrice RAID01 avec 8 disques et qu'un meurt (nous l'appellerons A1), vous aurez 3 disques redondants et 4 sans redondance. Si un autre disque meurt, il y a un 43% chance que votre tableau fonctionne toujours.

Il ne fournit aucune vitesse supplémentaire par rapport au RAID 10, mais une redondance considérablement moindre et devrait être évité à tout prix.


RAID 5

Bon quand: vous voulez un équilibre entre redondance et espace disque ou avez une charge de travail de lecture principalement aléatoire.

Mauvais quand: vous avez une charge de travail d'écriture aléatoire élevée ou de grands disques.

RAID 5 est le niveau RAID le plus couramment utilisé depuis des décennies. Il fournit les performances système de tous les disques de la matrice (à l'exception des 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 lecteur, les informations peuvent être reconstruites à partir des lecteurs restants à l'aide de l'opération XOR sur les données connues.

Malheureusement, en cas de panne de disque, le processus de reconstruction nécessite beaucoup d’IO. Plus les disques du RAID sont grands, plus la reconstruction durera longtemps et plus il y a de chances que le second disque tombe en panne. Etant donné que les grands disques lents ont beaucoup plus de données à reconstruire et beaucoup moins de performances, il n’est généralement pas recommandé d’utiliser RAID5 à une vitesse inférieure ou égale à 7 200 tr / min.

La taille maximale d'un raid5 à laquelle une reconstruction est presque garantie pour produire une autre panne de disque, entraînant la perte de toutes les données, est d'environ 12 To.

Ce chiffre est basé sur le taux d’erreur de lecture irrécupérable (URE) des disques SATA de 10 ^ 14, comme indiqué par les fabricants de disques. En pratique, cela signifie que tous les 100 000 000 000 000 bits du lecteur lancent une URE. Ce qui est plus ou moins égal à 12 To.

Si nous prenons l'exemple d'un raid 5 avec sept disques de 2 To. Lorsqu'un disque tombe en panne, il en reste six. Pour reconstruire le raid, le contrôleur doit lire six disques à 2 To chacun. En regardant la figure ci-dessus, il est presque certain qu'une autre URE se produira avant la reconstruction. Une fois que cela se produit, le raid 5 et toutes ses données sont perdus.

Il est également impératif que RAID 5 soit placé derrière un cache en écriture fiable (protégé par une batterie). Cela évite les frais généraux liés aux petites écritures, ainsi que les comportements instables qui peuvent survenir lors d'une défaillance au milieu d'une écriture.

RAID 5 est la solution la plus économique d’ajout de stockage redondant à une baie, car elle nécessite la perte d’un seul disque (12g, 146 Go = 1606 Go d’espace utilisable). Il nécessite un minimum de 3 disques.

RAID 5


RAID 6

Bon quand: vous voulez utiliser RAID 5, mais vos disques sont trop gros ou trop lents

Mauvais quand: vous avez une charge de travail d'écriture aléatoire élevée.

RAID 6 est similaire à 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é en écriture est supérieure à RAID 5 et vous disposez d'un disque d'espace de moins.

Cela vaut la peine de considérer qu’un raid6 finira par rencontrer des problèmes similaires à ceux d’un raid5. Les plus gros disques entraînent des temps de reconstruction plus longs et plus d'erreurs latentes. Cela aboutit à une défaillance du raid et de toutes les données avant la reconstruction.

RAID 6


RAID 50

Bon quand: vous avez beaucoup des disques qui doivent être dans une seule matrice et RAID 10 n'est pas une option en raison de la capacité.

Mauvais quand: vous avez tellement de disques que plusieurs échecs simultanés sont possibles avant que la reconstruction ne soit terminée. Ou quand vous n'avez pas beaucoup de disques.

RAID 50 est un niveau imbriqué, un peu comme RAID 10. Il combine deux ou plusieurs matrices RAID 5 et répartit des données en bande dans un RAID 0. Cela offre à la fois des performances et une redondance à plusieurs disques, tant que plusieurs disques sont perdus. différent RAID 5 matrices.

Dans un RAID 50, la capacité du disque est n-x, x étant le nombre de RAID 5 répartis en bandes. Par exemple, si vous utilisez un simple RAID 50 à 6 disques, le plus petit possible, si vous aviez des disques 6x1 To dans deux RAID 5 répartis en bandes pour devenir un RAID 50, vous disposeriez d'un stockage utilisable de 4 To.


RAID 60

Bon quand: Vous avez un cas d'utilisation similaire à RAID 50, mais vous avez besoin de davantage de redondance.

Mauvais quand: vous n'avez pas un nombre important de disques dans la matrice.

Le niveau RAID 6 correspond au niveau RAID 60, et le niveau RAID 5 au niveau RAID 50. En général, vous disposez de plus d’un RAID 6 pour que les données soient ensuite réparties dans un RAID 0. Cette configuration permet de regrouper jusqu'à deux membres de chaque RAID 6 dans l’ensemble. échouer sans perte de données. Les temps de reconstruction des matrices RAID 60 peuvent être considérables, il est donc généralement judicieux de disposer d’un disque de secours pour chaque membre RAID 6 de la matrice.

Dans un RAID 60, la capacité du disque est n-2x, x étant le nombre de RAID 6 répartis en bandes. Par exemple, si vous utilisez un simple RAID 60 à 8 disques, le plus petit possible, si vous disposiez de disques 8x1 To dans deux RAID 6 répartis en bandes pour devenir un RAID 60, vous disposeriez d'un stockage utilisable de 4 To. Comme vous pouvez le constater, cela donne la même quantité de stockage utilisable qu’un RAID 10 donnerait sur un groupe de 8 membres. Alors que RAID 60 serait légèrement plus redondant, les temps de reconstruction seraient considérablement plus longs. En règle générale, vous ne devez envisager RAID 60 que si vous avez un grand nombre de disques.


RAID-Z

Bon quand: Vous utilisez ZFS sur un système qui le supporte.

Mauvais quand: Les performances exigent une accélération RAID matérielle.

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 effectuer un 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: écrivez les blocs de stockage du fichier sur plusieurs lecteurs physiques, y compris un bloc de parité pour chaque ensemble de bandes.

Un exemple peut rendre cela beaucoup plus clair. Supposons que vous avez 3 disques dans un pool ZFS RAID-Z, la taille de bloc est de 4 Ko. Vous écrivez maintenant sur le système un fichier de 16 Ko exactement. ZFS divisera cela en quatre blocs de 4 Ko (comme le ferait un système d'exploitation normal); alors il calculera deux blocs de parité. Ces six blocs seront placés sur les disques de la même manière que RAID-5 distribuerait les données et la parité. Il s'agit d'une amélioration par rapport à RAID5 dans la mesure où aucune lecture de bandes de données existantes n'a été effectuée pour calculer la parité.

Un autre exemple s'appuie sur le précédent. Disons que le fichier ne faisait que 4Ko. ZFS devra toujours créer un bloc de parité, mais le chargement en écriture est maintenant réduit à 2 blocs. Le troisième disque sera libre de traiter toute autre demande simultanée. Un effet similaire sera observé chaque fois que le fichier en cours d’écriture n’est pas un multiple de la taille de bloc du pool multipliée par le nombre de lecteurs moins un (c.-à-d. [Taille du fichier] <> [Taille du bloc] * [Lecteurs - 1]).

ZFS prenant en charge à la fois la gestion de volume 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 blocs de bandes. ZFS gère tout cela automatiquement avec les configurations recommandées.

La nature de ZFS contrecarre certaines des mises en garde classiques de RAID-5/6. Toutes les écritures dans ZFS sont effectuées en copie sur écriture; tous les blocs modifiés lors d'une opération d'écriture sont écrits dans un nouvel emplacement sur le disque, au lieu de remplacer les blocs existants. Si une écriture échoue pour une raison quelconque ou si le système échoue en cours d'écriture, la transaction d'écriture se produit complètement après la récupération du système (à l'aide du journal d'intention ZFS) ou ne se produit pas du tout, évitant ainsi une éventuelle corruption des données. Un autre problème avec RAID-5/6 est la perte de données potentielle ou la corruption de données silencieuse pendant les reconstructions; ordinaire zpool scrub les opérations peuvent aider à résoudre les problèmes de corruption de données ou à résoudre les problèmes avant qu'ils ne causent des pertes de données, et la vérification du contrôle de tous les blocs de données garantira que toute corruption lors d'une reconstruction est interceptée.

Le principal inconvénient de RAID-Z est qu’il s’agit toujours d’un raid logiciel (et souffre de la même latence minime générée par le processeur calculant la charge en écriture au lieu de laisser un HBA matériel le décharger). Cela peut être résolu à l'avenir par les adaptateurs de bus hôte prenant en charge l'accélération matérielle ZFS.

Autres fonctionnalités RAID et non standard

Comme il n’existe aucune autorité centrale chargée de l’application d’une quelconque fonctionnalité standard, les différents niveaux de RAID ont évolué et ont été normalisés par une utilisation courante. De nombreux fournisseurs ont fabriqué des produits qui s’écartent des descriptions ci-dessus. Il est également courant qu’ils inventent une nouvelle terminologie marketing sophistiquée pour décrire l’un des concepts ci-dessus (c’est le cas le plus souvent sur le marché SOHO). Lorsque cela est possible, essayez de faire en sorte que le fournisseur décrive réellement les fonctionnalités du mécanisme de redondance (la plupart communiquent volontairement ces informations, car il n’ya plus vraiment de sauce secrète).

Il convient de mentionner qu’il existe des implémentations de type RAID 5 qui vous permettent de démarrer une matrice avec seulement deux disques. Il stockerait les données sur une bande et la parité sur l'autre, comme dans RAID 5 ci-dessus. Cela fonctionnerait comme RAID 1 avec la surcharge supplémentaire du calcul de parité. L'avantage est que vous pouvez ajouter des disques au tableau en recalculant la parité.


190
2017-12-09 16:08



Je n'ai actuellement pas le temps d'ajouter cette information, mais en expliquant Comment vous pouvez utiliser un taux d'erreur de lecture irrécupérable pour estimer le plus grand ensemble RAID 5 pouvant être utilisé avec des disques spécifiques. - Hubert Kario
Excellent résumé! J'ai un ajout à propos de RAID5 par rapport à RAID6: Souvent, les personnes qui considèrent la fiabilité globale (risque d'échec catastrophique d'un tableau) de matrices remplies d'un grand nombre de piles ou de disques de très grande capacité choisiront RAID6. Ils le font en se basant sur la probabilité d’une deuxième panne pendant la reconstruction du premier disque. Ma règle personnelle est RAID6 lorsque le nombre de piles est supérieur à 8 ou lorsque les lecteurs individuels sont supérieurs à 1 To. Je suis incapable de trouver une calculatrice canonique mais Google et le délai de reconstruction connu nous aideront à bien calculer. - JGurtz
Il convient de noter ici que le logiciel Linux RAID10 n’est pas standard. Il permet des dispositions inhabituelles et potentiellement utiles. en.wikipedia.org/wiki/Non-standard_RAID_levels#Linux_MD_RAID_10 - Zoredache
Cela vaut peut-être la peine d’inclure des éclaircissements sur les pénalités d’écriture et la fusion de bandes. La mention RAID 2 ou 3 mérite peut-être une mention honorable, mais je ne connais aucune implémentation «réelle». Cependant, NetApp utilise toujours RAID4 (et RAID-DP est fondamentalement RAID-4 avec un lecteur de parité supplémentaire.) - Sobrique
RAID 6: le LSFR doit-il être un registre à décalage à retour linéaire (LFSR)? - α CVn


Aussi RAID UN 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 cela avec des clés USB, j'ai essayé de mettre le feu à l'atmosphère ...

enter image description here


55



Oh mon Dieu. Chopper est en train de perdre la tête. - MDMarra
Ai-je mal compris mes maths? - Chopper3
Vous savez que je vais réellement construire ce droit? - Chopper3
Raid 1000000 nécessiterait un minimum de 128 disques, mais fournirait 64 disques d’espace de stockage, aurait les mêmes performances en pire cas d’écriture que Raid 1 et toute défaillance de 2 disques adjacents tuerait le tableau. Vous décriviez le raid 0111111, ce qui aurait une assez bonne fiabilité (le raid 11111110 aurait une meilleure fiabilité à moyen terme.) - Kevin Cathcart
Oh, adorable. Niveaux RAID binaires. Et après? - α CVn