イレイジャー コーディングのメリット、デメリット、および要件

レプリケーションとイレイジャー コーディングのどちらを使用してオブジェクト データを損失から保護するかを決定する前に、イレイジャー コーディングのメリット、デメリット、および要件を理解しておく必要があります。

イレイジャー コーディングのメリット

イレイジャー コーディングは、レプリケーションに比べて信頼性、可用性、ストレージ効率に優れています。
  • 信頼性:信頼性はフォールト トレランス、つまり同時にいくつの障害までデータを失うことなくシステムを維持できるかによって判断されます。レプリケーションの場合、複数の同一コピーが異なるノード上およびサイト間に格納されます。イレイジャー コーディングの場合、オブジェクトはデータ フラグメントとパリティ フラグメントにエンコードされ、多くのノードとサイトに分散されます。この分散によってサイトとノード両方の障害からの保護を提供します。イレイジャー コーディングは、同等のストレージ コストでレプリケーションよりも優れた信頼性を提供します。
  • 可用性:可用性は、ストレージ ノードで障害が発生したり、ノードにアクセスできなくなった場合にオブジェクトを読み出すことができるかどうかによって定義されます。イレイジャー コーディングは、同等のストレージ コストでレプリケーションよりも優れた可用性を提供します。
  • ストレージ効率:可用性と信頼性が同等レベルの場合、イレイジャー コーディングで保護されたオブジェクトが消費するディスク スペースは、同じオブジェクトをレプリケーションで保護する場合よりも少なくなります。たとえば、10MBのオブジェクトを2つのサイトにレプリケートするとディスク スペースを20MB(2つのコピー)消費しますが、6+3のイレイジャー コーディング スキームを使用して3つのサイトにイレイジャー コーディングされたオブジェクトが消費するディスク スペースは15MBのみです。
    注: イレイジャー コーディング オブジェクトのディスク スペースは、オブジェクト サイズにストレージ オーバーヘッドを加えたものです。ストレージ オーバーヘッドの割合は、パリティ フラグメント数をデータ フラグメント数で割って算出します。

イレイジャー コーディングのデメリット

レプリケーションと比較した場合のイレイジャー コーディングのデメリットは次のとおりです。
  • より多くのストレージ ノードとサイトが必要です。たとえば、6+3のイレイジャー コーディング スキームを使用する場合は、3つのサイトに3つ以上のストレージ ノードが必要です。一方、オブジェクト データをレプリケートする場合に必要なストレージ ノードは、各コピーに1つだけです。
  • ストレージの拡張にかかるコストが増え、複雑さが増大します。レプリケーションを使用する環境の場合、オブジェクト コピーを作成するすべての場所にストレージ容量を追加するだけです。イレイジャー コーディングを使用する環境の場合、使用中のイレイジャー コーディング スキームと既存のストレージ ノードの使用率の両方を考慮する必要があります。たとえば、既存のノードの使用率が100%になってから拡張する場合、少なくともk+m個のストレージ ノードを追加する必要がありますが、使用率が70%に達した時点で拡張する場合、サイトごとに2つのノードを追加すれば使用可能なストレージ容量を最大化できます。詳細については、StorageGRIDの拡張手順を参照してください。
  • 地理的に分散したサイトでイレイジャー コーディングを使用する場合は、読み出しのレイテンシが上昇します。イレイジャー コーディングされてリモート サイトに分散されたオブジェクトのフラグメントをWAN接続経由で読み出す場合、レプリケートされてローカル(クライアントの接続先と同じサイト)で利用可能なオブジェクトよりも時間がかかります。
  • 地理的に分散したサイトでイレイジャー コーディングを使用する場合は、特にWANネットワーク接続経由でオブジェクトを頻繁に読み出したり修復したりするケースでは読み出しと修復のWANネットワーク トラフィックが増大します。
  • サイトをまたいでイレイジャー コーディングを使用する場合は、サイト間のネットワーク レイテンシの上昇に伴ってオブジェクトの最大スループットが大幅に低下します。この最大スループットの低下はTCPネットワークのスループットが低下したことによるもので、StorageGRIDシステムによるオブジェクト フラグメントの格納 / 読み出し速度に影響します。
  • コンピューティング リソースの使用量が多くなります。

イレイジャー コーディングの要件

イレイジャー コーディングは次のケースに適しています。
  • 1MB超のオブジェクト
    注意: イレイジャー コーディング コピーに関連付けられているフラグメント数の管理でオーバーヘッドが発生するため、200KBより小さいオブジェクトにはイレイジャー コーディングを使用しないでください。
  • 頻繁に読み出されないコンテンツの長期保存またはコールド ストレージ
  • 高いデータ可用性と信頼性
  • サイトやノードの障害に対する保護
  • ストレージ効率
  • 複数のレプリケート コピーではなく1つのイレイジャー コーディング コピーのみを使用して効率的にデータを保護する必要のある単一サイト環境
  • サイト間レイテンシが100ミリ秒未満の複数サイト環境