Ceph 스토리지 타입 상세

Ceph 스토리지 타입 상세

4️⃣ Ceph 스토리지 타입 상세

Ceph는 단일 스토리지 클러스터에서 Block, File, Object Storage를 모두 지원하는 유연하고 확장성 있는 스토리지 솔루션입니다.
이 장에서는 Ceph의 각 스토리지 타입(RBD, CephFS, RGW)에 대해 아키텍처와 실습 방법을 함께 설명합니다.


1. Ceph Block Storage

📦 RBD: RADOS Block Device

  • Ceph의 블록 스토리지는 RBD라는 형태로 제공됩니다.
  • 일반적인 VM 디스크, DB 저장소, 로그 저장소 등 읽기/쓰기 집중적인 워크로드에 적합합니다.

📌 아키텍처

+------------------+
|  Pod / VM        |
|  (사용자 앱)      |
+--------+---------+
         |
         v
+------------------+     +----------------------+
| CSI Driver (RBD) | --> | Ceph Cluster (RADOS) |
+------------------+     +----------------------+

🛠️ RBD 사용을 위한 CSI 구성 예제

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: rook-ceph-block
provisioner: rook-ceph.rbd.csi.ceph.com
parameters:
  clusterID: rook-ceph
  pool: replicapool
  imageFeatures: layering
  csi.storage.k8s.io/fstype: ext4
reclaimPolicy: Delete
allowVolumeExpansion: true
mountOptions:
  - discard

PVC 예시:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: ceph-block-pvc
spec:
  storageClassName: rook-ceph-block
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

Pod 예시:

apiVersion: v1
kind: Pod
metadata:
  name: ceph-block-test
spec:
  containers:
    - name: app
      image: busybox
      command: ["/bin/sh"]
      args: ["-c", "while true; do echo Hello from RBD; sleep 5; done"]
      volumeMounts:
        - mountPath: "/mnt/rbd"
          name: ceph-vol
  volumes:
    - name: ceph-vol
      persistentVolumeClaim:
        claimName: ceph-block-pvc

2. Ceph File System (CephFS)

  • CephFS는 POSIX 호환의 분산 파일 시스템입니다.
  • 대규모 파일 공유, 로그 저장, 머신러닝 워크로드 등에 적합합니다.

📌 아키텍처

+------------------+
|  Pod / Container |
+--------+---------+
         |
         v
+------------------+
| CSI Driver (FS)  |
+--------+---------+
         |
         v
+----------------------+
| CephFS MDS + RADOS   |
+----------------------+
  • MDS(Metadata Server)는 파일의 메타데이터를 관리
  • 데이터는 RADOS에 저장됨

🛠️ MDS 구성 및 Mount 방법

스토리지 클래스:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: rook-cephfs
provisioner: rook-ceph.cephfs.csi.ceph.com
parameters:
  clusterID: rook-ceph
  fsName: myfs
  pool: cephfs-data0
  csi.storage.k8s.io/node-stage-secret-name: rook-csi-cephfs-node
  csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph

PVC 예시:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cephfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: rook-cephfs
  resources:
    requests:
      storage: 1Gi

3. Ceph Object Storage (RGW)

  • RGW는 S3 호환 API를 제공하는 객체 저장소입니다.
  • 백업, 로그, 이미지 저장 등 비정형 데이터에 적합

📌 아키텍처

+--------------------------+
| S3 Client / App / Tool  |
+------------+-------------+
             |
             v
+--------------------------+
| RADOS Gateway (RGW)     |
+------------+-------------+
             |
             v
+--------------------------+
| Ceph RADOS (Object Pool)|
+--------------------------+

🛠️ 사용자 및 버킷 관리

  1. Tool Pod로 접속
kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bash
  1. 사용자 생성
radosgw-admin user create --uid="user1" --display-name="User One"
  1. 버킷 생성
radosgw-admin bucket create --bucket=my-bucket --uid=user1
  1. 접속 정보 확인
radosgw-admin user info --uid=user1

📦 S3 클라이언트 예: s3cmd, rclone, minio-client 등 사용 가능


📊 Ceph 스토리지 비교 요약표

타입 설명 주요 사용 사례 AccessModes
Block (RBD) 가상 디스크 형태의 블록 DB, VM 디스크, 로그 RWO
File (CephFS) POSIX 파일 시스템 파일 공유, 코드 저장소 RWX, RWO
Object (RGW) S3 호환 객체 스토리지 백업, 이미지 저장, 아카이브 HTTP(S) 기반 접근

RSS Feed
마지막 수정일자