HPC & GPU Engineering/AI Infrastructure Engineer

[HPC/GPU 클러스터 운영 Zero to Hero 36편] 병렬 파일 시스템 Lustre, BeeGFS 구조와 운영 방법 – HPC 스토리지 성능의 핵심

ygtoken 2025. 8. 11. 21:20
728x90

 

왜 병렬 파일 시스템이 필요한가

 

HPC와 AI 클러스터에서 스토리지는 단순 데이터 저장소가 아닙니다.

대규모 모델 학습이나 시뮬레이션은 초당 수십 GB 이상의 I/O를 요구하며, 단일 서버 스토리지로는 병목이 발생합니다.

 

이 문제를 해결하는 핵심 기술이 **병렬 파일 시스템(Parallel File System)**입니다.

여러 스토리지 서버가 동시에 데이터를 읽고 쓰도록 설계되어, 대규모 노드가 병렬로 I/O 작업을 처리할 수 있습니다.

대표적인 구현체가 LustreBeeGFS입니다.

 


 

Lustre – HPC 전통의 강자

 

Lustre는 대규모 HPC 환경에서 오랫동안 사용되어온 오픈소스 병렬 파일 시스템입니다.

  • 주요 특징
    • 수 PB~EB 규모 확장 가능
    • 고속 InfiniBand·Omni-Path 네트워크와 결합
    • POSIX 호환
  • 아키텍처 구성
    • MDS(Metadata Server): 파일 메타데이터 관리
    • OSS(Object Storage Server): 실제 데이터 저장
    • OST(Object Storage Target): OSS의 디스크 풀
    • Client: HPC 노드에서 Lustre 마운트하여 사용

 

구성 예시

[Client Nodes] <---> [MDS] <---> [OSS + OSTs]

 

설치·마운트 예시

# Lustre 클라이언트 설치
sudo apt install lustre-client-modules-$(uname -r)

# Lustre 파일 시스템 마운트
mount -t lustre mds01@tcp0:/lustre /mnt/lustre

 


 

BeeGFS – 유연하고 관리가 쉬운 대안

 

BeeGFS는 독일 Fraunhofer ITWM이 개발한 고성능 병렬 파일 시스템으로, 설치와 운영의 유연성이 강점입니다.

  • 주요 특징
    • 데이터와 메타데이터 모두 병렬 분산
    • 설정·관리 UI 제공
    • 소규모부터 대규모까지 확장 용이
  • 아키텍처 구성
    • Management Server: BeeGFS 클러스터 관리
    • Metadata Server: 파일 메타데이터 저장
    • Storage Server: 데이터 블록 저장
    • Client: 사용자 노드에서 BeeGFS 마운트

 

구성 예시

[Client Nodes] <---> [Metadata Servers] <---> [Storage Servers]

 

설치·마운트 예시

# BeeGFS 클라이언트 설치
apt install beegfs-client beegfs-helperd beegfs-utils

# BeeGFS 마운트
mount -t beegfs <mgmt_ip>:/ /mnt/beegfs

 


 

Lustre vs BeeGFS 비교

항목 Lustre BeeGFS
안정성 대규모 HPC에 최적 소규모~중규모까지 안정
관리 편의성 CLI 중심, 관리 난이도 높음 GUI·CLI 지원, 쉬운 설정
성능 대규모 동시 접근에 강함 랜덤 I/O 성능 우수
확장성 초대형 HPC 유연한 노드 증설

 


 

작동 원리와 데이터 흐름

  1. 클라이언트 요청 – 노드에서 파일 접근 요청
  2. 메타데이터 조회 – MDS/Metadata Server가 파일 위치 정보 반환
  3. 데이터 I/O – OSS/Storage Server에서 직접 데이터 읽기·쓰기
  4. 병렬 처리 – 여러 서버가 동시에 I/O 수행, 성능 선형 확장

 


 

HPC 환경에서의 운영 팁

 

  • 네트워크 최적화
    • Lustre → LNet(InfiniBand) MTU 조정
    • BeeGFS → TCP 버퍼 크기 확장
  • I/O 패턴 분석
    • 순차 I/O vs 랜덤 I/O에 따라 스토리지 서버 설계
  • Stripe 설정
    • 대용량 파일 → Stripe count 증가
    • 소파일 대량 처리 → Metadata 서버 튜닝

 


 

Slurm과 병렬 파일 시스템 연계

#SBATCH --job-name=ai-training
#SBATCH --output=result.out
#SBATCH --gres=gpu:4
#SBATCH --ntasks=8
#SBATCH --time=02:00:00
#SBATCH --exclusive

# Lustre 경로에서 데이터 로드
python train.py --data_dir /mnt/lustre/dataset

 

  • Job 스크립트에서 병렬 파일 시스템 경로를 직접 지정
  • Lustre/BeeGFS 경로를 공용 /scratch 영역처럼 운영

 


 

장점과 단점

 

장점

  • 대규모 병렬 I/O 처리 가능
  • 데이터 접근 속도 향상
  • HPC·AI 학습·시뮬레이션에 최적

 

단점

  • 초기 구축 비용과 복잡도 높음
  • 네트워크·스토리지 장애 시 영향 범위 큼
  • 운영 경험과 전문 지식 필요

 


 

실무 최적화 체크리스트

  • 메타데이터 병목 제거: MDS/Metadata 서버를 SSD 기반으로 구성
  • 네트워크 대역폭 확보: IB/NDR/HDR 링크 redundancy 구성
  • 모니터링: Grafana·Prometheus에 I/O 메트릭 연동
  • 정기 점검: 파일 시스템 consistency 체크 (lfs fsck, beegfs-fsck)

 


 

정리하며

병렬 파일 시스템은 HPC·GPU 클러스터의 데이터 혈관입니다.

Lustre와 BeeGFS는 각각 초대형 HPC와 유연한 범용 환경에서 강점을 가지며, 환경 규모·I/O 패턴·운영 인력 수준에 따라 선택이 달라집니다.

올바른 설계와 운영이 이루어져야만 GPU 연산 성능이 스토리지 병목 없이 발휘됩니다.

 

 

728x90