본문 바로가기
CS/네트워크

Ceph

by Mecodata 2023. 12. 11.

정의

- 여러 스토리지들을 클러스터로 묶어 하나로 보이게 하는 객체 기반 분산형 스토리지

- Ceph 하나로 Object Storage, Block Storage, File Storage 인터페이스를 모두 제공함

- Ceph 클러스터에 저장된 모든 데이터는 객체(RADOS → 객체 기반)로 표현

 

RADOS(Reliable Autonomic Distributed Object Store)

- Ceph의 데이터 접근에 대해 근간을 이루는 서비스

- 객체 기반으로 설계됨

- Object Storage(LIBRADOS, RGW), Block Storage(RBD), File Storage(Cephfs) 인터페이스를 모두 제공

- 인터페이스의 종류와 상관없이 데이터는 RADOS Object 포맷으로 변환되어 Ceph에 저장

- Ceph에서 객체를 읽고 쓸 때, RADOS를 사용

 

Ceph Cluster of Computers

- OSDs, MDSs, MON, MGR로 구성

- OSD(Object Storage Daemons) = 데이터 저장 및 관리

- MON(Monitors) = 클러스터의 핵심 상태 정보를 관리

- MGR(Managers) = 클러스터의 추가적인 관리 및 모니터링 기능 제공

- MDS(MetaData Server) = 메타데이터 관리

 

OSDs(Object Storage Daemons)

- 데이터(Object)가 저장되는 노드

- 여러 개의 OSD가 클러스터 전체에 분산 → 데이터의 안정성과 가용성 보장

- 데이터가 여러 OSD에 중복으로 분산 저장 → 클러스터 내의 결함성 보장

(하나의 OSD에 에러가 발생해도 나머지 OSD가 살아있어 데이터 유지 가능)

- 정기적으로 하트비트를 전송하여 다른 OSD와의 통신 상태를 확인하고, 클러스터 내의 OSD 상태 관리

※ 하트비트(HeartBeat) = 컴퓨터 시스템이나 네트워크 장치 등에서 상태를 확인하거나 통신을 유지하기 위해 정기적으로 보내는 신호

 

Ceph Interface

  • 클라이언트는 Ceph Interface를 이용하여 Ceph에 데이터를 저장하거나 읽음

LIBRADOS

- RADOS 시스템에 개발자가 직접 접근할 수 있도록 library

- C, C++, JAVA, PHP, Python 등 다양한 언어로 제공

- RADOS의 가장 기본적인 Interface로 RBD, RADOSGW의 기반

- Ceph의 Object storage Interface → Ceph에 RADOS object를 저장하고 혹은 Ceph에서 읽어올 수 있음

 

RGW(RADOS GateWay)

- RADOS에 접근할 수 있는 REST API를 제공하는 서비스 (HTTP 서버)

- Ceph의 Object storage Interface → Ceph에 RADOS object를 저장하고 혹은 Ceph에서 읽어올 수 있음

- AWS의 S3, OpenStack의 Swift와 호환되는 API도 제공

 

RBD(RADOS Block Device)

- RADOS 상에 Block Device Image를 만들 수 있도록 제공하는 인터페이스

- Ceph의 Block storage Interface

- 가상머신의 image로 활용

- 용량이 큰 이미지를 다수의 객체로 Ceph내에 분산 저장함으로서 병렬적으로 빠르게 읽고 쓰기가 가능

- Object는 Ceph의 OSD에 저장

 

Cephfs

- RADOS 상에 File System을 사용할 수 있도록 제공하는 인터페이스

- POSIX와 호환되는 API를 제공

- 확장 가능한 단일 계층 공유 디스크를 제공하는 병렬 파일 시스템

- File system을 사용하기 위해서는 폴더 계층 정보를 저장해야 하기에 추가적으로 MDS(Metadata server)가 Ceph 클러스터에 포함되어야 함

- 실제 데이터는 OSD에 저장되지만 MDS가 파일 시스템의 메타데이터를 관리

 

PG & CRUSH

PG(Placement Group)

- Ceph에서 데이터를 OSD에 효과적으로 분산 및 복제하기 위한 단위

- PG 수는 Ceph 클러스터의 크기 및 OSD 수에 따라 결정됨

 

CRUSH(Controlled Replication Under Scalable Hashing)

- Ceph에서 데이터의 위치를 결정하고 분산하는 알고리즘

- 클러스터의 데이터 배치와 데이터의 안정성을 관리

- CRUSH 알고리즘을 통해 PG는 특정 규칙에 따라 적절한 OSD에 배치되고 이를 통해 클러스터의 데이터는 안정적으로 분산되고 관리됨

 

클라우드에 데이터 저장하는 방법 3가지

  1. 파일 스토리지 = 데이터를 파일의 형태로 저장 → 파일 기반의 작업에 유리
  2. 객체 스토리지 = 데이터를 객체로 저장 → 대용량 데이터에 유리
  3. 블록 스토리지 = 데이터를 일정한 크기의 블록으로 나누어 저장 → 높은 성능

'CS > 네트워크' 카테고리의 다른 글

클러스터(Cluster)  (0) 2023.12.13
CLI vs REST 비교  (0) 2023.12.13
Message Broker  (0) 2023.09.20
HTTP  (0) 2023.09.10
RSA  (0) 2023.05.03

댓글