Skip to content

FutaroKevin/kVirtIO

Repository files navigation

KvirtIO: Enterprise Virtualization Platform

KvirtIO is an enterprise, Service Provider-class virtualization architecture designed for high I/O density and High Availability (HA) scenarios. It is based entirely on native and open-source technologies running on SUSE Linux Enterprise Server (SLES). We do not intend KvirtIO to be a native hypervisor, but rather, as previously mentioned, an architecture composed of open-source solutions.

This project is not intended to be associated to virtIO library

⚠️ Reference Architecture Notice

KvirtIO is exclusively a reference architecture. It documents a validated design and a set of conventions (storage, networking, HA, monitoring) that can be implemented with the tools of your choice.

  • The monitoring/watcher scripts provided in this repository are reference implementations: they show how and where to retrieve telemetry and status data from each component (Libvirt, Pacemaker, multipath, etc.). Anyone adopting this architecture can connect their own monitoring stack (e.g., Zabbix, Prometheus, Grafana) to the same data sources, instead of using these scripts.
  • Similarly, provisioning is not tied to any specific tool: the documented procedures and templates (VM XML, configuration files) can be wired into your own automation via Ansible, Terraform, or any other IaC/orchestration tool, in place of the example scripts.
  • In Service Provider / Enterprise environments, it is strongly recommended to integrate this architecture with your existing monitoring, automation, and orchestration tooling rather than relying on the scripts in this repository.
  • The scripts and tools included here are intended for lab, demo, and Proof-of-Concept environments, to validate the architecture end-to-end before integrating it with production-grade tooling.

🚀 Project Goals

  • Deterministic Performance: Total exclusion of host swap and optimization of RAM allocation (Hugepages) and CPU (NUMA pinning).
  • I/O Optimized for Databases ("IOIntensive"): Parallelization of kernel SCSI queues (lun_queue_depth) through Multi-LUN Striped strategies and blk-mq architecture.
  • High Availability and Multilevel Fencing: Tight integration among Pacemaker, Corosync, Cluster LVM (lvmlockd + dlm), and physical STONITH mechanisms (fence_idrac) as well as storage-based ones (sbd on Witness LUN with hardware watchdog).
  • Control Plane Decoupling: Isolation of monitoring, telemetry, and load balancing logic outside the production KVM cluster.

🎯 When to use KvirtIO

Scenario Fit
Enterprise VM Cluster Excellent
SAP / DB Excellent
Private Cloud Moderate
Kubernetes Platform Not Primary Goal
VDI Moderate
Edge Good

🧩 VM Hardware Profiles Matrix

Feature Generic App Database
CPU Auto Auto Static
NUMA Auto Auto Static
HugePages No 2M 1G
Ballooning Yes Optional No
Migration Full Full Conditional

📂 Repository Structure

1. Architecture and Design Documents

2. Monitoring, Watchers & Management (External Control Plane)

These scripts reside on the external management server and query the KVM nodes via SSH using the kvirtwatch user.

3. Systemd Configurations (Services & Timers)

4. Security & Configuration Templates

  • 🛡️ kvirtwatch (Sudoers): Least-privilege sudo configuration template for hypervisor nodes.
  • ⚙️ mail.conf: Global SMTP notifier configurations file template.
  • ⚙️ cluster_db.conf: Database cluster specific configurations example.
  • ⚙️ cluster_web.conf: Web/General cluster specific configurations example.

5. Guides and Operational Instructions

Example monitoring UI

image info

About

Reference architecture for an enterprise-class KVM virtualization platform on SUSE Linux Enterprise Server (SLES), designed for high I/O density and HA scenarios — a vendor-neutral alternative to traditional hypervisor stacks.

Topics

Resources

Stars

Watchers

Forks

Contributors