Enhanced Performance and Availability: Using IOMesh for Persistent Storage in KubeVirt

On July 11, the KubeVirt community officially announced the release of KubeVirt v1.0. As a fully matured Virtual Machine Management solution for Kubernetes, KubeVirt provides VM users another option to modernize IT infrastructure: in conjunction with Kubernetes persistent storage, users can conveniently run both VMs and containers on top of Kubernetes with no need to worry about the stability and performance of Kubernetes clusters.

As a leading enterprise-grade Kubernetes-native distributed storage, IOMesh can enhance VMs and containers in KubeVirt with outstanding performance and high availability. In the following sections, we will dive into key capabilities of Kubernetes storage in supporting KubeVirt, and explore how IOMesh performs through performance tests and a case study.

Gartner: Convergence of VM and Container Management is Dominating Kubernetes Deployment

Cloud-native technologies accelerate the modernization progress of IT infrastructure, and yet introduce new management challenges. One such challenge is how to combine existing virtualized workloads with new container workloads on one platform and achieve unified management of both. To address this issue, projects focusing on the convergence of VM and container management have emerged.

According to Gartner’s Market Guide for Container Management, currently, there are two basic routes to converge VM and container management:

  • Container-centric: With container-centric solutions, users create, run, and manage VMs in Kubernetes clusters that are deployed on bare metal. Using Kubernetes API, users can achieve central management of both VMs and containers in the same cluster. Example solution: KubeVirt.
  • Coexist: With these solutions, users create, run, and manage VMs and containers in virtualization. Users deploy hypervisors (or HCI) and use several VMs to support Kubernetes clusters. These Kubernetes clusters are together managed with VMs through virtual networks. Example solutions: VMware Tanzu and SmartX SKS. To learn more about coexist solutions, please refer to: Kubernetes on VMs vs. Bare Metal: Comparison of Architecture and Capabilities.
Coexist (Left) Vs. Container-Centric (Right) Coexist (Left) Vs. Container-Centric (Right)

As a container-centric solution, KubeVirt enables users to centralize the management of containers and VMs through the Kubernetes API. This reduces complexity in operations and maintenance (O&M) since administrators only need to familiarize themselves with Kubernetes operations. Moreover, unlike traditional virtualization that depends on vendors’ proprietary APIs, KubeVirt seamlessly integrates with Kubernetes through Kubernetes API. This close integration allows users to effortlessly tap into the rich ecosystem of Kubernetes and use its wide range of tools for monitoring, logging, networking, storage, etc.

This is why Gartner highlights in Market Guide for Container Management that compared to using bare-metal servers, more users are turning to solutions that converge VM and container management; with a unified platform, users can enjoy advantages of both IT architectures and undertake IT transformation at their preferred pace.

How to Select KubeVirt-Friendly Storage?

To fully leverage KubeVirt’s potential in central management, it is essential to have underlying storage that can provide high performance for both containers and VMs. Therefore, block storage can be a better choice. Moreover, the storage solution should be KubeVirt-friendly, meaning that it can provide advanced features for VMs in KubeVirt.

  • Production-ready Kubernetes-native block storage
    • Kubernetes-native: The storage solution should use Kubernetes-native technologies (e.g., native CSI Driver and declarative APIs) to provide stable support for stateful applications in production environments.
    • Integrated deployment: Converged deployment of storage and computing can improve performance (i.e., through I/O localization) and the efficiency of VM and container management.
    • High scalability: Allow users to start from a small scale and later scale up on demands, without the need to replace IT infrastructure components frequently.
  • KubeVirt-friendly features
    • VM snapshots, restoration, and cloning: KubeVirt achieves VM snapshot and restoration through the VolumeSnapshot functionality of Kubernetes CSI Driver. Therefore, the storage solution’s CSI Driver should support such functionality. Users should also ensure Kubernetes Volume Snapshot API’s version to be v1. KubeVirt uses snapshot and restoration APIs to achieve VM cloning.
    • Live migration: Storage’s persistent volumes should support RWX to achieve VM live migration.

IOMesh: Reliable and Performant Distributed Storage for Containers and VMs in KubeVirt

IOMesh is an enterprise Kubernetes-native distributed storage solution. Leveraging Kubernetes native operation and tools, IOMesh can be fully integrated into Kubernetes ecosystem, providing production-ready storage services to containers and VMs in KubeVirt through converged deployment.

IOMesh Solution for KubeVirt - Architecture IOMesh Solution for KubeVirt - Architecture

Featuring high performance and enterprise-grade advanced functionalities, IOMesh can totally meet KubeVirt users’ storage demands.

High-Performance Block Storage

Based on a distributed architecture, IOMesh eliminates performance bottlenecks through multi-node concurrency. The storage performance is further improved through multiple I/O enhancements:

  • I/O localization eliminates network access latency.
  • Automatic tiering of hot and cold data and direct control of bare metal devices maximize hardware performance.
  • Support 2 and 3 replicas.
  • Support thin and thick provisioning.
  • Data replica replacement strategy (Locality, partialization, and capacity balancing) facilitates precise data placement.

We also compared IOMesh with other Kubernetes storage solutions through performance tests. The test results are shown below.

Comparison of kubernetes Storage Performance: 3N3P 4K Random Read/Write IoPs

Comparison of kubernetes Storage Performance: 3N3P 8K Random Read/Write IoPs

Comparison of Kubernetes Storage Performance: Latency

Comparison of Kubernetes Storage Performance: 3N1P IoPS with Latency < 0.5ms

Note: 3N1P (3 Node 1 Pod) tests the storage performance of a single node. 3N3P (3 Node 3 Pod) tests the storage performance of the whole cluster. Software version: IOMesh v1.0.1, Rook v1.12.1, Longhorn v1.5.1.

For more information on product comparison and performance test, please refer to Kubernetes Storage Capabilities & Performance Analysis: Longhorn, Rook, OpenEBS, Portworx, and IOMesh Compared.

Kubernetes-Native

Support dynamic provisioning through Kubernetes CSI. Support PV scaling, snapshot, restoration, cloning, PV authentication, etc.

Enterprise-Grade Advanced Features

IOMesh can provide high availability through multiple features such as data checksum and multiple replica policies. Features like auto-detection of abnormal disks can also improve storage reliability and security.

Reducing Cost

Leverage the hardware resources of Kubernetes Worker nodes for converged deployments, saving hardware costs and rack space, and reducing deployment challenges. The Kubernetes native operation and tools can also further reduce the costs of learning for operations teams.

Case Study

A video technological research company is developing offline video rendering services, with core applications running on VMs (Windows + Linux) and containers in KubeVirt.

iomesh_kubevirt_img_7

Since these applications have high requirements for storage performance and availability, the user has evaluated and tested multiple cloud-native storage solutions. Yet, none of these solutions could meet their expectations. The user’s key requirements are listed below:

  • Storage type: Cloud-native distributed storage.
  • Advanced features: Multi-replica policy to ensure high availability.
  • Performance requirements: High random read/write IOPS and sequential read/write bandwidth.
    • Random read IOPS (single node): 100K+.
    • Random write IOPS (single node): 40K+.
    • Sequential read/write bandwidth (single node): 1GiB/s.
  • Other features: Production-ready reliability and stability. Low overhead.

To find the right storage solution, the user tried out more options and conducted a performance test on IOMesh. The results were impressive: In the simulated production environment, IOMesh demonstrated outstanding single-node random read/write IOPS, achieving 130K+ and 45K+ respectively, while the sequential read/write bandwidth exceeded 1.6GiB/s+. Additionally, IOMesh's extensive advanced features contributed to the enhanced availability of Kubernetes clusters.

To learn more about IOMesh, please refer to IOMesh Docs, and join the IOMesh community on Slack for more updates and community support.

Reference

  1. Market Guide for Container Management, Gartner