3.9. 버킷 관리
스토리지 관리자는 Ceph Object Gateway를 사용할 때 사용자 간에 이동하고 이름을 변경하여 버킷을 관리할 수 있습니다. 또한 스토리지 클러스터의 수명 동안 발생할 수 있는 Ceph Object Gateway 내에서 고아 또는 누수 개체를 찾을 수 있습니다.
3.9.1. 버킷 이동
radosgw-admin 버킷
유틸리티는 사용자 간에 버킷을 이동하는 기능을 제공합니다. 이를 수행하려면 버킷을 새 사용자에게 연결하고 버킷의 소유권을 새 사용자에게 변경합니다.
버킷을 이동할 수 있습니다.
3.9.1.1. 사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터
- Ceph Object Gateway가 설치되어 있습니다.
- 버킷
- 테넌트 및 비 테넌트 사용자
3.9.1.2. 테넌트가 아닌 사용자 간에 버킷 이동
radosgw-admin 버킷 chown
명령은 버킷과 포함된 모든 오브젝트의 소유권을 한 사용자의 다른 사용자로 변경할 수 있는 기능을 제공합니다. 이를 수행하려면 현재 사용자의 버킷을 연결 해제하고 새 사용자에게 연결한 다음 버킷의 소유권을 새 사용자로 변경합니다.
절차
버킷을 새 사용자에게 연결합니다.
radosgw-admin bucket link --uid=user --bucket=bucket
교체:
- 버킷 을 연결할 사용자의 사용자 이름과 사용자 이름이 있는 사용자
- 버킷 이름으로 버킷
예를 들어
데이터
버킷을user2
라는 사용자에 연결하려면 다음을 수행합니다.# radosgw-admin bucket link --uid=user2 --bucket=data
버킷이
user2
에 성공적으로 연결되었는지 확인합니다.# radosgw-admin bucket list --uid=user2 [ "data" ]
버킷의 소유권을 새 사용자로 변경합니다.
radosgw-admin bucket chown --uid=user --bucket=bucket
교체:
- 버킷 소유권 을 다음으로 변경하기 위해 사용자의 사용자 이름이 있는 사용자
- 버킷 이름으로 버킷
예를 들어
데이터
버킷의 소유권을user2
로 변경하려면 다음을 수행합니다.# radosgw-admin bucket chown --uid=user2 --bucket=data
다음 명령의 출력에서
owner
행을 확인하여데이터
버킷의 소유권이 성공적으로 변경되었는지 확인합니다.# radosgw-admin bucket list --bucket=data
3.9.1.3. 테넌트 사용자 간에 버킷 이동
테넌트된 사용자 간에 버킷을 이동할 수 있습니다.
절차
버킷을 새 사용자에게 연결합니다.
radosgw-admin bucket link --bucket=current-tenant/bucket --uid=new-tenant$user
교체:
- 버킷이 인 테넌트 이름이 current-tenant
- 연결할 버킷 의 이름과 버킷
- 새 사용자가 인 테넌트의 이름이 new-tenant
- 새 사용자의 사용자 이름이 있는 사용자
예를 들어 test 테넌트의
데이터
버킷을test
2 테넌트의user2 사용자에게
연결하려면 다음을 수행합니다.# radosgw-admin bucket link --bucket=test/data --uid=test2$user2
버킷이
user2
에 성공적으로 연결되었는지 확인합니다.# radosgw-admin bucket list --uid=test$user2 [ "data" ]
버킷의 소유권을 새 사용자로 변경합니다.
radosgw-admin bucket chown --bucket=new-tenant/bucket --uid=new-tenant$user
교체:
- 연결할 버킷 의 이름과 버킷
- 새 사용자가 인 테넌트의 이름이 new-tenant
- 새 사용자의 사용자 이름이 있는 사용자
예를 들어
데이터
버킷의 소유권을test2 테넌트
내의user2
로 변경하려면 다음을 수행합니다.# radosgw-admin bucket chown --bucket='test2/data' --uid='test$tuser2'
다음 명령의 출력에서
owner
행을 확인하여데이터
버킷의 소유권이 성공적으로 변경되었는지 확인합니다.# radosgw-admin bucket list --bucket=test2/data
3.9.1.4. 테넌트가 아닌 사용자의 버킷을 테넌트 사용자로 이동
테넌트가 아닌 사용자의 버킷을 테넌트 사용자로 이동할 수 있습니다.
절차
선택 사항: 아직 여러 개의 테넌트가 없는 경우
rgw_keystone_implicit_tenants
를 활성화하고 외부 테넌트에서 Ceph Object Gateway에 액세스하여 생성할 수 있습니다.Ceph 구성 파일을 열고 편집합니다(기본값
/etc/ceph/ceph.conf
).rgw_keystone_implicit_tenants
옵션을 활성화합니다.rgw_keystone_implicit_tenants = true
s3cmd
또는swift
명령을 사용하여 tenant 테넌트에서 Ceph Object Gateway에 액세스합니다.# swift list
또는
s3cmd
를 사용하십시오.# s3cmd ls
외부 테넌트에서 첫 번째 액세스 권한은 동일한 Ceph Object Gateway 사용자를 생성합니다.
버킷을 테넌트된 사용자로 이동합니다.
radosgw-admin bucket link --bucket=/bucket --uid='tenant$user'
교체:
- 버킷 이름으로 버킷
- 새 사용자가 있는 테넌트의 이름이 인 테넌트
- 새 사용자의 사용자 이름이 있는 사용자
예를 들어
데이터
버킷을테스트
테넌트 내부의 tenanted-user
로 이동하려면 다음을 수행합니다.# radosgw-admin bucket link --bucket=/data --uid='test$tenanted-user'
데이터
버킷이tenanted-user
에 연결되었는지 확인합니다.# radosgw-admin bucket list --uid='test$tenanted-user' [ "data" ]
버킷의 소유권을 새 사용자로 변경합니다.
radosgw-admin bucket chown --bucket='tenant/bucket name' --uid='tenant$user'
교체:
- 버킷 이름으로 버킷
- 새 사용자가 있는 테넌트의 이름이 인 테넌트
- 새 사용자의 사용자 이름이 있는 사용자
예를 들어
데이터
버킷의 소유권을테스트
테넌트 내부에 있는tenanted-user
로 변경하려면 다음을 수행합니다.# radosgw-admin bucket chown --bucket='test/data' --uid='test$tenanted-user'
다음 명령의 출력에서
owner
행을 확인하여데이터
버킷의 소유권이 성공적으로 변경되었는지 확인합니다.# radosgw-admin bucket list --bucket=test/data