vendredi 12 janvier 2007

RAID 2 - Bit-level striping with Hamming code...

C’est le seul striping qui n’utilise pas un aspect de parité. Il s’agit ici d’un striping au niveau des bits, les bandes ne pouvant pas être étendues, puisqu’elles n’ont qu’un bit. Il est intéressant de noter qu’elles sont validées par un code de contrôle d’erreur de Hamming (ECC ou Error Correcting Code).
Le gros avantage du RAID 2 était sa disponibilité parce qu’il effectuait des corrections « on the fly », à chaud… mais cela ne sert aujourd’hui plus à grand-chose étant donné que la quasi-totalité des disques durs actuels utilisent le code ECC.
Ainsi, le RAID 2, qui est par ailleurs très mauvais en écriture et lecture aléatoires, n’est absolument plus utilisé.

Je ne m'étendrai donc pas plus sur ce niveau obsolète.

RAID 1 - Mirroring, shadowing, duplexing...

Le RAID 1 peut être appelé de différentes façons : mirroring, shadowing ou encore duplexing... Il s'agit tout simplement de copier l'intégralité des données sur chacun des disques. Ainsi, le RAID 1 est un système possédant une grande tolérance de panne. Par exemple, si l'on dispose de 3 disques en RAID 1, les données restent disponibles malgré la perte de 2 disques. Dans le cas du duplexing, il s’agit également de redonder les contrôleurs afin de gérer une tolérance de panne à ce niveau également.
Lors de la phase de lecture des données, le RAID 1 permet de paralléliser la lecture et ainsi d'obtenir, en théorie, des performances 3 fois plus rapides avec 3 disques ! En pratique, les gains en performance en lecture sont très proches des gains observés en RAID 0 lorsque la lecture est parallélisée. Toujours dans la pratique, le RAID 1 permet également d’effectuer deux lectures simultanées pour deux espaces disques différents ce qui offre la possibilité d’améliorer les files d’attentes disques. Le RAID 1 est particulièrement efficace pour la lecture aléatoire, où il est bien meilleur qu’un disque simple, même s’il reste inférieur dans ce domaine à d’autres types de RAID. Le RAID 1 ne brille pas en écriture mais se distingue en lecture : en effet, lorsqu’on écrit, on écrit la même chose sur tous les disques, donc le temps d’écriture est le même que pour un disque simple. En revanche, en lecture, on lit n fois plus vite, en parallélisant la lecture et les accès.
Toutefois, beaucoup de contrôleurs de disques ne savent pas paralléliser les lectures, ce qui engendre de faibles gains de performance en lecture in fine. Au final, l’on peut penser que le RAID 1 est extrêmement sensible au type de contrôleur fourni. Si celui-ci est de bonne qualité, comme cela est généralement le cas dans le milieu professionnel, il est possible de paralléliser les lectures, ce qui rend le RAID 1 intéressant pour un faible niveau d’écriture et un gros volume de lecture, qu’elle soit séquentielle ou aléatoire.
Enfin, il est intéressant de noter qu’un RAID 1, en écriture aléatoire, s’avère parfois plus efficace que beaucoup de RAID avec calcul de parité parce qu’il n’est pas obligé de relire les données sur les différents disques.
Il est à noter que le RAID 1, tout comme le RAID 0 aligne ses performances sur les disques les plus faibles.
L'inconvénient majeur du RAID 1 est sans aucun doute son coût élevé compte tenu de la perte importante de capacité totale des disques : la capacité finale est en effet logiquement d’un seul disque quel que soit le nombre de disques mis en place. Par exemple, monter 5 disques en RAID 1 n’offre qu’une capacité d’un seul disque !

Le RAID 1 est très utilisé en milieu professionnel pour tous les systèmes nécessitant un fort niveau de disponibilité. De plus, le RAID 1 offre une vitesse de reconstruction des données extrêmement performante puisqu’il s’agit d’une simple copie de disque. Cela assure également de minimiser les impacts sur les performances au cours de cette reconstruction. La majorité des serveurs disposent donc de ce niveau de RAID pour les disques systèmes.

Nous noterons les formules théoriques suivantes, en fonction du nombre de disques n :
- Nombre de disques au minimum : 2
- Espace disque : [Espace disque du plus petit des disques]
- Temps d'écriture : [Temps d'accès en écriture du plus lent des disques]
- Temps de lecture : (1/n) * [Temps d'accès en lecture du plus lent des disques]
- Tolérance de panne : n-1

RAID 0 - Striping (without parity)...

Il s'agit d'une version "améliorée" du JBOD permettant d'accélérer les performances en parallélisant les écritures sur l'ensemble de disque. En français, on parle d'"entrelacement" ou d'"agrégat par bandes". Le RAID 0 devrait être qualifié uniquement de AID, car il ne dispose pas de redondance.
Ainsi, si l'on dispose de 2 disques et que l'on souhaite écrire 200 Go, le RAID 0 permettra d'écrire 100 Go sur chacun des disques. La théorie permet donc d'obtenir des performances 2 fois supérieures. Dans la pratique, avec l'utilisation de 2 disques, un gain de performance de 40% est excellent, à mettre en rapport avec les 50% attendus théoriquement.
Le RAID 0 est performant partout, en lecture et en écriture, qu’elles soient aléatoires mais surtout séquentielles. Pour tout ce qui concerne des lectures ou écritures aléatoires, si le contrôleur de disque supporte des lectures indépendantes sur les différents disques, on gagne à utiliser des bandes plus larges.
Il est à noter que les performances de l'ensemble des disques durs - taille, temps d'accès, ... - s'alignent sur le disque le plus faible. Ainsi, le disque le plus petit fixera la taille, le disque le plus lent fixera le temps d'accès, ... Cette restriction est applicable pour tous les autres niveaux de RAID à l'exception du JBOD.
Malgré ses excellentes performances, le RAID 0 n'est pas utilisé pour le stockage des données en milieu professionnel car il ne dispose pas de tolérance de panne.

Nous noterons les formules théoriques suivantes, en fonction du nombre de disques n :
- Nombre de disques au minimum : 2
- Espace disque : n * [Espace disque du plus petit des disques]
- Temps d'écriture : (1/n) * [Temps d'accès en écriture du plus lent des disques]
- Temps de lecture : (1/n) * [Temps d'accès en lecture du plus lent des disques]
- Tolérance de panne : 0

JBOD - Just a Bunch Of Disks...

Il s'agit d'une simple "concaténation" d'un ensemble de disques physiques pour former un disque logique plus important, et en aucun cas ne peut être considéré comme un RAID.
Nous noterons les formules théoriques suivantes, en fonction du nombre de disques n :
- Nombre de disques au minimum : 2
- Espace disque : [Somme de l'espace disque de l'ensemble des disques]
- Temps d'écriture : >=[Temps d'accès en écriture du plus lent des disques]
- Temps de lecture : >=[Temps d'accès en lecture du plus lent des disques]
- Tolérance de panne : 0

Tout d'abord, un peu d'historique...

Lorsque l'on parle de stockage de données, on parle forcément de disques durs. Et en la matière, depuis 1987, tout le monde parle du RAID - Redundant Array of Inexpensive Disks or Redundant Array of Independant Disks. Lors de sa création, le RAID était destiné à rassembler plusieurs disques durs physiques en une seule unité logique afin de remplacer les très coûteux disques 6.5 et 9.5 pouces.

Dès 1988, Berkeley définit 5 niveaux de RAID de 1 à 5, puis rajoute au cours des années suivantes le RAID 0 et le RAID 6...
On ne distingue maintenant pas moins de 8 niveaux simples de RAID différents... Et cela sans tenir compte de toutes les combinaisons pouvant y être apportées... Une véritable jungle technologique, rarement bien expliquée, et souvent très mal utilisée... De plus, il nous faut distinguer les performances théoriques des performances réelles de ces niveaux. Et je ne parle pas bien sûr des problématiques concernant l'utilisation de RAID logique ou physique !
Au final, impossible de déterminer quand utiliser quoi, ni comment...

Afin de mieux appréhender le sujet, voici un récapitulatif rapide des différents niveaux de RAID simple...

Architecture des disques de données - Le RAID

Bonjour à tous !

Tout le monde connaît un jour ce problème : quelle est LA bonne configuration pour mon serveur ?
Il est difficile de répondre à cette question en matière de processeurs et de mémoire tant le marché évolue rapidement et tant les besoins de chacun sont différents. En revanche, il est possible d'apporter des éléments de réponse plus pérennes en matière de configuration pour les disques de données. Les arguments permettant d'établir un choix s'articulent essentiellement autour de trois grands axes :
- la sécurité des données,
- les performances,
- les coûts.

Je vous propose donc une série de post présentant les solutions en la matière, à savoir les différents niveaux de RAID...

lundi 8 janvier 2007

Juste un petit message...

Pour annoncer un futur article sur les différents niveaux de RAID, leurs points forts... Et leurs points faibles !

Alors encore un peu de patience... L'accouchement est long ;-)