10.7.4. S3 バケットレプリケーション API
S3 バケットレプリケーション API も実装され、ユーザーは異なるバケット間でレプリケーションルールを作成できるようになりました。AWS レプリケーション機能により、同じゾーン内のバケットレプリケーションが許可されますが、現時点では Ceph Object Gateway は許可しません。ただし、Ceph Object Gateway API には、特定のバケットを同期するゾーンをユーザーが選択できる Zone 配列も追加されました。
10.7.4.1. S3 バケットレプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
バケットのレプリケーション設定を作成するか、既存のレプリケーション設定を置き換えます。
レプリケーション設定には少なくとも 1 つのルールが含まれている必要があります。各ルールは、ソースバケット内のオブジェクトをフィルタリングすることにより、レプリケートするオブジェクトのサブセットを識別します。
前提条件
- マルチサイト Ceph Object Gateway が設定された実行中の Red Hat Ceph Storage クラスター。マルチサイト同期ポリシーの作成の詳細は、同期ポリシーグループの作成 を参照してください。
- ゾーングループレベルポリシーが作成されました。ゾーングループポリシーの作成の詳細は、バケットの詳細同期ポリシー を参照してください。
手順
レプリケーションの詳細を含むレプリケーション設定ファイルを作成します。
構文
{ "Role": "arn:aws:iam::account-id:role/role-name", "Rules": [ { "ID": "String", "Status": "Enabled", "Priority": 1, "DeleteMarkerReplication": { "Status": "Enabled"|"Disabled" }, "Destination": { "Bucket": "BUCKET_NAME" } } ] }例
[root@host01 ~]# cat replication.json { "Role": "arn:aws:iam::account-id:role/role-name", "Rules": [ { "ID": "pipe-bkt", "Status": "Enabled", "Priority": 1, "DeleteMarkerReplication": { "Status": "Disabled" }, "Destination": { "Bucket": "testbucket" } } ] }S3 API の put バケットレプリケーションを作成します。
構文
aws --endpoint-url=RADOSGW_ENDPOINT_URL s3api put-bucket-replication --bucket BUCKET_NAME --replication-configuration file://REPLICATION_CONFIIRATION_FILE.json例
[root@host01 ~]# aws --endpoint-url=http://host01:80 s3api put-bucket-replication --bucket testbucket --replication-configuration file://replication.json
検証
sync policy getコマンドを使用して、同期ポリシーを確認します。構文
radosgw-admin sync policy get --bucket BUCKET_NAME注記レプリケーションポリシーを適用すると、ルールは パイプ と呼ばれる同期ポリシールールに変換され、
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' の状態) があります。
例
[ceph: root@host01 /]# radosgw-admin sync policy get --bucket testbucket { "groups": [ { "id": "s3-bucket-replication:disabled", "data_flow": {}, "pipes": [], "status": "allowed" }, { "id": "s3-bucket-replication:enabled", "data_flow": {}, "pipes": [ { "id": "", "source": { "bucket": "*", "zones": [ "*" ] }, "dest": { "bucket": "testbucket", "zones": [ "*" ] }, "params": { "source": {}, "dest": {}, "priority": 1, "mode": "user", "user": "s3cmd" } } ], "status": "enabled" } ] }-
Enabled: パイプは有効かつアクティブであり、グループステータスは 'rgw_sync_policy_group:STATUS' に設定されています。たとえば、