イレイジャーコーディングスキームとは
ILM ルールにイレイジャーコーディングプロファイルを設定する場合は、使用するストレージプールを構成するストレージノードとサイトの数に基づいて、使用可能なイレイジャーコーディングスキームを選択します。イレイジャーコーディングスキームは、各オブジェクト用に作成されるデータフラグメントとパリティフラグメントの数を制御します。
StorageGRID システムは、 Reed-Solomon イレイジャーコーディングアルゴリズムを使用します。このアルゴリズムは、オブジェクトを k 個のデータフラグメントに分割して、 m 個のパリティフラグメントを計算します。k + m = n 個のフラグメントが n 個のストレージノードに分散され、データ保護を提供します。失われたフラグメントまたは破損したフラグメントは、オブジェクトが保持できる最大 m 個です。k 個のフラグメントがオブジェクトの読み出しまたは修復に必要です。
イレイジャーコーディングプロファイルを設定する場合は、ストレージプールについて次のガイドラインに従ってください。
-
ストレージプールには 3 つ以上のサイト、または 1 つのサイトだけが含まれている必要があります。
ストレージプールにサイトが 2 つ含まれている場合、イレイジャーコーディングプロファイルは設定できません。 -
デフォルトのストレージプール、すべてのストレージノード、またはデフォルトサイトであるすべてのサイトを含むストレージプールは使用しないでください。
-
ストレージプールには少なくとも k + m+1 ストレージノードを含める必要があります。
必要なストレージノードの最小数は、 _ k + m_. です。ただし、必要なストレージノードが一時的に使用できない場合に、少なくとも 1 つのストレージノードを追加することで、取り込みエラーや ILM バックログが発生するのを防ぐことができます。
イレイジャーコーディングスキームのストレージオーバーヘッドは、パリティフラグメントの数( m) をデータフラグメントの数( k )で割ることによって計算されます。ストレージオーバーヘッドを使用して、各イレイジャーコーディングオブジェクトに必要なディスクスペースを計算できます。
disk space = object size + (object size * storage overhead)
たとえば、 4+2 スキームを使用して 10MB のオブジェクト(ストレージオーバーヘッドが 50% )を格納すると、そのオブジェクトが消費するグリッドストレージは 15MB です。6+3 のストレージオーバーヘッドを含む 6+2 スキームを使用して同じ 10MB のオブジェクトを格納すると、オブジェクトが消費するサイズは約 13.3 MB になります。
合計値が最も小さいイレイジャーコーディングスキーム( _k + m_that )をニーズに合わせて選択します。フラグメント数が少ないイレイジャーコーディングスキームは全体的に計算効率が高く、 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_1 ですが、 _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% |