イレイジャーコーディングスキームとは
イレイジャーコーディングスキームは、各オブジェクト用に作成されるデータフラグメントとパリティフラグメントの数を制御します。
ILMルールを作成または編集するときに、使用可能なイレイジャーコーディングスキームを選択します。StorageGRIDでは、使用するストレージプールを構成するストレージノードとサイトの数に基づいて、イレイジャーコーディングスキームが自動的に作成されます。
データ保護
StorageGRID システムは、 Reed-Solomon イレイジャーコーディングアルゴリズムを使用します。このアルゴリズムは、オブジェクトを複数のデータフラグメントに分割 `k`し、パリティフラグメントを計算し `m`ます。
`k + m = n`フラグメントはストレージノード全体に分散され、 `n`次のようにデータが保護されます。
-
オブジェクトを読み出しまたは修復するには
k
、フラグメントが必要です。 -
オブジェクトは失われたフラグメントまたは破損したフラグメントまで保持できます
m
。の値が大きいほどm
、耐障害性が高くなります。
最適なデータ保護は、ストレージプール内のノードまたはボリュームの耐障害性が最も高いイレイジャーコーディングスキームによって実現されます。
ストレージオーバーヘッド
イレイジャーコーディングスキームのストレージオーバーヘッドは(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
。フラグメント数が少ないイレイジャーコーディングスキームの方が計算効率が高い理由は次のとおりです。
-
オブジェクトごとに作成、分散(読み出し)されるフラグメント数を削減
-
フラグメントサイズが大きいため、パフォーマンスが向上します。
-
ノードの追加に必要なノード数を減らすことができます。"ストレージの追加が必要になった場合の拡張"
ストレージプールに関するガイドライン
イレイジャーコーディングコピーを作成するルールに使用するストレージプールを選択する場合は、ストレージプールについて次のガイドラインに従ってください。
-
ストレージプールには 3 つ以上のサイト、または 1 つのサイトだけが含まれている必要があります。
ストレージプールにサイトが2つ含まれている場合はイレイジャーコーディングを使用できません。 -
All Sitesサイトを含むストレージプールは使用しないでください。
-
ストレージプールには、オブジェクトデータを格納できるストレージノードが少なくとも含まれている必要があります
k+m +1
。ストレージノードは、インストール時にオブジェクトメタデータのみを格納し、オブジェクトデータは格納しないように設定できます。詳細については、を参照してください "ストレージノードのタイプ"。 必要なストレージノードの最小数はです
k+m
。ただし、必要なストレージノードが一時的に使用できない場合に、少なくとも 1 つのストレージノードを追加することで、取り込みエラーや ILM バックログが発生するのを防ぐことができます。
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% |