IOMesh 为 KubeVirt 提供高效稳定的持久化存储支持(附用户实践)

7 月 11 日,KubeVirt 社区正式宣布发布 Kubernetes 原生虚拟机管理插件 KubeVirt v1.0。这一版本发布不仅标志着 KubeVirt 已进化为生产就绪的虚拟机管理解决方案,也为正在使用虚拟化环境的用户提供了更多元的云化转型路线:搭配 Kubernetes 持久化存储方案,用户可在 Kubernetes 平台实现虚拟机和容器的统一管理的同时,为 Kubernetes 集群提供生产级稳定、高性能的存储支持。

作为国内首款 Kubernetes 原生的企业级分布式存储,SmartX 的 Kubernetes 原生存储 IOMesh 可以为 KubeVirt 提供性能强大、功能丰富的存储服务,帮助企业加快 IT 基础架构云原生转型的步伐。本文,我们将深入探讨 KubeVirt 对底层存储架构的能力要求,并通过性能测试和用户实践,验证 IOMesh 对 KubeVirt 的支持能力。

Gartner:以 KubeVirt 为代表的“容器-虚拟机融合管理”技术正在成为主流

云原生技术的成熟不仅给企业用户带来了更现代化的 IT 基础架构,也同时带来了一定程度的管理难题:怎样将用户原有的虚拟化架构与容器架构统一且高效地管理?为了解决这一问题,“容器-虚拟机融合管理(Converged VM and Container Management)”应运而生。

Gartner 在《容器管理市场指南》报告中指出,目前有两种主流方式,可以实现将容器与虚拟机架构整合并统一管理:

  • Container-centric:在 Kubernetes 集群中创建、运行、管理虚拟机,以 KubeVirt 为代表。这种方案下,Kubernetes 部署在裸金属上,用户使用 Kubernetes API 对 Kubernetes 集群上的容器和虚拟机进行统一管理。

  • Coexist:支持在虚拟机环境中部署、运行、管理容器和虚拟机,以 VMware Tanzu 和 SmartX SKS 为代表。这种方案下,用户部署虚拟化/超融合平台运行虚拟机,Kubernetes 集群构建在其中一部分虚拟机之上,用户通过虚拟化网络对 Kubernetes 集群和虚拟机进行统一管理。欲深入了解,请阅读:虚拟化 vs. 裸金属:K8s 部署环境架构与特性对比。

两种方案的对比如下图所示。

图片

左:以 Coexist 方式融合管理容器和虚拟机,右:使用 KubeVirt 融合管理容器和虚拟机

作为一种 Container-centric 融合管理方案,KubeVirt 最大的特点即支持运维人员使用 Kubernetes API 对容器和虚拟机进行统一管理:用户只需掌握 Kubernetes 相关技术,即可对两种架构同时进行管理,降低了管理难度。同时,不同于传统虚拟化环境中使用厂商专有 API,KubeVirt 使用 Kubernetes API,与 Kubernetes 集成更为紧密,使得集群管理更加敏捷、灵活,用户也可轻松使用 Kubernetes 丰富的生态系统和工具,如监控、日志、网络和存储等。

得益于成熟的技术和虚拟机的支持能力,Gartner 在《容器管理市场指南》中表示,相比使用裸金属服务器运行 Kubernetes,更多用户倾向于使用可同时支持容器和虚拟机的架构方案,兼顾两种部署环境优点的同时,逐步推进 IT 基础架构云化转型。

KubeVirt 需要什么类型的存储

想要充分发挥 KubeVirt 灵活部署、多架构支持的能力,离不开底层储存的支持。在 KubeVirt 场景下,存储方案不仅应具备可支持容器与虚拟机的高性能块存储能力,还需贴合 KubeVirt 的能力设计,为虚拟机提供高级特性。

Kubernetes 原生的生产级块存储能力

  • Kubernetes 原生、融合部署:存储方案需具备可在生产环境中支持有状态应用的 I/O 能力,因此要求存储产品使用 Kubernetes 原生技术(原生 CSI Driver 并支持声明式 API),且支持存储与计算的融合部署——相比于分离场景,融合部署具备 I/O 本地化能力,可以获得更好的性能;同时,由于 KubeVirt 通过 Kubernetes API 对虚拟机和容器进行统一管理,因此更适合存储和计算融合部署场景。

  • 可扩展性:允许用户从小规模开始部署,根据业务需求按需扩展存储资源,而无需更换基础架构的基本组件。
     

贴合 KubeVirt 的高级特性

  • 虚拟机快照、还原、克隆:KubeVirt 利用 Kubernetes CSI 驱动程序的 VolumeSnapshot 功能来实现虚拟机快照和还原,因此需要存储方案在 CSI 驱动中实现 Snapshot 和 Restore 功能。此外 Kubernetes Volume Snapshot APIs 还需要是 v1 版本。对于虚拟机克隆能力,KubeVirt 依赖于快照、还原 API。

  • Live Migration:对于虚拟机 Live Migration 能力,需要持久卷支持多读写(RWX) 能力。

此外,GigaOm 在《Key Criteria for Evaluating Kubernetes Data Storage Solutions v4.0》报告中,列举了 Kubernetes 存储在常规应用场景下应具备的 4 项标准能力、5 项关键差异能力和 3 项新兴技术支持能力。这些能力也应被纳入 KubeVirt 存储能力评估范围内。欲了解详细能力评估标准,请阅读:一文了解评估 K8s 原生存储产品需要关注的关键能力。


综上所述,一个高性能、具备企业级存储特性的云原生的分布式块存储比较适合 KubeVirt 场景。

IOMesh 如何满足 KubeVirt 需求

IOMesh 是 SmartX 自主研发并经过生产环境验证的 Kubernetes 原生的企业级分布式存储产品。作为一种 Kubernetes 原生的存储解决方案,IOMesh 能够与 Kubernetes 完美集成,实现融合部署并提供一致的容器与虚拟机存储支持,可以很好地支撑 KubeVirt 场景。方案架构如下图所示。

图片

得益于 IOMesh 的以下特点,该方案可充分满足 KubeVirt 场景下的存储需求。

高性能块存储

IOMesh 为全分布式架构,通过多节点并发消除了性能瓶颈,同时利用多种 I/O 优化技术进一步提升性能:

  • I/O 本地化消除了网络访问时延。

  • 冷热数据自动分层与对裸设备的直接管理最大化地发挥了硬件的性能。

  • 支持卷级别的存储策略:支持2和3副本。

  • 支持精简和厚制备方式。

  • 通过副本分配策略(拓扑安全、本地优先、局部化、容量均衡)实现了数据的精准放置。

通过以下的性能测试数据,可以直观地感受到 IOMesh 对比其他 K8s 存储的性能优势:

图片

图片

图片

图片

注:

3N1P:3 Node 1 Pod,测试单节点存储性能。

3N3P:3 Node 3 Pod,测试集群存储整体性能。

版本:IOMesh v1.0.1、Rook v1.12.1、Longhorn v1.5.1。

Kubernetes 原生

通过 Kubernetes CSI 动态制备存储,并支持诸如 PV 扩容、快照、还原、克隆、认证等能力。

企业级特性

IOMesh 具备数据校验、多副本冗余的企业级高可用特性;支持硬盘异常探测(通过智能算法探测不健康盘,自动触发磁盘隔离和数据恢复)等功能增加了可靠性和安全性。

降低使用成本

充分利用 Kubernetes Worker 节点的硬件资源融合部署,节省硬件成本和机架空间,降低部署难度。同时通过 Kubernetes 原生的操作方式和工具,可进一步降低 Kubernetes 运维团队的学习成本。

更多 IOMesh 产品特性与应用场景,请扫描下方二维码,获取《IOMesh 用户指南》进行深入了解。

用户实践

某视频技术研究公司从事视频离线渲染业务开发,采用容器虚拟化方案(Kubernetes + KubeVirt),以虚拟机(Windows + Linux)和容器方式混合部署的形式支持业务应用。

图片

该场景下,业务应用对存储产品在性能和高可用方面的要求比较高,为了支持应用稳定、高效运行,用户调研并测试了多个云原生存储方案,在性能和企业级别特性方面均难以达到预期。用户对存储方案的具体要求如下:

  • 存储类型:云原生分布式存储。

  • 具备企业级特性:通过多副本机制保证数据高可用性。

  • 高性能:视频渲染应用对存储性能要求比较高(随机读写 IOPS 和顺序读写带宽),需要满足以下条件:

    - 单机随机读 IOPS:100K+;

    - 单机随机写 IOPS:40K+;

    - 单机顺序读、顺序写带宽:1GiB/s。

  • 生产级别可用、稳定,资源消耗低。

为了解决存储痛点,用户引入了 IOMesh 进行性能测试。测试结果显示,IOMesh 在模拟实际业务需求条件下,单机随机读写 IOPS 可达到 130K+ 和 45K+,单机顺序读写宽带可达到 1.6GiB/s+,大大超出了客户预期。同时,IOMesh 丰富的企业级特性和 SmartX 专业的技术支持,充分保证了业务的稳定运行,满足了用户对 Kubernetes 集群高可用方面的要求。


想免费体验 IOMesh 功能与特性?快来参加 SmartX 近期开展的“IOMesh 社区版部署大挑战”活动!仅需半个小时,即可完成 IOMesh 社区版部署,获取 IOMesh 商业版基本功能的永久免费使用权,并解锁社区专家支持和更多挑战奖励。欲了解活动详情和报名方式,请阅读:有奖体验|IOMesh 社区版部署大挑战开始啦!

参考文章:

1. Market Guide for Container Management, Gartner

https://www.gartner.com/document/4012524

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/106959.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UMA 2 - Unity Multipurpose Avatar☀️三.给UMA设置默认服饰Recipes

文章目录 🟥 项目基础配置🟧 给UMA配置默认服饰Recipes🟨 设置服饰Recipes属性🟥 项目基础配置 将 UMA_DCS 预制体放到场景中创建空物体,添加DynamicCharacterAvatar 脚本,选择 HumanMaleDCS作为我们的基本模型配置默认Animator 🟧 给UMA配置默认服饰Recipes 服饰Re…

JavaWeb开发中的问题

一,页面没有显示css样式效果 在修改jsp文件时,浏览器呈现效果能发生改变,但修改css样式文件却没有效果,得清除浏览数据,重新运行,css样式才能有效果。以上所得:css文件应该会保存在浏览记录中。…

java导出Mysql表信息生成Word文档

一、背景描述 系统上线或者交付,或者需要提供整理数据库表信息,如果一个个整理未免麻烦,接下来一个demo示例如何用JAVA导出Mysql数据库表信息生成Word文档。 传入null导出全部表 传指定表只导出指定表

使用Process Explorer查看线程的函数调用堆栈去排查程序高CPU占用问题

目录 1、问题描述 2、使用Process Explorer排查软件高CPU占用的一般思路 3、使用Process Explorer工具进行分析 3.1、找到CPU占用高的线程 3.2、查看CPU占用高的线程的函数调用堆栈,找到出问题的代码 3.3、libwebsockets库导出接口lws_service的说明 3.4、解…

通达信指标编写,16进制颜色对照表,妈妈再也不用担心颜色不够用了!!

★★★★★博文创作不易,我的博文不需要打赏,也不需要知识付费,可以白嫖学习小技巧,喜欢的老铁可以多多点赞收藏分享置顶,小红牛在此表示感谢。★★★★★ #龙虎榜小红牛系统,官方微信公众号:g…

使用QT操作Excel 表格的常用方法

VBA 简介 Microsoft Office软件通常使用VBA来扩展Windows的应用程序功能,Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言。 在VBA的参考手册中就可以看到具体函数、属性的用法,Qt操作Excel主要通过 QAxObj…

uni-app:重置表单数据

效果 代码 <template><form><input type"text" v-model"inputValue" placeholder"请输入信息"/><input type"text" v-model"inputValue1" placeholder"请输入信息"/><input type&quo…

将 ordinals 与 比特币智能合约集成 : 第 1 部分

将序数与比特币智能合约集成&#xff1a;第 1 部分 最近&#xff0c;比特币序数在区块链领域引起了广泛关注。 据称&#xff0c;与以太坊 ERC-721 等其他代币标准相比&#xff0c;Ordinals 的一个主要缺点是缺乏对智能合约的支持。 我们展示了如何向 Ordinals 添加智能合约功…

python趣味编程-恐龙克隆游戏

Python 中使用 Turtle 的恐龙克隆游戏免费源代码 使用 Turtle 的恐龙克隆游戏是一个用Python编程语言编码的桌面游戏应用程序。该项目包含在 Chrome 浏览器中克隆实际恐龙游戏的多种功能。该项目可以使正在修读 IT 相关课程的学生受益。这个应用程序非常有趣,可以帮助您学习创…

scoped样式修饰符的使用

在Vue.js中&#xff0c;scoped 是一个用于样式的修饰符&#xff0c;它用于限定样式的作用范围&#xff0c;使得样式只在当前组件的作用域内生效&#xff0c;而不会影响到父组件或子组件的样式。这个特性通常用于解决 CSS 样式污染的问题&#xff0c;确保样式只会影响到当前组件…

电子科大软件系统架构设计——系统规划

文章目录 系统规划定义意义目标任务路径规划规划步骤规划方法业务系统规划法业务流程重组法价值链分析法战略目标集转移法关键成功因素法 项目计划定义要素工作分解活动排序工期预算三点估计法德尔菲法 成本估算与计算进度安排甘特图法PERT图方法 可行性分析技术可行性分析进度…

推荐一个图像生成开源项目——Fooocus

目录 什么是Fooocus&#xff1f; 项目地址 性能消耗 如何安装 效果对比 总结 什么是Fooocus&#xff1f; Fooocus是一款图像生成软件&#xff0c;但它不同寻常&#xff0c;是对稳定扩散&#xff08;Stable Diffusion&#xff09;和Midjourney的设计理念的巧妙重新思考。本…