9.7. バケット管理
ストレージ管理者は、Ceph Object Gateway を使用する場合は、バケットをユーザー間で移動して名前を変更することで、バケットを管理できます。バケット通知を作成して、特定のイベントでトリガーできます。また、ストレージクラスターの存続期間中に発生する可能性のある孤立したオブジェクトやリークオブジェクトを Ceph Object Gateway 内で見つけることができます。
何百万ものオブジェクトが高い取り込み率で Ceph Object Gateway バケットにアップロードされると、radosgw-admin bucket stats コマンドで誤った num_objects が報告されます。radosgw-admin bucket list コマンドを使用すると、num_objects パラメーターの値を修正できます。
マルチサイトクラスターでは、セカンダリーサイトからバケットを削除しても、メタデータの変更はプライマリーサイトと同期されません。したがって、Red Hat では、セカンダリーサイトではなく、プライマリーサイトからのみバケットを削除することを推奨します。
9.7.1. バケットの名前変更 リンクのコピーリンクがクリップボードにコピーされました!
バケットの名前を変更できます。バケット名のアンダースコアを許可する必要がある場合は、rgw_relaxed_s3_bucket_names オプションを true に設定します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Object Gateway ソフトウェアのインストール。
- 既存のバケット。
手順
バケットをリスト表示します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow バケットの名前を変更します。
構文
radosgw-admin bucket link --bucket=ORIGINAL_NAME --bucket-new-name=NEW_NAME --uid=USER_ID
radosgw-admin bucket link --bucket=ORIGINAL_NAME --bucket-new-name=NEW_NAME --uid=USER_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# radosgw-admin bucket link --bucket=s3bucket1 --bucket-new-name=s3newb --uid=testuser
[ceph: root@host01 /]# radosgw-admin bucket link --bucket=s3bucket1 --bucket-new-name=s3newb --uid=testuserCopy to Clipboard Copied! Toggle word wrap Toggle overflow バケットがテナント内部にある場合は、テナントも指定します。
構文
radosgw-admin bucket link --bucket=tenant/ORIGINAL_NAME --bucket-new-name=NEW_NAME --uid=TENANT$USER_ID
radosgw-admin bucket link --bucket=tenant/ORIGINAL_NAME --bucket-new-name=NEW_NAME --uid=TENANT$USER_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# radosgw-admin bucket link --bucket=test/s3bucket1 --bucket-new-name=s3newb --uid=test$testuser
[ceph: root@host01 /]# radosgw-admin bucket link --bucket=test/s3bucket1 --bucket-new-name=s3newb --uid=test$testuserCopy to Clipboard Copied! Toggle word wrap Toggle overflow バケットの名前が変更されたことを確認します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.2. バケットの削除 リンクのコピーリンクがクリップボードにコピーされました!
Ceph Object Gateway 設定を使用して Red Hat Ceph Storage クラスターからバケットを削除します。
バケットにオブジェクトがない場合は、radosgw-admin bucket rm コマンドを実行できます。バケット内にオブジェクトがある場合は、--purge-objects オプションを使用できます。
マルチサイト設定の場合、Red Hat はプライマリーサイトからバケットを削除することを推奨します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Object Gateway ソフトウェアのインストール。
- 既存のバケット。
手順
バケットをリスト表示します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow バケットを削除します。
構文
radosgw-admin bucket rm --bucket=BUCKET_NAME
radosgw-admin bucket rm --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# radosgw-admin bucket rm --bucket=s3bucket1
[ceph: root@host01 /]# radosgw-admin bucket rm --bucket=s3bucket1Copy to Clipboard Copied! Toggle word wrap Toggle overflow バケットにオブジェクトがある場合は、次のコマンドを実行します。
構文
radosgw-admin bucket rm --bucket=BUCKET --purge-objects --bypass-gc
radosgw-admin bucket rm --bucket=BUCKET --purge-objects --bypass-gcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# radosgw-admin bucket rm --bucket=s3bucket1 --purge-objects --bypass-gc
[ceph: root@host01 /]# radosgw-admin bucket rm --bucket=s3bucket1 --purge-objects --bypass-gcCopy to Clipboard Copied! Toggle word wrap Toggle overflow --purge-objectsオプションはオブジェクトをパージし、--bypass-gcオプションはガベージコレクターを使用せずにオブジェクトの削除をトリガーして、プロセスをより効率的にします。バケットが削除されたことを確認します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.3. バケットの移動 リンクのコピーリンクがクリップボードにコピーされました!
radosgw-admin bucket ユーティリティーは、ユーザー間でバケットを移行する機能を提供します。これを実行するには、バケットを新規ユーザーにリンクし、バケットの所有権を新規ユーザーに変更します。
バケットを移動できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Object Gateway がインストールされている。
- S3 バケット。
- さまざまなテナントユーザーとテナントのないユーザー。
9.7.3.1. テナントのないユーザー間でのバケットの移動 リンクのコピーリンクがクリップボードにコピーされました!
radosgw-admin bucket chown コマンドは、バケットとそれに含まれるすべてのオブジェクトの所有権をあるユーザーから別のユーザーに変更する機能を提供します。これを行うには、バケットを現在のユーザーからリンク解除し、新しいユーザーにリンクして、バケットの所有権を新しいユーザーに変更します。
手順
バケットを新規ユーザーにリンクします。
構文
radosgw-admin bucket link --uid=USER --bucket=BUCKET
radosgw-admin bucket link --uid=USER --bucket=BUCKETCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# radosgw-admin bucket link --uid=user2 --bucket=data
[ceph: root@host01 /]# radosgw-admin bucket link --uid=user2 --bucket=dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow バケットが
user2に正常にリンクされていることを確認します。例
[ceph: root@host01 /]# radosgw-admin bucket list --uid=user2 [ "data" ][ceph: root@host01 /]# radosgw-admin bucket list --uid=user2 [ "data" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow バケットの所有権を新規ユーザーに変更します。
構文
radosgw-admin bucket chown --uid=user --bucket=bucket
radosgw-admin bucket chown --uid=user --bucket=bucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# radosgw-admin bucket chown --uid=user2 --bucket=data
[ceph: root@host01 /]# radosgw-admin bucket chown --uid=user2 --bucket=dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドの出力で
owner行を確認して、dataバケットの所有権が正常に変更されたことを確認します。例
[ceph: root@host01 /]# radosgw-admin bucket list --bucket=data
[ceph: root@host01 /]# radosgw-admin bucket list --bucket=dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.3.2. テナントユーザー間でのバケットの移動 リンクのコピーリンクがクリップボードにコピーされました!
バケットは、あるテナントユーザーと別のテナントユーザーの間を移動できます。
手順
バケットを新規ユーザーにリンクします。
構文
radosgw-admin bucket link --bucket=CURRENT_TENANT/BUCKET --uid=NEW_TENANT$USER
radosgw-admin bucket link --bucket=CURRENT_TENANT/BUCKET --uid=NEW_TENANT$USERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# radosgw-admin bucket link --bucket=test/data --uid=test2$user2
[ceph: root@host01 /]# radosgw-admin bucket link --bucket=test/data --uid=test2$user2Copy to Clipboard Copied! Toggle word wrap Toggle overflow バケットが
user2に正常にリンクされていることを確認します。[ceph: root@host01 /]# radosgw-admin bucket list --uid=test$user2 [ "data" ][ceph: root@host01 /]# radosgw-admin bucket list --uid=test$user2 [ "data" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow バケットの所有権を新規ユーザーに変更します。
構文
radosgw-admin bucket chown --bucket=NEW_TENANT/BUCKET --uid=NEW_TENANT$USER
radosgw-admin bucket chown --bucket=NEW_TENANT/BUCKET --uid=NEW_TENANT$USERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# radosgw-admin bucket chown --bucket='test2/data' --uid='test$tuser2'
[ceph: root@host01 /]# radosgw-admin bucket chown --bucket='test2/data' --uid='test$tuser2'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドの出力で
owner行を確認して、dataバケットの所有権が正常に変更されたことを確認します。[ceph: root@host01 /]# radosgw-admin bucket list --bucket=test2/data
[ceph: root@host01 /]# radosgw-admin bucket list --bucket=test2/dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.3.3. バケットをテナントのないユーザーからテナントユーザーに移動する リンクのコピーリンクがクリップボードにコピーされました!
バケットをテナントのないユーザーからテナントユーザーに移動できます。
手順
オプション: まだ複数のテナントがない場合は、
rgw_keystone_implicit_tenantsを有効にして、外部テナントから Ceph Object Gateway にアクセスすることでテナントを作成できます。rgw_keystone_implicit_tenantsオプションを有効にします。例
[ceph: root@host01 /]# ceph config set client.rgw rgw_keystone_implicit_tenants true
[ceph: root@host01 /]# ceph config set client.rgw rgw_keystone_implicit_tenants trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow s3cmdコマンドまたはswiftコマンドのいずれかを使用して、一時テナントから Ceph Object Gateway にアクセスします。例
[ceph: root@host01 /]# swift list
[ceph: root@host01 /]# swift listCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、
s3cmdを使用します。例
[ceph: root@host01 /]# s3cmd ls
[ceph: root@host01 /]# s3cmd lsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 外部テナントからの最初のアクセスにより、同等の Ceph Object Gateway ユーザーが作成されます。
バケットをテナントされたユーザーに移動します。
構文
radosgw-admin bucket link --bucket=/BUCKET --uid='TENANT$USER'
radosgw-admin bucket link --bucket=/BUCKET --uid='TENANT$USER'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# radosgw-admin bucket link --bucket=/data --uid='test$tenanted-user'
[ceph: root@host01 /]# radosgw-admin bucket link --bucket=/data --uid='test$tenanted-user'Copy to Clipboard Copied! Toggle word wrap Toggle overflow dataバケットがtenanted-userに正常にリンクされていることを確認します。例
[ceph: root@host01 /]# radosgw-admin bucket list --uid='test$tenanted-user' [ "data" ][ceph: root@host01 /]# radosgw-admin bucket list --uid='test$tenanted-user' [ "data" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow バケットの所有権を新規ユーザーに変更します。
構文
radosgw-admin bucket chown --bucket='tenant/bucket name' --uid='tenant$user'
radosgw-admin bucket chown --bucket='tenant/bucket name' --uid='tenant$user'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# radosgw-admin bucket chown --bucket='test/data' --uid='test$tenanted-user'
[ceph: root@host01 /]# radosgw-admin bucket chown --bucket='test/data' --uid='test$tenanted-user'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドの出力で
owner行を確認して、dataバケットの所有権が正常に変更されたことを確認します。例
[ceph: root@host01 /]# radosgw-admin bucket list --bucket=test/data
[ceph: root@host01 /]# radosgw-admin bucket list --bucket=test/dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.3.4. 孤立したオブジェクトやリークオブジェクトを見つける リンクのコピーリンクがクリップボードにコピーされました!
正常なストレージクラスターには孤立したオブジェクトやリークオブジェクトがありませんが、場合によっては、孤立したオブジェクトやリークオブジェクトが発生する可能性があります。
孤立オブジェクトはストレージクラスター内に存在し、RADOS オブジェクトに関連付けられたオブジェクト ID を持ちます。ただし、バケットインデックス参照には、S3 オブジェクトを含む RADOS オブジェクトの参照がありません。たとえば、Ceph Object Gateway が操作の途中でダウンした場合、一部のオブジェクトが孤立する原因となる可能性があります。また、検出されないバグでも、孤立したオブジェクトが発生する可能性があります。
Ceph Object Gateway オブジェクトが RADOS オブジェクトにどのようにマッピングされるかを確認することができます。radosgw-admin コマンドは、これらの潜在的な孤立オブジェクトまたはリークオブジェクトのリストを検索して生成するための新しいツールを提供します。radoslist サブコマンドを使用すると、バケット内に保存されているオブジェクト、またはストレージクラスター内のすべてのバケットが表示されます。rgw-orphan-list スクリプトは、プール内の孤立したオブジェクトを表示します。
radoslist サブコマンドは、非推奨の orphans find サブコマンドおよび orphans finish サブコマンドを置き換えます。
すべてのオブジェクトが orphaned として表示されるため、Indexless バケットが使用されている場合は、このコマンドを使用しないでください。
孤立したオブジェクトを識別するもう 1 つの代替方法として、rados -p <pool> ls | grep BUCKET_ID コマンドを実行する方法があります。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- 実行中の Ceph Object Gateway。
手順
バケット内でデータを保持するオブジェクトのリストを生成するには、以下を実行します。
構文
radosgw-admin bucket radoslist --bucket BUCKET_NAME
radosgw-admin bucket radoslist --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
radosgw-admin bucket radoslist --bucket mybucket
[root@host01 ~]# radosgw-admin bucket radoslist --bucket mybucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記BUCKET_NAME を省略すると、すべてのバケット内のすべてのオブジェクトが表示されます。
rgw-orphan-listのバージョンを確認します。例
head /usr/bin/rgw-orphan-list
[root@host01 ~]# head /usr/bin/rgw-orphan-listCopy to Clipboard Copied! Toggle word wrap Toggle overflow バージョンは
2023-01-11以降である必要があります。orphan のリストを生成する必要があるディレクトリーを作成します。
例
mkdir orphans
[root@host01 ~]# mkdir orphansCopy to Clipboard Copied! Toggle word wrap Toggle overflow 前に作成したディレクトリーに移動します。
例
cd orphans
[root@host01 ~]# cd orphansCopy to Clipboard Copied! Toggle word wrap Toggle overflow プールリストから、orphans を検索するプールを選択します。このスクリプトは、クラスター内のオブジェクトによっては長時間実行される可能性があります。
例
rgw-orphan-list
[root@host01 orphans]# rgw-orphan-listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プール名を入力して、孤立を検索します。
重要メタデータプールではなく、
rgw-orphan-listコマンドを使用する場合は、データプールを指定する必要があります。rgw-orphan-listツールの使用の詳細を表示します。構文
rgw-orphan-list -h rgw-orphan-list POOL_NAME /DIRECTORY
rgw-orphan-list -h rgw-orphan-list POOL_NAME /DIRECTORYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ls -lコマンドを実行して、エラーで終わるファイルの長さが 0 であることを確認し、スクリプトが問題なく実行されたことを示します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow リストされた孤立オブジェクトを確認します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 孤立したオブジェクトを削除します。
構文
rados -p POOL_NAME rm OBJECT_NAME
rados -p POOL_NAME rm OBJECT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rados -p default.rgw.buckets.data rm myobject
[root@host01 orphans]# rados -p default.rgw.buckets.data rm myobjectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 警告正しいオブジェクトを削除していることを確認してください。
rados rmコマンドを実行すると、ストレージクラスターからデータが削除されます。
9.7.3.5. バケットインデックスエントリーの管理 リンクのコピーリンクがクリップボードにコピーされました!
radosgw-admin bucket check サブコマンドを使用して、Red Hat Ceph Storage クラスターで Ceph Object Gateway のバケットインデックスエントリーを管理できます。
マルチパートアップロードオブジェクトの一部に関連する各バケットインデックスエントリーは、対応する .meta インデックスエントリーと照合されます。特定のマルチパートアップロードのすべての部分に .meta エントリーが必要です。ピースに対応する .meta エントリーが見つからない場合、出力のセクションに "孤立した" エントリーが一覧表示されます。
バケットの統計はバケットインデックスヘッダーに保存されます。このフェーズでは、これらのヘッダーをロードし、バケットインデックスのすべてのプレーンオブジェクトエントリーを繰り返し処理し、統計を再計算します。次に、それぞれ "existing_header" と "calculated_header" というラベルの付いたセクションに実際の統計と計算した統計を表示して、比較できるようにします。
バケットチェック サブコマンドで --fix オプションを使用すると、"孤立した" エントリーがバケットインデックスから削除され、ヘッダー内の既存の統計が計算された統計で上書きされます。これにより、バージョン管理で使用される複数のエントリーを含むすべてのエントリーが出力に一覧表示されます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- 実行中の Ceph Object Gateway。
- 新規に作成されたバケット。
手順
特定のバケットのバケットインデックスを確認します。
構文
radosgw-admin bucket check --bucket=BUCKET_NAME
radosgw-admin bucket check --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
radosgw-admin bucket check --bucket=mybucket
[root@rgw ~]# radosgw-admin bucket check --bucket=mybucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 孤立したオブジェクトの削除など、バケットインデックスの不整合を修正します。
構文
radosgw-admin bucket check --fix --bucket=BUCKET_NAME
radosgw-admin bucket check --fix --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
radosgw-admin bucket check --fix --bucket=mybucket
[root@rgw ~]# radosgw-admin bucket check --fix --bucket=mybucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.3.6. バケット通知 リンクのコピーリンクがクリップボードにコピーされました!
バケット通知により、バケットで特定のイベントが発生した場合に、Ceph Object Gateway から情報を送る方法が提供されます。バケット通知は HTTP、AMQP0.9.1、および Kafka エンドポイントに送信できます。特定バケットおよび特定のトピック上のイベントのバケット通知を送信するために、通知エントリーを作成する必要があります。バケット通知は、イベントタイプのサブセットに作成することも、デフォルトですべてのイベントタイプに対して作成できます。バケット通知は、キーの接頭辞または接尾辞、キーに一致する正規表現、オブジェクトに割り当てられたメタデータ属性、またはオブジェクトタグに基づいてイベントをフィルタリングできます。バケット通知には、バケット通知メカニズムの設定および制御インターフェイスを提供する REST API があります。
バケット通知 API はデフォルトで有効にされます。rgw_enable_apis 設定パラメーターを明示的に設定する場合は、s3 および notifications が含まれていることを確認してください。これを確認するには、ceph --admin-daemon /var/run/ceph/ceph-client.rgw.NAME.asok config get rgw_enable_apis コマンドを実行します。NAME を、Ceph Object Gateway インスタンス名に置き換えます。
CLI を使用したトピック管理
Ceph Object Gateway バケットのトピックのリスト表示、取得、および削除を実行できます。
トピックのリスト表: 以下のコマンドを実行し、すべてのトピックの設定をリスト表示します。
例
[ceph: host01 /]# radosgw-admin topic list
[ceph: host01 /]# radosgw-admin topic listCopy to Clipboard Copied! Toggle word wrap Toggle overflow トピックの取得: 以下のコマンドを実行して、特定のトピックの設定を取得します。
例
[ceph: host01 /]# radosgw-admin topic get --topic=topic1
[ceph: host01 /]# radosgw-admin topic get --topic=topic1Copy to Clipboard Copied! Toggle word wrap Toggle overflow トピックの削除: 以下のコマンドを実行し、特定のトピックの設定を削除します。
例
[ceph: host01 /]# radosgw-admin topic rm --topic=topic1
[ceph: host01 /]# radosgw-admin topic rm --topic=topic1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Ceph Object Gateway バケットがそのトピックに設定されている場合でも、トピックが削除されます。
9.7.3.7. バケット通知の作成 リンクのコピーリンクがクリップボードにコピーされました!
バケットレベルでバケット通知を作成します。通知設定には、Red Hat Ceph Storage Object Gateway S3 イベント、ObjectCreated、ObjectRemoved、および ObjectLifecycle:Expiration があります。これらは、バケット通知を送信するために宛先とともに公開する必要があります。バケット通知は S3 オペレーションです。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- 稼働中の HTTP サーバー、RabbitMQ サーバー、または Kafka サーバー。
- ルートレベルのアクセス。
- Red Hat Ceph Storage Object Gateway のインストール
- ユーザーアクセスキーおよびシークレットキー。
- エンドポイントパラメーター。
Red Hat は、ObjectCreate イベント (例: put、post、multipartUpload、および copy) をサポートします。また、Red Hat は、object_delete、s3_multi_object_delete などの ObjectRemove イベントをサポートしています。
手順
- S3 バケットを作成します。
-
http、amqp、またはkafkaプロトコルに SNS トピックを作成します。 s3:objectCreate、s3:objectRemove、およびs3:ObjectLifecycle:Expirationイベントの S3 バケット通知を作成します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - バケットに S3 オブジェクトを作成します。
-
レシーバー
http、rabbitmq、またはkafkaでのオブジェクト作成イベントを確認します。 - オブジェクトを削除します。
-
レシーバー
http、rabbitmq、またはkafkaでオブジェクトの削除イベントを確認します。
9.7.4. S3 バケットレプリケーション API リンクのコピーリンクがクリップボードにコピーされました!
S3 バケットレプリケーション API も実装され、ユーザーは異なるバケット間でレプリケーションルールを作成できるようになりました。AWS レプリケーション機能により、同じゾーン内のバケットレプリケーションが許可されますが、現時点では Ceph Object Gateway は許可しません。ただし、Ceph Object Gateway API には、特定のバケットを同期するゾーンをユーザーが選択できる Zone 配列も追加されました。
9.7.4.1. S3 バケットレプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
バケットのレプリケーション設定を作成するか、既存のレプリケーション設定を置き換えます。
レプリケーション設定には少なくとも 1 つのルールが含まれている必要があります。各ルールは、ソースバケット内のオブジェクトをフィルタリングすることにより、レプリケートするオブジェクトのサブセットを識別します。
前提条件
- マルチサイト Ceph Object Gateway が設定された実行中の Red Hat Ceph Storage クラスター。マルチサイト同期ポリシーの作成の詳細は、同期ポリシーグループの作成 を参照してください。
- ゾーングループレベルポリシーが作成されました。ゾーングループポリシーの作成の詳細は、バケットの詳細同期ポリシー を参照してください。
手順
レプリケーションの詳細を含むレプリケーション設定ファイルを作成します。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3 API の put バケットレプリケーションを作成します。
構文
aws --endpoint-url=RADOSGW_ENDPOINT_URL s3api put-bucket-replication --bucket BUCKET_NAME --replication-configuration file://REPLICATION_CONFIIRATION_FILE.json
aws --endpoint-url=RADOSGW_ENDPOINT_URL s3api put-bucket-replication --bucket BUCKET_NAME --replication-configuration file://REPLICATION_CONFIIRATION_FILE.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
aws --endpoint-url=http://host01:80 s3api put-bucket-replication --bucket testbucket --replication-configuration file://replication.json
[root@host01 ~]# aws --endpoint-url=http://host01:80 s3api put-bucket-replication --bucket testbucket --replication-configuration file://replication.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
sync policy getコマンドを使用して、同期ポリシーを確認します。構文
radosgw-admin sync policy get --bucket BUCKET_NAME
radosgw-admin sync policy get --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記レプリケーションポリシーを適用すると、ルールは パイプ と呼ばれる同期ポリシールールに変換され、
enabledとdisabledに分類されます。-
Enabled: パイプは有効かつアクティブであり、グループステータスは 'rgw_sync_policy_group:STATUS' に設定されています。たとえば、
s3-bucket-replication:enabledです。 -
Disabled: この配下のパイプは非アクティブで、グループステータスは 'rgw_sync_policy_group:STATUS' に設定されています。たとえば、
s3-bucket-replication:disabledです。
複数のルールをレプリケーションポリシーの一部として設定できるため、各グループを正確にマッピングするために 2 つの異なるグループ (1 つは 'enabled' の状態、もう 1 つは 'allowed' の状態) があります。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Enabled: パイプは有効かつアクティブであり、グループステータスは 'rgw_sync_policy_group:STATUS' に設定されています。たとえば、
9.7.4.2. S3 バケットのレプリケーションを取得する リンクのコピーリンクがクリップボードにコピーされました!
バケットのレプリケーション設定を取得できます。
前提条件
- マルチサイト Ceph Object Gateway が設定された実行中の Red Hat Ceph Storage クラスター。マルチサイト同期ポリシーの作成の詳細は、同期ポリシーグループの作成 を参照してください。
- ゾーングループレベルポリシーが作成されました。ゾーングループポリシーの作成の詳細は、バケットの詳細同期ポリシー を参照してください。
- S3 バケットのレプリケーションが作成されている。詳細は、S3 バケットレプリケーション API を参照してください。
手順
S3 API の put バケットレプリケーションを取得します。
構文
aws s3api get-bucket-replication --bucket BUCKET_NAME --endpoint-url=RADOSGW_ENDPOINT_URL
aws s3api get-bucket-replication --bucket BUCKET_NAME --endpoint-url=RADOSGW_ENDPOINT_URLCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.4.3. S3 バケットレプリケーションの削除 リンクのコピーリンクがクリップボードにコピーされました!
バケットからレプリケーション設定を削除します。
バケット所有者は、レプリケーション設定を削除する権限を他のユーザーに付与できます。
前提条件
- マルチサイト Ceph Object Gateway が設定された実行中の Red Hat Ceph Storage クラスター。マルチサイト同期ポリシーの作成の詳細は、同期ポリシーグループの作成 を参照してください。
- ゾーングループレベルポリシーが作成されました。ゾーングループポリシーの作成の詳細は、バケットの詳細同期ポリシー を参照してください。
- S3 バケットのレプリケーションが作成されている。詳細は、S3 バケットレプリケーション API を参照してください。
手順
S3 API の put バケットレプリケーションを削除します。
構文
aws s3api delete-bucket-replication --bucket BUCKET_NAME --endpoint-url=RADOSGW_ENDPOINT_URL
aws s3api delete-bucket-replication --bucket BUCKET_NAME --endpoint-url=RADOSGW_ENDPOINT_URLCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
aws s3api delete-bucket-replication --bucket testbucket --endpoint-url=http://host01:80
[root@host01 ~]# aws s3api delete-bucket-replication --bucket testbucket --endpoint-url=http://host01:80Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
既存のレプリケーションルールが削除されていることを確認します。
構文
radosgw-admin sync policy get --bucket=BUCKET_NAME
radosgw-admin sync policy get --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# radosgw-admin sync policy get --bucket=testbucket
[ceph: root@host01 /]# radosgw-admin sync policy get --bucket=testbucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.4.4. ユーザーの S3 バケットレプリケーションを無効にする リンクのコピーリンクがクリップボードにコピーされました!
管理者は、他のユーザーに対してユーザーポリシーを設定し、そのユーザーの配下にあるバケットに対する S3 レプリケーション API 操作の実行を制限できます。
前提条件
- マルチサイト Ceph Object Gateway が設定された実行中の Red Hat Ceph Storage クラスター。マルチサイト同期ポリシーの作成の詳細は、同期ポリシーグループの作成 を参照してください。
- ゾーングループレベルポリシーが作成されました。ゾーングループポリシーの作成の詳細は、バケットの詳細同期ポリシー を参照してください。
手順
S3 バケットレプリケーション API へのアクセスを拒否するユーザーポリシー設定ファイルを作成します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 管理者ユーザーとして、ユーザーにユーザーポリシーを設定し、S3 API へのユーザーアクセスを無効にします。
構文
aws --endpoint-url=ENDPOINT_URL iam put-user-policy --user-name USER_NAME --policy-name USER_POLICY_NAME --policy-document POLICY_DOCUMENT_PATH
aws --endpoint-url=ENDPOINT_URL iam put-user-policy --user-name USER_NAME --policy-name USER_POLICY_NAME --policy-document POLICY_DOCUMENT_PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
aws --endpoint-url=http://host01:80 iam put-user-policy --user-name newuser1 --policy-name userpolicy --policy-document file://user_policy.json
[root@host01 ~]# aws --endpoint-url=http://host01:80 iam put-user-policy --user-name newuser1 --policy-name userpolicy --policy-document file://user_policy.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
管理者ユーザーとして、ユーザーポリシーセットを検証します。
構文
aws --endpoint-url=ENDPOINT_URL iam get-user-policy --user-name USER_NAME --policy-name USER_POLICY_NAME --region us
aws --endpoint-url=ENDPOINT_URL iam get-user-policy --user-name USER_NAME --policy-name USER_POLICY_NAME --region usCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
aws --endpoint-url=http://host01:80 iam get-user-policy --user-name newuser1 --policy-name userpolicy --region us
[root@host01 ~]# aws --endpoint-url=http://host01:80 iam get-user-policy --user-name newuser1 --policy-name userpolicy --region usCopy to Clipboard Copied! Toggle word wrap Toggle overflow 管理者ユーザーによってユーザーポリシーが設定されたユーザーとして、以下の S3 バケットレプリケーション API 操作を実行して、アクションが期待どおりに拒否されるか確認します。