Skip to content

Les systèmes RAID – Introduction

Attention ! Ce contenu a été publié il y a 8 ans. Merci de lire cette page en gardant son âge à l'esprit, son contenu étant potentiellement obsolète.

Il y a quelques temps et dans le cadre de mes études en Informatique et systèmes finalité réseaux & télécommunications, j’ai réalisé une présentation sur la technologie RAID, ses avantages et inconvénients ainsi que les différentes technologies existantes.

Je vais donc vous proposer une petite série d’article sur les RAID, basée sur mon travail de l’époque remis à jour.

Dans un premier temps, nous évoquerons ce qu’est un RAID et quelques notions sur ceux-ci pour ensuite voir plus en détails dans de prochains articles les différents niveau de RAID ainsi que leurs mises en place, sous Debian.

Qu’est-ce qu’un RAID ?

En informatique, le mot RAID désigne les techniques permettant de
répartir des données sur plusieurs disques durs classiques afin d’améliorer, soit la tolérance aux pannes, soit la sécurité, soit les performances de l’ensemble, ou une répartition de tout cela.

L’acronyme RAID a été défini en 1987 par l’Université de Berkeley, dans un article nommé « A Case for Redundant Arrays of Inexpensive Disks (RAID) », soit « regroupement redondant de disques peu onéreux ». Aujourd’hui, le mot est devenu l’acronyme de « Redundant Array of Independent (or inexpensive) Disks », ce qui signifie « regroupement redondant de disques indépendants ».

Le coût au mégaoctet des disques durs ayant diminué d’un facteur 1 300 000 en 29 ans, aujourd’hui le RAID est choisi pour d’autres raisons que le coût de l’espace de stockage.

La technique RAID permet d’avoir une grande fiabilité, les données étant découpées en différents segment et chacun de ces segments sont dupliqués dans des disques physiquement différents.

/!\ Un RAID n’est pas un système de sauvegarde et ne peut vous protéger a 100% contre les pertes de données ! /!\

Le RAID offre des performances supérieures à l’utilisation d’un seul disque car les segments étant répartis sur plusieurs disques, l’ordinateur peut lire plusieurs disques durs simultanément et donc plusieurs segments de données. Certain type de RAID ne nécessitent pas la duplication complète des données pour assurer la fiabilité mais utilisent le principe de contrôle de parité, comme le RAID 5, dont nous parlerons plus en détails plus loin.

Un RAID regroupe les disques durs physiques en une seule unité logique gérée soit par le système d’exploitation, soit par le chipset de votre carte mère, soit via une solution de RAID Matériel nécessitant l’ajout d’une carte contrôleur dans l’ordinateur.

Les trois concepts fondamentaux du RAID :

  • Le « mirroring », appelé miroitage en français, qui reproduit les données sur plusieurs disques.
  • Le « striping », ou volume agrégé par bandes, qui découpe l’information à stocker en plusieurs segments afin de répartir l’information sur les différents disques physiques.
  • La correction d’erreur, soit la tolérance aux pannes, est un service RAID qui permet de détecter les problèmes éventuels où sont stockées les données redondantes, avec la capacité de les réparer.

Selon la configuration système choisie, les différents niveaux de RAID emploient un ou plusieurs de ces concepts.

Le RAID est habituellement utilisé sur les serveurs, là où la sécurité des données et/ou la performance d’accès est primordial. Toutefois cette technologie peut être installée sur n’importe quel poste de travail, dans des cas où le traitement de données est particulièrement lourd, comme pour des montages vidéo et audio, ou tout simplement pour une question de performance (vitesse de chargement des jeux, etc.).

Les contrôleurs RAID « matériels »

Introduction

Le RAID est très utilisé dans le monde professionnel. En effet, beaucoup d’Entreprises ne peuvent se permettre de perdre des données ou bien de voire le réseau paralysé à cause d’une panne sur un disque dur. C’est pourquoi de nombreux serveurs qui reçoivent beaucoup de requêtes (serveur Web, serveur de messagerie, serveur hébergeant une base de données, …) ou qui manipulent de gros volumes de données (serveur de fichiers) utilisent le RAID.

Dans le cas du RAID matériel, une carte ou un composant est dédié à la gestion des opérations. Le contrôleur RAID peut être interne à l’unité centrale (carte d’extension) ou déporté dans une baie de stockage.

LSI MegaRAID 9271-8i
Une carte RAID LSI MegaRAID 9271-8i

Avantage et inconvénient des contrôleurs RAID

Un contrôleur raid est en général doté d’un processeur spécifique, de mémoire, éventuellement d’une batterie de secours, et est capable de gérer tous les aspects du système de stockage RAID grâce au microcode embarqué (firmware).

Du point de vue du système d’exploitation, le contrôleur RAID matériel offre une virtualisation complète du système de stockage. Le système d’exploitation considère chaque volume RAID comme un disque et n’a pas connaissance de ses constituants physiques.

Avantage

  • Les contrôleurs RAID matériels permettent la détection des défauts, le remplacement à chaud des unités défectueuses et offrent la possibilité de reconstruire de manière transparente les disques défaillants. Mais les systèmes d’exploitation évolués permettent également cela si le matériel le permet.
  • La charge système (principalement l’occupation du bus) est allégée. (surtout dans des configurations avec beaucoup de disques et une forte redondance)
  • Les vérifications de cohérence, les diagnostics et les maintenances sont effectués en arrière-plan par le contrôleur sans solliciter de ressources système.

Inconvénient

  • Les contrôleurs RAID matériels utilisent chacun leur propre système pour gérer les unités de stockage. En conséquence, au contraire d’un RAID logiciel, des disques transférés d’un système à un autre ne pourront pas être récupérés si le contrôleur RAID n’est pas exactement le même (firmware compris). Il est donc conseillé de posséder une deuxième carte en cas de panne de la première.
  • Les cartes d’entrée de gamme possèdent des processeurs de puissance bien inférieure à celle des ordinateurs actuels. On peut donc avoir de bien moins bonnes performances qu’un RAID logiciel pour un prix plus important.
  • Le coût : l’entrée de gamme se situe aux alentours de 200 € mais les cartes plus performantes peuvent souvent dépasser les 1 000 €.
  • Le contrôleur RAID est lui-même un composant matériel, qui peut tomber en panne. Son logiciel (firmware) peut contenir des erreurs, ce qui constitue un autre risque de panne (un nouveau « single-point-of-failure »). Il est peu probable qu’un RAID actuel contienne des erreurs de programmation (bugs) car il est garanti en moyenne une dizaine d’années.
  • Les différents fabricants de contrôleurs RAID fournissent des outils de gestion logicielle très différents les uns des autres (et de qualité parfois inégale). À l’opposé, les outils de gestion du RAID logiciel fournis avec un système d’exploitation sont généralement bien intégrés dans ce système.
  • La durée du support d’un contrôleur RAID par son constructeur (correction de bugs dans le firmware, par exemple), parfois liée à l’arrivée de nouveaux produits rendant les anciens obsolètes, peut-être moins longue ou plus volatile que le support du RAID logiciel par le fournisseur du système d’exploitation. Le constructeur peut même disparaitre (ce qui est assez rare parmi les fabricants de systèmes d’exploitation).
  • Une moindre souplesse par rapport au RAID logiciel, qui dispose d’une couche d’abstraction permettant de gérer du RAID au-dessus de tout types de périphériques blocs supportés par le système d’exploitation, locaux ou distants (SATA, SAS, SCSI, iSCSI… et toutes les combinaisons possibles entre eux). Les contrôleurs RAID sont généralement spécialisés pour un seul type de périphérique.

Depuis l’existe de la norme SATA, les cartes RAID fleurissent sur le marché. En effet, cette nouvelle interface est bien plus propice à la mise en place du RAID que l’ancienne interface P-ATA (IDE). D’une part grâce aux débits plus élevés (jusqu’à 6Gbps en SATA 3) et d’autre part grâce à la gestion du branchement/débranchement à chaud ou hotplug.

Les contrôleurs RAID « pseudo-matériel »

L’extrême majorité des contrôleurs RAID bon marché intégrés à de nombreuses cartes mères depuis 2004 gèrent souvent le RAID 0, 1 et 5 et leurs combinaisons respectives. Malgré le discours marketing qui tend systématiquement à induire en erreur sur ce point, il ne s’agit pas de RAID matériel à proprement parler mais plutôt d’un contrôleur de disque doté de quelques fonctions avancées.

D’un point de vue strictement matériel, cette solution hybride n’est pas différente d’un RAID logiciel. Elle diffère cependant sur l’emplacement des routines logicielles de gestion du RAID.

Avantages

  • L’intérêt principal de ce type de RAID est d’apporter une solution au troisième problème du RAID logiciel, à savoir qu’il ne peut pas toujours servir à héberger les fichiers du système d’exploitation puisque c’est justement ce dernier qui permet d’y accéder.
  • Dans ce type de RAID, la présence d’un BIOS intégrant les routines logicielles basiques de gestion du RAID permet de charger en mémoire les fichiers essentiels du système d’exploitation (le noyau et les pilotes essentiels).
  • Puis, le pilote du contrôleur intègre les mêmes routines logicielles de gestion du RAID et fournit alors aux couches supérieures de l’OS non pas un accès aux périphériques mais un accès au volume RAID qu’il émule.

Inconvénients

  • En dehors de cet avantage important, ce type de RAID cumule les défauts des deux autres approches :
  • Les limitations de performances sont les mêmes que pour le raid logiciel car il s’agit effectivement d’un RAID logiciel camouflé.
  • Un problème important posé par ces contrôleurs hybrides est leur piètre gestion des défauts matériels et leurs fonctionnalités BIOS généralement limitées.
  • L’interopérabilité est très mauvaise surtout si l’on considère qu’il s’agit généralement de matériel intégré aux cartes mères des ordinateurs. Pire, le changement de carte-mère (voir simplement de version de bios), si la nouvelle utilise des jeux de puces différents, peut imposer de reconstruire le RAID entièrement en entraînant une perte des données. De manière générale, une reconstruction est possible si l’on reste dans des contrôleurs RAID de même marque mais de modèles différents, mais il n’existe pas de règle définie de compatibilité.
  • La fiabilité annoncée de ces dispositifs est assez controversée.

Les RAID « logiciel »

Dans le cas d’un RAID logiciel, toute la logique et la gestion du RAID est entièrement assurée par une couche applicative au sein de votre système d’exploitation. Cette applicatif (sous Debian, par exemple, il s’agit de « mdadm ») va venir s’intercaler entre les pilotes matériel et le système de fichiers en « émulant » un périphérique de stockage.

L’ensemble des opérations étant assurées par un applicatif, cela consomme des ressources système et du temps CPU. Suivant le niveau de RAID que vous utilisez et la puissance de la machine, les performances obtenue peuvent être variable allant du simple au double en terme d’écriture sur un RAID 5 par exemple.

Avantages

  • Un RAID logiciel est peu onéreux puisqu’il ne requiert aucun matériel supplémentaire.
  • C’est la méthode la plus souple et qui offre le plus de garantie en terme de compatibilité et de pérennité.
  • De nos jours les performances sont dans certains scénarios équivalente à celles obtenues avec un contrôleur RAID matériel en raison de la puissance de nos CPU.

Inconvénients

  • Certaines fonctionnalités telles que le remplacement à chaud des disques ne sont tout simplement pas disponibles ou bien mal implémentées
  • Cette solution étant logicielle, le RAID monopolise une partie des ressources du système
  • Il est dans certains cas impossible d’utiliser un RAID logiciel sur le disque système (par exemple, Windows toutes versions)

Choix du contrôleur

De nombreuses cartes mères proposent un contrôleur RAID intégré (Intel, Marvel, etc.). Il est toujours préférable de choisir un contrôleur dédié ou bien encore d’utiliser un RAID logiciel. En effet, les contrôleur RAID dédié sont bien souvent plus performant et bien plus fiable tandis qu’un RAID logiciel apporte plus de flexibilité et une maintenabilité facilitée.

Quelques notions supplémentaires

Le hotspare

Certaine cartes RAID et/ou périphériques NAS permettent de brancher un ou plusieurs disques de rechange (spare disks). Ces disques ne sont pas utilisés sauf en cas de panne de l’un des disques. Voici un petit exemple :

Ici, nous avons mis en place un RAID 1 avec deux disques et on a aussi rajouté un disque de spare (bien entendu il faut un équipement qui supporte le hotspare).Exemple de RAID 1 avec un spare

Si l’un des disques de l’ensemble RAID un vient à tomber en panne, il sera immédiatement remplacé par le disque de spare. Ce disque est alors reconstruit à partir des données présentes sur les autres disques, ce qui peut durer plusieurs heures en fonction de la quantité de données. Une fois le disque reconstruit, le système revient à un niveau optimal de sécurité et de performances.

Une fois le disque de rechange mis en service, il faut procéder à l’échange physique du disque en panne par un nouveau disque qui pourra jouer le rôle de nouveau disque de rechange.

Cela permet d’augmenter la tolérance de panne de l’ensemble RAID car si on utilise un disque de spare, on peut se permettre de perdre un disque supplémentaire sans perte de données. Cela est bien entendu coûteux en termes d’équipement sur des petits ensembles RAID. Par contre sur de gros ensembles (5 disques et plus) cela peut devenir très intéressant.

Par exemple, si l’on a une carte RAID adaptée on peut créer un RAID 50 avec 16 disques durs (4 ensembles RAID 5 de quatre disques durs chacun montés en RAID 0) et rajouter un 17è disque de secours. Si l’un des disques de l’un des ensembles RAID 5 tombe en panne alors le disque de rechange prend instantanément le relais ce qui permet de conserver la tolérance de panne.

L’administrateur peut ensuite changer tranquillement le disque défectueux sachant que le système reste sécurisé.

Attention :

Il ne faut pas confondre le hotspare avec le hotplug. 

Le hotplug (encore appelé hotswap) est une technologie qui permet de brancher à chaud diverses équipement.

Par exemple, l’USB supporte le hotplug (on peut brancher/débrancher des périphériques USB même lorsque le système est en fonctionnement). Au niveau des périphériques de stockages, seuls deux interfaces supportent le branchement à chaud : les connectiques SCSI et le SATA.

Pour conclure, le hotspare permet d’augmenter la sécurité d’un ensemble RAID. Il est généralement supporté par les cartes RAID « haut de gamme », par les NAS mais aussi certaine carte mère récente et haut de gamme.

Enfichage à chaud (hotplug/hotwap)

On parle abusivement de disques pouvant être enfichés à chaud (hotplug/hotswap), alors qu’en réalité, c’est la baie de disques du système ainsi que le contrôleur qui doivent être conçus de manière à permettre le retrait ou l’insertion de disques durs alors que le système est sous tension.

Cette fonctionnalité n’est pas disponible avec toutes les technologies :

Cette fonctionnalité est gérée par l’ensemble des disques SATA et SCSI (sous réserve que le contrôleur le gère également), bien que le bus puisse être perturbé au moment de l’échange (baisse de débit sur l’ensemble de celui-ci, etc.).

Cela permet d’ajouter des disques de manière dynamique, de sorte qu’il soit possible de faire évoluer le système de stockage de données, de remplacer un matériel défectueux sans qu’il soit nécessaire d’interrompre le fonctionnement du système informatique.

L’utilisation de systèmes de connexion à chaud permet donc d’éviter l’indisponibilité durant une opération de maintenance.

Cache

Le cache est une mémoire RAM qui permet de stocker des informations à lire ou à écrire sur l’ensemble RAID. Ce tampon a des performances très supérieures à celles des disques, il permet au système de lire ou d’écrire une rafale d’informations puis de passer à une autre tâche pendant que le contrôleur RAID se charge de « dépiler » les opérations à effectuer. Le cache a donc une influence positive très importante sur les performances globales du système.

Le cache de lecture ou « antémémoire de lecture » est une mémoire où sont pré-chargées les données dont le système va avoir besoin. Son fonctionnement est complexe dans la mesure où le contrôleur n’a aucune certitude sur les lectures qui vont lui être demandées, il n’apporte un gain de performance que dans le cas où la prédiction se révèle exacte. Les lectures de données entrent le plus souvent dans deux catégories : des lectures séquentielles de données et des accès répétés à de mêmes données. La majorité des caches de lecture reposent donc d’une part sur la conservation en RAM (sur le contrôleur) des données récemment écrites ou lues et d’autre part sur une lecture des données suivantes dans le cas où l’on vient d’effectuer une lecture séquentielle importante. La taille du cache de lecture et la pertinence du système de prédicat a un très grand impact sur les performances en lecture.

Le cache d’écriture est un tampon dans lesquelles sont placées les données à écrire sur les disques avant d’être transférées sur ceux-ci. Lorsqu’il n’est pas saturé, c’est-à-dire lorsque la quantité de données à écrire ne dépasse pas la taille du cache, le système peut envoyer les données à écrire très rapidement et effectuer d’autres tâches pendant que le contrôleur se charge d’écrire physiquement sur les disques. Le cache d’écriture accroît donc les performances en écriture du système. Cependant, dans le cas d’écritures dont le volume dépasse largement la capacité du cache, le système devra bien attendre que le cache d’écriture se vide avant de pouvoir envoyer davantage de données. L’effet accélérateur du cache devient alors presque nul voire négatif sur certains contrôleurs.

Le cache d’écriture pose un problème de sécurité important. En effet, La mémoire cache étant volatile, les données écrites par le système dans cette mémoire mais pas encore transférées sur les disques sont perdues en cas de rupture d’alimentation ou de défaillance. Il peut s’ensuivre de très lourdes pertes ou corruptions de données. Dans certains cas graves l’intégrité du système de fichier peut être affectée et tout le volume peut alors devenir illisible. Pour pallier ce problème, on recommande de n’activer le cache d’écriture que si la machine est alimentée par l’intermédiaire d’un onduleur et que si le contrôleur RAID possède une batterie (cette batterie permet de conserver le contenu du cache pendant 30 minutes à 6 heures selon les modèles de contrôleurs et la taille de la batterie).

Seuls les véritables contrôleurs « RAID matériel » sont munis d’une mémoire cache. Pour les autres, des équivalents logiciels peuvent tenir lieu de cache.

A noter également que les contrôleurs RAID récent peuvent notamment utilisée un disque SSD en tant que cache. Les SSD disposant de vitesse de lecture et d’écriture beaucoup plus importante que les disques a plateau, cela prend tout son sens notamment grâce au faible tarif des disques SSD de nos jours.

 

Attention ! Ce contenu a été publié il y a 8 ans. Merci de lire cette page en gardant son âge à l'esprit, son contenu étant potentiellement obsolète.
Published inadministration systèmetutoriels

Be First to Comment

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.


Fatal error: Uncaught TypeError: flock(): supplied resource is not a valid stream resource in /var/www/vhosts/maiko.sh/domains/maiko.sh/blog/wp-content/plugins/w3-total-cache/Cache_File_Generic.php:64 Stack trace: #0 /var/www/vhosts/maiko.sh/domains/maiko.sh/blog/wp-content/plugins/w3-total-cache/Cache_File_Generic.php(64): flock() #1 /var/www/vhosts/maiko.sh/domains/maiko.sh/blog/wp-content/plugins/w3-total-cache/PgCache_ContentGrabber.php(2191): W3TC\Cache_File_Generic->set() #2 /var/www/vhosts/maiko.sh/domains/maiko.sh/blog/wp-content/plugins/w3-total-cache/PgCache_ContentGrabber.php(457): W3TC\PgCache_ContentGrabber->_maybe_save_cached_result() #3 [internal function]: W3TC\PgCache_ContentGrabber->ob_callback() #4 /var/www/vhosts/maiko.sh/domains/maiko.sh/blog/wp-content/plugins/w3-total-cache/Util_Bus.php(21): call_user_func() #5 /var/www/vhosts/maiko.sh/domains/maiko.sh/blog/wp-content/plugins/w3-total-cache/Generic_Plugin.php(563): W3TC\Util_Bus::do_ob_callbacks() #6 [internal function]: W3TC\Generic_Plugin->ob_callback() #7 /var/www/vhosts/maiko.sh/domains/maiko.sh/blog/wp-includes/functions.php(5420): ob_end_flush() #8 /var/www/vhosts/maiko.sh/domains/maiko.sh/blog/wp-includes/class-wp-hook.php(324): wp_ob_end_flush_all() #9 /var/www/vhosts/maiko.sh/domains/maiko.sh/blog/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #10 /var/www/vhosts/maiko.sh/domains/maiko.sh/blog/wp-includes/plugin.php(517): WP_Hook->do_action() #11 /var/www/vhosts/maiko.sh/domains/maiko.sh/blog/wp-includes/load.php(1270): do_action() #12 [internal function]: shutdown_action_hook() #13 {main} thrown in /var/www/vhosts/maiko.sh/domains/maiko.sh/blog/wp-content/plugins/w3-total-cache/Cache_File_Generic.php on line 64