目录
Please enable Javascript to view the contents

K8s存储-云原生存储演进与展望

 ·  ☕ 4 分钟

系列导航

本系列从 K8s 存储模型入手,逐步展开到 CSI 插件实现与云原生存储全景。

① 概念 → ② Volume 生命周期 → ③ CSI 架构 → ④ FlexVolume 演进 → ⑤ 对比 → ⑥ 排障 ‖ ⑦ 开发 → ⑧ 高级特性 → ⑨ 演进展望

顺序文章定位
概念与入门基础——K8s 存储模型、PV/PVC/StorageClass
Volume 生命周期全解析全貌——两阶段处理、动态/静态供应
CSI 架构详解标准——gRPC 三服务、Sidecar 模式
FlexVolume 与 CSI 演进演进——FlexVolume 原理、CSI 设计思想
存储方案对比与选型选型——主流 CSI 插件横向对比
排障思路与常用命令运维——工具链 + 场景排查
核心路径 ↑扩展展望 ↓
CSI 插件开发指南扩展——从零开发一个 CSI 插件
高级特性详解进阶——快照、克隆、扩容、拓扑感知
本篇 - 云原生存储演进与展望展望——容器原生存储、DPU 卸载、未来方向

重要

云原生存储正从"为容器适配外部存储"向"为容器设计原生存储"演进。三个方向:容器原生存储(Longhorn/Mayastor)、硬件卸载(DPU/SmartNIC)、Serverless 存储(无 Pod 感知)。


1. 容器原生存储

1.1 传统 CSI 的问题

传统 CSI 插件(Ceph-CSI、NFS-CSI)是把外部存储系统适配到 K8s。存储集群独立部署、独立运维,CSI 只做"翻译层"。

问题:

问题说明
运维复杂需要分别维护 K8s 集群和存储集群
资源浪费存储节点可能只跑存储服务,资源利用率低
故障域不统一存储故障和 K8s 故障定位割裂

1.2 容器原生方案

方案说明特点
Longhorn每个 Volume 由一组 Pod 管理副本轻量、Rancher 原生
OpenEBS Mayastor基于 SPDK 的高性能块存储用户态 I/O,绕过内核
Rook + CephCeph 作为 K8s CRD 管理自动化运维 Ceph
Linstor/DRBD内核态块复制低延迟、高性能

2. 硬件卸载:DPU / SmartNIC

2.1 问题

CSI 插件的 Node Service 运行在节点上,执行 mount/umount/格式化等操作,消耗 CPU。高密度节点(100+ Pod)的存储操作开销不可忽视。

2.2 DPU 卸载

维度传统(CPU 处理)DPU 卸载
I/O 路径应用 → 内核 → 网卡应用 → DPU → 网络
CPU 消耗mount/格式化/加密消耗 CPUDPU 专用核心处理
延迟内核协议栈开销用户态/硬件直通
产品厂商说明
NVIDIA BlueFieldNVIDIADPU + SmartNIC,支持 NVMe-oF 卸载
Intel IPUIntel类似 DPU,支持存储卸载
AMD PensandoAMDDPU + 可编程网络

2.3 CSI 与 DPU 的结合

CSI 插件的 Node Service 可以运行在 DPU 上,而不是节点的 CPU 上。Volume 的 Attach/Mount 操作由 DPU 完成,节点 CPU 零消耗。


3. 存储与 Serverless

3.1 趋势

Serverless / FaaS(如 Knative、OpenFaaS)不管理 Pod 生命周期,存储挂载由平台自动处理。传统 CSI 的两阶段处理(Attach + Mount)对 Serverless 来说太慢。

3.2 方向

方向说明
快路径 Attach预 Attach 到所有节点,Pod 启动时只做 bind mount
网络文件系统优先NFS/CephFS 无需 Attach,直接 Mount,适合 Serverless
Volume Cache在节点本地缓存远程 Volume,减少冷启动延迟

4. 当前未解决的问题

问题现状影响
跨集群 Volume 迁移无标准方案,需手动操作多集群灾备困难
RWM 块存储块存储原生只支持 RWO共享读写需文件系统层
存储 QoSCSI Spec 无 QoS 接口无法限制单 Pod IOPS
快照一致性组多 Volume 同时快照无标准数据库主从一致性备份难
Volume 细粒度计费CSI 不返回 IOPS/吞吐指标存储成本分摊困难

5. 未来方向

方向说明预计成熟时间
NVMe-oF 原生 CSI直接使用 NVMe-oF 协议,绕过 iSCSI/FC1-2 年
DPU 存储卸载CSI Node Service 运行在 DPU 上2-3 年
Volume Replica(跨节点副本)CSI Spec 原生支持多副本(类似 Longhorn)讨论中
存储服务网格类似 Service Mesh,Sidecar 代理存储 I/O3-5 年
ZNS(Zoned Namespace)SSD按区域写入,减少 GC 开销2-3 年

6. 系列总结

本系列从 K8s 存储模型出发,覆盖了以下内容:

文章核心内容
① 概念与入门PV/PVC/StorageClass 三层抽象、Volume 分类树
② Volume 生命周期两阶段处理(Attach+Mount)、动态供应、回收策略
③ CSI 架构gRPC 三服务、Sidecar 模式、完整调用链
④ FlexVolume 与 CSI三代演进、FlexVolume 局限、CSI 优势
⑤ 对比与选型8 个主流插件横向对比、选型决策树
⑥ 排障按 PVC Pending / Pod ContainerCreating / PV 无法删除 等场景排查
⑦ 开发指南Go 骨架代码、三服务实现、部署模式
⑧ 高级特性快照、克隆、扩容、拓扑感知
⑨ 演进与展望容器原生存储、DPU 卸载、Serverless 存储、未解决问题

核心路径串起来就是:存储怎么工作 → Volume 怎么挂载 → CSI 怎么实现 → 怎么演进 → 怎么选 → 怎么查。
扩展篇适合读完核心路径后,有兴趣再深入:自己开发 → 高级特性 → 未来方向。


参考链接

分享

Hex
作者
Hex
CloudNative Developer