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
フィールドを使用してバケットクラスを作成できます。
手順
以下の 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": ""}
のように、空のままにすることもできます。