训练数据存储选型:对象存储、并行文件系统与本地 NVMe 的分工
实验目标
训练集群的存储问题不是"买一套最大的",而是让三类存储各司其职:
- 数据集放哪?checkpoint 写哪?归档去哪?
- 为什么"全都放并行文件系统"既贵又慢?
- 对象存储、并行文件系统、本地 NVMe 的分工边界在哪?
本篇以决策流程拆解训练数据存储选型:三类存储的定位、训练负载的数据流分析、分级架构与落地清单。说明:本篇为综述 + 架构解析路线,基于通用工程实践,无第一手实验数据;具体产品与参数以官方文档为准。
第一段:三类存储的定位——没有全能存储
| 存储 | 强项 | 弱项 | 训练中的角色 |
|---|---|---|---|
| 本地 NVMe | 超低延迟、超高单机带宽 | 容量有限、不共享、数据有丢失风险 | 缓存/临时数据、热数据集分片、推理缓存 |
| 并行文件系统(Lustre/BeeGFS/GPFS) | 大规模共享、高并发带宽、POSIX 语义 | 贵、小文件弱、运维复杂 | 训练数据加载、checkpoint 读写、共享工作区 |
| 对象存储(S3/MinIO/Ceph RGW) | 海量容量、便宜、高可用、按需扩展 | 延迟高、无 POSIX、小对象并发弱 | 数据集归档、checkpoint 归档、镜像/模型存储 |
核心认知:三种存储的成本曲线与性能曲线完全不同——本地 NVMe 最快最贵(容量最小),对象存储最便宜最慢(容量无限),并行文件系统居中。训练系统设计的本质是让数据按访问频率落在对应层,而不是选一个"最好的"。
第二段:训练负载的数据流分析——按路径选存储
一条训练数据从源头到 GPU 要经过几条路径,每条路径的存储诉求不同:
数据生产/采集
↓ 归档
对象存储(数据集原始数据、历史归档、checkpoint 快照)
↓ 分发/加载
并行文件系统(训练读取的工作副本、共享工作区、checkpoint 读写)
↓ 热数据
本地 NVMe(缓存/分片,减少 PFS 压力)
↓
GPU 读取| 数据流路径 | 特征 | 合适存储 | 原因 |
|---|---|---|---|
| 数据集归档 | 大、冷、低频 | 对象存储 | 容量便宜、高可用,不占 PFS 热容量 |
| 训练数据加载 | 高带宽、并发读 | 并行文件系统 | 共享 + 高并发(04 章基准方法验证) |
| checkpoint 写 | 大块写、必须落盘 | 并行文件系统 | 高带宽写 + 共享恢复(多卡同步读) |
| checkpoint 归档 | 低频、长期 | 对象存储 | 冷归档,避免 PFS 容量被历史 checkpoint 占满 |
| 热数据集/小样本 | 高频、小 | 本地 NVMe 缓存 | 减 PFS 读压力,训练数据预取到本地 |
第三段:分级存储架构——推荐的落地形态
对象存储(源数据/归档/快照)
│ 按需加载 / 数据预取
并行文件系统(工作副本:训练数据 + checkpoint + 共享工作区)
│ 数据预取(训练启动前)
本地 NVMe(每节点缓存:热数据分片、临时数据)落地要点:
- 对象存储当"数据湖底座":原始数据集、历史 checkpoint、模型快照都在对象存储;容量与成本可控;
- 并行文件系统只放"活数据":训练工作副本、当前 checkpoint;用容量监控防止被历史数据占满(04 章基准 + 容量规划);
- 本地 NVMe 当"加速层":训练启动前把数据集分片预取到节点本地(或 DataLoader 按需缓存),减少 PFS 读压力——对重复读取的数据集收益最大;
- 分层迁移自动化:checkpoint 完成后自动归档对象存储(TTL 策略),训练数据按使用频率在 PFS/NVMe 间迁移——人工搬数据不可持续。
第四段:选型决策流程
训练数据集规模/访问模式
├─ 海量冷数据/归档 → 对象存储
├─ 高并发共享读(训练主负载)→ 并行文件系统
├─ 单机高频小数据 → 本地 NVMe
└─ 多级组合:对象(源) + PFS(工作) + NVMe(缓存) ← 生产推荐判断依据:容量、并发度、访问频率、共享性四个维度对着表选;不要用"贵的就是对的"选型。
选型检查清单
- [ ] 数据集归档在对象存储,不占 PFS 热容量
- [ ] 训练工作副本与 checkpoint 在并行文件系统(高并发读写验证过)
- [ ] 热数据/缓存层用本地 NVMe,预取机制就绪
- [ ] checkpoint 自动归档(TTL 策略),PFS 容量监控告警
- [ ] 分级迁移自动化,人工搬数据流程已消除
- [ ] 各层容量/成本口径统一,纳入 02 章算力规划总账
工程启示
- 没有全能存储,只有合理分工:本地 NVMe、并行文件系统、对象存储各管一段数据流,组合才是生产架构;
- 按数据流选型,不按品牌选型:先画"数据从哪来到哪去",每条路径对照特征选层,选型自然清晰;
- 自动迁移是分层的灵魂:没有自动化的分层等于没分层——TTL 归档与预取机制要随架构一起落地。
下一篇预告:存储方案定了,装机流水线要能支撑规模化交付——下一篇《大规模装机流水线:Golden Image 制作、版本管理与灰度上线》拆解镜像工程。