目录
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 卸载

重要

存储选型取决于三个维度:部署环境(公有云/私有云/裸机)、性能要求(IOPS/延迟)、运维能力。公有云首选云厂商 CSI,私有云首选 Ceph-CSI 或 Rook,轻量场景选 NFS-CSI 或 Longhorn。


1. 主流 CSI 插件概览

插件存储类型部署复杂度性能适用场景
云厂商 CSI(EBS/Disk/PD)公有云
Ceph-CSI(RBD/CephFS)块/文件私有云、大规模
Rook + Ceph块/文件/对象中(自动化部署)私有云、不想手动运维 Ceph
NFS-CSI文件简单文件共享、小规模
Longhorn轻量级分布式存储、Rancher 环境
OpenEBS块/文件容器原生存储、多后端
TopoLVMLVM 本地存储、高 IOPS
Vitastor高性能块存储、Ceph 替代

2. 横向对比

2.1 功能对比

功能Ceph-CSILonghornOpenEBSNFS-CSITopoLVM
动态供应
快照
克隆
在线扩容
拓扑感知
多节点读写(RWM)✅(CephFS)❌(RWO)❌(RWO)❌(RWO)
数据冗余✅(多副本)✅(多副本)取决后端❌(依赖 NFS)❌(单节点)

2.2 性能对比

插件延迟IOPS吞吐说明
Ceph RBD块设备,接近裸盘性能
Ceph CephFS文件系统,有元数据开销
Longhorn基于网络复制,有额外开销
OpenEBS cStorZFS 后端
NFS-CSINFS 协议开销 + 网络延迟
TopoLVM极低极高本地 LVM,无网络开销

2.3 运维对比

维度Ceph-CSIRook+CephLonghornOpenEBSTopoLVM
部署手动装 Ceph 集群Rook 自动部署Helm 一键Helm 一键Helm 一键
监控Prometheus + Ceph Dashboard内置内置 UI内置需自行配
升级Ceph 版本升级复杂Rook 管理简单简单简单
灾备Ceph 多集群同步Rook 支持备份到 S3取决后端需自行处理
数据恢复Ceph 自愈Rook 自愈自动副本重建取决后端无(本地)

3. 选型决策树

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
部署环境?
  ├─ 公有云
  │    └─ 云厂商 CSI(EBS CSI / Azure Disk CSI / GCE PD CSI)
  └─ 私有云 / 裸机
       ├─ 需要多节点读写(RWM)?
       │    ├─ 是 → Ceph CephFS(Rook 部署)
       │    └─ 否
       │         ├─ 需要数据冗余?
       │         │    ├─ 是
       │         │    │    ├─ 运维能力强 → Ceph RBD(Rook 部署)
       │         │    │    └─ 运维能力一般 → Longhorn
       │         │    └─ 否
       │         │         ├─ 需要极高性能 → TopoLVM(本地 LVM)
       │         │         └─ 简单文件共享 → NFS-CSI

4. 按场景推荐

场景推荐方案理由
公有云生产环境云厂商 CSI原生集成,性能最优
私有云大规模生产Rook + Ceph全功能(块/文件/对象),数据冗余
私有云中等规模Longhorn部署简单,内置 UI,Rancher 原生
数据库(高 IOPS)TopoLVM本地 LVM,无网络开销
简单文件共享NFS-CSI最简方案,无需额外集群
CI/CD 临时存储OpenEBS(localpv)轻量,Pod 删除即回收
跨集群灾备Ceph-CSI(多集群同步)Ceph 原生支持多集群

5. 常见坑

说明解决方案
RWO 误用为 RWM块存储只支持 RWO,多 Pod 挂载同一 PV 会导致数据损坏需要共享读写用 CephFS 或 NFS
Local PV 无冗余节点故障数据丢失只用于可重建的数据(缓存、日志)
Ceph PG 不均衡PG 数量未按 OSD 比例配置,导致部分 OSD 过载根据 OSD 数量计算 PG(pgcalc 工具)
NFS 性能瓶颈NFS 单点 + 网络开销,高并发时延迟剧增用 CephFS 或 Longhorn 替代
快照占用空间快照不是零成本,Ceph 快照会占用 OSD 空间定期清理旧快照,设置保留策略
扩容后文件系统未扩展ControllerExpand 成功但 NodeExpand 未执行确认 CSI 插件支持 NodeExpand,kubelet 版本 ≥ 1.16

参考链接

分享

Hex
作者
Hex
CloudNative Developer