Nutanix – Système Raid et Erasure Coding

Nutanix – Système Raid et Erasure Coding

23 septembre 2015 0 Par Michael PERES

Système Raid

Le système Raid a été inventé afin de pallier à la perte de données survenant à la suite d'une panne d'un disque.
Les données protégées par un Raid utilise une multitude de techniques qui répliquent les données ou utilisent des informations de parité pour reconstruire les données perdues à partir d'un périphérique défaillant.
Les principaux niveaux de Raid sont :
• Le Raid 0 : Deux disques ou plus. Les écritures de données se font sur l'ensemble des disques sans aucune parité.
Avantage : volumétrie conservée. Vitesse d'écriture rapide.
Inconvénients : aucune protection des données en cas de perte d'un disque.

Raid 0

• Le Raid 1 : Deux disques ou plus. Les écritures de données se font sur l'ensemble des disques avec une parité pour chaque donnée écrite.
Avantage : protection des données en cas de perte d'un disque. Vitesse d'écriture rapide.
Inconvénients : 50% de la volumétrie dédiée à la parité

Raid 1

• Le Raid 5 : Trois disques ou plus. Les écritures de données se font sur l'ensemble des disques avec une parité.
Avantage : protection des données en cas de perte d'un disque. Vitesse d'écriture acceptable
Inconvénients : 25% de la volumétrie dédiée à la parité

Raid 5

• Le Raid 6 : Quatre disques ou plus. Les écritures de données se font sur l'ensemble des disques avec deux parités.
Avantage : protection des données en cas de perte d'un ou deux disques.
Inconvénients : 33% de la volumétrie dédiée à la parité. Vitesse d'écriture plus lente. Coûts élevés

Raid 6

A partir de ces 4 différents niveaux, d'autres types de Raids ont été imaginés et créés.
C'est le cas pour les Raids suivants :

• Le Raid 0+1 : Quatre disques ou plus. Les écritures de données se font sur l'ensemble des disques d'un même groupe Raid 0 sans aucune parité. La parité se fait au niveau du Raid 1.
Avantage : Vitesse d'écriture rapide.
Inconvénients : 50% de volumétrie dédiée à la parité. Possibilité de perdre un disque ou un groupe de disques en Raid 0. Coût élevé

Raid 01

• Le Raid 1+0 : Quatre disques ou plus. Les écritures de données se font sur l'ensemble des disques avec une parité pour chaque donnée écrite.
Avantage : Vitesse d'écriture rapide. Possibilité de perdre un disque dans n'importe quel groupe de Raid 1.
Inconvénients : 50% de la volumétrie dédiée à la parité. Ajout de deux disques minimum pour étendre le Raid. Coûts élevés

Raid 10

• Le Raid 1+5 : Six disques ou plus. Les écritures de données se font sur l'ensemble des disques avec une double parité.
Avantage : Possibilité de perdre n'importe quel groupe de Raid 1, ou n'importe quel disque du groupe de Raid 1
Inconvénients : 62,5% de la volumétrie dédiée à la parité. Ajout de deux disques minimum pour étendre le Raid. Vitesse d'écriture plus lente. Coûts très élevés.

Raid 15

• Le Raid 5+0: Six disques ou plus. Les écritures de données se font sur l'ensemble des disques avec une parité.
Avantages : Possibilité de perdre n'importe quel disque du groupe de Raid 5. Volumétrie correcte avec 33% de la volumétrie dédiée à la parité. Vitesse d'écriture acceptable
Inconvénients : Ajout de trois disques minimum pour étendre le Raid.

Raid 50

• Le Raid 5+1 : Six disques ou plus. Les écritures de données se font sur l'ensemble des disques avec deux parités.
Avantage : protection des données en cas de perte d'un disques ou d'un. Vitesse d'écriture plus lente
Inconvénients : 66% de la volumétrie dédiée à la parité. Coûts très élevés

Raid 51

Il est à noter que plus la volumétrie Raid est importante, plus sa reconstruction sera longue. Cette opération peut prendre des jours, voire des semaines. Estimer le temps de récupération peut être difficile parce que cela dépend de la charge de travail déjà sur le système l'hôte, et dépend aussi des performances liées aux disques et calculées en i/o.

Erasure coding

Explications de Josh Odgers (http://www.joshodgers.com)

L'utilisation du système Raid pour la protection avec de gros volumes de données est parfois très compliquée.
L'erasure coding fonctionne de la même manière que le Raid en ce qui concerne le traitement de l'information supplémentaire puisqu'elle est créé à partir de données réelles et une fois mémorisées, elle est ensuite utilisée dans le processus de récupération. La différence entre le Raid et l'erasure coding se trouve dans le processus de calcul que des données supplémentaires.
Le contrôle de parité est le cas particulier où n = k + 1.
Dans un ensemble de valeur k Form1txt, un checksum est calculé et ajouté aux valeurs k de source:

Form1

L'ensemble des valeurs k + 1 Form2txt est maintenant cohérente par rapport à
la somme de contrôle. Si l'une de ces valeurs est effacée, elle peut être facilement récupérée en additionnant les variables restantes:

Form2

Dans un système qui utilise l'erasure coding, les données source sont divisées en blocs. Ce sont généralement des blocs de plusieurs mégaoctets, et beaucoup plus grands que les blocs d'un système basé sur le système Raid. Afin d'effectuer ses calculs, la charge de performance due à l'exécution du processus d'erasure coding n'est pas négligeable.

Chaque bloc passe par un processus de transformation qui produit un certain nombre de tranches ou des morceaux de données à partir du bloc d'origine. Pour récupérer les données d'origine, un nombre minimum de "fragments" de la totalité du bloc initialement créé.
Par exemple, un bloc de données pourrait produire 16 fragments, dont 12 sont nécessaires afin de pouvoir reconstituer l'information originale.

Le processus de fragmentation a un certain nombre d'avantages. Premièrement, en supposant que tous les fragments sont sur des disques séparés, la simple panne d'un seul disque n'aura pas de conséquences sur la perte de la protection des données. Deuxièmement, la récupération des données ne nécessitera pas la lecture de toutes les autres données. Uniquement les données nécessaires à la reconstruction du fragment manquant.
Cependant, pour la simple lecture d'un bloc de donnée, il est nécessaire d'accéder à un nombre minimum de fragments (12 dans notre exemple) afin d'effectuer un calcul sur ces éléments, ce qui implique l'augmentation des besoins d'accès en E/S afin de calculer le temps destiné à la reconstitution des données.

L'erasure coding fournit un avantage supplémentaire, qu'il n'est pas possible d'obtenir avec un système Raid. Si je veux de fournir une copie de sauvegarde de mes données, les systèmes Raid traditionnels nécessitent l'utilisation d'une réplique complète de données dans un emplacement secondaire.
Avec l'erasure coding le système peut simplement distribuer les fragments, veiller à ce qu'un nombre suffisant de fragments soit présent dans un même secteur mais en dehors du secteur en échec.
Par exemple, un système disposant de l'erasure coding est composé de trois secteurs avec au moins quatre fragments dans chaque emplacement dans un système 16/12, le système peut tolérer la perte d'un seul secteur, sans perte de données.
Bien que l'erasure coding semble être un bon remplaçant pour le système Raid, chacun d'entre eux sont utilisables dans des circonstances différentes.
Par exemple, l'erasure coding n'est pas conseillé pour des systèmes composés de petits blocs I/O comme certaines baies de stockage disposant de peu de performances, puisque l'erasure coding affecte considérablement les performances.

A contrario, l'erasure codaging fonctionne mieux lorsqu'il s'agit de traiter des données volumineuses localisées dans les repository et les systèmes de fichiers. Le système Raid continue à être le meilleur pour les données de type "small block data".

L'erasure Coding est plus adéquate pour les grosses archives de données où le système Raid n'est tout simplement pas bon en raison des frais (matériel et temps de récupération). Généralement, ces types de systèmes ne sont pas construits pour la performance, mais plutôt la capacité.
Il est intéressant de noter que certains fournisseurs travaillent sur un système hybride mélangeant le système Raid et l'erasure coding, selon le type de données stockées. Le but étant l'optimisation du processus de protection pour le client.