7.2. 스토리지 정책 생성
Ceph 개체 게이트웨이는 배치 대상을 식별하고 배치 대상과 연결된 풀에 버킷과 오브젝트를 저장하여 클라이언트 버킷 및 개체 데이터를 저장합니다. 배치 대상을 구성하지 않고 인스턴스의 영역 구성의 풀에 매핑하지 않으면 Ceph Object Gateway는 기본 대상 및 풀(예: default_placement
)을 사용합니다.
스토리지 정책을 사용하면 Ceph Object Gateway 클라이언트에 스토리지 전략(예: SSD, SAS 드라이브, SATA 드라이브)을 대상으로 하는 스토리지 전략에 액세스할 수 있습니다. 지속성, 복제, 삭제 코딩 등을 보장하는 특정 방법. 자세한 내용은 Red Hat Ceph Storage 5용 스토리지 전략 가이드를 참조하십시오.
스토리지 정책을 생성하려면 다음 절차를 따르십시오.
-
원하는 스토리지 전략을 사용하여 새 pool
.rgw.buckets.special
을 생성합니다. 예를 들어, 삭제 코딩, 특정 CRUSH 규칙 세트, 복제본 수,pg_num 및
개수로 사용자 지정된 풀입니다.pgp_num
영역 그룹 구성을 가져와 파일에 저장합니다(예:
zonegroup.json
):구문
[root@master-zone]# radosgw-admin zonegroup --rgw-zonegroup=<zonegroup_name> get > zonegroup.json
예제
[root@master-zone]# radosgw-admin zonegroup --rgw-zonegroup=default get > zonegroup.json
zonegroup.json
파일의placement_target
아래에special-placement
항목을 추가합니다.{ "name": "default", "api_name": "", "is_master": "true", "endpoints": [], "hostnames": [], "master_zone": "", "zones": [{ "name": "default", "endpoints": [], "log_meta": "false", "log_data": "false", "bucket_index_max_shards": 5 }], "placement_targets": [{ "name": "default-placement", "tags": [] }, { "name": "special-placement", "tags": [] }], "default_placement": "default-placement" }
수정된
zonegroup.json 파일로 영역 그룹을 설정합니다.
[root@master-zone]# radosgw-admin zonegroup set < zonegroup.json
영역 구성을 가져와 파일에 저장합니다(예:
zone.json
):[root@master-zone]# radosgw-admin zone get > zone.json
영역 파일을 편집하고
placement_pool
아래에 새 배치 정책 키를 추가합니다.{ "domain_root": ".rgw", "control_pool": ".rgw.control", "gc_pool": ".rgw.gc", "log_pool": ".log", "intent_log_pool": ".intent-log", "usage_log_pool": ".usage", "user_keys_pool": ".users", "user_email_pool": ".users.email", "user_swift_pool": ".users.swift", "user_uid_pool": ".users.uid", "system_key": { "access_key": "", "secret_key": "" }, "placement_pools": [{ "key": "default-placement", "val": { "index_pool": ".rgw.buckets.index", "data_pool": ".rgw.buckets", "data_extra_pool": ".rgw.buckets.extra" } }, { "key": "special-placement", "val": { "index_pool": ".rgw.buckets.index", "data_pool": ".rgw.buckets.special", "data_extra_pool": ".rgw.buckets.extra" } }] }
새 영역 구성을 설정합니다.
[root@master-zone]# radosgw-admin zone set < zone.json
영역 그룹 맵을 업데이트합니다.
[root@master-zone]# radosgw-admin period update --commit
특수 위치 항목은
placement_target
으로 나열됩니다.
요청 시 스토리지 정책을 지정하려면 다음을 수행합니다.
예제:
$ curl -i http://10.0.0.1/swift/v1/TestContainer/file.txt -X PUT -H "X-Storage-Policy: special-placement" -H "X-Auth-Token: AUTH_rgwtxxxxxx"