vendredi 12 janvier 2007

RAID 5 - Block-level striping with distributed parity...

Le RAID 5 fonctionne comme le RAID 4, selon un “block-level” qui permet de définir la taille des bandes d’enregistrement. La grande différence avec le RAID 4, c’est que la parité est distribuée : le RAID 5 écrit ainsi ses bits de parité sur chaque disque à tour de rôle. Ce concept permet donc de supprimer le goulot d’étranglement sur le disque de parité.
Beaucoup moins cher, parce que très utilisé et très commun sur le marché, le RAID 5 présente de nombreux avantages. C’est d'ailleurs selon moi le meilleur compromis coût/performance pour un grand nombre de raisons.
Sa tolérance de panne d’un disque lui assure un niveau de sécurité satisfaisant.
Au niveau théorique, les capacités du RAID 5 en termes de stockage sont de n-1 disques, et ses vitesses d’écriture et de lecture sont divisées par n-1, ce qui lui confère des performances honorables.
Il se trouve donc supérieur au RAID 1 pour l’écriture, même s’il lui est légèrement inférieur en lecture ; à priori, il est donc plus performant pour des disques où le volume d’écritures est important. Ceci n’est totalement vrai que si l’on ne fait que de l’écriture séquentielle. En effet, au cours d’une écriture aléatoire, certains blocs sont modifiés, et nécessitent donc la modification de la parité de la bande. Il faut donc lire l’ensemble de la bande pour reconstituer la parité ; chaque écriture aléatoire donne donc lieu à deux entrées/sorties. Et avec 2 I/O, le système se voit très ralenti ! C’est le gros point noir…
Cependant, dans la pratique, on s’aperçoit que le RAID 5 reste très employé, en particulier dans les bases de données ; alors même que celles-ci ont énormément d’écritures aléatoires !
Enfin, en termes de coûts, le RAID 5 se fait la part belle grâce à sa bonne capacité de stockage et un coût relativement faible des cartes contrôleurs adaptées.

Au final, le RAID 5 me paraît donc plutôt adapté, voire idéal, pour les journaux de transactions, compte tenu de l’utilisation quasi exclusive d’écritures séquentielles, pour lesquelles la problématique du calcul de parité ne se présente pas. Il faut cependant s’assurer de la taille des blocs de données afin d’éviter d’écrire une transaction sur moins d’une bande revenant alors à des écritures aléatoires. Les spécifications actuelles qui préconisent d’appliquer du RAID 10 apparaissent donc comme sous performantes, même si les difficultés de mise en œuvre d’un RAID 5 bien dimensionné expliquent sans aucun doute ce choix. En revanche, l’utilisation de ce niveau de RAID s’avère beaucoup plus discutable en ce qui concerne les bases de données auxquelles je privilégierai un RAID 10.

Nous noterons les formules théoriques suivantes, en fonction du nombre de disques n :
- Nombre de disques au minimum : 3
- Espace disque : (n-1) * [Espace disque du plus petit des disques]
- Temps d'écriture : (1/(n-1)) * [Temps d'accès en écriture du plus lent des disques]
- Temps de lecture : (1/(n-1)) * [Temps d'accès en lecture du plus lent des disques]
- Tolérance de panne : 1
Auxquelles nous ajouterons le temps d’écriture aléatoire théorique, le temps de lecture restant identique quelque soit le mode :
- Temps d’écriture : (2/(n-1)) * [Temps d'accès en écriture du plus lent des disques]

Aucun commentaire: