💾 Ceph (세프)란 무엇인가요?
Ceph는 오픈 소스(Open-Source) 기반의 소프트웨어 정의 스토리지(Software-Defined Storage, SDS) 플랫폼입니다. 이 기술은 저렴하고 일반적인 하드웨어(commodity hardware)를 사용하여 확장 가능하고, 높은 신뢰성을 갖춘 대규모 분산 스토리지 시스템을 구축할 수 있게 해줍니다.
Ceph는 저장해야 하는 모든 데이터(예: 파일, 객체, 블록 데이터)를 객체(Object) 형태로 저장하는 핵심 레이어인 Reliable Autonomic Distributed Object Store (RADOS) 위에 다양한 스토리지 인터페이스를 제공하는 것이 특징입니다.
Ceph가 제공하는 세 가지 주요 스토리지 타입은 다음과 같습니다.
- 객체 스토리지 (Object Storage): RADOS Gateway (RGW)를 통해 Amazon S3(Simple Storage Service) 또는 OpenStack Swift와 호환되는 RESTful (Representational State Transfer) API를 제공합니다. 이는 웹 기반 애플리케이션이나 빅데이터 분석 등에 많이 사용됩니다.
- 블록 디바이스 (Block Device): RADOS Block Device (RBD)를 통해 가상 머신(Virtual Machine, VM) 등에게 네트워크를 통해 마치 로컬 하드 드라이브처럼 사용할 수 있는 블록 스토리지를 제공합니다.
- 파일 시스템 (File System): Ceph File System (CephFS)을 통해 여러 클라이언트가 동시에 액세스할 수 있는 POSIX (Portable Operating System Interface) 호환 파일 시스템을 제공합니다.
직관적인 비유: Ceph는 마치 만능 수납장과 같습니다. 어떤 물건(데이터)이든 일단 받아서(저장하고), 물건을 종류별로(객체, 블록, 파일) 꺼내 쓸 수 있도록 문(인터페이스)을 여러 개 달아 놓은 것입니다. 이 수납장은 혼자 관리하는 것이 아니라 여러 개의 작은 수납장(노드)이 서로 협력하여 관리하기 때문에, 하나가 고장나도 다른 수납장이 그 물건을 대신 보관하고 있어 데이터 손실 없이 안전하고, 필요할 때마다 수납장을 계속 추가하여 용량을 무한하게 늘릴 수 있습니다.
🔗 External Ceph Options (외부 Ceph 옵션)이란?
"External Ceph Options" 또는 외부 Ceph 설정은 주로 다음과 같은 경우를 의미합니다.
- 독립적인 클러스터 연결: 이미 구축되어 독립적으로 운영되고 있는 기존 Ceph 클러스터를 다른 플랫폼(예: OpenStack, Kubernetes의 Rook, Proxmox VE 등)에서 스토리지 백엔드(저장소)로 연결하여 사용하고자 할 때의 설정 및 구성 옵션들을 말합니다.
- 통합 환경 분리: 스토리지를 제공하는 Ceph 클러스터와, 이 스토리지를 사용하는 애플리케이션 또는 컴퓨팅 클러스터(예: 가상화 환경)를 물리적/논리적으로 분리하여 운영할 때의 구성 방식을 의미합니다.
이는 컴퓨팅 환경 안에 스토리지를 같이 두는 하이퍼 컨버지드(Hyper-Converged) 방식과 달리, 스토리지 전용 클러스터(Ceph)를 별도로 두고 여러 서비스에서 공유하여 사용하는 디스어그리게이티드(Disaggregated) / 외부 연결(External) 방식에 해당합니다.
이러한 "외부 Ceph" 설정을 위해 필요한 주요 옵션(작업)은 다음과 같습니다:
- 인증 정보(Credentials) 구성: 외부 서비스(클라이언트)가 Ceph 클러스터에 접속하고 데이터를 읽고 쓸 수 있도록 CephX (세프엑스) 키링(keyring) 파일이나 사용자(User)를 생성하고 설정하는 작업입니다.
- 구성 파일(Configuration File) 전달: 외부 서비스가 Ceph 클러스터의 모니터(Monitor) 노드 위치 등 핵심 정보를 알 수 있도록
ceph.conf 파일을 복사하고 설정하는 작업입니다.
- 스토리지 풀(Pool) 지정: 외부 서비스가 사용할 객체, 블록 또는 파일 시스템 풀의 이름을 지정하고 연결하는 설정입니다.