virtu-desk VIRTU-DESK - Technologies de virtualisation et sécurisation de l'environnement utilisateurs.

Microsoft S2D – Tolérance de pannes et efficacité du stockage

Par Le samedi, 11 février 2017 0

Dans Infrastructures (hyper) convergentes

Ce billet présente les options de résilience disponibles dans les espaces de stockage direct (Microsoft S2D pour Storage Spaces Direct) et décrit les exigences de Scale-out, l’efficacité du stockage, ainsi que les avantages et inconvénients de chacun de ces aspects.

NOTA : Ce billet est repris du site Technet de Microsoft (voir lien de la source en fin d'article)

Vue d’ensemble

Le rôle des espaces de stockage est d’assurer à vos données une tolérance de pannes, souvent appelée « résilience ». Leur implémentation est similaire à RAID, à ceci près qu’ils sont distribués sur plusieurs serveurs et mis en œuvre par voie logicielle.

Comme c’est le cas avec RAID, les espaces de stockage peuvent assurer cette fonction de différentes manières. Il faut donc effectuer des compromis entre tolérance de pannes, efficacité du stockage et complexité de calcul. Les possibilités sont au nombre de deux: la « mise en miroir » et la « parité » (parfois appelée « codage d’effacement »).

Mise en miroir

La mise en miroir assure une tolérance de pannes en conservant plusieurs copies de toutes les données. Cela ressemble de près à RAID-1. La répartition et le positionnement des données ne sont pas secondaires, mais il faut reconnaître que les données stockées avec la mise en miroir sont écrites plusieurs fois en intégralité. Chaque copie est écrite sur différents matériels physiques (différents lecteurs dans différents serveurs) qui sont censés ne pas tomber en panne simultanément.

Dans Windows Server 2016, les espaces de stockage proposent deux types de mise en miroir: « double » et « triple ».

Miroir double

La mise en miroir double écrit deux copies de toutes les données. Son efficacité de stockage est de 50%. Pour écrire 1To de données, vous devez donc disposer d’au moins 2To de capacité de stockage physique. De même, vous devez avoir au moins deux domaines d’erreur matériels. Avec les espaces de stockage direct, cela signifie deux serveurs.

W2k16 ssd two way mirror

Miroir triple

La mise en miroir triple écrit troiscopies de toutes les données. Son efficacité de stockage est de 33,3%. Pour écrire 1To de données, vous devez donc disposer d’au moins 3To de capacité de stockage physique. De même, il vous faut au moins troisdomaines d’erreur matériels. Avec les espaces de stockage direct, cela signifie troisserveurs.

W2k16 ssd three way mirror

Quand utiliser la mise en miroir

La mise en miroir, quelle qu’elle soit, effectue les lectures et écritures le plus rapidement possible avec une complexité minimale, ce qui se traduit par une latence et un temps de calcul minimum. C’est la meilleure option pour les charges de travail très sensibles aux performances ou lorsque de grandes quantités de données sont écrites de manière active et aléatoire (on parle de données « actives »). L’inconvénient tient à son efficacité de stockage moindre.

 

Parité

Le codage de parité (souvent appelé « codage d’effacement ») assure la tolérance de pannes à l’aide d’une opération arithmétique au niveau des bits, qui peut devenir remarquablement compliquée. Cette solution est plus complexe que la mise en miroir, et de nombreuses ressources en ligne (comme le document Dummies Guide to Erasure Coding) peuvent vous aider à vous en faire une idée plus précise. Il suffit de dire qu’elle offre un stockage plus efficace sans compromettre la tolérance de pannes.

Dans Windows Server 2016, les espaces de stockage proposent deuxtypes de parité: « simple » et « double ». La parité double emploie une technique de pointe, baptisée « codes de reconstruction locale » ou LRC (pour Local Reconstruction Codes), à plus grande échelle.

Parité simple

La parité simple, qui ne conserve qu’un symbole de parité de bit, assure une tolérance d’une seule panne à la fois. Cela ressemble de près à RAID-5. Pour utiliser la parité simple, il vous faut au moins troisdomaines d’erreur matériels. Avec les espaces de stockage direct, cela signifie trois serveurs. Comme la mise en miroir triple fournit une plus grande tolérance de pannes à la même échelle, nous déconseillons l’utilisation de la parité simple. Toutefois, cette solution a le mérite d’exister et d’être totalement prise en charge.

Parité double

La parité double met en œuvre les codes de correction d’erreur Reed-Solomon pour conserver deuxsymboles de parité de bit, offrant ainsi la même tolérance de pannes que la mise en miroir triple (c’est-à-dire jusqu’à deux pannes en même temps), mais avec un stockage plus efficace. Cela ressemble de près à RAID-6. Pour utiliser la parité double, il vous faut au moins quatre domaines d’erreur matériels. Avec les espaces de stockage direct, cela signifie quatreserveurs. À cette échelle, son efficacité de stockage est de 50%. Pour écrire 2To de données, vous devez donc disposer d’au moins 4To de capacité de stockage physique.

W2k16 ssd dual parity

L’efficacité de stockage de la parité double passe de 50 à 80% lorsque vous augmentez votre nombre de domaines d’erreur matériels. Par exemple, à sept (avec les espaces de stockage direct, cela signifie sept serveurs) l’efficacité atteint 66,7%. Pour stocker 4To de données, vous devez donc disposer de 6To de capacité de stockage physique.

W2k16 ssd dual parity wide

 

Codes de reconstruction locale (LRC)

Les espaces de stockage de Windows Server 2016 mettent en œuvre une technique de pointe développée par Microsoft Research, baptisée « codes de reconstruction locale » (ou LRC). À grande échelle, la parité double utilise LRC pour fractionner son codage/décodage en groupes plus petits afin d’accélérer les écritures ou la reprise après incident.

Avec des disques durs classiques, la taille des groupes est de quatre symboles; avec des disques SSD, elle est de six symboles. Pour illustrer ce propos, voici un exemple avec des disques durs et 12 domaines d’erreur matériels (donc 12 serveurs). Il y a deux groupes de quatre symboles de données. Son stockage atteint 72,7% d’efficacité.

W2k16 ssd local reconstruction codes

Quand utiliser la parité

Bien que la parité propose un stockage bien plus efficace que la mise en miroir, cet avantage est contrebalancé par une grande complexité et un temps de calcul important. Assurer une reprise après incident ou tout simplement écrire des données génère des opérations de codage/décodage. La parité convient mieux aux données rarement écrites (ou « froides ») et à celles écrites en volume, comme les charges de travail d’archivage ou de sauvegarde.

 

Résilience mixte

Depuis Windows Server 2016, un volume d’espaces de stockage direct peut appliquer à la fois la mise en miroir et la parité. Selon l’activité de lecture/écriture, le nouveau système de fichiers ReFS (Resilient File System) déplace intelligemment et en temps réel les données entre les deux types de résilience pour maintenir les données les plus actives dans la partie en miroir. En fait, il s’agit d’utiliser la mise en miroir pour accélérer le codage d’effacement, ce qui permet de gagner sur les deux tableaux: écritures économiques et rapides des données actives et stockage plus efficace des données moins actives.

Pour combiner la mise en miroir triple et la parité double, il faut au moins quatre domaines d’erreur, soit quatre serveurs.

Efficacité du stockage

L’efficacité de stockage de la résilience mixte varie entre le maximum d’une résilience 100% miroir et d’une résilience 100% parité double, et dépend des proportions que vous choisissez. Par exemple, la démonstration débutant à la 37e minute de cette présentation montre plusieurs combinaisons atteignant une efficacité de 46, 54 et 65% avec 12 serveurs.

Utilisez l'application web de calcul de capacité en ligne pour voir comment les différentes configurations et combinaisons affectent votre capacité disponible et votre efficacité de stockage.

Quand utiliser la résilience mixte

Utilisez la résilience mixte lorsque vos données sont essentiellement « froides », mais que certaines peuvent requérir une activité d’écriture importante.

 

Résumé

Cette section résume les types de résilience disponibles dans les espaces de stockage direct, les échelles minimum pour utiliser chaque type, le nombre de pannes tolérées par chaque type et l’efficacité de stockage correspondante.

Types de résilience

Résilience          Tolérance de pannes     Efficacité du stockage
Miroir double 1 50%
Miroir triple 2 33,3%
Parité simple 1 66,7 à 87,5%
Parité double 2 50 à 80%
Mixte 2 33,3 à 80%

 

Échelle minimale requise

Domaines d’erreur   Miroir double   Miroir triple   Parité simple   Parité double   Mixte  
2        
3    
4
...
16

 

Efficacité de la parité double pour les déploiements hybrides

Ce tableau montre l’efficacité de stockage de la parité double et des codes LRC à chaque échelle pour des déploiements hybrides combinant des disques durs classiques et des disques SSD.

Domaines d’erreur   Disposition    Efficacité  
2
3
4 RS 2+2 50%
5 RS 2+2 50%
6 RS 2+2 50%
7 RS 4+2 66,7%
8 RS 4+2 66,7%
9 RS 4+2 66,7%
10 RS 4+2 66,7%
11 RS 4+2 66,7%
12 LRC (8, 2, 1) 72.7%
13 LRC (8, 2, 1) 72.7%
14 LRC (8, 2, 1) 72.7%
15 LRC (8, 2, 1) 72.7%
16 LRC (8, 2, 1) 72.7%

 

Efficacité de la parité double pour les déploiements 100% flash

Ce tableau montre l’efficacité de stockage de la parité double et des codes LRC à chaque échelle pour des déploiements 100% flash ne contenant que des disques SSD. La parité peut utiliser des groupes plus volumineux et offrir un stockage plus efficace dans une configuration 100% flash.

Domaines d’erreur   Disposition      Efficacité  
2
3
4 RS 2+2 50%
5 RS 2+2 50%
6 RS 2+2 50%
7 RS 4+2 66,7%
8 RS 4+2 66,7%
9 RS 6+2 75%
10 RS 6+2 75%
11 RS 6+2 75%
12 RS 6+2 75%
13 RS 6+2 75%
14 RS 6+2 75%
15 RS 6+2 75%
16 LRC (12, 2, 1) 80%

 

Exemples

Sauf si vous n’avez que deux serveurs, nous recommandons d’utiliser la mise en miroir triple et/ou la parité double, car ce modèle offre une meilleure tolérance de pannes. Plus précisément, il garantit la sécurité et l’accessibilité de toutes les données en permanence, même en cas de défaillance simultanée des deux domaines d’erreur (avec les espaces de stockage direct, cela signifie deux serveurs).

 

Exemples où tout reste en ligne

Ces six exemples montrent ce que la mise en miroir triple et/ou la double parité peuvent tolérer.

  • 1. Perte d’un disque (disques cache compris)
  • 2. Perte d’un serveur

W2k16 ssd fault tolerance example

 

  • 3. Perte d’un serveur et d’un disque
  • 4. Perte de deux disques de différents serveurs

W2k16 ssd fault tolerance example 2

 

  • 5. Perte de plus de deux disques, tant que deux serveurs au maximum sont affectés
  • 6. Perte de deux serveurs

W2k16 ssd fault tolerance example 3

 

Dans tous les cas, tous les volumes restent en ligne. (Vérifiez que votre cluster conserve le quorum).

 

Exemples où tout passe hors connexion

Pendant leur durée de vie, les espaces de stockage tolèrent un nombre illimité de pannes, car ils restaurent une résilience totale après chaque incident, pourvu qu’ils en aient le temps. Toutefois, le nombre maximum de domaines qui peuvent être affectés par des pannes à un moment donné est de deux. Les exemples suivants montrent ce que la mise en miroir triple et/ou la parité double ne peuvent pas tolérer.

  • 7. Perte de disques dans trois serveurs au moins à la fois
  • 8. Perte d’au moins trois serveurs à la fois

W2k16 ssd fault tolerance example 4

 

Source de ce billet sur ce lien.

  • 4 votes. Moyenne 5 sur 5.
Vous devez être connecté pour poster un commentaire