HPC & GPU Engineering/AI Infrastructure Engineer

[HPC/GPU 클러스터 운영 Zero to Hero 37편] S3 오브젝트 스토리지 – MinIO와 Ceph RADOS Gateway 연계

ygtoken 2025. 8. 12. 10:53
728x90

 

HPC 환경에서 S3 스토리지가 필요한 이유

 
HPC와 AI 워크로드에서 데이터는 단순히 저장되는 것이 아니라 학습·추론·시뮬레이션 파이프라인 전체를 흐르는 자원입니다.
기존 병렬 파일 시스템(Lustre, BeeGFS)은 POSIX 기반의 고성능 I/O에 강점이 있지만,
 

  • 대규모 비정형 데이터(이미지, 동영상, 로그)
  • 클라우드 네이티브 워크플로우(Kubernetes, Spark, MLflow)
  • 오브젝트 스토리지 API 표준(S3)
  • 를 지원하기엔 한계가 있습니다.

 
이때 S3 호환 오브젝트 스토리지를 도입하면, 클라우드·온프렘 구분 없이 동일한 API로 데이터 접근이 가능하며,
MinIO와 **Ceph RADOS Gateway(RGW)**는 대표적인 오픈소스 선택지입니다.
 


 

MinIO – 경량·고성능 S3 호환 스토리지

 
MinIO는 Go 언어로 작성된 경량 오브젝트 스토리지 서버로,
 

  • S3 API 100% 호환
  • 단일 바이너리로 설치·운영 가능
  • 고성능 분산 모드 지원
  • Kubernetes Operator 제공

 
아키텍처 예시

[Client/Worker Nodes] <--S3 API--> [MinIO Gateway/Server] <---> [Disk Pool / Erasure Coding]

 
설치 예시 (단일 노드)

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /mnt/data --console-address ":9001"

 
환경 변수 설정 (CLI 클라이언트)

mc alias set local http://localhost:9000 minioadmin minioadmin

 


 

Ceph RADOS Gateway – 확장성과 통합성의 강점

 
Ceph는 RADOS(분산 오브젝트 저장소) 위에 **RADOS Gateway(RGW)**를 올려 S3 호환 API를 제공합니다.
 

  • 특징
    • 수백 PB까지 확장 가능
    • 블록(RBD), 파일(CephFS), 오브젝트(RGW) 통합
    • 멀티 사이트·멀티 테넌트 지원
  • 아키텍처 예시
[Client] <--S3 API--> [RGW] <---> [RADOS OSD Cluster] <---> [Disk Nodes]

 
RGW 설정 예시

ceph orch apply rgw myrealm myzone --placement="3 host1 host2 host3"

 


 

MinIO vs Ceph RGW 비교

항목MinIOCeph RGW
설치 난이도매우 쉬움 (단일 바이너리)비교적 높음 (전체 Ceph 클러스터 구성 필요)
확장성TB~PB 단위수백 PB~EB 단위
성능낮은 지연, 높은 처리량대규모 동시접속 최적
통합 기능오브젝트 전용오브젝트 + 블록 + 파일

 


 

HPC 환경에서의 S3 연계 활용

 
 

1. 데이터 레이크 구성

  • 원시 데이터(이미지, 로그) → MinIO/Ceph에 저장
  • Spark, Flink, Dask에서 S3 API로 직접 읽기

 
 

2. 학습 데이터 관리

  • MLflow, Kubeflow Pipelines에서 S3를 아티팩트 저장소로 사용
  • 체크포인트·모델 가중치 관리

 
 

3. 멀티 티어 스토리지

  • 빈번 접근 데이터 → Lustre/BeeGFS
  • 장기 보관 데이터 → MinIO/Ceph RGW

 


 

Kubernetes에서 MinIO 배포 예시

apiVersion: apps/v1
kind: Deployment
metadata:
  name: minio
spec:
  replicas: 4
  selector:
    matchLabels:
      app: minio
  template:
    metadata:
      labels:
        app: minio
    spec:
      containers:
      - name: minio
        image: minio/minio:RELEASE.2025-01-01T00-00-00Z
        args:
        - server
        - /data
        - --console-address
        - ":9001"
        ports:
        - containerPort: 9000
        - containerPort: 9001

 


 

성능 최적화 팁

 

  • MinIO
    • Erasure Coding을 사용하되 데이터 블록/패리티 비율 조정
    • Direct I/O 활성화로 OS 캐시 오버헤드 감소
  • Ceph RGW
    • OSD 노드 SSD/HDD 혼합 구성
    • CRUSH 맵 최적화로 데이터 균형 분산
  • 공통
    • 클라이언트 측 다중 파트 업로드(Multipart Upload)
    • 네트워크 병목 제거(IB, 100G Ethernet)

 


 

Slurm과의 연동 예시

#SBATCH --job-name=ml-training
#SBATCH --output=result.out
#SBATCH --gres=gpu:4

# S3 데이터 동기화
mc cp s3/dataset /scratch/dataset --recursive

# 학습 실행
python train.py --data_dir /scratch/dataset

 

  • Slurm Job 시작 시 S3에서 데이터 프리페치
  • 학습 완료 후 결과를 S3로 업로드

 


 

장점과 단점

 
장점

  • 클라우드·온프렘 동일 API 사용 가능
  • 대규모 비정형 데이터 처리에 최적
  • AI/ML 파이프라인 통합 용이

 
단점

  • 파일 I/O 성능은 병렬 파일 시스템 대비 낮을 수 있음
  • 네트워크 대역폭·지연 시간에 성능 의존
  • Ceph는 운영 복잡도가 높음

 


 

정리하며

 
S3 호환 오브젝트 스토리지는 HPC·GPU 환경에서 병렬 파일 시스템과 상호 보완적 관계를 형성합니다.
MinIO는 빠른 구축과 경량 운영에, Ceph RGW는 초대규모 확장과 통합에 강점이 있습니다.
적절한 아키텍처 선택과 최적화는 데이터 처리 성능과 비용 효율성을 크게 향상시킵니다.
 

728x90