9.10. Ceph Object Gateway 데이터 레이아웃
RADOS는 확장 속성(xattrs
) 및 개체 맵(OMAP)이 있는 풀 및 오브젝트에 대해서만 알고 있지만 Ceph Object Gateway는 개념적으로 Ceph Object Gateway를 사용하여 데이터를 세 가지 유형으로 구성합니다.
- 메타데이터
- 버킷 인덱스
- data
메타데이터
메타데이터 섹션에는 세 가지 섹션이 있습니다.
-
사용자
: 사용자 정보를 보관합니다. -
bucket
: 버킷 이름과 버킷 인스턴스 ID 간의 매핑이 있습니다. -
bucket.instance
: 버킷 인스턴스 정보를 보관합니다.
다음 명령을 사용하여 메타데이터 항목을 볼 수 있습니다.
구문
radosgw-admin metadata get bucket:BUCKET_NAME radosgw-admin metadata get bucket.instance:BUCKET:BUCKET_ID radosgw-admin metadata get user:USER radosgw-admin metadata set user:USER
예
[ceph: root@host01 /]# radosgw-admin metadata list [ceph: root@host01 /]# radosgw-admin metadata list bucket [ceph: root@host01 /]# radosgw-admin metadata list bucket.instance [ceph: root@host01 /]# radosgw-admin metadata list user
모든 메타데이터 항목은 단일 RADOS 오브젝트에 유지됩니다.
Ceph Object Gateway 오브젝트는 매니페스트, ACL(액세스 제어 목록), 콘텐츠 유형, ETag 및 사용자 정의 메타데이터와 같은 메타데이터가 포함된 헤드인 여러 RADOS 오브젝트로 구성될 수 있습니다. 메타데이터는 xattrs
에 저장됩니다. 헤드는 효율성과 원자성을 위해 최대 512KB의 오브젝트 데이터를 포함할 수도 있습니다. 매니페스트는 RADOS 오브젝트에서 각 오브젝트를 설명하는 방법을 설명합니다.
버킷 인덱스
이는 다른 종류의 메타데이터이며 별도로 보관합니다. 버킷 인덱스에는 RADOS 오브젝트에 키-값 맵이 있습니다. 기본적으로 버킷당 단일 RADOS 오브젝트이지만 여러 RADOS 오브젝트를 통해 맵을 분할할 수 있습니다.
맵 자체는 각 RADOS 오브젝트와 연결된 OMAP에 보관됩니다. 각 OMAP의 키는 오브젝트의 이름이며 이 값에는 버킷을 나열할 때 표시되는 메타데이터인 해당 오브젝트의 기본 메타데이터가 포함됩니다. 각 OMAP는 헤더를 보유하고 있으며 오브젝트 수, 총 크기 등과 같은 해당 헤더에 버킷 회계 메타데이터를 유지합니다.
radosgw-admin
툴을 사용하는 경우 툴과 Ceph Cluster가 동일한 버전인지 확인합니다. 일치하지 않는 버전 사용은 지원되지 않습니다.
OMAP는 확장 속성이 POSIX 파일과 연결되는 방법과 유사한 방식으로 오브젝트와 연결된 키-값 저장소입니다. 오브젝트의 OMAP는 오브젝트 스토리지에 물리적으로 위치하지 않지만 정확한 구현은 표시되지 않으며 Ceph Object Gateway에 부적합합니다.
data
오브젝트 데이터는 각 Ceph Object Gateway 오브젝트에 대해 하나 이상의 RADOS 오브젝트에 보관됩니다.
9.10.1. 오브젝트 조회 경로
오브젝트에 액세스할 때 REST API는 다음 세 가지 매개변수와 함께 Ceph Object Gateway로 제공됩니다.
- S3 또는 Swift의 계정 이름에 액세스 키가 있는 계정 정보
- 버킷 또는 컨테이너 이름
- 오브젝트 이름 또는 키
현재 Ceph Object Gateway는 계정 정보만 사용하여 사용자 ID를 찾고 액세스 제어를 위해 사용합니다. 버킷 이름과 오브젝트 키만 사용하여 풀의 오브젝트를 처리합니다.
계정 정보
Ceph Object Gateway의 사용자 ID는 문자열이며 일반적으로 사용자 자격 증명의 실제 사용자 이름이 해시되거나 매핑된 식별자가 아닙니다.
사용자 데이터에 액세스할 때 사용자 레코드는 default.rgw.meta
풀의 users.rgw.meta 풀에서 users.uid
네임스페이스를 사용하여 로드됩니다. .Bucket 이름은 root
네임스페이스를 사용하여 default.rgw.meta
풀에 표시됩니다. 버킷 레코드는 버킷 ID 역할을 하는 마커를 얻기 위해 로드됩니다.
오브젝트 이름
오브젝트는 default.rgw.buckets.data
풀에 있습니다. 개체 이름은 MARKER_KEY
(예: default.7593.4_image.png
)입니다. 여기서 마커는 default.7593.4
이고 키는 image.png
입니다. 이러한 연결된 이름은 구문 분석되지 않으며 RADOS에만 전달됩니다. 따라서 구분 기호의 선택이 중요하지 않고 모호성을 초래하지 않습니다. 동일한 이유로 오브젝트 이름(예: 키)에 슬래시가 허용됩니다.
9.10.1.1. 여러 데이터 풀
기본적으로 다른 사용자 버킷이 다른 RADOS 풀에 생성되도록 여러 데이터 풀을 생성할 수 있으므로 필요한 스케일링을 제공할 수 있습니다. 이러한 풀의 레이아웃 및 이름은 정책
설정을 통해 제어됩니다.
9.10.2. 버킷 및 오브젝트 목록
지정된 사용자에게 속하는 버킷은 USER_ID.buckets
라는 오브젝트의 OMAP에 나열됩니다(예: users
네임스페이스가 있는 .
uiddefault.rgw.meta
풀에 있음). 이러한 오브젝트는 버킷을 나열하고, 버킷 콘텐츠를 업데이트할 때, 할당량과 같은 버킷 통계를 업데이트하고 검색할 때 액세스할 수 있습니다. 이러한 목록은 .rgw
풀의 버킷과 일관되게 유지됩니다.
이러한 OMAP 항목의 값은 user-visible, encoded class cls_user_bucket_entry
및 중첩된 클래스 cls_user_bucket
을 참조하십시오.
지정된 버킷에 속하는 오브젝트는 버킷 인덱스에 나열됩니다. index 오브젝트의 기본 이름 이름은 default.rgw.buckets.index
풀에서 .dir.MARKER
입니다.
추가 리소스
- 자세한 내용은 Red Hat Ceph Storage Object Gateway 가이드 의 버킷 인덱스 재하드 구성 섹션을 참조하십시오.
9.10.3. Object Gateway 데이터 레이아웃 매개변수
이는 Ceph Object Gateway의 데이터 레이아웃 매개변수 목록입니다.
알려진 풀:
.rgw.root
- 지정되지 않은 리전, 영역 및 글로벌 정보 레코드, 오브젝트당 하나씩.
ZONE.rgw.control
- 통지.N
ZONE.rgw.meta
다양한 종류의 메타데이터가 있는 다중 네임스페이스
- namespace: root
BUCKET .bucket.meta.BUCKET:MARKER # put_bucket_instance_info()를 참조하십시오.
테넌트는 버킷을 모호하게 하는 데 사용되지만 버킷 인스턴스는 모호하지 않습니다.
예
.bucket.meta.prodtx:test%25star:default.84099.6 .bucket.meta.testcont:default.4126.1 .bucket.meta.prodtx:testcont:default.84099.4 prodtx/testcont prodtx/test%25star testcont
- namespace: users.uid
USER 오브젝트에 사용자별 정보(RGWUserInfo) 및
USER
.buckets 오브젝트의 omaps에 있는 사용자별 버킷
목록을 포함합니다. 비어 있지 않은 경우USER
는 테넌트를 포함할 수 있습니다.예
prodtx$prodt test2.buckets prodtx$prodt.buckets test2
- namespace: users.email
- 중요하지 않음
- namespace: users.keys
47UA98JSTJZ9YAN3OS3O
이를 통해 Ceph Object Gateway는 인증 중에 액세스 키를 통해 사용자를 조회할 수 있습니다.
- 네임스페이스: users.swift
- test:tester
ZONE.rgw.buckets.index
-
오브젝트 이름은
.dir입니다.MARKER
에는 각각 버킷 인덱스가 포함되어 있습니다. 인덱스가 분할되면 각 shard가 마커 뒤에 shard 인덱스를 추가합니다. ZONE.rgw.buckets.data
default.7593.4__shadow_.488urDFerTYXavx4yAd-Op8mxehnvTI_1 MARKER_KEY
마커의 예는
default.16004.1
또는default.7593.4
입니다. 현재 형식은ZONE.INSTANCE_ID.BUCKET_ID
이지만 생성되면 마커가 다시 구문 분석되지 않으므로 나중에 형식이 자유롭게 변경될 수 있습니다.
추가 리소스
- 자세한 내용은 Red Hat Ceph Storage Object Gateway 가이드의 Ceph Object Gateway데이터 레이아웃 을 참조하십시오.