La manière habituelle de survivre à une panne de disque ou de serveur consiste à conserver plusieurs copies, ce qui revient à payer trois fois le stockage pour des données classiquement répliquées en 3x. Pour un fournisseur de sauvegarde, c'est le coût dominant.
Le codage par effacement Reed-Solomon offre un compromis moins coûteux. Backblaze divise un fichier en 17 fragments égaux, calcule 3 fragments de parité et stocke les 20 sur des disques distincts. N'importe lesquels 17 des 20 morceaux restaurent l'original, de sorte qu'un fichier survit à la perte de jusqu'à 3 fragments.
C'est là tout l'intérêt de la conception : au lieu de trois copies complètes, elle conserve une copie plus une petite quantité de parité, obtenant une durabilité proche tout en dépensant une fraction du stockage.
Acheter de la durabilité par les mathématiques de parité, et non par des copies en double
Les fragments de parité coûtent bien moins que des copies complètes en double.
N'importe lesquels 17 des 20 morceaux reconstruisent le fichier, ce qui tolère la perte de plusieurs disques.
Un surcoût de stockage plus faible réduit directement le coût unitaire du fournisseur.
Lorsque vous payez pour la fiabilité en copiant des données, vous l'achetez en unités entières coûteuses ; les mathématiques du codage permettent d'en acheter une quantité précise pour un surcoût fixe.
Suites
Backblaze a publié en open source sa bibliothèque Java Reed-Solomon, et le codage par effacement est devenu un moyen courant, tant pour les fournisseurs de cloud que pour les services de sauvegarde, d'échanger un peu de CPU contre une durabilité bien moins coûteuse.
VÉRIFIEZ LES SOURCES
Les sources
- Backblaze open-sources Reed-Solomon erasure coding source code Backblaze · backblaze.com ·
- Erasure coding OpenStack Wiki · wiki.openstack.org