7 月 11 日,KubeVirt 社区正式宣布发布 Kubernetes 原生虚拟机管理插件 KubeVirt v1.0。这一版本发布不仅标志着 KubeVirt 已进化为生产就绪的虚拟机管理解决方案,也为正在使用虚拟化环境的用户提供了更多元的云化转型路线:搭配 Kubernetes 持久化存储方案,用户可在 Kubernetes 平台实现虚拟机和容器的统一管理的同时,为 Kubernetes 集群提供生产级稳定、高性能的存储支持。
作为国内首款 Kubernetes 原生的企业级分布式存储,SmartX 的 Kubernetes 原生存储 IOMesh 可以为 KubeVirt 提供性能强大、功能丰富的存储服务,帮助企业加快 IT 基础架构云原生转型的步伐。本文,我们将深入探讨 KubeVirt 对底层存储架构的能力要求,并通过性能测试和用户实践,验证 IOMesh 对 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 的能力设计,为虚拟机提供高级特性。
Kubernetes 原生、融合部署:存储方案需具备可在生产环境中支持有状态应用的 I/O 能力,因此要求存储产品使用 Kubernetes 原生技术(原生 CSI Driver 并支持声明式 API),且支持存储与计算的融合部署——相比于分离场景,融合部署具备 I/O 本地化能力,可以获得更好的性能;同时,由于 KubeVirt 通过 Kubernetes API 对虚拟机和容器进行统一管理,因此更适合存储和计算融合部署场景。
可扩展性:允许用户从小规模开始部署,根据业务需求按需扩展存储资源,而无需更换基础架构的基本组件。
虚拟机快照、还原、克隆: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 是 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 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