解決策
ディスクやサーバーの障害に耐える通常の方法は複数のコピーを保持することであり、従来の3倍レプリケーションのデータではストレージに3倍のコストを支払うことになる。バックアッププロバイダーにとって、これは主要なコストである。
リード・ソロモン消去符号化は、より安価なトレードオフを提供する。Backblazeはファイルを17個の等しいシャードに分割し、3個のパリティシャードを計算し、20個すべてを別々のドライブに保存する。20個のうち任意の17個で元のデータを復元できるため、最大3個のシャードを失ってもファイルは存続する。
これが設計の要点である。3つの完全なコピーの代わりに、1つのコピーと少量のパリティを保持することで、ストレージのごく一部のコストでほぼ同等の耐久性を得る。
達成したこと
複製コピーではなくパリティ演算で耐久性を買う
うまくいった理由
パリティシャードのコストは完全な複製コピーよりはるかに低い。
20個のうち任意の17個でファイルを再構築でき、複数ドライブの損失に耐えられる。
ストレージのオーバーヘッドが低いほど、プロバイダーの単位コストが直接下がる。
応用できること
データをコピーして信頼性にコストを払う場合、高価な全体単位で買っていることになる。符号化の数学を使えば、固定のオーバーヘッドで正確な量を買うことができる。
その後
BackblazeはJavaのリード・ソロモンライブラリをオープンソース化し、消去符号化はクラウドプロバイダーとバックアップサービスの両方が、少しのCPUと引き換えにはるかに安価な耐久性を得る一般的な方法となった。
出典をたどる
出典
- Backblaze open-sources Reed-Solomon erasure coding source code Backblaze · backblaze.com ·
- Erasure coding OpenStack Wiki · wiki.openstack.org