Longhorn 除了提供传统的 v1 Data Engine 外,还支持基于 SPDK(Storage Performance Development Kit)的 v2 Data Engine。v2 Data Engine 已在 Longhorn v1.12.0 版本中正式 GA(General Availability)。
v1 与 v2 Data Engine 的主要区别如下:
| 对比项 | Data Engine v1 | Data Engine v2 |
|---|---|---|
| 数据路径 | 在 Instance Manager 中运行各 Volume 的 Engine 和 Replica 进程,通常通过 iSCSI 向主机提供块设备 | 基于 SPDK,Replica 存储在原始块设备上的逻辑卷中,常规 blockdev 前端通过 NVMe/TCP 向主机提供块设备 |
| 节点磁盘 | 使用 filesystem 类型的磁盘,需要先格式化为 ext4/XFS 文件系统并挂载 |
使用 block 类型的磁盘,由 Longhorn 直接管理未格式化的原始块设备,优先推荐本地 NVMe |
| 节点资源 | 主要根据工作负载和 Replica 数量规划资源 | 额外需要为 SPDK 分配内存和专用 CPU,默认预留 2 GiB HugePages |
| 快照删除 | 删除 volume-head 的直接父快照后,可能先将其标记为移除,随后通过 Purge 操作清理 |
支持在线合并,删除操作完成后快照即被移除 |
| 功能差异 | 支持 strict-local 数据本地性 |
不支持 strict-local,但支持 v1 不具备的快速 Volume 克隆和 QoS |
| RWO / RWX | RWO 使用块设备,普通 RWX 通过 Share Manager 提供 NFS 服务 | 同样支持 RWO 和普通 RWX,RWX 仍然依赖 NFS Client |
本文基于 Longhorn v2 Data Engine 进行实践。
