Meta 的 AI 存储蓝图
来自 Meta Engineering · 期号 2026-07-02
摘要
AI 模型能力和训练数据规模呈指数级增长,但存储性能的提升远落后于算力,导致 GPU 频繁因等待数据而空转,直接推高训练成本。 Meta 的 BLOB 存储架构围绕两个目标演进:最大化 GPU 利用率和研究迭代速度。底层基于 Tectonic 分布式块存储层,上层提供全局可扩展的对象存储接口,支持跨区域数据湖统一访问。 训练中成百上千 GPU 同步状态时,任何一个 GPU 因存储延迟掉队都会拖慢整个集群。Meta 通过优化存储延迟的 pMax 上限来避免这种“木桶效应”。 原文是 Meta 工程博客,给出了存储架构的演进路线与设计取舍。
深读
导读 AI 模型能力与训练数据规模指数级增长,但存储性能的提升远落后于算力,导致 GPU 频繁因等待数据而空转,直接推高训练成本。Meta 工程博客详细阐述了其 BLOB 存储架构为应对 AI 工作负载而进行的根本性重构,核心围绕最大化 GPU 利用率和研究迭代速度两个目标。读完可以理解大规模 AI 训练中存储瓶颈的具体成因,以及 Meta 如何通过统一元数据、消除数据代理、分层缓存等设计取舍来解决这些问题。 关键信息 - Meta 运营着数百个 EB 级存储集群,服务于 Facebook、Instagram、Reality Labs、Meta AI 等所有内外产品。 - 旧架构中一次 getObject 请求需要跨多个层(namelayer、volumeslayer、containerlayer)进行元数据查找,延迟可达数百毫秒,任何一个慢响应就足以拖慢整个流程。 - 新架构将元数据子系统重写为基于 ZippyDB 的统一扁平 schema,实现 O(1) 路径到存储地址的查找。 - 新架构消除了数据代理,构建了内嵌 Tectonic BlockClient 的胖客户端 SDK,可直接从存储服务器流式传输数据。 - 分布式数据缓存在实践中平均命中率达 80%,读计划元数据缓存提供 1-2 毫秒的访问延迟。 - 新数据加载范式上线后,跨区域数据摄入时间显著缩短,使研究人员能以分钟而非小时为单位进行迭代。 逐节讲解 存储架构概览与演进动因 Meta 的存储服务暴露对象存储、文件系统和块设备 API,这些抽象层构建在名为 Tectonic 的横向可扩展基础块层之上。Tectonic 是一个区域性、多租户的存储结构,利用纠删码技术提供高持久性和可用性,支持跨介质类型(HDD 和闪存)的分层,并管理热、温、冷数据的智能放置。此前 Meta 训练 Llama 时直接通过 Tectonic 块层暴露的类 NFS 文件系统接口进行,但现代训练栈正逐渐迁移到 BLOB 存储接口之上,以统一访问大规模数据湖并获得高性能。 最大化 GPU 利用率:延迟为何关键 训练中成百上千 GPU 迭代处理数据,并定期同步状态。任何一个 GPU 因存储延迟掉队,都会拖慢整个集群。旧 BLOB 存储架构是面向传统工作负载有机演进的,多层状态ful 元数据存储导致延迟不可控,且默认全局复制数据,这些设计假设在 AI 工作负载下已不再成立。新架构做出了三个关键设计选择:统一元数据模式(基于 ZippyDB 的扁平 schema)、消除数据代理(构建胖客户端 SDK)、以及区域化部署(BLOB 存储与 GPU 共置)。此外,通过分布式数据缓存(利用 GPU 主机的空闲内存,复用 Meta 的 Owl 子系统)和读计划元数据缓存来应对流量尖峰和热点,并在客户端实现了对冲读取(应对慢节点)和动态并发控制…