イレイジャーコーディングのメリット、デメリット、および要件
レプリケーションとイレイジャーコーディングのどちらを使用してオブジェクトデータを損失から保護するかを決定する前に、イレイジャーコーディングのメリット、デメリット、および要件を理解しておく必要があります。
イレイジャーコーディングのメリット
イレイジャーコーディングは、レプリケーションに比べて信頼性、可用性、ストレージ効率に優れています。
-
* 信頼性 * :信頼性はフォールトトレランス、つまり同時にデータを失うことなく維持できる障害の数によって判断されます。レプリケーションでは、複数の同一コピーが異なるノード上およびサイト間に格納されます。イレイジャーコーディングの場合、オブジェクトはデータフラグメントとパリティフラグメントにエンコードされ、多数のノードとサイトに分散されます。この分散によってサイトとノード両方の障害からの保護を提供します。イレイジャーコーディングは、同等のストレージコストでレプリケーションよりも優れた信頼性を提供します。
-
* 可用性 * :可用性は、ストレージノードに障害が発生した場合や、ノードにアクセスできなくなった場合にオブジェクトを読み出すことができるかどうかによって定義されます。イレイジャーコーディングは、同等のストレージコストでレプリケーションよりも優れた可用性を提供します。
-
* Storage Efficiency * :可用性と信頼性が同等レベルの場合、イレイジャーコーディングで保護されたオブジェクトが消費するディスクスペースは、同じオブジェクトをレプリケーションで保護する場合よりも少なくなります。たとえば、 10MB のオブジェクトを 2 つのサイトにレプリケートするとディスクスペースを 20MB ( 2 つのコピー)消費しますが、 6+3 のイレイジャーコーディングスキームを使用して 3 つのサイトにイレイジャーコーディングされたオブジェクトが消費するディスクスペースは 15MB のみです。
イレイジャーコーディングオブジェクトのディスクスペースは、オブジェクトサイズにストレージオーバーヘッドを加えたものです。ストレージオーバーヘッドの割合は、パリティフラグメント数をデータフラグメント数で割って算出します。
イレイジャーコーディングのデメリット
レプリケーションと比較した場合のイレイジャーコーディングのデメリットは次のとおりです。
-
より多くのストレージノードとサイトが必要です。たとえば、 6+3 のイレイジャーコーディングスキームを使用する場合は、 3 つのサイトに少なくとも 3 つのストレージノードが必要です。一方、オブジェクトデータをレプリケートする場合は、各コピーに必要なストレージノードは 1 つだけです。
-
ストレージの拡張にかかるコストと複雑さが増大します。レプリケーションを使用する環境を拡張するには、オブジェクトコピーを作成するすべての場所にストレージ容量を追加するだけです。イレイジャーコーディングを使用する環境を拡張する場合は、使用中のイレイジャーコーディングスキームと、既存のストレージノードの使用率の両方を考慮する必要があります。たとえば、既存のノードが 100% フルになるまで待つ場合は、少なくとも _k + m_Storage ノードを追加する必要があります。ただし、既存のノードが 70% フルになった時点で拡張する場合は、サイトごとに 2 つのノードを追加し、使用可能なストレージ容量を最大化できます。詳細については、StorageGRID の拡張手順を参照してください。
-
地理的に分散したサイトでイレイジャーコーディングを使用する場合は、読み出しのレイテンシが上昇します。イレイジャーコーディングされてリモートサイトに分散されたオブジェクトのフラグメントを WAN 接続経由で読み出す場合、レプリケートされてローカル(クライアントの接続先と同じサイト)で利用可能なオブジェクトよりも時間がかかります。
-
地理的に分散したサイトでイレイジャーコーディングを使用する場合は、特に WAN ネットワーク接続経由でオブジェクトを頻繁に読み出したり修復したりするケースでは読み出しと修復の WAN ネットワークトラフィックが増大します。
-
サイト間でイレイジャーコーディングを使用する場合は、サイト間のネットワークレイテンシの上昇に伴ってオブジェクトの最大スループットが大幅に低下します。この最大スループットの低下は TCP ネットワークのスループットが低下したことによるもので、 StorageGRID システムによるオブジェクトフラグメントの格納 / 読み出し速度に影響します。
-
コンピューティングリソースの利用率が向上します。
イレイジャーコーディングを使用する状況
イレイジャーコーディングは次の要件に最適です。
-
1MBを超えるオブジェクト
イレイジャーコーディングコピーに関連付けられているフラグメント数の管理でオーバーヘッドが発生するため、200KB以下のオブジェクトにはイレイジャーコーディングを使用しないでください。 -
頻繁に読み出されないコンテンツの長期保存またはコールドストレージ。
-
高いデータ可用性と信頼性。
-
サイトやノードの障害に対する保護
-
ストレージ効率
-
複数のレプリケートコピーではなく 1 つのイレイジャーコーディングコピーのみを使用して効率的にデータを保護する必要のある単一サイト環境
-
サイト間レイテンシが 100 ミリ秒未満の複数サイト環境