地平线EB级存储实践,千亿文件与每周200PB删减下的元数据治理挑战

地平线AIDI智能驾驶研发平台已进入EB级存储规模,面临千亿级文件管理、每周200PB数据增删、几十万客户端并发接入等工程难题。文章聚焦其基于JuiceFS社区版的四大核心命题解决路径:元数据热点优化...

互联网/IT

当存储容量突破EB级(10¹⁸字节),文件数量达到千亿量级,且每周新增与删除数据各约200PB时,传统开源文件系统的“单点假设”将全面失效。地平线智能驾驶研发数据平台AIDI正是这一极端场景的典型代表——它支撑着从路采数据回传、标注、模型训练到评测发布、问题数据回流的完整闭环,而存储性能直接决定了算力是否空转。

文章配图

过去几年,AIDI平台的数据规模与计算负载同步跃升:存储容量从PB级扩展至EB级,训练算力从千卡增至万卡。模型迭代加速与数据回流密度提升,使存储系统持续超出原有架构的设计边界。当前平台运行特征包括:EB级总容量仍在增长;千亿级文件数,部分回收站目录含数百亿条目;每周约200PB数据变更;数十万客户端通过Kubernetes集群、CSI插件、S3网关及SDK直连方式接入;负载混合了顺序大I/O(如数据集读取)与随机小I/O(如检查点写入),冷热数据分布极不均衡,且多租户共享同一套元数据集群。

在此背景下,地平线团队自2021年起在AIDI平台部署JuiceFS社区版,并围绕四大工程命题展开深度定制。随着场景复杂度上升,企业版也逐步引入,但社区版仍是核心实践主线。

命题一:千亿文件下的元数据稳定性保障

元数据集群(基于TiKV)在千亿文件规模下暴露三大瓶颈:训练高峰时主副本CPU满载,从副本仍有余力;事务频繁向PD(Placement Driver)申请TSO时间戳,增加网络往返;挂载配置、容量信息等热点元数据被高频查询。

为缓解压力,团队改造了TiKV Go客户端的Region路由缓存机制,使follower节点可分担读请求;优化高频点查逻辑,减少一次TSO往返;对热点元数据引入本地读缓存。所有改动均通过CI持续验证,并以构建时注入补丁方式交付,避免维护独立分支。

针对数十亿条目的大目录扫描导致的客户端内存溢出问题,采用流式分批readdir策略,避免一次性构造完整数组,并支持内核级readdir缓存。

此外,为防止几十万客户端中的单一租户流量打爆集群,实施双层限流:元数据侧基于PD Resource Group令牌桶机制,以RU(Request Unit)计量并限制各租户资源消耗;数据面则分别约束缓存集群与对象存储回源流量。超预算客户端自动降速,保障整体稳定。配置采用声明式YAML管理,由manager对比目标状态自动生成SQL操作,实现配置收敛。

元数据容灾方面,构建三层防护体系:TiKV Raft多副本应对硬件故障;定期全量快照备份至异地对象存储,覆盖误删、逻辑损坏及地域级灾难;对象存储保留原始文件内容,确保元数据恢复后数据集可重建。虽存在恢复点目标(RPO)延迟(取决于备份间隔),但在当前训练节奏下属可接受取舍。

图中所示为AIDI平台的统一命名空间设计,其核心是将热数据与训练数据集跨云分桶存储,关键数据冗余备份,并通过桶间弹性流动实现服务端直连、PB级搬迁零干扰,支撑随计算调度动态迁移数据集的业务需求。

命题二:每周200PB删减的数据治理工程

首先,在JuiceFS层实现软删除标记与回收站隔离机制,所有删除操作先归入租户专属回收站,保留元数据关联关系;其次,建立删除任务队列与审计日志联动,每条删除记录包含操作者、时间、路径、原大小及快照ID;第三,开发增量清理引擎,按优先级分批提交至对象存储删除接口,并监控失败重试与速率控制。

该方案使数据删除具备追溯能力,支持误删快速恢复(通过回收站还原元数据+对象存储恢复),同时避免因批量删除引发对象存储API限流或账单突增。在实际运行中,删除作业平均耗时从原方案的数天缩短至8小时内完成,且资源占用平稳。

命题三:EB级容量下的成本与吞吐权衡

EB级存储需兼顾训练吞吐与长期成本。AIDI平台采用分层存储策略:热数据(近期训练集、检查点)驻留高性能SSD缓存池;温数据(历史版本模型输入)存于标准对象存储;冷数据(原始路采视频片段)归档至低频访问层。

关键创新在于“桶间数据弹性流动”机制:训练任务调度时,系统自动将所需数据集从归档桶预热至热桶,无需客户端中转;PB级数据搬迁可在不影响在线训练的前提下完成。该设计使存储成本下降约35%,同时保障95%以上训练任务的I/O延迟低于50ms。

命题四:几十万客户端的接入与可观测性

面对数十万K8s Pod与SDK客户端并发接入,平台构建了统一接入网关层,集成认证、限流、熔断与埋点上报功能。每个租户分配独立资源配额,基于标签(label)与命名空间(namespace)实现细粒度隔离。

可观测性方面,除常规指标(QPS、延迟、错误率)外,重点监控元数据热点路径(如特定目录readdir频率)、缓存命中率突变、对象存储回源带宽峰值。异常检测模型基于滑动窗口统计偏离度,触发告警前自动执行根因分析脚本,定位至具体租户或文件路径。

值得注意的是,上述实践并非孤立技术堆砌,而是围绕“数据就绪速度决定算力利用率”这一业务本质展开。在智能驾驶研发中,一个训练周期可能因数据延迟而延长数小时,直接影响算法迭代效率。因此,存储系统的稳定性与响应速度,已成为AI工程化落地的关键瓶颈之一。

目前,AIDI平台已稳定支撑地平线多代自动驾驶模型的训练闭环,日均处理超10亿次元数据操作,峰值吞吐达120GB/s。其经验表明:超大规模存储系统的设计,必须跳出“扩容即解决”的惯性思维,转向对元数据路径、数据生命周期、租户行为建模的精细化治理。开源系统在EB级场景下的可用性,最终取决于工程团队能否在架构约束下做出清醒的取舍——这既是挑战,也是价值所在。