5.2.7. 복제없이 다중 영역 구성

서로 복제할 수 없는 여러 영역을 구성할 수 있습니다. 예를 들어 회사에서 각 팀의 전용 영역을 만들 수 있습니다.

사전 요구 사항

  • Ceph Object Gateway 소프트웨어 설치.
  • Ceph Object Gateway 노드에 대한 루트 수준 액세스.

절차

  1. 새 영역을 생성합니다.

    구문

    radosgw-admin realm create --rgw-realm=REALM_NAME [--default]

    예제

    [root@rgw-primary]# 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
    }

  2. 새 영역 그룹을 생성합니다.

    구문

    radosgw-admin zonegroup create --rgw-zonegroup=ZONE_GROUP_NAME --endpoints=FQDN : PORT [--rgw-realm=REALM_NAME|--realm-id=REALM_ID] --master --default

    예제

    [root@rgw-primary]# 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"
    }

  3. 사용 사례에 따라 하나 이상의 영역을 생성합니다.

    구문

    radosgw-admin zone create --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME --master --default --endpoints=FQDN : PORT[,FQDN : PORT_]

    예제

    [root@rgw-primary]# radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east --master --default --endpoints=http://rgw1:80

  4. 영역 그룹의 구성으로 JSON 파일을 가져옵니다.

    구문

    radosgw-admin zonegroup get --rgw-zonegroup=ZONE_GROUP_NAME > JSON_FILE_NAME

    예제

    [root@rgw-primary]# radosgw-admin zonegroup get --rgw-zonegroup=us > zonegroup-us.json

    1. 편집할 파일을 열고 log_meta,log_ data 및 sync_ from_all 필드를 false로 설정합니다.

      예제

          {
              "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": 0,
                      "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": 0,
                      "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"
          }

  5. 업데이트된 JSON 파일을 사용하여 영역 그룹을 설정합니다.

    구문

    radosgw-admin zonegroup set --rgw-zonegroup=ZONE_GROUP_NAME --infile=JSON_FILE_NAME

    예제

    [root@rgw-primary]# radosgw-admin zonegroup set --rgw-zonegroup=us --infile=zonegroup-us.json

  6. 기간을 업데이트합니다.

    예제

    [root@rgw-primary]# radosgw-admin period update --commit