5.12. 복제없이 다중 영역 구성
서로 복제할 수 없는 여러 영역을 구성할 수 있습니다. 예를 들어 회사의 각 팀에 전용 영역을 만들 수 있습니다.
사전 요구 사항
- Ceph Object Gateway가 설치된 Ceph Storage 클러스터.
절차
영역을 생성합니다.
radosgw-admin realm create --rgw-realm=realm-name [--default]
예를 들면 다음과 같습니다.
[root@master-zone]# radosgw-admin realm create --rgw-realm=movies --default { "id": "0956b174-fe14-4f97-8b50-bb7ec5e1cf62", "name": "movies", "current_period": "1950b710-3e63-4c41-a19e-46a715000980", "epoch": 1 }
영역 그룹을 만듭니다.
radosgw-admin zonegroup create --rgw-zonegroup=zone-group-name --endpoints=url [--rgw-realm=realm-name|--realm-id=realm-id] --master --default
예를 들면 다음과 같습니다.
[root@master-zone]# radosgw-admin zonegroup create --rgw-zonegroup=us --endpoints=http://rgw1:80 --rgw-realm=movies --master --default { "id": "f1a233f5-c354-4107-b36c-df66126475a6", "name": "us", "api_name": "us", "is_master": "true", "endpoints": [ "http:\/\/rgw1:80" ], "hostnames": [], "hostnames_s3webzone": [], "master_zone": "", "zones": [], "placement_targets": [], "default_placement": "", "realm_id": "0956b174-fe14-4f97-8b50-bb7ec5e1cf62" }
사용 사례에 따라 하나 이상의 영역을 만듭니다.
radosgw-admin zone create --rgw-zonegroup=zone-group-name \ --rgw-zone=zone-name \ --master --default \ --endpoints=http://fqdn:port[,http://fqdn:port]
예를 들면 다음과 같습니다.
[root@master-zone]# radosgw-admin zone create --rgw-zonegroup=us \ --rgw-zone=us-east \ --master --default \ --endpoints=http://rgw1:80
영역 그룹의 구성을 사용하여 JSON 파일을 가져옵니다.
radosgw-admin zonegroup get --rgw-zonegroup=zone-group-name > zonegroup.json
예를 들면 다음과 같습니다.
[root@master-zone]# radosgw-admin zonegroup get --rgw-zonegroup=us > zonegroup.json
파일에서
log_meta,
매개 변수를log_
data 및sync_
from_allfalse로 설정합니다
.{ "id": "72f3a886-4c70-420b-bc39-7687f072997d", "name": "default", "api_name": "", "is_master": "true", "endpoints": [], "hostnames": [], "hostnames_s3website": [], "master_zone": "a5e44ecd-7aae-4e39-b743-3a709acb60c5", "zones": [ { "id": "975558e0-44d8-4866-a435-96d3e71041db", "name": "testzone", "endpoints": [], "log_meta": "false", "log_data": "false", "bucket_index_max_shards": 11, "read_only": "false", "tier_type": "", "sync_from_all": "false", "sync_from": [] }, { "id": "a5e44ecd-7aae-4e39-b743-3a709acb60c5", "name": "default", "endpoints": [], "log_meta": "false", "log_data": "false", "bucket_index_max_shards": 11, "read_only": "false", "tier_type": "", "sync_from_all": "false", "sync_from": [] } ], "placement_targets": [ { "name": "default-placement", "tags": [] } ], "default_placement": "default-placement", "realm_id": "2d988e7d-917e-46e7-bb18-79350f6a5155" }
업데이트된 JSON 파일을 사용합니다.
radosgw-admin zonegroup set --rgw-zonegroup=zone-group-name --infile=zonegroup.json
예를 들면 다음과 같습니다.
[root@master-zone]# radosgw-admin zonegroup set --rgw-zonegroup=us --infile=zonegroup.json
기간을 업데이트합니다.
# radosgw-admin period update --commit