Ceph란?
✅ Ceph의 기본 개념
Ceph는 분산형 스토리지 시스템이며, 여러 개의 스토리지를 클러스터로 묶어 데이터를 블록으로 관리하는 오브젝트 스토리지를 구현하는 오픈소스 소프트웨어입니다.
Ceph는 오징어나 문어 등이 포함된 두족류 동물을 뜻 하는 cephalopod의 줄임말이며 세프로 읽습니다. 세프를 사용하는 이유는 대량의 데이터를 효율적이고 안정적으로 처리하여 정보의 무결성과 가용성을 보장하는 것을 목표로 합니다.
✅ RADOS(Reliable Automatic Distributed Object Store)
RADOS를 기반으로 데이터를 Read/Write합니다. LiBRADOS는 라리브러리를 제공하여 RADOS에 직접 접근할 수 있도록 합니다. RDB는 블록 디바이스 서비스를 제공하며, CEPHFS는 마운트 또는 사용자 공간에서 파일 시스템으로 사용 할 수 있는 POSIX 호환 파일 시스템을 제공합니다.
✅ Ceph Storage Cluster
데이터 저장
Ceph Block Device , Ceph Object Storage , Ceph File System 또는 를 사용하여 생성한 사용자 정의 구현을 통해 Ceph Client 에서 데이터를 수신합니다 . Ceph Storage Cluster에서 수신한 데이터는 RADOS 개체로 저장됩니다. 각 개체는 개체 저장 장치 (“OSD”라고도 함) 에 저장됩니다 . Ceph OSD는 스토리지 드라이브의 읽기, 쓰기 및 복제 작업을 제어합니다. 기본 BlueStore 백엔드는 데이터베이스와 같은 모놀리식 방식으로 객체를 저장합니다.
Ceph OSD 데몬은 데이터를 플랫 네임스페이스에 객체로 저장합니다. 이는 개체가 디렉터리 계층 구조에 저장되지 않음을 의미합니다. 개체에는 이름/값 쌍으로 구성된 식별자, 이진 데이터 및 메타데이터가 있습니다. Ceph Client 는 객체 데이터의 의미를 결정합니다. 예를 들어 CephFS는 메타데이터를 사용하여 파일 소유자, 생성 날짜, 마지막 수정 날짜 등의 파일 속성을 저장합니다.
확장성 및 고가용성
기존 아키텍처에서는 클라이언트가 중앙 집중식 구성 요소와 통신합니다. 이 중앙 집중식 구성 요소는 게이트웨이, 브로커, API 또는 Facade일 수 있습니다. 이러한 종류의 중앙 집중식 구성 요소는 복잡한 하위 시스템에 대한 단일 진입점 역할을 합니다. 이러한 중앙 집중식 구성 요소에 의존하는 아키텍처에는 단일 장애 지점이 있으며 성능과 확장성에 제한이 따릅니다. 중앙 집중식 구성 요소가 다운되면 전체 시스템을 사용할 수 없게 됩니다.
Ceph는 이러한 중앙 집중식 구성 요소를 제거합니다. 이를 통해 클라이언트는 Ceph OSD와 직접 상호 작용할 수 있습니다. Ceph OSD는 다른 Ceph 노드에 객체 복제본을 생성하여 데이터 안전과 고가용성을 보장합니다. Ceph는 또한 고가용성을 보장하기 위해 모니터 클러스터를 사용합니다. 중앙화를 제거하기 위해 Ceph는 CRUSH 라는 알고리즘을 사용합니다.
출처: https://docs.ceph.com/en/latest/architecture/#storing-data
✅ Ceph vs AWS, 오픈스택..
AWS, 엣저, 오픈스택 등의 클라우드 서비스는 컴퓨트 서비스, 스토리지 서비스 등을 모두 제공하며, 세프는 모든 종류의 스토리지 서비스를 모아 놓은 오픈 소스 서비스로 볼 수 있습니다.