정의
- 여러 스토리지들을 클러스터로 묶어 하나로 보이게 하는 객체 기반 분산형 스토리지
- 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가지
- 파일 스토리지 = 데이터를 파일의 형태로 저장 → 파일 기반의 작업에 유리
- 객체 스토리지 = 데이터를 객체로 저장 → 대용량 데이터에 유리
- 블록 스토리지 = 데이터를 일정한 크기의 블록으로 나누어 저장 → 높은 성능
'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 |
댓글