クロスグリッドレプリケーションとは何ですか?
クロスグリッドレプリケーションとは、2つのStorageGRIDシステム間で接続された選択されたS3バケット間でのオブジェクトの自動レプリケーションです。"グリッドフェデレーション接続" 。"アカウントのクローン"クロスグリッドレプリケーションには必要です。
クロスグリッドレプリケーションのワークフロー
ワークフロー図は、2 つのグリッド上のバケット間のクロスグリッド レプリケーションを構成する手順をまとめたものです。

クロスグリッドレプリケーションの要件
テナントアカウントに*グリッドフェデレーション接続を使用する*権限があり、1つ以上の"グリッドフェデレーション接続"ルートアクセス権限を持つテナント ユーザーは、各グリッドの対応するテナント アカウントに同一のバケットを作成できます。これらのバケット:
-
名前は同じである必要がありますが、地域は異なっていても構いません
-
バージョン管理が有効になっている必要があります
-
S3 オブジェクトロックを無効にする必要があります
-
空である必要があります
両方のバケットが作成された後、いずれかまたは両方のバケットに対してクロスグリッド レプリケーションを構成できます。
クロスグリッドレプリケーションの仕組み
クロスグリッド レプリケーションは、一方向または双方向で実行されるように構成できます。
一方向の複製
1 つのグリッドのみのバケットに対してグリッド間レプリケーションを有効にすると、そのバケット (ソース バケット) に追加されたオブジェクトは、他のグリッドの対応するバケット (宛先バケット) に複製されます。ただし、宛先バケットに追加されたオブジェクトはソースに複製されません。図では、クロスグリッドレプリケーションが有効になっています。 `my-bucket`グリッド 1 からグリッド 2 への方向は有効になっていますが、逆方向は有効になっていません。

双方向の複製
両方のグリッドで同じバケットのクロスグリッド レプリケーションを有効にすると、いずれかのバケットに追加されたオブジェクトが他のグリッドに複製されます。図では、クロスグリッドレプリケーションが有効になっています。 `my-bucket`両方向に。

オブジェクトが摂取されると何が起こりますか?
S3 クライアントが、クロスグリッド レプリケーションが有効になっているバケットにオブジェクトを追加すると、次のことが起こります。
-
StorageGRID は、ソース バケットから宛先バケットにオブジェクトを自動的に複製します。このバックグラウンド レプリケーション操作を実行する時間は、保留中の他のレプリケーション操作の数など、いくつかの要因によって異なります。
S3 クライアントは、GetObject または HeadObject リクエストを発行してオブジェクトのレプリケーション ステータスを確認できます。レスポンスにはStorageGRID固有の `x-ntap-sg-cgr-replication-status`応答ヘッダーには、次のいずれかの値が含まれます。S3 クライアントは、GetObject または HeadObject リクエストを発行して、オブジェクトのレプリケーション ステータスを確認できます。レスポンスにはStorageGRID固有の `x-ntap-sg-cgr-replication-status`レスポンス ヘッダーは次のいずれかの値を持ちます。
Grid レプリケーションステータス ソース
-
完了: すべてのグリッド接続のレプリケーションが成功しました。
-
保留中: オブジェクトは少なくとも 1 つのグリッド接続に複製されていません。
-
失敗: どのグリッド接続でもレプリケーションは保留中ではなく、少なくとも 1 つが永続的な障害で失敗しました。ユーザーはエラーを解決する必要があります。
デスティネーション
REPLICA: オブジェクトはソース グリッドから複製されました。
StorageGRIDはサポートしていません `x-amz-replication-status`ヘッダ。 -
-
StorageGRID は、他のオブジェクトと同様に、各グリッドのアクティブな ILM ポリシーを使用してオブジェクトを管理します。たとえば、グリッド 1 上のオブジェクト A は 2 つの複製コピーとして保存され、永久に保持される一方、グリッド 2 に複製されたオブジェクト A のコピーは 2+1 消失訂正符号を使用して保存され、3 年後に削除される可能性があります。
オブジェクトが削除されると何が起こりますか?
記載の通り"データフローを削除"StorageGRID は、次のいずれかの理由でオブジェクトを削除することがあります。
-
S3 クライアントが削除リクエストを発行します。
-
テナントマネージャーユーザーが"バケット内のオブジェクトを削除する"バケットからすべてのオブジェクトを削除するオプション。
-
バケットには有効期限のあるライフサイクル構成があります。
-
オブジェクトの ILM ルールの最後の期間が終了し、それ以上の配置は指定されていません。
StorageGRID がバケット内のオブジェクトの削除操作、バケットのライフサイクルの有効期限、または ILM 配置の有効期限のためにオブジェクトを削除した場合、複製されたオブジェクトはグリッド フェデレーション接続内の他のグリッドから削除されることはありません。ただし、S3 クライアントの削除によってソース バケットに追加された削除マーカーは、オプションで宛先バケットに複製できます。
S3 クライアントがクロスグリッドレプリケーションが有効になっているバケットからオブジェクトを削除した場合に何が起こるかを理解するには、次のように、S3 クライアントがバージョン管理が有効になっているバケットからオブジェクトを削除する方法を確認します。
-
S3 クライアントがバージョン ID を含む削除リクエストを発行すると、オブジェクトのそのバージョンは完全に削除されます。バケットに削除マーカーは追加されません。
-
S3 クライアントがバージョン ID を含まない削除リクエストを発行した場合、 StorageGRID はオブジェクト バージョンを削除しません。代わりに、バケットに削除マーカーを追加します。削除マーカーにより、 StorageGRID はオブジェクトが削除されたかのように動作します。
-
バージョンIDのないGetObjectリクエストは失敗します。
404 No Object Found
-
有効なバージョン ID を持つ GetObject 要求は成功し、要求されたオブジェクト バージョンを返します。
-
S3 クライアントが、クロスグリッド レプリケーションが有効になっているバケットからオブジェクトを削除すると、 StorageGRID は次のように削除要求を宛先に複製するかどうかを決定します。
-
削除リクエストにバージョン ID が含まれている場合、そのオブジェクト バージョンはソース グリッドから完全に削除されます。ただし、 StorageGRID はバージョン ID を含む削除要求を複製しないため、同じオブジェクト バージョンは宛先から削除されません。
-
削除リクエストにバージョン ID が含まれていない場合、 StorageGRID は、バケットのクロスグリッド レプリケーションの設定に基づいて、オプションで削除マーカーを複製できます。
-
削除マーカーを複製することを選択した場合 (デフォルト)、削除マーカーがソース バケットに追加され、宛先バケットに複製されます。実際には、オブジェクトは両方のグリッドで削除されたように見えます。
-
削除マーカーを複製しないことを選択した場合、削除マーカーはソースバケットに追加されますが、宛先バケットには複製されません。実際には、ソース グリッドで削除されたオブジェクトは、宛先グリッドでは削除されません。
-
図では、*削除マーカーの複製*が*はい*に設定されています。"クロスグリッドレプリケーションが有効になりました" 。バージョン ID を含むソース バケットの削除リクエストでは、宛先バケットからオブジェクトは削除されません。バージョン ID を含まないソース バケットの削除リクエストは、宛先バケット内のオブジェクトを削除するように表示されます。

|
グリッド間でオブジェクトの削除を同期させたい場合は、対応する"S3ライフサイクル構成"両方のグリッドのバケットに対して。 |
暗号化されたオブジェクトが複製される仕組み
クロスグリッド レプリケーションを使用してグリッド間でオブジェクトをレプリケートする場合、個々のオブジェクトを暗号化したり、デフォルトのバケット暗号化を使用したり、グリッド全体の暗号化を構成したりすることができます。バケットのクロスグリッド レプリケーションを有効にする前でも後でも、デフォルトのバケットまたはグリッド全体の暗号化設定を追加、変更、または削除できます。
個々のオブジェクトを暗号化するには、オブジェクトをソース バケットに追加するときに SSE ( StorageGRID管理キーを使用したサーバー側暗号化) を使用できます。使用 x-amz-server-side-encryption`リクエストヘッダーを指定して `AES256
。見る"サーバー側の暗号化を使用する" 。
|
SSE-C (顧客提供のキーを使用したサーバー側暗号化) の使用は、クロスグリッド レプリケーションではサポートされていません。取り込み操作は失敗します。 |
バケットにデフォルトの暗号化を使用するには、PutBucketEncryptionリクエストを使用し、 SSEAlgorithm`パラメータに `AES256
。バケットレベルの暗号化は、 `x-amz-server-side-encryption`リクエスト ヘッダー。見る"バケットの操作" 。
グリッド レベルの暗号化を使用するには、保存されたオブジェクトの暗号化 オプションを AES-256 に設定します。グリッドレベルの暗号化は、バケットレベルで暗号化されていないオブジェクト、またはバケットレベルで暗号化されずに取り込まれたオブジェクトに適用されます。 `x-amz-server-side-encryption`リクエスト ヘッダー。見る"ネットワークとオブジェクトのオプションを構成する" 。
|
SSEはAES-128をサポートしません。AES-128 オプションを使用してソース グリッドに対して 保存されたオブジェクトの暗号化 オプションが有効になっている場合、AES-128 アルゴリズムの使用はレプリケートされたオブジェクトに伝播されません。代わりに、複製されたオブジェクトは、宛先のデフォルトのバケットまたはグリッド レベルの暗号化設定(使用可能な場合)を使用します。 |
ソース オブジェクトを暗号化する方法を決定する際に、 StorageGRID は次のルールを適用します。
-
使用 `x-amz-server-side-encryption`存在する場合、インジェスト ヘッダー。
-
取り込みヘッダーが存在しない場合は、バケットのデフォルトの暗号化設定(構成されている場合)を使用します。
-
バケット設定が構成されていない場合は、グリッド全体の暗号化設定(構成されている場合)を使用します。
-
グリッド全体の設定が存在しない場合は、ソース オブジェクトを暗号化しないでください。
複製されたオブジェクトを暗号化する方法を決定する際に、 StorageGRID は次の順序でルールを適用します。
-
オブジェクトが AES-128 暗号化を使用していない限り、ソース オブジェクトと同じ暗号化を使用します。
-
ソース オブジェクトが暗号化されていないか、AES-128 を使用している場合は、宛先バケットのデフォルトの暗号化設定(構成されている場合)を使用します。
-
宛先バケットに暗号化設定がない場合、宛先のグリッド全体の暗号化設定(構成されている場合)を使用します。
-
グリッド全体の設定が存在しない場合は、宛先オブジェクトを暗号化しないでください。
PutObjectTaggingとDeleteObjectTaggingはサポートされていません
PutObjectTagging および DeleteObjectTagging リクエストは、クロスグリッド レプリケーションが有効になっているバケット内のオブジェクトではサポートされません。
S3クライアントがPutObjectTaggingまたはDeleteObjectTaggingリクエストを発行すると、 501 Not Implemented`が返されます。メッセージは `Put(Delete) ObjectTagging is not available for buckets that have cross-grid replication configured
。
セグメント化されたオブジェクトがどのように複製されるか
ソース グリッドの最大セグメント サイズは、宛先グリッドに複製されるオブジェクトに適用されます。オブジェクトが別のグリッドに複製されると、ソース グリッドの 最大セグメント サイズ 設定 ([構成] > *システム > ストレージ オプション) が両方のグリッドで使用されます。たとえば、ソース グリッドの最大セグメント サイズが 1 GB で、宛先グリッドの最大セグメント サイズが 50 MB であるとします。ソース グリッドに 2 GB のオブジェクトを取り込むと、そのオブジェクトは 2 つの 1 GB セグメントとして保存されます。また、グリッドの最大セグメント サイズが 50 MB であるにもかかわらず、2 つの 1 GB セグメントとして宛先グリッドに複製されます。