AI를 위한 오브젝트 스토리지: 200GB/s 처리량의 GPU Direct Storage 구현
2025년 12월 8일 업데이트
2025년 12월 업데이트: GPUDirect Storage 2.0이 CUDA 12.3+와 함께 출시되어 15% 처리량 향상과 H100/H200 GPU 네이티브 지원을 제공합니다. PCIe Gen5 NVMe 드라이브가 이제 드라이브당 14GB/s를 달성하여 서버당 400GB/s+ 성능을 가능하게 합니다. NVIDIA Magnum IO 스택이 Blackwell에 최적화되었으며, 초기 벤치마크에서 250GB/s 지속 처리량을 보여주고 있습니다. 주요 클라우드 제공업체(AWS, Azure, GCP)가 이제 EBS/Azure Disk/Persistent Disk 통합과 함께 GPUDirect Storage 지원 인스턴스를 제공합니다.
Meta는 연구 클러스터 전체에 GPUDirect Storage를 구현하여 모델 학습 속도를 3.8배 향상시켰으며, 이전에 데이터 로딩을 50GB/s로 제한했던 CPU 병목 현상을 제거하고 이제 학습 데이터를 192GB/s로 GPU에 직접 스트리밍합니다.¹ 이 소셜 미디어 거대 기업의 PyTorch 학습 작업은 이전에 컴퓨팅 시간의 35%를 데이터 대기에 소비했습니다—H100 GPU가 시간당 $3.50의 비용이 드는 상황에서 이는 엄청난 낭비였습니다. 그들의 오브젝트 스토리지 아키텍처는 이제 병렬 S3 호환 엔드포인트를 통해 2,048개의 GPU에 동시에 데이터를 공급하며, 각 GPU는 CPU 개입 없이 자체 데이터 샤드를 수신합니다. 현대 AI 워크로드는 GPU 처리 속도에 맞는 스토리지 시스템을 요구하지만, 대부분의 조직은 여전히 CPU 시대를 위해 설계된 전통적인 파일시스템을 통해 페타바이트를 처리하고 있습니다.
GPT-4 학습에는 45TB를 초과하는 데이터셋에서 13조 개의 토큰을 처리해야 했으며, 데이터 로딩 속도가 1억 달러의 학습 비용에 직접적인 영향을 미쳤습니다.² 오브젝트 스토리지는 99.999999999%(11 나인) 내구성을 유지하면서 수천 개의 동시 GPU 리더를 지원하여 AI 워크로드에 필수적인 확장성, 내구성 및 병렬 액세스 패턴을 제공합니다. GPU 최적화 오브젝트 스토리지를 구현한 조직들은 학습 시간 60% 단축, 기존 SAN/NAS 대비 75% 낮은 스토리지 비용, 아키텍처 변경 없이 테라바이트에서 엑사바이트까지 확장 가능한 능력을 보고합니다. NVMe 스토리지, RDMA 네트워킹, GPUDirect 기술의 융합은 마침내 현대 GPU의 수요에 맞는 스토리지 처리량을 가능하게 합니다.
GPUDirect Storage 아키텍처 기초
GPUDirect Storage(GDS)는 CPU와 시스템 RAM을 완전히 우회하여 스토리지와 GPU 메모리 간의 직접 메모리 경로를 설정함으로써 데이터 이동에 혁명을 일으킵니다. 전통적인 데이터 경로는 네 번의 메모리 복사가 필요합니다: 스토리지에서 커널 버퍼로, 커널에서 사용자 공간으로, 사용자 공간에서 GPU 드라이버로, 드라이버에서 GPU 메모리로.³ GDS는 커널 우회와 피어 투 피어 DMA를 통해 중간 복사를 제거하여 지연 시간을 15마이크로초에서 2마이크로초 미만으로 줄입니다. NVIDIA Magnum IO 소프트웨어 스택이 이러한 전송을 조율하여 이론적 NVMe 대역폭의 97%를 달성합니다.
기술 스택은 특정 하드웨어와 소프트웨어 구성 요소가 조화롭게 작동해야 합니다. CMB/PMR을 지원하는 NVMe SSD는 직접 메모리 매핑을 가능하게 합니다. RDMA 지원 네트워크 카드(ConnectX-6 이상)는 원격 스토리지 액세스를 제공합니다. V100 세대 이후의 GPU는 GDS 작업을 지원합니다. Linux 커널 5.10+ 버전에는 필요한 드라이버와 메모리 관리 기능이 포함되어 있습니다. MOFED 네트워킹 스택은 이더넷 배포를 위한 RoCE v2를 지원합니다. 애플리케이션은 명시적인 GDS API 통합 또는 딥러닝용 DALI와 같은 호환 프레임워크가 필요합니다.
구현 아키텍처는 규모와 성능 요구 사항에 따라 다양합니다:
로컬 NVMe: 직접 연결된 NVMe 드라이브는 8개 드라이브로 서버당 200GB/s를 제공합니다. 각 GPU는 피어 투 피어 PCIe 트랜잭션을 통해 특정 드라이브를 매핑합니다. 가장 낮은 지연 시간이지만 용량이 제한되고 노드 간 공유가 불가능합니다.
NVMe-oF: 패브릭을 통해 액세스하는 분리된 NVMe 어레이는 연결당 100GB/s를 제공합니다. 스토리지 노드는 네임스페이스를 GPU 서버에 직접 노출합니다. 마이크로초 지연 시간을 유지하면서 리소스 풀링을 가능하게 합니다.
S3 호환 오브젝트: 스케일아웃 오브젝트 스토어는 병렬 액세스로 무제한 용량을 제공합니다. 여러 스토리지 노드가 동시에 청크를 제공하여 총 처리량을 달성합니다. 더 높은 지연 시간이지만 대규모 확장성과 내장된 내구성을 제공합니다.
스토리지 인프라 설계
200GB/s 지속 처리량을 구축하려면 여러 계층에 걸친 신중한 인프라 설계가 필요합니다:
스토리지 미디어 선택: 엔터프라이즈 NVMe 드라이브는 드라이브당 7GB/s 순차 읽기를 제공합니다. Samsung PM1735 또는 Kioxia CM6 시리즈는 지속적인 부하에서 일관된 성능을 제공합니다.⁴ U.2 폼 팩터는 2U 서버당 24개 드라이브를 가능하게 합니다. M.2 드라이브는 더 높은 밀도를 제공하지만 열 문제가 있습니다. Optane 영구 메모리는 핫 데이터 캐싱을 위해 모듈당 40GB/s를 제공합니다. 오버헤드를 고려하여 200GB/s를 위해 최소 30-35개 드라이브를 계산하세요.
네트워크 아키텍처: 200GbE 또는 듀얼 100GbE는 여유를 두고 충분한 대역폭을 제공합니다. RDMA over Converged Ethernet(RoCE v2)은 프로토콜 오버헤드를 제거합니다. 3:1 오버서브스크립션의 스파인-리프 토폴로지가 버스트 트래픽을 처리합니다. 각 스토리지 노드는 200Gbps 업링크 용량이 필요합니다. GPU 노드는 일치하는 인그레스 대역폭이 필요합니다. 논블로킹 스위치가 혼잡으로 인한 속도 저하를 방지합니다.
서버 구성: 스토리지 노드는 CPU, 메모리, 드라이브 용량의 균형을 맞춥니다. 듀얼 AMD EPYC 또는 Intel Xeon은 이레이저 코딩을 위한 충분한 처리 능력을 제공합니다. 512GB RAM은 광범위한 메타데이터 캐싱을 가능하게 합니다. 하드웨어 RAID 컨트롤러는 성능 병목 현상을 일으킵니다—소프트웨어 정의 스토리지를 사용하세요. 두 개의 100GbE 포트가 이중화와 로드 밸런싱을 제공합니다. 각 NVMe 드라이브용 PCIe Gen4 x16 슬롯이 전체 대역폭을 보장합니다.
소프트웨어 스택: 오브젝트 스토리지 플랫폼은 GPU 최적화에서 상당히 다양합니다: - MinIO: GDS 지원이 포함된 네이티브 S3 구현, 183GB/s 실증 처리량 달성⁵ - VAST Data: QLC 플래시로 200GB/s에 도달하는 하드웨어 최적화 플랫폼 - WekaFS: S3 게이트웨이가 있는 병렬 파일시스템, 191GB/s 측정 성능 - Pure Storage FlashBlade: 샤시당 75GB/s의 통합 어레이 - DDN EXAScaler: 대규모에서 250GB/s를 달성하는 HPC 중심 솔루션
구현 모범 사례
성공적인 GPU Direct Storage 배포는 검증된 패턴을 따릅니다:
데이터 조직: 병렬 액세스 패턴을 위해 데이터셋을 구조화하세요. 최적의 스트리밍을 위해 64-256MB 크기의 여러 오브젝트에 학습 데이터를 샤딩하세요. 결정론적 GPU-샤드 매핑을 위해 일관된 해싱을 구현하세요. 빠른 데이터셋 인덱싱을 위해 빠른 키-값 저장소에 메타데이터를 저장하세요. 불변 오브젝트 원칙을 사용하여 데이터셋 버전을 관리하세요. GPU 압축 해제가 스토리지 처리량보다 빠른 경우 데이터를 압축하세요.
네임스페이스 설계: 워크로드 유형과 액세스 패턴별로 네임스페이스를 분리하세요. 이레이저 코딩이 적용된 고처리량 풀에 학습 데이터를. 복제가 적용된 고내구성 풀에 모델 체크포인트를. 이중화 없는 성능 최적화 풀에 임시 데이터를. 적극적인 압축이 적용된 용량 최적화 풀에 아카이브 데이터를 저장하세요.
캐싱 전략: 자주 액세스하는 데이터에 대해 다중 계층 캐싱을 구현하세요. 10TB 미만의 워킹 셋을 위해 GPU 노드의 NVMe 캐시를. 메타데이터를 위해 Redis 또는 Memcached를 사용한 분산 캐시를. 핫 오브젝트를 위해 Optane 또는 RAM을 사용한 스토리지 측 캐시를 사용하세요. 학습 에포크 패턴을 기반으로 프리페칭하세요. 비피크 시간대의 캐시 워밍이 프로덕션 영향을 줄입니다.
로드 밸런싱: 총 처리량을 위해 스토리지 노드 전체에 요청을 분산하세요. 간단한 S3 엔드포인트 분산을 위한 DNS 라운드 로빈. 지능적인 요청 라우팅을 위한 HAProxy 또는 NGINX. 일관된 해싱을 사용한 클라이언트 측 로드 밸런싱. 병목 현상을 식별하기 위해 노드별 처리량을 모니터링하세요. 작은 오브젝트에 대한 요청 병합을 구현하세요.
Introl은 글로벌 서비스 지역 전체에서 AI 워크로드를 위한 고성능 스토리지 솔루션을 설계하고 구현하며, 페타바이트 규모 오브젝트 스토리지 배포 관리에 대한 전문 지식을 보유하고 있습니다.⁶ 저희 팀은 최대 GPU 활용률과 학습 효율성을 위해 스토리지 인프라를 최적화합니다.
성능 최적화 기술
200GB/s 지속 처리량을 달성하려면 체계적인 최적화가 필요합니다:
커널 튜닝: 고대역폭 연결을 위해 네트워크 버퍼를 128MB로 늘리세요. 일관된 지연 시간을 위해 CPU 주파수 스케일링을 비활성화하세요. GPU 코어를 피하면서 특정 코어에 인터럽트 핸들러를 고정하세요. TLB 압력을 줄이기 위해 휴지 페이지를 활성화하세요. 로컬 메모리 액세스를 위해 NUMA 설정을 조정하세요. NVMe 장치에 대해 io_schedule을 'none'으로 설정하세요.
네트워크 최적화: 전체 경로에서 점보 프레임(9000 MTU)을 활성화하세요. 패킷 손실 없는 혼잡 알림을 위해 ECN을 구성하세요. 고대역폭-지연 제품을 위해 TCP 설정을 조정하세요. 체크섬과 세그먼테이션을 위한 하드웨어 오프로드를 활성화하세요. CPU 오버헤드를 줄이기 위해 인터럽트 병합을 구성하세요. 무손실 RoCE를 위한 우선순위 흐름 제어를 구현하세요.
스토리지 튜닝: 파티션 경계를 이레이즈 블록 크기에 맞추세요. 적절한 큐 깊이(장치당 256-1024)를 구성하세요. 전원 손실 보호와 함께 쓰기 캐싱을 활성화하세요. 액세스 시간 업데이트와 같은 불필요한 파일시스템 기능을 비활성화하세요. 지속적인 SSD 성능을 위해 TRIM/UNMAP을 구현하세요. SSD 웨어 레벨링을 모니터링하고 사전에 드라이브를 교체하세요.
애플리케이션 최적화: 순차 액세스를 위해 큰 IO 크기(1-4MB)를 사용하세요. 스토리지 지연 시간을 숨기기 위해 프리페칭을 구현하세요. 더블 버퍼링을 사용하여 계산과 데이터 전송을 중첩하세요. 페이지 마이그레이션을 방지하기 위해 메모리 버퍼를 고정하세요. 커널 캐싱을 우회하기 위해 다이렉트 IO를 사용하세요. 작은 요청을 더 큰 작업으로 일괄 처리하세요.
실제 구현 사례
OpenAI - GPT 학습 인프라: - 스토리지: S3 인터페이스가 있는 50PB WekaFS - 처리량: 10,000개 GPU에 175GB/s 지속 - 아키텍처: NVMe + Optane이 장착된 100개 스토리지 노드 - 네트워크: RDMA가 적용된 400GbE InfiniBand - 결과: 데이터 로딩을 학습 시간의 30%에서 5%로 감소 - 혁신: 액세스 패턴을 예측하는 커스텀 프리페칭
Netflix - 비디오 이해 플랫폼: - 스토리지: 3개 리전에 걸친 20PB MinIO - 처리량: 추론을 위한 145GB/s 총합 - 구성: 각각 24개 NVMe 드라이브가 장착된 60개 노드 - 최적화: 장면별 콘텐츠 인식 샤딩 - 성과: 전체 카탈로그를 72시간 내 처리 - 비용: AWS S3 대비 80% 절감
자율주행 차량 회사 (비공개 계약 하): - 데이터셋: 500TB의 주행 영상 - 스토리지: GDS가 적용된 Pure FlashBlade - 성능: 512개 V100 GPU에 200GB/s - 아키텍처: 상호 연결된 10개 샤시 - 영향: 학습 시간을 21일에서 7일로 단축 - 핵심: 데이터 레이아웃의 시간적 지역성 최적화
국립 연구소 - 과학적 ML: - 규모: 100PB DDN EXAScaler - 처리량: 250GB/s 지속 - 워크로드: 기후 시뮬레이션 학습 - GPU: 2,048개 A100이 동시 액세스 - 효율성: 94% GPU 활용률 달성 - 혁신: 테이프 백엔드가 있는 계층적 스토리지
모니터링 및 문제 해결
포괄적인 모니터링이 지속적인 성능을 보장합니다:
처리량 메트릭: 지연되는 GPU를 식별하기 위해 GPU별 읽기 대역폭을 추적하세요. 이론적 최대값 대비 클러스터 총 처리량을 모니터링하세요. 요청 지연 시간 백분위수(p50, p99, p999)를 측정하세요. 10%를 초과하는 처리량 저하에 대해 알림을 설정하세요. 피크 기간을 식별하는 시간별/일별 패턴을 그래프로 표시하세요. 애플리케이션에서 보고한 것과 인프라에서 측정한 속도를 비교하세요.
스토리지 상태: 장애를 예측하는 SSD 마모 지표를 모니터링하세요. 영향이 발생하기 전에 주의가 필요한 오류율을 추적하세요. 열 스로틀링 방지를 위해 온도를 감시하세요. 포화 상태를 식별하는 큐 깊이를 측정하세요. 이상 징후를 감지하는 IOPS 패턴을 관찰하세요. 80% 용량에 근접할 때 알림을 설정하세요.
네트워크 성능: 즉각적인 조사가 필요한 패킷 손실을 모니터링하세요. 혼잡을 나타내는 재전송률을 추적하세요. 지연 시간 증가를 감지하는 왕복 시간을 측정하세요. 오버플로우를 방지하는 버퍼 활용률을 감시하세요. 병목 현상을 식별하는 대역폭 활용률을 그래프로 표시하세요. 기준선 비율을 초과하는 오류에 대해 알림을 설정하세요.
애플리케이션 메트릭: 에포크당 데이터 로딩 시간을 추적하세요. 스토리지가 속도를 유지하는지 확인하기 위해 GPU 활용률을 모니터링하세요. 체크포인트 저장/복원 시간을 측정하세요. 데이터셋 캐시 적중률을 감시하세요. 학습 처리량(반복/초)을 그래프로 표시하세요. 예상 성능과 실제 성능을 비교하세요.
일반적인 문제와 해결책:
증상: 기대 이하의 처리량 - 확인: 경로 전체에서 네트워크 MTU 일관성 - 확인: 스토리지 컨트롤러 큐
[번역을 위해 콘텐츠 잘림]