Longhorn vs Rook vs OpenEBS vs Portworx vs IOMesh:细说 5 款 K8s 持久化存储产品优劣势

云原生时代下,越来越多的企业开始使用 Kubernetes(K8s)承载数据库、消息中间件等"生产级"有状态工作负载。由于这些应用对数据持久保存、性能、容量扩展和快速交付具有较高的要求,企业往往需要采用专为 Kubernetes 环境设计的持久化存储方案,来满足有状态应用的存储需求。这也是不少用户感到困惑的地方:如何从市面上众多的 K8s 存储方案中,找到适合自己的产品?

这篇文章中,我们详细对比了 Longhorn、OpenEBS、Portworx、IOMesh 等主流 K8s 持久化存储方案,通过特性对比与性能测试,为用户产品选型提供直观参考。

功能特性对比

在存储方案特性方面,Gartner 在《如何在容器与 Kubernetes 环境进行存储选型和实践(How Do I Approach Storage Selection and Implementation for Containers and Kubernetes Deployments)?》报告中,列举了 5 项云原生数据服务对传统存储方案的改进要求:

  • 软件定义与"硬件无关(hardware agnostic)"。
  • 可编程,可作为"基础设施即代码(IaC)"进行管理,由 API 驱动并支持高级和细粒度的数据服务(如高可用与数据保护)。
  • 基于分布式架构,可以任意规模部署。
  • 与多种 Kubernetes 发行版通过认证,并可与之进行互操作、实现完全集成。
  • 具有简单且可预测的跨环境许可模型。

我们参考以上要求,同时结合国内对 IT 基础架构技术自研等方面的关注,对 Longhorn、Rook、OpenEBS、Portworx 和 IOMesh 5 款产品,从技术开闭源、本土化支持、存储架构、高级数据服务、与 K8s 的集成程度等方面进行了全面对比:

基于以上对比,用户在功能特性层面的选型上需要注意以下几点:

  • 关注数据安全与合规性的用户(如金融与政府机构),应尽量选择闭源 K8s 存储方案。同时,闭源厂商往往具备更强的存储核心代码支持能力,基于开源存储技术的方案,若遇到存储部分的故障,可能无法得到及时解决。
  • OpenEBS 与 Portworx 当前没有中国本土支持,更考验运维人员在 K8s 环境方面的知识与经验储备。
  • 若采用 K8s 支持对 I/O 性能要求较高、数据一致性要求较强的应用场景(数据库、消息中间件、缓存等),应尽量选择支持块存储的解决方案。
  • 运行对连续性要求较高的应用,应尽量选择具备高可用与数据保护的产品。

性能测试

性能是评判存储系统是否能够支撑核心业务的关键指标。我们对 IOMesh、Longhorn、Portworx 和 OpenEBS 四个方案*,在 MySQL 和 PostgreSQL 数据库场景下进行了性能压测(使用 sysbench-tpcc 模拟业务负载)。

* 对 Rook 的性能测试还在进行中,测试结果会在后续文章中更新。敬请期待!

测试环境

  • 测试集群为 3 节点混闪配置,搭载 Intel CPU,使用 2 块 SATA SSD 做缓存,存储网卡为 10GbE。
  • 测试数据选择 2 副本场景,TPCC 测试参数:time=600, tables=4, scale=50。
  • 软件版本:IOMesh 0.10.2, Longhorn 1.1.1, Portworx 2.6.3, OpenEBS 2.9.0。

测试结果

四个云原生存储系统在两项测试中的 TPS、QPS 以及 P95 延迟表现如下图所示。

从以上数据与对比可以看出,四个存储方案在性能与稳定性上的表现,从优到次依次为 IOMesh、Longhorn、Portworx 与 OpenEBS。

作为国内首款 K8s 原生的企业级分布式存储,IOMesh 可为运行在 Kubernetes 集群上的各类有状态应用提供稳定、高性能的持久化存储资源,降低方案构建成本与运维难度,加速企业云原生转型进程。欲了解方案详情,您可阅读博客、观看产品解读视频,或点击获取《IOMesh 用户指南》

扫描下方二维码,一键获取 IOMesh 1.0.0 用户指南。

相关推荐
梅见十柒1 小时前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生
Python私教2 小时前
ubuntu搭建k8s环境详细教程
linux·ubuntu·kubernetes
运维&陈同学3 小时前
【zookeeper01】消息队列与微服务之zookeeper工作原理
运维·分布式·微服务·zookeeper·云原生·架构·消息队列
O&REO3 小时前
单机部署kubernetes环境下Overleaf-基于MicroK8s的Overleaf应用部署指南
云原生·容器·kubernetes
politeboy3 小时前
k8s启动springboot容器的时候,显示找不到application.yml文件
java·spring boot·kubernetes
运维小文4 小时前
K8S资源限制之LimitRange
云原生·容器·kubernetes·k8s资源限制
登云时刻4 小时前
Kubernetes集群外连接redis集群和使用redis-shake工具迁移数据(二)
redis·容器·kubernetes
wuxingge13 小时前
k8s1.30.0高可用集群部署
云原生·容器·kubernetes
志凌海纳SmartX14 小时前
趋势洞察|AI 能否带动裸金属 K8s 强势崛起?
云原生·容器·kubernetes
锅总14 小时前
nacos与k8s service健康检查详解
云原生·容器·kubernetes