StorageGRIDのイレイジャー コーディング方式について学ぶ
イレイジャー コーディング方式は、各オブジェクトに対して作成されるデータ フラグメントとパリティ フラグメントの数を制御します。
ILM ルールを作成または編集する際には、利用可能なイレイジャー コーディング方式を選択します。StorageGRID は、使用する予定のストレージ プールを構成するストレージ ノードとサイトの数に基づいて、イレイジャー コーディング方式を自動的に作成します。
データ保護
StorageGRID システムは、Reed-Solomon イレイジャー コーディング アルゴリズムを使用します。このアルゴリズムは、オブジェクトを `k`個のデータ フラグメントに分割し、 `m`個のパリティ フラグメントを計算します。
`k + m = n`のフラグメントは `n`個のストレージノードに分散され、次のようにデータ保護を提供します:
-
オブジェクトを取得または修復するには、 `k`フラグメントが必要です。
-
オブジェクトは最大 `m`個の失われたフラグメントまたは破損したフラグメントに耐えることができます。 `m`の値が高いほど、障害許容度が高くなります。
ストレージ プール内でノードまたはボリュームの障害耐性が最も高いイレイジャー コーディング方式を採用することで、最高のデータ保護が実現されます。
ストレージ オーバーヘッド
イレイジャー コーディング方式のストレージ オーバーヘッドは、パリティ フラグメントの数((m)をデータ フラグメントの数((k)で割ることによって計算されます。ストレージ オーバーヘッドを使用して、イレイジャー コーディングされた各オブジェクトに必要なディスク容量を計算できます。
disk space = object size + (object size * storage overhead)
例えば、10 MB のオブジェクトを 4+2 方式(ストレージ オーバーヘッドが 50%)で保存した場合、そのオブジェクトは 15 MB のグリッド ストレージを消費します。同じ 10 MB のオブジェクトを 6+2 方式(ストレージ オーバーヘッドが 33%)で保存した場合、そのオブジェクトは約 13.3 MB を消費します。
ニーズを満たす中で、 `k+m`の合計値が最も低いイレイジャー コーディング方式を選択してください。フラグメント数が少ないイレイジャー コーディング方式は、以下の理由により計算効率が高くなります。
-
オブジェクトごとに作成および配布(または取得)されるフラグメントの数が少なくなる
-
断片サイズが大きいため、パフォーマンスが向上します。
-
ノードの追加が少なくて済むため、"ストレージ容量の拡張が必要な場合"
ストレージプールに関するガイドライン
イレイジャー コーディング コピーを作成するルールに使用するストレージ プールを選択する際は、ストレージ プールに関する以下のガイドラインに従ってください。
-
ストレージプールには、3つ以上のサイト、またはちょうど1つのサイトが含まれている必要があります。
ストレージ プールに2つのサイトが含まれている場合、イレイジャー コーディングは使用できません。 -
「すべてのサイト」サイトを含むストレージ プールは使用しないでください。
-
ストレージプールには、オブジェクトデータを保存できるストレージノードが少なくとも `k+m +1`個必要です。
ストレージノードは、インストール時に、オブジェクトデータとメタデータの両方を格納する(「複合」ストレージノード)、オブジェクトメタデータのみを格納する、またはオブジェクトデータのみを格納するように構成できます。詳細については、"ストレージノードの種類"を参照してください。 必要なStorage Nodeの最小数は `k+m`です。ただし、少なくとも1つの追加のStorage Nodeを用意しておくことで、必要なStorage Nodeが一時的に利用できなくなった場合でも、取り込みの失敗や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を選択するか、テクニカルサポートにお問い合わせください。 |
単一サイトストレージプール向けのイレイジャー コーディング方式
単一サイトのストレージ プールは、サイトに十分なストレージ ノードがあれば、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% |