3.4. 버킷 분할 구성
Ceph 개체 게이트웨이는 버킷 인덱스 데이터를 인덱스 풀(index_pool
)에 저장합니다. 기본값은 .rgw.buckets.index
입니다. 클라이언트가 여러 객체를 배치할 때수십만 ~ 수천 개의 객체-버킷당 최대 오브젝트 수에 대한 할당량을 설정하지 않고도 단일 버킷에서 인덱스 풀에 상당한 성능 저하가 발생할 수 있습니다.
버킷 인덱스 분할은 버킷당 많은 객체 수를 허용할 때 성능 병목 현상을 방지하는 데 도움이 됩니다. Red Hat Ceph Storage 4.1부터 기본 버킷 인덱스 shard, bucket_index_max_shards
가 1에서 11로 변경되었습니다. 이러한 변경으로 작은 버킷의 쓰기 처리량이 증가되고 동적 재하이딩이 지연됩니다. 이 변경은 새 버킷과 배포에만 영향을 미칩니다.
Red Hat은 shard 수를 계산된 shard 수에 가장 가까운 정수로 사용할 것을 권장합니다. 소수의 버킷 인덱스 shard는 shard에 버킷 인덱스 항목을 균등하게 분산하는 데 더 효과적입니다. 예를 들어, 이전이 기본이므로 7001 버킷 인덱스 shard가 7000보다 좋습니다.
버킷 인덱스 분할을 구성하려면 다음을 수행합니다.
-
단순한 구성의 새 버킷의 경우
rgw_override_bucket_index_max_shards
옵션을 사용하십시오. 보기 3.4.3절. “간단한 구성에서 버킷 인덱스 공유 구성” -
다중 사이트 구성의 새 버킷의 경우
bucket_index_max_shards
옵션을 사용합니다. 보기 3.4.4절. “다중 사이트 구성에서 버킷 인덱스 분할 구성”
버킷을 재하드하려면 다음을 수행합니다.
- 동적, 참조 3.4.5절. “동적 버킷 인덱스 복구”
- 수동으로, 참조 3.4.6절. “수동 버킷 인덱스 복구”
- 수동으로 멀티 사이트 구성에서 멀티 사이트에서 수동 Resharding Buckets를참조하십시오.
3.4.1. 버킷 분할 제한
다음 제한 사항을 주의하여 사용하십시오. 하드웨어 선택과 관련된 영향이 있으므로 Red Hat 계정 팀과 항상 이러한 요구 사항을 논의해야 합니다.
분할이 필요하기 전에 하나의 버킷에 있는 최대 오브젝트 수
Red Hat은 버킷 인덱스 shard당 최대 102,400개의 오브젝트를 권장합니다. 분할을 최대한 활용하기 위해 Ceph Object Gateway 버킷 인덱스 풀에 충분한 OSD를 제공하여 최대 병렬 처리를 확보합니다.
Ceph OSD는 현재 인덱싱된 스토리지의 키 범위가 200,000을 초과하는 경우 경고합니다. 결과적으로 shard당 200,000개의 객체 수에 접근하면 이러한 경고를 받게 됩니다. 일부 설정에서는 값이 클 수 있으며 조정 가능합니다.
분할을 사용할 때 최대 오브젝트 수
동적 버킷 재하드를 위한 기본 버킷 인덱스 shard 수는 1999입니다. 이 값은 최대 65521 shard로 변경할 수 있습니다. 1999 버킷 인덱스 shard의 값은 버킷에 204697600 개의 총 개체를 제공하며 65521 샤드 값은 6709350400 개체를 제공합니다.
이전 테스트를 기반으로 현재 지원되는 버킷 인덱스 shard의 최대 수는 65521입니다. Red Hat 품질 보증은 버킷 샤딩에서 전체 확장성 테스트를 수행하지 않았습니다.
버킷 인덱스 shard 수가 1999를 초과하면 일반 S3 클라이언트가 버킷 콘텐츠를 나열하지 못할 수 있습니다. 사용자 정의 클라이언트는 순서가 지정되지 않은 목록을 요청할 수 있습니다. 이 목록은 shard 수로 스케일링됩니다.