Avantages, inconvénients et exigences du code d'effacement dans StorageGRID
Avant de décider d'utiliser la réplication ou le code d'effacement pour protéger les données d'objets contre la perte, vous devez comprendre les avantages, les inconvénients et les exigences du code d'effacement.
Avantages du code d'effacement
Comparé à la réplication, le code d'effacement offre une fiabilité, une disponibilité et une efficacité de stockage améliorées.
-
Fiabilité : Mesurée par le nombre de pannes simultanées pouvant être supportées sans perte de données.
-
Réplication : Plusieurs copies identiques d’un même objet sont stockées sur différents nœuds et sites.
-
Code d'effacement : un objet est encodé en fragments de données et de parité, puis distribué sur plusieurs nœuds et sites. Cette dispersion assure la protection contre les pannes de sites et de nœuds.
-
-
Disponibilité : Capacité à accéder aux objets en cas de panne ou d’inaccessibilité des nœuds de stockage. Comparé à la réplication, le code d'effacement offre une disponibilité accrue à coût de stockage équivalent.
-
Efficacité de stockage : À disponibilité et fiabilité égales, les objets à code d'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 à code d'effacement réparti sur trois sites avec un schéma de code d'effacement 6+3 ne consomme que 15 Mo d'espace disque.
L'espace disque pour les objets à code d'effacement est calculé comme la taille de l'objet plus la surcharge de stockage. Le pourcentage de surcharge de stockage correspond au nombre de fragments de parité divisé par le nombre de fragments de données.
Inconvénients du code d'effacement
Comparé à la réplication, le code d'effacement présente les inconvénients suivants :
-
Il est recommandé d'augmenter le nombre de nœuds de stockage et de sites, en fonction du schéma de code d'effacement. 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 trois sites ou plus" et "Schémas de code d'effacement pour les pools de stockage à site unique".
-
Augmentation du coût et de la complexité des extensions de stockage. Pour étendre un déploiement utilisant la réplication, vous ajoutez de la capacité de stockage à chaque emplacement où des copies d'objets sont effectuées. Pour étendre un déploiement utilisant le code d'effacement, vous devez tenir compte à la fois du schéma de code d'effacement utilisé et du taux de remplissage des nœuds de stockage existants. Par exemple, si vous attendez que les nœuds existants soient remplis à 100 %, vous devez ajouter au moins
k+mnœuds de stockage, mais si vous effectuez l'extension lorsque les nœuds existants sont remplis à 70 %, vous pouvez ajouter deux nœuds par site et optimiser ainsi la capacité de stockage utilisable. Pour plus d'informations, consultez "Ajouter de la capacité de stockage pour les objets à code d'effacement". -
L'utilisation du code d'effacement sur des sites géographiquement distribués entraîne une augmentation de la latence de récupération. Les fragments d'un objet codé par effacement et distribués sur des sites distants mettent plus de temps à être récupérés via des connexions WAN que ceux d'un objet répliqué et disponible localement (sur le même site auquel le client se connecte).
-
Lorsque vous utilisez le code d'effacement sur des sites géographiquement répartis, 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 les réparations d'objets via des connexions réseau WAN.
-
Lorsque vous utilisez le code d'effacement entre plusieurs sites, le débit maximal d'objets diminue fortement à mesure que la latence réseau entre les sites augmente. Cette diminution est due à une baisse du débit du réseau TCP, ce qui affecte la rapidité avec laquelle le système StorageGRID peut stocker et récupérer les fragments d'objets.
-
Utilisation accrue des ressources de calcul.
Quand utiliser le code d'effacement
Utilisez le code d'effacement pour répondre aux exigences suivantes :
-
Objets de taille supérieure à 1 Mo.
Le code d'effacement est idéal pour les objets de plus de 1 Mo. N'utilisez pas le code d'effacement pour les objets de moins de 200 Ko afin d'éviter la surcharge liée à la gestion de très petits fragments codés par effacement. -
Stockage à long terme ou à froid pour les contenus rarement consultés.
-
Haute disponibilité et fiabilité des données.
-
Protection contre les défaillances complètes de sites et de nœuds.
-
Efficacité du stockage.
-
Déploiements sur un seul site nécessitant une protection efficace des données avec une seule copie à code d'effacement plutôt que plusieurs copies répliquées.
-
Déploiements multisites où la latence inter-sites est inférieure à 100 ms.