À l’ère du big data, les entreprises génèrent plus d’informations que jamais auparavant. Cependant, il ne suffit pas de simplement stocker les données ; elles doivent être stockées de manière efficiente, fiable et économique. C’est là qu’intervient le codage d’effacement (CE). Utilisé par des systèmes de stockage distribués tels que Ceph, le codage d’effacement offre une méthode plus intelligente pour sauvegarder les données tout en optimisant l’utilisation du stockage. Cet article détaille ce qu’est le codage d’effacement, comment il fonctionne et quand l’utiliser à la place de la réplication traditionnelle.
Réplication vs. Codage d’effacement : quelle est la différence ?
Par défaut, de nombreux systèmes de stockage, y compris Ceph, utilisent la réplication pour protéger les données. La réplication est simple : chaque élément de données est dupliqué sur plusieurs disques (souvent 3 copies). Cette méthode est rapide et fiable, en particulier pour les petits fichiers ou les environnements à haute performance — mais elle consomme beaucoup d’espace de stockage.
Le codage d’effacement, en revanche, adopte une approche plus efficiente. Au lieu de copier des ensembles de données entiers, il les décompose en fragments plus petits — une combinaison de fragments de données et de fragments de parité (utilisés pour la récupération). Ces fragments sont répartis sur différents disques. Si quelques disques tombent en panne, les données manquantes peuvent être reconstruites en utilisant les informations de parité.
Le tableau ci-dessous compare la réplication et le codage d’effacement en termes d’efficience de stockage, de méthode de récupération et de cas d’utilisation idéaux :

Comment fonctionne le codage d’effacement dans Ceph
Le codage d’effacement dans Ceph est configurable via des profils qui définissent comment les données sont divisées et protégées. Chaque profil CE est défini par deux paramètres :
• k – Nombre de fragments de données
• m – Nombre de fragments de codage (parité)
Le système crée un total de k + m fragments, qui sont distribués à travers le cluster de stockage. Ceph peut tolérer jusqu’à m défaillances sans perte de données.
Le tableau ci-dessous présente les profils de codage d’effacement couramment utilisés et les compare en termes de tolérance aux pannes et de surcharge de stockage :

Exemple : Un profil 3+2 divise les données en 3 fragments et ajoute 2 fragments de parité. N’importe quels 3 fragments sur 5 peuvent restaurer les données originales, même si 2 fragments sont perdus.
Choisir le bon profil CE
Le choix dépend de votre environnement et de vos objectifs :
• k plus bas, m plus élevé (par exemple, 3+2) : Plus de redondance, idéal pour les petits clusters ou lorsque la résilience est une priorité absolue.
• k plus élevé, m plus bas (par exemple, 10+4) : Meilleure efficience de stockage, excellent pour les déploiements à grande échelle privilégiant les économies de coûts.
Le codage d’effacement offre plusieurs avantages qui en font un choix puissant pour les systèmes de stockage modernes, notamment :
• Stockage efficient : Surcharge inférieure à celle de la réplication — stockez plus de données pour le même espace disque.
• Haute tolérance aux pannes : Gérez plusieurs défaillances de disques sans perdre de données.
• Évolutivité : Adapté aux grands clusters et aux déploiements à l’échelle du cloud.
• Redondance personnalisée : Ajustez le ratio k+m pour répondre à vos besoins de durabilité et de budget.
Quand le codage d’effacement est pertinent
Le codage d’effacement n’est pas idéal pour tous les scénarios. Mais lorsqu’il est appliqué stratégiquement, il excelle dans de nombreux cas. Voici les scénarios où le codage d’effacement excelle, ainsi que les raisons pour lesquelles il est particulièrement adapté à chacun d’entre eux :

Scénarios les mieux adaptés à la réplication
Le codage d’effacement nécessite plus de CPU et d’E/S pendant les écritures et les reconstructions, il peut donc ne pas être le meilleur choix pour :
• Les bases de données ou les machines virtuelles (par exemple, Ceph RBD)
• Les systèmes de fichiers interactifs avec de petits fichiers (par exemple, CephFS)
• Les charges de travail d’E/S à faible latence et haut débit
Dans ces cas, la réplication offre de meilleures performances malgré son coût de stockage plus élevé.
Le codage d’effacement est une stratégie efficace pour les organisations qui visent à optimiser l’efficacité, la durabilité et l’évolutivité du stockage. Dans Ceph, il réduit les frais généraux de stockage en fragmentant les données en morceaux avec parité, permettant la récupération en cas de défaillances sans réplication complète des données. Une configuration telle que 6+3 peut tolérer jusqu’à trois défaillances, ce qui la rend particulièrement adaptée au stockage à froid et aux données d’objets à grande échelle.
Bien qu’il offre des économies de coûts significatives et une résilience accrue, le codage d’effacement introduit des compromis de performance, notamment pour les écritures petites ou fréquentes, et s’avère moins idéal pour les applications sensibles à la latence telles que les bases de données.


