Virt

Virtualization Engine

Drop-in replacement for VMware ESXi

The following demo is demonstrating the capabilities of the Virt Engine. This is an appliance that can be used to manage virtual machines, clusters, high availability, disaster recovery, backup and restore, live migration, and container/Kubernetes engine. The engine is designed to be a drop-in replacement for VMware ESXi, Linux and KVM based virtualization solutions.

The following demo is demonstrating the the Virtual Host Appliance console.

Distributed KVM Virtualization

A cloud-native alternative to VMware ESXi

PiVirt (internally codenamed pibase) is a high-performance, distributed virtualization management platform built on QEMU/KVM. A node-agent model runs a lightweight agent on every hypervisor host, coordinated through a ConnectRPC control plane, so cluster-wide operations — provisioning, live migration, storage orchestration — look the same whether you're running three nodes or thirty.

Node-Agent Architecture & Flow

Every node runs the pivirtd agent which manages KVM guests directly via QMP sockets, orchestrates iSCSI/OCFS2 storage, and exposes a gRPC/ConnectRPC interface to administrators and cluster managers.

Core Engine Modules

Node Agent (apps/agent)

Lightweight Go daemon running on each hypervisor host. Handles VM state machine transitions, ConnectRPC streaming, Zerolog logging, and health heartbeats over NATS.

Storage Manager (apps/iscsiman)

Orchestrates iSCSI targets and OCFS2 cluster file systems across nodes, providing Copy-on-Write QCOW2 disk allocation for instant guest provisioning.

Management CLI (pvcli & pivirtctl)

Unified command-line interface with interactive terminal dashboards (Charm Bubble Tea TUI) for real-time VM console access, cluster management, and OAuth2 auth.

OS Image DB (apps/osinfodb)

Automated image retriever and libosinfo parser, managing base cloud images (Ubuntu, Rocky Linux, Debian) with automatic seed ISO generation.

What's under the hood

Distributed Node-Agent Architecture
A lightweight agent runs on every hypervisor host and talks to the pivirtd daemon over ConnectRPC (gRPC-compatible), so a single control plane can manage an entire cluster of KVM nodes.
Native QEMU/KVM Management
VMs are controlled directly through the QEMU Machine Protocol (QMP) — no libvirt layer in between — with each VM isolated in its own folder holding config, disks, sockets, and logs.
Clustered Storage
iSCSI and OCFS2 (Oracle Cluster File System) provide shared block storage across nodes, with Copy-on-Write QCOW2 overlays on top of a central base-image library for fast VM provisioning.
Cloud-Init Provisioning
Every VM gets a generated nocloud seed ISO with user-data and meta-data — SSH keys, packages, and hostname are injected automatically on first boot, no manual imaging required.
Open vSwitch Networking
VM NICs attach as TAP devices to programmable OVS bridges with VLAN tagging, a built-in Go DHCP server for automatic IP assignment, and NAT/masquerading for outbound connectivity — no dnsmasq dependency.
Live Migration
A handshake between source and target pivirtd instances prepares a paused VM on the target node, transfers state over QMP, then finalizes the switch — enabling load balancing and zero-downtime maintenance.
Secure Multi-Node Clustering
Inter-daemon RPC and live-migration traffic are secured with mutual TLS against a cluster-wide CA; node identity and peer topology are defined per-node in node.yaml.
Kubernetes-Optimized Guests
CPU passthrough (-cpu host), explicit socket/core/thread topology, the q35 machine type with OVMF UEFI, virtio-balloon memory ballooning, and a qemu-guest-agent channel are all tuned for stable Kubernetes worker nodes.
Built-In Observability
Structured logging (Zerolog) and metrics collection (InfluxDB) run alongside every agent, with serial console output captured per VM for debugging cloud-init and boot failures.

PiVirt vs. VMware ESXi

Same job — hypervisor-level VM management at cluster scale — built on open source instead of proprietary licensing.

CapabilityPiVirtVMware ESXi
HypervisorLinux KVM (open source)Proprietary (VMkernel)
Per-socket / per-core licensing
Cluster management APIConnectRPC / gRPCvSphere API
Configuration modelDeclarative YAML (GitOps-friendly)vCenter GUI-driven
Live migration
Clustered shared storageiSCSI / OCFS2VMFS / vSAN
Software-defined networkingOpen vSwitch (VLAN/OVS flows)vSwitch / NSX
Kubernetes worker provisioningNative Copy-on-Write + cloud-initThird-party (CPI/CSI plugins)
CLI toolingpvcli / pivirtctl (Cobra + TUI)esxcli / PowerCLI

Built with

Go
ConnectRPC / gRPC
QEMU / KVM (QMP)
Open vSwitch
iSCSI
OCFS2
SQLite
InfluxDB
NATS
Cobra & Viper
Bubble Tea (TUI)
Read the architecture docs or talk to us
Dig into the full PiVirt architecture, YAML config schema, and cluster provisioning guides, or get in touch to discuss a deployment.
Follow us
All Rights Reserved
© 2011-2026
Progressive Innovation
LAB