Meta의 Prometheus는 대규모 AI 학습 작업에 오브젝트 스토리지를 사용하고 있는 것으로 전해졌다.
Meta가 기가와트급 AI 학습 클러스터 Prometheus에 관한 논의를 시작했습니다. 이 클러스터의 스토리지 시스템은 파일 기반 설계에서 다계층 캐시형 오브젝트 스토리지로 전환되었으며, 이를 통해 GPU 유휴 시간이 줄어들었습니다.
Prometheus는 미국 오하이오주 New Albany에 위치한 기가와트급 GPU 슈퍼클러스터로, Meta의 Muse 파운데이션 AI 모델 제품군을 구축하는 데 사용됩니다. 현재 수십만 개 수준인 GPU를 약 100만 개까지 확장하여, 차세대 프런티어 모델을 학습하는 Meta Supercluster Labs를 위해 동시에 작동하도록 하는 중입니다. 현재 이 클러스터는 여러 개의 상호 연결된 건물에 분산된 수십만 개의 GPU 배열로 구성되어 있습니다.
Prometheus는 두 가지 Nvidia GPU 플랫폼을 사용합니다.
- **Catalina**는 Nvidia GB200 NVL72(Blackwell)의 Ariel 변형을 사용합니다. 랙 두 개로 구성되며, 랙당 36개의 GPU가 NVLink로 상호 연결되어 하나의 통합된 72-GPU 도메인을 형성합니다.
- **Clemente**는 Nvidia GB300 NVL72(Blackwell Ultra)를 사용하며, GPU와 플랫폼 수준 모두에서 Catalina를 개선했습니다. GB300은 GPU당 HBM 용량을 192GB에서 288GB로 1.5배 늘리고, 밀집 FP4 처리량을 비슷한 배율로 높이며, 어텐션(softmax) 가속은 약 두 배로 향상시킵니다. 전체 72-GPU 도메인이 단일 랙에 배치됩니다.
세 번째 플랫폼인 San Miguel이 곧 도입될 예정입니다. 이 플랫폼은 Vera Rubin NVL72 GPU를 기반으로 하며, GPU당 성능에서 세대적 도약을 제공하고, Prometheus의 기존 네트워크 패브릭에 직접 통합됩니다. 클러스터가 성숙함에 따라, 주로 상호 연결된 GB300 용량에 Vera Rubin을 더하면 와트당 연산 성능이 더욱 높아질 것입니다.
Meta는 루이지애나주 Richmond Parish에 Hyperion이라는 두 번째 슈퍼클러스터를 구축하고 있습니다.
**네트워크**
Prometheus의 여러 데이터센터 건물은 New Albany에 위치해 있습니다. 각 건물 내부에는 이더넷 기반 패브릭이 사용됩니다. 클러스터 건물들은 2km에서 100km 이상에 이르는 거리를 잇는 다계층 허브-앤-스포크 방식의 백엔드 집계(BAG) 네트워크로 상호 연결됩니다. 이 네트워크는 Broadcom Jericho3 실리콘을 탑재한 깊은 버퍼의 Arista 7800 시리즈 섀시를 사용하며, 지역 간 쌍마다 여러 Pbps의 대역폭을 제공합니다.
**Prometheus 스토리지 구조 개요**
스토리지 시스템은 Meta의 Tectonic 기반 계층 위에 구축된 맞춤형 다계층 스택입니다. BLOB(Binary Large Object) 스토리지 인터페이스를 제공하며, 대용량 및 고성능 요구에 맞춰 특수 하드웨어 플랫폼을 사용합니다. 이 서브시스템은 네 개 계층의 하드웨어 스택을 갖추고 있습니다.
- **L1/L2:** GPU 호스트의 메모리 및 로컬 플래시.
- **L3:** 플래시 기반의 지역 BLOB 스토리지.
- **L4:** 원본 데이터 소스로, 내구성 있는 HDD 기반 BLOB/Tectonic 스토리지(전역 또는 지역)로 구성됩니다.
이 설계에는 분산 캐싱도 포함되는데, 이는 GPU 호스트의 남는 메모리를 활용하고 Meta의 Owl 시스템 구성 요소를 재사용합니다. 또한 메타데이터 캐싱, 데이터 로더의 사전 로딩(prefetching), 헤지드 리드(hedged reads), 동적 동시성 제어를 포함합니다. 이 설계는 학습 단계가 스토리지로 인해 지연되지 않도록 예측 가능한 낮은 테일 지연 시간을 우선시합니다.
**Owl**
Owl은 P2P(피어 투 피어) 데이터 전송과 지능형 중앙 제어를 결합하여 대용량의 자주 접근되는 내부 콘텐츠를 효율적으로 이동시키는 Meta의 운영 시스템입니다. 몇 개의 클라이언트에서 수백만 개의 프로세스까지 확장되는 고팬아웃 콘텐츠 배포 시스템으로, Meta 프라이빗 클라우드 내부에서 자주 접근되는("hot") 대형 객체를 대상으로 합니다. 실행 파일과 바이너리, 코드 아티팩트, AI 모델, 검색 인덱스를 수백만 대의 호스트에 전달합니다. 전달되는 콘텐츠의 크기는 수 GB에서 수 TB에 이를 수 있습니다. Owl은 데이터 플레인과 제어 플레인을 분리하고 있습니다.
- **분산형 데이터 플레인:** 일시적인 피어 투 피어 배포 트리입니다. 청크가 도착하는 즉시 소스에서 피어를 거쳐 데이터가 스트리밍되어, 전체 저장 후 전달(store-and-forward)에서 생기는 지연을 피합니다. 트리는 수명이 짧고 청크 단위로 구성됩니다.
- **중앙 집중형 제어 플레인:** 트래커 서비스가 피어, 캐시 내용, 위치, 진행 중인 다운로드에 대한 상세하고 최신의 메타데이터를 유지합니다. 트래커는 소스 선택, 재시도 동작, 캐싱 및 퇴출(eviction), 트리 구성을 결정합니다.
**Prometheus 스토리지 소프트웨어 스택**
Prometheus 스토리지 스택은 Llama 학습에 사용된 설계에서 벗어났습니다. 그 설계는 Tectonic 위에 NFS와 유사한 파일 시스템 인터페이스를 노출했습니다(부주석 참조). 그 아키텍처는 Meta 내부에서 여전히 널리 쓰이지만, Prometheus는 BLOB 기반 스토리지로 이동하고 있습니다. Meta에 따르면 이는 "BLOB 스토리지 계층의 대규모 데이터 레이크에 대한 통합 스토리지 접근 필요성과 고성능 필요성에 의해 동기가 부여된 것"이며, 목표는 GPU 활용률을 극대화하는 것입니다.
스토리지 소프트웨어 스택은 두 개의 주요 계층으로 구성됩니다.
- **Tectonic:** 기반이 되는 지역 단위의 다중 테넌트 블록 스토리지 패브릭입니다. 이레이저 코딩, 미디어 계층화(HDD 및 플래시), 핫·웜·콜드 데이터의 스마트 배치를 통해 높은 내구성과 가용성을 제공합니다.
- **Tectonic 위의 BLOB 스토리지 계층:** 오브젝트 스토리지 API를 노출하며, 과거에는 파일 시스템 API도 노출했습니다.
이 스택은 ZippyDB가 뒷받침하는 통합 플랫 메타데이터 스키마를 갖추고 있어, 빠른 O(1) 경로-주소 조회를 가능하게 합니다. 데이터 플레인 프록시를 제거하고, 스토리지 서버에서 데이터를 직접 스트리밍하는 "팻 클라이언트(fat client)" SDK를 채택했습니다. 지역 배포는 GPU와 같은 위치에 배치되며, Meta는 이제 모든 AI 지역에 GPU와 같은 위치에 있는 지역 BLOB 스토리지 스택을 배치합니다.
읽기 경로는 다음과 같이 작동합니다. 클라이언트 SDK가 API 호출을 받으면, API 서버에 getReadPlan("/bucket/path") 요청을 보냅니다. API 서버는 새 메타데이터 저장소에서 청크별 O(1) 조회를 수행하여 경로를 (blockId, offset, size) 튜플로 매핑한 뒤, ReadPlanResult를 SDK에 반환합니다. SDK에는 Tectonic BlockClient가 내장되어 있어, 이 블록들로부터 Tectonic에서 데이터를 직접 스트리밍할 수 있습니다.
두 가지 캐시가 사용됩니다.
- **분산 데이터 캐시:** Prometheus는 GPU 호스트의 남는 메모리를 자주 그리고 동시에 접근되는 데이터를 위한 분산 데이터 캐시로 활용합니다. Owl 피어를 BLOB 스토리지 클라이언트 SDK에 직접 통합하여 Meta의 Owl 서브시스템 구성 요소를 재사용하므로, 모든 데이터 접근이 이 캐시를 거치게 됩니다.
- **읽기 계획 메타데이터 캐시:** 읽기 계획(readplan)은 경로에서 스토리지 주소로의 매핑입니다. 이 캐시는 memcache와 유사한 분산 메모리 저장소에 자주 접근되는 BLOB의 읽기 계획을 저장합니다.
**Prometheus 계층형 캐싱**
Meta에 따르면 핵심 아이디어는 GPU 호스트의 메모리와 플래시를 L1 및 L2 캐시로 사용하는 데이터 로딩 방식이며, 플래시 기반 지역 BLOB 스토리지 패브릭이 L3 캐시 역할을 합니다. Meta가 "궁극적인 원본 데이터 소스"라고 부르는 전역 HDD 기반 BLOB 스토리지 데이터 레이크가 백업 저장소입니다. 데이터 로더는 BLOB 스토리지 SDK를 통해 이 캐시들과 백업 저장소 시스템에 접근합니다.
이 방식을 뒷받침하는 몇 가지 메커니즘은 다음과 같습니다.
- **데이터 로더 사전 로딩(prefetch):** 데이터 로더는 현재 배치를 처리하는 동안 다음 배치의 데이터셋을 메모리에 미리 로드합니다. 이 사전 로딩은 BLOB 스토리지 SDK 수준에서 읽기 작업으로 나타납니다.
- **심층 사전 로딩(deep prefetch):** BLOB 스토리지 SDK는 명시적인 prefetch() API를 제공합니다. 데이터 로더는 이를 백그라운드에서 호출하여 향후 몇 분 동안 필요한 데이터를 명시적으로 미리 로드합니다. 이를 통해 원격 스토리지의 데이터가 로컬 지역 L3 캐시로 채워지고 메타데이터 캐시가 미리 준비됩니다.
- **자동 데이터 수명 주기:** 지역 L3 분산 플래시 계층의 데이터는 일반적으로 설정된 기간 동안 보관되어, 학습 주기의 에포크 간에 재사용될 수 있습니다. TTL 및 LRU를 포함한 사용자 정의 퇴출 정책을 지원하며, 이 퇴출 정책은 용량과 할당량을 고려합니다.
Meta가 이 데이터 로딩 방식을 도입한 후, 평균 작업 수집 시간은 150분에서 10분으로 줄었습니다. 매우 큰 작업의 최대 수집 시간은 89시간에서 3시간 조금 넘는 182분으로 단축되었습니다.
**스토리지 하드웨어**
스토리지 하드웨어는 다음으로 구성됩니다.
- **Olympic 및 Yosemite V3.5 Crater Lake:** 낮은 지연 시간과 높은 처리량 접근에 최적화된 플래시 및 SSD 기반 플랫폼입니다.
- **Grand Canyon:** 대량의 학습 데이터 저장을 위한 HDD 기반 시스템입니다.
- **범용 컴퓨팅 플랫폼**(예: Yosemite 변형): 클러스터 관리용입니다.
이러한 구성 요소 덕분에 데이터 파이프라인 전반에서 용량, 지연 시간, 비용을 각각 독립적으로 최적화할 수 있습니다.
Yosemite V3.5는 블레이드 및 슬레드 섀시 설계를 채택하며, 40RU 랙 하나에 최대 12개의 10RU 서버를 장착할 수 있습니다. 다양한 컴퓨팅, 메모리/CXL, PCIe, 가속기 및 SSD 확장을 지원합니다. 일반 소비자용 드라이브가 아닌 OCP 규격의 데이터센터용 NVMe SSD(용량 및 성능 스토리지용 E1.S, 부팅용 M.2)를 사용합니다. 이들은 목적에 맞게 설계되었거나 검증된 데이터센터용 NVMe 장치입니다.
Crater Lake는 Yosemite V3.5 아키텍처용으로 설계된 서버입니다. 4세대 Intel Xeon(Sapphire Rapids / Eagle Stream) 프로세서를 지원하며, 기본 컴퓨팅 노드로 쓰이는 싱글 소켓 1OU(1 Open Unit) 설계입니다. Open Unit은 Open Compute Project의 Open Rack Standard에 특화된 단위입니다. 높이는 48mm(약 1.89인치, 즉 1⅞인치)로, 전통적인 EIA 1U 랙 단위인 1.75인치와 다릅니다.
Grand Canyon은 최대 72개의 3.5인치 HDD를 수용하는, 4OU 높이의 단일 드로어 고밀도 섀시입니다. 세 가지 구성 옵션이 있습니다.
- **듀얼 스토리지 서버:** 컴퓨팅 노드 두 개와 72개의 HDD로 구성되며, 성능과 접근 속도를 높이기 위해 모든 드라이브에 전원이 공급됩니다. 완전히 독립적으로 동작합니다.
- **싱글 스토리지 서버:** 헤드 노드 역할을 하는 컴퓨팅 노드 하나로 구성되며, 추가 JBOD 섀시에 연결할 수 있습니다.
- **순수 JBOD:** 컴퓨팅 기능이 없으며 디스크 셸프로 사용됩니다. 헤드 노드와 JBOD를 결합한 구성에서는 다중 섀시 구성으로 216개 이상의 드라이브까지 확장할 수 있습니다.
Yosemite 및 Crater Lake와 마찬가지로, Grand Canyon 역시 Meta가 OCP에 기여한 설계입니다.
**체크포인팅**
Prometheus는 가중치, 그래디언트, 옵티마이저 데이터를 포함한 모델 상태를 다계층 스토리지에 비동기적으로 기록하는 분산 체크포인팅 아키텍처를 사용합니다. 델타 체크포인팅과 인메모리 스테이징을 활용하여 학습 처리량에 미치는 영향을 최소화합니다. 이는 빠른 로컬 또는 인메모리 스테이징, 이후 플래시, 그다음 내구성 있는 HDD 기반 스토리지로 이어지는 전체 계층 모델에 부합하며, 사전 학습 실행에서 높은 굿풋(예: 85% 이상)을 지원합니다.
**결론**
Meta는 초대형 학습 클러스터에서 GPU 대기 시간을 최소화하기 위해 이 특수 맞춤형 스토리지 방식을 개발했습니다. 하이퍼스케일러 또는 그에 준하는 규모에서 유사한 AI 학습 워크로드를 운영하는 조직은 소프트웨어를 직접 작성할 수 있습니다. 소규모 조직이나 독립형 오브젝트 스토리지가 필요한 조직은 필요한 기능을 제공하기 위해 Cloudian, MinIO 또는 Scality의 소프트웨어를 대신 사용할 수 있습니다. OCP급 NVMe SSD는 OCP 공급업체에서 구할 수 있으며, 범용 디스크 드라이브도 쉽게 구할 수 있습니다.
Meta가 Prometheus 클러스터를 AI 추론 및 에이전틱 AI 워크로드에도 사용할지는 지켜볼 만합니다. 그러한 워크로드는 작업 수집 시간이 그렇게 길지 않을 것이며, 개별 추론 작업이 대규모 GPU를 동시에 작동시킬 필요는 없을 것으로 생각합니다.
**부주석**
2024년 Meta는 Hammerspace를 데이터 오케스트레이션 소프트웨어 공급업체라고 밝혔습니다. Hammerspace는 두 개의 Llama 3 AI 학습 시스템에 사용된, 두 개의 동일한 클러스터로 나뉜 49,152개의 Nvidia H100 GPU를 지원했습니다. GPU는 Meta의 Grand Teton OCP 하드웨어 섀시에 장착되며, Meta의 Tectonic 분산형, 플래시 최적화, 엑사바이트급 스토리지 시스템에 의존합니다. 이 스토리지는 Meta가 개발한 Linux 사용자 공간 파일 시스템(FUSE) API를 통해 접근되었으며, AI 모델 데이터 요구와 모델 체크포인팅에 사용되었습니다.
Tectonic과 Hammerspace 기반 스토리지 배포 모두 최고 용량의 E1.S 형식 SSD를 장착한 Meta의 YV3 Sierra Point 서버를 사용합니다.
이전의 AI Research SuperCluster는 16,000개의 Nvidia A100 GPU로 구성되었으며, Meta의 1세대 AI 모델을 구축하는 데 사용되었습니다. 이 클러스터는 "Llama 및 Llama 2의 개발과, 컴퓨터 비전, NLP, 음성 인식에서 이미지 생성, 심지어 코딩에 이르는 응용 분야의 고급 AI 모델 개발에서 계속해서 중요한 역할을 하고 있습니다." 이 클러스터는 Pure Storage FlashArray 및 FlashBlade 올플래시 어레이를 사용했습니다.
Meta BLOB 스토리지 SDK는 AI 학습 작업 같은 애플리케이션이 Meta의 전역 스토리지 패브릭에서 BLOB을 효율적으로 읽고 관리할 수 있도록 하는 클라이언트 측 라이브러리이며, 직접 스트리밍을 지원합니다.