10.5. Multicloud Object Gateway バケットレプリケーションのバージョンの同期


前提条件

  • Object Bucket Claim (OBC) と任意の MCG ターゲットバケットから作成される Multicloud Object Gateway (MCG) ソースバケット。たとえば、MCG コマンドラインインターフェイス (CLI) を使用して OBC で 2 つのバケットを作成できます。

    • OBC を使用してソースバケットを作成します。

      $ odf noobaa obc create source-bucket --exact
      $ odf noobaa obc create target-bucket --exact

      --exact はオプションです。

  • MCG 認証情報とエンドポイントを使用した S3 クライアントエイリアスが設定されていることを確認します。

    $ NOOBAA_ACCESS_KEY=$(oc extract secret/noobaa-admin -n openshift-storage --keys=AWS_ACCESS_KEY_ID --to=- 2>/dev/null); \
    NOOBAA_SECRET_KEY=$(oc extract secret/noobaa-admin -n openshift-storage --keys=AWS_SECRET_ACCESS_KEY --to=- 2>/dev/null); \
    S3_ENDPOINT=https://$(oc get route s3 -n openshift-storage -o json | jq -r ".spec.host")
    $ alias common_s3='AWS_ACCESS_KEY_ID=$NOOBAA_ACCESS_KEY AWS_SECRET_ACCESS_KEY=$NOOBAA_SECRET_KEY aws --endpoint $S3_ENDPOINT --no-verify-ssl'; \
    alias s3_alias='common_s3 s3'; \
    alias s3api_alias='common_s3 s3api'
  • AWS S3 クライアントで put-bucket-versioning コマンドを使用して、ソースバケットとターゲットバケットの両方でバージョン管理を有効にします。

    $ s3api_alias put-bucket-versioning --bucket source-bucket --versioning-configuration Status=Enabled
    $ s3api_alias put-bucket-versioning --bucket target-bucket --versioning-configuration Status=Enabled

    手順

    1. ソースバケットの OBC に sync_versions: true を指定してレプリケーションポリシーをパッチまたは編集します。

      $ oc patch obc source-bucket -n openshift-storage --type=merge -p '{"spec": {"additionalConfig": {"replicationPolicy": "{\"rules\":[{\"rule_id\":\"replication-rule-a\",\"destination_bucket\":\"target-bucket\", \"sync_versions\": true}]}"}}}'

      通常のバケットレプリケーションは最新バージョンのみをレプリケートしますが、sync_versions を使用すると、古いバージョンも元の順序でレプリケートする機能が追加されます。

注記
  • 設定され、ログベースレプリケーションを使用する場合、Delete マーカーはレプリケートされます。
  • 削除バージョン ID は、ヒューマンエラーを回避するためにレプリケートされません。

検証手順

  • オブジェクトキーの下にいくつかのバージョンを追加し、それらがターゲットバケットに複製されるのを待って、ターゲットバケットへの複製を確認します。

    $ echo 'version_a' | s3_alias cp - s3://source-bucket/versioned_obj.txt
    $ echo 'version_b' | s3_alias cp - s3://source-bucket/versioned_obj.txt
    $ echo 'version_c' | s3_alias cp - s3://source-bucket/versioned_obj.txt

    数分後、両方のバケットのオブジェクトのバージョンを比較します。

    $ s3api_alias list-object-versions --bucket source-bucket --prefix versioned_obj.txt | jq -r ".Versions[].ETag"
    "aaabf266d38a8e995cef03c13ee9a7f1"
    "181d8a23f59939c0cddec1692e05cdf3"
    "ebc538cc6ffa04a39263f4b1be2f832f"
    $ s3api_alias list-object-versions --bucket target-bucket --prefix versioned_obj.txt | jq -r ".Versions[].ETag"
    "aaabf266d38a8e995cef03c13ee9a7f1"
    "181d8a23f59939c0cddec1692e05cdf3"
    "ebc538cc6ffa04a39263f4b1be2f832f"
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る