第8章 マルチクラウドオブジェクトゲートウェイバケットとバケットクラスのレプリケーション

バケット間のデータレプリケーションは、より高い復元力とより優れたコラボレーションオプションを提供します。これらのバケットは、サポートされているストレージソリューション (S3、Azure など) に基づくデータバケット、または名前空間バケット (PV プールと GCP がサポートされていない場合) のいずれかです。

バケットのレプリケーションポリシーは、レプリケーションルールの一覧で設定されます。各ルールは宛先バケットを定義し、オブジェクトキーの接頭辞に基づいてフィルターを指定できます。2 番目のバケットで補完的なレプリケーションポリシーを設定すると、双方向レプリケーションが実行されます。

前提条件

  • 実行中の OpenShift Data Foundation Platform。
  • Multicloud Object Gateway (MCG) へのアクセスについては、Accessing the Multicloud Object Gateway with your applications を参照してください。
  • MCG コマンドラインインターフェイスをダウンロードします。

    # subscription-manager repos --enable=rh-odf-4-for-rhel-8-x86_64-rpms
    # yum install mcg
    重要

    サブスクリプションマネージャーを使用してリポジトリーを有効にするための適切なアーキテクチャーを指定します。たとえば、IBM Power の場合は、次のコマンドを使用します。

    # subscription-manager repos --enable=rh-odf-4-for-rhel-8-ppc64le-rpms
  • または、mcg パッケージを、https://access.redhat.com/downloads/content/547/ver=4/rhel---8/4/x86_64/packages にある OpenShift Data Foundation RPM からインストールできます。

    重要

    お使いのアーキテクチャーに応じて、正しい製品バリアントを選択します。

    注記

    特定の MCG 機能は特定の MCG バージョンでのみ利用でき、適切な MCG CLI ツールのバージョンを使用して MCG の機能を完全に活用する必要があります。

バケットを複製するには、バケットの別のバケットへの複製 を参照してください。

バケットクラスレプリケーションポリシーを設定するには、バケットクラスのレプリケーションポリシーの設定 を参照してください。

8.1. バケットの別のバケットへの複製

バケットレプリケーションポリシーは、次の 2 つの方法で設定できます。

8.1.1. MCG コマンドラインインターフェイスを使用してバケットの別のバケットへの複製

Multicloud Object Gateway (MCG) バケットに特定のレプリケーションポリシーが必要なアプリケーションは、Object Bucket Claim (OBC) を作成し、JSON ファイルで replication policy パラメーターを定義できます。

手順

  • MCG コマンドラインインターフェイスから以下のコマンドを実行し、特定のレプリケーションポリシーで OBC を作成します。

    noobaa obc create <bucket-claim-name> -n openshift-storage --replication-policy /path/to/json-file.json
    <bucket-claim-name>
    バケットクレームの名前を指定します。
    /path/to/json-file.json

    レプリケーションポリシーを定義する JSON ファイルへのパスです。

    JSON ファイルの例:

    [{ "rule_id": "rule-1", "destination_bucket": "first.bucket", "filter": {"prefix": "repl"}}]
    "prefix"
    これは任意になります。複製する必要があるのはオブジェクトキーの接頭辞であり、たとえば {"prefix": ""} のように、空のままにすることもできます。

    例8.1 例

    noobaa obc create my-bucket-claim -n openshift-storage --replication-policy /path/to/json-file.json

8.1.2. YAML を使用してバケットを別のバケットに複製

Multicloud Object Gateway (MCG) データバケットを必要とするアプリケーションは、特定のレプリケーションポリシーを持つことができます。また、Object Bucket Claim (OBC) を作成し、spec.additionalConfig.replication-policy パラメーターを OBC に追加できます。

手順

  • 以下の YAML を適用します。

    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: <desired-bucket-claim>
      namespace: <desired-namespace>
    spec:
      generateBucketName: <desired-bucket-name>
      storageClassName: openshift-storage.noobaa.io
      additionalConfig:
        replication-policy: [{ "rule_id": "<rule id>", "destination_bucket": "first.bucket", "filter": {"prefix": "<object name prefix>"}}]
    <desired-bucket-claim>
    バケットクレームの名前を指定します。
    <desired-namespace>
    namespace を指定します。
    <desired-bucket-name>
    バケット名の接頭辞を指定します。
    "rule_id"
    ルールの ID 番号を指定します (例: {"rule_id": "rule-1"})。
    "destination_bucket"
    宛先バケットの名前を指定します (例: {"destination_bucket": "first.bucket"})。
    "prefix"
    これは任意になります。複製する必要があるのはオブジェクトキーの接頭辞であり、たとえば {"prefix": ""} のように、空のままにすることもできます。

関連情報