검색

9.10. Ceph Object Gateway 데이터 레이아웃

download PDF

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 . uid 네임스페이스가 있는 default.rgw.meta 풀에 있음). 이러한 오브젝트는 버킷을 나열하고, 버킷 콘텐츠를 업데이트할 때, 할당량과 같은 버킷 통계를 업데이트하고 검색할 때 액세스할 수 있습니다. 이러한 목록은 .rgw 풀의 버킷과 일관되게 유지됩니다.

참고

이러한 OMAP 항목의 값은 user-visible, encoded class cls_user_bucket_entry 및 중첩된 클래스 cls_user_bucket 을 참조하십시오.

지정된 버킷에 속하는 오브젝트는 버킷 인덱스에 나열됩니다. index 오브젝트의 기본 이름 이름은 default.rgw.buckets.index 풀에서 .dir.MARKER 입니다.

추가 리소스

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는 인증 중에 액세스 키를 통해 사용자를 조회할 수 있습니다.

namespace: 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 logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.