イレイジャー コーディング スキームとは

ILMルールにイレイジャー コーディング プロファイルを設定する場合は、使用するストレージ プールを構成するストレージ ノードとサイトの数に基づいて、使用可能なイレイジャー コーディング スキームを選択します。イレイジャー コーディング スキームは、各オブジェクト用に作成されるデータ フラグメントとパリティ フラグメントの数を制御します。

StorageGRIDシステムは、Reed-Solomonイレイジャー コーディング アルゴリズムを使用します。このアルゴリズムは、オブジェクトをk個のデータ フラグメントに分割して、m個のパリティ フラグメントを計算します。k + m = n個のフラグメントがn個のストレージ ノードに分散され、データ保護を提供します。失われたフラグメントまたは破損したフラグメントの数がm個になるまでオブジェクトを維持できます。k 個のフラグメントがオブジェクトの読み出しまたは修復に必要です。

イレイジャー コーディング プロファイルを設定する際は、ストレージ プールについて次のガイドラインに従ってください。

イレイジャー コーディング スキームのストレージ オーバーヘッドは、パリティ フラグメント数(m)をデータ フラグメント数(k)で割って算出します。ストレージ オーバーヘッドを使用して、各イレイジャー コーディング オブジェクトに必要なディスク スペースを計算できます。

disk space = object size + (object size * storage overhead)

たとえば、4+2のスキーム(ストレージ オーバーヘッド50%)を使用して10MBのオブジェクトを格納する場合、そのオブジェクトが消費するグリッド ストレージは15MBです。同じ10MBのオブジェクトを6+2のスキーム(ストレージ オーバーヘッド33%)を使用して格納する場合は、オブジェクトが消費するストレージは約13.3MBになります。

ニーズを満たすイレイジャー コーディング スキームのうち、k+mが最小になるスキームを選択してください。フラグメント数が少ないイレイジャー コーディング スキームほど、1つのオブジェクトに対して作成されて分散される(または読み出される)フラグメント数が少ないため、全体として処理効率が高く、フラグメント サイズが大きいためパフォーマンスも向上します。また、ストレージの追加が必要になった場合に拡張で追加するノード数も少なくて済みます (ストレージの拡張計画については、StorageGRIDの拡張手順を参照してください)。

3つ以上のサイトを含むストレージ プールのイレイジャー コーディング スキーム

次の表は、3つ以上のサイトを含むストレージ プールについてStorageGRIDで現在サポートされているイレイジャー コーディング スキームを示しています。これらのスキームは、いずれもサイト障害からの保護に対応しています。1つのサイトが失われてもオブジェクトには引き続きアクセスできます。

サイト障害からの保護に対応したイレイジャー コーディング スキームの場合、各サイトに少なくとも3つのストレージ ノードが必要であるため、ストレージ プールの推奨されるストレージ ノード数はk+m+1よりも多くなります。
イレイジャー コーディング スキーム

(k + m)

サイトの最小数 各サイトで推奨されるストレージ ノードの数 推奨されるストレージ ノードの総数 サイト障害からの保護 ストレージ オーバーヘッド
4+2 3 3* 9 50%
6+2 4 3* 12 33%
8+2 5 3* 15 25%
6+3 3 4 12 50%
9+3 4 4 16 33%
2+1 3 3* 9 50%
4+1 5 3* 15 25%
6+1 7 3* 21 17%
7+5 3 5† 15 71%

* StorageGRIDでは、サイトごとに少なくとも3つのストレージ ノードが必要です。

† 7+5のスキームを使用するには、各サイトに少なくとも4つのストレージ ノードが必要です。サイトごとに5つのストレージ ノードを使用することを推奨します。

サイト保護に対応したイレイジャー コーディング スキームを選択する場合は、次の要素の相対的な重要性を考慮してください。
  • フラグメント数:一般に、フラグメントの総数が少ないほど、パフォーマンスと拡張の柔軟性が向上します。
  • フォールト トレランス:パリティ セグメントの数が多い(mの値が大きい)ほど、フォールト トレランスが向上します。
  • ネットワーク トラフィック:フラグメントの数が多い(k+mの合計値が大きい)ほど、障害からのリカバリ時のネットワーク トラフィックが多くなります。
  • ストレージ オーバーヘッド:オーバーヘッドが高いスキームほど、オブジェクトあたりの必要なストレージ スペースが大きくなります。
たとえば、4+2と6+3のどちらかのスキーム(ストレージ オーバーヘッドはどちらも50%)を選択する場合、フォールト トレランスを向上させる必要がある場合は6+3のスキームを選択します。ネットワーク リソースに制約がある場合は4+2のスキームを選択します。他のすべての要素が同じであれば、フラグメントの総数が少ない4+2を選択します。
注: どのスキームを使用するべきかわからない場合は、4+2または6+3を選択するか、テクニカル サポートにお問い合わせください。

1サイトのストレージ プールのイレイジャー コーディング スキーム

1サイトのストレージ プールでそのサイトに十分な数のストレージ ノードがある場合、3つ以上のサイト用のイレイジャー コーディング スキームがすべてサポートされます。

ストレージ プールに必要なストレージ ノードの最小数はk+mですが、k+m+1のストレージ ノードを含めることを推奨します。たとえば、2+1のイレイジャー コーディング スキームの場合、ストレージ プールには少なくとも3つのストレージ ノードが必要ですが、推奨されるストレージ ノード数は4つです。

イレイジャー コーディング スキーム

(k + m)

ストレージ ノードの最小数 推奨されるストレージ ノードの数 ストレージ オーバーヘッド
4+2 6 7 50%
6+2 8 9 33%
8+2 10 11 25%
6+3 9 10 50%
9+3 12 13 33%
2+1 3 4 50%
4+1 5 6 25%
6+1 7 8 17%
7+5 12 13 71%