oVirt Architecture Overview
Introduction¶
oVirt is an open-source management platform for KVM virtualization at datacenter scale — the upstream of what was Red Hat Virtualization (RHV). It gives you a web UI and API to manage many hypervisor hosts, shared storage, live migration, HA, and templates.
The components¶
The engine¶
A Java application (WildFly) with a PostgreSQL database, a REST API, and the Administration/VM portals. It's the brain: it makes scheduling decisions, tracks state, and tells hosts what to do. It does not sit in the data path — if the engine is down, running VMs keep running (you just can't manage them).
Hosts and VDSM¶
Each hypervisor host runs:
- libvirt + QEMU/KVM — the actual virtualization.
- VDSM (Virtual Desktop and Server Manager) — a Python daemon that the engine talks to over JSON-RPC. VDSM translates engine commands into libvirt calls, manages storage connections, reports stats, and runs the host's part of live migration.
- Host types: a full RHEL/CentOS/Rocky host with packages added, or oVirt Node — a minimal, image-based appliance OS.
Data centers, clusters, hosts¶
- Data center — a logical grouping with a storage type and one or more clusters. Contains the storage domains.
- Cluster — hosts with compatible CPUs (the cluster CPU type is the lowest common denominator, so live migration works between any two hosts). Scheduling, HA, and affinity policies are per-cluster.
- Host — one physical machine in a cluster.
Storage domains¶
- Data domain — holds VM disks and snapshots. Types: NFS, iSCSI, FC, Gluster, POSIX. One data domain is the master (holds metadata).
- ISO domain (legacy) — install media. Modern oVirt uploads ISOs to a data domain instead.
- Export domain (legacy) — for moving VMs between data centers; replaced by the OVA export/import and data-domain detach/attach.
The SPM (Storage Pool Manager) is one host per data center elected to perform metadata operations (create/delete disk, snapshot, extend). If it dies, another host is elected.
Hosted engine¶
Rather than a dedicated physical/virtual machine for the engine, hosted-engine runs the engine as a VM on the same hosts it manages, with its own HA:
- The engine VM's disk lives on a dedicated storage domain.
- An agent/broker (
ovirt-ha-agent,ovirt-ha-broker) on each hosted-engine host monitors the engine VM and restarts it elsewhere if its host fails. - Bootstrapped with
hosted-engine --deploy(or the cockpit wizard).
This is the standard deployment now — no separate engine box to maintain.
Networking¶
- Logical networks — named networks (
ovirtmgmtfor management, plus your VM networks) attached to host NICs/bonds/VLANs. ovirtmgmtcarries engine↔VDSM traffic and, by default, migration and display — separate these onto their own networks for production.
Relationship to other products¶
- RHV — Red Hat's supported build of oVirt (now end-of-life; Red Hat steers customers to OpenShift Virtualization).
- OpenShift Virtualization / KubeVirt — the successor direction: run VMs as Kubernetes objects. Different architecture; oVirt remains for classic "vSphere-like" management.
Verification and troubleshooting¶
# On a host
vdsm-client Host getStats
systemctl status vdsmd ovirt-ha-agent ovirt-ha-broker
hosted-engine --vm-status
# Engine
systemctl status ovirt-engine
tail -f /var/log/ovirt-engine/engine.log
- Host stuck "Non Operational" / "Connecting" — VDSM down, a required logical network missing on the host, storage domain unreachable, or engine↔host certificate/time issues.
- "No SPM" — no host could take the SPM role; usually the master storage domain is inaccessible. Fix storage, then a host is elected.
- Data center "Non Responsive" — master storage domain down. Everything metadata-related stalls until it's back.
- Hosted engine won't start —
hosted-engine --vm-statusshows why; common causes are the HE storage domain unreachable or a stale sanlock lock. - Can't add a host — SSH/root access, time skew > a few seconds (engine and host must agree — run chrony), or firewall between engine and host.
- Engine DB huge / slow — DWH (data warehouse) retention; run
engine-vacuumand check the DWH sampling/retention config.
Related tools and reading¶
- On-site: SSL Certificate Checker, NTP tools via Ping.
- Related posts: oVirt engine certificate renewal after expiry, Live migration requirements.
Stuck on something this site can't fix?Reach out to Prabath directly on LinkedIn.More in Virtualization
Your First VM with KVM and libvirt
From a bare Linux host to a running VM: the packages, the virt-install command, and the virsh commands you'll use every day.
September 18, 2026qcow2 vs raw, and How Snapshots Work
raw is fastest and simplest; qcow2 gives you thin provisioning, snapshots, and compression. Here's how qcow2's copy-on-write works and how to snapshot a running VM.
September 18, 2026