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.
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.
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.
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.
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é.
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
- 3. Perte d’un serveur et d’un disque
- 4. Perte de deux disques de différents serveurs
- 5. Perte de plus de deux disques, tant que deux serveurs au maximum sont affectés
- 6. Perte de deux serveurs
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