9.15. Azure 클라우드 서비스로 데이터 전환
스토리지 클래스를 사용하여 라이프사이클 구성의 일부로 데이터를 원격 클라우드 서비스로 전환하여 비용을 줄이고 관리 효율성을 개선할 수 있습니다. 전환은 단방향이며 데이터는 원격 영역에서 다시 전환할 수 없습니다. 이 기능은 Azure와 같은 여러 클라우드 공급자로 데이터 전환을 활성화하는 것입니다. AWS 구성과의 주요 차이점 중 하나는 MCG(Multi-cloud Gateway)를 구성하고 MCG를 사용하여 S3 프로토콜에서 Azure Blob으로 변환해야 한다는 것입니다.
cloud-s3
을 계층 유형으로
사용하여 데이터를 전환해야 하는 원격 클라우드 S3 오브젝트 저장소 서비스를 구성합니다. 여기에는 데이터 풀이 필요하지 않으며 zonegroup 배치 대상의 관점에서 정의됩니다.
사전 요구 사항
- 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(Multi-cloud gateway) 네임스페이스 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 네임스페이스 저장소를
가리키는 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 중요retain_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 이전에 생성된 버킷에 대한 라이프사이클 구성 전환 정책을 생성합니다. 이 예에서 버킷은
전환
입니다.구문
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 쉘에
로그인합니다.예제
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
로 변경되었음을 확인할 수 있습니다.