ディスクやサーバーの障害に耐える通常の方法は複数のコピーを保持することであり、従来の3倍レプリケーションのデータではストレージに3倍のコストを支払うことになる。バックアッププロバイダーにとって、これは主要なコストである。

リード・ソロモン消去符号化は、より安価なトレードオフを提供する。Backblazeはファイルを17個の等しいシャードに分割し、3個のパリティシャードを計算し、20個すべてを別々のドライブに保存する。20個のうち任意の17個で元のデータを復元できるため、最大3個のシャードを失ってもファイルは存続する。

これが設計の要点である。3つの完全なコピーの代わりに、1つのコピーと少量のパリティを保持することで、ストレージのごく一部のコストでほぼ同等の耐久性を得る。

複製コピーではなくパリティ演算で耐久性を買う

パリティシャードのコストは完全な複製コピーよりはるかに低い。

20個のうち任意の17個でファイルを再構築でき、複数ドライブの損失に耐えられる。

ストレージのオーバーヘッドが低いほど、プロバイダーの単位コストが直接下がる。

データをコピーして信頼性にコストを払う場合、高価な全体単位で買っていることになる。符号化の数学を使えば、固定のオーバーヘッドで正確な量を買うことができる。

BackblazeはJavaのリード・ソロモンライブラリをオープンソース化し、消去符号化はクラウドプロバイダーとバックアップサービスの両方が、少しのCPUと引き換えにはるかに安価な耐久性を得る一般的な方法となった。

出典をたどる

出典

  1. Backblaze open-sources Reed-Solomon erasure coding source code Backblaze · backblaze.com ·
  2. Erasure coding OpenStack Wiki · wiki.openstack.org