Avantages, inconvénients et exigences du code d'effacement
Avant de décider s'il est nécessaire d'utiliser la réplication ou le codage d'effacement pour protéger les données d'objet contre la perte, vous devez connaître les avantages, les inconvénients et les exigences du codage d'effacement.
Avantages du code d'effacement
Par rapport à la réplication, le codage d'effacement assure une fiabilité, une disponibilité et une efficacité du stockage supérieures.
-
Fiabilité : Mesurée par le nombre de pannes simultanées pouvant être subies sans perte de données.
-
Réplication : plusieurs copies d’objets identiques sont stockées sur différents nœuds et sur plusieurs sites.
-
Codage d'effacement : un objet est codé en fragments de données et de parité et distribué sur de nombreux nœuds et sites. Cette dispersion offre une protection contre les pannes de site et de nœud.
-
-
Disponibilité : La possibilité d'obtenir des objets si les nœuds de stockage échouent ou deviennent inaccessibles. Comparé à la réplication, le codage d’effacement offre une disponibilité accrue à des coûts de stockage comparables.
-
Efficacité de stockage : Pour une disponibilité et une fiabilité similaires, les objets codés par effacement utilisent moins d'espace disque que les objets répliqués. Par exemple, un objet de 10 Mo répliqué sur deux sites consomme 20 Mo d'espace disque (deux copies), tandis qu'un objet codé par effacement sur trois sites avec un schéma de codage par effacement 6+3 ne consomme que 15 Mo d'espace disque.
L'espace disque des objets avec code d'effacement est calculé selon la taille de l'objet et la surcharge du stockage. Le pourcentage de surcharge de stockage est le nombre de fragments de parité divisé par le nombre de fragments de données.
Inconvénients du code d'effacement
Par rapport à la réplication, le code d'effacement présente les inconvénients suivants :
-
En fonction du schéma de code d'effacement, une augmentation du nombre de nœuds et de sites de stockage est recommandée. En revanche, si vous répliquez les données d'objet, vous n'avez besoin que d'un seul nœud de stockage pour chaque copie. Voir "Schémas de code d'effacement pour les pools de stockage contenant au moins trois sites" et "Schémas de code d'effacement pour pools de stockage sur un site".
-
Coût et complexité accrus de l'expansion du stockage. Pour étendre un déploiement qui utilise la réplication, vous ajoutez de la capacité de stockage à chaque emplacement où les copies d'objet sont effectuées. Pour étendre un déploiement qui utilise le code d'effacement, vous devez tenir compte à la fois du schéma de code d'effacement utilisé et de la façon dont les nœuds de stockage existants sont complets. Par exemple, si vous attendez que les nœuds existants soient pleins à 100 %, vous devez ajouter au moins
k+m
nœuds de stockage. Toutefois, si vous développez lorsque les nœuds existants sont pleins à 70 %, vous pouvez ajouter deux nœuds par site tout en optimisant la capacité de stockage utilisable. Pour plus d'informations, voir "Ajoutez de la capacité de stockage pour les objets avec code d'effacement". -
Le codage d'effacement entre sites répartis géographiquement augmente la latence de récupération. Les fragments d'objet d'un objet dont le code d'effacement et la distribution sont répartis sur des sites distants sont plus longs à récupérer sur des connexions WAN qu'un objet répliqué et disponible localement (le site auquel le client se connecte).
-
Lorsque vous utilisez le codage d'effacement sur des sites répartis géographiquement, le trafic réseau WAN est plus important pour les récupérations et les réparations, en particulier pour les objets fréquemment récupérés ou pour la réparation d'objets via les connexions réseau WAN.
-
Lorsque vous utilisez le codage d’effacement sur plusieurs sites, le débit maximal des objets diminue fortement à mesure que la latence du réseau entre les sites augmente. Cette diminution est le résultat d’une diminution du débit du réseau TCP, ce qui affecte la rapidité avec laquelle le système StorageGRID peut stocker et récupérer des fragments d’objet.
-
Plus grande utilisation des ressources de calcul.
Quand utiliser le code d'effacement
Utilisez le codage d’effacement pour les exigences suivantes :
-
Objets dont la taille est supérieure à 1 Mo.
Le codage d'effacement convient mieux aux objets de plus de 1 Mo. N'utilisez pas le code d'effacement pour les objets inférieurs à 200 Ko afin d'éviter la surcharge liée à la gestion de très petits fragments de code d'effacement. -
Stockage à long terme ou à froid pour le contenu rarement récupéré.
-
Haute disponibilité et fiabilité des données.
-
Protégez-vous contre les défaillances complètes du site et des nœuds.
-
Efficacité du stockage.
-
Les déploiements sur un seul site exigent une protection efficace des données avec une seule copie avec code d'effacement plutôt que plusieurs copies répliquées.
-
Déploiements sur plusieurs sites pour lesquels la latence inter-site est inférieure à 100 ms.