8.14. Amazon S3 クラウドサービスへのデータの移行
ストレージクラスを使用してライフサイクル設定の一部としてデータをリモートクラウドサービスに移行し、コストを削減して管理性を向上させることができます。移行は単方向であり、リモートゾーンからデータを戻すことはできません。Amazon (S3) など複数のクラウドプロバイダーへのデータ移行を可能にする機能です。
cloud-s3
を tier-type
として使用して、データの移行先となるリモートクラウド S3 オブジェクトストアサービスを設定します。これらはデータプールを必要とせず、ゾーングループ配置ターゲットに関して定義されます。
前提条件
- Ceph Object Gateway がインストールされた Red Hat Ceph Storage クラスター。
- リモートクラウドサービス、Amazon S3 のユーザー認証情報。
- Amazon S3 で作成されたターゲットパス。
-
ブートストラップされたノードにインストールされた
s3cmd
。 - データをダウンロードするようにローカルに設定された Amazon AWS。
手順
アクセスキーとシークレットキーを使用してユーザーを作成します。
構文
radosgw-admin user create --uid=USER_NAME --display-name="DISPLAY_NAME" [--access-key ACCESS_KEY --secret-key SECRET_KEY]
radosgw-admin user create --uid=USER_NAME --display-name="DISPLAY_NAME" [--access-key ACCESS_KEY --secret-key SECRET_KEY]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブートストラップされたノードで、階層タイプが
cloud-s3
のストレージクラスを追加します。注記--tier-type=cloud-s3
オプションを使用してストレージクラスを作成すると、後で他のストレージクラスターイプに変更することはできません。構文
radosgw-admin zonegroup placement add --rgw-zonegroup =ZONE_GROUP_NAME \ --placement-id=PLACEMENT_ID \ --storage-class =STORAGE_CLASS_NAME \ --tier-type=cloud-s3
radosgw-admin zonegroup placement add --rgw-zonegroup =ZONE_GROUP_NAME \ --placement-id=PLACEMENT_ID \ --storage-class =STORAGE_CLASS_NAME \ --tier-type=cloud-s3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow storage_class
を更新します。注記クラスターがマルチサイトセットアップの一部である場合は、
period update --commit
を実行して、ゾーングループの変更がマルチサイト内のすべてのゾーンに伝播されるようにします。注記access_key
とSecret
が数字で始まらないようにしてください。必須パラメーターは次のとおりです。
-
access_key
は、特定の接続に使用されるリモートクラウド S3 アクセスキーです。 -
Secret
は、リモートクラウド S3 サービスの秘密キーです。 -
endpoint
は、リモートクラウド S3 サービスエンドポイントの URL です。 -
region
(AWS の場合) は、リモートクラウド S3 サービスのリージョン名です。
オプションのパラメーターは次のとおりです。
-
target_path
は、ターゲットパスの作成方法を定義します。ターゲットパスは、ソースbucket-name/object-name
が追加される接頭辞を指定します。接頭辞を指定しない場合、作成される target_path はrgwx-ZONE_GROUP_NAME-STORAGE_CLASS_NAME-cloud-bucket
です。 -
target_storage_class
は、オブジェクトの遷移先となるターゲットストレージクラスを定義します。接頭辞を指定しない場合、オブジェクトは STANDARD ストレージクラスに移行されます。 -
continue_head_object
が true の場合、クラウドに移行されたオブジェクトのメタデータが保持されます。false (デフォルト) の場合、オブジェクトは遷移後に削除されます。このオプションは、現在のバージョン管理されたオブジェクトでは無視されます。 -
multipart_sync_threshold
は、このサイズ以上のオブジェクトがマルチパートアップロードを使用してクラウドに移行されることを指定します。 multipart_min_part_size
は、マルチパートアップロードを使用してオブジェクトを移行するときに使用する最小パートサイズを指定します。構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Ceph Object Gateway を再起動します。
構文
ceph orch restart CEPH_OBJECT_GATEWAY_SERVICE_NAME
ceph orch restart CEPH_OBJECT_GATEWAY_SERVICE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host 01 /]# ceph orch restart rgw.rgw.1 Scheduled to restart rgw.rgw.1.host03.vkfldf on host 'host03’
[ceph: root@host 01 /]# ceph orch restart rgw.rgw.1 Scheduled to restart rgw.rgw.1.host03.vkfldf on host 'host03’
Copy to Clipboard Copied! Toggle word wrap Toggle overflow シェルを終了し、root ユーザーとして、ブートストラップされたノードで Amazon S3 を設定します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3 バケットを作成します。
構文
s3cmd mb s3://NAME_OF_THE_BUCKET_FOR_S3
s3cmd mb s3://NAME_OF_THE_BUCKET_FOR_S3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
s3cmd mb s3://awstestbucket
[root@host01 ~]# s3cmd mb s3://awstestbucket Bucket 's3://awstestbucket/' created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを作成し、すべてのデータを入力して、S3 サービスに移動します。
構文
s3cmd put FILE_NAME s3://NAME_OF_THE_BUCKET_ON_S3
s3cmd put FILE_NAME s3://NAME_OF_THE_BUCKET_ON_S3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
s3cmd put test.txt s3://awstestbucket
[root@host01 ~]# s3cmd put test.txt s3://awstestbucket upload: 'test.txt' -> 's3://awstestbucket/test.txt' [1 of 1] 21 of 21 100% in 1s 16.75 B/s done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ライフサイクル設定移行ポリシーを作成します。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ライフサイクル設定移行ポリシーを設定します。
構文
s3cmd setlifecycle FILE_NAME s3://NAME_OF_THE_BUCKET_FOR_S3
s3cmd setlifecycle FILE_NAME s3://NAME_OF_THE_BUCKET_FOR_S3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
s3cmd setlifecycle lc_config.xml s3://awstestbucket
[root@host01 ~]# s3cmd setlifecycle lc_config.xml s3://awstestbucket s3://awstestbucket/: Lifecycle Policy updated
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cephadm shell
にログインします。例
cephadm shell
[root@host 01 ~]# cephadm shell
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway を再起動します。
構文
ceph orch restart CEPH_OBJECT_GATEWAY_SERVICE_NAME
ceph orch restart CEPH_OBJECT_GATEWAY_SERVICE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host 01 /]# ceph orch restart rgw.rgw.1 Scheduled to restart rgw.rgw.1.host03.vkfldf on host 'host03’
[ceph: root@host 01 /]# ceph orch restart rgw.rgw.1 Scheduled to restart rgw.rgw.1.host03.vkfldf on host 'host03’
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ソースクラスターで、
radosgw-admin lc list
コマンドを使用して、データが S3 に移動したかどうかを確認します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラウドエンドポイントでのオブジェクトの移行を確認します。
例
radosgw-admin bucket list
[root@client ~]$ radosgw-admin bucket list [ "awstestbucket" ]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow バケット内のオブジェクトを一覧表示します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3 バケットの内容を一覧表示します。
例
s3cmd ls s3://awstestbucket
[root@host01 ~]# s3cmd ls s3://awstestbucket 2022-08-25 09:57 0 s3://awstestbucket/test.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルの情報を確認します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Amazon S3 からローカルにデータをダウンロードします。
AWS を設定します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AWS バケットの内容を一覧表示します。
例
aws s3 ls s3://dfqe-bucket-01/awstest
[client@client01 ~]$ aws s3 ls s3://dfqe-bucket-01/awstest PRE awstestbucket/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3 からデータをダウンロードします。
例
aws s3 cp s3://dfqe-bucket-01/awstestbucket/test.txt .
[client@client01 ~]$ aws s3 cp s3://dfqe-bucket-01/awstestbucket/test.txt . download: s3://dfqe-bucket-01/awstestbucket/test.txt to ./test.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow