Compute capabilities
KVM compute for a complete VM lifecycle
Basalt compute is the VM control plane: lifecycle operations, migration, templates, cloud-init, console access, passthrough, hot-plug, snapshots, clones, and scheduling through one API. It is designed for teams searching for a KVM live migration enterprise platform that is not stitched together from one-off scripts.
Compute runs inside Basalt’s three-component architecture: the gateway computes intent, agents converge host state, and the portal exposes the workflow. It is tightly integrated with storage pool management and network integration, making it a practical foundation for replacing VMware compute.
VM Lifecycle
Basalt exposes the standard VM lifecycle as explicit API operations: create, start, stop, reboot, suspend, resume, force-off, redeploy, and delete. The platform tracks VMs through a concrete state machine: defined → creating → running ↔ paused ↔ shutdown/shutoff ↔ migrating → crashed.
Gateway manifest eligibility determines which host should realize each VM. The vm.redeploy operation is a single-call destroy-and-recreate workflow from template, which removes the manual sequence normally required to reset an instance cleanly.
Live & Cold Migration
Migration begins with pre-flight target eligibility checks so Basalt does not start moving a workload to a host that cannot run it. Live migration uses pre-copy and downtime tuning for running workloads, supports mid-flight cancellation, and exposes vm.migrate_cleanup to remove stale source definitions after a host-side interruption.
Cold migration copies disks and redefines the domain on the destination. A stuck-migration reconciler runs every 60 seconds, detects operations that stopped making progress, and brings control-plane state back in line with libvirt reality.
Templates & Cloud-Init
A VM can be promoted to a template, locked to protect it from accidental mutation, unlocked when needed, and used to deploy N new instances. Templates make repeatable fleet provisioning a first-class compute operation instead of a documentation page.
Cloud-init support covers hostnames, SSH keys, packages, scripts, and network configuration. Configurations are versioned, and each deployed instance can bind to the appropriate version so that rollout intent is durable and auditable.
Browser Console
Console access uses HMAC-signed, short-lived console tokens and react-vnc over WebSocket. Operators can open a token-signed browser session without installing a client, distributing static credentials, or punching a separate console path through the network.
GPU & PCI Passthrough
Basalt supports VFIO PCI passthrough for GPUs and other PCI devices. For q35 guests it auto-injects IOMMU support and PCIe root ports, keeps ROM BAR off by default, and provides API-driven hot-attach and hot-detach for eligible devices.
Hot-Plug
Running workloads can receive or release disks and NICs without a full VM power cycle. NIC attach is integrated with the networking plane: Basalt creates OVS ports and installs security-group flows alongside the device attachment rather than leaving a window where a port exists without policy.
Snapshots & Clones
Basalt provides external VM snapshots, revert operations, clone workflows, and orphan diagnosis. The platform reports when snapshot metadata, disks, and libvirt state no longer agree so operators can repair the broken edge instead of guessing.
That qualifier is not hidden in UI conditionals. Basalt’s pool capability model returns a structured CapabilityReason explaining why an operation is or is not available for the selected pool type.
Scheduler
The scheduler evaluates host weight, cluster status, and explicit affinity or anti-affinity rules through vm_host_rules. Placement is treated as a policy decision with visible inputs, not an opaque side effect of whichever host answered first.