web-dev-qa-db-fra.com

Quels sont les différents niveaux RAID largement utilisés et quand dois-je les considérer?

Il s'agit d'une question canonique sur les niveaux RAID.

Quels sont:

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

RAID: pourquoi et quand

RAID signifie Redundant Array of Independent Disks (certains apprennent "peu coûteux" pour indiquer qu'il s'agit de disques "normaux"; historiquement, il y avait des disques redondants en interne qui étaient très chers; car ceux-ci 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. SCSI IO est exécuté sur un volume ("LUN"), et ceux-ci sont distribués aux disques sous-jacents d'une manière qui introduit une augmentation des performances et/ou une augmentation de la redondance. L'augmentation des performances est un fonction de répartition: les données sont réparties sur plusieurs disques pour permettre aux lectures et aux écritures d'utiliser toutes les files d'attente des disques IO simultanément. La redondance est une fonction de mise en miroir. Des disques entiers peuvent être conservés en tant que copies, ou des bandes individuelles peuvent être écrites plusieurs fois. Dans certains types de raid, au lieu de copier des 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 toutes les données perdues en cas de Erreur matérielle.

Il existe plusieurs configurations qui offrent différents niveaux de ces avantages, qui sont couverts ici, et chacun a un biais vers les performances ou la redondance.

Un aspect important dans l'évaluation du niveau RAID qui fonctionnera pour vous dépend de ses avantages et des exigences matérielles (par exemple: nombre de disques).

Un autre aspect important de la plupart de ces types de RAID (0,1,5) est qu'ils assurent pas garantissent l'intégrité de vos données, car ils sont abstrait loin des données réelles stockées. Le RAID ne protège donc pas contre les fichiers corrompus. Si un fichier est corrompu par any signifie, la corruption sera mise en miroir ou parité et validée sur le disque malgré tout. Cependant, RAID-Z prétend fournir une intégrité au niveau des fichiers de vos données .


RAID à connexion directe: logiciel et matériel

Il existe deux couches sur lesquelles le RAID peut être implémenté sur un stockage directement connecté: le matériel et les logiciels. Dans les véritables solutions RAID matérielles, il existe un contrôleur matériel dédié avec un processeur dédié aux calculs et traitements RAID. Il dispose également généralement 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. De manière générale, de bons contrôleurs matériels sont plus performants que leurs homologues logiciels, mais ils ont également un coût substantiel et une complexité accrue.

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é. Ces opérations sont généralement gérées directement par le CPU. Dans les systèmes modernes, ces calculs consomment des ressources minimales, 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 .

De manière générale, si quelqu'un choisit le RAID logiciel, il doit éviter FakeRAID et utiliser le package natif du système d'exploitation pour son système, comme les disques dynamiques sous Windows, mdadm/LVM sous Linux ou ZFS sous Solaris, FreeBSD et d'autres distributions connexes . FakeRAID utilise une combinaison de matériel et de logiciel qui se traduit par l'apparence initiale du RAID matériel, mais par les performances réelles du RAID logiciel. De plus, il est généralement extrêmement difficile de déplacer la baie vers un autre adaptateur (en cas de défaillance de l'original).


Stockage centralisé

L'autre endroit où le RAID est courant est sur les périphériques de stockage centralisés, généralement appelés SAN (Storage Area Network) ou NAS (Network Attached Storage). Ces périphériques gérer leur propre stockage et autoriser les serveurs connectés à accéder au stockage de différentes manières. Étant donné que plusieurs charges de travail sont contenues sur les mêmes disques, il est généralement souhaitable d'avoir un niveau élevé de redondance.

La principale différence entre a NAS et a SAN est une exportation au niveau du bloc par rapport au système de fichiers. A SAN exporte un ensemble) "périphérique de bloc" 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. A NAS exporte un "système de fichiers" tel sous forme de fichier ou de dossier. Les exemples de NAS incluent CIFS/SMB (partage de fichiers Windows) et NFS.


RAID 0

Bon quand: la 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 disque". Il va vraiment à l'encontre du "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), puis écrit chaque morceau de données sur un disque séparé.

Cela signifie qu'une défaillance de disque unique détruit l'ensemble de la baie (car vous disposez des parties 1 et 2, mais pas de la partie 3), mais elle offre un accès disque très rapide.

Il n'est pas souvent utilisé dans les environnements de production, mais il pourrait être utilisé dans une situation où vous avez des données strictement temporaires qui peuvent être perdues sans répercussions. Il est utilisé un peu couramment pour la mise en cache des périphériques (comme un périphérique L2Arc).

L'espace disque total utilisable est la somme de tous les disques de la matrice additionné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 avez besoin de redondance

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

RAID 1 (alias Mirroring) prend vos données et les duplique à l'identique sur deux disques ou plus (bien que généralement seulement 2 disques). 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 d'assurer 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 à partir des deux disques pour doubler la vitesse de lecture. Certains ne liront que sur l'un des disques, ce qui n'offre aucun avantage supplémentaire en termes de vitesse. D'autres liront les mêmes données sur les deux disques, garantissant l'intégrité de la baie à chaque lecture, mais cela se traduira par la même vitesse de lecture qu'un seul disque.

Il est généralement utilisé dans les petits serveurs qui ont très peu d'extension de disque, tels que les serveurs 1RU qui ne peuvent avoir de l'espace que pour deux disques ou dans les postes de travail qui nécessitent une redondance. En raison de sa surcharge élevée d'espace "perdu", il peut être coûteux avec des disques de petite capacité, à 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 est la taille du plus petit disque de la baie (par exemple, 2 disques de 1 To = 1 To d'espace).

RAID 1


RAID 1E

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

Les caractéristiques de performances sont similaires à RAID1, la tolérance aux pannes est similaire à 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 1 et 0 est très important. Supposons que vous disposiez de 8 disques, cela créera 4 matrices RAID 1, puis appliquera 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 des ensembles A, B, C et D avec les disques A1, A2, B1, B2, C1, C2, D1, D2, vous pouvez perdre un disque de chaque ensemble (A, B, C ou D) et avoir toujours un tableau fonctionnel.

Cependant, si vous perdez deux disques du même ensemble, la baie est totalement perdue. Vous pouvez perdre jusqu'à (mais non garanti) 50% des disques.

Vous êtes assuré d'une vitesse élevée et d'une haute disponibilité dans RAID 10.

RAID 10 est un niveau RAID très courant, en particulier avec les disques haute capacité où une défaillance de disque unique rend une deuxième défaillance de disque plus probable avant la reconstruction de la matrice RAID. Pendant la récupération, la dégradation des performances est beaucoup plus faible que son homologue RAID 5 car il n'a qu'à lire à partir d'un seul disque pour reconstruire les données.

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

Il convient de noter que le pilote de raid logiciel du noyau Linux appelé mdpermet des configurations RAID 10 avec un nombre impair de lecteurs , c'est-à-dire un RAID 10 à 3 ou 5 disques.

RAID 10


RAID 01

Bon quand: jamais

Mauvais quand: toujours

C'est l'inverse de 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). C'est très rare à voir dans les applications commerciales, mais c'est possible avec le RAID logiciel.

Pour être absolument clair:

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

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


RAID 5

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

Mauvais lorsque: vous avez une charge de travail d'écriture aléatoire élevée ou de gros lecteurs

RAID 5 est le niveau RAID le plus 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 panne d'un seul disque, les informations peuvent être reconstruites à partir des disques restants à l'aide de l'opération XOR sur les données connues). .

Malheureusement, en cas de panne d'un disque, le processus de reconstruction est très consommateur d'ES. Plus les disques du RAID sont volumineux, plus la reconstruction prendra de temps et plus les chances de défaillance d'un deuxième disque seront élevées. Étant donné que les gros disques lents ont à la fois beaucoup plus de données à reconstruire et beaucoup moins de performances pour le faire, il n'est généralement pas recommandé d'utiliser RAID 5 avec quelque chose à 7200 tr/min ou moins.

Le problème le plus critique avec les baies RAID 5, lorsqu'elles sont utilisées dans des applications grand public, est qu'elles sont presque garanties d'échouer lorsque la capacité totale dépasse 12 To. En effet, le taux erreur de lecture irrécupérable (URE) des disques grand public SATA est de 1 pour 10.14 bits, ou ~ 12,5 To.

Si nous prenons un exemple de matrice RAID 5 avec sept disques 2 TB: lorsqu'un disque tombe en panne, il reste six disques. Pour reconstruire la matrice, le contrôleur doit lire six disques à 2 TB chacun. En regardant la figure ci-dessus, il est presque certain qu'un autre URE se produira avant la fin de la reconstruction. Une fois que cela se produit, le tableau et toutes les données qu'il contient sont perdus.

Cependant, la perte d'URE/de perte de données/de baie avec un problème RAID 5 dans les disques grand public a été quelque peu atténuée par le fait que la plupart des fabricants de disques durs ont augmenté la valeur URE de leurs nouveaux disques à un sur 10.15 morceaux. Comme toujours, consultez la fiche technique avant d'acheter!

Il est également impératif que RAID 5 soit placé derrière un cache d'écriture fiable (alimenté par batterie). Cela évite la surcharge pour les petites écritures, ainsi que le comportement instable qui peut se produire en cas d'échec au milieu d'une écriture.

RAID 5 est la solution la plus rentable d'ajouter du stockage redondant à une baie, car elle nécessite la perte d'un seul disque (par exemple, 12 disques de 146 Go = 1606 Go d'espace utilisable). Il nécessite un minimum de 3 disques.

RAID 5


RAID 6

Bon quand: vous souhaitez utiliser RAID 5, mais vos disques sont trop volumineux ou trop lents

Mauvais quand: votre charge de travail d'écriture aléatoire est é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), vous pouvez donc perdre deux disques de la baie 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.

Il convient de considérer que finalement une matrice RAID 6 rencontrera des problèmes similaires à ceux d'un RAID 5. Les disques plus gros entraînent des temps de reconstruction plus longs et des erreurs plus latentes, entraînant éventuellement une défaillance de l'ensemble de la matrice et la perte de toutes les données avant la fin d'une reconstruction.

RAID 6


RAID 50

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

Mauvais quand: vous avez tellement de disques que de nombreux échecs simultanés sont possibles avant la fin des reconstructions, ou lorsque 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 les données entre elles dans un RAID 0. Cela offre à la fois des performances et une redondance de disques multiples, tant que plusieurs disques sont perdus de différents matrices RAID 5.

Dans un RAID 50, la capacité du disque est n-x, où x est le nombre de RAID 5 répartis sur plusieurs bandes. Par exemple, si un simple RAID 50 à 6 disques, le plus petit possible, si vous aviez des disques 6x1 To dans deux RAID 5 qui étaient ensuite agrégés pour devenir un RAID 50, vous auriez 4 To de stockage utilisable.


RAID 60

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

Mauvais quand: vous n'avez pas un nombre substantiel de disques dans la baie

RAID 6 est à RAID 60 comme RAID 5 est à RAID 50. Essentiellement, vous avez plus d'un RAID 6 que les données sont ensuite réparties dans un RAID 0. Cette configuration permet jusqu'à deux membres de n'importe quel RAID 6 individuel dans l'ensemble échouer sans perte de données. Les temps de reconstruction pour les matrices RAID 60 peuvent être considérables, il est donc généralement préférable d'avoir un disque de secours pour chaque membre RAID 6 de la matrice.

Dans un RAID 60, la capacité du disque est n-2x, où x est le nombre de RAID 6 répartis sur plusieurs bandes. Par exemple, si un simple RAID 60 à 8 disques, le plus petit possible, si vous aviez des disques de 8 x 1 To dans deux RAID 6 qui étaient ensuite agrégés pour devenir un RAID 60, vous auriez un stockage utilisable de 4 To. Comme vous pouvez le voir, cela donne la même quantité de stockage utilisable qu'un RAID 10 donnerait sur une baie à 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 souhaitez envisager le RAID 60 que si vous disposez d'un grand nombre de disques.


RAID-Z

Bon quand: vous utilisez ZFS sur un système qui le prend en charge

Mauvaise 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 les systèmes de stockage et de fichiers interagissent. ZFS englobe les rôles traditionnels de gestion des volumes (RAID est une fonction d'un gestionnaire de volumes) et du système de fichiers. Pour cette raison, 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. Supposons que vous ayez 3 disques dans un pool ZFS RAID-Z, la taille de bloc est de 4 Ko. Vous écrivez maintenant un fichier sur le système qui fait exactement 16 Ko. ZFS divisera cela en quatre blocs de 4 Ko (comme le ferait un système d'exploitation normal); il calculera ensuite 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 bande de données existante n'a été lue pour calculer la parité.

Un autre exemple s'appuie sur le précédent. Supposons que le fichier ne fasse que 4 Ko. ZFS devra toujours construire un bloc de parité, mais maintenant la charge d'écriture est réduite à 2 blocs. Le troisième lecteur sera libre de traiter toutes les autres demandes simultanées. 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é par le nombre de lecteurs moins un (c'est-à-dire [Taille du fichier] <> [Taille du bloc] * [Lecteurs - 1]).

ZFS gérant à la fois la gestion du 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 du RAID-5/6. Toutes les écritures dans ZFS sont effectuées de façon copie sur écriture; tous les blocs modifiés dans 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, ce qui évite la corruption potentielle des données. Un autre problème avec RAID-5/6 est la perte potentielle de données ou la corruption silencieuse de données pendant les reconstructions; ordinaire zpool scrub les opérations peuvent aider à détecter la corruption des données ou à générer des problèmes avant de provoquer une perte de données, et la somme de contrôle de tous les blocs de données garantira que toute corruption au cours d'une reconstruction est détecté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 mineure encourue par le processeur calculant la charge d'écriture au lieu de laisser un matériel HBA le décharger). Ce problème pourrait ê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

Étant donné qu'aucune autorité centrale n'applique aucune sorte de 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 assez courant pour eux d'inventer une nouvelle terminologie marketing sophistiquée pour décrire l'un des concepts ci-dessus (cela se produit le plus souvent sur le marché SOHO). Lorsque cela est possible, essayez d'obtenir du vendeur qu'il décrive réellement la fonctionnalité du mécanisme de redondance (la plupart fourniront volontairement ces informations, car il n'y a vraiment plus 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 baie avec seulement deux disques. Il stockerait les données sur une bande et la parité sur l'autre, similaire à 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 à la baie en recalculant la parité.

200
Mark Henderson

Aussi RAID UN MILLION !!!!

128 disques donc les lectures seraient rapides, horribles écritures mais très fiables j'imagine, oh et vous obtiendriez 1/128ème de l'espace disponible, donc pas génial du point de vue budgétaire. Ne faites pas ça avec des clés USB, j'ai essayé de mettre le feu à l'atmosphère ...

enter image description here

58
Chopper3