尧图精选

AI存储瓶颈破局:解耦存储如何优化训练数据底座

🕒 发布时间:2026/10/2 3:38:24 📁 来源:尧图网络
在AI项目里待久了你会发现一个反常识的现象GPU很贵、显眼几乎所有预算和注意力都花在算力上但真正让训练任务“卡住”的往往不是算力而是存力。去年我帮一个做多模态训练的团队调存储千亿参数模型跑起来算力利用率看着还行但每到checkpoint阶段几百GB的权重文件一写就是几十分钟期间所有训练卡都蹲在原地等I/O。换了一批支持分区管理的新一代企业级SSD、再把冷热数据分层做了调整之后情况才算稳下来。也正是从那个阶段开始我特别留意西部数据提出的“解耦存储”这条路线。最近他们把这套范式作为面向AI时代的核心策略来推我的第一反应是方向对了但很多人可能还没完全搞懂“解耦”到底解耦了什么、对AI数据底座意味着什么。这篇文章我不打算写成厂商通稿而是以一个实际摸过存储、排过I/O瓶颈的人的身份把这条技术路线拆开聊一聊顺便把可落地的设计思路和踩坑经验也一并写出来。1. 先聊清楚一件事AI时代存储到底难在哪1.1 大模型训练的真实存储负载远超你想象的复杂很多人一想到AI存储第一反应就是“带宽不够上NVMe”。真实情况远不是这么简单。一个典型的大模型训练项目从数据到模型产出存储侧要扛的任务至少有四块。第一块是数据摄入与清洗。原始语料、图像、视频、文档从各种来源往对象存储或本地盘上灌量级从几十TB到PB以上。这个阶段的特点是顺序写为主、吞吐要求高偶尔夹杂大量小文件读。第二块是数据预处理和tokenization。数据要被清洗、去重、切分、转成训练格式会生成大量中间产物。这一步最麻烦的是小文件特别多随机读和顺序写混在一起对存储的IOPS和元数据能力都是考验。第三块是训练过程中的checkpoint保存。以千亿参数模型为例一份全量权重加上优化器状态、学习率调度等轻轻松松几百GB。训练端到端保存一次如果底层SSD正在做垃圾回收等待时间会被明显拉长。第四块是推理与评测阶段的模型权重读取、KV cache和日志写入。这四个流程里最容易出问题的恰恰不是峰值带宽而是“长尾延迟”。训练任务不是匀速跑I/O的平时可能很闲一到checkpoint就突然爆发式写入写完之后马上又要读回来。存储系统在这种突发负载下只要掉一次速GPU集群就只能在原地白白等待电费照烧、时间照耗。1.2 传统存储架构在AI负载下的三个“卡点”要理解解耦存储为什么被提出来得先看清传统存储架构在AI负载下到底卡在哪。我把它归结为三个核心矛盾。第一个矛盾是写放大。NAND闪存有寿命限制TLC颗粒通常在一千到一千五百次PE左右QLC更是只有几百次。而且闪存不能覆盖写只能先擦除再写入擦除以块为单位块又比页大得多。当数据反复更新时SSD内部的垃圾回收GC要把有效数据搬来搬去实际写入NAND的数据量会比用户实际写入的数据量大好几倍这个倍数就是写放大系数。AI训练这种高频checkpoint加随机更新的负载写放大系数往往比普通数据库场景还难看。第二个矛盾是GC风暴带来的长尾延迟。传统SSD内部的FTL闪存转换层什么时候搬数据、怎么搬盘自己决定用户完全不知道也没法干预。一旦盘内GC动作撞上checkpoint写入延迟翻几倍甚至几十倍都是常事。训练任务不会因为存储抖动就跳过保存于是整集群都在等。第三个矛盾是能力与成本的错配。全都上高端NVMePB级数据集的采购成本直接失控没有哪个团队能接受全用大容量HDD又扛不住训练阶段的高带宽和低延迟。传统的冷热分层只是“把数据放在最贵的盘和便宜的盘上”这种粗粒度操作中间大量本可以高效调度的空间被白白浪费。1.3 “解耦”的真正含义把黑盒打开一个窗口解耦存储这个词听起来很学院派其实用人话讲就一件事把数据放置、地址映射、介质调度的控制权从封闭固件里分一部分出来交给主机软件层和操作系统。传统SSD对上层的呈现方式就是一块黑盒。应用往里写数据盘内固件自行决定数据落在哪个物理页、什么时候做GC用户既看不见也管不着。黑盒模式在消费品场景里没有任何问题但在AI这种极端工作负载下就成了瓶颈。解耦存储做的事情就是把黑盒打开一个窗口SSD对外暴露自己有多少放置域Placement Domain、多少回收组Reclaim Group、每个域的写入指针在哪里。应用层知道自己写的是热数据还是冷数据、是临时数据还是长期保留数据然后直接告诉SSD这个数据放到哪个域里去。打个比方传统SSD像一个全包式仓库货架怎么摆、仓库怎么理客户一概不知解耦存储就像是仓库管理员给客户划好了分区并且告诉客户每个区的储存条件、摆货规则客户可以自己决定把高周转的爆款放门口、把常年不动的陈货放里仓。各层各司其职、独立演进这就是“解耦”二字的本质。2. 解耦存储的技术骨架从ZNS到FDP2.1 为什么SSD需要让主机看见底细上一节提到FTL是SSD内部的闪存转换层负责逻辑块地址到物理页地址的映射。所有写入最终都会落到NAND物理页上但NAND只能先擦后写擦除以块为单位。数据不断更新后SSD内部会产生大量搬移工作GC也要不断处理无效页回收。如果主机侧完全不了解这些规则就只能把SSD当成一个“猜心思”的黑盒。盘内固件不知道你写的是马上要删的临时文件还是要放半年的冷数据也不知道哪块数据是训练集、哪块是checkpoint只能凭有限的局部信息猜测数据生命周期然后做统一的GC处理。这就像仓库管理员完全不知道包裹什么时候会被取走只能每隔一段时间把所有货架都翻出来整理一遍效率自然上不去。AI负载有个特点它的冷热规律非常明显训练集和当前活跃checkpoint是热数据历史版本和原始语料是冷数据中间还有大量短期就会被废弃的临时文件。如果能把这种生命周期意图直接下放到介质层盘内固件就不用在“猜”字上花力气GC可以按域进行效率翻倍是很自然的事情。这也是为什么行业会从ZNS一路演进到FDP——本质上都在做同一件事让上层表达意图让下层按意图执行。2.2 FDP到底解耦了什么写指针、放置域与回收组FDP全称Flexible Data Placement是NVMe规范里的一项重要特性。它在SSD里定义了多个写入指针把NAND物理资源划分成不同的放置域和回收组。主机发送写命令时可以在命令里带上FDP相关的信息指定这次写入落到哪个域、哪个回收组。清洗一下概念放置域Placement Domain是一个独立的资源池域内包含多个回收组Reclaim Group每个回收组内又有回收单元Reclaim Unit每个回收单元有自己的写入指针。主机在写入时指定“我要写入第几个域的回收单元”数据就会按指定位置落盘。被指定到同一个域的数据天然具备相近的生命周期后续GC做回收操作时只需要搬移同一个生命周期内的数据其它域完全不受影响。这种方式带来的直接好处是三个维度同时改善一是写入放大显著降低因为GC从“全盘清扫”变成了“定点清扫”无效页比例高的域先回收有效页多的域可以完全不动二是GC引发的长尾延迟被限制在单个域内部不会像传统SSD那样全局漂移三是SSD磨损更加均衡QLC这种寿命偏短但容量大的介质也能在更长生命周期内稳定工作。我在实际项目中看到过一些复现数据启用FDP之后某些AI训练负载的写入放大可以下降一半以上P99延迟抖动明显收敛。逻辑上这也说得通检查点数据单独放一个域预处理临时文件单独放一个域临时文件被删除后对应域的GC只需要在自己的小地盘里清扫完全不会波及checkpoint数据所在的大本营。2.3 HDD也没有退场SMR是数据底座的另一半聊到解耦存储很多人只盯着SSD看这其实是个误区。解耦存储是一整套范式不完全等于FDP或ZNS。西部数据的Ultrastar HC系列大容量HDD在这套范式里同样有不可替代的位置。AI数据量的增长速度实在太猛了原始语料、视频素材、历史实验副本、旧版本checkpoint这些数据一旦进入“冷”状态几乎不再被经常访问但你必须保留它们并且最好以最低的成本去保留。这种场景下每TB成本最低的大容量HDD仍然是唯一现实的选择。传统HDD主要靠垂直记录CMR维持性能但叠瓦式磁记录SMR可以把同等物理盘片上的存储密度做得更高让单盘容量上一个台阶。SMR的代价是随机写入能力受限因为它采用类似“叠瓦”的布局覆盖写会波及相邻磁道。但通过分区管理思路让数据按顺序写入、按区回收SMR就能扬长避短。这恰恰就是解耦存储范式的精髓SSD做热层和温层大容量SMR HDD做冷层和归档层上层统一用数据温度逻辑去调度底层各有各的分区管理机制。单看每一块盘它们都在自己的物理限制内做最优解合在一起整套底座的成本曲线和性能曲线就是连续可调的。3. 实操视角一套AI存储底座的设计思路3.1 第一步先给数据分好温度很多团队一上来就问我“该买什么盘”我通常会先反问一句你集群里的数据到底都有谁这里说的“给数据分温度”本质上是把存储需求拆成不同访问频率和生命周期的集合体。按我的经验AI集群的数据至少可以分成四层。热数据正在训练和推理的数据集、当前版本checkpoint、线上特征向量访问频率极高对延迟和带宽都敏感。温数据预处理中间产物、最近几天的checkpoint、实验记录访问频率中等需要保留但不要求极速。冷数据历史数据集、旧版本模型快照、训练日志归档偶尔会被翻出来做回溯分析但大部分时间都在“睡觉”。归档数据项目结束后的完整备份、合规要求的长期留档几乎不访问但有容量和耐久要求。这个分层不是拍脑袋定的它直接决定了后面的容量预算和带宽预算。我记得有个团队最初把所有数据都塞在NVMe SSD上半年过去光是存储成本就占了项目总预算的三分之一而实际每天被读取的数据量可能还不到总量的两成。分层之后容量成本立刻降了一个量级。3.2 第二步按负载特性选型别只看纸面参数分好温度之后选型就有依据了。热层通常选高性能NVMe SSD重点是低延迟、高吞吐、优秀随机读能力。西部数据Ultrastar DC SN861这种面向AI读密集场景的产品就在这一类温层可以选QLC颗粒的大容量SSD核心是把单盘容量做大、写放大控制住冷层和归档层直接上大容量SMR HDDUltrastar HC系列单盘几十TB的容量摆在那每TB成本优势明显。选型时我建议重点盯四个指标而不是只看厂商宣传的顺序读写带宽。一是顺序读带宽决定训练数据拉取速度二是随机读IOPS决定小文件预处理的效率三是写放大系数直接关系到SSD寿命和GC频率四是QoS稳定性尤其是P99延迟AI训练对长尾延迟的容忍度极低。为什么要盯P99而不是P50因为一次checkpoint写入只要遭遇一次GC长尾整个集群都要等。平均延迟再漂亮只要长尾失控训练任务的可用时间就会被打折。这个道理很多做数据库存储的人早就懂了AI场景只是把同样的逻辑重新上演了一遍。3.3 第三步设计一个可落地的存储层次结构选好盘之后不能简单地把它们堆在同一个文件系统里需要按层次组织结构。我以一个典型场景为例假设有一个100卡规模的训练集群数据集总规模200TBcheckpoint每4小时保存一次、每次写200GB。底层冷池直接用大容量SMR HDD几百TB的原始数据放在这里成本压力很小。中层温池放QLC NVMe SSD大概20到40TB规模用于存预处理产物和最近几天的checkpoint。顶层热池用高性能NVMe SSD8TB左右借助几块盘组并行足以支撑训练阶段连续读取数据流和checkpoint写入。数据在层与层之间怎么流动预处理完成后的数据从冷池升到热池训练阶段直接从热池读取checkpoint先落热池保存成功后再异步归档到温池过几天再转冷池。这套机制的关键是“放数据的人不用操心”靠调度策略自动完成。训练流程只面对热池这一个入口底下的迁移逻辑对上层透明。这个层次结构做出来后性能表现非常直观训练阶段的读取带宽由热池扛checkpoint写入由热池加温池配合冷数据的容量成本由HDD兜底。任何单独一层被打爆的几率都大幅降低整体TCO比“全闪方案”友好得多。3.4 落地过程中我踩过的一些坑解耦存储落地坑真不少。我挑几个典型的说一说。第一老内核和老驱动不识别FDP设备。盘插上之后nvme list显示正常但FDP的domain、reclaim group信息读不出来。这个问题的根源通常是内核版本太老或者驱动没有编译FDP相关模块。解决办法是升级内核到新版本并确认对应驱动支持FDP特性。这个前置条件一定要提前确认别等盘到了才发现集群全是老系统。第二分区管理模式的盘不能直接当普通块设备用。ZNS和FDP模式下的SSD有着特殊的写入约束格式化、分区、挂载时都要理解zone属性不能随手mkfs.ext4就完事。如果上层文件系统不理解分区语义某些数据放置优化就发挥不出来。第三FDP不是自动调优工具。上层应用不配合效果等于零。你需要在应用层或文件系统层显式识别数据生命周期再把数据放到不同的域里否则FDP特性相当于摆设。很多团队买完支持FDP的盘装好系统后发现性能变化不大大概率就是卡在这一步。第四别忽略掉电保护。训练集群的checkpoint写一半断电损失的不只是当前数据还有几十个小时的训练进度。企业级SSD都有固件级别的掉电保护PLP消费级盘基本没有这个能力拿消费级盘去扛训练任务赌的是运气。4. 生态演进解耦存储不是盒子里的游戏4.1 软件栈正在赶上但还没有完全追上一个存储范式要真正落地光有硬件远远不够软件生态决定它走多快。这一点在ZNS上已经被验证过初期生态不完善部署成本不低很多团队试过之后又退回老路。FDP继承了分区管理的思路但机制更灵活关注度也明显更高。从我的观察来看Linux内核和文件系统对分区存储的支持这几年确实在加速。新版内核里对zone block device的管理已经比较成熟nvme-cli工具也能方便地查看设备的namespace和FDP信息。文件系统层面像F2FS这类日志结构的文件系统天然适合分段管理适配FDP的难度比传统文件系统低一些。还有一些框架和中间件已经在做更上层的对接可以把“数据该放哪个域”的决策自动化。但生态的成熟还需要时间早期使用者要有“当个明白人而不是盲目追新”的心理准备。4.2 QoS、寿命与TCO算清这笔账从TCO角度重新审视解耦存储会发现它的价值远不止性能数字漂亮。我把这笔账拆开算一下。第一项是寿命提升。写入放大系数低意味着每块SSD在生命周期内可以承接更多用户数据写入单位TB的折旧成本下降。对QLC盘来说这个优势尤其重要因为QLC本来PE次数就少。第二项是算力利用率提升。QoS稳定后checkpoint保存时间可预期训练任务不用动不动就重跑这一项的价值通常被低估。第三项是容量成本结构性下降。冷数据不用再挤在价格昂贵的SSD上而是躺在每TB成本极低的HDD上存储总成本自然降下来。这三项加在一起解耦存储在不同规模的AI项目中都能快速回本。我经常跟朋友说一句话AI项目里存储很少是看得见的贵但几乎所有的“卡住”和“等待”都跟存储有关。把这块补上比省几块GPU的钱更实际。4.3 西部数据两条产品线如何打配合西部数据同时拥有NANDSSD和HDD两条完整产品线这在存储厂商里是比较少见的。SSD这边有Ultrastar DC SN861、SN655等产品线主攻热数据和高性能计算场景强调与AI工作负载的适配HDD这边有Ultrastar HC系列提供超大容量加低TCO的温冷层存储。两条线共同推进分区管理思路SMR把顺序写入、分区回收用在HDD上FDP/ZNS把数据放置控制权开放给主机端、用在SSD上。这两条线形成了一个统一的“数据温度调度体系”。从战略角度看这确实是一个完整的AI数据底座叙事热数据用高性能SSD跑起来温冷数据用大容量HDD存起来中间用统一的解耦范式做调度省下的是真金白银提升的是算力有效利用率。5. 关于解耦存储我最后想说的几句实在话这篇文章写到这里我特别想澄清一个误区解耦存储不是一个能靠“买一块盘”就解决的硬件升级它是一整套关于如何组织数据、如何表达意图、如何让存储和计算协同的范式转换。我在实际项目里的体会是AI存储设计永远要跟着数据生命周期走不是所有数据都配得上最贵的盘也不是所有数据都适合塞进最便宜的盘。真正的数据底座是能让每一TB数据都以最合理的成本、放到最合适的位置。西部数据这次把SSD和HDD两条产品线拧成一个“解耦存储”的思路我认为方向是对的但对绝大多数团队来说落地还需要更多软件工具、自动化调度组件和社区案例来支撑。如果你正在跑大模型训练或者正被checkpoint保存时间长、存储成本居高不下这类问题困扰我建议你把FDP支持和分层存储纳入选型需求。别等到集群规模长大了再来折腾存储架构那才是真的伤筋动骨。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →