9.15. Azure クラウドサービスへのデータの移行
ストレージクラスを使用してライフサイクル設定の一部としてデータをリモートクラウドサービスに移行し、コストを削減して管理性を向上させることができます。移行は単方向であり、リモートゾーンからデータを戻すことはできません。この機能は、Azure などの複数のクラウドプロバイダーへのデータ移行を可能にするものです。AWS 設定との主な違いの 1 つは、マルチクラウドゲートウェイ (MCG) を設定し、MCG を使用して S3 プロトコルから Azure Blob に変換する必要があることです。
cloud-s3
を tier-type
として使用して、データの移行先となるリモートクラウド S3 オブジェクトストアサービスを設定します。これらはデータプールを必要とせず、ゾーングループ配置ターゲットに関して定義されます。
前提条件
- Ceph Object Gateway がインストールされた Red Hat Ceph Storage クラスター。
- リモートクラウドサービス Azure のユーザー認証情報。
- Azure はデータをダウンロードするようにローカルに設定されています。
-
ブートストラップされたノードにインストールされた
s3cmd
。 -
MCG 名前空間用の Azure コンテナーが作成されました。この例では、
mcgnamespace
です。
手順
アクセスキーとシークレットキーを使用してユーザーを作成します。
構文
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 root ユーザーとして、ユーザー認証情報を使用して AWS CLI を設定し、デフォルトの配置でバケットを作成します。
構文
aws s3 --ca-bundle CA_PERMISSION --profile rgw --endpoint ENDPOINT_URL --region default mb s3://BUCKET_NAME
aws s3 --ca-bundle CA_PERMISSION --profile rgw --endpoint ENDPOINT_URL --region default mb s3://BUCKET_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
aws s3 --ca-bundle /etc/pki/ca-trust/source/anchors/myCA.pem --profile rgw --endpoint https://host02.example.com:8043 --region default mb s3://transition
[root@host01 ~]$ aws s3 --ca-bundle /etc/pki/ca-trust/source/anchors/myCA.pem --profile rgw --endpoint https://host02.example.com:8043 --region default mb s3://transition
Copy to Clipboard Copied! Toggle word wrap Toggle overflow バケットが配置ルールで
default-placement
を使用していることを確認します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Data Foundation (ODF) がデプロイされた OpenShift Container Platform (OCP) クラスターにログインします。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Azure の OCP クラスター上で実行されるマルチクラウドゲートウェイ (MCG) 名前空間 Azure バケットを設定します。
構文
noobaa namespacestore create azure-blob az --account-key='ACCOUNT_KEY' --account-name='ACCOUNT_NAME' --target-blob-container='_AZURE_CONTAINER_NAME'
noobaa namespacestore create azure-blob az --account-key='ACCOUNT_KEY' --account-name='ACCOUNT_NAME' --target-blob-container='_AZURE_CONTAINER_NAME'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
noobaa namespacestore create azure-blob az --account-key='iq3+6hRtt9bQ46QfHKQ0nSm2aP+tyMzdn8dBSRW4XWrFhY+1nwfqEj4hk2q66nmD85E/o5OrrUqo+AStkKwm9w==' --account-name='transitionrgw' --target-blob-container='mcgnamespace'
[root@host01 ~]$ noobaa namespacestore create azure-blob az --account-key='iq3+6hRtt9bQ46QfHKQ0nSm2aP+tyMzdn8dBSRW4XWrFhY+1nwfqEj4hk2q66nmD85E/o5OrrUqo+AStkKwm9w==' --account-name='transitionrgw' --target-blob-container='mcgnamespace'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow namespacestore
を指す MCG バケットクラスを作成します。例
noobaa bucketclass create namespace-bucketclass single aznamespace-bucket-class --resource az -n openshift-storage
[root@host01 ~]$ noobaa bucketclass create namespace-bucketclass single aznamespace-bucket-class --resource az -n openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラウドへの移行のためのオブジェクトバケットクレーム (OBC) を作成します。
構文
noobaa obc create OBC_NAME --bucketclass aznamespace-bucket-class -n openshift-storage
noobaa obc create OBC_NAME --bucketclass aznamespace-bucket-class -n openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
noobaa obc create rgwobc --bucketclass aznamespace-bucket-class -n openshift-storage
[root@host01 ~]$ noobaa obc create rgwobc --bucketclass aznamespace-bucket-class -n openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OBC によって提供される認証情報を使用して、Ceph Object Gateway でのゾーングループの配置を設定します。
ブートストラップされたノードで、Azure で以前に設定された MCG 上のデフォルトのゾーングループ内のデフォルトの配置に、層タイプを
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 クラウド S3 クラウドストレージクラスを設定します。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要restart_head_object
パラメーターをtrue
に設定すると、メタデータまたはオブジェクトのヘッドが保持され、遷移されるオブジェクトがリストされます。例
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 client.rgw.objectgwhttps.host02.udyllp Scheduled to restart client.rgw.objectgwhttps.host02.udyllp on host 'host02
[ceph: root@host 01 /]# ceph orch restart client.rgw.objectgwhttps.host02.udyllp Scheduled to restart client.rgw.objectgwhttps.host02.udyllp on host 'host02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前に作成したバケットのライフサイクル設定移行ポリシーを作成します。この例では、バケットは
transition
です。構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記30 日以上経過したバケット内のすべてのオブジェクトは、
AZURE
というクラウドストレージクラスに転送されます。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AWS CLI を使用してバケットのライフサイクル設定を適用します。
構文
aws s3api --ca-bundle CA_PERMISSION --profile rgw --endpoint ENDPOINT_URL--region default put-bucket-lifecycle-configuration --lifecycle-configuration file://BUCKET.json --bucket BUCKET_NAME
aws s3api --ca-bundle CA_PERMISSION --profile rgw --endpoint ENDPOINT_URL--region default put-bucket-lifecycle-configuration --lifecycle-configuration file://BUCKET.json --bucket BUCKET_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
aws s3api --ca-bundle /etc/pki/ca-trust/source/anchors/myCA.pem --profile rgw --endpoint https://host02.example.com:8043 --region default put-bucket-lifecycle-configuration --lifecycle-configuration file://transition.json --bucket transition
[root@host01 ~]$ aws s3api --ca-bundle /etc/pki/ca-trust/source/anchors/myCA.pem --profile rgw --endpoint https://host02.example.com:8043 --region default put-bucket-lifecycle-configuration --lifecycle-configuration file://transition.json --bucket transition
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: ライフサイクル設定を取得します。
構文
aws s3api --ca-bundle CA_PERMISSION --profile rgw --endpoint ENDPOINT_URL--region default get-bucket-lifecycle-configuration --lifecycle-configuration file://BUCKET.json --bucket BUCKET_NAME
aws s3api --ca-bundle CA_PERMISSION --profile rgw --endpoint ENDPOINT_URL--region default get-bucket-lifecycle-configuration --lifecycle-configuration file://BUCKET.json --bucket BUCKET_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション:
radosgw-admin lc list
コマンドを使用してライフサイクル設定を取得します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記UNINITAL
ステータスは、ライフサイクル設定が処理されていないことを意味します。移行プロセスが完了すると、COMPLETED
状態に移行します。cephadm shell
にログインします。例
cephadm shell
[root@host 01 ~]# cephadm shell
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Object Gateway デーモンを再起動します。
構文
ceph orch daemon CEPH_OBJECT_GATEWAY_DAEMON_NAME
ceph orch daemon CEPH_OBJECT_GATEWAY_DAEMON_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host 01 /]# ceph orch daemon restart rgw.objectgwhttps.host02.udyllp [ceph: root@host 01 /]# ceph orch daemon restart rgw.objectgw.host02.afwvyq [ceph: root@host 01 /]# ceph orch daemon restart rgw.objectgw.host05.ucpsrr
[ceph: root@host 01 /]# ceph orch daemon restart rgw.objectgwhttps.host02.udyllp [ceph: root@host 01 /]# ceph orch daemon restart rgw.objectgw.host02.afwvyq [ceph: root@host 01 /]# ceph orch daemon restart rgw.objectgw.host05.ucpsrr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ソースクラスターから Azure にデータを移行します。
例
for i in 1 2 3 4 5
[root@host 01 ~]# for i in 1 2 3 4 5 do aws s3 --ca-bundle /etc/pki/ca-trust/source/anchors/myCA.pem --profile rgw --endpoint https://host02.example.com:8043 --region default cp /etc/hosts s3://transition/transition$i done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow データの移行を確認します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rados ls
コマンドを使用して、データが Azure に移動したかどうかを確認します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow データが移行されていない場合は、
lc process
コマンドを実行できます。例
radosgw-admin lc process
[root@host 01 ~]# radosgw-admin lc process
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、ライフサイクルプロセスが強制的に開始され、設定されているすべてのバケットライフサイクルポリシーが評価されます。その後、必要に応じてデータの移行を開始します。
検証
radosgw-admin lc list
コマンドを実行して、移行が完了したことを確認します。例
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 オブジェクトのサイズは
0
です。オブジェクトをリスト表示することはできますが、オブジェクトは Azure に移行されているため、コピーすることはできません。S3 API を使用してオブジェクトの先頭を確認します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージクラスが
STANDARD
からCLOUDTIER
に変更したことがわかります。