5.2. Ceph 사용자 관리 배경

Ceph가 인증 및 권한 부여가 활성화된 상태에서 실행되는 경우 지정된 사용자의 비밀 키가 포함된 사용자 이름과 인증 키를 지정해야 합니다. 사용자 이름을 지정하지 않으면 Ceph에서 client.admin 관리 사용자를 기본 사용자 이름으로 사용합니다. 인증 키를 지정하지 않으면 Ceph 구성에서 인증 키 설정을 사용하여 인증 키 를 찾습니다. 예를 들어 사용자 또는 인증 키를 지정하지 않고 ceph 상태 명령을 실행하는 경우 다음을 수행합니다.

# ceph health

Ceph는 다음과 같이 명령을 해석합니다.

# ceph -n client.admin --keyring=/etc/ceph/ceph.client.admin.keyring health

또는CEPH _ARGS 환경 변수를 사용하여 사용자 이름과 시크릿의 재입력을 방지할 수 있습니다.

Ceph 클라이언트 유형(예: 블록 장치, 오브젝트 저장소, 파일 시스템, 네이티브 API 또는 Ceph 명령줄)과 관계없이 Ceph는 모든 데이터를 풀 내의 오브젝트로 저장합니다. Ceph 사용자는 데이터를 읽고 쓸 수 있도록 풀에 액세스할 수 있어야 합니다. 또한 관리 Ceph 사용자는 Ceph 관리 명령을 실행할 수 있는 권한이 있어야 합니다.

다음 개념은 Ceph 사용자 관리를 이해하는 데 도움이 될 수 있습니다.

스토리지 클러스터 사용자

Red Hat Ceph Storage 클러스터의 사용자는 개인 또는 애플리케이션 중 하나입니다. 사용자를 생성하면 스토리지 클러스터, 해당 풀 및 해당 풀 내의 데이터에 액세스할 수 있는 사람을 제어할 수 있습니다.

Ceph에는 사용자 유형의 개념이 있습니다. 사용자 관리 목적의 경우 유형은 항상 client 가 됩니다. Ceph는 사용자 유형 및 사용자 ID로 구성된 기간(.)으로 사용자를 식별합니다. 예를 들어 TYPE.ID,client.admin 또는 client.user1 입니다. 사용자가 입력하는 이유는 Ceph Monitor와 OSD에서도 Cephx 프로토콜을 사용하지만 클라이언트는 사용하지 않기 때문입니다. 사용자 유형을 구분하면 클라이언트 사용자와 기타 사용자를 구별하는 데 도움이 됩니다. 액세스 제어, 사용자 모니터링 및 추적 기능을 제공합니다.

Ceph 명령줄을 사용하면 명령줄 사용에 따라 유형 사용 여부에 따라 유형의 사용자를 지정할 수 있으므로 Ceph의 사용자 유형이 혼란스러울 수 있습니다. --user 또는 --id 를 지정하면 유형을 생략할 수 있습니다. 따라서 client.user1 은 단순히 user1 로 입력할 수 있습니다. --name 또는 -n 을 지정하는 경우 type 및 name(예: client.user1 )을 지정해야 합니다. 가능한 경우 유형 및 이름을 모범 사례로 사용하는 것이 좋습니다.

참고

Red Hat Ceph Storage 클러스터 사용자는 Ceph Object Gateway 사용자와 동일하지 않습니다. 오브젝트 게이트웨이는 Red Hat Ceph Storage 클러스터 사용자를 사용하여 게이트웨이 데몬과 스토리지 클러스터 간에 통신하지만 게이트웨이에는 최종 사용자를 위한 고유한 사용자 관리 기능이 있습니다.

권한 부여 기능

Ceph는 "caps"(caps)라는 용어를 사용하여 인증된 사용자 권한을 설명하여 Ceph 모니터 및 OSD 기능을 연습합니다. 기능은 풀 또는 풀 내의 네임스페이스에 있는 데이터에 대한 액세스를 제한할 수도 있습니다. Ceph 관리자는 사용자를 생성하거나 업데이트할 때 사용자의 기능을 설정합니다. 기능 구문은 다음과 같습니다.

구문

DAEMON_TYPE 'allow CAPABILITY' [DAEMON_TYPE 'allow CAPABILITY']

  • monitor Caps: 모니터 기능은 r,w,x,allow profile CAP, profile rbd 가 포함되어 있습니다.

    예제

    mon 'allow rwx`
    mon 'allow profile osd'

  • OSD 기능: OSD 기능에는 r,w,x,class-read,class-write,profile osd, profile rbd , profile rbd가 포함됩니다. 또한 OSD 기능을 사용하면 풀 및 네임스페이스 설정도 가능합니다.

    osd 'allow CAPABILITY' [pool=POOL_NAME] [namespace=NAMESPACE_NAME]
참고

Ceph Object Gateway 데몬(radosgw)은 Ceph 스토리지 클러스터의 클라이언트이므로 Ceph 스토리지 클러스터 데몬 유형으로 표시되지 않습니다.

다음 항목은 각 기능에 대해 설명합니다.

allow

데몬의 액세스 설정 전 precedes

r

사용자에게 읽기 액세스 권한을 부여합니다. CRUSH 맵을 검색하는 데 모니터가 필요합니다.

w

사용자에게 오브젝트에 대한 쓰기 액세스 권한을 부여합니다.

x

사용자에게 클래스 메서드 호출(즉, 읽기 및 쓰기)을 호출하고 모니터에서 인증 작업을 수행하는 기능을 제공합니다.

class-read

사용자에게 클래스 읽기 메서드를 호출하는 기능을 제공합니다. x 의 하위 집합입니다.

class-write

사용자에게 클래스 쓰기 메서드를 호출하는 기능을 제공합니다. x 의 하위 집합입니다.

*

사용자에게 특정 데몬 또는 풀에 대한 읽기, 쓰기 및 실행 권한과 관리자 명령을 실행할 수 있는 기능을 제공합니다.

프로필 osd

OSD를 다른 OSD 또는 모니터에 연결할 수 있는 권한을 사용자에게 제공합니다. OSD에서 유추하여 복제 하트비트 트래픽 및 상태 보고를 처리할 수 있습니다.

bootstrap-osd 프로필

OSD를 부트스트랩할 때 키를 추가할 수 있는 권한이 있도록 사용자에게 OSD를 부트스트랩할 수 있는 권한을 제공합니다.

프로필 rbd

사용자에게 Ceph 블록 장치에 대한 읽기-쓰기 액세스 권한을 제공합니다.

rbd-read-only 프로필

사용자에게 Ceph 블록 장치에 대한 읽기 전용 액세스 권한을 제공합니다.

pool

풀은 Ceph 클라이언트의 스토리지 전략을 정의하고 해당 전략의 논리 파티션 역할을 합니다.

Ceph 배포에서 다른 유형의 사용 사례를 지원하는 풀을 만드는 것이 일반적입니다. 예를 들어 클라우드 볼륨 또는 이미지, 오브젝트 스토리지, 핫 스토리지, 콜드 스토리지 등이 있습니다. OpenStack의 백엔드로 Ceph를 배포하는 경우 일반적인 배포에는 볼륨, 이미지, 백업 및 가상 시스템용 풀 및 client.glance .cinder 등 사용자가 있습니다.

네임스페이스

풀 내의 오브젝트는 네임스페이스-​a logical group of objects within the pool에 연결할 수 있습니다. 사용자가 풀에 대한 액세스 권한은 네임스페이스 내에서만 수행되며, 사용자가 읽고 쓰는 네임스페이스와 연결할 수 있습니다. 풀 내의 네임스페이스에 작성된 오브젝트는 네임스페이스에 대한 액세스 권한이 있는 사용자만 액세스할 수 있습니다.

참고

현재 네임스페이스는 librados 상단에 작성된 애플리케이션에만 유용합니다. 블록 장치 및 오브젝트 스토리지와 같은 Ceph 클라이언트는 현재 이 기능을 지원하지 않습니다.

네임스페이스의 논리는 각 풀이 OSD에 매핑되는 배치 그룹 세트를 생성하기 때문에 풀은 사용 사례에 따라 데이터를 분리하는 데 비용이 많이 드는 계산 방법이 될 수 있다는 것입니다. 여러 풀에서 동일한 CRUSH 계층 구조와 규칙 세트를 사용하는 경우 부하 증가에 따라 OSD 성능이 저하될 수 있습니다.

예를 들어, 풀은 OSD당 약 100개의 배치 그룹이 있어야 합니다. 따라서 1000개의 OSD가 있는 예시적인 클러스터에는 하나의 풀에 대해 10만 개의 배치 그룹이 있습니다. 동일한 CRUSH 계층 구조에 매핑된 각 풀은 예시 클러스터에 10만 개의 배치 그룹을 생성합니다. 반대로 네임스페이스에 개체를 쓰면 네임스페이스를 개체 이름에 연결하면 별도의 풀의 컴퓨팅 오버헤드가 제거됩니다. 사용자 또는 사용자 집합에 대해 별도의 풀을 생성하는 대신 네임스페이스를 사용할 수 있습니다.

참고

현재 librados 를 사용하는 경우에만 사용할 수 있습니다.

추가 리소스