lolspider / notes
Clipping · 9 分钟

OpenEBS vs Longhorn 深度对比

OpenEBS vs Longhorn 深度对比

调研时间:2026-07-26 | 数据来源:OpenEBS v4.5.x 官方文档 + Longhorn v1.12.0 官方文档

概览速查

维度 OpenEBS Longhorn
定位 CAS/CNS 容器原生存储,多引擎可选 轻量分布式块存储,每卷独立 Engine
CNCF 状态 CNCF 项目(Sandbox) CNCF 孵化项目(Incubating)
发起方 MayaData(已捐赠 LF) Rancher Labs / SUSE
最新稳定版 v4.5.x(2026-06-06) v1.12.0
复制引擎 Replicated PV Mayastor(SPDK/NVMe-oF TCP) V1 Engine(iSCSI)+ V2 Engine(SPDK/NVMe-TCP,GA)
Local 引擎 Hostpath / LVM / ZFS / Rawfile(实验) 无独立 Local 引擎,靠 dataLocality 近似
最低节点 3(Mayastor) 3
最低 K8s 1.23+ 1.25+(v1.12.0)
RWX 通过 NFS 后端 通过 share-manager NFSv4 Pod
加密 Mayastor encrypted=true / LUKS / ZFS LUKS + K8s Secrets(支持全局/每卷密钥)
备份目标 S3/GCS/MinIO(Velero 插件) S3/Azure Blob/NFS/SMB/MinIO(原生 backupstore)
跨集群灾备 无原生 DR Volume DR Volume(增量同步 standby 卷)
语言 Rust(Mayastor)+ Go(控制面) Go

1. 项目定位与背景

OpenEBS

OpenEBS 是容器原生存储(Container Attached Storage / Container Native Storage)范式的代表实现。核心思想:存储控制器以微服务容器形式运行,由 Kubernetes 编排,每个卷拥有独立的容器化控制器与副本,实现 per-volume 隲离。来源

4.x 是重大重构版本:旧的 cStor、Jiva 引擎已完全移除,唯一的复制引擎变为基于 SPDK + NVMe-oF TCP 的 Replicated PV Mayastor。Local 引擎保留 Hostpath、LVM、ZFS 三条成熟路线 + Rawfile(实验性)。来源

Longhorn

Longhorn 是轻量、可靠、易用的分布式块存储系统。核心思想:将大型存储控制器拆解为每个卷一个微服务化 Engine,在多节点同步复制数据。所有控制器和副本自身通过 Kubernetes 编排管理。来源

v1.12.0 最重要的里程碑:V2 Data Engine 正式 GA,基于 SPDK 用户态驱动框架提供更高性能潜力。来源


2. 架构对比

架构模型

plaintext
OpenEBS (CAS 范式):
┌───────────────────────────────────────────────────┐
│  Control Plane (CSI driver + Provisioner)         │
│  ┌─────┐  ┌─────┐  ┌─────┐                       │
│  │PV-A │  │PV-B │  │PV-C │  ← per-volume 隲离     │
│  │NVMe │  │NVMe │  │Host │                        │
│  │target│  │target│  │path │                       │
│  └─┬─┬─┘  └─┬─┬─┘  └───┘                        │
│    │ │      │ │     (Local: 数据路径无开销)         │
│  repl-1..3  repl-1..3                              │
│  (跨节点同步复制)                                   │
└───────────────────────────────────────────────────┘

Longhorn (每卷独立 Engine):
┌───────────────────────────────────────────────────┐
│  Control Plane (Longhorn Manager DaemonSet)        │
│  ┌──────────┐  ┌──────────┐                       │
│  │Engine-A  │  │Engine-B  │  ← 每卷 1 Engine       │
│  │(iSCSI or │  │(NVMe-TCP │                       │
│  │ NVMe-TCP)│  │ or blk)  │                       │
│  └─┬──┬──┬─┘  └─┬──┬──┬─┘                        │
│  r1  r2  r3    r1  r2  r3  ← 同步副本              │
│  (sparse file  (sparse file                        │
│   + read index)  + read index)                     │
└───────────────────────────────────────────────────┘

核心组件对比

组件 OpenEBS Longhorn
控制面 CSI driver + Provisioner + 各引擎 Operator Longhorn Manager DaemonSet(每节点 1 Pod)
数据面(复制) Mayastor IO-engine Pod + NVMe-TCP target V1: Engine 进程 + iSCSI target;V2: SPDK bdev + NVMe-TCP/block
数据面(Local) Hostpath/LVM/ZFS CSI driver(无附加进程) 无独立 Local 引擎
磁盘管理 DiskPool CR(Mayastor)/ 节点预建 VG/ZPOOL Longhorn Manager 自动发现节点磁盘
UI 无原生 UI(靠 Prometheus/Grafana) 内置 Web UI

3. 存储引擎/模式对比

OpenEBS 引擎全景

引擎 类型 副本 Thin 快照 克隆 扩容 性能 最佳场景
Local PV Hostpath Local ❌ ✅ ❌ ❌ ❌ ⭐⭐⭐⭐⭐ 自管 HA 的分布式 DB
Local PV LVM Local ❌ ✅ ✅ ❌ ✅ ⭐⭐⭐⭐ 需快照/扩容的本地高性能
Local PV ZFS Local ❌ ✅ ✅ ✅ ✅ ⭐⭐⭐ 需克隆/数据完整性
Local PV Rawfile Local ❌ — — — — — 实验
Replicated PV Mayastor Replicated ✅ ✅ ✅ ✅ ✅ ⭐⭐⭐⭐⭐ NVMe SSD + 低延迟 + 复制

来源:Data Engines

Longhorn 引擎对比

维度 V1 Engine V2 Engine(v1.12.0 GA)
Frontend iSCSI target NVMe-TCP / Block Device / UBLK(实验)
数据路径 内核 iSCSI 栈 SPDK 用户态(zero-copy)
性能 写受限(iSCSI + 同步复制开销) 更高吞吐/更低延迟潜力
CPU 需求 默认 12% allocatable per node 专用 1~2 core + 12% allocatable
内存 每卷 read index(1TB ≈ 256MB) 同 + 2GiB HugePages per node
Backing Image ✅ ❌(改用 CDI)
Strict-local ✅ ❌
Live Upgrade ✅ ❌(patch 版间需 detach)

来源:Longhorn Concepts

关键差异

OpenEBS 独有 Local 引擎:应用自管 HA(如 Cassandra/MongoDB)时可选择纯 Local 引擎获得近磁盘性能,数据路径上零 OpenEBS 开销。Longhorn 无此选项——所有卷都走 Engine 进程。

Longhorn 独有 V1/V2 双引擎:V1(iSCSI)成熟稳定,V2(SPDK)性能更强但限制更多。OpenEBS 的 Mayastor 类似 Longhorn V2,均基于 SPDK/NVMe-oF。


4. 核心功能对比

4.1 副本与高可用

功能 OpenEBS Mayastor Longhorn
副本数 repl=1/2/3(SC 参数) numberOfReplicas=1/2/3(SC 参数)
同步复制 NVMe-oF TCP 同步 V1: iSCSI 同步;V2: SPDK 同步
故障容忍 repl=N 容忍 N-1 节点故障 同
自动重建 ✅(副本故障自动重建) ✅(自动重建 + 可配 auto-balance)
跨 AZ ✅ ✅
副本重平衡 无原生 auto-balance ✅ least-effort / best-effort 两种模式
节点 drain 保护 无原生 Node Drain Policy ✅ 5 种 Drain Policy(默认阻止最后副本节点 drain)

Longhorn 在运维自动化方面更成熟:副本重平衡、节点 drain 保护策略、磁盘压力阈值触发迁移等。

4.2 快照与备份

功能 OpenEBS Longhorn
CoW 快照 ✅(Mayastor + LVM/ZFS) ✅(快照链,最多 254/volume)
克隆 ✅(Mayastor + ZFS) ✅
Velero 集成 ✅(OpenEBS Velero-plugin) ❌(原生 backupstore 不依赖 Velero)
原生备份 ❌(需 Velero 中转) ✅(backupstore: S3/Azure Blob/NFS/SMB)
增量备份 ✅(Velero 级) ✅(2MB 块级增量 + checksum 共享 + 压缩)
定时备份 ❌(需 Velero Schedule) ✅(Recurring Jobs:7 种任务类型)
跨集群 DR ❌ ✅(DR Volume: standby 卷持续增量同步)

Longhorn 的备份/灾备体系更完整:原生 backupstore + 定时备份 + 跨集群 DR Volume,无需依赖 Velero。

4.3 扩容与加密

功能 OpenEBS Longhorn
在线扩容 ✅(Mayastor/LVM/ZFS) ✅(V1 v1.4+, V2 v1.10+)
缩容 ❌ ❌
加密 Mayastor encrypted=true;Local: LUKS/ZFS LUKS + K8s Secrets(全局/每卷密钥)
加密算法 Mayastor 内部 aes-xts-plain64 + SHA256 + Argon2i/PBKDF2

4.4 RWX(ReadWriteMany)

两者均通过 NFS 实现 RWX,但机制不同:

维度 OpenEBS Longhorn
机制 外部 NFS 服务器 + OpenEBS PVC 作为后端 share-manager Pod 内置 NFSv4 服务器
数据路径 Pod → NFS Server → OpenEBS PV → 磁盘 Pod → NFS Service → share-manager Pod → Engine → 副本
迁移 依赖外部 NFS migratable RWX(KubeVirt VM live migration)

5. 部署与运维对比

5.1 前置要求

要求 OpenEBS Mayastor OpenEBS Local Longhorn V1 Longhorn V2
内核 ≥5.13(推荐 5.15+) 无特殊要求 无特殊要求 ≥5.19(推荐 ≥6.7)
HugePages 2GiB 2MiB-pages 无 无 2GiB 2MiB-pages
iSCSI ❌ ❌ ✅ open-iscsi ❌
NVMe-TCP ✅ nvme-tcp 模块 ❌ ❌ ✅ nvme_tcp 模块
最低 CPU 2核/IO-engine 无 12% allocatable/node 1~2 dedicated + 12%
最低内存 1GiB + 2GiB HP/IO-engine 无 4GiB/node 4GiB + 2GiB HP/node
节点数 ≥3 ≥1 ≥3 ≥3
磁盘预配 DiskPool CR(一池一盘) Hostpath/VG/ZPOOL 自动发现 wipefs -a 后自动发现

5.2 安装方式

bash
# OpenEBS
helm install openebs openebs/openebs --namespace openebs --create-namespace
# 仅 Local:--set engines.replicated.mayastor.enabled=false

# Longhorn
helm install longhorn longhorn/longhorn --namespace longhorn-system

5.3 升级

维度 OpenEBS Mayastor Longhorn
升级方式 kubectl mayastor upgrade Helm upgrade
回滚 ❌ 不支持降级 V1 支持在线升级;V2 patch 版间需 detach
单副本卷 升级期间短暂不可用 drain 保护策略可防止数据丢失

5.4 资源开销

开销 OpenEBS Mayastor OpenEBS Local Longhorn V1 Longhorn V2
per-node 控制面 IO-engine Pod(2CPU+1GiB+2GiB HP) CSI sidecar Manager DaemonSet Manager + spdk_tgt(1~2 dedicated core + 2GiB HP)
per-volume NVMe-TCP target 无 Engine 进程 + N Replica + read index SPDK bdev + N Replica + read index
1TB 卷内存 无 read index 无 ~256MB(read index) ~256MB + HP
3副本容量 3x 1x 3x 3x

OpenEBS Local 引擎数据路径零开销是最大优势;Longhorn 和 OpenEBS Mayastor 的 per-node/per-volume 开销相近。


6. 性能对比

OpenEBS 性能定位

引擎 性能 延迟特征
Local PV Hostpath 近磁盘,最低延迟 数据路径无 OpenEBS 开销
Local PV LVM 近磁盘 同上 + LVM 微量开销
Local PV ZFS 中等 ZFS CoW 开销
Replicated PV Mayastor NVMe-native,官方称个位数百分比开销 SPDK 用户态轮询,低延迟

来源:Replicated Storage

Longhorn 性能(3副本基准)

指标 单卷 3卷合计 本地路径
随机读 IOPS 22,180 31,917 ~本地路径
随机写 IOPS 1,150 3,540 约本地 50%
读延迟 ~750μs — ~500μs
写延迟 受副本同步影响显著 — —

来源:Longhorn Performance Guidelines

关键性能差异

写性能:Longhorn V1(iSCSI)3副本写 IOPS 仅约本地路径的 50%;OpenEBS Mayastor 官方宣称个位数百分比开销(但缺少公开基准数据)。Longhorn V2(SPDK)理论上更接近 Mayastor。

读性能:两者读性能接近本地路径(read index 机制 + 本地副本优先读)。

Local 引擎:OpenEBS Local PV 数据路径零开销,是性能敏感且应用自管 HA 场景的最佳选择。Longhorn 无此选项。


7. 优势与局限

OpenEBS

优势:

  • ✅ 引擎可选:Local(Hostpath/LVM/ZFS)+ Replicated(Mayastor),按负载选复制 vs 性能 vs 数据完整性
  • ✅ Local 零开销:数据路径无 OpenEBS 进程,近磁盘性能
  • ✅ CAS per-volume 隲离:爆炸半径小,策略可按卷配置
  • ✅ SPDK 用户态:Mayastor 无锁架构,避开内核锁与上下文切换
  • ✅ 开源 / CNCF 治理:无厂商锁定

局限:

  • ❌ cStor/Jiva 已废弃:4.x 重大重构,旧用户需迁移,旧文档/博客大量失效
  • ❌ Mayastor 前置重:HugePages + 内核模块 + 3节点 + 不可回滚升级
  • ❌ 无原生 UI:依赖 Prometheus/Grafana
  • ❌ 无原生备份体系:需 Velero 中转
  • ❌ 无跨集群 DR:不如 Longhorn DR Volume
  • ❌ 社区活跃度波动:MayaData 收缩 + 引擎重组,第三方生态滞后

Longhorn

优势:

  • ✅ 运维友好:内置 UI + Helm + 自动升级 + 节点 drain 保护(5 种策略)
  • ✅ 备份/灾备完整:原生 backupstore(S3/Azure/NFS)+ 定时 Recurring Jobs + 跨集群 DR Volume
  • ✅ 副本重平衡:least-effort / best-effort 两种 auto-balance
  • ✅ 加密体系成熟:LUKS + K8s Secrets(全局/每卷密钥 + FIPS 支持)
  • ✅ RWX 支持:内置 share-manager + migratable RWX(KubeVirt)
  • ✅ CNCF 孵化:治理更成熟
  • ✅ V2 GA:SPDK 用户态驱动正式可用

局限:

  • ❌ 写性能开销:V1 iSCSI 3副本写 IOPS 约本地 50%
  • ❌ RWX 依赖 NFS:share-manager 单点风险 + DNS 依赖 + 90s grace period
  • ❌ V2 限制多:无 strict-local、无 backing image、patch 版间不可 live upgrade、ARM64 NVMe 可能卡死
  • ❌ 无 Local 引擎:所有卷都走 Engine 进程,性能敏感场景无法获得零开销路径
  • ❌ 不可缩容:同 OpenEBS
  • ❌ read index 内存:1TB 卷 ≈ 256MB
  • ❌ HDD 不推荐:生产环境必须 SSD/NVMe

8. 典型适用场景

场景推荐矩阵

场景 推荐 原因
分布式 DB(自管 HA) — Cassandra/MongoDB/ES OpenEBS Local Local 零开销 + 近磁盘性能
单主 DB(需存储级复制) — MySQL/PostgreSQL Longhorn 原生备份 + DR + drain 保护
NVMe SSD + 低延迟 + 复制 OpenEBS Mayastor / Longhorn V2 SPDK 用户态,个位数开销
跨集群灾备 Longhorn DR Volume + backupstore
KubeVirt 虚拟化 Longhorn migratable RWX Block volume
Rancher 生态 Longhorn 深度集成
边缘/小集群(资源紧张) OpenEBS Local 无 per-volume 进程开销
CI/CD 暂存盘 Either thin provisioning + 快速创建/销毁
可观测性栈 — Prometheus/Elasticsearch Either 云原生工具链天然搭配
需要 UI 管理 Longhorn 内置 Web UI

不推荐场景

场景 不推荐 原因
老内核(<5.13)需复制 OpenEBS Mayastor nvme-tcp 模块不可用
老内核(<5.19)需 V2 Longhorn V2 SPDK 内核要求
HDD 生产环境 Longhorn 不推荐 HDD
资源极紧张边缘 OpenEBS Mayastor / Longhorn V2 HugePages + CPU 开销
需 RWX 高吞吐 Both NFS 转发开销

9. 选型决策树

plaintext
你的 K8s 有状态应用需要持久存储
│
├── 应用自管 HA(Cassandra/MongoDB/ES/Redis Cluster)?
│   └─→ ✅ OpenEBS Local PV(零开销,近磁盘性能)
│
├── 需存储级复制/单主 DB?
│   │
│   ├── 需跨集群灾备?
│   │   └─→ ✅ Longhorn(DR Volume + backupstore)
│   │
│   ├── 需内置 UI + 运维自动化?
│   │   └─→ ✅ Longhorn(UI + drain 保护 + auto-balance)
│   │
│   ├── NVMe SSD + 追求极致写性能?
│   │   └─→ ✅ OpenEBS Mayastor 或 Longhorn V2(SPDK)
│   │
│   └─→ ✅ Longhorn(综合运维体验更好)
│
├── KubeVirt / VM live migration?
│   └─→ ✅ Longhorn(migratable RWX)
│
├── Rancher 管理平台?
│   └─→ ✅ Longhorn(原生集成)
│
└── 资源紧张 / 边缘 / 小集群?
    └─→ ✅ OpenEBS Local(无 per-volume 进程开销)

10. Longhorn v1.12.0 新特性速览

来源:GitHub Release

核心里程碑

  • V2 Data Engine 正式 GA — 最重要变更

新功能

特性 说明
Topology-Aware PV Node Affinity csi-allowed-topology-keys + strictTopology SC 参数
IPv6 / Dual-Stack V2 支持 IPv6 单栈 + IPv4/IPv6 双栈
V2 Initiator/Target 解耦 灵活放置 V2 组件
CPU 默认值调整 data-engine-cpu-mask 从 1 core → 2 cores
快照 checksum longhornctl 按卷/节点/集群触发
V2 fast-replica-rebuild ReplicaAdd 支持快速重建
Helm StorageClass 配置 SC 参数/默认 SC/annotations 可通过 values 设置
加密卷改进 16MiB LUKS2 header 预分配 + FIPS 修复

移除项

  • V2 Backing Image 移除 → 改用 Containerized Data Importer (CDI),升级前必须迁移已有 V2 backing image volume

关键 Bug 修复

  • Instance-manager nil pointer panic(重建风暴可级联 detach)#13087
  • 副本 auto-balance 无限循环 #12926
  • V2 volume 重建后数据损坏 #12830

11. OpenEBS v4.5.x 关键变更速览

来源:OpenEBS Releases

  • cStor / Jiva 完全移除 — 4.x 不再包含,旧用户必须迁移
  • 唯一复制引擎:Replicated PV Mayastor(SPDK/NVMe-oF TCP,Rust)
  • Local 引擎成熟:Hostpath 4.5.1、LVM 1.9.1、ZFS 2.10.1
  • Rawfile 实验性:v0.14.1

12. 关键结论

  1. 两者定位不同:OpenEBS 是多引擎可选的 CAS 平台(Local + Replicated),Longhorn 是专注复制块存储的完整解决方案。
  2. 性能敏感选 OpenEBS Local:应用自管 HA 时 Local PV 数据路径零开销,这是 Longhorn 无法提供的。
  3. 运维/灾备选 Longhorn:UI + backupstore + DR Volume + drain 保护 + auto-balance,整体运维体验更成熟。
  4. SPDK 时代两者趋同:OpenEBS Mayastor 和 Longhorn V2 均基于 SPDK/NVMe-oF,架构和前置要求高度相似。
  5. cStor/Jiva 已死:看到旧资料讨论 cStor/Jiva 时务必对照官方 4.x 文档核实。
  6. Longhorn V2 仍在成熟中:GA 但限制多(无 strict-local、不可 live upgrade、ARM64 NVMe 问题),生产使用需评估风险。