Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

クロスグリッドレプリケーションとは何ですか。

共同作成者 netapp-pcarriga netapp-lhalbert

グリッド間レプリケーションは、に接続された2つのStorageGRIDシステム内の選択したS3バケット間でオブジェクトを自動的にレプリケートするレプリケーションです"グリッドフェデレーション接続""アカウントのクローン"は、グリッド間レプリケーションに必要です。

グリッド間レプリケーションのワークフロー

ワークフロー図は、2 つのグリッド上のバケット間のクロスグリッド レプリケーションを構成する手順をまとめたものです。

グリッド間レプリケーションのワークフロー

グリッド間レプリケーションの要件

テナントアカウントに*グリッドフェデレーション接続を使用する*権限があり、1つ以上の"グリッドフェデレーション接続"ルートアクセス権限を持つテナント ユーザーは、各グリッドの対応するテナント アカウントにバケットを作成できます。これらのバケット:

  • それぞれ異なる名前を持つことができます

  • 異なる地域を持つことができる

  • バージョン管理が有効になっている必要があります

  • 空にする必要があります

両方のバケットが作成されたら、一方または両方のバケットに対してクロスグリッドレプリケーションを設定できます。

グリッド間レプリケーションの仕組み

クロスグリッド レプリケーションを一方向または双方向で実行するように構成できます。

一方向のレプリケーション

1 つのグリッドのみのバケットに対してグリッド間レプリケーションを有効にすると、そのバケット (ソース バケット) に追加されたオブジェクトは、他のグリッドの対応するバケット (宛先バケット) に複製されます。ただし、宛先バケットに追加されたオブジェクトはソースに複製されません。図では、クロスグリッドレプリケーションが有効になっています。 `my-bucket`グリッド 1 からグリッド 2 への移動は可能ですが、逆方向では有効になっていません。

一方向のグリッドフェデレーション接続を示す図

双方向のレプリケーション

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

双方向のレプリケーションと比較した、一方向のレプリケーションを示す画像

オブジェクトが取り込まれるとどうなりますか?

S3クライアントが、クロスグリッドレプリケーションが有効になっているバケットにオブジェクトを追加すると、次の処理が実行されます。

  1. StorageGRID は、ソースバケットからデスティネーションバケットにオブジェクトを自動的にレプリケートします。このバックグラウンドレプリケーション処理の実行時間は、保留中の他のレプリケーション処理の数など、いくつかの要因によって異なります。

    S3 クライアントは、GetObject または HeadObject リクエストを発行してオブジェクトのレプリケーション ステータスを確認できます。レスポンスにはStorageGRID固有の `x-ntap-sg-cgr-replication-status`応答ヘッダー。次のいずれかの値を持ちます。

    グリッド レプリケーションのステータス

    ソース

    • * Completed *:すべてのグリッド接続でレプリケーションが完了しました。

    • * pending *:オブジェクトは少なくとも1つのグリッド接続にレプリケートされていません。

    • 失敗: どのグリッド接続でもレプリケーションは保留中ではなく、少なくとも 1 つの接続で永続的な障害が発生しました。ユーザーはエラーを解決する必要があります。

    デスティネーション

    replica:オブジェクトはソースグリッドからレプリケートされました。

    メモ StorageGRIDはサポートしていません `x-amz-replication-status`ヘッダ。
  2. StorageGRIDは、他のオブジェクトと同様に、各グリッドのアクティブなILMポリシーを使用してオブジェクトを管理します。たとえば、グリッド1のオブジェクトAは2つのレプリケートコピーとして格納されて無期限に保持されるのに対し、グリッド2にレプリケートされたオブジェクトAのコピーは2+1のイレイジャーコーディングを使用して格納され、3年後に削除されるとします。

オブジェクトが削除されるとどうなりますか?

で説明したように"データフローを削除します"、StorageGRIDは次のいずれかの理由でオブジェクトを削除できます。

  • S3クライアントが削除要求を実行します。

  • Tenant Managerユーザが、バケットからすべてのオブジェクトを削除するオプションを選択しまし"バケット内のオブジェクトを削除する"た。

  • バケットにはライフサイクル設定があり、有効期限が切れます。

  • オブジェクトのILMルールの最後の期間が終了し、それ以上の配置が指定されていない。

[Delete objects in bucket]処理、バケットライフサイクルの有効期限、またはILM配置の有効期限が原因でStorageGRID がオブジェクトを削除しても、レプリケートオブジェクトがグリッドフェデレーション接続の他のグリッドから削除されることはありません。ただし、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要求を使用して、パラメータをに AES256`設定します `SSEAlgorithm。バケットレベルの暗号化は、要求ヘッダーを指定せずに取り込まれたオブジェクトに適用され `x-amz-server-side-encryption`ます。を参照して "バケットの処理"

グリッドレベルの暗号化を使用するには、* stored object encryption オプションを AES-256 *に設定します。グリッドレベルの暗号化は、バケットレベルで暗号化されていないオブジェクト、または要求ヘッダーなしで取り込まれたオブジェクトに適用され `x-amz-server-side-encryption`ます。を参照して "ネットワークとオブジェクトのオプションを設定します"

メモ SSE は AES-128 をサポートしていません。 AES-128 オプションを使用してソース グリッドに対して 保存されたオブジェクトの暗号化 オプションが有効になっている場合、AES-128 アルゴリズムの使用はレプリケートされたオブジェクトに伝播されません。代わりに、複製されたオブジェクトは、宛先のデフォルトのバケットまたはグリッド レベルの暗号化設定(使用可能な場合)を使用します。

ソースオブジェクトの暗号化方法を決定する際に、StorageGRID は次のルールを適用します。

  1. 取り込みヘッダーがある場合は、そのヘッダーを使用し `x-amz-server-side-encryption`ます。

  2. 取り込みヘッダーが存在しない場合は、バケットのデフォルトの暗号化設定(構成されている場合)を使用します。

  3. バケット設定が構成されていない場合は、グリッド全体の暗号化設定(構成されている場合)を使用します。

  4. グリッド全体の設定が存在しない場合は、ソース オブジェクトを暗号化しないでください。

StorageGRID では、レプリケートオブジェクトの暗号化方法を決定する際に、次の順序でルールが適用されます。

  1. ソースオブジェクトがAES-128暗号化を使用している場合を除き、ソースオブジェクトと同じ暗号化を使用します。

  2. ソース オブジェクトが暗号化されていないか、AES-128 を使用している場合は、宛先バケットのデフォルトの暗号化設定(構成されている場合)を使用します。

  3. 宛先バケットに暗号化設定がない場合、宛先のグリッド全体の暗号化設定(構成されている場合)を使用します。

  4. グリッド全体の設定が存在しない場合は、宛先オブジェクトを暗号化しないでください。

S3 オブジェクトロックを使用したクロスグリッドレプリケーション

次の状況では、S3 オブジェクト ロックが有効になっているStorageGRIDバケット間でクロス グリッド レプリケーションを設定できます。

ソースバケットの S3 オブジェクトロックがかかっている場合…​ そして、送信先バケットの S3 オブジェクトロックは…​

有効

有効

無効

有効

ソースバケットの S3 オブジェクトロックが有効になっている場合:

  • オブジェクトは、次の順序で保存先で保持設定を使用してロックされます。

    1. ソース オブジェクトの保持ヘッダー値:

      x-amz-object-lock-mode

      x-amz-object-lock-retain-until-date

    2. ソースバケットのデフォルトの保持期間(設定されている場合)。

    3. 宛先バケットのデフォルトの保持期間(設定されている場合)。

    宛先バケットのデフォルトの保持は、ソース オブジェクトから複製された保持設定を上書きしません。

  • 宛先オブジェクトの法的保留ステータスを設定するには、 `x-amz-object-lock-legal-hold`オブジェクトをアップロードするとき。

  • 宛先テナントまたはバケットがソースオブジェクトの S3 オブジェクトロック設定をサポートしていない場合は、エラーが発生します。参照"クロスグリッド レプリケーションのアラートとエラー。"

ソースバケットの S3 オブジェクトロックが無効になっている場合:

  • 宛先バケットのデフォルトの保持期間を設定して、宛先オブジェクトに S3 オブジェクトロックの保持期間設定を適用できます。

  • 宛先オブジェクトは法的保留ステータスを設定できません。

PutObjectTaggingとDeleteObjectTaggingはサポートされない

PutObjectTagging要求とDeleteObjectTagging要求は、グリッド間レプリケーションが有効になっているバケット内のオブジェクトではサポートされません。

S3クライアントがPutObjectTaggingまたはDeleteObjectTaggingリクエストを発行すると、 501 Not Implemented`が返されます。メッセージは `Put(Delete) ObjectTagging isn't available for buckets that have cross-grid replication configured

PutObjectRetentionとPutObjectLegalHoldはサポートされていません

PutObjectRetention および PutObjectLegalHold リクエストは、クロスグリッド レプリケーションが有効になっているバケット内のオブジェクトでは完全にはサポートされません。

S3 クライアントが PutObjectRetention または PutObjectLegalHold リクエストを発行すると、ソース オブジェクトの設定は変更されますが、その変更は宛先には適用されません。

セグメント化されたオブジェクトのレプリケート方法

ソース グリッドの最大セグメント サイズは、宛先グリッドに複製されるオブジェクトに適用されます。オブジェクトが別のグリッドに複製される場合、ソース グリッドの 最大セグメント サイズ 設定 ([構成] > *システム] > *ストレージ オプション) が両方のグリッドで使用されます。たとえば、ソース グリッドの最大セグメント サイズが 1 GB で、宛先グリッドの最大セグメント サイズが 50 MB であるとします。ソース グリッドに 2 GB のオブジェクトを取り込むと、そのオブジェクトは 2 つの 1 GB セグメントとして保存されます。また、グリッドの最大セグメント サイズは 50 MB ですが、宛先グリッドには 2 つの 1 GB セグメントとして複製されます。