StorageGRID の拡張後のイレイジャー コーディング リバランスについて
ストレージノードを追加する拡張を実行していて、ILMルールを使用してデータをイレイジャー コーディングしている場合、使用しているイレイジャー コーディング方式に必要なストレージノードを十分に追加できないときは、イレイジャー コーディング(EC)リバランス手順を実行する必要があります。
これらの考慮事項を確認した後、拡張を実行し、次に"ストレージノードを追加した後、イレイジャー コーディングされたデータを再バランスする"に移動して手順を実行してください。
ECリバランスとは何ですか?
EC リバランスとは、StorageGRID のストレージノードの拡張後に必要となる可能性のある手順です。この手順は、プライマリ管理ノードからコマンドラインスクリプトとして実行されます。EC リバランス手順を実行すると、StorageGRID はサイト内の既存のストレージノードと新しく追加されたストレージノード間で、イレイジャー コーディングされたフラグメントを再分配します。
ECの再バランス手順:
-
イレイジャー コーディングされたオブジェクトデータのみを移動します。複製されたオブジェクトデータは移動しません。
-
サイト内でデータを再分配します。サイト間でデータを移動させることはありません。
-
サイト内のすべてのストレージノード間でデータを再分配します。ストレージボリューム内のデータを再分配することはありません。
-
各ノードに同じバイト数を分配しようとします。複製データが多いノードほど、リバランス完了後に保持するイレイジャー コーディング データの量は少なくなります。
-
各ノードの相対的な容量を考慮せずに、イレイジャー コーディングされたデータをストレージノード間で均等に再分配します。複製データも計算に含まれます。
-
ストレージノードの使用率が80%を超えている場合、イレイジャー コーディングされたデータは配布されません。
-
実行時に、ILM 操作および S3 クライアント操作のパフォーマンスが低下する可能性があります。これは、イレイジャー コーディング フラグメントを再配布するために追加のリソースが必要となるためです。
ECリバランス手順が完了すると:
-
イレイジャー コーディングされたデータは、使用可能なスペースが少ないストレージノードから、使用可能なスペースが多いストレージノードへと移動されます。
-
イレイジャー コーディング オブジェクトのデータ保護は変更されません。
-
ストレージノード間で使用率(%)の値が異なる理由は2つあります。
-
複製されたオブジェクトのコピーは、既存のノード上で引き続き領域を消費します—EC の再バランス手順では、複製されたデータは移動されません。
-
最終的にはすべてのノードがほぼ同じ量のデータを保持することになりますが、容量の大きいノードは容量の小さいノードに比べて相対的に使用率が低くなります。
例えば、200 TB のノードが 3 つあり、それぞれが 80% まで使用されているとします(200 × 0.8 = 各ノードに 160 TB、サイト全体では 480 TB)。400 TB ノードを追加してリバランス手順を実行すると、すべてのノードはほぼ同じ量のイレイジャー コーディング データ(480/4 = 120 TB)を持つことになります。ただし、大きいノードの Used (%)は、小さいノードの Used (%)よりも低くなります。

-
イレイジャー コーディング データのリバランスを行うタイミング
EC リバランス手順は、既存のイレイジャー コーディングされたデータを再分配することで、ノードが満杯になったり、満杯状態が続いたりしないようにします。この手順は、サイト上でイレイジャー コーディングのエンコードが継続されることを保証するのに役立ちます。
サイト上のデータ分布に懸念すべき偏りがあり、かつそのサイトに主にECデータが保存されている場合(複製データはリバランスによって移動できないため)、リバランス手順を実行してください。
ここでは、次のシナリオについて考えてみます。
-
StorageGRID は単一のサイトで稼働しており、そのサイトには 3 つのストレージノードが含まれています。
-
ILMポリシーでは、1.0 MBより大きいすべてのオブジェクトに対して2+1 イレイジャー コーディング ルールを使用し、それより小さいオブジェクトに対しては2コピー レプリケーション ルールを使用します。
-
すべてのストレージノードが完全にいっぱいになりました。Low Object Storage アラートが重大度レベル「重大」でトリガーされました。

十分な数のノードを追加すれば、リバランスは不要です。
ECリバランスが不要な場合を理解するために、3つ(またはそれ以上)の新しいストレージノードを追加したと仮定してみましょう。この場合、ECリバランスを実行する必要はありません。元のストレージノードは満杯のままですが、新しいオブジェクトは2+1イレイジャー コーディング用の3つの新しいノードを使用するようになります。2つのデータフラグメントと1つのパリティフラグメントは、それぞれ異なるノードに格納できます。

|
|
この場合、EC リバランス手順を実行することは可能ですが、既存のイレイジャー コーディングされたデータを移動すると、グリッドのパフォーマンスが一時的に低下し、クライアントの処理に影響を与える可能性があります。 |
ノードを十分に追加できない場合は、リバランスが必要です。
ECのリバランスが必要となるタイミングを理解するために、ストレージノードを3つではなく2つしか追加できない場合を考えてみましょう。2+1方式では少なくとも3つのストレージノードに空き容量が必要となるため、空いているノードを新しいイレイジャー コーディングデータに使用することはできません。

新しいストレージノードを利用するには、EC リバランス手順を実行する必要があります。この手順が実行されると、StorageGRID はサイト内のすべてのストレージノード間で、既存のイレイジャー コーディング データとパリティフラグメントを再分配します。この例では、EC リバランス手順が完了すると、5 つのノードすべての使用率が 60% になり、すべてのストレージノードで 2+1 イレイジャー コーディング方式へのオブジェクトの取り込みを継続できます。

ECバランス調整に関する推奨事項
NetApp では、以下のすべての条件が満たされる場合、イレイジャー コーディングの再バランス調整が必要となります:
-
オブジェクトデータにイレイジャー コーディングを使用します。
-
Low Object Storage アラートが、サイト内の1つ以上のストレージノードでトリガーされました。これは、ノードの容量が80%以上使用されていることを示しています。
-
使用されているイレイジャー コーディング方式に必要な数の新しいストレージノードを追加できません。"イレイジャー コーディング オブジェクト用のストレージ容量を追加する"を参照してください。
-
ECリバランス処理の実行中は、S3クライアントの書き込みおよび読み取り操作のパフォーマンスが多少低下しても問題ありません。
ストレージノードの容量を同程度にしたい場合、また、ECリバランス手順の実行中にS3クライアントの書き込みおよび読み取り操作のパフォーマンスが低下しても許容できる場合は、オプションでECリバランス手順を実行できます。
ECリバランス手順が他のメンテナンス作業とどのように連携するか
ECリバランス手順を実行している間は、特定のメンテナンス手順を同時に実行することはできません。
| 手順 | ECリバランス手順中に許可されますか? |
|---|---|
追加のイレイジャー コーディング再バランス手順 |
デスティネーション ECリバランス手順は一度に1つしか実行できません。 |
廃止措置手順 ECデータ修復ジョブ |
デスティネーション
|
拡張手順 |
デスティネーション 拡張時に新しいストレージノードを追加する必要がある場合は、すべての新しいノードを追加した後で、イレイジャー コーディングのリバランス手順を実行してください。 |
アップグレード手順 |
デスティネーション StorageGRID ソフトウェアをアップグレードする必要がある場合は、イレイジャー コーディング リバランス手順を実行する前または後にアップグレード手順を実行してください。必要に応じて、ソフトウェアのアップグレードを実行するために、イレイジャー コーディング リバランス手順を終了できます。 |
アプライアンスノードのクローン手順 |
デスティネーション アプライアンスのストレージノードをクローンする必要がある場合は、新しいノードを追加した後で EC リバランス手順を実行してください。 |
ホットフィックス手順 |
○ ECリバランス手順の実行中に、StorageGRID ホットフィックスを適用できます。 |
その他のメンテナンス手順 |
デスティネーション 他のメンテナンス手順を実行する前に、ECリバランス手順を終了させる必要があります。 |
ECリバランス手順がILMとどのように相互作用するか
ECリバランス処理の実行中は、既存の消去符号化オブジェクトの場所を変更する可能性のあるILMの変更は避けてください。例えば、異なる消去符号化プロファイルを持つILMルールを使い始めないでください。ILMの変更が必要な場合は、ECリバランス手順を終了する必要があります。