Ceph는 오픈소스 분산 스토리지 시스템으로, 확장성과 안정성을 제공하는 현대적인 스토리지 솔루션입니다. 이 가이드는 2025년 최신 버전(Reef/Squid)을 기준으로 처음 설치하는 분들도 쉽게 따라할 수 있도록 구성되었습니다.

English: Ceph is an open-source distributed storage system that provides scalability and reliability as a modern storage solution. This guide is designed for easy installation of the latest 2025 version (Reef/Squid) even for beginners.

🎯 Ceph 설치 가이드 개요

💡 이 가이드에서 배우는 것:
  • Ceph 클러스터 하드웨어 요구사항
  • 운영체제 준비 및 설정
  • Ceph 설치 및 초기 설정
  • 모니터, OSD, MDS 구성
  • 클러스터 상태 확인 및 테스트

🖥️ 하드웨어 요구사항

💻 최소 시스템 요구사항

구성 요소 최소 사양 권장 사양
CPU 4 Core 8 Core 이상
메모리 8GB 32GB 이상
네트워크 1Gbps 10Gbps 이상
스토리지 3개 노드, 각 2개 디스크 5개 노드, 각 4개 디스크

🏗️ 클러스터 구성 예시

테스트 환경 구성:
┌─────────────────────────────────────────────────────────────┐
│ Node 1 (ceph-node01) - 192.168.1.10                       │
│ ├─ Monitor (MON)                                            │
│ ├─ Manager (MGR)                                            │
│ ├─ OSD.0 (/dev/sdb)                                        │
│ └─ OSD.1 (/dev/sdc)                                        │
├─────────────────────────────────────────────────────────────┤
│ Node 2 (ceph-node02) - 192.168.1.11                       │
│ ├─ Monitor (MON)                                            │
│ ├─ OSD.2 (/dev/sdb)                                        │
│ └─ OSD.3 (/dev/sdc)                                        │
├─────────────────────────────────────────────────────────────┤
│ Node 3 (ceph-node03) - 192.168.1.12                       │
│ ├─ Monitor (MON)                                            │
│ ├─ OSD.4 (/dev/sdb)                                        │
│ └─ OSD.5 (/dev/sdc)                                        │
└─────────────────────────────────────────────────────────────┘

🐧 운영체제 준비

1단계: 운영체제 설치

지원되는 운영체제를 설치합니다:

  • Ubuntu 20.04 LTS / 22.04 LTS
  • CentOS 8 / Rocky Linux 8
  • Red Hat Enterprise Linux 8/9

2단계: 호스트명 설정

# 각 노드에서 호스트명 설정
sudo hostnamectl set-hostname ceph-node01
sudo hostnamectl set-hostname ceph-node02
sudo hostnamectl set-hostname ceph-node03

# /etc/hosts 파일 수정 (모든 노드)
sudo cat >> /etc/hosts << EOF
192.168.1.10 ceph-node01
192.168.1.11 ceph-node02
192.168.1.12 ceph-node03
EOF

3단계: 방화벽 설정

# Ubuntu/Debian
sudo ufw allow 6789/tcp
sudo ufw allow 6800:7300/tcp
sudo ufw allow 3300/tcp

# CentOS/RHEL
sudo firewall-cmd --permanent --add-port=6789/tcp
sudo firewall-cmd --permanent --add-port=6800-7300/tcp
sudo firewall-cmd --permanent --add-port=3300/tcp
sudo firewall-cmd --reload

🔧 Ceph 설치

4단계: Ceph 저장소 추가

# Ubuntu/Debian
curl -fsSL https://download.ceph.com/keys/release.asc | sudo apt-key add -
echo "deb https://download.ceph.com/debian-squid/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/ceph.list
sudo apt update

# CentOS/RHEL
sudo dnf install -y centos-release-ceph-squid
sudo dnf update

5단계: Cephadm 설치

# Ubuntu/Debian
sudo apt install -y cephadm

# CentOS/RHEL
sudo dnf install -y cephadm

# 설치 확인
cephadm version
⚠️ 주의사항: 모든 노드에서 동일한 버전의 Ceph를 설치해야 합니다. 버전 불일치는 클러스터 문제를 야기할 수 있습니다.

🚀 클러스터 부트스트랩

6단계: 첫 번째 노드에서 클러스터 초기화

# 첫 번째 노드에서 실행
sudo cephadm bootstrap --mon-ip 192.168.1.10 --initial-dashboard-user admin --initial-dashboard-password admin123

# 출력 예시:
# Ceph Dashboard is now available at:
#      URL: https://ceph-node01:8443/
#      User: admin
#      Password: admin123

7단계: Ceph CLI 설치

# 첫 번째 노드에서
sudo cephadm install ceph-common

# 클러스터 상태 확인
sudo ceph -s

📡 추가 노드 연결

8단계: SSH 키 복사

# 첫 번째 노드에서 키 생성
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""

# 다른 노드들에 키 복사
ssh-copy-id root@ceph-node02
ssh-copy-id root@ceph-node03

9단계: 노드 추가

# 두 번째, 세 번째 노드 추가
sudo ceph orch host add ceph-node02 192.168.1.11
sudo ceph orch host add ceph-node03 192.168.1.12

# 호스트 목록 확인
sudo ceph orch host ls

💽 OSD 생성

10단계: 사용 가능한 디스크 확인

# 사용 가능한 디스크 목록 확인
sudo ceph orch device ls

# 출력 예시:
# HOST        PATH      TYPE  SIZE  DEVICE_ID  MODEL        VENDOR
# ceph-node01 /dev/sdb  hdd   1.0T  WD1003FZEX  WD1003FZEX   ATA
# ceph-node01 /dev/sdc  hdd   1.0T  WD1003FZEX  WD1003FZEX   ATA

11단계: OSD 생성

# 자동으로 모든 사용 가능한 디스크에 OSD 생성
sudo ceph orch apply osd --all-available-devices

# 또는 특정 디스크에 OSD 생성
sudo ceph orch daemon add osd ceph-node01:/dev/sdb
sudo ceph orch daemon add osd ceph-node01:/dev/sdc

# OSD 상태 확인
sudo ceph osd tree

🔍 모니터 및 매니저 구성

12단계: 추가 모니터 배포

# 모니터를 3개 노드에 배포
sudo ceph orch apply mon --placement="3 ceph-node01,ceph-node02,ceph-node03"

# 모니터 상태 확인
sudo ceph mon stat

13단계: 매니저 구성

# 매니저를 2개 노드에 배포 (HA 구성)
sudo ceph orch apply mgr --placement="2 ceph-node01,ceph-node02"

# 매니저 상태 확인
sudo ceph mgr stat

🌐 대시보드 설정

14단계: 대시보드 모듈 활성화

# 대시보드 모듈 활성화
sudo ceph mgr module enable dashboard

# 대시보드 SSL 인증서 생성
sudo ceph dashboard create-self-signed-cert

# 대시보드 사용자 생성
sudo ceph dashboard ac-user-create admin -i password.txt administrator

15단계: 대시보드 접속

# 대시보드 URL 확인
sudo ceph mgr services

# 브라우저에서 접속:
# https://ceph-node01:8443/
# 사용자: admin
# 비밀번호: (설정한 비밀번호)

🧪 클러스터 테스트

16단계: 클러스터 상태 확인

# 전체 클러스터 상태
sudo ceph -s

# 상세 상태 정보
sudo ceph health detail

# OSD 상태 확인
sudo ceph osd stat
sudo ceph osd tree

# 모니터 상태 확인
sudo ceph mon stat
sudo ceph quorum_status

17단계: 풀 생성 및 테스트

# 테스트 풀 생성
sudo ceph osd pool create test-pool 32 32

# 풀에 객체 저장 테스트
echo "Hello Ceph!" | sudo rados put hello-object -p test-pool

# 객체 읽기 테스트
sudo rados get hello-object -p test-pool -

# 풀 삭제 (테스트 후)
sudo ceph osd pool delete test-pool test-pool --yes-i-really-really-mean-it

🎯 기본 풀 생성

18단계: RBD 풀 생성

# RBD 풀 생성
sudo ceph osd pool create rbd 32 32
sudo ceph osd pool application enable rbd rbd
sudo rbd pool init rbd

# 테스트 이미지 생성
sudo rbd create --size 1024 rbd/test-image

# 이미지 목록 확인
sudo rbd ls rbd

19단계: CephFS 설정 (선택사항)

# CephFS 풀 생성
sudo ceph osd pool create cephfs-data 64 64
sudo ceph osd pool create cephfs-metadata 32 32

# 파일시스템 생성
sudo ceph fs new cephfs cephfs-metadata cephfs-data

# MDS 배포
sudo ceph orch apply mds cephfs --placement="2 ceph-node01,ceph-node02"

# 파일시스템 상태 확인
sudo ceph fs status

📊 성능 및 상태 모니터링

✅ 설치 완료 체크리스트:
  • 모든 노드가 클러스터에 연결됨
  • 모든 OSD가 up and in 상태
  • 모니터 쿼럼이 정상적으로 형성됨
  • 대시보드 접속 가능
  • 테스트 풀 생성 및 삭제 성공

🔍 지속적인 모니터링 명령어

# 실시간 클러스터 상태 모니터링
sudo ceph -w

# 성능 통계 확인
sudo ceph osd perf
sudo ceph pg dump | grep -v "active+clean"

# 용량 사용률 확인
sudo ceph df
sudo ceph osd df

🛠️ 문제 해결 가이드

⚠️ 일반적인 문제와 해결방법

  • 클러스터 상태가 HEALTH_WARN: ceph health detail로 상세 원인 확인
  • OSD가 down 상태: 해당 노드의 디스크 및 네트워크 상태 확인
  • 모니터 쿼럼 문제: 모니터 간 네트워크 연결 및 시간 동기화 확인
  • PG 상태 이상: PG 자동 복구 대기 또는 수동 복구 진행

🔧 유용한 디버깅 명령어

# 로그 확인
sudo cephadm logs -f

# 서비스 재시작
sudo systemctl restart ceph-osd@0

# 설정 확인
sudo ceph config dump

🎯 결론

Ceph 클러스터 설치가 완료되었습니다! 이제 안정적이고 확장 가능한 분산 스토리지 시스템을 운영할 수 있습니다. 정기적인 모니터링과 백업을 통해 클러스터를 안전하게 관리하세요.

🔑 다음 단계:
  • 클라이언트 설정 및 마운트
  • 자동 백업 스케줄 설정
  • 성능 모니터링 도구 구성
  • 보안 설정 강화