分布式存储未来趋势:从存算分离到智能化分层调度
发布时间:2026/10/9 17:25:10 锦皓数字建站

1. 从容量焦虑到架构焦虑分布式存储今天真正的问题分布式存储这个话题几乎每个做大数据的人都能聊两句。但说实话过去两三年里行业内对这个领域的讨论正在悄悄变味——早几年大家关心的是“怎么把几百台机器的磁盘池化成一个大的存储空间”现在更多人问的是“这个存储能不能扛住混合负载”“AI训练的数据集还能不能放在上面”“跨集群调度时数据访问会不会成为瓶颈”。这种变化不是偶然的。谈分布式存储的未来趋势如果还停留在容量、副本数、扩容这些基础词上就有点跟不上节奏了。真正值得关注的是整个存储系统在大数据链路里扮演的角色发生了根本性的位移。先说一个我自己的观察。早期做大数据平台存储选型基本是HDFS为主偶尔加个Kafka做缓冲、Redis做缓存用得顺手就行。但到了今天同样的架构图拿给人看大概率会被质疑为什么还在用三副本为什么数据湖和数仓的数据要搬来搬去混合负载下读写延迟怎么保证这些质疑背后其实是三个正在发生的深层变化。第一数据规模已经不纯是“大”的问题而是“不均匀”的问题。冷热数据之间的差距越来越大热点分区的访问量和其他分区完全不在一个量级上。存储系统如果还是无差别地对待所有数据要么为冷数据白白耗电要么在热数据上性能不够两头不讨好。第二访问模式变了。以前主要是写一次读多次的批处理逻辑现在流批一体、实时查询、机器学习特征读取、甚至交互式分析全都压在同一个存储底座上。这已经不是传统文件系统语义能轻松覆盖的场景了。第三存储和计算的关系正在被重新定义。过去是“数据不动计算动”计算任务跑到数据所在节点去执行。现在数据越来越多地跨集群流动存算分离成了大趋势存储系统必须像一个独立的基础设施一样对上层的各种计算引擎保持中立同时还要在性能上做到不拖后腿。落到技术上我自己的判断是未来三到五年分布式存储会有几个比较清晰的发展方向而且这些方向不是孤立的它们会互相咬合。2. 架构演进的主线自研存储成本的临界点已经变了很多人聊分布式存储趋势第一时间想到的是Ceph、MinIO这些开源项目会怎么发展。我的看法不太一样我觉得更值得关注的是业界对“自研存储”态度的转变。前几年自研存储几乎是大厂专属。普通公司想都不用想直接用开源方案顶多做点二次开发。但现在这个临界点已经在移动了。为什么因为围绕存储的周边成本涨得太快了。2.1 开源软件不等于免费人力成本与定制成本倒挂用开源存储表面上省了License费用但在大规模落地时你依然逃不掉这几个问题遇到bug要自己定位、性能达不到预期要自己调优、和上层计算引擎的适配要自己开发。这些问题不是一个运维工程师能解决的需要的是一个能看懂Raft源码、理解底层IO路径、甚至能改文件系统代码的团队。这种团队的年成本比很多商业存储的订阅费用还高。我自己见过不止一个团队一开始抱着“反正开源”的心态上了Ceph结果集群规模上来之后运维复杂度远超预期最后要么花更高的价钱去采购商业支持要么硬着头皮自己养一个存储内核团队。这条路的成本曲线本质上和自研已经没区别了。2.2 分层解耦的架构红利计算无状态化正在放大存储的价值另一个推动自研/深度定制成为常态的因素是计算无状态化。现在的Spark、Flink、Presto这些引擎基本都在往弹性伸缩、秒级启停的方向走。计算节点可以随便杀但如果数据访问还是要走固定IP、固定挂载点、固定副本位置那弹性就打了折扣。存储系统要配合这种趋势就不得不暴露更多的控制接口、更灵活的调度策略、更透明的数据分布。这些东西开源软件不是不能做但做起来往往是“每家有每家的玩法”标准化程度很低与其在别人的框架里缝缝补补不如根据自己的场景直接定制。2.3 我亲历的一个真实案例存储架构改造带来的收益说个我参与过的具体项目。那是一个中等规模的数仓平台存储层原本用的是通用分布式文件系统数据量在几百TB的时候一切正常但到了PB级几个问题同时爆发了小文件太多导致NameNode压力大、冷数据占着热节点资源、跨机房容灾的带宽成本居高不下。我们当时做了一个非常务实的改造没有推翻重来而是把存储层拆成三层热数据放在自研的、针对大文件优化过的分布式存储上冷数据沉降到对象存储中间加了一层异步迁移的调度。这个改造之后存储成本降了差不多三分之一热数据的读写延迟反而比原来更稳定。这件事给我的启发是未来的分布式存储不一定是“一个万能的池子”而更可能是“多个不同特性的存储引擎被一套统一的调度和元数据层管起来”。3. 存算分离之后缓存层凭什么越来越重要存算分离这个概念已经提了好几年落地也很多。但真正被低估的是存算分离之后缓存层的位置。很多人以为存算分离就是把存储丢到远端计算本地化就完事了。实际上如果没有一个强力的缓存层存算分离的性能表现会非常难看。3.1 为什么网络不再是瓶颈缓存算法的价值超过硬件升级以前大家顾虑存算分离最大的理由是网络带宽。现在25GbE、100GbE网卡普及之后裸传输的带宽瓶颈已经大幅缓解。真正卡脖子的反而成了缓存命中率。同样是100GbE网络如果缓存设计得好热门数据在计算节点本地直接命中远端存储只承担冷数据那延迟体验几乎可以做到和本地盘差不多反过来如果缓存策略一塌糊涂每个任务都去远端拉数据带宽再大也会被打爆。这里的核心是缓存不能只做一个简单的LRU。需要结合数据热度统计、访问模式预测、甚至和上层计算引擎的算子做协同。比如Shuffle数据要不要缓存中间结果要不要缓存这些不是存储层单独能决定的但存储层必须提供足够精细的缓存控制能力。3.2 我从测试中看到的缓存分层逻辑本地盘远端内存SSD我自己实测下来比较靠谱的缓存分层设计是三层结构第一层是计算节点本地的高性能盘容量不用太大放最热的数据第二层是远端内存池放中等热度的数据因为内存的随机访问能力还是远超SSD第三层才是真正的容量层也就是后端的分布式存储。这个三层结构里最容易被忽略的是本地盘的选择。很多人用机械盘做缓存结果命中率上去了但磁盘本身的随机读性能成了瓶颈。后来我们换了NVMe盘做缓存层同样的存储后端整体查询延迟差不多降了一半。这个差距不是网络带来的完全是缓存介质带来的。3.3 缓存一致性与分布式事务的权衡加了缓存层之后最头疼的问题就是一致性。存储端数据更新了缓存里还是旧数据怎么办业界常见做法是缓存失效广播但细究下来失效广播的延迟、可靠性、和存量连接的维护每个都是坑。我个人的经验是不要追求缓存和主存储之间的强一致而是要根据业务容忍度来设计。比如数仓场景分钟级的数据可见性延迟完全可以接受那就用异步失效的策略成本低很多。但如果是金融风控这种场景一致性要求高那就不能依赖缓存直接走主存储读或者用一致性协议更严格的缓存方案。存算分离的架构不等于所有场景都该套同一个模板。4. 数据治理正在下沉存储层不得不承担的“新任务”再聊一个可能和很多人直觉相反的趋势。过去我们讲数据治理脑子里浮现的都是数据目录、血缘关系、权限审批这类偏上层的系统。但最近两年一个明显的信号是数据治理的一些核心能力正在逐渐下沉到存储层。4.1 元数据湖的兴起让存储自己“理解”数据传统的分布式存储元数据管的是目录、文件、块这些层级。但现在的湖仓一体架构里我们希望存储层能直接感知到表、分区、列甚至文件内部的统计信息。这样做的直接好处是查询优化器在做分区裁剪时不用再去调用外部的元数据服务直接从存储层就能拿到过滤条件对应的数据范围。这个趋势下出现了元数据湖的概念。也就是说元数据本身也在用分布式存储来管理但它的组织结构、索引方式、缓存策略和普通数据是完全不同的。谁能在这套元数据系统上做到低延迟、高扩展、和计算引擎深度适配谁就能在下一轮的湖仓一体竞争里占住位置。4.2 存储层参与数据分类分级安全不再是“外挂”还有一个变化是安全能力正在从外部系统往存储层内部迁移。以前要做敏感数据识别、分类分级都是定期跑一个扫描任务把数据读出来分析一遍。这个模式的问题在于数据量一大扫描任务本身就是巨大的计算负担。更好的做法是让存储层在数据写入的时候就能做一些基础判断结合文件路径、表结构、甚至是内容识别的轻量采样结果自动打上标签。查询的时候存储层根据标签直接做拦截或者脱敏不需要把数据全部返回给上层再判断。等于说数据安全从“事后补”变成了“写入即治理”这个转变对整个大数据链路的影响会非常深远。4.3 从“存文件”到“存语义”存储系统的抽象层级在上升把上面这些放在一起看结论就很清晰了未来的分布式存储不再只是一个“存文件的地方”它需要理解数据的语义参与数据的生命周期管理甚至在计算查询下发之前就完成一部分过滤和优化工作。要做到这一点存储系统和计算引擎的接口协议会变的更加复杂不再是简单的读写文件而是一种面向数据集的操作语义。比如“扫描这个分区里满足某个过滤条件的前100条记录”这种操作如果能下推到存储层会让查询效率发生质变。5. 未来几年值得押注的几个具体方向我的选型与规划参考聊完趋势总得落到实操层面。不管你是做技术选型的架构师还是正在规划下一阶段存储架构的技术负责人下面这几个方向我认为是未来两三年真正值得花时间研究的。5.1 闪存介质成本的持续下探全闪存储不再是奢侈品在过去全闪存存储是高性能场景的专属成本高到大多数团队不敢碰。但这两年QLC闪存颗粒的成本下降非常快大容量QLC盘的每GB成本已经接近机械盘而性能却高出一个数量级。这个趋势会直接改变分布式存储的使用方式。我是这么看的未来的热数据层用全闪存而不是机械盘会成为一个默认选择。哪怕是容量型节点也会越来越多地采用QLC盘做主力介质机械盘退居到温冷归档层。存储系统的性能瓶颈将从“介质能不能扛住”逐步转向“软件栈能不能把介质的潜力完全发挥出来”。换句话说同一个NVMe盘在不同存储系统里跑出来的性能差距会变得比盘本身的代差还要明显。5.2 对象存储的语义增强数据湖的主存储底座正在易主HDFS一统天下的时代已经过去了。现在新建的大数据平台越来越多直接以对象存储作为数据湖底座HDFS反而成了兼容层或者历史包袱。但这个迁移过程中对象存储也必须做出改变——传统的RESTful API在延迟和语义上根本无法满足大数据计算引擎的诉求。未来的对象存储会逐步增加类似文件系统的操作语义比如Append、目录原子操作、甚至文件随机写的支持。同时各大厂商也在推对象存储和计算引擎之间的专属协议比如S3 Express一类的低延迟接入方式本质上就是给对象存储加了一个高性能的旁路。如果你在规划新的数据平台我建议认真评估一下对象存储为主、文件存储为辅的架构而不是继续默认“所有数据都放HDFS”。5.3 更智能的温冷数据分层调度存储成本省出来的都是利润很多公司的存储账单一大部分都花在了冷数据上。数据写完之后再也没人访问却依然占着副本、占着节点、占着机柜。存储系统的分层调度能力会是未来成本控制的关键。理想的分层方式应该是系统自动根据访问热度、时间衰减规律、甚至业务属性把数据在热-温-冷三层之间自动迁移。迁移动作本身要无感、无中断、且成本足够低。这方面已经有了不少好的实践比如用分布式存储生命周期策略异步归档的组合把冷数据对象化后沉到归档存储里。规划存储架构时建议把“数据分层调度”作为一等公民来设计而不是事后补丁。5.4 计算引擎与存储协议的协同设计避免“两层两套话”最后一个建议比较抽象但可能是最关键的计算引擎和存储协议之间应该做协同设计。举一个场景在Spark Shuffle时计算框架需要把中间结果写到存储然后用完立刻删除。如果存储系统能感知这种临时数据的生命周期直接把它放在高性能介质上并且不参与备份和容灾那Shuffle的性能会有质的提升。反之如果存储系统对临时数据和持久数据一视同仁那既是性能浪费也是容量浪费。类似的协同还包括谓词下推、索引适配、甚至数据本地性调度。未来分布式存储的竞争力不只看它自己的性能指标更看它和主流计算引擎之间的“默契程度”。这也是为什么我认为属于纯通用存储的时代正在结束属于“面向场景深度优化”的定制化分布存储的时代正在到来。落实到自己的团队我觉得可以在三个方向上做提前布局一是跟踪全闪存储和对象存储增强的技术趋势二是把缓存层和分层调度能力当作核心组件来设计和投入三是保持存储与计算协同的敏感度在新项目启动时多花一点时间在设计阶段的架构评审上而不是等性能出问题再补救。这条路没有标准答案但大方向已经足够清晰了。希望这篇分享能给你一些实在的参考。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。