Introduction à la terminologie et aux concepts RAID

introduction

Le stockage est une considération importante lors de la configuration d'un serveur. Presque toutes les informations importantes qui intéressent vos utilisateurs et vous-même seront écrites à un moment donné sur un périphérique de stockage afin d'être sauvegardées pour une récupération ultérieure. Les disques simples peuvent vous servir si vos besoins sont simples. Toutefois, si vous avez des exigences de redondance ou de performances plus complexes, des solutions telles que RAID peuvent être utiles.

Dans ce guide, nous parlerons de la terminologie et des concepts RAID courants. Nous discuterons des avantages et des inconvénients de l’organisation de vos périphériques dans des matrices RAID, des différences dans les technologies d’implémentation et de la façon dont les différents niveaux de RAID affectent votre environnement de stockage.

Qu'est-ce que le RAID?

RAID signifieRedundantArrays ofIndependentDisks. En combinant des disques de différents modèles, les administrateurs peuvent obtenir des performances ou une redondance supérieures à celles que la collection de disques peut offrir lorsqu’elles sont utilisées individuellement. RAID est implémenté en tant que couche entre les disques ou partitions bruts et la couche de système de fichiers.

Quand le RAID est-il une bonne idée?

Les principales valeurs fournies par RAID sont la redondance des données et les gains de performances.

La redondance vise à augmenter la disponibilité de vos données. Cela signifie que lors de certaines défaillances, comme lorsqu'un disque de stockage devient défectueux, vos informations sont toujours accessibles et le système dans son ensemble peut continuer à fonctionner jusqu'à ce que le disque soit remplacé. Il s'agit denot conçu comme un mécanisme de sauvegarde (des sauvegardes séparées sont toujours recommandées avec RAID comme avec tout autre type de stockage), mais est plutôt destiné à minimiser les interruptions lorsque des problèmes surviennent.

L'autre avantage offert par RAID dans certains scénarios est la performance. Les E / S de stockage sont souvent limitées par la vitesse d'un seul disque. Avec RAID, les données sont redondantes ou distribuées, ce qui signifie que plusieurs disques peuvent être consultés pour chaque opération de lecture, augmentant ainsi le débit total. Les opérations d'écriture peuvent également être améliorées dans certaines configurations, car chaque disque peut être invité à n'écrire qu'une fraction du total des données.

Certains inconvénients du RAID incluent une complexité de gestion accrue et souvent une réduction de la capacité disponible. Cela se traduit par des coûts supplémentaires pour la même quantité d'espace utilisable. Des dépenses supplémentaires peuvent être occasionnées par l’utilisation de matériel spécialisé lorsque la baie n’est pas entièrement gérée par logiciel.

Un autre inconvénient des configurations de baie qui se concentrent sur les performances sans redondance est le risque accru de perte totale de données. Un ensemble de données dans ces scénarios repose entièrement sur plusieurs périphériques de stockage, ce qui augmente le risque total de perte.

RAID matériel, RAID logiciel et RAID logiciel assisté par matériel

Des matrices RAID peuvent être créées et gérées à l'aide de quelques technologies différentes.

RAID matériel

Du matériel dédié appelé contrôleurs RAID ou cartes RAID peut être utilisé pour configurer et gérer le RAID indépendamment du système d'exploitation. Ceci est connu sous le nom dehardware RAID. Les véritables contrôleurs RAID matériels auront un processeur dédié à la gestion des périphériques RAID.

Cela présente de nombreux avantages:

  • Performance: les contrôleurs RAID matériels authentiques ne nécessitent pas de cycles de processeur pour gérer les disques sous-jacents. Cela signifie pas de temps système pour la gestion des périphériques de stockage connectés. Les contrôleurs de haute qualité fournissent également une mise en cache étendue, ce qui peut avoir un impact considérable sur les performances.

  • Abstracting away complexity: un autre avantage de l'utilisation des contrôleurs RAID est qu'ils soustraient la disposition des disques sous-jacents du système d'exploitation. Le RAID matériel peut présenter l’ensemble du groupe de lecteurs comme une seule unité logique de stockage. Le système d'exploitation n'a pas besoin de comprendre la configuration RAID. il peut simplement interfacer avec le tableau comme s'il s'agissait d'un seul périphérique.

  • Availability at boot: étant donné que la matrice est entièrement gérée en dehors du logiciel, elle sera disponible au moment du démarrage, permettant ainsi au système de fichiers racine lui-même d'être facilement installé sur une matrice RAID.

Le RAID matériel présente également quelques inconvénients importants.

  • Vendor lock-in: Comme la disposition RAID est gérée par le micrologiciel propriétaire sur le matériel lui-même, une matrice est quelque peu verrouillée sur le matériel utilisé pour la créer. Si un contrôleur RAID meurt, dans presque tous les cas, il doit être remplacé par un modèle identique ou compatible. Certains administrateurs recommandent d'acheter un ou plusieurs contrôleurs de sauvegarde à utiliser en cas de problème sur le premier.

  • High cost: les contrôleurs RAID matériels de qualité ont tendance à être assez chers.

Logiciel RAID

RAID peut également être configuré par le système d'exploitation lui-même. Étant donné que la relation entre les disques est définie dans le système d'exploitation au lieu du micrologiciel d'un périphérique matériel, cela s'appellesoftware RAID.

Quelques avantages du logiciel RAID:

  • Flexibility: comme RAID est géré dans le système d'exploitation, il peut être facilement configuré à partir du stockage disponible sans reconfigurer le matériel, à partir d'un système en cours d'exécution. Le logiciel RAID logiciel est particulièrement flexible, permettant de nombreux types de configuration RAID.

  • Open source: les implémentations de RAID logiciel pour les systèmes d'exploitation open source comme Linux et FreeBSD sont également open source. L'implémentation RAID n'est pas cachée et peut facilement être lue et implémentée sur d'autres systèmes. Par exemple, une grappe RAID créée sur une machine Ubuntu peut facilement être importée ultérieurement sur un serveur CentOS. Il y a peu de chance de perdre l'accès à vos données en raison de différences de logiciels.

  • No additional costs: Le RAID logiciel ne nécessite aucun matériel spécialisé, donc il n'ajoute aucun coût supplémentaire à votre serveur ou poste de travail.

Certains inconvénients du logiciel RAID sont:

  • Implementation-specific: bien que le RAID logiciel ne soit pas lié à un matériel spécifique, il a tendance à être lié à l'implémentation logicielle spécifique du RAID. Linux utilisemdadm, tandis que FreeBSD utilise un RAID basé sur GEOM, et Windows a sa propre version de RAID logiciel. Bien que les implémentations open source puissent être portées ou lues dans certains cas, le format lui-même ne sera probablement pas compatible avec les autres implémentations RAID logicielles.

  • Performance overhead: Historiquement, le RAID logiciel a été critiqué pour créer une surcharge supplémentaire. Des cycles de processeur et de la mémoire sont nécessaires pour gérer la matrice, ce qui pourrait être utilisé à d'autres fins. Cependant, des implémentations commemdadm sur du matériel moderne annulent largement ces préoccupations. Le temps système est minime et dans la plupart des cas insignifiant.

RAID logiciel assisté par matériel (Fake RAID)

Un troisième type de RAID appeléhardware-assisted software RAID, firmware RAID, ou faux RAID, est également disponible. Cela se trouve généralement dans les fonctionnalités RAID des cartes mères elles-mêmes ou dans des cartes RAID peu coûteuses. Le logiciel RAID assisté par matériel est une implémentation qui utilise un micrologiciel sur le contrôleur ou la carte pour gérer le RAID, mais utilise le processeur standard pour gérer le traitement.

Avantages du logiciel RAID assisté par matériel:

  • Multi-operating system support: étant donné que le RAID est mis en place au début du démarrage puis transféré au système d'exploitation, plusieurs systèmes d'exploitation peuvent utiliser la même matrice, ce qui peut ne pas être possible avec le RAID logiciel.

Inconvénients du RAID logiciel assisté par matériel:

  • Limited RAID support: Habituellement, seuls RAID 0 ou RAID 1 sont disponibles.

  • Requires specific hardware: comme le RAID matériel, le RAID logiciel assisté par matériel est lié au matériel utilisé pour le créer et le gérer. Ce problème est encore plus problématique lorsqu'il est inclus dans une carte mère, car une défaillance du contrôleur RAID peut signifier que vous devez remplacer la carte mère dans son intégralité pour accéder à nouveau aux données.

  • Performance overhead: comme le RAID logiciel, aucun processeur n'est dédié à la gestion du RAID. Le traitement doit être partagé avec le reste du système d'exploitation.

La plupart des administrateurs s'éloignent du logiciel RAID assisté par matériel, car il présente une combinaison des pièges des deux autres implémentations.

Terminologie

La connaissance de certains concepts courants vous aidera à mieux comprendre le RAID. Vous trouverez ci-dessous quelques termes courants que vous pourriez rencontrer:

  • RAID level: le niveau RAID d’une matrice fait référence à la relation imposée aux périphériques de stockage des composants. Les lecteurs peuvent être configurés de différentes manières, ce qui entraîne différentes caractéristiques de redondance des données et de performances. Voir la section sur lesRAID levels pour plus d'informations.

  • Striping: L'entrelacement est le processus de division des écritures dans la matrice sur plusieurs disques sous-jacents. Cette stratégie est utilisée par un certain nombre de niveaux RAID différents (voir lesnext section pour plus de détails). Lorsque les données sont réparties sur un tableau, elles sont scindées en morceaux et chaque morceau est écrit sur au moins un des périphériques sous-jacents.

  • Chunk Size: lors de la segmentation des données, la taille du bloc définit la quantité de données que chaque bloc contiendra. Le fait d’ajuster la taille du bloc en fonction des caractéristiques d’entrée / sortie attendues peut influer sur les performances relatives du tableau.

  • Parity: la parité est un mécanisme d'intégrité des données implémenté en calculant des informations à partir des blocs de données écrits dans le tableau. Les informations de parité peuvent être utilisées pour reconstruire les données en cas de panne d’un lecteur. La parité calculée est placée sur un périphérique distinct de celui des données à partir desquelles elle est calculée et, dans la plupart des configurations, est répartie sur les lecteurs disponibles pour améliorer les performances et la redondance.

  • Degraded Arrays: les baies dotées de redondance peuvent subir différents types de pannes de disque sans perdre de données. Lorsqu'un module RAID perd un périphérique mais qu'il est toujours opérationnel, on dit qu'il est en mode dégradé. Les baies dégradées peuvent être reconstituées pour devenir pleinement opérationnelles une fois le matériel défaillant remplacé, mais elles pourraient souffrir d'une baisse des performances pendant ce temps.

  • Resilvering: la réargenture, ou resynchronisation, est le terme utilisé pour reconstruire une matrice dégradée. En fonction de la configuration RAID et de l'impact de la défaillance, vous pouvez le faire en copiant les données des fichiers existants dans la matrice ou en calculant les données en évaluant les informations de parité.

  • Nested Arrays: les groupes de matrices RAID peuvent être combinés en matrices plus grandes. Ceci est généralement fait pour tirer parti des fonctionnalités de deux ou plusieurs niveaux RAID différents. Généralement, les matrices avec redondance (telles que RAID 1 ou RAID 5) sont utilisées en tant que composants pour créer une matrice RAID 0 afin d’améliorer les performances.

  • Span: Malheureusement, span a quelques significations différentes lors de la discussion des tableaux.

    • Dans certains contextes, «span» peut signifier joindre deux ou plusieurs disques de bout en bout et les présenter comme un seul périphérique logique, sans amélioration des performances ou de la redondance. Ceci est également connu sous le nom d'arrangement linéaire lorsqu'il s'agit de l'implémentation demdadmde Linux.

    • Un «span» peut également faire référence au niveau inférieur des baies qui sont combinées pour former le niveau suivant lors de la discussion des niveaux RAID imbriqués, comme RAID 10.

  • Scrubbing: Le nettoyage, ou vérification, est le processus de lecture de chaque bloc d'un tableau pour s'assurer qu'il n'y a pas d'erreurs de cohérence. Cela permet de garantir que les données sont identiques sur tous les périphériques de stockage et d'éviter les situations dans lesquelles des erreurs silencieuses peuvent provoquer une corruption, en particulier lors de procédures sensibles telles que la reconstruction.

Niveaux RAID

Les caractéristiques d'une matrice sont déterminées par la configuration et la relation des disques, appelées sesRAID level. Les niveaux RAID les plus courants sont les suivants:

RAID 0

Le RAID 0 combine deux périphériques ou plus en répartissant les données par bande. Comme mentionné ci-dessus, la segmentation est une technique qui décompose les données en morceaux, puis les écrit en alternance sur chaque disque de la matrice. L'avantage de ceci est que, puisque les données sont distribuées, toute la puissance de chaque périphérique peut être utilisée pour les lectures et les écritures. Le profil de performance théorique d'une matrice RAID 0 est simplement la performance d'un disque individuel multipliée par le nombre de disques (les performances dans le monde réel seront inférieures à celles-ci). Un autre avantage est que la capacité utilisable de la matrice est simplement la capacité combinée de tous les disques constitutifs.

Bien que cette approche offre d'excellentes performances, elle présente également des inconvénients très importants. Étant donné que les données sont scindées et réparties entre chacun des disques de la matrice, la défaillance d'un seul périphérique entraînera la destruction de la totalité de la matrice et toutes les données seront perdues. Contrairement à la plupart des autres niveaux RAID, les baies RAID 0 ne peuvent pas être reconstruites car aucun sous-ensemble de composants ne contient suffisamment d'informations sur le contenu pour reconstruire les données. Si vous exécutez une grappe RAID 0, les sauvegardes deviennent extrêmement importantes, car tout votre ensemble de données dépend également de la fiabilité de chacun des disques de la grappe.

RAID 1

RAID 1 est une configuration qui met en miroir des données entre deux périphériques ou plus. Tout ce qui est écrit dans le tableau est placé sur chacun des périphériques du groupe. Cela signifie que chaque périphérique dispose d'un ensemble complet de données disponibles, offrant une redondance en cas de défaillance du périphérique. Dans une grappe RAID 1, les données seront toujours accessibles tant qu'un seul périphérique de la grappe fonctionne toujours correctement. Le module RAID peut être reconstruit en remplaçant les lecteurs défaillants. Les périphériques restants seront alors utilisés pour copier les données sur le nouveau périphérique.

Cette configuration a aussi des pénalités. Comme RAID 0, la vitesse de lecture théorique peut toujours être calculée en multipliant la vitesse de lecture d'un disque individuel par le nombre de disques. Pour les opérations d'écriture, toutefois, les performances maximales théoriques seront celles du périphérique le plus lent de la matrice. Cela est dû au fait que toute la donnée doit être écrite sur chacun des disques de la matrice. De plus, la capacité totale de la matrice sera celle du plus petit disque. Ainsi, une grappe RAID 1 avec deux périphériques de taille égale aura la capacité utilisable d’un seul disque. L'ajout de disques supplémentaires peut augmenter le nombre de copies redondantes des données, mais n'augmentera pas la quantité de capacité disponible.

RAID 5

RAID 5 présente certaines caractéristiques des deux niveaux RAID précédents, mais présente un profil de performances et des inconvénients différents. En RAID 5, les données sont réparties sur les disques de la même manière qu’une matrice RAID 0. Toutefois, pour chaque bande de données écrites dans le tableau, des informations de parité, une valeur calculée mathématiquement pouvant être utilisée pour la correction d'erreur et la reconstruction de données, seront écrites sur l'un des disques. Le disque qui reçoit le bloc de parité calculé à la place d'un bloc de données pivotera avec chaque bande écrite.

Cela présente quelques avantages importants. Comme pour les autres baies avec répartition, les performances de lecture tirent profit de la possibilité de lire simultanément plusieurs disques. Les matrices RAID 5 gèrent la perte de tout disque de la matrice. Les blocs de parité permettent la reconstruction complète des données si cela se produit. La parité étant distribuée (certains niveaux RAID moins courants utilisent un lecteur de parité dédié), chaque disque contient une quantité équilibrée d'informations de parité. Alors que la capacité d’une grappe RAID 1 est limitée à la taille d’un seul disque (tous les disques ayant des copies identiques des données), avec la parité RAID 5, un niveau de redondance peut être atteint au prix de la valeur d’un disque unique. espace. Ainsi, quatre disques 100G dans une grappe RAID 5 donneraient 300G d’espace utilisable (les 100G restants seraient pris en charge par les informations de parité distribuée).

Comme pour les autres niveaux, RAID 5 présente des inconvénients importants qui doivent être pris en compte. Les performances du système peuvent être considérablement ralenties par des calculs de parité à la volée. Cela peut avoir un impact sur chaque opération d'écriture. Si un disque tombe en panne et que la matrice entre dans un état dégradé, elle introduira également une pénalité significative pour les opérations de lecture (les données manquantes doivent être calculées à partir des disques restants). De plus, lorsque le module est en train de réparer après avoir remplacé un lecteur défaillant, chaque lecteur doit être lu et le processeur utilisé pour calculer les données manquantes afin de reconstruire les données manquantes. Cela peut stresser les lecteurs restants, ce qui peut parfois entraîner des défaillances supplémentaires, ce qui entraîne la perte de toutes les données.

RAID 6

RAID 6 utilise une architecture similaire à RAID 5, mais avec des informations de double parité. Cela signifie que la matrice peut supporter deux disques en panne. Ceci est un avantage significatif en raison de la probabilité accrue d'une défaillance supplémentaire du disque au cours du processus de reconstruction intensive après qu'une erreur se soit produite. Comme pour les autres niveaux de RAID utilisant la segmentation, les performances de lecture sont généralement bonnes. Tous les autres avantages de RAID 5 existent également pour RAID 6.

En ce qui concerne les inconvénients, RAID 6 prend en charge la double parité supplémentaire avec la capacité d’un disque supplémentaire. Cela signifie que la capacité totale de la matrice correspond à l’espace combiné des unités impliquées, moins deux unités. Le calcul permettant de déterminer les données de parité pour RAID 6 est plus complexe que RAID 5, ce qui peut entraîner de moins bonnes performances d'écriture que RAID 5. RAID 6 souffre des mêmes problèmes de dégradation que RAID 5, mais la redondance supplémentaire du disque supplémentaire évite la possibilité que des défaillances supplémentaires effacent les données lors des opérations de reconstruction.

RAID 10

RAID 10 peut être implémenté de différentes manières, ce qui a un impact sur ses caractéristiques générales:

  • RAID imbriqué 1 + 0

Traditionnellement, RAID 10 fait référence à un RAID imbriqué, créé en configurant d’abord au moins deux miroirs RAID 1, puis en les utilisant comme composants pour créer un ensemble RAID 0 par bandes. Ceci est parfois appelé maintenant RAID 1 + 0 pour être plus explicite à propos de cette relation. En raison de cette conception, un minimum de quatre disques est requis pour former une matrice RAID 1 + 0 (RAID 0 réparti sur deux baies RAID 1 composées de deux unités chacune).

Les baies RAID 1 + 0 présentent les caractéristiques hautes performances d'une baie RAID 0, mais au lieu de compter sur des disques uniques pour chaque composant de la bande, une baie en miroir est utilisée, offrant une redondance. Ce type de configuration peut gérer les défaillances de disque dans n’importe quel de ses ensembles RAID 1 en miroir tant qu’au moins un des disques de chaque RAID 1 reste disponible. La matrice globale est tolérante aux pannes de manière non équilibrée, ce qui signifie qu’elle peut gérer un nombre différent de pannes en fonction de l’endroit où elles se produisent.

Étant donné que RAID 1 + 0 offre à la fois redondance et hautes performances, il s'agit généralement d'une très bonne option si le nombre de disques requis n'est pas prohibitif.

  • RAID 10 de mdadm

mdadm de Linux propose sa propre version de RAID 10, qui reprend l’esprit et les avantages de RAID 1 + 0, mais modifie l’implémentation actuelle pour être plus flexible et offrir des avantages supplémentaires.

Comme RAID 1 + 0, le RAID 10 demdadm autorise des copies multiples et des données entrelacées. Cependant, les périphériques ne sont pas arrangés en termes de paires en miroir. Au lieu de cela, l'administrateur décide du nombre de copies à écrire pour le tableau. Les données sont fragmentées et écrites sur le tableau en plusieurs copies, en s'assurant que chaque copie d'un bloc est écrite sur un périphérique physique différent. Le résultat final est que le même nombre de copies existe, mais le tableau n'est pas autant contraint par l'imbrication sous-jacente.

Cette conception du RAID 10 présente des avantages notables par rapport au RAID 1 + 0 imbriqué. Comme il ne compte pas sur l’utilisation de tableaux en tant que blocs de construction, il peut utiliser un nombre impair de disques et dispose d’un nombre minimal de disques plus petit (seuls 3 périphériques sont requis). Le nombre de copies à conserver est également configurable. La gestion est simplifiée car vous n'avez besoin que d'adresser un seul tableau et pouvez allouer des pièces de rechange pouvant être utilisées pour n'importe quel disque de la matrice au lieu d'un seul.

Conclusion

Le niveau RAID le plus approprié pour votre serveur dépend fortement de votre cas d'utilisation et de vos objectifs. Le coût total et les contraintes imposées par votre matériel peuvent également avoir un impact significatif lors de la prise de décision.

Pour en savoir plus sur l’utilisation de l’outilmdadm de Linux pour configurer des matrices RAID, suivez notre guide surcreating arrays with mdadm on Ubuntu 16.04. Ensuite, ce serait une bonne idée de suivre notre guide surhow to manage mdadm arrays on Ubuntu 16.04 pour apprendre à gérer les tableaux existants.