第8章 マルチクラウドオブジェクトゲートウェイバケットとバケットクラスのレプリケーション
バケット間のデータレプリケーションは、より高い復元力とより優れたコラボレーションオプションを提供します。これらのバケットは、サポートされているストレージソリューション (S3、Azure など) に基づくデータバケット、または名前空間バケット (PV プールと GCP がサポートされていない場合) のいずれかです。
- バッキングストアを作成する方法の詳細については、MCG コマンドラインインターフェイスを使用したハイブリッドまたはマルチクラウドのストレージリソースの追加 を参照してください。
- 名前空間ストアを作成する方法の詳細については、Multicloud Object Gateway CLI と YAML を使用した名前空間バケットの追加 を参照してください。
バケットのレプリケーションポリシーは、レプリケーションルールの一覧で設定されます。各ルールは宛先バケットを定義し、オブジェクトキーの接頭辞に基づいてフィルターを指定できます。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": ""}
のように、空のままにすることもできます。
関連情報
- OBC についての詳細は、Object Bucket Claim を参照してください。