9.2. バケットクラスのレプリケーションポリシーの設定

特定のバケットクラスで作成されたすべてのバケットに自動的に適用されるレプリケーションポリシーを設定することができます。これは、以下の 2 つの方法で実行できます。

9.2.1. MCG コマンドラインインターフェイスを使用したバケットクラスのレプリケーションポリシーの設定

マルチクラウドオブジェクトゲートウェイ (MCG) バケットクラスに特定のレプリケーションポリシーが必要なアプリケーションは、bucketclass を作成し、JSON ファイルで replication-policy パラメーターを定義できます。

次の 2 種類のバケットクラスにバケットクラスレプリケーションポリシーを設定できます。

  • Placement
  • Namespace

手順

  • MCG コマンドラインインターフェイスから、以下のコマンドを実行します。

    noobaa -n openshift-storage bucketclass create placement-bucketclass <bucketclass-name> --backingstores <backingstores> --replication-policy=/path/to/json-file.json
    <bucketclass-name>
    バケットクラスの名前を指定します。
    <backingstores>
    バッキングストアの名前を指定します。複数のバッキングストアをコンマで区切って渡すことができます。
    /path/to/json-file.json

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

    JSON ファイルの例:

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

    例9.2 例

    noobaa -n openshift-storage bucketclass create placement-bucketclass bc --backingstores azure-blob-ns --replication-policy=/path/to/json-file.json

    この例では、JSON ファイルで定義された特定のレプリケーションポリシーを使用して配置バケットクラスを作成します。

9.2.2. YAML を使用したバケットクラスのレプリケーションポリシーの設定

マルチクラウドオブジェクトゲートウェイ (MCG) バケットクラスに特定のレプリケーションポリシーが必要なアプリケーションは、spec.replicationPolicy フィールドを使用してバケットクラスを作成できます。

手順

  1. 以下の YAML を適用します。

    apiVersion: noobaa.io/v1alpha1
    kind: BucketClass
    metadata:
      labels:
        app: <desired-app-label>
      name: <desired-bucketclass-name>
      namespace: <desired-namespace>
    spec:
      placementPolicy:
        tiers:
        - backingstores:
          - <backingstore>
          placement: Spread
      replicationPolicy: [{ "rule_id": "<rule id>", "destination_bucket": "first.bucket", "filter": {"prefix": "<object name prefix>"}}]

    この YAML は、配置バケットクラスを作成する例です。バケットにアップロードされた各オブジェクトバケットクレーム (OBC) オブジェクトは、接頭辞に基づいてフィルタリングされ、first.bucket に複製されます。

    <desired-app-label>
    アプリのラベルを指定します。
    <desired-bucketclass-name>
    バケットクラス名を指定します。
    <desired-namespace>
    バケットクラスが作成される namespace を指定します。
    <backingstore>
    バッキングストアの名前を指定します。複数のバッキングストアを通過することが可能です。
    "rule_id"
    ルールの ID 番号を指定します (例: `{"rule_id": "rule-1"})。
    "destination_bucket"
    宛先バケットの名前を指定します (例: {"destination_bucket": "first.bucket"})。
    "prefix"
    これは任意になります。複製する必要があるのはオブジェクトキーの接頭辞であり、たとえば {"prefix": ""} のように、空のままにすることもできます。