Ceph는 확정성이 뛰어나고, 내결함성을 갖춘 오픈소스 분산 스토리지 시스템.
즉, 대규모 데이터를 안정적으로 저장/관리 할 수 있는 클라우드 네이티브 스토리지 솔루션이다.
아래 세 스토리지 유형을 통합제공한다.
(ceph자체는 object스토리지로 설계!,,, 따라서 file, block이들어와도 RADOS를 통해 Object포멧으로 기본변환됨)
1️⃣ Object Storage 스토리지
2️⃣ Block Storage 스토리지
3️⃣ File System 스토리지
1️⃣ OSD (Object Storage Daemon) : 실제 데이터를 저장하는 노드
2️⃣ Monitor (MON) : 클러스터 상태 관리 및 노드인증
3️⃣ Metadata Server (MDS) : CephFS(파일시스템)에서 메타데이터 관리
4️⃣ RGW(RADOS Gateway) : S3 API를 지원하는 Object Storage 서비스
데이터를 실제로 저장, 복제, 복구를 수행하는 역할
1️⃣ 데이터를 저장하고 복제, 복구, 재배치(rebalancing)등을 수행
2️⃣ 다른 OSD들과 통신하며, 정상적인 상태인지 하트비트(Heartbeat)를 체크
ceph클러스터의 전체 상태를 관리. > map(클러스터의 구성정보 저장)으로 관리한다.
1️⃣ 모니터 맵 : 모니터 노드들의 정보 저장
2️⃣ 매니저 맵 : 매니저 노드들의 정보 저장
3️⃣ OSD 맵 : 저장소 노드(osd, 객체)의 상태를 저장
4️⃣ MDS 맵 : 메타데이터 서버 정보를 저장
5️⃣ CRUSH 맵 : 데이터를 어떻게 배치할건지 결정하는 맵
클러스터의 "실시간 상태" 및 "성능 모니터링" (모니터는 구성정보 및 맵을 관리)
1️⃣ 현재 스토리지 사용량, 성능, 시스템 부하 등을 실시간으로 수집하고 관리
2️⃣ Ceph의 정보를 웹 대시보드 또는 REST API 형태로 제공하는 다양한 모듈을 실행
CephFS(파일 시스템)에서 파일과 디렉터리의 메타데이터를 관리하는 역할
1️⃣ ls, find 같은 명령어를 실행할 때, 데이터를 직접 검색하는 대신 MDS에서 빠르게 정보를 제공
2️⃣ CephFS를 사용할 때만 필요하며, 블록 스토리지(RBD)나 오브젝트 스토리지(RGW)에서는 필요하지 않음
1) Ceph 데이터저장 > Object단위로 저장 > 배치그룹에 속하게됨(PG) > CRUSH알고리즘 수행하여 PG가 어떤 OSD에 속할지 계산하는 알고리즘
2) CRUSH 맵의 주요 구성 요소
- 디바이스(Devices): 개별 OSD를 나타냄.
- 버킷(Buckets): OSD를 그룹화하는 논리적 구조 (예: 랙, 호스트, 데이터센터 등).
- 규칙(Rules): 데이터 복제 및 배치 정책 (예: "SSD에 2개, HDD에 1개 복제").
- 웨이트(Weight): 각 OSD의 저장 용량 비율을 결정.
!! CRUSH 맵을 직접 수정하여 커스텀 데이터 배치 전략을 구현할 수도 있다.
Ceph의 핵심 분산 스토리지 엔진.
모든 interface들이 최종적으로 RADOS를 호출.
-> libRADOS, RADOSGW(RADOS Gateway), RBD(RADOS Block Device), CephFS(Ceph File System)
1️⃣ Object storage -> libRADOS, RADOSGW
2️⃣ Block storage -> RBD
3️⃣ File storage -> CephFS
✔ RADOS 시스템에 개발자가 직접 접근할 수 있는 library.
✔ RADOS의 가장 기본적인 interface로 RBD, RADOSGW의 기반.
즉, Ceph의 object storage interface.
이를통해 사용자는 Ceph에 RADOS object를 저장/읽기를 한다.
✔ RADOS에 접근할 수 있는 RESTfull HTTP API를 제공하는 서비스(HTTP 서버).
✔ 이것 또한 libRADOS와 마찬가지로 object storage interface로서, 사용자가 RADOS object를 저장할 혹은 읽어올 수 있다
(aws의 S3, OpenStack의 Swift와 호환되는 API도 제공)
✔ RADOS 상에 block device image를 만들 수 있도록 제공하는 서비스.
✔ 클라우드(openstack 등) 상 가상머신의 image로 활용된다.
✔ CephFS는 Object Storage인 RADOS 상에 File system을 사용할 수 있도록 제공하는 서비스.
✔ POSIX와 호환되는 API를 제공.
✔ 일반 사용자는 CephFS를 통해 파일을 폴더 단위로 계층적으로 관리.
(다만 File system을 사용하기 위해서는 폴더 계층 정보를 저장해야 하기에 추가적으로 MDS(Metadata server)가 Ceph 클러스터에 포함되어야 한다.)